/* This file is automatically generated by aarch64-gen.  Do not edit!  */
/* Copyright (C) 2012-2017 Free Software Foundation, Inc.
   Contributed by ARM Ltd.

   This file is part of the GNU opcodes library.

   This library is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3, or (at your option)
   any later version.

   It is distributed in the hope that it will be useful, but WITHOUT
   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
   License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; see the file COPYING3. If not,
   see <http://www.gnu.org/licenses/>.  */

#include "sysdep.h"
#include "aarch64-dis.h"

/* Called by aarch64_opcode_lookup.  */

static int
aarch64_opcode_lookup_1 (uint32_t word)
{
  if (((word >> 26) & 0x1) == 0)
    {
      if (((word >> 25) & 0x1) == 0)
        {
          if (((word >> 27) & 0x1) == 0)
            {
              if (((word >> 24) & 0x1) == 0)
                {
                  if (((word >> 31) & 0x1) == 0)
                    {
                      /* 33222222222211111111110000000000
                         10987654321098765432109876543210
                         0xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                         adr.  */
                      return 1155;
                    }
                  else
                    {
                      /* 33222222222211111111110000000000
                         10987654321098765432109876543210
                         1xxx0000xxxxxxxxxxxxxxxxxxxxxxxx
                         adrp.  */
                      return 1156;
                    }
                }
              else
                {
                  if (((word >> 29) & 0x1) == 0)
                    {
                      if (((word >> 30) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             x00x0001xxxxxxxxxxxxxxxxxxxxxxxx
                             add.  */
                          return 12;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             x10x0001xxxxxxxxxxxxxxxxxxxxxxxx
                             sub.  */
                          return 16;
                        }
                    }
                  else
                    {
                      if (((word >> 30) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             x01x0001xxxxxxxxxxxxxxxxxxxxxxxx
                             adds.  */
                          return 14;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             x11x0001xxxxxxxxxxxxxxxxxxxxxxxx
                             subs.  */
                          return 17;
                        }
                    }
                }
            }
          else
            {
              if (((word >> 28) & 0x1) == 0)
                {
                  if (((word >> 22) & 0x1) == 0)
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x000xxxxx0xxxxxxxxxxxxxxx
                                                 stxrb.  */
                                              return 910;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                 stxrh.  */
                                              return 916;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                             stxr.  */
                                          return 922;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                             casp.  */
                                          return 990;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                             stxp.  */
                                          return 924;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                 stlxrb.  */
                                              return 911;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                 stlxrh.  */
                                              return 917;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                             stlxr.  */
                                          return 923;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                             caspl.  */
                                          return 992;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                             stlxp.  */
                                          return 925;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10100x00xxxxxxxxxxxxxxxxxxxxxx
                                 stnp.  */
                              return 941;
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x100xxxxx0xxxxxxxxxxxxxxx
                                             stllrb.  */
                                          return 939;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                             stllr.  */
                                          return 938;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                 casb.  */
                                              return 978;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                 cash.  */
                                              return 979;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                             cas.  */
                                          return 980;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                 stlrb.  */
                                              return 914;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                 stlrh.  */
                                              return 920;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                             stlr.  */
                                          return 930;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                 caslb.  */
                                              return 982;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                 caslh.  */
                                              return 985;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                             casl.  */
                                          return 988;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10100x10xxxxxxxxxxxxxxxxxxxxxx
                                 stp.  */
                              return 950;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x010xxxxx0xxxxxxxxxxxxxxx
                                                 ldxrb.  */
                                              return 912;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                 ldxrh.  */
                                              return 918;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                             ldxr.  */
                                          return 926;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                             caspa.  */
                                          return 991;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                             ldxp.  */
                                          return 928;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                 ldaxrb.  */
                                              return 913;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                 ldaxrh.  */
                                              return 919;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                             ldaxr.  */
                                          return 927;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                             caspal.  */
                                          return 993;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                             ldaxp.  */
                                          return 929;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                     ldnp.  */
                                  return 942;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                     ldpsw.  */
                                  return 949;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x110xxxxx0xxxxxxxxxxxxxxx
                                                 ldlarb.  */
                                              return 936;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                 ldlarh.  */
                                              return 937;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                             ldlar.  */
                                          return 935;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                 casab.  */
                                              return 981;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                 casah.  */
                                              return 984;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                             casa.  */
                                          return 987;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                 ldarb.  */
                                              return 915;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                 ldarh.  */
                                              return 921;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                             ldar.  */
                                          return 931;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                 casalb.  */
                                              return 983;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                 casalh.  */
                                              return 986;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                             casal.  */
                                          return 989;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                     ldp.  */
                                  return 951;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                     ldpsw.  */
                                  return 954;
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 31) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                 ldr.  */
                              return 955;
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                     ldrsw.  */
                                  return 957;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                     prfm.  */
                                  return 958;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000000xxxxxxxxx00xxxxxxxxxx
                                                         sturb.  */
                                                      return 896;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000000xxxxxxxxx00xxxxxxxxxx
                                                         sturh.  */
                                                      return 901;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000000xxxxxxxxx00xxxxxxxxxx
                                                     stur.  */
                                                  return 904;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000010xxxxxxxxx00xxxxxxxxxx
                                                         ldurb.  */
                                                      return 897;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000010xxxxxxxxx00xxxxxxxxxx
                                                         ldurh.  */
                                                      return 902;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000010xxxxxxxxx00xxxxxxxxxx
                                                     ldur.  */
                                                  return 905;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursb.  */
                                                  return 898;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursw.  */
                                                  return 906;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursh.  */
                                                  return 903;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111110001x0xxxxxxxxx00xxxxxxxxxx
                                                     prfum.  */
                                                  return 907;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000001xxxxx000000xxxxxxxxxx
                                                                         ldaddb.  */
                                                                      return 1006;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx000000xxxxxxxxxx
                                                                         ldaddh.  */
                                                                      return 1007;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx000000xxxxxxxxxx
                                                                     ldadd.  */
                                                                  return 1008;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx000000xxxxxxxxxx
                                                                         ldaddab.  */
                                                                      return 1009;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx000000xxxxxxxxxx
                                                                         ldaddah.  */
                                                                      return 1012;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx000000xxxxxxxxxx
                                                                     ldadda.  */
                                                                  return 1015;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx000000xxxxxxxxxx
                                                                         ldaddlb.  */
                                                                      return 1010;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx000000xxxxxxxxxx
                                                                         ldaddlh.  */
                                                                      return 1013;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx000000xxxxxxxxxx
                                                                     ldaddl.  */
                                                                  return 1016;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx000000xxxxxxxxxx
                                                                         ldaddalb.  */
                                                                      return 1011;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx000000xxxxxxxxxx
                                                                         ldaddalh.  */
                                                                      return 1014;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx000000xxxxxxxxxx
                                                                     ldaddal.  */
                                                                  return 1017;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000001xxxxx100000xxxxxxxxxx
                                                                         swpb.  */
                                                                      return 994;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx100000xxxxxxxxxx
                                                                         swph.  */
                                                                      return 995;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx100000xxxxxxxxxx
                                                                     swp.  */
                                                                  return 996;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx100000xxxxxxxxxx
                                                                         swpab.  */
                                                                      return 997;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx100000xxxxxxxxxx
                                                                         swpah.  */
                                                                      return 1000;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx100000xxxxxxxxxx
                                                                     swpa.  */
                                                                  return 1003;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx100000xxxxxxxxxx
                                                                         swplb.  */
                                                                      return 998;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx100000xxxxxxxxxx
                                                                         swplh.  */
                                                                      return 1001;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx100000xxxxxxxxxx
                                                                     swpl.  */
                                                                  return 1004;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx100000xxxxxxxxxx
                                                                         swpalb.  */
                                                                      return 999;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx100000xxxxxxxxxx
                                                                         swpalh.  */
                                                                      return 1002;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx100000xxxxxxxxxx
                                                                     swpal.  */
                                                                  return 1005;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000001xxxxx010000xxxxxxxxxx
                                                                         ldsmaxb.  */
                                                                      return 1054;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx010000xxxxxxxxxx
                                                                         ldsmaxh.  */
                                                                      return 1055;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx010000xxxxxxxxxx
                                                                     ldsmax.  */
                                                                  return 1056;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx010000xxxxxxxxxx
                                                                         ldsmaxab.  */
                                                                      return 1057;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx010000xxxxxxxxxx
                                                                         ldsmaxah.  */
                                                                      return 1060;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx010000xxxxxxxxxx
                                                                     ldsmaxa.  */
                                                                  return 1063;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx010000xxxxxxxxxx
                                                                         ldsmaxlb.  */
                                                                      return 1058;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx010000xxxxxxxxxx
                                                                         ldsmaxlh.  */
                                                                      return 1061;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx010000xxxxxxxxxx
                                                                     ldsmaxl.  */
                                                                  return 1064;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx010000xxxxxxxxxx
                                                                         ldsmaxalb.  */
                                                                      return 1059;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx010000xxxxxxxxxx
                                                                         ldsmaxalh.  */
                                                                      return 1062;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx010000xxxxxxxxxx
                                                                     ldsmaxal.  */
                                                                  return 1065;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 31) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00111000xx1xxxxx110000xxxxxxxxxx
                                                                 ldaprb.  */
                                                              return 932;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01111000xx1xxxxx110000xxxxxxxxxx
                                                                 ldaprh.  */
                                                              return 933;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             1x111000xx1xxxxx110000xxxxxxxxxx
                                                             ldapr.  */
                                                          return 934;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx01000xxxxxxxxxx
                                                                     ldeorb.  */
                                                                  return 1030;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx01000xxxxxxxxxx
                                                                     ldeorh.  */
                                                                  return 1031;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx01000xxxxxxxxxx
                                                                 ldeor.  */
                                                              return 1032;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx01000xxxxxxxxxx
                                                                     ldeorab.  */
                                                                  return 1033;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx01000xxxxxxxxxx
                                                                     ldeorah.  */
                                                                  return 1036;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx01000xxxxxxxxxx
                                                                 ldeora.  */
                                                              return 1039;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx01000xxxxxxxxxx
                                                                     ldeorlb.  */
                                                                  return 1034;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx01000xxxxxxxxxx
                                                                     ldeorlh.  */
                                                                  return 1037;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx01000xxxxxxxxxx
                                                                 ldeorl.  */
                                                              return 1040;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx01000xxxxxxxxxx
                                                                     ldeoralb.  */
                                                                  return 1035;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx01000xxxxxxxxxx
                                                                     ldeoralh.  */
                                                                  return 1038;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx01000xxxxxxxxxx
                                                                 ldeoral.  */
                                                              return 1041;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx11000xxxxxxxxxx
                                                                     ldumaxb.  */
                                                                  return 1078;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx11000xxxxxxxxxx
                                                                     ldumaxh.  */
                                                                  return 1079;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx11000xxxxxxxxxx
                                                                 ldumax.  */
                                                              return 1080;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx11000xxxxxxxxxx
                                                                     ldumaxab.  */
                                                                  return 1081;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx11000xxxxxxxxxx
                                                                     ldumaxah.  */
                                                                  return 1084;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx11000xxxxxxxxxx
                                                                 ldumaxa.  */
                                                              return 1087;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx11000xxxxxxxxxx
                                                                     ldumaxlb.  */
                                                                  return 1082;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx11000xxxxxxxxxx
                                                                     ldumaxlh.  */
                                                                  return 1085;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx11000xxxxxxxxxx
                                                                 ldumaxl.  */
                                                              return 1088;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx11000xxxxxxxxxx
                                                                     ldumaxalb.  */
                                                                  return 1083;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx11000xxxxxxxxxx
                                                                     ldumaxalh.  */
                                                                  return 1086;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx11000xxxxxxxxxx
                                                                 ldumaxal.  */
                                                              return 1089;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx00100xxxxxxxxxx
                                                                     ldclrb.  */
                                                                  return 1018;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx00100xxxxxxxxxx
                                                                     ldclrh.  */
                                                                  return 1019;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx00100xxxxxxxxxx
                                                                 ldclr.  */
                                                              return 1020;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx00100xxxxxxxxxx
                                                                     ldclrab.  */
                                                                  return 1021;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx00100xxxxxxxxxx
                                                                     ldclrah.  */
                                                                  return 1024;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx00100xxxxxxxxxx
                                                                 ldclra.  */
                                                              return 1027;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx00100xxxxxxxxxx
                                                                     ldclrlb.  */
                                                                  return 1022;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx00100xxxxxxxxxx
                                                                     ldclrlh.  */
                                                                  return 1025;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx00100xxxxxxxxxx
                                                                 ldclrl.  */
                                                              return 1028;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx00100xxxxxxxxxx
                                                                     ldclralb.  */
                                                                  return 1023;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx00100xxxxxxxxxx
                                                                     ldclralh.  */
                                                                  return 1026;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx00100xxxxxxxxxx
                                                                 ldclral.  */
                                                              return 1029;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx10100xxxxxxxxxx
                                                                     ldsminb.  */
                                                                  return 1066;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx10100xxxxxxxxxx
                                                                     ldsminh.  */
                                                                  return 1067;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx10100xxxxxxxxxx
                                                                 ldsmin.  */
                                                              return 1068;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx10100xxxxxxxxxx
                                                                     ldsminab.  */
                                                                  return 1069;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx10100xxxxxxxxxx
                                                                     ldsminah.  */
                                                                  return 1072;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx10100xxxxxxxxxx
                                                                 ldsmina.  */
                                                              return 1075;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx10100xxxxxxxxxx
                                                                     ldsminlb.  */
                                                                  return 1070;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx10100xxxxxxxxxx
                                                                     ldsminlh.  */
                                                                  return 1073;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx10100xxxxxxxxxx
                                                                 ldsminl.  */
                                                              return 1076;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx10100xxxxxxxxxx
                                                                     ldsminalb.  */
                                                                  return 1071;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx10100xxxxxxxxxx
                                                                     ldsminalh.  */
                                                                  return 1074;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx10100xxxxxxxxxx
                                                                 ldsminal.  */
                                                              return 1077;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx01100xxxxxxxxxx
                                                                     ldsetb.  */
                                                                  return 1042;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx01100xxxxxxxxxx
                                                                     ldseth.  */
                                                                  return 1043;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx01100xxxxxxxxxx
                                                                 ldset.  */
                                                              return 1044;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx01100xxxxxxxxxx
                                                                     ldsetab.  */
                                                                  return 1045;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx01100xxxxxxxxxx
                                                                     ldsetah.  */
                                                                  return 1048;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx01100xxxxxxxxxx
                                                                 ldseta.  */
                                                              return 1051;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx01100xxxxxxxxxx
                                                                     ldsetlb.  */
                                                                  return 1046;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx01100xxxxxxxxxx
                                                                     ldsetlh.  */
                                                                  return 1049;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx01100xxxxxxxxxx
                                                                 ldsetl.  */
                                                              return 1052;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx01100xxxxxxxxxx
                                                                     ldsetalb.  */
                                                                  return 1047;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx01100xxxxxxxxxx
                                                                     ldsetalh.  */
                                                                  return 1050;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx01100xxxxxxxxxx
                                                                 ldsetal.  */
                                                              return 1053;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000001xxxxxx11100xxxxxxxxxx
                                                                     lduminb.  */
                                                                  return 1090;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx11100xxxxxxxxxx
                                                                     lduminh.  */
                                                                  return 1091;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx11100xxxxxxxxxx
                                                                 ldumin.  */
                                                              return 1092;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx11100xxxxxxxxxx
                                                                     lduminab.  */
                                                                  return 1093;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx11100xxxxxxxxxx
                                                                     lduminah.  */
                                                                  return 1096;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx11100xxxxxxxxxx
                                                                 ldumina.  */
                                                              return 1099;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx11100xxxxxxxxxx
                                                                     lduminlb.  */
                                                                  return 1094;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx11100xxxxxxxxxx
                                                                     lduminlh.  */
                                                                  return 1097;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx11100xxxxxxxxxx
                                                                 lduminl.  */
                                                              return 1100;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx11100xxxxxxxxxx
                                                                     lduminalb.  */
                                                                  return 1095;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx11100xxxxxxxxxx
                                                                     lduminalh.  */
                                                                  return 1098;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx11100xxxxxxxxxx
                                                                 lduminal.  */
                                                              return 1101;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000000xxxxxxxxx10xxxxxxxxxx
                                                         sttrb.  */
                                                      return 887;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000000xxxxxxxxx10xxxxxxxxxx
                                                         sttrh.  */
                                                      return 890;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000000xxxxxxxxx10xxxxxxxxxx
                                                     sttr.  */
                                                  return 893;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000010xxxxxxxxx10xxxxxxxxxx
                                                         ldtrb.  */
                                                      return 888;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000010xxxxxxxxx10xxxxxxxxxx
                                                         ldtrh.  */
                                                      return 891;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000010xxxxxxxxx10xxxxxxxxxx
                                                     ldtr.  */
                                                  return 894;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x0xxxxxxxxx10xxxxxxxxxx
                                                     ldtrsb.  */
                                                  return 889;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x0xxxxxxxxx10xxxxxxxxxx
                                                     ldtrsw.  */
                                                  return 895;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                 ldtrsh.  */
                                              return 892;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000001xxxxxxxxx10xxxxxxxxxx
                                                         strb.  */
                                                      return 875;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000001xxxxxxxxx10xxxxxxxxxx
                                                         strh.  */
                                                      return 880;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000001xxxxxxxxx10xxxxxxxxxx
                                                     str.  */
                                                  return 883;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000011xxxxxxxxx10xxxxxxxxxx
                                                         ldrb.  */
                                                      return 876;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000011xxxxxxxxx10xxxxxxxxxx
                                                         ldrh.  */
                                                      return 881;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000011xxxxxxxxx10xxxxxxxxxx
                                                     ldr.  */
                                                  return 884;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsb.  */
                                                  return 877;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsw.  */
                                                  return 885;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsh.  */
                                                  return 882;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111110001x1xxxxxxxxx10xxxxxxxxxx
                                                     prfm.  */
                                                  return 886;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     00111000000xxxxxxxxxx1xxxxxxxxxx
                                                     strb.  */
                                                  return 852;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01111000000xxxxxxxxxx1xxxxxxxxxx
                                                     strh.  */
                                                  return 857;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 1x111000000xxxxxxxxxx1xxxxxxxxxx
                                                 str.  */
                                              return 860;
                                            }
                                        }
                                      else
                                        {
                                          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
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 001110001x0xxxxxxxxxx1xxxxxxxxxx
                                                 ldrsb.  */
                                              return 854;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 101110001x0xxxxxxxxxx1xxxxxxxxxx
                                                 ldrsw.  */
                                              return 862;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11110001x0xxxxxxxxxx1xxxxxxxxxx
                                             ldrsh.  */
                                          return 859;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx1110000x1xxxxxxxxxx1xxxxxxxxxx
                                         ldraa.  */
                                      return 908;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx1110001x1xxxxxxxxxx1xxxxxxxxxx
                                         ldrab.  */
                                      return 909;
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 22) & 0x1) == 0)
                            {
                              if (((word >> 31) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         00x1100100xxxxxxxxxxxxxxxxxxxxxx
                                         strb.  */
                                      return 863;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         01x1100100xxxxxxxxxxxxxxxxxxxxxx
                                         strh.  */
                                      return 868;
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     1xx1100100xxxxxxxxxxxxxxxxxxxxxx
                                     str.  */
                                  return 871;
                                }
                            }
                          else
                            {
                              if (((word >> 31) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         00x1100101xxxxxxxxxxxxxxxxxxxxxx
                                         ldrb.  */
                                      return 864;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         01x1100101xxxxxxxxxxxxxxxxxxxxxx
                                         ldrh.  */
                                      return 869;
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     1xx1100101xxxxxxxxxxxxxxxxxxxxxx
                                     ldr.  */
                                  return 872;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              if (((word >> 31) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     00x110011xxxxxxxxxxxxxxxxxxxxxxx
                                     ldrsb.  */
                                  return 865;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     10x110011xxxxxxxxxxxxxxxxxxxxxxx
                                     ldrsw.  */
                                  return 873;
                                }
                            }
                          else
                            {
                              if (((word >> 31) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     01x110011xxxxxxxxxxxxxxxxxxxxxxx
                                     ldrsh.  */
                                  return 870;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     11x110011xxxxxxxxxxxxxxxxxxxxxxx
                                     prfm.  */
                                  return 874;
                                }
                            }
                        }
                    }
                }
            }
        }
      else
        {
          if (((word >> 24) & 0x1) == 0)
            {
              if (((word >> 27) & 0x1) == 0)
                {
                  if (((word >> 23) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 and.  */
                              return 959;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 eor.  */
                              return 963;
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 orr.  */
                              return 961;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 ands.  */
                              return 964;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                 movn.  */
                              return 1150;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                 movz.  */
                              return 1152;
                            }
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                             movk.  */
                          return 1154;
                        }
                    }
                }
              else
                {
                  if (((word >> 21) & 0x1) == 0)
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0001010xx0xxxxxxxxxxxxxxxxxxxxx
                                     and.  */
                                  return 966;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                     eor.  */
                                  return 973;
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                     orr.  */
                                  return 968;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                     ands.  */
                                  return 975;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011010000xxxxxxxxx00xxxxxxxxxx
                                                     adc.  */
                                                  return 0;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011010000xxxxxxxxx00xxxxxxxxxx
                                                     sbc.  */
                                                  return 2;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0111010000xxxxxxxxx00xxxxxxxxxx
                                                     adcs.  */
                                                  return 1;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1111010000xxxxxxxxx00xxxxxxxxxx
                                                     sbcs.  */
                                                  return 4;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x11010100xxxxxxxxx00xxxxxxxxxx
                                                 csel.  */
                                              return 656;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11010100xxxxxxxxx00xxxxxxxxxx
                                                 csinv.  */
                                              return 660;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x11010010xxxxxxxxx00xxxxxxxxxx
                                                 ccmn.  */
                                              return 654;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11010010xxxxxxxxx00xxxxxxxxxx
                                                 ccmp.  */
                                              return 655;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx0x00000xxxxxxxxxx
                                                             rbit.  */
                                                          return 679;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx1x00000xxxxxxxxxx
                                                             pacia.  */
                                                          return 687;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx10000xxxxxxxxxx
                                                             crc32b.  */
                                                          return 716;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010110xxxxxx10000xxxxxxxxxx
                                                             xpaci.  */
                                                          return 703;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010110xxxxxxx1000xxxxxxxxxx
                                                         lslv.  */
                                                      return 707;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010110xxxxxxx1000xxxxxxxxxx
                                                         paciza.  */
                                                      return 695;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx0x00100xxxxxxxxxx
                                                             clz.  */
                                                          return 684;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx1x00100xxxxxxxxxx
                                                             autia.  */
                                                          return 691;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx10100xxxxxxxxxx
                                                         crc32cb.  */
                                                      return 720;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010110xxxxxxx1100xxxxxxxxxx
                                                         pacga.  */
                                                      return 715;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010110xxxxxxx1100xxxxxxxxxx
                                                         autiza.  */
                                                      return 699;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x110100x0xxxxxxxxx10xxxxxxxxxx
                                             ccmn.  */
                                          return 652;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x110100x0xxxxxxxxx10xxxxxxxxxx
                                             ccmp.  */
                                          return 653;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x110101x0xxxxxx00010xxxxxxxxxx
                                                         udiv.  */
                                                      return 705;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01x110101x0xxxx0x00010xxxxxxxxxx
                                                                 rev.  */
                                                              return 681;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 11x110101x0xxxx0x00010xxxxxxxxxx
                                                                 rev32.  */
                                                              return 686;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x110101x0xxxx1x00010xxxxxxxxxx
                                                             pacda.  */
                                                          return 689;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx110101x0xxxxxx10010xxxxxxxxxx
                                                     crc32w.  */
                                                  return 718;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0x110101x0xxxxxxx1010xxxxxxxxxx
                                                     asrv.  */
                                                  return 711;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x110101x0xxxxxxx1010xxxxxxxxxx
                                                     pacdza.  */
                                                  return 697;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx110101x0xxxxxx00110xxxxxxxxxx
                                                     autda.  */
                                                  return 693;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx110101x0xxxxxx10110xxxxxxxxxx
                                                     crc32cw.  */
                                                  return 722;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx110101x0xxxxxxx1110xxxxxxxxxx
                                                 autdza.  */
                                              return 701;
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11010x00xxxxxxxxx01xxxxxxxxxx
                                             csinc.  */
                                          return 657;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x11010x00xxxxxxxxx01xxxxxxxxxx
                                             csneg.  */
                                          return 663;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx0x00001xxxxxxxxxx
                                                         rev16.  */
                                                      return 680;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx1x00001xxxxxxxxxx
                                                         pacib.  */
                                                      return 688;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx10001xxxxxxxxxx
                                                         crc32h.  */
                                                      return 717;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010x10xxxxxx10001xxxxxxxxxx
                                                         xpacd.  */
                                                      return 704;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0x11010x10xxxxxxx1001xxxxxxxxxx
                                                     lsrv.  */
                                                  return 709;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x11010x10xxxxxxx1001xxxxxxxxxx
                                                     pacizb.  */
                                                  return 696;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx0x00101xxxxxxxxxx
                                                         cls.  */
                                                      return 685;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx1x00101xxxxxxxxxx
                                                         autib.  */
                                                      return 692;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx10101xxxxxxxxxx
                                                     crc32ch.  */
                                                  return 721;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010x10xxxxxxx1101xxxxxxxxxx
                                                 autizb.  */
                                              return 700;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0x11010xx0xxxxxx00011xxxxxxxxxx
                                                     sdiv.  */
                                                  return 706;
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010xx0xxxx0x00011xxxxxxxxxx
                                                         rev.  */
                                                      return 682;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010xx0xxxx1x00011xxxxxxxxxx
                                                         pacdb.  */
                                                      return 690;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010xx0xxxxxx10011xxxxxxxxxx
                                                 crc32x.  */
                                              return 719;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x11010xx0xxxxxxx1011xxxxxxxxxx
                                                 rorv.  */
                                              return 713;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11010xx0xxxxxxx1011xxxxxxxxxx
                                                 pacdzb.  */
                                              return 698;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010xx0xxxxxx00111xxxxxxxxxx
                                                 autdb.  */
                                              return 694;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010xx0xxxxxx10111xxxxxxxxxx
                                                 crc32cx.  */
                                              return 723;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx11010xx0xxxxxxx1111xxxxxxxxxx
                                             autdzb.  */
                                          return 702;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 bic.  */
                              return 967;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 eon.  */
                              return 974;
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 orn.  */
                              return 971;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 bics.  */
                              return 977;
                            }
                        }
                    }
                }
            }
          else
            {
              if (((word >> 27) & 0x1) == 0)
                {
                  if (((word >> 23) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x00110xxxxxxxxxxxxxxxxxxxxxxx
                                 sbfm.  */
                              return 612;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00110xxxxxxxxxxxxxxxxxxxxxxx
                                 ubfm.  */
                              return 623;
                            }
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx1x00110xxxxxxxxxxxxxxxxxxxxxxx
                             bfm.  */
                          return 619;
                        }
                    }
                  else
                    {
                      /* 33222222222211111111110000000000
                         10987654321098765432109876543210
                         xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                         extr.  */
                      return 746;
                    }
                }
              else
                {
                  if (((word >> 21) & 0x1) == 0)
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0001011xx0xxxxxxxxxxxxxxxxxxxxx
                                     add.  */
                                  return 19;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1001011xx0xxxxxxxxxxxxxxxxxxxxx
                                     sub.  */
                                  return 22;
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0101011xx0xxxxxxxxxxxxxxxxxxxxx
                                     adds.  */
                                  return 20;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1101011xx0xxxxxxxxxxxxxxxxxxxxx
                                     subs.  */
                                  return 24;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxx11011x00xxxxx0xxxxxxxxxxxxxxx
                                     madd.  */
                                  return 724;
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011010xxxxx0xxxxxxxxxxxxxxx
                                         smulh.  */
                                      return 732;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011110xxxxx0xxxxxxxxxxxxxxx
                                         umulh.  */
                                      return 737;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxx11011xx0xxxxx1xxxxxxxxxxxxxxx
                                 msub.  */
                              return 726;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 28) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x00010110x1xxxxxxxxxxxxxxxxxxxxx
                                         add.  */
                                      return 6;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x10010110x1xxxxxxxxxxxxxxxxxxxxx
                                         sub.  */
                                      return 9;
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x01010110x1xxxxxxxxxxxxxxxxxxxxx
                                         adds.  */
                                      return 7;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x11010110x1xxxxxxxxxxxxxxxxxxxxx
                                         subs.  */
                                      return 10;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxx110110x1xxxxx0xxxxxxxxxxxxxxx
                                     smaddl.  */
                                  return 728;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxx110110x1xxxxx1xxxxxxxxxxxxxxx
                                     smsubl.  */
                                  return 730;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxxx10111x1xxxxx0xxxxxxxxxxxxxxx
                                 umaddl.  */
                              return 733;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxxx10111x1xxxxx1xxxxxxxxxxxxxxx
                                 umsubl.  */
                              return 735;
                            }
                        }
                    }
                }
            }
        }
    }
  else
    {
      if (((word >> 27) & 0x1) == 0)
        {
          if (((word >> 28) & 0x1) == 0)
            {
              if (((word >> 24) & 0x1) == 0)
                {
                  if (((word >> 29) & 0x1) == 0)
                    {
                      if (((word >> 13) & 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 >> 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
                                                                     000001x0xx000000000xxxxxxxxxxxxx
                                                                     add.  */
                                                                  return 1232;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010000000xxxxxxxxxxxxx
                                                                     mul.  */
                                                                  return 1685;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001000000xxxxxxxxxxxxx
                                                                     smax.  */
                                                                  return 1764;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011000000xxxxxxxxxxxxx
                                                                     orr.  */
                                                                  return 1696;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0100000xxxxxxxxxxxxx
                                                                 sdiv.  */
                                                              return 1755;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1100000xxxxxxxxxxxxx
                                                                 sabd.  */
                                                              return 1746;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0010000xxxxxxxxxxxxx
                                                                 smulh.  */
                                                              return 1769;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001010000xxxxxxxxxxxxx
                                                                     smin.  */
                                                                  return 1767;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011010000xxxxxxxxxxxxx
                                                                     and.  */
                                                                  return 1240;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx110000xxxxxxxxxxxxx
                                                             sdivr.  */
                                                          return 1756;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0001000xxxxxxxxxxxxx
                                                                 sub.  */
                                                              return 1885;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001001000xxxxxxxxxxxxx
                                                                     umax.  */
                                                                  return 1913;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011001000xxxxxxxxxxxxx
                                                                     eor.  */
                                                                  return 1327;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0101000xxxxxxxxxxxxx
                                                                 udiv.  */
                                                              return 1907;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1101000xxxxxxxxxxxxx
                                                                 uabd.  */
                                                              return 1898;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000011000xxxxxxxxxxxxx
                                                                     subr.  */
                                                                  return 1887;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010011000xxxxxxxxxxxxx
                                                                     umulh.  */
                                                                  return 1918;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001011000xxxxxxxxxxxxx
                                                                     umin.  */
                                                                  return 1916;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011011000xxxxxxxxxxxxx
                                                                     bic.  */
                                                                  return 1252;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111000xxxxxxxxxxxxx
                                                             udivr.  */
                                                          return 1908;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1514;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1525;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx000xxxxxxxxxxxxx
                                                 ld1sb.  */
                                              return 1518;
                                            }
                                          else
                                            {
                                              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;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000000xxxxxxxxxx
                                                             add.  */
                                                          return 1230;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000100xxxxxxxxxx
                                                             sqadd.  */
                                                          return 1771;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx000x10xxxxxxxxxx
                                                         sqsub.  */
                                                      return 1801;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000001xxxxxxxxxx
                                                             sub.  */
                                                          return 1883;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000101xxxxxxxxxx
                                                             uqadd.  */
                                                          return 1919;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx000x11xxxxxxxxxx
                                                         uqsub.  */
                                                      return 1949;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx000xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1704;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1526;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx000xxxxxxxxxxxxx
                                                 prfb.  */
                                              return 1705;
                                            }
                                          else
                                            {
                                              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;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0000x0100xxxxxxxxxxxxx
                                                                 asr.  */
                                                              return 1248;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0100x0100xxxxxxxxxxxxx
                                                                 asr.  */
                                                              return 1246;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0x10x0100xxxxxxxxxxxxx
                                                             asr.  */
                                                          return 1247;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx00x1x0100xxxxxxxxxxxxx
                                                             asrd.  */
                                                          return 1249;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx01x1x0100xxxxxxxxxxxxx
                                                             asrr.  */
                                                          return 1250;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000001100xxxxxxxxxxxxx
                                                                     lsr.  */
                                                                  return 1676;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010001100xxxxxxxxxxxxx
                                                                     lsr.  */
                                                                  return 1674;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1001100xxxxxxxxxxxxx
                                                                 lsr.  */
                                                              return 1675;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx101100xxxxxxxxxxxxx
                                                             lsrr.  */
                                                          return 1677;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000011100xxxxxxxxxxxxx
                                                                     lsl.  */
                                                                  return 1670;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010011100xxxxxxxxxxxxx
                                                                     lsl.  */
                                                                  return 1668;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1011100xxxxxxxxxxxxx
                                                                 lsl.  */
                                                              return 1669;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111100xxxxxxxxxxxxx
                                                             lslr.  */
                                                          return 1671;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
                                                         asr.  */
                                                      return 1244;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
                                                         asr.  */
                                                      return 1245;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100001xxxxxxxxxx
                                                             lsr.  */
                                                          return 1672;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100101xxxxxxxxxx
                                                             lsr.  */
                                                          return 1673;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100011xxxxxxxxxx
                                                             lsl.  */
                                                          return 1666;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100111xxxxxxxxxx
                                                             lsl.  */
                                                          return 1667;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x000xxxxxx100xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1520;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x010xxxxxx100xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1533;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx100xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1490;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx100xxxxxxxxxxxxx
                                                     ld1rsw.  */
                                                  return 1511;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx100xxxxxxxxxxxxx
                                                 ld1sb.  */
                                              return 1519;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx100xxxxxxxxxxxxx
                                                 ld1sh.  */
                                              return 1531;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx100xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1524;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0101xxxxx100xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1536;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx100xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1706;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0111xxxxx100xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1532;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx010xxxxxxxxxxxxx
                                                 mla.  */
                                              return 1679;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1456;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1476;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx010xxxxxxxxxxxxx
                                                 ld1b.  */
                                              return 1461;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx010xxxxxxxxxxxxx
                                                 ld1h.  */
                                              return 1481;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx010000xxxxxxxxxx
                                                             index.  */
                                                          return 1447;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx010001xxxxxxxxxx
                                                             index.  */
                                                          return 1448;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0001xxxxx01010xxxxxxxxxxx
                                                                 addvl.  */
                                                              return 1234;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0101xxxxx01010xxxxxxxxxxx
                                                                 rdvl.  */
                                                              return 1740;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x11xxxxx01010xxxxxxxxxxx
                                                             addpl.  */
                                                          return 1233;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx010x10xxxxxxxxxx
                                                         index.  */
                                                      return 1449;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx010x11xxxxxxxxxx
                                                         index.  */
                                                      return 1446;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1724;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1477;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
                                                 prfw.  */
                                              return 1726;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x1xxxxx010xxxxxxxxxxxxx
                                                 ld1h.  */
                                              return 1482;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
                                                 mad.  */
                                              return 1678;
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x010xxxx110x00xxxxxxxxxx
                                                                 sqincw.  */
                                                              return 1798;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx110x00xxxxxxxxxx
                                                                     sqinch.  */
                                                                  return 1792;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx110x00xxxxxxxxxx
                                                                     sqincd.  */
                                                                  return 1789;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x011xxxx110x00xxxxxxxxxx
                                                                 incw.  */
                                                              return 1444;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx110x00xxxxxxxxxx
                                                                     inch.  */
                                                                  return 1440;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx110x00xxxxxxxxxx
                                                                     incd.  */
                                                                  return 1438;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x01xxxxx110x10xxxxxxxxxx
                                                             sqdecw.  */
                                                          return 1784;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx110x10xxxxxxxxxx
                                                                 sqdech.  */
                                                              return 1778;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx110x10xxxxxxxxxx
                                                                 sqdecd.  */
                                                              return 1775;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x010xxxx110x01xxxxxxxxxx
                                                                 uqincw.  */
                                                              return 1946;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx110x01xxxxxxxxxx
                                                                     uqinch.  */
                                                                  return 1940;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx110x01xxxxxxxxxx
                                                                     uqincd.  */
                                                                  return 1937;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x011xxxx110x01xxxxxxxxxx
                                                                 decw.  */
                                                              return 1319;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx110x01xxxxxxxxxx
                                                                     dech.  */
                                                                  return 1315;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx110x01xxxxxxxxxx
                                                                     decd.  */
                                                                  return 1313;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x01xxxxx110x11xxxxxxxxxx
                                                             uqdecw.  */
                                                          return 1932;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx110x11xxxxxxxxxx
                                                                 uqdech.  */
                                                              return 1926;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx110x11xxxxxxxxxx
                                                                 uqdecd.  */
                                                              return 1923;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0000xxxxx110xxxxxxxxxxxxx
                                                         prfb.  */
                                                      return 1703;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0100xxxxx110xxxxxxxxxxxxx
                                                         prfh.  */
                                                      return 1718;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx110xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1463;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx110xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1485;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx110xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1492;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx110xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1496;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx110xxxxxxxxxxxxx
                                                 ld1b.  */
                                              return 1462;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx110xxxxxxxxxxxxx
                                                 ld1h.  */
                                              return 1483;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1468;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0101xxxxx110xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1489;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1727;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0111xxxxx110xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1484;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 14) & 0x1) == 0)
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx000x00001xxxxxxxxxxxxx
                                                                 saddv.  */
                                                              return 1747;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx000x01001xxxxxxxxxxxxx
                                                                 uaddv.  */
                                                              return 1899;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx010x0x001xxxxxxxxxxxxx
                                                             movprfx.  */
                                                          return 1682;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      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
                                                {
                                                  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
                                                         000001x0xx0xxx11001xxxxxxxxxxxxx
                                                         uminv.  */
                                                      return 1917;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1606;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1614;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx001xxxxxxxxxxxxx
                                                 ldff1sb.  */
                                              return 1610;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx001xxxxxxxxxxxxx
                                                 ldff1sh.  */
                                              return 1618;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0001xxxxx001xxxxxxxxxxxxx
                                                         and.  */
                                                      return 1238;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0011xxxxx001xxxxxxxxxxxxx
                                                         orr.  */
                                                      return 1694;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1717;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
                                                 prfh.  */
                                              return 1719;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0101xxxxx001xxxxxxxxxxxxx
                                                         eor.  */
                                                      return 1325;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0111xxxxx001xxxxxxxxxxxxx
                                                         bic.  */
                                                      return 1251;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1615;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x1xxxxx001xxxxxxxxxxxxx
                                                 ldff1sh.  */
                                              return 1619;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0000101xxxxxxxxxxxxx
                                                                 sxtb.  */
                                                              return 1890;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
                                                                 cls.  */
                                                              return 1271;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
                                                                 sxtw.  */
                                                              return 1892;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
                                                                 fabs.  */
                                                              return 1333;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
                                                                 sxth.  */
                                                              return 1891;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
                                                                 cnt.  */
                                                              return 1300;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
                                                                 abs.  */
                                                              return 1229;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
                                                                 not.  */
                                                              return 1691;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
                                                                 uxtb.  */
                                                              return 1953;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
                                                                 clz.  */
                                                              return 1272;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
                                                                 uxtw.  */
                                                              return 1955;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
                                                                 fneg.  */
                                                              return 1410;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
                                                                 uxth.  */
                                                              return 1954;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
                                                                 cnot.  */
                                                              return 1299;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111101xxxxxxxxxxxxx
                                                             neg.  */
                                                          return 1688;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0001xxxxx1010xxxxxxxxxxxx
                                                             adr.  */
                                                          return 1235;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0011xxxxx1010xxxxxxxxxxxx
                                                             adr.  */
                                                          return 1236;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
                                                         adr.  */
                                                      return 1237;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx101100xxxxxxxxxx
                                                             ftssel.  */
                                                          return 1436;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx101110xxxxxxxxxx
                                                             fexpa.  */
                                                          return 1380;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
                                                         movprfx.  */
                                                      return 1681;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x000xxxxxx101xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1612;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x010xxxxxx101xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1622;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx101xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1491;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx101xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1495;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx101xxxxxxxxxxxxx
                                                 ldff1sb.  */
                                              return 1611;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx101xxxxxxxxxxxxx
                                                 ldff1sh.  */
                                              return 1620;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1613;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0101xxxxx101xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1623;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1720;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0111xxxxx101xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1621;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx011xxxxxxxxxxxxx
                                                 mls.  */
                                              return 1680;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1580;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1595;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x0xxxxx011xxxxxxxxxxxxx
                                                 ldff1b.  */
                                              return 1585;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x0xxxxx011xxxxxxxxxxxxx
                                                 ldff1h.  */
                                              return 1600;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x00001x00x1xxxxx011xxxxxxxxxxxxx
                                                 prfd.  */
                                              return 1710;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
                                                 prfd.  */
                                              return 1712;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x00001x01x1xxxxx011xxxxxxxxxxxxx
                                                 ldff1h.  */
                                              return 1596;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x01x1xxxxx011xxxxxxxxxxxxx
                                                 ldff1h.  */
                                              return 1601;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
                                                 msb.  */
                                              return 1683;
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00010xxxx111000xxxxxxxxxx
                                                                         cntb.  */
                                                                      return 1301;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111000xxxxxxxxxx
                                                                         cntw.  */
                                                                      return 1305;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111000xxxxxxxxxx
                                                                         cnth.  */
                                                                      return 1303;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111000xxxxxxxxxx
                                                                         cntd.  */
                                                                      return 1302;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111000xxxxxxxxxx
                                                                         incb.  */
                                                                      return 1437;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111000xxxxxxxxxx
                                                                         incw.  */
                                                                      return 1445;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111000xxxxxxxxxx
                                                                         inch.  */
                                                                      return 1441;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111000xxxxxxxxxx
                                                                         incd.  */
                                                                      return 1439;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00010xxxx111100xxxxxxxxxx
                                                                         sqincb.  */
                                                                      return 1788;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111100xxxxxxxxxx
                                                                         sqincw.  */
                                                                      return 1800;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111100xxxxxxxxxx
                                                                         sqinch.  */
                                                                      return 1794;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111100xxxxxxxxxx
                                                                         sqincd.  */
                                                                      return 1791;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111100xxxxxxxxxx
                                                                         sqincb.  */
                                                                      return 1787;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111100xxxxxxxxxx
                                                                         sqincw.  */
                                                                      return 1799;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111100xxxxxxxxxx
                                                                         sqinch.  */
                                                                      return 1793;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111100xxxxxxxxxx
                                                                         sqincd.  */
                                                                      return 1790;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00010xxxx111x10xxxxxxxxxx
                                                                     sqdecb.  */
                                                                  return 1774;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01010xxxx111x10xxxxxxxxxx
                                                                     sqdecw.  */
                                                                  return 1786;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx111x10xxxxxxxxxx
                                                                     sqdech.  */
                                                                  return 1780;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx111x10xxxxxxxxxx
                                                                     sqdecd.  */
                                                                  return 1777;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00011xxxx111x10xxxxxxxxxx
                                                                     sqdecb.  */
                                                                  return 1773;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01011xxxx111x10xxxxxxxxxx
                                                                     sqdecw.  */
                                                                  return 1785;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx111x10xxxxxxxxxx
                                                                     sqdech.  */
                                                                  return 1779;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx111x10xxxxxxxxxx
                                                                     sqdecd.  */
                                                                  return 1776;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0001xxxxx111001xxxxxxxxxx
                                                                     decb.  */
                                                                  return 1312;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0101xxxxx111001xxxxxxxxxx
                                                                     decw.  */
                                                                  return 1320;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0011xxxxx111001xxxxxxxxxx
                                                                     dech.  */
                                                                  return 1316;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0111xxxxx111001xxxxxxxxxx
                                                                     decd.  */
                                                                  return 1314;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00010xxxx111101xxxxxxxxxx
                                                                         uqincb.  */
                                                                      return 1935;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111101xxxxxxxxxx
                                                                         uqincw.  */
                                                                      return 1947;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111101xxxxxxxxxx
                                                                         uqinch.  */
                                                                      return 1941;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111101xxxxxxxxxx
                                                                         uqincd.  */
                                                                      return 1938;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111101xxxxxxxxxx
                                                                         uqincb.  */
                                                                      return 1936;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111101xxxxxxxxxx
                                                                         uqincw.  */
                                                                      return 1948;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111101xxxxxxxxxx
                                                                         uqinch.  */
                                                                      return 1942;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111101xxxxxxxxxx
                                                                         uqincd.  */
                                                                      return 1939;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00010xxxx111x11xxxxxxxxxx
                                                                     uqdecb.  */
                                                                  return 1921;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01010xxxx111x11xxxxxxxxxx
                                                                     uqdecw.  */
                                                                  return 1933;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx111x11xxxxxxxxxx
                                                                     uqdech.  */
                                                                  return 1927;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx111x11xxxxxxxxxx
                                                                     uqdecd.  */
                                                                  return 1924;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00011xxxx111x11xxxxxxxxxx
                                                                     uqdecb.  */
                                                                  return 1922;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01011xxxx111x11xxxxxxxxxx
                                                                     uqdecw.  */
                                                                  return 1934;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx111x11xxxxxxxxxx
                                                                     uqdech.  */
                                                                  return 1928;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx111x11xxxxxxxxxx
                                                                     uqdecd.  */
                                                                  return 1925;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0000xxxxx111xxxxxxxxxxxxx
                                                         prfb.  */
                                                      return 1707;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0100xxxxx111xxxxxxxxxxxxx
                                                         prfh.  */
                                                      return 1721;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx111xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1587;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx111xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1604;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx111xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1493;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx111xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1497;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1709;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1723;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1586;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1602;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx111xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1588;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0101xxxxx111xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1605;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx111xxxxxxxxxxxxx
                                                     prfd.  */
                                                  return 1713;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0111xxxxx111xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1603;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 21) & 0x1) == 0)
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx000xxxxxxxx0xxxx
                                                     cmphs.  */
                                                  return 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 >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
                                                     cmpge.  */
                                                  return 1276;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
                                                     cmpgt.  */
                                                  return 1279;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1457;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx010xxxxxxxxxxxxx
                                                         ld1sw.  */
                                                      return 1537;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1459;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx010xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1479;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
                                                     cmpeq.  */
                                                  return 1273;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
                                                     cmpne.  */
                                                  return 1296;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqb.  */
                                                  return 1498;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqh.  */
                                                  return 1502;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
                                                     cmplt.  */
                                                  return 1294;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
                                                     cmple.  */
                                                  return 1288;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1581;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx011xxxxxxxxxxxxx
                                                         ldff1sw.  */
                                                      return 1624;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1583;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      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)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0000xxxxx0x1xxxxxxxxxxxxx
                                                     stnt1b.  */
                                                  return 1873;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0100xxxxx0x1xxxxxxxxxxxxx
                                                     stnt1h.  */
                                                  return 1877;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0010xxxxx0x1xxxxxxxxxxxxx
                                                     st3b.  */
                                                  return 1857;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0110xxxxx0x1xxxxxxxxxxxxx
                                                     st3h.  */
                                                  return 1861;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 13) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x0xx0xxxxx100xxxxxxxx0xxxx
                                                 cmpge.  */
                                              return 1277;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
                                                 cmpgt.  */
                                              return 1280;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
                                                     cmphs.  */
                                                  return 1286;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
                                                     cmphi.  */
                                                  return 1283;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1b.  */
                                                      return 1656;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1h.  */
                                                      return 1660;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx110xxxxxxxxxxxxx
                                                         ld3b.  */
                                                      return 1564;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx110xxxxxxxxxxxxx
                                                         ld3h.  */
                                                      return 1568;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             011001x0xx0xxxxx1x0xxxxxxxxxxxxx
                                             fcadd.  */
                                          return 1341;
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1804;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1823;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1808;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1829;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx101xxxxxxxx0xxxx
                                                     cmpeq.  */
                                                  return 1274;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
                                                     cmpne.  */
                                                  return 1297;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00000xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1464;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01000xxxx101xxxxxxxxxxxxx
                                                             ld1sw.  */
                                                          return 1542;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00100xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1466;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01100xxxx101xxxxxxxxxxxxx
                                                             ld1h.  */
                                                          return 1487;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00001xxxx101xxxxxxxxxxxxx
                                                             ldnf1b.  */
                                                          return 1640;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01001xxxx101xxxxxxxxxxxxx
                                                             ldnf1sw.  */
                                                          return 1653;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      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)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx111xxxxxxxxxxxxx
                                                         ldnt1b.  */
                                                      return 1657;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx111xxxxxxxxxxxxx
                                                         ldnt1h.  */
                                                      return 1661;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx111xxxxxxxxxxxxx
                                                         ld3b.  */
                                                      return 1565;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx111xxxxxxxxxxxxx
                                                         ld3h.  */
                                                      return 1569;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1810;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00100xxxx111xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1813;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01100xxxx111xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1834;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00001xxxx111xxxxxxxxxxxxx
                                                         stnt1b.  */
                                                      return 1874;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01001xxxx111xxxxxxxxxxxxx
                                                         stnt1h.  */
                                                      return 1878;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00101xxxx111xxxxxxxxxxxxx
                                                         st3b.  */
                                                      return 1858;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01101xxxx111xxxxxxxxxxxxx
                                                         st3h.  */
                                                      return 1862;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 13) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             001001x0xx1xxxxxxx0xxxxxxxx0xxxx
                                             cmphs.  */
                                          return 1287;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
                                             cmphi.  */
                                          return 1284;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0001xxxxx0x0xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1458;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0101xxxxx0x0xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1478;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0011xxxxx0x0xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1460;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0111xxxxx0x0xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1480;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0001xxxxx1x0xxxxxxxxxxxxx
                                                     ld2b.  */
                                                  return 1556;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0101xxxxx1x0xxxxxxxxxxxxx
                                                     ld2h.  */
                                                  return 1560;
                                                }
                                            }
                                          else
                                            {
                                              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
                                                         x11001x00x1xxxxx0000x0xxxxxxxxxx
                                                         fmla.  */
                                                      return 1395;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x0101xxxxx0000x0xxxxxxxxxx
                                                             fmla.  */
                                                          return 1396;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x0111xxxxx0000x0xxxxxxxxxx
                                                             fmla.  */
                                                          return 1397;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00x1xxxxx0000x1xxxxxxxxxx
                                                         fmls.  */
                                                      return 1399;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x0101xxxxx0000x1xxxxxxxxxx
                                                             fmls.  */
                                                          return 1400;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x0111xxxxx0000x1xxxxxxxxxx
                                                             fmls.  */
                                                          return 1401;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0x01xxxxx0001xxxxxxxxxxxx
                                                     fcmla.  */
                                                  return 1343;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0x11xxxxx0001xxxxxxxxxxxx
                                                     fcmla.  */
                                                  return 1344;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0001xxxxx010xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1806;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0101xxxxx010xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1825;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0011xxxxx010xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1809;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0111xxxxx010xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1830;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11001x0x01xxxxx1x0xxxxxxxxxxxxx
                                             st1h.  */
                                          return 1826;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11001x0x11xxxxx1x0xxxxxxxxxxxxx
                                             st1h.  */
                                          return 1831;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          /* 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 >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x00010xxxxx01xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1465;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x01010xxxxx01xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1486;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x00110xxxxx01xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1467;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x01110xxxxx01xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1488;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x00011xxxxx01xxxxxxxxxxxxx
                                                         ldnf1b.  */
                                                      return 1641;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x01011xxxxx01xxxxxxxxxxxxx
                                                         ldnf1h.  */
                                                      return 1645;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x00111xxxxx01xxxxxxxxxxxxx
                                                         ldnf1b.  */
                                                      return 1643;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x01111xxxxx01xxxxxxxxxxxxx
                                                         ldnf1h.  */
                                                      return 1647;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1582;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1597;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1584;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1599;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx111xxxxxxxxxxxxx
                                                         ld2b.  */
                                                      return 1557;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx111xxxxxxxxxxxxx
                                                         ld2h.  */
                                                      return 1561;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx111xxxxxxxxxxxxx
                                                         ld4b.  */
                                                      return 1573;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx111xxxxxxxxxxxxx
                                                         ld4h.  */
                                                      return 1577;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11001x00x1xxxxx001xxxxxxxxxxxxx
                                                 fmul.  */
                                              return 1406;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0101xxxxx001xxxxxxxxxxxxx
                                                     fmul.  */
                                                  return 1407;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0111xxxxx001xxxxxxxxxxxxx
                                                     fmul.  */
                                                  return 1408;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11001x0x01xxxxx101xxxxxxxxxxxxx
                                                 st1h.  */
                                              return 1827;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1814;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0111xxxxx101xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1835;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
                                                     st2b.  */
                                                  return 1849;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0101xxxxx011xxxxxxxxxxxxx
                                                     st2h.  */
                                                  return 1853;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
                                                     st4b.  */
                                                  return 1865;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0111xxxxx011xxxxxxxxxxxxx
                                                     st4h.  */
                                                  return 1869;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00010xxxx111xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1811;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01010xxxx111xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1832;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00110xxxx111xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1815;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01110xxxx111xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1836;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00011xxxx111xxxxxxxxxxxxx
                                                         st2b.  */
                                                      return 1850;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01011xxxx111xxxxxxxxxxxxx
                                                         st2h.  */
                                                      return 1854;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00111xxxx111xxxxxxxxxxxxx
                                                         st4b.  */
                                                      return 1866;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01111xxxx111xxxxxxxxxxxxx
                                                         st4h.  */
                                                      return 1870;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 29) & 0x1) == 0)
                    {
                      if (((word >> 30) & 0x1) == 0)
                        {
                          if (((word >> 31) & 0x1) == 0)
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 20) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x10000xxxxxxxxxxxxxxxxxxxx
                                                 orr.  */
                                              return 1695;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
                                                 and.  */
                                              return 1239;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
                                                 eor.  */
                                              return 1326;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
                                                 dupm.  */
                                              return 1324;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
                                             cpy.  */
                                          return 1309;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
                                             fcpy.  */
                                          return 1356;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 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
                                                         100001x1000xxxxx111xxxxxxxxxxxxx
                                                         prfw.  */
                                                      return 1728;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x1100xxxxx111xxxxxxxxxxxxx
                                                         prfd.  */
                                                      return 1714;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1638;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x101xxxxxx111xxxxxxxxxxxxx
                                                     ld1rw.  */
                                                  return 1513;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x111xxxxxx111xxxxxxxxxxxxx
                                                     ld1rd.  */
                                                  return 1494;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 13) & 0x1) == 0)
                            {
                              if (((word >> 14) & 0x1) == 0)
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx0xxxxx000xxxxxxxxxxxxx
                                             ld1sw.  */
                                          return 1538;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx1xxxxx000xxxxxxxxxxxxx
                                             ld1sw.  */
                                          return 1539;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx0xxxxx100xxxxxxxxxxxxx
                                             ld1sw.  */
                                          return 1540;
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x1x01xxxxx100xxxxxxxxxxxxx
                                                 ld1sw.  */
                                              return 1543;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x1x11xxxxx100xxxxxxxxxxxxx
                                                 ld1sw.  */
                                              return 1541;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x10x0xxxxx010xxxxxxxxxxxxx
                                                 ld1w.  */
                                              return 1548;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x0xxxxx010xxxxxxxxxxxxx
                                                 ld1d.  */
                                              return 1470;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x10x1xxxxx010xxxxxxxxxxxxx
                                                 ld1w.  */
                                              return 1549;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
                                                 ld1d.  */
                                              return 1471;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x10x0xxxxx110xxxxxxxxxxxxx
                                                 ld1w.  */
                                              return 1550;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x0xxxxx110xxxxxxxxxxxxx
                                                 ld1d.  */
                                              return 1472;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1555;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1101xxxxx110xxxxxxxxxxxxx
                                                     ld1d.  */
                                                  return 1475;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1551;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1111xxxxx110xxxxxxxxxxxxx
                                                     ld1d.  */
                                                  return 1473;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 14) & 0x1) == 0)
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx0xxxxx001xxxxxxxxxxxxx
                                             ldff1sw.  */
                                          return 1625;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx1xxxxx001xxxxxxxxxxxxx
                                             ldff1sw.  */
                                          return 1626;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10001x1xx0xxxxx101xxxxxxxxxxxxx
                                             ldff1sw.  */
                                          return 1627;
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x1x01xxxxx101xxxxxxxxxxxxx
                                                 ldff1sw.  */
                                              return 1629;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
                                                 ldff1sw.  */
                                              return 1628;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x10x0xxxxx011xxxxxxxxxxxxx
                                                 ldff1w.  */
                                              return 1634;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x0xxxxx011xxxxxxxxxxxxx
                                                 ldff1d.  */
                                              return 1590;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x10x1xxxxx011xxxxxxxxxxxxx
                                                 ldff1w.  */
                                              return 1635;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x1xxxxx011xxxxxxxxxxxxx
                                                 ldff1d.  */
                                              return 1591;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1000xxxxx111xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1730;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1100xxxxx111xxxxxxxxxxxxx
                                                     prfd.  */
                                                  return 1716;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1010xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1636;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1110xxxxx111xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1592;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1001xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1639;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1101xxxxx111xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1594;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1011xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  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
                                                     001001x1xx0xxxxx000xxxxxxxx1xxxx
                                                     cmpgt.  */
                                                  return 1281;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqw.  */
                                                  return 1505;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqd.  */
                                                  return 1501;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00000xxxxxx0xxxx
                                                         whilelt.  */
                                                      return 1966;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00010xxxxxx0xxxx
                                                         whilelt.  */
                                                      return 1967;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00001xxxxxx0xxxx
                                                         whilelo.  */
                                                      return 1962;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00011xxxxxx0xxxx
                                                         whilelo.  */
                                                      return 1963;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00000xxxxxx1xxxx
                                                         whilele.  */
                                                      return 1960;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00010xxxxxx1xxxx
                                                         whilele.  */
                                                      return 1961;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00001xxxxxx1xxxx
                                                         whilels.  */
                                                      return 1964;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x1xx1xxxxx00011xxxxxx1xxxx
                                                         whilels.  */
                                                      return 1965;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x1xx0xxxxx000x00xxxxxxxxxx
                                                         fadd.  */
                                                      return 1336;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000010xxxxxxxxxx
                                                             fmul.  */
                                                          return 1403;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000110xxxxxxxxxx
                                                             frecps.  */
                                                          return 1416;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x1xx0xxxxx000x01xxxxxxxxxx
                                                         fsub.  */
                                                      return 1429;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000011xxxxxxxxxx
                                                             ftsmul.  */
                                                          return 1435;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 1426;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                 fmla.  */
                                              return 1394;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             111001x1xxxxxxxx000xxxxxxxxxxxxx
                                             str.  */
                                          return 1881;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1xx0xxxxx001xxxxxxxx0xxxx
                                                     cmplt.  */
                                                  return 1295;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1xx0xxxxx001xxxxxxxx1xxxx
                                                     cmple.  */
                                                  return 1289;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqw.  */
                                                  return 1504;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqd.  */
                                                  return 1500;
                                                }
                                            }
                                        }
                                      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
                                                                 x11001x1xx000000001xxxxxxxxxxxxx
                                                                 faddv.  */
                                                              return 1340;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 4) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x11001x1xx010000001xxxxxxxx0xxxx
                                                                     fcmge.  */
                                                                  return 1347;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x11001x1xx010000001xxxxxxxx1xxxx
                                                                     fcmgt.  */
                                                                  return 1349;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0x1000001xxxxxxxxxxxxx
                                                             fadda.  */
                                                          return 1339;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x1xx0xx100001xxxxxxxxxxxxx
                                                         fmaxnmv.  */
                                                      return 1386;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x1xx0xx010001xxxxxxxxxxxxx
                                                         fcmeq.  */
                                                      return 1345;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0x0110001xxxxxxxxxxxxx
                                                             fmaxv.  */
                                                          return 1387;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0x1110001xxxxxxxxxxxxx
                                                             frecpe.  */
                                                          return 1415;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0xx001001xxxxxxxx0xxxx
                                                             fcmlt.  */
                                                          return 1352;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0xx001001xxxxxxxx1xxxx
                                                             fcmle.  */
                                                          return 1351;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x1xx0xx101001xxxxxxxxxxxxx
                                                         fminnmv.  */
                                                      return 1392;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x1xx0xx011001xxxxxxxxxxxxx
                                                         fcmne.  */
                                                      return 1353;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0x0111001xxxxxxxxxxxxx
                                                             fminv.  */
                                                          return 1393;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11001x1xx0x1111001xxxxxxxxxxxxx
                                                             frsqrte.  */
                                                          return 1425;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x1xx1xxxxx001xxxxxxxx0xxxx
                                                 ctermeq.  */
                                              return 1310;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x1xx1xxxxx001xxxxxxxx1xxxx
                                                 ctermne.  */
                                              return 1311;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                             fmls.  */
                                          return 1398;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 9) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 4) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x10000xxxx01xxxx0xxxx0xxxx
                                                                 and.  */
                                                              return 1241;
                                                            }
                                                          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
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx010xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1527;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx011xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1616;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 9) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 4) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11000xxxx01xxxx0xxxx0xxxx
                                                                 orr.  */
                                                              return 1697;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11000xxxx01xxxx0xxxx1xxxx
                                                                 orn.  */
                                                              return 1692;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x11001xxxx01xxxx0xxxxxxxxx
                                                             brkb.  */
                                                          return 1257;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1100xxxxx01xxxx1xxxx0xxxx
                                                             nor.  */
                                                          return 1689;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1100xxxxx01xxxx1xxxx1xxxx
                                                             nand.  */
                                                          return 1686;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx010xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1515;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx011xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      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;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 4) & 0x1) == 0)
                                                    {
                                                      if (((word >> 9) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11100xxxx01xxxx0xxxx0xxxx
                                                                 orrs.  */
                                                              return 1698;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11101xxxx01xxxx0xxxx0xxxx
                                                                 brkbs.  */
                                                              return 1258;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx1xxxx0xxxx
                                                             nors.  */
                                                          return 1690;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 9) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx0xxxx1xxxx
                                                             orns.  */
                                                          return 1693;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx1xxxx1xxxx
                                                             nands.  */
                                                          return 1687;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx010xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1517;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx011xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1609;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1001xxxxx010xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1528;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1101xxxxx010xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1516;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1011xxxxx010xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1547;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1111xxxxx010xxxxxxxxxxxxx
                                                     ld1d.  */
                                                  return 1469;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1001xxxxx011xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1617;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1101xxxxx011xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1608;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1011xxxxx011xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1633;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x1111xxxxx011xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1589;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 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)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1x10xxxxx010xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1841;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1011xxxxx010xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1843;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1111xxxxx010xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1820;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx011xxxxxxxx0xxxx
                                                     fcmeq.  */
                                                  return 1346;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx011xxxxxxxx1xxxx
                                                     fcmne.  */
                                                  return 1354;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1000xxxxx011xxxxxxxxxxxxx
                                                         stnt1w.  */
                                                      return 1879;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1100xxxxx011xxxxxxxxxxxxx
                                                         stnt1d.  */
                                                      return 1875;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1010xxxxx011xxxxxxxxxxxxx
                                                         st3w.  */
                                                      return 1863;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1110xxxxx011xxxxxxxxxxxxx
                                                         st3d.  */
                                                      return 1859;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx011xxxxxxxxxxxxx
                                                 fnmls.  */
                                              return 1413;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1001xxxxx011xxxxxxxxxxxxx
                                                         st2w.  */
                                                      return 1855;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1101xxxxx011xxxxxxxxxxxxx
                                                         st2d.  */
                                                      return 1851;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1011xxxxx011xxxxxxxxxxxxx
                                                         st4w.  */
                                                      return 1871;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1111xxxxx011xxxxxxxxxxxxx
                                                         st4d.  */
                                                      return 1867;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 21) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x1xx0xxxxx100xxxxxxxx0xxxx
                                                 cmpeq.  */
                                              return 1275;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                 cmpne.  */
                                              return 1298;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10000xxxx101xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1534;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11000xxxx101xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1521;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10100xxxx101xxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1553;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11100xxxx101xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1523;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10001xxxx101xxxxxxxxxxxxx
                                                         ldnf1sh.  */
                                                      return 1651;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11001xxxx101xxxxxxxxxxxxx
                                                         ldnf1sb.  */
                                                      return 1648;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10101xxxx101xxxxxxxxxxxxx
                                                         ldnf1w.  */
                                                      return 1654;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11101xxxx101xxxxxxxxxxxxx
                                                         ldnf1sb.  */
                                                      return 1650;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1x000xxxx11xxxxxxxxx0xxxx
                                                         brkpa.  */
                                                      return 1261;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1x100xxxx11xxxxxxxxx0xxxx
                                                         brkpas.  */
                                                      return 1262;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx010xx011xxxxxxxxx0xxxx
                                                             ptest.  */
                                                          return 1731;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 10) & 0x1) == 0)
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 13) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx011xx01100x0xxxxx0xxxx
                                                                         pfirst.  */
                                                                      return 1701;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx011xx01110x0xxxxx0xxxx
                                                                         ptrue.  */
                                                                      return 1732;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1x0011xx011x1x0xxxxx0xxxx
                                                                         rdffr.  */
                                                                      return 1738;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1x1011xx011x1x0xxxxx0xxxx
                                                                         rdffrs.  */
                                                                      return 1739;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx011xx011xxx1xxxxx0xxxx
                                                                 pfalse.  */
                                                              return 1700;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                 ptrues.  */
                                                              return 1733;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                 rdffr.  */
                                                              return 1737;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx01xxx111xxx1xxxxx0xxxx
                                                             pnext.  */
                                                          return 1702;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                     brkpb.  */
                                                  return 1263;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                     brkpbs.  */
                                                  return 1264;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1w.  */
                                                      return 1662;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1d.  */
                                                      return 1658;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1010xxxxx110xxxxxxxxxxxxx
                                                         ld3w.  */
                                                      return 1570;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx110xxxxxxxxxxxxx
                                                         ld3d.  */
                                                      return 1566;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx111xxxxxxxxxxxxx
                                                         ldnt1w.  */
                                                      return 1663;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx111xxxxxxxxxxxxx
                                                         ldnt1d.  */
                                                      return 1659;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1010xxxxx111xxxxxxxxxxxxx
                                                         ld3w.  */
                                                      return 1571;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx111xxxxxxxxxxxxx
                                                         ld3d.  */
                                                      return 1567;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 19) & 0x1) == 0)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000000100xxxxxxxxxxxxx
                                                                     fadd.  */
                                                                  return 1337;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000100100xxxxxxxxxxxxx
                                                                     fmaxnm.  */
                                                                  return 1384;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000010100xxxxxxxxxxxxx
                                                                     fmul.  */
                                                                  return 1404;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000110100xxxxxxxxxxxxx
                                                                     fmax.  */
                                                                  return 1382;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          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
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x1xx010xxx100xxxxxxxxxxxxx
                                                         ftmad.  */
                                                      return 1434;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001000100xxxxxxxxxxxxx
                                                                     fabd.  */
                                                                  return 1332;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011000100xxxxxxxxxxxxx
                                                                     fadd.  */
                                                                  return 1338;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001100100xxxxxxxxxxxxx
                                                                     fdivr.  */
                                                                  return 1378;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     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
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001001100xxxxxxxxxxxxx
                                                                     fscale.  */
                                                                  return 1427;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011001100xxxxxxxxxxxxx
                                                                     fsub.  */
                                                                  return 1431;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001101100xxxxxxxxxxxxx
                                                                     fdiv.  */
                                                                  return 1377;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011101100xxxxxxxxxxxxx
                                                                     fminnm.  */
                                                                  return 1391;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x1011100xxxxxxxxxxxxx
                                                                 fsubr.  */
                                                              return 1433;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x1111100xxxxxxxxxxxxx
                                                                 fmin.  */
                                                              return 1389;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx110xxxxxxxx0xxxx
                                                     fcmuo.  */
                                                  return 1355;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx110xxxxxxxx1xxxx
                                                     facge.  */
                                                  return 1334;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1837;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1100xxxxx1x0xxxxxxxxxxxxx
                                                     st1d.  */
                                                  return 1816;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x1x10xxxxx1x0xxxxxxxxxxxxx
                                                 st1w.  */
                                              return 1842;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              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
                                                                         011001x1x0001000101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1357;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1001000101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1359;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011000101xxxxxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 1367;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000100101xxxxxxxxxxxxx
                                                                     frinta.  */
                                                                  return 1418;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0010100101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1750;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101010100101xxxxxxxxxxxxx
                                                                             scvtf.  */
                                                                          return 1749;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111010100101xxxxxxxxxxxxx
                                                                             scvtf.  */
                                                                          return 1753;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001100101xxxxxxxxxxxxx
                                                                     frecpx.  */
                                                                  return 1417;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0011100101xxxxxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 1366;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101011100101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1364;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111011100101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1368;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000010101xxxxxxxxxxxxx
                                                                     frintm.  */
                                                                  return 1420;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010010101xxxxxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 1748;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              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
                                                                         011001x10x010110101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1752;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x11x010110101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1754;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x10x0x1110101xxxxxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 1365;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x11x0x1110101xxxxxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 1369;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 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 >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0001001101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1358;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1001001101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1360;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011001101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1374;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1x00x0101101xxxxxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 1902;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1010x0101101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 1901;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1110x0101101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 1905;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001101101xxxxxxxxxxxxx
                                                                     fsqrt.  */
                                                                  return 1428;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0011101101xxxxxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 1373;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101011101101xxxxxxxxxxxxx
                                                                             fcvtzu.  */
                                                                          return 1371;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111011101101xxxxxxxxxxxxx
                                                                             fcvtzu.  */
                                                                          return 1375;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000011101xxxxxxxxxxxxx
                                                                     frintz.  */
                                                                  return 1424;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010011101xxxxxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 1900;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              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
                                                                         011001x10x010111101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 1904;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x11x010111101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 1906;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x10x0x1111101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1372;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x11x0x1111101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1376;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1000xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1838;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1100xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1817;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1010xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1845;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1110xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1821;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx0xxxxx111xxxxxxxxxxxxx
                                                 facgt.  */
                                              return 1335;
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1xx00xxxx111xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1846;
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10001xxxx111xxxxxxxxxxxxx
                                                             stnt1w.  */
                                                          return 1880;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11001xxxx111xxxxxxxxxxxxx
                                                             stnt1d.  */
                                                          return 1876;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10101xxxx111xxxxxxxxxxxxx
                                                             st3w.  */
                                                          return 1864;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11101xxxx111xxxxxxxxxxxxx
                                                             st3d.  */
                                                          return 1860;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 20) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10000010xxxxxxxxxxxxxx
                                                                 cntp.  */
                                                              return 1304;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 10) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 12) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             001001x1xx10100010x000xxxxxxxxxx
                                                                             sqincp.  */
                                                                          return 1795;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             001001x1xx10100010x100xxxxxxxxxx
                                                                             wrffr.  */
                                                                          return 1968;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx10100010xx10xxxxxxxxxx
                                                                         sqincp.  */
                                                                      return 1797;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10100010xxx1xxxxxxxxxx
                                                                     sqincp.  */
                                                                  return 1796;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x10010x00xxxxxxxxxxx
                                                                     incp.  */
                                                                  return 1442;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x10010x10xxxxxxxxxxx
                                                                     setffr.  */
                                                                  return 1762;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10x10010xx1xxxxxxxxxxx
                                                                 incp.  */
                                                              return 1443;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10xx1010xx00xxxxxxxxxx
                                                                 sqdecp.  */
                                                              return 1781;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10xx1010xx10xxxxxxxxxx
                                                                 sqdecp.  */
                                                              return 1783;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx10xx1010xxx1xxxxxxxxxx
                                                             sqdecp.  */
                                                          return 1782;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x00110xx00xxxxxxxxxx
                                                                     uqincp.  */
                                                                  return 1943;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x10110xx00xxxxxxxxxx
                                                                     decp.  */
                                                                  return 1317;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10xx1110xx00xxxxxxxxxx
                                                                 uqdecp.  */
                                                              return 1929;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x00110xx10xxxxxxxxxx
                                                                     uqincp.  */
                                                                  return 1944;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx10x10110xx10xxxxxxxxxx
                                                                     decp.  */
                                                                  return 1318;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10xx1110xx10xxxxxxxxxx
                                                                 uqdecp.  */
                                                              return 1930;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx10xx0110xxx1xxxxxxxxxx
                                                             uqincp.  */
                                                          return 1945;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx10xx1110xxx1xxxxxxxxxx
                                                             uqdecp.  */
                                                          return 1931;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x10010xxxx10xxxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1535;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x11010xxxx10xxxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1522;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x10110xxxx10xxxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1554;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x11110xxxx10xxxxxxxxxxxxxx
                                                         ld1d.  */
                                                      return 1474;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x10011xxxx10xxxxxxxxxxxxxx
                                                     ldnf1sh.  */
                                                  return 1652;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x11011xxxx10xxxxxxxxxxxxxx
                                                     ldnf1sb.  */
                                                  return 1649;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x10111xxxx10xxxxxxxxxxxxxx
                                                     ldnf1w.  */
                                                  return 1655;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x01001x11111xxxx10xxxxxxxxxxxxxx
                                                     ldnf1d.  */
                                                  return 1644;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 16) & 0x1) == 0)
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10000011xxxxxxxxxxxxxx
                                                                 add.  */
                                                              return 1231;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11000011xxxxxxxxxxxxxx
                                                                 mul.  */
                                                              return 1684;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10100011xxxxxxxxxxxxxx
                                                                 smax.  */
                                                              return 1763;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11100011xxxxxxxxxxxxxx
                                                                 dup.  */
                                                              return 1323;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx10011xxxxxxxxxxxxxx
                                                         sqadd.  */
                                                      return 1772;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx01011xxxxxxxxxxxxxx
                                                         smin.  */
                                                      return 1766;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx11011xxxxxxxxxxxxxx
                                                         sqsub.  */
                                                      return 1802;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x000111xxxxxxxxxxxxxx
                                                             sub.  */
                                                          return 1884;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10100111xxxxxxxxxxxxxx
                                                                 umax.  */
                                                              return 1912;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11100111xxxxxxxxxxxxxx
                                                                 fdup.  */
                                                              return 1379;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx10111xxxxxxxxxxxxxx
                                                         uqadd.  */
                                                      return 1920;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x001111xxxxxxxxxxxxxx
                                                             subr.  */
                                                          return 1886;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x101111xxxxxxxxxxxxxx
                                                             umin.  */
                                                          return 1915;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx11111xxxxxxxxxxxxxx
                                                         uqsub.  */
                                                      return 1950;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx110xxxxxxxxxxxxx
                                                         ld2w.  */
                                                      return 1562;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx110xxxxxxxxxxxxx
                                                         ld2d.  */
                                                      return 1558;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx110xxxxxxxxxxxxx
                                                         ld4w.  */
                                                      return 1578;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx110xxxxxxxxxxxxx
                                                         ld4d.  */
                                                      return 1574;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx111xxxxxxxxxxxxx
                                                         ld2w.  */
                                                      return 1563;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx111xxxxxxxxxxxxx
                                                         ld2d.  */
                                                      return 1559;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx111xxxxxxxxxxxxx
                                                         ld4w.  */
                                                      return 1579;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx111xxxxxxxxxxxxx
                                                         ld4d.  */
                                                      return 1575;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx100xxxxxxxxxxxxx
                                                 fmad.  */
                                              return 1381;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx110xxxxxxxxxxxxx
                                                 fnmad.  */
                                              return 1411;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1001xxxxx1x0xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1839;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1101xxxxx1x0xxxxxxxxxxxxx
                                                     st1d.  */
                                                  return 1818;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x1x11xxxxx1x0xxxxxxxxxxxxx
                                                 st1w.  */
                                              return 1844;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx101xxxxxxxxxxxxx
                                                 fmsb.  */
                                              return 1402;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1001xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1840;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1101xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1819;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1x11xxxxx101xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1847;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx111xxxxxxxxxxxxx
                                                 fnmsb.  */
                                              return 1414;
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x10x10xxxx111xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1848;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x11x10xxxx111xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1822;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10011xxxx111xxxxxxxxxxxxx
                                                             st2w.  */
                                                          return 1856;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11011xxxx111xxxxxxxxxxxxx
                                                             st2d.  */
                                                          return 1852;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10111xxxx111xxxxxxxxxxxxx
                                                             st4w.  */
                                                          return 1872;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11111xxxx111xxxxxxxxxxxxx
                                                             st4d.  */
                                                          return 1868;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
          else
            {
              if (((word >> 29) & 0x1) == 0)
                {
                  if (((word >> 30) & 0x1) == 0)
                    {
                      if (((word >> 31) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             000101xxxxxxxxxxxxxxxxxxxxxxxxxx
                             b.  */
                          return 630;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             100101xxxxxxxxxxxxxxxxxxxxxxxxxx
                             bl.  */
                          return 631;
                        }
                    }
                  else
                    {
                      if (((word >> 24) & 0x1) == 0)
                        {
                          if (((word >> 4) & 0x1) == 0)
                            {
                              if (((word >> 25) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         01010100xxxxxxxxxxxxxxxxxxx0xxxx
                                         b.c.  */
                                      return 651;
                                    }
                                  else
                                    {
                                      if (((word >> 0) & 0x1) == 0)
                                        {
                                          if (((word >> 1) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx00
                                                     hlt.  */
                                                  return 742;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx00
                                                     brk.  */
                                                  return 741;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx10
                                                     hvc.  */
                                                  return 739;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx10
                                                     dcps2.  */
                                                  return 744;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 1) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx01
                                                     svc.  */
                                                  return 738;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx01
                                                     dcps1.  */
                                                  return 743;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx11
                                                     smc.  */
                                                  return 740;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx11
                                                     dcps3.  */
                                                  return 745;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110000xxxxxxxxxxxxxxxx0xxxx
                                                 br.  */
                                              return 632;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110100xxxxxxxxxxxxxxxx0xxxx
                                                 eret.  */
                                              return 635;
                                            }
                                        }
                                      else
                                        {
                                          /* 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
                                                 x10101x0000xxxxxxxxxx0xxxxx1xxxx
                                                 braaz.  */
                                              return 641;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10101x0100xxxxxxxxxx0xxxxx1xxxx
                                                 eretaa.  */
                                              return 647;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10101x0x10xxxxxxxxxx0xxxxx1xxxx
                                             retaa.  */
                                          return 645;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x10101x0xx1xxxxxxxxxx0xxxxx1xxxx
                                         blraaz.  */
                                      return 643;
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10101x0000xxxxxxxxxx1xxxxx1xxxx
                                                 brabz.  */
                                              return 642;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10101x0100xxxxxxxxxx1xxxxx1xxxx
                                                 eretab.  */
                                              return 648;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10101x0x10xxxxxxxxxx1xxxxx1xxxx
                                             retab.  */
                                          return 646;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x10101x0xx1xxxxxxxxxx1xxxxx1xxxx
                                         blrabz.  */
                                      return 644;
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 21) & 0x1) == 0)
                            {
                              if (((word >> 25) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1010101xx0xxxxxxxxxxxxxxxxxxxxx
                                     msr.  */
                                  return 1157;
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1010111xx0xxxxxxxxxx0xxxxxxxxxx
                                         braa.  */
                                      return 637;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1010111xx0xxxxxxxxxx1xxxxxxxxxx
                                         brab.  */
                                      return 638;
                                    }
                                }
                            }
                          else
                            {
                              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;
                                    }
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 25) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110100xxxxxxxxxxxxxxxxxxxxxxxx
                             cbz.  */
                          return 649;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                             tbz.  */
                          return 1192;
                        }
                    }
                  else
                    {
                      if (((word >> 25) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110101xxxxxxxxxxxxxxxxxxxxxxxx
                             cbnz.  */
                          return 650;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                             tbnz.  */
                          return 1193;
                        }
                    }
                }
            }
        }
      else
        {
          if (((word >> 25) & 0x1) == 0)
            {
              if (((word >> 28) & 0x1) == 0)
                {
                  if (((word >> 22) & 0x1) == 0)
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 24) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx00110000xxxxxxxxxxxxxxxxxxxxxx
                                     st4.  */
                                  return 434;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                     stnp.  */
                                  return 943;
                                }
                            }
                          else
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101000xxxxxxx0xxxxxxxxxxxxx
                                             st1.  */
                                          return 450;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101001xxxxxxx0xxxxxxxxxxxxx
                                             st2.  */
                                          return 452;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101000xxxxxxx1xxxxxxxxxxxxx
                                             st3.  */
                                          return 451;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101001xxxxxxx1xxxxxxxxxxxxx
                                             st4.  */
                                          return 453;
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                     stp.  */
                                  return 947;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 24) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001100100xxxxxxxxxxxxxxxxxxxxx
                                         st4.  */
                                      return 442;
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101100xxxxxxx0xxxxxxxxxxxxx
                                             st1.  */
                                          return 462;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101100xxxxxxx1xxxxxxxxxxxxx
                                             st3.  */
                                          return 463;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x101xxxxxxx0xxxxxxxxxxxxx
                                         st2.  */
                                      return 464;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x101xxxxxxx1xxxxxxxxxxxxx
                                         st4.  */
                                      return 465;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                 stp.  */
                              return 952;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 24) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx00110001xxxxxxxxxxxxxxxxxxxxxx
                                     ld4.  */
                                  return 438;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                     ldnp.  */
                                  return 944;
                                }
                            }
                          else
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101010xxxxxxx0xxxxxxxxxxxxx
                                             ld1.  */
                                          return 454;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101011xxxxxxx0xxxxxxxxxxxxx
                                             ld2.  */
                                          return 458;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101010xxxxxxx1xxxxxxxxxxxxx
                                             ld3.  */
                                          return 455;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101011xxxxxxx1xxxxxxxxxxxxx
                                             ld4.  */
                                          return 459;
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                     ldp.  */
                                  return 948;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 24) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001100110xxxxxxxxxxxxxxxxxxxxx
                                         ld4.  */
                                      return 446;
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101110xxxxxxx0xxxxxxxxxxxxx
                                             ld1.  */
                                          return 466;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101110xxxxxxx1xxxxxxxxxxxxx
                                             ld3.  */
                                          return 467;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x111xxxxxxx0xxxxxxxxxxxxx
                                         ld2.  */
                                      return 470;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x111xxxxxxx1xxxxxxxxxxxxx
                                         ld4.  */
                                      return 471;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                 ldp.  */
                              return 953;
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                             ldr.  */
                          return 956;
                        }
                      else
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                         stur.  */
                                      return 899;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                         ldur.  */
                                      return 900;
                                    }
                                }
                              else
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                         str.  */
                                      return 878;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                         ldr.  */
                                      return 879;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                     str.  */
                                  return 855;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                     ldr.  */
                                  return 856;
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 22) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xxx11101x0xxxxxxxxxxxxxxxxxxxxxx
                             str.  */
                          return 866;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xxx11101x1xxxxxxxxxxxxxxxxxxxxxx
                             ldr.  */
                          return 867;
                        }
                    }
                }
            }
          else
            {
              if (((word >> 24) & 0x1) == 0)
                {
                  if (((word >> 21) & 0x1) == 0)
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001110xx0xxxxxxxx000xxxxxxxxxx
                                             tbl.  */
                                          return 414;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001110xx0xxxxxxxx100xxxxxxxxxx
                                             tbx.  */
                                          return 415;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001110xx0xxxxxx0x010xxxxxxxxxx
                                                 trn1.  */
                                              return 257;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001110xx0xxxxxx1x010xxxxxxxxxx
                                                 trn2.  */
                                              return 260;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001110xx0xxxxxx00110xxxxxxxxxx
                                                     uzp1.  */
                                                  return 256;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001110xx0xxxxxx10110xxxxxxxxxx
                                                     uzp2.  */
                                                  return 259;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001110xx0xxxxxx01110xxxxxxxxxx
                                                     zip1.  */
                                                  return 258;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001110xx0xxxxxx11110xxxxxxxxxx
                                                     zip2.  */
                                                  return 261;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx101110xx0xxxxxxxxxx0xxxxxxxxxx
                                     ext.  */
                                  return 130;
                                }
                            }
                          else
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      if (((word >> 29) & 0x1) == 0)
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001110x00xxxxx0xxx01xxxxxxxxxx
                                                 dup.  */
                                              return 147;
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110x00xxxxx0x0011xxxxxxxxxx
                                                         dup.  */
                                                      return 148;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110x00xxxxx0x1011xxxxxxxxxx
                                                         smov.  */
                                                      return 149;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110x00xxxxx0x0111xxxxxxxxxx
                                                         ins.  */
                                                      return 152;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110x00xxxxx0x1111xxxxxxxxxx
                                                         umov.  */
                                                      return 150;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx101110x00xxxxx0xxxx1xxxxxxxxxx
                                             ins.  */
                                          return 154;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110010xxxxx0x0001xxxxxxxxxx
                                                             fmaxnm.  */
                                                          return 286;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x0001xxxxxxxxxx
                                                             fmaxnmp.  */
                                                          return 337;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110110xxxxx0x0001xxxxxxxxxx
                                                             fminnm.  */
                                                          return 302;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x0001xxxxxxxxxx
                                                             fminnmp.  */
                                                          return 353;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110010xxxxx0x1001xxxxxxxxxx
                                                             fcmeq.  */
                                                          return 294;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1001xxxxxxxxxx
                                                             fcmge.  */
                                                          return 343;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110110xxxxx0x1001xxxxxxxxxx
                                                         fcmgt.  */
                                                      return 357;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110010xxxxx0x0101xxxxxxxxxx
                                                             fadd.  */
                                                          return 290;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x0101xxxxxxxxxx
                                                             faddp.  */
                                                          return 339;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110110xxxxx0x0101xxxxxxxxxx
                                                             fsub.  */
                                                          return 306;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x0101xxxxxxxxxx
                                                             fabd.  */
                                                          return 355;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110010xxxxx0x1101xxxxxxxxxx
                                                             fmax.  */
                                                          return 296;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1101xxxxxxxxxx
                                                             fmaxp.  */
                                                          return 347;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110110xxxxx0x1101xxxxxxxxxx
                                                             fmin.  */
                                                          return 308;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x1101xxxxxxxxxx
                                                             fminp.  */
                                                          return 361;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110010xxxxx0x0011xxxxxxxxxx
                                                         fmla.  */
                                                      return 288;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110110xxxxx0x0011xxxxxxxxxx
                                                         fmls.  */
                                                      return 304;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110010xxxxx0x1011xxxxxxxxxx
                                                         facge.  */
                                                      return 345;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110110xxxxx0x1011xxxxxxxxxx
                                                         facgt.  */
                                                      return 359;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110x10xxxxx0x0111xxxxxxxxxx
                                                         fmulx.  */
                                                      return 292;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110x10xxxxx0x0111xxxxxxxxxx
                                                         fmul.  */
                                                      return 341;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110010xxxxx0x1111xxxxxxxxxx
                                                             frecps.  */
                                                          return 298;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1111xxxxxxxxxx
                                                             fdiv.  */
                                                          return 349;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110110xxxxx0x1111xxxxxxxxxx
                                                         frsqrts.  */
                                                      return 310;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx01110xx0xxxxx100001xxxxxxxxxx
                                                     sqrdmlah.  */
                                                  return 364;
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx0xxxxx100101xxxxxxxxxx
                                                         sdot.  */
                                                      return 1987;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx0xxxxx100101xxxxxxxxxx
                                                         udot.  */
                                                      return 1986;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx01110xx0xxxxx100x11xxxxxxxxxx
                                                 sqrdmlsh.  */
                                              return 365;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01110xx0xxxxx110xx1xxxxxxxxxx
                                             fcmla.  */
                                          return 366;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx01110xx0xxxxx1x1xx1xxxxxxxxxx
                                         fcadd.  */
                                      return 367;
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 16) & 0x1) == 0)
                                    {
                                      if (((word >> 17) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx00xxxxxxxxxxxxxxxx
                                             fcvtzs.  */
                                          return 752;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                             scvtf.  */
                                          return 748;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 17) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                             fcvtzu.  */
                                          return 754;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                             ucvtf.  */
                                          return 750;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx000x0xxxxxxxxxx
                                                     sha1c.  */
                                                  return 672;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx100x0xxxxxxxxxx
                                                     sha256h.  */
                                                  return 676;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx010x0xxxxxxxxxx
                                                     sha1m.  */
                                                  return 674;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx110x0xxxxxxxxxx
                                                     sha256su1.  */
                                                  return 678;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx001x0xxxxxxxxxx
                                                     sha1p.  */
                                                  return 673;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx101x0xxxxxxxxxx
                                                     sha256h2.  */
                                                  return 677;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx11x0xxxxxxxxxx
                                                 sha1su0.  */
                                              return 675;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx0x01xxxxxxxxxx
                                                 dup.  */
                                              return 529;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx1x01xxxxxxxxxx
                                                 fcmeq.  */
                                              return 550;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx0x11xxxxxxxxxx
                                                 fmulx.  */
                                              return 548;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111100x0xxxxxxx1x11xxxxxxxxxx
                                                     frecps.  */
                                                  return 552;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111101x0xxxxxxx1x11xxxxxxxxxx
                                                     frsqrts.  */
                                                  return 554;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111110xx0xxxxxxx000xxxxxxxxxxx
                                             sqrdmlah.  */
                                          return 582;
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111100x0xxxxxxx100xxxxxxxxxxx
                                                 fcmge.  */
                                              return 567;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111101x0xxxxxxx100xxxxxxxxxxx
                                                 fcmgt.  */
                                              return 573;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111110xx0xxxxxxxx10xxxxxxxxxxx
                                         fabd.  */
                                      return 571;
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111110xx0xxxxxxx0x1xxxxxxxxxxx
                                         sqrdmlsh.  */
                                      return 583;
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx1111100x0xxxxxxx1x1xxxxxxxxxxx
                                             facge.  */
                                          return 569;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx1111101x0xxxxxxx1x1xxxxxxxxxxx
                                             facgt.  */
                                          return 575;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  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 >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx000000xxxxxxxxxx
                                                             saddl.  */
                                                          return 42;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx000000xxxxxxxxxx
                                                             saddl2.  */
                                                          return 43;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx000000xxxxxxxxxx
                                                             uaddl.  */
                                                          return 74;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx000000xxxxxxxxxx
                                                             uaddl2.  */
                                                          return 75;
                                                        }
                                                    }
                                                }
                                              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
                                                                         xxx11110xx100000000000xxxxxxxxxx
                                                                         fcvtns.  */
                                                                      return 756;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx110000000000xxxxxxxxxx
                                                                         fcvtms.  */
                                                                      return 776;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx101000000000xxxxxxxxxx
                                                                         fcvtps.  */
                                                                      return 772;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx111000000000xxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 780;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx100000000xxxxxxxxxx
                                                                 fcvtas.  */
                                                              return 764;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx010000000xxxxxxxxxx
                                                                 scvtf.  */
                                                              return 760;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0110000000xxxxxxxxxx
                                                                     fmov.  */
                                                                  return 768;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx101110000000xxxxxxxxxx
                                                                         fmov.  */
                                                                      return 784;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx111110000000xxxxxxxxxx
                                                                         fjcvtzs.  */
                                                                      return 786;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx100001000000xxxxxxxxxx
                                                                         fcvtnu.  */
                                                                      return 758;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx110001000000xxxxxxxxxx
                                                                         fcvtmu.  */
                                                                      return 778;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx101001000000xxxxxxxxxx
                                                                         fcvtpu.  */
                                                                      return 774;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xxx11110xx111001000000xxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 782;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx101000000xxxxxxxxxx
                                                                 fcvtau.  */
                                                              return 766;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx011000000xxxxxxxxxx
                                                                 ucvtf.  */
                                                              return 762;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0111000000xxxxxxxxxx
                                                                     fmov.  */
                                                                  return 770;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x1111000000xxxxxxxxxx
                                                                     fmov.  */
                                                                  return 785;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x00x1110xx1xxxxx100000xxxxxxxxxx
                                                         smlal.  */
                                                      return 58;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10x1110xx1xxxxx100000xxxxxxxxxx
                                                         smlal2.  */
                                                      return 59;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01x1110xx1xxxxx100000xxxxxxxxxx
                                                         umlal.  */
                                                      return 90;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11x1110xx1xxxxx100000xxxxxxxxxx
                                                         umlal2.  */
                                                      return 91;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 28) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx010000xxxxxxxxxx
                                                             addhn.  */
                                                          return 50;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx010000xxxxxxxxxx
                                                             addhn2.  */
                                                          return 51;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx010000xxxxxxxxxx
                                                             raddhn.  */
                                                          return 82;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx010000xxxxxxxxxx
                                                             raddhn2.  */
                                                          return 83;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx110000xxxxxxxxxx
                                                             smull.  */
                                                          return 66;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx110000xxxxxxxxxx
                                                             smull2.  */
                                                          return 67;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx110000xxxxxxxxxx
                                                             umull.  */
                                                          return 94;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx110000xxxxxxxxxx
                                                             umull2.  */
                                                          return 95;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      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
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx000110000xxxxxxxxxx
                                                                 fabs.  */
                                                              return 801;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx100110000xxxxxxxxxx
                                                                 frintp.  */
                                                              return 810;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          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
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx110010000xxxxxxxxxx
                                                                 frinta.  */
                                                              return 816;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx111010000xxxxxxxxxx
                                                                 frintx.  */
                                                              return 818;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx11x110000xxxxxxxxxx
                                                             frinti.  */
                                                          return 820;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx001000xxxxxxxxxx
                                                             ssubl.  */
                                                          return 46;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx001000xxxxxxxxxx
                                                             ssubl2.  */
                                                          return 47;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx001000xxxxxxxxxx
                                                             usubl.  */
                                                          return 78;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx001000xxxxxxxxxx
                                                             usubl2.  */
                                                          return 79;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 3) & 0x1) == 0)
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xxxxx001000xxxxx00xxx
                                                             fcmp.  */
                                                          return 791;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xxxxx001000xxxxx10xxx
                                                             fcmpe.  */
                                                          return 793;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xxxxx001000xxxxx01xxx
                                                             fcmp.  */
                                                          return 795;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xxxxx001000xxxxx11xxx
                                                             fcmpe.  */
                                                          return 797;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x00x1110xx1xxxxx101000xxxxxxxxxx
                                                         smlsl.  */
                                                      return 62;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10x1110xx1xxxxx101000xxxxxxxxxx
                                                         smlsl2.  */
                                                      return 63;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01x1110xx1xxxxx101000xxxxxxxxxx
                                                         umlsl.  */
                                                      return 92;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11x1110xx1xxxxx101000xxxxxxxxxx
                                                         umlsl2.  */
                                                      return 93;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x00x1110xx1xxxxx011000xxxxxxxxxx
                                                         subhn.  */
                                                      return 54;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10x1110xx1xxxxx011000xxxxxxxxxx
                                                         subhn2.  */
                                                      return 55;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01x1110xx1xxxxx011000xxxxxxxxxx
                                                         rsubhn.  */
                                                      return 86;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11x1110xx1xxxxx011000xxxxxxxxxx
                                                         rsubhn2.  */
                                                      return 87;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0xx1110x01xxxxx111000xxxxxxxxxx
                                                         pmull.  */
                                                      return 70;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1xx1110x01xxxxx111000xxxxxxxxxx
                                                         pmull2.  */
                                                      return 72;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0xx1110x11xxxxx111000xxxxxxxxxx
                                                         pmull.  */
                                                      return 71;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1xx1110x11xxxxx111000xxxxxxxxxx
                                                         pmull2.  */
                                                      return 73;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 28) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx000100xxxxxxxxxx
                                                             saddw.  */
                                                          return 44;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx000100xxxxxxxxxx
                                                             saddw2.  */
                                                          return 45;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx000100xxxxxxxxxx
                                                             uaddw.  */
                                                          return 76;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx000100xxxxxxxxxx
                                                             uaddw2.  */
                                                          return 77;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x01110xx1xxxxx100100xxxxxxxxxx
                                                         sqdmlal.  */
                                                      return 60;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x01110xx1xxxxx100100xxxxxxxxxx
                                                         sqdmlal2.  */
                                                      return 61;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx010100xxxxxxxxxx
                                                             sabal.  */
                                                          return 52;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx010100xxxxxxxxxx
                                                             sabal2.  */
                                                          return 53;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx010100xxxxxxxxxx
                                                             uabal.  */
                                                          return 84;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx010100xxxxxxxxxx
                                                             uabal2.  */
                                                          return 85;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x01110xx1xxxxx110100xxxxxxxxxx
                                                         sqdmull.  */
                                                      return 68;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x01110xx1xxxxx110100xxxxxxxxxx
                                                         sqdmull2.  */
                                                      return 69;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx001100xxxxxxxxxx
                                                             ssubw.  */
                                                          return 48;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx001100xxxxxxxxxx
                                                             ssubw2.  */
                                                          return 49;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx001100xxxxxxxxxx
                                                             usubw.  */
                                                          return 80;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx001100xxxxxxxxxx
                                                             usubw2.  */
                                                          return 81;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x01110xx1xxxxx101100xxxxxxxxxx
                                                         sqdmlsl.  */
                                                      return 64;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x01110xx1xxxxx101100xxxxxxxxxx
                                                         sqdmlsl2.  */
                                                      return 65;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0001110xx1xxxxxx11100xxxxxxxxxx
                                                         sabdl.  */
                                                      return 56;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1001110xx1xxxxxx11100xxxxxxxxxx
                                                         sabdl2.  */
                                                      return 57;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0101110xx1xxxxxx11100xxxxxxxxxx
                                                         uabdl.  */
                                                      return 88;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1101110xx1xxxxxx11100xxxxxxxxxx
                                                         uabdl2.  */
                                                      return 89;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11110xx1xxxxxxxx100xxxxxxxxxx
                                             fmov.  */
                                          return 848;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x11110xx1xxxxxx00100xxxxxxxxxx
                                                     sqdmlal.  */
                                                  return 416;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x11110xx1xxxxxx10100xxxxxxxxxx
                                                     sqdmull.  */
                                                  return 418;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11110xx1xxxxxxx1100xxxxxxxxxx
                                                 sqdmlsl.  */
                                              return 417;
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx000010xxxxxxxxxx
                                                         rev64.  */
                                                      return 156;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000010xxxxxxxxxx
                                                         rev32.  */
                                                      return 207;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11110xx1xxxxx000010xxxxxxxxxx
                                                         fmul.  */
                                                      return 822;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11110xx1xxxxx000010xxxxxxxxxx
                                                         sha1h.  */
                                                      return 669;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx0100010xxxxxxxxxx
                                                             cmgt.  */
                                                          return 164;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0100010xxxxxxxxxx
                                                             cmge.  */
                                                          return 213;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1100010xxxxxxxxxx
                                                                     frintn.  */
                                                                  return 176;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1100010xxxxxxxxxx
                                                                     frinta.  */
                                                                  return 224;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx011101x1x0xx1100010xxxxxxxxxx
                                                                 frintp.  */
                                                              return 196;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1100010xxxxxxxxxx
                                                                     frintn.  */
                                                                  return 177;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1100010xxxxxxxxxx
                                                                     frinta.  */
                                                                  return 225;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx011101x1x1xx1100010xxxxxxxxxx
                                                                 frintp.  */
                                                              return 197;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx100010xxxxxxxxxx
                                                             fnmul.  */
                                                          return 838;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx100010xxxxxxxxxx
                                                             cmgt.  */
                                                          return 476;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx100010xxxxxxxxxx
                                                         cmge.  */
                                                      return 505;
                                                    }
                                                }
                                            }
                                        }
                                      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
                                                                 xx001110xx1x0xx0010010xxxxxxxxxx
                                                                 cls.  */
                                                              return 160;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x0xx0010010xxxxxxxxxx
                                                                 clz.  */
                                                              return 210;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx0010010xxxxxxxxxx
                                                             aese.  */
                                                          return 665;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0001110xx1xxxx1010010xxxxxxxxxx
                                                                 sqxtn.  */
                                                              return 170;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1001110xx1xxxx1010010xxxxxxxxxx
                                                                 sqxtn2.  */
                                                              return 171;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1010010xxxxxxxxxx
                                                                 uqxtn.  */
                                                              return 220;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1010010xxxxxxxxxx
                                                                 uqxtn2.  */
                                                              return 221;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx010010xxxxxxxxxx
                                                             fmax.  */
                                                          return 830;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx010010xxxxxxxxxx
                                                             sqxtn.  */
                                                          return 480;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx010010xxxxxxxxxx
                                                         uqxtn.  */
                                                      return 509;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx001110xx100xx0110010xxxxxxxxxx
                                                                     fcmgt.  */
                                                                  return 188;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx101110xx100xx0110010xxxxxxxxxx
                                                                     fcmge.  */
                                                                  return 239;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              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 >> 28) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmv.  */
                                                                      return 35;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmv.  */
                                                                      return 34;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmp.  */
                                                                      return 533;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmp.  */
                                                                      return 532;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 28) & 0x1) == 0)
                                                                {
                                                                  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
                                                                         xx0111101x110xx0110010xxxxxxxxxx
                                                                         fminnmp.  */
                                                                      return 539;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x110xx0110010xxxxxxxxxx
                                                                         fminnmp.  */
                                                                      return 538;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmgt.  */
                                                              return 189;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmge.  */
                                                              return 240;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmgt.  */
                                                              return 490;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmge.  */
                                                              return 520;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1110010xxxxxxxxxx
                                                                     fcvtas.  */
                                                                  return 184;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1110010xxxxxxxxxx
                                                                     fcvtau.  */
                                                                  return 232;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x0xx1110010xxxxxxxxxx
                                                                     fcvtas.  */
                                                                  return 485;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x0xx1110010xxxxxxxxxx
                                                                     fcvtau.  */
                                                                  return 515;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x11101x1x0xx1110010xxxxxxxxxx
                                                                 urecpe.  */
                                                              return 204;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x11101x1x0xx1110010xxxxxxxxxx
                                                                 ursqrte.  */
                                                              return 251;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtas.  */
                                                              return 185;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtau.  */
                                                              return 233;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtas.  */
                                                              return 486;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtau.  */
                                                              return 516;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  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
                                                             xx001110xx1xxxx0001010xxxxxxxxxx
                                                             saddlp.  */
                                                          return 158;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0001010xxxxxxxxxx
                                                             uaddlp.  */
                                                          return 208;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0001110xx1xxxx1001010xxxxxxxxxx
                                                                 xtn.  */
                                                              return 168;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1001110xx1xxxx1001010xxxxxxxxxx
                                                                 xtn2.  */
                                                              return 169;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1001010xxxxxxxxxx
                                                                 sqxtun.  */
                                                              return 216;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1001010xxxxxxxxxx
                                                                 sqxtun2.  */
                                                              return 217;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  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)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx10xxx0101010xxxxxxxxxx
                                                             cmlt.  */
                                                          return 166;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx10xxx0101010xxxxxxxxxx
                                                             cmlt.  */
                                                          return 478;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0x1110xx11xxx0101010xxxxxxxxxx
                                                             smaxv.  */
                                                          return 28;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1x1110xx11xxx0101010xxxxxxxxxx
                                                             umaxv.  */
                                                          return 32;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  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
                                                                         xx0011100x100xx1101010xxxxxxxxxx
                                                                         fcvtns.  */
                                                                      return 180;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x100xx1101010xxxxxxxxxx
                                                                         fcvtnu.  */
                                                                      return 228;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x100xx1101010xxxxxxxxxx
                                                                         fcvtns.  */
                                                                      return 481;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x100xx1101010xxxxxxxxxx
                                                                         fcvtnu.  */
                                                                      return 511;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 28) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x100xx1101010xxxxxxxxxx
                                                                         fcvtps.  */
                                                                      return 200;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x100xx1101010xxxxxxxxxx
                                                                         fcvtpu.  */
                                                                      return 247;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111101x100xx1101010xxxxxxxxxx
                                                                         fcvtps.  */
                                                                      return 495;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x100xx1101010xxxxxxxxxx
                                                                         fcvtpu.  */
                                                                      return 523;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x1110xx110xx1101010xxxxxxxxxx
                                                                 sminv.  */
                                                              return 29;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x1110xx110xx1101010xxxxxxxxxx
                                                                 uminv.  */
                                                              return 33;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 181;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 229;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 482;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 512;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 201;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 248;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 496;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 524;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      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
                                                                 xx001110xx1x0xx0011010xxxxxxxxxx
                                                                 sadalp.  */
                                                              return 162;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x0xx0011010xxxxxxxxxx
                                                                 uadalp.  */
                                                              return 211;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx0011010xxxxxxxxxx
                                                             aesmc.  */
                                                          return 667;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0001110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtn.  */
                                                              return 172;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1001110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtn2.  */
                                                              return 173;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtxn.  */
                                                              return 222;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtxn2.  */
                                                              return 223;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx011110xx1xxxxx011010xxxxxxxxxx
                                                         fmaxnm.  */
                                                      return 834;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx011010xxxxxxxxxx
                                                         fcvtxn.  */
                                                      return 510;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 19) & 0x1) == 0)
                                                {
                                                  if (((word >> 28) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110xx1x0xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 192;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1x0xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 493;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 28) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110xx1x1xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 193;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1x1xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 494;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx01110xx1xxxxx000110xxxxxxxxxx
                                                     rev16.  */
                                                  return 157;
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11110xx1xxxxx000110xxxxxxxxxx
                                                         fdiv.  */
                                                      return 824;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11110xx1xxxxx000110xxxxxxxxxx
                                                         sha1su1.  */
                                                      return 670;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 28) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx0100110xxxxxxxxxx
                                                             cmeq.  */
                                                          return 165;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0100110xxxxxxxxxx
                                                             cmle.  */
                                                          return 214;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011110xx1xxxx0100110xxxxxxxxxx
                                                             cmeq.  */
                                                          return 477;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx111110xx1xxxx0100110xxxxxxxxxx
                                                             cmle.  */
                                                          return 506;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x11100x1x0xx1100110xxxxxxxxxx
                                                                 frintm.  */
                                                              return 178;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x11100x1x0xx1100110xxxxxxxxxx
                                                                 frintx.  */
                                                              return 226;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x11101x1x0xx1100110xxxxxxxxxx
                                                                 frintz.  */
                                                              return 198;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x11101x1x0xx1100110xxxxxxxxxx
                                                                 frinti.  */
                                                              return 245;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x11100x1x1xx1100110xxxxxxxxxx
                                                                 frintm.  */
                                                              return 179;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x11100x1x1xx1100110xxxxxxxxxx
                                                                 frintx.  */
                                                              return 227;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x11101x1x1xx1100110xxxxxxxxxx
                                                                 frintz.  */
                                                              return 199;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x11101x1x1xx1100110xxxxxxxxxx
                                                                 frinti.  */
                                                              return 246;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1x0xxx010110xxxxxxxxxx
                                                             cnt.  */
                                                          return 161;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110x01x0xxx010110xxxxxxxxxx
                                                                 not.  */
                                                              return 236;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110x11x0xxx010110xxxxxxxxxx
                                                                 rbit.  */
                                                              return 238;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx01110xx1x1xxx010110xxxxxxxxxx
                                                         aesd.  */
                                                      return 666;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxx010110xxxxxxxxxx
                                                     fmin.  */
                                                  return 832;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx001110xx100xx0110110xxxxxxxxxx
                                                                     fcmeq.  */
                                                                  return 190;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx101110xx100xx0110110xxxxxxxxxx
                                                                     fcmle.  */
                                                                  return 241;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              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
                                                                 xx0x1110xx110xx0110110xxxxxxxxxx
                                                                 faddp.  */
                                                              return 535;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x1110xx110xx0110110xxxxxxxxxx
                                                                 faddp.  */
                                                              return 534;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 191;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmle.  */
                                                              return 242;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 492;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmle.  */
                                                              return 522;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 186;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 234;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x0xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 487;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x0xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 517;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x0xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 205;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x0xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 252;
                                                                }
                                                            }
                                                          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 >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 187;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 235;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 488;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 518;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 206;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 253;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 500;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 528;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 28) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx10xxx0001110xxxxxxxxxx
                                                                 suqadd.  */
                                                              return 159;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx10xxx0001110xxxxxxxxxx
                                                                 usqadd.  */
                                                              return 209;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx11xxx0001110xxxxxxxxxx
                                                                 saddlv.  */
                                                              return 27;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx11xxx0001110xxxxxxxxxx
                                                                 uaddlv.  */
                                                              return 31;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x01110xx1xxxx1001110xxxxxxxxxx
                                                             shll.  */
                                                          return 218;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x01110xx1xxxx1001110xxxxxxxxxx
                                                             shll2.  */
                                                          return 219;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx001110xxxxxxxxxx
                                                             fsub.  */
                                                          return 828;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx001110xxxxxxxxxx
                                                             suqadd.  */
                                                          return 474;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx001110xxxxxxxxxx
                                                         usqadd.  */
                                                      return 503;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 28) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx0101110xxxxxxxxxx
                                                             abs.  */
                                                          return 167;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0101110xxxxxxxxxx
                                                             neg.  */
                                                          return 215;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011110xx1xxxx0101110xxxxxxxxxx
                                                             abs.  */
                                                          return 479;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx111110xx1xxxx0101110xxxxxxxxxx
                                                             neg.  */
                                                          return 507;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  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
                                                                         xx0011100x100xx1101110xxxxxxxxxx
                                                                         fcvtms.  */
                                                                      return 182;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x100xx1101110xxxxxxxxxx
                                                                         fcvtmu.  */
                                                                      return 230;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x100xx1101110xxxxxxxxxx
                                                                         fcvtms.  */
                                                                      return 483;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x100xx1101110xxxxxxxxxx
                                                                         fcvtmu.  */
                                                                      return 513;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 28) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x100xx1101110xxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 202;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x100xx1101110xxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 249;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111101x100xx1101110xxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 497;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x100xx1101110xxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 525;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx01110xx110xx1101110xxxxxxxxxx
                                                                 addv.  */
                                                              return 30;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx110xx1101110xxxxxxxxxx
                                                                 addp.  */
                                                              return 531;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtms.  */
                                                                  return 183;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtmu.  */
                                                                  return 231;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtms.  */
                                                                  return 484;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtmu.  */
                                                                  return 514;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 28) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 203;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 250;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 498;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 526;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      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
                                                                 xx001110xx1x0xx0011110xxxxxxxxxx
                                                                 sqabs.  */
                                                              return 163;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x0xx0011110xxxxxxxxxx
                                                                 sqneg.  */
                                                              return 212;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx0011110xxxxxxxxxx
                                                             aesimc.  */
                                                          return 668;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x01110xx1xxxx1011110xxxxxxxxxx
                                                             fcvtl.  */
                                                          return 174;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x01110xx1xxxx1011110xxxxxxxxxx
                                                             fcvtl2.  */
                                                          return 175;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx011110xxxxxxxxxx
                                                             fminnm.  */
                                                          return 836;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx011110xxxxxxxxxx
                                                             sqabs.  */
                                                          return 475;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx011110xxxxxxxxxx
                                                         sqneg.  */
                                                      return 504;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0x1110xx100xx0111110xxxxxxxxxx
                                                                 fabs.  */
                                                              return 194;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1x1110xx100xx0111110xxxxxxxxxx
                                                                 fneg.  */
                                                              return 243;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 28) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011100x110xx0111110xxxxxxxxxx
                                                                         fmaxv.  */
                                                                      return 37;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x110xx0111110xxxxxxxxxx
                                                                         fmaxv.  */
                                                                      return 36;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x110xx0111110xxxxxxxxxx
                                                                         fmaxp.  */
                                                                      return 537;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x110xx0111110xxxxxxxxxx
                                                                         fmaxp.  */
                                                                      return 536;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 28) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x110xx0111110xxxxxxxxxx
                                                                         fminv.  */
                                                                      return 41;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x110xx0111110xxxxxxxxxx
                                                                         fminv.  */
                                                                      return 40;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111101x110xx0111110xxxxxxxxxx
                                                                         fminp.  */
                                                                      return 541;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x110xx0111110xxxxxxxxxx
                                                                         fminp.  */
                                                                      return 540;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0x1110xx1x1xx0111110xxxxxxxxxx
                                                             fabs.  */
                                                          return 195;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1x1110xx1x1xx0111110xxxxxxxxxx
                                                             fneg.  */
                                                          return 244;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x0xx1111110xxxxxxxxxx
                                                             fsqrt.  */
                                                          return 254;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1x0xx1111110xxxxxxxxxx
                                                             frecpx.  */
                                                          return 501;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 28) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx1111110xxxxxxxxxx
                                                             fsqrt.  */
                                                          return 255;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1x1xx1111110xxxxxxxxxx
                                                             frecpx.  */
                                                          return 502;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      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
                                                         xx001110xx1xxxxx000001xxxxxxxxxx
                                                         shadd.  */
                                                      return 262;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000001xxxxxxxxxx
                                                         uhadd.  */
                                                      return 314;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100001xxxxxxxxxx
                                                         add.  */
                                                      return 277;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100001xxxxxxxxxx
                                                         sub.  */
                                                      return 329;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx010001xxxxxxxxxx
                                                         sshl.  */
                                                      return 269;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010001xxxxxxxxxx
                                                         ushl.  */
                                                      return 321;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx110001xxxxxxxxxx
                                                             fmaxnm.  */
                                                          return 285;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx110001xxxxxxxxxx
                                                             fmaxnmp.  */
                                                          return 336;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110001xxxxxxxxxx
                                                             fminnm.  */
                                                          return 301;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx110001xxxxxxxxxx
                                                             fminnmp.  */
                                                          return 352;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx001001xxxxxxxxxx
                                                         shsub.  */
                                                      return 265;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001001xxxxxxxxxx
                                                         uhsub.  */
                                                      return 317;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101001xxxxxxxxxx
                                                         smaxp.  */
                                                      return 281;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101001xxxxxxxxxx
                                                         umaxp.  */
                                                      return 333;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx011001xxxxxxxxxx
                                                         smax.  */
                                                      return 273;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011001xxxxxxxxxx
                                                         umax.  */
                                                      return 325;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111001xxxxxxxxxx
                                                             fcmeq.  */
                                                          return 293;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111001xxxxxxxxxx
                                                             fcmge.  */
                                                          return 342;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011101x1xxxxx111001xxxxxxxxxx
                                                         fcmgt.  */
                                                      return 356;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx000101xxxxxxxxxx
                                                         srhadd.  */
                                                      return 264;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000101xxxxxxxxxx
                                                         urhadd.  */
                                                      return 316;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100101xxxxxxxxxx
                                                         mla.  */
                                                      return 279;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100101xxxxxxxxxx
                                                         mls.  */
                                                      return 331;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx010101xxxxxxxxxx
                                                         srshl.  */
                                                      return 271;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010101xxxxxxxxxx
                                                         urshl.  */
                                                      return 323;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx110101xxxxxxxxxx
                                                             fadd.  */
                                                          return 289;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx110101xxxxxxxxxx
                                                             faddp.  */
                                                          return 338;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110101xxxxxxxxxx
                                                             fsub.  */
                                                          return 305;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx110101xxxxxxxxxx
                                                             fabd.  */
                                                          return 354;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx001101xxxxxxxxxx
                                                         cmgt.  */
                                                      return 267;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001101xxxxxxxxxx
                                                         cmhi.  */
                                                      return 319;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101101xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 283;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101101xxxxxxxxxx
                                                         sqrdmulh.  */
                                                      return 335;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx011101xxxxxxxxxx
                                                         sabd.  */
                                                      return 275;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011101xxxxxxxxxx
                                                         uabd.  */
                                                      return 327;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111101xxxxxxxxxx
                                                             fmax.  */
                                                          return 295;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111101xxxxxxxxxx
                                                             fmaxp.  */
                                                          return 346;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx111101xxxxxxxxxx
                                                             fmin.  */
                                                          return 307;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx111101xxxxxxxxxx
                                                             fminp.  */
                                                          return 360;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  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 >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx00001xxxxxxxxxx
                                                         add.  */
                                                      return 559;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx10001xxxxxxxxxx
                                                         sshl.  */
                                                      return 557;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx1001xxxxxxxxxx
                                                     fcmeq.  */
                                                  return 549;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx0101xxxxxxxxxx
                                                     srshl.  */
                                                  return 558;
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx0x1101xxxxxxxxxx
                                                         cmgt.  */
                                                      return 555;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         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
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx0x0101xxxxxxxxxx
                                                     urshl.  */
                                                  return 579;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx1x0101xxxxxxxxxx
                                                     fabd.  */
                                                  return 570;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx0x1101xxxxxxxxxx
                                                     cmhi.  */
                                                  return 576;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx1x1101xxxxxxxxxx
                                                     sqrdmulh.  */
                                                  return 565;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              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
                                                         xx001110xx1xxxxx000011xxxxxxxxxx
                                                         sqadd.  */
                                                      return 263;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000011xxxxxxxxxx
                                                         uqadd.  */
                                                      return 315;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100011xxxxxxxxxx
                                                         cmtst.  */
                                                      return 278;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100011xxxxxxxxxx
                                                         cmeq.  */
                                                      return 330;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx010011xxxxxxxxxx
                                                         sqshl.  */
                                                      return 270;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010011xxxxxxxxxx
                                                         uqshl.  */
                                                      return 322;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011100x1xxxxx110011xxxxxxxxxx
                                                         fmla.  */
                                                      return 287;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011101x1xxxxx110011xxxxxxxxxx
                                                         fmls.  */
                                                      return 303;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx001011xxxxxxxxxx
                                                         sqsub.  */
                                                      return 266;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001011xxxxxxxxxx
                                                         uqsub.  */
                                                      return 318;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101011xxxxxxxxxx
                                                         sminp.  */
                                                      return 282;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101011xxxxxxxxxx
                                                         uminp.  */
                                                      return 334;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx011011xxxxxxxxxx
                                                         smin.  */
                                                      return 274;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011011xxxxxxxxxx
                                                         umin.  */
                                                      return 326;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011100x1xxxxx111011xxxxxxxxxx
                                                         facge.  */
                                                      return 344;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011101x1xxxxx111011xxxxxxxxxx
                                                         facgt.  */
                                                      return 358;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110001xxxxx000111xxxxxxxxxx
                                                                 and.  */
                                                              return 299;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110001xxxxx000111xxxxxxxxxx
                                                                 eor.  */
                                                              return 350;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110101xxxxx000111xxxxxxxxxx
                                                                 orr.  */
                                                              return 311;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110101xxxxx000111xxxxxxxxxx
                                                                 bit.  */
                                                              return 362;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110011xxxxx000111xxxxxxxxxx
                                                                 bic.  */
                                                              return 300;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110011xxxxx000111xxxxxxxxxx
                                                                 bsl.  */
                                                              return 351;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110111xxxxx000111xxxxxxxxxx
                                                                 orn.  */
                                                              return 313;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110111xxxxx000111xxxxxxxxxx
                                                                 bif.  */
                                                              return 363;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100111xxxxxxxxxx
                                                         mul.  */
                                                      return 280;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100111xxxxxxxxxx
                                                         pmul.  */
                                                      return 332;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx010111xxxxxxxxxx
                                                         sqrshl.  */
                                                      return 272;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010111xxxxxxxxxx
                                                         uqrshl.  */
                                                      return 324;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx110111xxxxxxxxxx
                                                         fmulx.  */
                                                      return 291;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx110111xxxxxxxxxx
                                                         fmul.  */
                                                      return 340;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx001111xxxxxxxxxx
                                                         cmge.  */
                                                      return 268;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001111xxxxxxxxxx
                                                         cmhs.  */
                                                      return 320;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx01110xx1xxxxx101111xxxxxxxxxx
                                                     addp.  */
                                                  return 284;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx011111xxxxxxxxxx
                                                         saba.  */
                                                      return 276;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011111xxxxxxxxxx
                                                         uaba.  */
                                                      return 328;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111111xxxxxxxxxx
                                                             frecps.  */
                                                          return 297;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111111xxxxxxxxxx
                                                             fdiv.  */
                                                          return 348;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011101x1xxxxx111111xxxxxxxxxx
                                                         frsqrts.  */
                                                      return 309;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                             fcsel.  */
                                          return 850;
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx000011xxxxxxxxxx
                                                             sqadd.  */
                                                          return 542;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx100011xxxxxxxxxx
                                                             cmtst.  */
                                                          return 560;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx10011xxxxxxxxxx
                                                         sqshl.  */
                                                      return 544;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx1011xxxxxxxxxx
                                                     sqsub.  */
                                                  return 543;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx0x0111xxxxxxxxxx
                                                         sqrshl.  */
                                                      return 545;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx1x0111xxxxxxxxxx
                                                         fmulx.  */
                                                      return 547;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx01111xxxxxxxxxx
                                                         cmge.  */
                                                      return 556;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10111100x1xxxxxx11111xxxxxxxxxx
                                                             frecps.  */
                                                          return 551;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10111101x1xxxxxx11111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 553;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx000011xxxxxxxxxx
                                                         uqadd.  */
                                                      return 561;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx100011xxxxxxxxxx
                                                         cmeq.  */
                                                      return 581;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx10011xxxxxxxxxx
                                                     uqshl.  */
                                                  return 563;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx01011xxxxxxxxxx
                                                     uqsub.  */
                                                  return 562;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx1111100x1xxxxxx11011xxxxxxxxxx
                                                         facge.  */
                                                      return 568;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx1111101x1xxxxxx11011xxxxxxxxxx
                                                         facgt.  */
                                                      return 574;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111110xx1xxxxxxx0111xxxxxxxxxx
                                                 uqrshl.  */
                                              return 564;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111110xx1xxxxxxx1111xxxxxxxxxx
                                                 cmhs.  */
                                              return 577;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 15) & 0x1) == 0)
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01111xxxxxxxx0000x0xxxxxxxxxx
                                             mla.  */
                                          return 117;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01111xxxxxxxx0100x0xxxxxxxxxx
                                             mls.  */
                                          return 120;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0010x0xxxxxxxxxx
                                                     smlal.  */
                                                  return 96;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0010x0xxxxxxxxxx
                                                     smlal2.  */
                                                  return 97;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx0010x0xxxxxxxxxx
                                                     umlal.  */
                                                  return 118;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx0010x0xxxxxxxxxx
                                                     umlal2.  */
                                                  return 119;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0110x0xxxxxxxxxx
                                                     smlsl.  */
                                                  return 100;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0110x0xxxxxxxxxx
                                                     smlsl2.  */
                                                  return 101;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx0110x0xxxxxxxxxx
                                                     umlsl.  */
                                                  return 121;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx0110x0xxxxxxxxxx
                                                     umlsl2.  */
                                                  return 122;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011110xxxxxxx0001x0xxxxxxxxxx
                                                     fmla.  */
                                                  return 112;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx0001x0xxxxxxxxxx
                                                     fmla.  */
                                                  return 111;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011110xxxxxxx0101x0xxxxxxxxxx
                                                     fmls.  */
                                                  return 114;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx0101x0xxxxxxxxxx
                                                     fmls.  */
                                                  return 113;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0011x0xxxxxxxxxx
                                                     sqdmlal.  */
                                                  return 98;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0011x0xxxxxxxxxx
                                                     sqdmlal2.  */
                                                  return 99;
                                                }
                                            }
                                          else
                                            {
                                              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
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001111xxxxxxxx0xx0x1xxxxxxxxxx
                                         movi.  */
                                      return 131;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx101111xxxxxxxx0xx0x1xxxxxxxxxx
                                         mvni.  */
                                      return 139;
                                    }
                                }
                              else
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001111xxxxxxxx0xx1x1xxxxxxxxxx
                                         orr.  */
                                      return 132;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx101111xxxxxxxx0xx1x1xxxxxxxxxx
                                         bic.  */
                                      return 140;
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                         fmadd.  */
                                      return 840;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                         fnmadd.  */
                                      return 844;
                                    }
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111110xxxxxxx000xx0xxxxxxxxxx
                                                     fmla.  */
                                                  return 425;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111111xxxxxxx000xx0xxxxxxxxxx
                                                     fmla.  */
                                                  return 424;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111110xxxxxxx010xx0xxxxxxxxxx
                                                     fmls.  */
                                                  return 427;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111111xxxxxxx010xx0xxxxxxxxxx
                                                     fmls.  */
                                                  return 426;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx001xx0xxxxxxxxxx
                                                 sqdmlal.  */
                                              return 419;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx011xx0xxxxxxxxxx
                                                 sqdmlsl.  */
                                              return 420;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx0x00x1xxxxxxxxxx
                                                 sshr.  */
                                              return 584;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx0x10x1xxxxxxxxxx
                                                 srshr.  */
                                              return 586;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0001x1xxxxxxxxxx
                                                     ssra.  */
                                                  return 585;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0101x1xxxxxxxxxx
                                                     shl.  */
                                                  return 588;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0011x1xxxxxxxxxx
                                                     srsra.  */
                                                  return 587;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0111x1xxxxxxxxxx
                                                     sqshl.  */
                                                  return 589;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0000xxxxxxxxxxxx
                                             ushr.  */
                                          return 596;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0100xxxxxxxxxxxx
                                             sri.  */
                                          return 600;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0010xxxxxxxxxxxx
                                             urshr.  */
                                          return 598;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0110xxxxxxxxxxxx
                                             sqshlu.  */
                                          return 602;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0001xxxxxxxxxxxx
                                             usra.  */
                                          return 597;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0101xxxxxxxxxxxx
                                             sli.  */
                                          return 601;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0011xxxxxxxxxxxx
                                             ursra.  */
                                          return 599;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0111xxxxxxxxxxxx
                                             uqshl.  */
                                          return 603;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 14) & 0x1) == 0)
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01111xxxxxxxx1000x0xxxxxxxxxx
                                             mul.  */
                                          return 104;
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx1010x0xxxxxxxxxx
                                                     smull.  */
                                                  return 105;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx1010x0xxxxxxxxxx
                                                     smull2.  */
                                                  return 106;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx1010x0xxxxxxxxxx
                                                     umull.  */
                                                  return 123;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx1010x0xxxxxxxxxx
                                                     umull2.  */
                                                  return 124;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011110xxxxxxx1001x0xxxxxxxxxx
                                                     fmul.  */
                                                  return 116;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1011110xxxxxxx1001x0xxxxxxxxxx
                                                     fmulx.  */
                                                  return 126;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx1001x0xxxxxxxxxx
                                                     fmul.  */
                                                  return 115;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1011111xxxxxxx1001x0xxxxxxxxxx
                                                     fmulx.  */
                                                  return 125;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x01111xxxxxxxx1011x0xxxxxxxxxx
                                                 sqdmull.  */
                                              return 107;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x01111xxxxxxxx1011x0xxxxxxxxxx
                                                 sqdmull2.  */
                                              return 108;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx10x001xxxxxxxxxx
                                                 movi.  */
                                              return 133;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx10x001xxxxxxxxxx
                                                 mvni.  */
                                              return 141;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx10x101xxxxxxxxxx
                                                 orr.  */
                                              return 134;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx10x101xxxxxxxxxx
                                                 bic.  */
                                              return 142;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx10x011xxxxxxxxxx
                                                     rshrn.  */
                                                  return 376;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx10x011xxxxxxxxxx
                                                     rshrn2.  */
                                                  return 377;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx10x011xxxxxxxxxx
                                                     sqrshrun.  */
                                                  return 400;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx10x011xxxxxxxxxx
                                                     sqrshrun2.  */
                                                  return 401;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx10x111xxxxxxxxxx
                                                     sqrshrn.  */
                                                  return 380;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx10x111xxxxxxxxxx
                                                     sqrshrn2.  */
                                                  return 381;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx10x111xxxxxxxxxx
                                                     uqrshrn.  */
                                                  return 404;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx10x111xxxxxxxxxx
                                                     uqrshrn2.  */
                                                  return 405;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 13) & 0x1) == 0)
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01111xxxxxxxx1100x0xxxxxxxxxx
                                             sqdmulh.  */
                                          return 109;
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1101x0xxxxxxxxxx
                                                 sqrdmulh.  */
                                              return 110;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 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
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx101111xxxxxxxx1110xxxxxxxxxxxx
                                             movi.  */
                                          return 144;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 10) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx01111xxxxxxxx1111x0xxxxxxxxxx
                                             sqrdmlsh.  */
                                          return 128;
                                        }
                                      else
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001111xxxxxxxx111101xxxxxxxxxx
                                                     fmov.  */
                                                  return 137;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101111xxxxxxxx111101xxxxxxxxxx
                                                     fmov.  */
                                                  return 146;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001111xxxxxxxx111111xxxxxxxxxx
                                                     fmov.  */
                                                  return 138;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101111xxxxxxxx111111xxxxxxxxxx
                                                     fcvtzu.  */
                                                  return 412;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                         fmsub.  */
                                      return 842;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                         fnmsub.  */
                                      return 846;
                                    }
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1011111xxxxxxxx1xx0x0xxxxxxxxxx
                                             sqdmulh.  */
                                          return 422;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10111110xxxxxxx1001x0xxxxxxxxxx
                                                         fmul.  */
                                                      return 429;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10111111xxxxxxx1001x0xxxxxxxxxx
                                                         fmul.  */
                                                      return 428;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx1101x0xxxxxxxxxx
                                                     sqrdmulh.  */
                                                  return 423;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x11x0xxxxxxxxxx
                                                 sqdmull.  */
                                              return 421;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1xx001xxxxxxxxxx
                                                 scvtf.  */
                                              return 592;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1xx101xxxxxxxxxx
                                                 sqshrn.  */
                                              return 590;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x0x11xxxxxxxxxx
                                                 sqrshrn.  */
                                              return 591;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x1x11xxxxxxxxxx
                                                 fcvtzs.  */
                                              return 594;
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111110xxxxxxx100xx0xxxxxxxxxx
                                                 fmulx.  */
                                              return 431;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111111xxxxxxx100xx0xxxxxxxxxx
                                                 fmulx.  */
                                              return 430;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx110xx0xxxxxxxxxx
                                             sqrdmlah.  */
                                          return 432;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111111xxxxxxxx1x1xx0xxxxxxxxxx
                                         sqrdmlsh.  */
                                      return 433;
                                    }
                                }
                              else
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x0001xxxxxxxxxx
                                                 sqshrun.  */
                                              return 604;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x1001xxxxxxxxxx
                                                 ucvtf.  */
                                              return 608;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx1xx101xxxxxxxxxx
                                             uqshrn.  */
                                          return 606;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx1xx011xxxxxxxxxx
                                             sqrshrun.  */
                                          return 605;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x0111xxxxxxxxxx
                                                 uqrshrn.  */
                                              return 607;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x1111xxxxxxxxxx
                                                 fcvtzu.  */
                                              return 610;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* Lookup opcode WORD in the opcode table.  N.B. all alias
   opcodes are ignored here.  */

const aarch64_opcode *
aarch64_opcode_lookup (uint32_t word)
{
  return aarch64_opcode_table + aarch64_opcode_lookup_1 (word);
}

const aarch64_opcode *
aarch64_find_next_opcode (const aarch64_opcode *opcode)
{
  /* Use the index as the key to locate the next opcode.  */
  int key = opcode - aarch64_opcode_table;
  int value;
  switch (key)
    {
    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: return NULL;		/* msr --> 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;
    }

  return aarch64_opcode_table + value;
}

const aarch64_opcode *
aarch64_find_alias_opcode (const aarch64_opcode *opcode)
{
  /* Use the index as the key to locate the alias opcode.  */
  int key = opcode - aarch64_opcode_table;
  int value;
  switch (key)
    {
    case 2: value = 3; break;	/* sbc --> ngc.  */
    case 4: value = 5; break;	/* sbcs --> ngcs.  */
    case 7: value = 8; break;	/* adds --> cmn.  */
    case 10: value = 11; break;	/* subs --> cmp.  */
    case 12: value = 13; break;	/* add --> mov.  */
    case 14: value = 15; break;	/* adds --> cmn.  */
    case 17: value = 18; break;	/* subs --> cmp.  */
    case 20: value = 21; break;	/* adds --> cmn.  */
    case 22: value = 23; break;	/* sub --> neg.  */
    case 24: value = 26; break;	/* subs --> negs.  */
    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;
    }

  return aarch64_opcode_table + value;
}

const aarch64_opcode *
aarch64_find_next_alias_opcode (const aarch64_opcode *opcode)
{
  /* Use the index as the key to locate the next opcode.  */
  int key = opcode - aarch64_opcode_table;
  int value;
  switch (key)
    {
    case 3: value = 2; break;	/* ngc --> sbc.  */
    case 5: value = 4; break;	/* ngcs --> sbcs.  */
    case 8: value = 7; break;	/* cmn --> adds.  */
    case 11: value = 10; break;	/* cmp --> subs.  */
    case 13: value = 12; break;	/* mov --> add.  */
    case 15: value = 14; break;	/* cmn --> adds.  */
    case 18: value = 17; break;	/* cmp --> subs.  */
    case 21: value = 20; break;	/* cmn --> adds.  */
    case 23: value = 22; break;	/* neg --> sub.  */
    case 26: value = 25; break;	/* negs --> cmp.  */
    case 25: value = 24; break;	/* cmp --> subs.  */
    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;
    }

  return aarch64_opcode_table + value;
}

int
aarch64_extract_operand (const aarch64_operand *self,
			   aarch64_opnd_info *info,
			   aarch64_insn code, const aarch64_inst *inst)
{
  /* Use the index as the key.  */
  int key = self - aarch64_operands;
  switch (key)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 6:
    case 7:
    case 9:
    case 10:
    case 11:
    case 15:
    case 16:
    case 17:
    case 18:
    case 20:
    case 21:
    case 22:
    case 23:
    case 24:
    case 25:
    case 26:
    case 27:
    case 28:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
    case 154:
    case 155:
    case 156:
    case 169:
    case 170:
    case 171:
    case 172:
    case 173:
    case 174:
    case 175:
    case 176:
    case 177:
    case 181:
    case 184:
      return aarch64_ext_regno (self, info, code, inst);
    case 8:
      return aarch64_ext_regrt_sysins (self, info, code, inst);
    case 12:
      return aarch64_ext_regno_pair (self, info, code, inst);
    case 13:
      return aarch64_ext_reg_extended (self, info, code, inst);
    case 14:
      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:
      return aarch64_ext_reglane (self, info, code, inst);
    case 32:
      return aarch64_ext_reglist (self, info, code, inst);
    case 33:
      return aarch64_ext_ldst_reglist (self, info, code, inst);
    case 34:
      return aarch64_ext_ldst_reglist_r (self, info, code, inst);
    case 35:
      return aarch64_ext_ldst_elemlist (self, info, code, inst);
    case 36:
    case 37:
    case 38:
    case 48:
    case 49:
    case 50:
    case 51:
    case 52:
    case 53:
    case 54:
    case 55:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 71:
    case 72:
    case 73:
    case 74:
    case 75:
    case 144:
    case 146:
    case 161:
    case 162:
    case 163:
    case 164:
    case 165:
    case 166:
    case 167:
    case 168:
      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 43:
      return aarch64_ext_advsimd_imm_modified (self, info, code, inst);
    case 44:
      return aarch64_ext_shll_imm (self, info, code, inst);
    case 47:
    case 135:
      return aarch64_ext_fpimm (self, info, code, inst);
    case 61:
    case 142:
      return aarch64_ext_limm (self, info, code, inst);
    case 62:
      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 67:
    case 140:
      return aarch64_ext_imm_rotate2 (self, info, code, inst);
    case 68:
    case 139:
      return aarch64_ext_imm_rotate1 (self, info, code, inst);
    case 69:
    case 70:
      return aarch64_ext_cond (self, info, code, inst);
    case 76:
    case 83:
      return aarch64_ext_addr_simple (self, info, code, inst);
    case 77:
      return aarch64_ext_addr_regoff (self, info, code, inst);
    case 78:
    case 79:
    case 80:
      return aarch64_ext_addr_simm (self, info, code, inst);
    case 81:
      return aarch64_ext_addr_simm10 (self, info, code, inst);
    case 82:
      return aarch64_ext_addr_uimm12 (self, info, code, inst);
    case 84:
      return aarch64_ext_simd_addr_post (self, info, code, inst);
    case 85:
      return aarch64_ext_sysreg (self, info, code, inst);
    case 86:
      return aarch64_ext_pstatefield (self, info, code, inst);
    case 87:
    case 88:
    case 89:
    case 90:
      return aarch64_ext_sysins_op (self, info, code, inst);
    case 91:
    case 92:
      return aarch64_ext_barrier (self, info, code, inst);
    case 93:
      return aarch64_ext_prfop (self, info, code, inst);
    case 94:
      return aarch64_ext_hint (self, info, code, inst);
    case 95:
      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst);
    case 96:
    case 97:
    case 98:
    case 99:
      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst);
    case 100:
      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst);
    case 101:
      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst);
    case 102:
    case 103:
    case 104:
    case 105:
      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst);
    case 106:
    case 107:
    case 108:
    case 109:
    case 110:
    case 111:
    case 112:
    case 113:
    case 114:
    case 115:
    case 116:
    case 117:
      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst);
    case 118:
    case 119:
    case 120:
    case 121:
    case 122:
    case 123:
    case 124:
    case 125:
      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst);
    case 126:
    case 127:
    case 128:
    case 129:
      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst);
    case 130:
      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst);
    case 131:
      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst);
    case 132:
      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst);
    case 133:
      return aarch64_ext_sve_aimm (self, info, code, inst);
    case 134:
      return aarch64_ext_sve_asimm (self, info, code, inst);
    case 136:
      return aarch64_ext_sve_float_half_one (self, info, code, inst);
    case 137:
      return aarch64_ext_sve_float_half_two (self, info, code, inst);
    case 138:
      return aarch64_ext_sve_float_zero_one (self, info, code, inst);
    case 141:
      return aarch64_ext_inv_limm (self, info, code, inst);
    case 143:
      return aarch64_ext_sve_limm_mov (self, info, code, inst);
    case 145:
      return aarch64_ext_sve_scale (self, info, code, inst);
    case 157:
    case 158:
      return aarch64_ext_sve_shlimm (self, info, code, inst);
    case 159:
    case 160:
      return aarch64_ext_sve_shrimm (self, info, code, inst);
    case 178:
    case 179:
    case 180:
      return aarch64_ext_sve_quad_index (self, info, code, inst);
    case 182:
      return aarch64_ext_sve_index (self, info, code, inst);
    case 183:
    case 185:
      return aarch64_ext_sve_reglist (self, info, code, inst);
    default: assert (0); abort ();
    }
}
