/* This file is automatically generated by aarch64-gen.  Do not edit!  */
/* Copyright (C) 2012-2024 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 >> 28) & 0x1) == 0)
                    {
                      if (((word >> 21) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0000000000xxxxxxxxxxxxxxxxxxxxx
                                             udf.  */
                                          return 754;
                                        }
                                      else
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000000100xxxxxxxxxxxxxxxx00xxx
                                                     fmopa.  */
                                                  return 2412;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000000100xxxxxxxxxxxxxxxx10xxx
                                                     fmops.  */
                                                  return 2415;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000000100xxxxxxxxxxxxxxxx01xxx
                                                     bmopa.  */
                                                  return 2526;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000000100xxxxxxxxxxxxxxxx11xxx
                                                     bmops.  */
                                                  return 2527;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0000000x10xxxxxxxxxxxxxxxx0xxxx
                                             fmopa.  */
                                          return 2413;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0000000x10xxxxxxxxxxxxxxxx1xxxx
                                             fmops.  */
                                          return 2416;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 18) & 0x1) == 0)
                                    {
                                      if (((word >> 17) & 0x1) == 0)
                                        {
                                          if (((word >> 19) & 0x1) == 0)
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx00000xxxxxxxxxxxxxxxxx
                                                     mov.  */
                                                  return 2436;
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x0010000xxxxxxxxxxxxxxxx
                                                             addha.  */
                                                          return 2404;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x1010000xxxxxxxxxxxxxxxx
                                                             addha.  */
                                                          return 2405;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x0010001xxxxxxxxxxxxxxxx
                                                             addva.  */
                                                          return 2408;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x1010001xxxxxxxxxxxxxxxx
                                                             addva.  */
                                                          return 2409;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000x00x100xxxxxxxxxxxxxxxxx
                                                     zero.  */
                                                  return 2439;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000x10x100xxxxxxxxxxxxxxxxx
                                                     zero.  */
                                                  return 2956;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 19) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1000000xx0x001xxxxxxxxxxxxxxxxx
                                                 mov.  */
                                              return 2435;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000000x00x101xx0xxxxxxxxxxxxxx
                                                         luti4.  */
                                                      return 2670;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000000x00x101xx1xxxxxxxxxxxxxx
                                                         luti4.  */
                                                      return 2669;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000x10x101xxxxxxxxxxxxxxxxx
                                                     luti4.  */
                                                  return 2668;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 10) & 0x1) == 0)
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 19) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000000xx0x010xxxxx00xxxxxxxxxx
                                                         mov.  */
                                                      return 2677;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 9) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000xx0x011xxxxx000xxxxxxxxx
                                                             mov.  */
                                                          return 2673;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000000000x011xxxxx001xxxxxxxxx
                                                                     movaz.  */
                                                                  return 3301;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000000100x011xxxxx001xxxxxxxxx
                                                                     movaz.  */
                                                                  return 3303;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000000010x011xxxxx001xxxxxxxxx
                                                                     movaz.  */
                                                                  return 3302;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000000110x011xxxxx001xxxxxxxxx
                                                                     movaz.  */
                                                                  return 3304;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x00x11xxx0xx00xxxxxxxxxx
                                                             luti2.  */
                                                          return 2667;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000x00x11xxx1xx00xxxxxxxxxx
                                                             luti2.  */
                                                          return 2666;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000010x110xxxxx00xxxxxxxxxx
                                                                 movt.  */
                                                              return 2688;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000010x111xxxxx00xxxxxxxxxx
                                                                 movt.  */
                                                              return 2687;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000000110x11xxxxxx00xxxxxxxxxx
                                                             luti2.  */
                                                          return 2665;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx0xx10xxxxx10xxxxxxxxxx
                                                     mov.  */
                                                  return 2675;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx0xx11xxxxx10xxxxxxxxxx
                                                     mov.  */
                                                  return 2671;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx0xx10xxxxx01xxxxxxxxxx
                                                     mov.  */
                                                  return 2678;
                                                }
                                              else
                                                {
                                                  if (((word >> 9) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000000xx0xx11xxxxx010xxxxxxxxx
                                                         mov.  */
                                                      return 2674;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000000xx11xxxxx011xxxxxxxxx
                                                                 movaz.  */
                                                              return 3297;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000100xx11xxxxx011xxxxxxxxx
                                                                 movaz.  */
                                                              return 3299;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000010xx11xxxxx011xxxxxxxxx
                                                                 movaz.  */
                                                              return 3298;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000000110xx11xxxxx011xxxxxxxxx
                                                                 movaz.  */
                                                              return 3300;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx0xx10xxxxx11xxxxxxxxxx
                                                     mov.  */
                                                  return 2676;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000000xx0xx11xxxxx11xxxxxxxxxx
                                                     mov.  */
                                                  return 2672;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 0) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx000xxxxxxxxxxxx0
                                                             ld1b.  */
                                                          return 2604;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx100xxxxxxxxxxxx0
                                                             ld1b.  */
                                                          return 2605;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx010xxxxxxxxxxxx0
                                                             ld1w.  */
                                                          return 2628;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx110xxxxxxxxxxxx0
                                                             ld1w.  */
                                                          return 2629;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx001xxxxxxxxxxxx0
                                                             ld1h.  */
                                                          return 2620;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx101xxxxxxxxxxxx0
                                                             ld1h.  */
                                                          return 2621;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx011xxxxxxxxxxxx0
                                                             ld1d.  */
                                                          return 2612;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx111xxxxxxxxxxxx0
                                                             ld1d.  */
                                                          return 2613;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx000xxxxxxxxxxxx1
                                                             ldnt1b.  */
                                                          return 2636;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx100xxxxxxxxxxxx1
                                                             ldnt1b.  */
                                                          return 2637;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx010xxxxxxxxxxxx1
                                                             ldnt1w.  */
                                                          return 2660;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx110xxxxxxxxxxxx1
                                                             ldnt1w.  */
                                                          return 2661;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx001xxxxxxxxxxxx1
                                                             ldnt1h.  */
                                                          return 2652;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx101xxxxxxxxxxxx1
                                                             ldnt1h.  */
                                                          return 2653;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx011xxxxxxxxxxxx1
                                                             ldnt1d.  */
                                                          return 2644;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000000xxxxx111xxxxxxxxxxxx1
                                                             ldnt1d.  */
                                                          return 2645;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1100000000xxxxxxxxxxxxxxxxxxxxx
                                             ld1b.  */
                                          return 2440;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 3) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0100000100xxxxxxxxxxxxxxxx00xxx
                                                     smopa.  */
                                                  return 2419;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0100000100xxxxxxxxxxxxxxxx01xxx
                                                     smopa.  */
                                                  return 2750;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100000100xxxxxxxxxxxxxxxx0xxxx
                                                 ld1w.  */
                                              return 2442;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100000100xxxxxxxxxxxxxxxx10xxx
                                                 smops.  */
                                              return 2421;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100000100xxxxxxxxxxxxxxxx11xxx
                                                 smops.  */
                                              return 2751;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 0) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx000xxxxxxxxxxxx0
                                                             ld1b.  */
                                                          return 2600;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx100xxxxxxxxxxxx0
                                                             ld1b.  */
                                                          return 2601;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx010xxxxxxxxxxxx0
                                                             ld1w.  */
                                                          return 2624;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx110xxxxxxxxxxxx0
                                                             ld1w.  */
                                                          return 2625;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx001xxxxxxxxxxxx0
                                                             ld1h.  */
                                                          return 2616;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx101xxxxxxxxxxxx0
                                                             ld1h.  */
                                                          return 2617;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx011xxxxxxxxxxxx0
                                                             ld1d.  */
                                                          return 2608;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx111xxxxxxxxxxxx0
                                                             ld1d.  */
                                                          return 2609;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx000xxxxxxxxxxxx1
                                                             ldnt1b.  */
                                                          return 2632;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx100xxxxxxxxxxxx1
                                                             ldnt1b.  */
                                                          return 2633;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx010xxxxxxxxxxxx1
                                                             ldnt1w.  */
                                                          return 2656;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx110xxxxxxxxxxxx1
                                                             ldnt1w.  */
                                                          return 2657;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx001xxxxxxxxxxxx1
                                                             ldnt1h.  */
                                                          return 2648;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx101xxxxxxxxxxxx1
                                                             ldnt1h.  */
                                                          return 2649;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx011xxxxxxxxxxxx1
                                                             ldnt1d.  */
                                                          return 2640;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100000010xxxxx111xxxxxxxxxxxx1
                                                             ldnt1d.  */
                                                          return 2641;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1100000010xxxxxxxxxxxxxxxxxxxxx
                                             ld1h.  */
                                          return 2441;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0100000110xxxxxxxxxxxxxxxx0xxxx
                                                 smopa.  */
                                              return 2420;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100000110xxxxxxxxxxxxxxxx0xxxx
                                                 ld1d.  */
                                              return 2443;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx100000110xxxxxxxxxxxxxxxx1xxxx
                                             smops.  */
                                          return 2422;
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 22) & 0x1) == 0)
                            {
                              if (((word >> 23) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 0) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx000xxxxxxxxxxxx0
                                                         st1b.  */
                                                      return 2776;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx100xxxxxxxxxxxx0
                                                         st1b.  */
                                                      return 2777;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx010xxxxxxxxxxxx0
                                                         st1w.  */
                                                      return 2800;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx110xxxxxxxxxxxx0
                                                         st1w.  */
                                                      return 2801;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx001xxxxxxxxxxxx0
                                                         st1h.  */
                                                      return 2792;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx101xxxxxxxxxxxx0
                                                         st1h.  */
                                                      return 2793;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx011xxxxxxxxxxxx0
                                                         st1d.  */
                                                      return 2784;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx111xxxxxxxxxxxx0
                                                         st1d.  */
                                                      return 2785;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx000xxxxxxxxxxxx1
                                                         stnt1b.  */
                                                      return 2808;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx100xxxxxxxxxxxx1
                                                         stnt1b.  */
                                                      return 2809;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx010xxxxxxxxxxxx1
                                                         stnt1w.  */
                                                      return 2832;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx110xxxxxxxxxxxx1
                                                         stnt1w.  */
                                                      return 2833;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx001xxxxxxxxxxxx1
                                                         stnt1h.  */
                                                      return 2824;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx101xxxxxxxxxxxx1
                                                         stnt1h.  */
                                                      return 2825;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx011xxxxxxxxxxxx1
                                                         stnt1d.  */
                                                      return 2816;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000001xxxxx111xxxxxxxxxxxx1
                                                         stnt1d.  */
                                                      return 2817;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1x00000001xxxxxxxxxxxxxxxxxxxxx
                                         st1b.  */
                                      return 2450;
                                    }
                                }
                              else
                                {
                                  if (((word >> 4) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x00000101xxxxxxxxxxxxxxxx0xxxx
                                             sumopa.  */
                                          return 2423;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x00000101xxxxxxxxxxxxxxxx0xxxx
                                             st1w.  */
                                          return 2452;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx00000101xxxxxxxxxxxxxxxx1xxxx
                                         sumops.  */
                                      return 2425;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 23) & 0x1) == 0)
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 0) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx000xxxxxxxxxxxx0
                                                         st1b.  */
                                                      return 2772;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx100xxxxxxxxxxxx0
                                                         st1b.  */
                                                      return 2773;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx010xxxxxxxxxxxx0
                                                         st1w.  */
                                                      return 2796;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx110xxxxxxxxxxxx0
                                                         st1w.  */
                                                      return 2797;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx001xxxxxxxxxxxx0
                                                         st1h.  */
                                                      return 2788;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx101xxxxxxxxxxxx0
                                                         st1h.  */
                                                      return 2789;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx011xxxxxxxxxxxx0
                                                         st1d.  */
                                                      return 2780;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx111xxxxxxxxxxxx0
                                                         st1d.  */
                                                      return 2781;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx000xxxxxxxxxxxx1
                                                         stnt1b.  */
                                                      return 2804;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx100xxxxxxxxxxxx1
                                                         stnt1b.  */
                                                      return 2805;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx010xxxxxxxxxxxx1
                                                         stnt1w.  */
                                                      return 2828;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx110xxxxxxxxxxxx1
                                                         stnt1w.  */
                                                      return 2829;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx001xxxxxxxxxxxx1
                                                         stnt1h.  */
                                                      return 2820;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx101xxxxxxxxxxxx1
                                                         stnt1h.  */
                                                      return 2821;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx011xxxxxxxxxxxx1
                                                         stnt1d.  */
                                                      return 2812;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x00000011xxxxx111xxxxxxxxxxxx1
                                                         stnt1d.  */
                                                      return 2813;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1x00000011xxxxxxxxxxxxxxxxxxxxx
                                         st1h.  */
                                      return 2451;
                                    }
                                }
                              else
                                {
                                  if (((word >> 4) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x00000111xxxxxxxxxxxxxxxx0xxxx
                                             sumopa.  */
                                          return 2424;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x00000111xxxxxxxxxxxxxxxx0xxxx
                                             st1d.  */
                                          return 2453;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx00000111xxxxxxxxxxxxxxxx1xxxx
                                         sumops.  */
                                      return 2426;
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 31) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             0xx10000xxxxxxxxxxxxxxxxxxxxxxxx
                             adr.  */
                          return 1221;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             1xx10000xxxxxxxxxxxxxxxxxxxxxxxx
                             adrp.  */
                          return 1222;
                        }
                    }
                }
              else
                {
                  if (((word >> 28) & 0x1) == 0)
                    {
                      if (((word >> 21) & 0x1) == 0)
                        {
                          if (((word >> 22) & 0x1) == 0)
                            {
                              if (((word >> 23) & 0x1) == 0)
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 3) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 2) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010000xxxxxxxxxxxxxxx000xx
                                                         smlall.  */
                                                      return 2726;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010000xxxxxxxxxxxxxxx001xx
                                                         usmlall.  */
                                                      return 2931;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx0xxxxxxxxx000xxx
                                                             smlall.  */
                                                          return 2727;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx1xxxxxxxxx000xxx
                                                             smlall.  */
                                                          return 2728;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx0xxxxxxxxx100xxx
                                                             usmlall.  */
                                                          return 2932;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx1xxxxxxxxx100xxx
                                                             usmlall.  */
                                                          return 2933;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 2) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010000xxxxxxxxxxxxxxx100xx
                                                         umlall.  */
                                                      return 2889;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010000xxxxxxxxxxxxxxx101xx
                                                         sumlall.  */
                                                      return 2847;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx0xxxxxxxxx010xxx
                                                             umlall.  */
                                                          return 2890;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx1xxxxxxxxx010xxx
                                                             umlall.  */
                                                          return 2891;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx0xxxxxxxxx110xxx
                                                             sumlall.  */
                                                          return 2848;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000010001xxxx1xxxxxxxxx110xxx
                                                             sumlall.  */
                                                          return 2849;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0000010000xxxxxxxxxxxxxxx01xxx
                                                     smlsll.  */
                                                  return 2742;
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010001xxxx0xxxxxxxxxx01xxx
                                                         smlsll.  */
                                                      return 2743;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010001xxxx1xxxxxxxxxx01xxx
                                                         smlsll.  */
                                                      return 2744;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0000010000xxxxxxxxxxxxxxx11xxx
                                                     umlsll.  */
                                                  return 2905;
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010001xxxx0xxxxxxxxxx11xxx
                                                         umlsll.  */
                                                      return 2906;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000010001xxxx1xxxxxxxxxx11xxx
                                                         umlsll.  */
                                                      return 2907;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 3) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx000xxxxxxxxx0xxx
                                                             ld1b.  */
                                                          return 2606;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx010xxxxxxxxx0xxx
                                                             ld1w.  */
                                                          return 2630;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx001xxxxxxxxx0xxx
                                                             ld1h.  */
                                                          return 2622;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx011xxxxxxxxx0xxx
                                                             ld1d.  */
                                                          return 2614;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx000xxxxxxxxx1xxx
                                                             ldnt1b.  */
                                                          return 2638;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx010xxxxxxxxx1xxx
                                                             ldnt1w.  */
                                                          return 2662;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx001xxxxxxxxx1xxx
                                                             ldnt1h.  */
                                                          return 2654;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx011xxxxxxxxx1xxx
                                                             ldnt1d.  */
                                                          return 2646;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100001000xxxxx0xxxxxxxxxxxxxxx
                                                 ldr.  */
                                              return 2460;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001000xxxxx100xxxxxxxxx0xxx
                                                             ld1b.  */
                                                          return 2607;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1100001000xxxxx100xxxxxxxxx0xxx
                                                             ldr.  */
                                                          return 2664;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx110xxxxxxxxx0xxx
                                                         ld1w.  */
                                                      return 2631;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx101xxxxxxxxx0xxx
                                                         ld1h.  */
                                                      return 2623;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx111xxxxxxxxx0xxx
                                                         ld1d.  */
                                                      return 2615;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx100xxxxxxxxx1xxx
                                                         ldnt1b.  */
                                                      return 2639;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx110xxxxxxxxx1xxx
                                                         ldnt1w.  */
                                                      return 2663;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx101xxxxxxxxx1xxx
                                                         ldnt1h.  */
                                                      return 2655;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001000xxxxx111xxxxxxxxx1xxx
                                                         ldnt1d.  */
                                                      return 2647;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 3) & 0x1) == 0)
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000001100xxxxxxxxxxxxxxxx00xxx
                                                     bfmopa.  */
                                                  return 2410;
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10000011000xxxxxxx0xxxxxxx00xxx
                                                             smlall.  */
                                                          return 2963;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx0xx0xxxxxxx00xxx
                                                                 smlall.  */
                                                              return 2964;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx1xx0xxxxxxx00xxx
                                                                 smlall.  */
                                                              return 2965;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10000011000xxxxxxx1xxxxxxx00xxx
                                                             fmlal.  */
                                                          return 2567;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx0xx1xxxxxxx00xxx
                                                                 fmlal.  */
                                                              return 2568;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx1xx1xxxxxxx00xxx
                                                                 fmlal.  */
                                                              return 2569;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100001100xxxxxxxxxxxxxxxx00xxx
                                                 usmopa.  */
                                              return 2431;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0000001100xxxxxxxxxxxxxxxx10xxx
                                                     bfmops.  */
                                                  return 2411;
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10000011000xxxxxxx0xxxxxxx10xxx
                                                             umlall.  */
                                                          return 2972;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx0xx0xxxxxxx10xxx
                                                                 umlall.  */
                                                              return 2973;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx1xx0xxxxxxx10xxx
                                                                 umlall.  */
                                                              return 2974;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10000011000xxxxxxx1xxxxxxx10xxx
                                                             bfmlal.  */
                                                          return 2509;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx0xx1xxxxxxx10xxx
                                                                 bfmlal.  */
                                                              return 2510;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011001xxxx1xx1xxxxxxx10xxx
                                                                 bfmlal.  */
                                                              return 2511;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100001100xxxxxxxxxxxxxxxx10xxx
                                                 usmops.  */
                                              return 2433;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011000xxxxxxx0xxxxxxx01xxx
                                                         smlsll.  */
                                                      return 2966;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx0xx0xxxxxxx01xxx
                                                             smlsll.  */
                                                          return 2967;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx1xx0xxxxxxx01xxx
                                                             smlsll.  */
                                                          return 2968;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011000xxxxxxx1xxxxxxx01xxx
                                                         fmlsl.  */
                                                      return 2581;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx0xx1xxxxxxx01xxx
                                                             fmlsl.  */
                                                          return 2582;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx1xx1xxxxxxx01xxx
                                                             fmlsl.  */
                                                          return 2583;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100001100xxxxxxxxxxxxxxxx01xxx
                                                 umopa.  */
                                              return 2913;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011000xxxxxxx0xxxxxxx11xxx
                                                         umlsll.  */
                                                      return 2975;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx0xx0xxxxxxx11xxx
                                                             umlsll.  */
                                                          return 2976;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx1xx0xxxxxxx11xxx
                                                             umlsll.  */
                                                          return 2977;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011000xxxxxxx1xxxxxxx11xxx
                                                         bfmlsl.  */
                                                      return 2517;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx0xx1xxxxxxx11xxx
                                                             bfmlsl.  */
                                                          return 2518;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011001xxxx1xx1xxxxxxx11xxx
                                                             bfmlsl.  */
                                                          return 2519;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100001100xxxxxxxxxxxxxxxx11xxx
                                                 umops.  */
                                              return 2914;
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 23) & 0x1) == 0)
                                {
                                  if (((word >> 3) & 0x1) == 0)
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx000xxxxxxxxx0xxx
                                                         ld1b.  */
                                                      return 2602;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx010xxxxxxxxx0xxx
                                                         ld1w.  */
                                                      return 2626;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx001xxxxxxxxx0xxx
                                                         ld1h.  */
                                                      return 2618;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx011xxxxxxxxx0xxx
                                                         ld1d.  */
                                                      return 2610;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx000xxx
                                                             fmla.  */
                                                          return 2561;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx000xxx
                                                             sdot.  */
                                                          return 2696;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx100xxx
                                                             svdot.  */
                                                          return 2855;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx100xxx
                                                             sdot.  */
                                                          return 2702;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx010xxx
                                                             fmls.  */
                                                          return 2575;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx010xxx
                                                             udot.  */
                                                          return 2861;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx110xxx
                                                             uvdot.  */
                                                          return 2942;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx110xxx
                                                             udot.  */
                                                          return 2867;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx100xxxxxxxxx0xxx
                                                         ld1b.  */
                                                      return 2603;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx110xxxxxxxxx0xxx
                                                         ld1w.  */
                                                      return 2627;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx101xxxxxxxxx0xxx
                                                         ld1h.  */
                                                      return 2619;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx111xxxxxxxxx0xxx
                                                         ld1d.  */
                                                      return 2611;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx000xxx
                                                             fmla.  */
                                                          return 2562;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx000xxx
                                                             sdot.  */
                                                          return 2697;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx100xxx
                                                             svdot.  */
                                                          return 2856;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx100xxx
                                                             sdot.  */
                                                          return 2703;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx010xxx
                                                             fmls.  */
                                                          return 2576;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx010xxx
                                                             udot.  */
                                                          return 2862;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx110xxx
                                                             uvdot.  */
                                                          return 2943;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx110xxx
                                                             udot.  */
                                                          return 2868;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx000xxxxxxxxx1xxx
                                                         ldnt1b.  */
                                                      return 2634;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx010xxxxxxxxx1xxx
                                                         ldnt1w.  */
                                                      return 2658;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx001xxxxxxxxx1xxx
                                                         ldnt1h.  */
                                                      return 2650;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx011xxxxxxxxx1xxx
                                                         ldnt1d.  */
                                                      return 2642;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx001xxx
                                                             fvdot.  */
                                                          return 2599;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx001xxx
                                                             fdot.  */
                                                          return 2539;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010101xxxx0xxxxxxxxx101xxx
                                                         usdot.  */
                                                      return 2925;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx0xxxxxx011xxx
                                                             bfvdot.  */
                                                          return 2525;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx0xx1xxxxxx011xxx
                                                             bfdot.  */
                                                          return 2503;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010101xxxx0xxxxxxxxx111xxx
                                                         sudot.  */
                                                      return 2843;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx100xxxxxxxxx1xxx
                                                         ldnt1b.  */
                                                      return 2635;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx110xxxxxxxxx1xxx
                                                         ldnt1w.  */
                                                      return 2659;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx101xxxxxxxxx1xxx
                                                         ldnt1h.  */
                                                      return 2651;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010100xxxx111xxxxxxxxx1xxx
                                                         ldnt1d.  */
                                                      return 2643;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010101xxxx1xxxxxxxxx001xxx
                                                         fdot.  */
                                                      return 2540;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx101xxx
                                                             usvdot.  */
                                                          return 2939;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx101xxx
                                                             usdot.  */
                                                          return 2926;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 5) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000010101xxxx1xxxxxxxxx011xxx
                                                         bfdot.  */
                                                      return 2504;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx0xxxxxx111xxx
                                                             suvdot.  */
                                                          return 2854;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx000010101xxxx1xx1xxxxxx111xxx
                                                             sudot.  */
                                                          return 2844;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 4) & 0x1) == 0)
                                    {
                                      if (((word >> 29) & 0x1) == 0)
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx000001110xxxxx0xx0xxxxxxx00xxx
                                                         fmla.  */
                                                      return 2979;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx000001110xxxxx1xx0xxxxxxx00xxx
                                                         fmla.  */
                                                      return 2980;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011100xxxxxxx1xxxxxxx00xxx
                                                         smlal.  */
                                                      return 2718;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx0xx1xxxxxxx00xxx
                                                             smlal.  */
                                                          return 2719;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx1xx1xxxxxxx00xxx
                                                             smlal.  */
                                                          return 2720;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx000001110xxxxx0xx00xxxxxx01xxx
                                                             sdot.  */
                                                          return 2961;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx000001110xxxxx1xx00xxxxxx01xxx
                                                             sdot.  */
                                                          return 2962;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx000001110xxxxxxxx01xxxxxx01xxx
                                                         svdot.  */
                                                      return 2969;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011100xxxxxxx1xxxxxxx01xxx
                                                         smlsl.  */
                                                      return 2734;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx0xx1xxxxxxx01xxx
                                                             smlsl.  */
                                                          return 2735;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx1xx1xxxxxxx01xxx
                                                             smlsl.  */
                                                          return 2736;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0100001110xxxxxxxxxxxxxxxx0xxxx
                                                 usmopa.  */
                                              return 2432;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100001110xxxxxxxxxxxxxxxx0xxxx
                                                 ld1q.  */
                                              return 2444;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 3) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx000001110xxxxx0xx0xxxxxxx10xxx
                                                         fmls.  */
                                                      return 2981;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx000001110xxxxx1xx0xxxxxxx10xxx
                                                         fmls.  */
                                                      return 2982;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0000011100xxxxxxx1xxxxxxx10xxx
                                                         umlal.  */
                                                      return 2881;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx0xx1xxxxxxx10xxx
                                                             umlal.  */
                                                          return 2882;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0000011101xxxx1xx1xxxxxxx10xxx
                                                             umlal.  */
                                                          return 2883;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx100001110xxxxxxxxxxxxxxxx10xxx
                                                 usmops.  */
                                              return 2434;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx00001110xxxxx0xx00xxxxxx11xxx
                                                         udot.  */
                                                      return 2970;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx00001110xxxxx1xx00xxxxxx11xxx
                                                         udot.  */
                                                      return 2971;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx00001110xxxxxxxx01xxxxxx11xxx
                                                     uvdot.  */
                                                  return 2978;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx000011100xxxxxxx1xxxxxxx11xxx
                                                     umlsl.  */
                                                  return 2897;
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000011101xxxx0xx1xxxxxxx11xxx
                                                         umlsl.  */
                                                      return 2898;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx000011101xxxx1xx1xxxxxxx11xxx
                                                         umlsl.  */
                                                      return 2899;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 4) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0000001xx1xxxxxxxxxxxxxxxx0xxxx
                                         fmopa.  */
                                      return 2414;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0000001xx1xxxxxxxxxxxxxxxx1xxxx
                                         fmops.  */
                                      return 2417;
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 3) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 2) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x10xxxx0xx000xxxxx000xx
                                                                         smlall.  */
                                                                      return 2730;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x11xxxx0xx000xxxxx000xx
                                                                         smlall.  */
                                                                      return 2731;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx00xx000xxxxx000xx
                                                                         smlall.  */
                                                                      return 2732;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx10xx000xxxxx000xx
                                                                         smlall.  */
                                                                      return 2733;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x10xxxx0xx000xxxxx001xx
                                                                         usmlall.  */
                                                                      return 2935;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x11xxxx0xx000xxxxx001xx
                                                                         usmlall.  */
                                                                      return 2936;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx00xx000xxxxx001xx
                                                                         usmlall.  */
                                                                      return 2937;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx10xx000xxxxx001xx
                                                                         usmlall.  */
                                                                      return 2938;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx100xxxxx00xxx
                                                                     fdot.  */
                                                                  return 2541;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx100xxxxx00xxx
                                                                     fdot.  */
                                                                  return 2542;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx100xxxxx00xxx
                                                                     fdot.  */
                                                                  return 2543;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx100xxxxx00xxx
                                                                     fdot.  */
                                                                  return 2544;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010010xxxx0xx010xxxxx00xxx
                                                                         fmlal.  */
                                                                      return 2571;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010011xxxx0xx010xxxxx00xxx
                                                                         fmlal.  */
                                                                      return 2572;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx00xx010xxxxx00xxx
                                                                         fmlal.  */
                                                                      return 2573;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx10xx010xxxxx00xxx
                                                                         fmlal.  */
                                                                      return 2574;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx010xxxxx00xxx
                                                                         smlal.  */
                                                                      return 2722;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx010xxxxx00xxx
                                                                         smlal.  */
                                                                      return 2723;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx010xxxxx00xxx
                                                                         smlal.  */
                                                                      return 2724;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx010xxxxx00xxx
                                                                         smlal.  */
                                                                      return 2725;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx110xxxxx00xxx
                                                                     fmla.  */
                                                                  return 2563;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx110xxxxx00xxx
                                                                     fmla.  */
                                                                  return 2564;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx110xxxxx00xxx
                                                                     fmla.  */
                                                                  return 2565;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx110xxxxx00xxx
                                                                     fmla.  */
                                                                  return 2566;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 2) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx0xx001xxxxx000xx
                                                                 smlall.  */
                                                              return 2729;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx0xx001xxxxx001xx
                                                                 usmlall.  */
                                                              return 2934;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx101xxxxx00xxx
                                                                     sdot.  */
                                                                  return 2704;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx101xxxxx00xxx
                                                                     sdot.  */
                                                                  return 2705;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx101xxxxx00xxx
                                                                     sdot.  */
                                                                  return 2706;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx101xxxxx00xxx
                                                                     sdot.  */
                                                                  return 2707;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x01xxxxx0xx011xxxxx00xxx
                                                                 fmlal.  */
                                                              return 2570;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x11xxxxx0xx011xxxxx00xxx
                                                                 smlal.  */
                                                              return 2721;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx00xx111xxxxx00xxx
                                                                 fadd.  */
                                                              return 2529;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx10xx111xxxxx00xxx
                                                                 fadd.  */
                                                              return 2530;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 2) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x10xxxx0xx000xxxxx100xx
                                                                         umlall.  */
                                                                      return 2893;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010x11xxxx0xx000xxxxx100xx
                                                                         umlall.  */
                                                                      return 2894;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx00xx000xxxxx100xx
                                                                         umlall.  */
                                                                      return 2895;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000011x1xxxx10xx000xxxxx100xx
                                                                         umlall.  */
                                                                      return 2896;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx10xxxx0xx000xxxxx101xx
                                                                     sumlall.  */
                                                                  return 2850;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx11xxxx0xx000xxxxx101xx
                                                                     sumlall.  */
                                                                  return 2851;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx100xxxxx10xxx
                                                                     bfdot.  */
                                                                  return 2505;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx100xxxxx10xxx
                                                                     bfdot.  */
                                                                  return 2506;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx100xxxxx10xxx
                                                                     bfdot.  */
                                                                  return 2507;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx100xxxxx10xxx
                                                                     bfdot.  */
                                                                  return 2508;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010010xxxx0xx010xxxxx10xxx
                                                                         bfmlal.  */
                                                                      return 2513;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010011xxxx0xx010xxxxx10xxx
                                                                         bfmlal.  */
                                                                      return 2514;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx00xx010xxxxx10xxx
                                                                         bfmlal.  */
                                                                      return 2515;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx10xx010xxxxx10xxx
                                                                         bfmlal.  */
                                                                      return 2516;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx010xxxxx10xxx
                                                                         umlal.  */
                                                                      return 2885;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx010xxxxx10xxx
                                                                         umlal.  */
                                                                      return 2886;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx010xxxxx10xxx
                                                                         umlal.  */
                                                                      return 2887;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx010xxxxx10xxx
                                                                         umlal.  */
                                                                      return 2888;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx110xxxxx10xxx
                                                                     add.  */
                                                                  return 2495;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx110xxxxx10xxx
                                                                     add.  */
                                                                  return 2496;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx110xxxxx10xxx
                                                                     add.  */
                                                                  return 2497;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx110xxxxx10xxx
                                                                     add.  */
                                                                  return 2498;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000001xx1xxxxx0xx001xxxxx10xxx
                                                             umlall.  */
                                                          return 2892;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx101xxxxx10xxx
                                                                     udot.  */
                                                                  return 2869;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx101xxxxx10xxx
                                                                     udot.  */
                                                                  return 2870;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx101xxxxx10xxx
                                                                     udot.  */
                                                                  return 2871;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx101xxxxx10xxx
                                                                     udot.  */
                                                                  return 2872;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x01xxxxx0xx011xxxxx10xxx
                                                                 bfmlal.  */
                                                              return 2512;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x11xxxxx0xx011xxxxx10xxx
                                                                 umlal.  */
                                                              return 2884;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx00xx111xxxxx10xxx
                                                                 add.  */
                                                              return 2493;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx10xx111xxxxx10xxx
                                                                 add.  */
                                                              return 2494;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000010x10xxxx0xxx00xxxxx01xxx
                                                                 smlsll.  */
                                                              return 2746;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000010x11xxxx0xxx00xxxxx01xxx
                                                                 smlsll.  */
                                                              return 2747;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011x1xxxx00xxx00xxxxx01xxx
                                                                 smlsll.  */
                                                              return 2748;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011x1xxxx10xxx00xxxxx01xxx
                                                                 smlsll.  */
                                                              return 2749;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010010xxxx0xx010xxxxx01xxx
                                                                         fmlsl.  */
                                                                      return 2585;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010011xxxx0xx010xxxxx01xxx
                                                                         fmlsl.  */
                                                                      return 2586;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx00xx010xxxxx01xxx
                                                                         fmlsl.  */
                                                                      return 2587;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx10xx010xxxxx01xxx
                                                                         fmlsl.  */
                                                                      return 2588;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx010xxxxx01xxx
                                                                         smlsl.  */
                                                                      return 2738;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx010xxxxx01xxx
                                                                         smlsl.  */
                                                                      return 2739;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx010xxxxx01xxx
                                                                         smlsl.  */
                                                                      return 2740;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx010xxxxx01xxx
                                                                         smlsl.  */
                                                                      return 2741;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx110xxxxx01xxx
                                                                     fmls.  */
                                                                  return 2577;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx110xxxxx01xxx
                                                                     fmls.  */
                                                                  return 2578;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx110xxxxx01xxx
                                                                     fmls.  */
                                                                  return 2579;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx110xxxxx01xxx
                                                                     fmls.  */
                                                                  return 2580;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000001xx1xxxxx0xx001xxxxx01xxx
                                                             smlsll.  */
                                                          return 2745;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010010xxxx0xx101xxxxx01xxx
                                                                         usdot.  */
                                                                      return 2927;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010011xxxx0xx101xxxxx01xxx
                                                                         usdot.  */
                                                                      return 2928;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx00xx101xxxxx01xxx
                                                                         usdot.  */
                                                                      return 2929;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx10xx101xxxxx01xxx
                                                                         usdot.  */
                                                                      return 2930;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx101xxxxx01xxx
                                                                         sdot.  */
                                                                      return 2698;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx101xxxxx01xxx
                                                                         sdot.  */
                                                                      return 2699;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx101xxxxx01xxx
                                                                         sdot.  */
                                                                      return 2700;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx101xxxxx01xxx
                                                                         sdot.  */
                                                                      return 2701;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x01xxxxx0xx011xxxxx01xxx
                                                                 fmlsl.  */
                                                              return 2584;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x11xxxxx0xx011xxxxx01xxx
                                                                 smlsl.  */
                                                              return 2737;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx00xx111xxxxx01xxx
                                                                 fsub.  */
                                                              return 2597;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx10xx111xxxxx01xxx
                                                                 fsub.  */
                                                              return 2598;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000010x10xxxx0xxx00xxxxx11xxx
                                                                 umlsll.  */
                                                              return 2909;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000010x11xxxx0xxx00xxxxx11xxx
                                                                 umlsll.  */
                                                              return 2910;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011x1xxxx00xxx00xxxxx11xxx
                                                                 umlsll.  */
                                                              return 2911;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10000011x1xxxx10xxx00xxxxx11xxx
                                                                 umlsll.  */
                                                              return 2912;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010010xxxx0xx010xxxxx11xxx
                                                                         bfmlsl.  */
                                                                      return 2521;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010011xxxx0xx010xxxxx11xxx
                                                                         bfmlsl.  */
                                                                      return 2522;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx00xx010xxxxx11xxx
                                                                         bfmlsl.  */
                                                                      return 2523;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001101xxxx10xx010xxxxx11xxx
                                                                         bfmlsl.  */
                                                                      return 2524;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx010xxxxx11xxx
                                                                         umlsl.  */
                                                                      return 2901;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx010xxxxx11xxx
                                                                         umlsl.  */
                                                                      return 2902;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx010xxxxx11xxx
                                                                         umlsl.  */
                                                                      return 2903;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx010xxxxx11xxx
                                                                         umlsl.  */
                                                                      return 2904;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x10xxxx0xx110xxxxx11xxx
                                                                     sub.  */
                                                                  return 2839;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000010x11xxxx0xx110xxxxx11xxx
                                                                     sub.  */
                                                                  return 2840;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx00xx110xxxxx11xxx
                                                                     sub.  */
                                                                  return 2841;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x10000011x1xxxx10xx110xxxxx11xxx
                                                                     sub.  */
                                                                  return 2842;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000001xx1xxxxx0xx001xxxxx11xxx
                                                             umlsll.  */
                                                          return 2908;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001x010xxxx0xx101xxxxx11xxx
                                                                     sudot.  */
                                                                  return 2845;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001x011xxxx0xx101xxxxx11xxx
                                                                     sudot.  */
                                                                  return 2846;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010110xxxx0xx101xxxxx11xxx
                                                                         udot.  */
                                                                      return 2863;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x10000010111xxxx0xx101xxxxx11xxx
                                                                         udot.  */
                                                                      return 2864;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 16) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx00xx101xxxxx11xxx
                                                                         udot.  */
                                                                      return 2865;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001111xxxx10xx101xxxxx11xxx
                                                                         udot.  */
                                                                      return 2866;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x01xxxxx0xx011xxxxx11xxx
                                                                 bfmlsl.  */
                                                              return 2520;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001x11xxxxx0xx011xxxxx11xxx
                                                                 umlsl.  */
                                                              return 2900;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx00xx111xxxxx11xxx
                                                                 sub.  */
                                                              return 2837;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxx10xx111xxxxx11xxx
                                                                 sub.  */
                                                              return 2838;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000001xx1xxxx0100xxxxxxxxxxxxx
                                                     sel.  */
                                                  return 2708;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1000001xx1xxxx1100xxxxxxxxxxxxx
                                                     sel.  */
                                                  return 2709;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 0) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110000xxxxxxxxx0
                                                                 fclamp.  */
                                                              return 2531;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110100xxxxxxxxx0
                                                                 zip.  */
                                                              return 2957;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000001xx1xxxxx110x00xxxxxxxxx1
                                                             uzp.  */
                                                          return 2944;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1000001xx1xxxxx110010xxxxxxxxxx
                                                             fclamp.  */
                                                          return 2532;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 5) & 0x1) == 0)
                                                            {
                                                              if (((word >> 6) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx110110xxx00xxxxx
                                                                     sqrshr.  */
                                                                  return 2763;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx110110xxx10xxxxx
                                                                     sqrshru.  */
                                                                  return 2766;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110110xxxx1xxxxx
                                                                 uqrshr.  */
                                                              return 2919;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 0) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110001xxxxxxxxx0
                                                                 sclamp.  */
                                                              return 2692;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110001xxxxxxxxx1
                                                                 uclamp.  */
                                                              return 2857;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 0) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001x01xxxxx110101xxxxxxxxx0
                                                                     zip.  */
                                                                  return 2958;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001x01xxxxx110101xxxxxxxxx1
                                                                     uzp.  */
                                                                  return 2945;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 5) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 20) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001x110xxxx110101xxxx0xxxxx
                                                                         sqrshr.  */
                                                                      return 2762;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001x111xxxx110101xxxx0xxxxx
                                                                         sqrshru.  */
                                                                      return 2765;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001x11xxxxx110101xxxx1xxxxx
                                                                     uqrshr.  */
                                                                  return 2918;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 0) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110011xxxxxxxxx0
                                                                 sclamp.  */
                                                              return 2693;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110011xxxxxxxxx1
                                                                 uclamp.  */
                                                              return 2858;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 5) & 0x1) == 0)
                                                            {
                                                              if (((word >> 6) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx110111xxx00xxxxx
                                                                     sqrshrn.  */
                                                                  return 2764;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx110111xxx10xxxxx
                                                                     sqrshrun.  */
                                                                  return 2767;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx110111xxxx1xxxxx
                                                                 uqrshrn.  */
                                                              return 2920;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 10) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 0) & 0x1) == 0)
                                                            {
                                                              if (((word >> 5) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 7) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 8) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx101000x00x0xxxx0
                                                                             smax.  */
                                                                          return 2710;
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 9) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xxxxx101000010x0xxxx0
                                                                                 fmax.  */
                                                                              return 2545;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xxxxx101000110x0xxxx0
                                                                                 add.  */
                                                                              return 2499;
                                                                            }
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx101000xx1x0xxxx0
                                                                         fscale.  */
                                                                      return 3370;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 8) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 9) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx10100000xx1xxxx0
                                                                             smin.  */
                                                                          return 2714;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx10100010xx1xxxx0
                                                                             srshl.  */
                                                                          return 2768;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx101000x1xx1xxxx0
                                                                         fmaxnm.  */
                                                                      return 2549;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 5) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 8) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx101000x0xx0xxxx1
                                                                         umax.  */
                                                                      return 2873;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx101000x1xx0xxxx1
                                                                         fmin.  */
                                                                      return 2553;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 8) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 9) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx10100000xx1xxxx1
                                                                             umin.  */
                                                                          return 2877;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx10100010xx1xxxx1
                                                                             urshl.  */
                                                                          return 2921;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx101000x1xx1xxxx1
                                                                         fminnm.  */
                                                                      return 2557;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 17) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 5) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 18) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 19) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 22) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001x01x0000111000xxxx0xxxxx
                                                                                     fcvt.  */
                                                                                  return 2533;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001x11x0000111000xxxx0xxxxx
                                                                                     bfcvt.  */
                                                                                  return 2501;
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 20) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx101000111000xxxx0xxxxx
                                                                                     frintn.  */
                                                                                  return 2593;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx111000111000xxxx0xxxxx
                                                                                     frintn.  */
                                                                                  return 2594;
                                                                                }
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 19) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 20) & 0x1) == 0)
                                                                                {
                                                                                  if (((word >> 22) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x0100100111000xxxx0xxxxx
                                                                                         fcvt.  */
                                                                                      return 3367;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x1100100111000xxxx0xxxxx
                                                                                         bfcvt.  */
                                                                                      return 3362;
                                                                                    }
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx110100111000xxxx0xxxxx
                                                                                     fcvt.  */
                                                                                  return 3368;
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 20) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx101100111000xxxx0xxxxx
                                                                                     frinta.  */
                                                                                  return 2589;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx111100111000xxxx0xxxxx
                                                                                     frinta.  */
                                                                                  return 2590;
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 18) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 22) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001x01xx000111000xxxx1xxxxx
                                                                                 fcvtn.  */
                                                                              return 2534;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001x11xx000111000xxxx1xxxxx
                                                                                 bfcvtn.  */
                                                                              return 2502;
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xx100111000xxxx1xxxxx
                                                                             fcvtn.  */
                                                                          return 3369;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 0) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 18) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 5) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 19) & 0x1) == 0)
                                                                                {
                                                                                  if (((word >> 20) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx100010111000xxxx0xxxx0
                                                                                         scvtf.  */
                                                                                      return 2694;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx110010111000xxxx0xxxx0
                                                                                         scvtf.  */
                                                                                      return 2695;
                                                                                    }
                                                                                }
                                                                              else
                                                                                {
                                                                                  if (((word >> 20) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx101010111000xxxx0xxxx0
                                                                                         frintm.  */
                                                                                      return 2591;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx111010111000xxxx0xxxx0
                                                                                         frintm.  */
                                                                                      return 2592;
                                                                                    }
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 20) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx10x010111000xxxx1xxxx0
                                                                                     ucvtf.  */
                                                                                  return 2859;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx11x010111000xxxx1xxxx0
                                                                                     ucvtf.  */
                                                                                  return 2860;
                                                                                }
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 20) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 22) & 0x1) == 0)
                                                                                {
                                                                                  if (((word >> 23) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x10000010010x110111000xxxxxxxxx0
                                                                                         f1cvt.  */
                                                                                      return 3363;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x10000011010x110111000xxxxxxxxx0
                                                                                         f2cvt.  */
                                                                                      return 3364;
                                                                                    }
                                                                                }
                                                                              else
                                                                                {
                                                                                  if (((word >> 23) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x10000010110x110111000xxxxxxxxx0
                                                                                         bf1cvt.  */
                                                                                      return 3358;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x10000011110x110111000xxxxxxxxx0
                                                                                         bf2cvt.  */
                                                                                      return 3359;
                                                                                    }
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 1) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx11x110111000xxxxxxxx00
                                                                                     zip.  */
                                                                                  return 2959;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx11x110111000xxxxxxxx10
                                                                                     uzp.  */
                                                                                  return 2946;
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 22) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 23) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001001xxx10111000xxxxxxxxx1
                                                                                 f1cvtl.  */
                                                                              return 3365;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001101xxx10111000xxxxxxxxx1
                                                                                 f2cvtl.  */
                                                                              return 3366;
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 23) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001011xxx10111000xxxxxxxxx1
                                                                                 bf1cvtl.  */
                                                                              return 3360;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001111xxx10111000xxxxxxxxx1
                                                                                 bf2cvtl.  */
                                                                              return 3361;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 17) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 0) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 18) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 5) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 19) & 0x1) == 0)
                                                                                {
                                                                                  if (((word >> 20) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx100001111000xxxx0xxxx0
                                                                                         fcvtzs.  */
                                                                                      return 2535;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx110001111000xxxx0xxxx0
                                                                                         fcvtzs.  */
                                                                                      return 2536;
                                                                                    }
                                                                                }
                                                                              else
                                                                                {
                                                                                  if (((word >> 20) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx101001111000xxxx0xxxx0
                                                                                         frintp.  */
                                                                                      return 2595;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001xx111001111000xxxx0xxxx0
                                                                                         frintp.  */
                                                                                      return 2596;
                                                                                    }
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 20) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx10x001111000xxxx1xxxx0
                                                                                     fcvtzu.  */
                                                                                  return 2537;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001xx11x001111000xxxx1xxxx0
                                                                                     fcvtzu.  */
                                                                                  return 2538;
                                                                                }
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 20) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx10x101111000xxxxxxxxx0
                                                                                 sunpk.  */
                                                                              return 2852;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx11x101111000xxxxxxxxx0
                                                                                 sunpk.  */
                                                                              return 2853;
                                                                            }
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 20) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx10xx01111000xxxxxxxxx1
                                                                             uunpk.  */
                                                                          return 2940;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx11xx01111000xxxxxxxxx1
                                                                             uunpk.  */
                                                                          return 2941;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 5) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 18) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 20) & 0x1) == 0)
                                                                            {
                                                                              if (((word >> 22) & 0x1) == 0)
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001x010x011111000xxxx0xxxxx
                                                                                     sqcvt.  */
                                                                                  return 2752;
                                                                                }
                                                                              else
                                                                                {
                                                                                  /* 33222222222211111111110000000000
                                                                                     10987654321098765432109876543210
                                                                                     x1000001x110x011111000xxxx0xxxxx
                                                                                     sqcvtu.  */
                                                                                  return 2755;
                                                                                }
                                                                            }
                                                                          else
                                                                            {
                                                                              if (((word >> 6) & 0x1) == 0)
                                                                                {
                                                                                  if (((word >> 22) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x011x011111000xxx00xxxxx
                                                                                         sqcvt.  */
                                                                                      return 2753;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x111x011111000xxx00xxxxx
                                                                                         sqcvtu.  */
                                                                                      return 2756;
                                                                                    }
                                                                                }
                                                                              else
                                                                                {
                                                                                  if (((word >> 22) & 0x1) == 0)
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x011x011111000xxx10xxxxx
                                                                                         sqcvtn.  */
                                                                                      return 2754;
                                                                                    }
                                                                                  else
                                                                                    {
                                                                                      /* 33222222222211111111110000000000
                                                                                         10987654321098765432109876543210
                                                                                         x1000001x111x011111000xxx10xxxxx
                                                                                         sqcvtun.  */
                                                                                      return 2757;
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 1) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xx111111000xxxx0xxx0x
                                                                                 zip.  */
                                                                              return 2960;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xx111111000xxxx0xxx1x
                                                                                 uzp.  */
                                                                              return 2947;
                                                                            }
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 20) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx10xx11111000xxxx1xxxxx
                                                                             uqcvt.  */
                                                                          return 2915;
                                                                        }
                                                                      else
                                                                        {
                                                                          if (((word >> 6) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx11xx11111000xxx01xxxxx
                                                                                 uqcvt.  */
                                                                              return 2916;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx11xx11111000xxx11xxxxx
                                                                                 uqcvtn.  */
                                                                              return 2917;
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 0) & 0x1) == 0)
                                                        {
                                                          if (((word >> 5) & 0x1) == 0)
                                                            {
                                                              if (((word >> 6) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 7) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 8) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx1x1100x0000xxxx0
                                                                             smax.  */
                                                                          return 2712;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx1x1100x1000xxxx0
                                                                             fmax.  */
                                                                          return 2547;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1100xx100xxxx0
                                                                         fscale.  */
                                                                      return 3372;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1100xxx10xxxx0
                                                                     famax.  */
                                                                  return 1212;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 8) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 9) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x110000xx1xxxx0
                                                                         smin.  */
                                                                      return 2716;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x110010xx1xxxx0
                                                                         srshl.  */
                                                                      return 2770;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1100x1xx1xxxx0
                                                                     fmaxnm.  */
                                                                  return 2551;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 5) & 0x1) == 0)
                                                            {
                                                              if (((word >> 6) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 8) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1100x0x00xxxx1
                                                                         umax.  */
                                                                      return 2875;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1100x1x00xxxx1
                                                                         fmin.  */
                                                                      return 2555;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1100xxx10xxxx1
                                                                     famin.  */
                                                                  return 1214;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 8) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 9) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x110000xx1xxxx1
                                                                         umin.  */
                                                                      return 2879;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x110010xx1xxxx1
                                                                         urshl.  */
                                                                      return 2923;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1100x1xx1xxxx1
                                                                     fminnm.  */
                                                                  return 2559;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 0) & 0x1) == 0)
                                                    {
                                                      if (((word >> 5) & 0x1) == 0)
                                                        {
                                                          if (((word >> 6) & 0x1) == 0)
                                                            {
                                                              if (((word >> 7) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 8) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 12) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx1x1010x0000xxxx0
                                                                             smax.  */
                                                                          return 2711;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx1x1110x0000xxxx0
                                                                             smax.  */
                                                                          return 2713;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 9) & 0x1) == 0)
                                                                        {
                                                                          if (((word >> 12) & 0x1) == 0)
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xxxxx1x101001000xxxx0
                                                                                 fmax.  */
                                                                              return 2546;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 x1000001xx1xxxxx1x111001000xxxx0
                                                                                 fmax.  */
                                                                              return 2548;
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             x1000001xx1xxxxx1x1x1011000xxxx0
                                                                             add.  */
                                                                          return 2500;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1010xx100xxxx0
                                                                         fscale.  */
                                                                      return 3371;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1110xx100xxxx0
                                                                         fscale.  */
                                                                      return 3373;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx1x1x10xxx10xxxx0
                                                                 famax.  */
                                                              return 1213;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 8) & 0x1) == 0)
                                                            {
                                                              if (((word >> 9) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x101000xx1xxxx0
                                                                         smin.  */
                                                                      return 2715;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x111000xx1xxxx0
                                                                         smin.  */
                                                                      return 2717;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x101010xx1xxxx0
                                                                         srshl.  */
                                                                      return 2769;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x111010xx1xxxx0
                                                                         srshl.  */
                                                                      return 2771;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1010x1xx1xxxx0
                                                                     fmaxnm.  */
                                                                  return 2550;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1110x1xx1xxxx0
                                                                     fmaxnm.  */
                                                                  return 2552;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 5) & 0x1) == 0)
                                                        {
                                                          if (((word >> 6) & 0x1) == 0)
                                                            {
                                                              if (((word >> 8) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1010x0x00xxxx1
                                                                         umax.  */
                                                                      return 2874;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1110x0x00xxxx1
                                                                         umax.  */
                                                                      return 2876;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1010x1x00xxxx1
                                                                         fmin.  */
                                                                      return 2554;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x1110x1x00xxxx1
                                                                         fmin.  */
                                                                      return 2556;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1000001xx1xxxxx1x1x10xxx10xxxx1
                                                                 famin.  */
                                                              return 1215;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 8) & 0x1) == 0)
                                                            {
                                                              if (((word >> 9) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x101000xx1xxxx1
                                                                         umin.  */
                                                                      return 2878;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x111000xx1xxxx1
                                                                         umin.  */
                                                                      return 2880;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 12) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x101010xx1xxxx1
                                                                         urshl.  */
                                                                      return 2922;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1000001xx1xxxxx1x111010xx1xxxx1
                                                                         urshl.  */
                                                                      return 2924;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1010x1xx1xxxx1
                                                                     fminnm.  */
                                                                  return 2558;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1000001xx1xxxxx1x1110x1xx1xxxx1
                                                                     fminnm.  */
                                                                  return 2560;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000001xx1xxxxx1x1001xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 2758;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000001xx1xxxxx1x1101xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 2760;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000001xx1xxxxx1x1011xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 2759;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1000001xx1xxxxx1x1111xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 2761;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 3) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx000xxxxxxxxx0xxx
                                                             st1b.  */
                                                          return 2778;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx010xxxxxxxxx0xxx
                                                             st1w.  */
                                                          return 2802;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx001xxxxxxxxx0xxx
                                                             st1h.  */
                                                          return 2794;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx011xxxxxxxxx0xxx
                                                             st1d.  */
                                                          return 2786;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx000xxxxxxxxx1xxx
                                                             stnt1b.  */
                                                          return 2810;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx010xxxxxxxxx1xxx
                                                             stnt1w.  */
                                                          return 2834;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx001xxxxxxxxx1xxx
                                                             stnt1h.  */
                                                          return 2826;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx011xxxxxxxxx1xxx
                                                             stnt1d.  */
                                                          return 2818;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100001001xxxxx0xxxxxxxxxxxxxxx
                                                 str.  */
                                              return 2461;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0100001001xxxxx100xxxxxxxxx0xxx
                                                             st1b.  */
                                                          return 2779;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1100001001xxxxx100xxxxxxxxx0xxx
                                                             str.  */
                                                          return 2836;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx110xxxxxxxxx0xxx
                                                         st1w.  */
                                                      return 2803;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx101xxxxxxxxx0xxx
                                                         st1h.  */
                                                      return 2795;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx111xxxxxxxxx0xxx
                                                         st1d.  */
                                                      return 2787;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx100xxxxxxxxx1xxx
                                                         stnt1b.  */
                                                      return 2811;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx110xxxxxxxxx1xxx
                                                         stnt1w.  */
                                                      return 2835;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx101xxxxxxxxx1xxx
                                                         stnt1h.  */
                                                      return 2827;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001001xxxxx111xxxxxxxxx1xxx
                                                         stnt1d.  */
                                                      return 2819;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx100001101xxxxxxxxxxxxxxxx0xxxx
                                             umopa.  */
                                          return 2427;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx100001101xxxxxxxxxxxxxxxx1xxxx
                                             umops.  */
                                          return 2429;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      if (((word >> 3) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx000xxxxxxxxx0xxx
                                                         st1b.  */
                                                      return 2774;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx100xxxxxxxxx0xxx
                                                         st1b.  */
                                                      return 2775;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx010xxxxxxxxx0xxx
                                                         st1w.  */
                                                      return 2798;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx110xxxxxxxxx0xxx
                                                         st1w.  */
                                                      return 2799;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx001xxxxxxxxx0xxx
                                                         st1h.  */
                                                      return 2790;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx101xxxxxxxxx0xxx
                                                         st1h.  */
                                                      return 2791;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx011xxxxxxxxx0xxx
                                                         st1d.  */
                                                      return 2782;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx111xxxxxxxxx0xxx
                                                         st1d.  */
                                                      return 2783;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx000xxxxxxxxx1xxx
                                                         stnt1b.  */
                                                      return 2806;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx100xxxxxxxxx1xxx
                                                         stnt1b.  */
                                                      return 2807;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx010xxxxxxxxx1xxx
                                                         stnt1w.  */
                                                      return 2830;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx110xxxxxxxxx1xxx
                                                         stnt1w.  */
                                                      return 2831;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx001xxxxxxxxx1xxx
                                                         stnt1h.  */
                                                      return 2822;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx101xxxxxxxxx1xxx
                                                         stnt1h.  */
                                                      return 2823;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx011xxxxxxxxx1xxx
                                                         stnt1d.  */
                                                      return 2814;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx100001011xxxxx111xxxxxxxxx1xxx
                                                         stnt1d.  */
                                                      return 2815;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0100001111xxxxxxxxxxxxxxxx0xxxx
                                                 umopa.  */
                                              return 2428;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1100001111xxxxxxxxxxxxxxxx0xxxx
                                                 st1q.  */
                                              return 2454;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx100001111xxxxxxxxxxxxxxxx1xxxx
                                             umops.  */
                                          return 2430;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x0010001xxxxxxxxxxxxxxxxxxxxxxxx
                                 add.  */
                              return 12;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x1010001xxxxxxxxxxxxxxxxxxxxxxxx
                                 sub.  */
                              return 16;
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x0110001xxxxxxxxxxxxxxxxxxxxxxxx
                                 adds.  */
                              return 14;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x1110001xxxxxxxxxxxxxxxxxxxxxxxx
                                 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 937;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x000xxxxx0xxxxxxxxxxxxxxx
                                                 stxrh.  */
                                              return 943;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x000xxxxx0xxxxxxxxxxxxxxx
                                             stxr.  */
                                          return 949;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x001xxxxx0xxxxxxxxxxxxxxx
                                             casp.  */
                                          return 1026;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x001xxxxx0xxxxxxxxxxxxxxx
                                             stxp.  */
                                          return 951;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x000xxxxx1xxxxxxxxxxxxxxx
                                                 stlxrb.  */
                                              return 938;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x000xxxxx1xxxxxxxxxxxxxxx
                                                 stlxrh.  */
                                              return 944;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x000xxxxx1xxxxxxxxxxxxxxx
                                             stlxr.  */
                                          return 950;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x001xxxxx1xxxxxxxxxxxxxxx
                                             caspl.  */
                                          return 1028;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x001xxxxx1xxxxxxxxxxxxxxx
                                             stlxp.  */
                                          return 952;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x00xxxxxxxxxxxxxxxxxxxxxx
                                     stnp.  */
                                  return 971;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x00xxxxxxxxxxxxxxxxxxxxxx
                                     stgp.  */
                                  return 980;
                                }
                            }
                        }
                      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 969;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x100xxxxx0xxxxxxxxxxxxxxx
                                             stllr.  */
                                          return 968;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x101xxxxx0xxxxxxxxxxxxxxx
                                                 casb.  */
                                              return 1014;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x101xxxxx0xxxxxxxxxxxxxxx
                                                 cash.  */
                                              return 1015;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x101xxxxx0xxxxxxxxxxxxxxx
                                             cas.  */
                                          return 1016;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x100xxxxx1xxxxxxxxxxxxxxx
                                                 stlrb.  */
                                              return 941;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x100xxxxx1xxxxxxxxxxxxxxx
                                                 stlrh.  */
                                              return 947;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x100xxxxx1xxxxxxxxxxxxxxx
                                             stlr.  */
                                          return 957;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x101xxxxx1xxxxxxxxxxxxxxx
                                                 caslb.  */
                                              return 1018;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x101xxxxx1xxxxxxxxxxxxxxx
                                                 caslh.  */
                                              return 1021;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x101xxxxx1xxxxxxxxxxxxxxx
                                             casl.  */
                                          return 1024;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x10xxxxxxxxxxxxxxxxxxxxxx
                                     stp.  */
                                  return 981;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x10xxxxxxxxxxxxxxxxxxxxxx
                                     stgp.  */
                                  return 986;
                                }
                            }
                        }
                    }
                  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 939;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x010xxxxx0xxxxxxxxxxxxxxx
                                                 ldxrh.  */
                                              return 945;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x010xxxxx0xxxxxxxxxxxxxxx
                                             ldxr.  */
                                          return 953;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x011xxxxx0xxxxxxxxxxxxxxx
                                             caspa.  */
                                          return 1027;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x011xxxxx0xxxxxxxxxxxxxxx
                                             ldxp.  */
                                          return 955;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x010xxxxx1xxxxxxxxxxxxxxx
                                                 ldaxrb.  */
                                              return 940;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x010xxxxx1xxxxxxxxxxxxxxx
                                                 ldaxrh.  */
                                              return 946;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x010xxxxx1xxxxxxxxxxxxxxx
                                             ldaxr.  */
                                          return 954;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0x00100x011xxxxx1xxxxxxxxxxxxxxx
                                             caspal.  */
                                          return 1029;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x011xxxxx1xxxxxxxxxxxxxxx
                                             ldaxp.  */
                                          return 956;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x01xxxxxxxxxxxxxxxxxxxxxx
                                     ldnp.  */
                                  return 972;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x01xxxxxxxxxxxxxxxxxxxxxx
                                     ldpsw.  */
                                  return 979;
                                }
                            }
                        }
                      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 966;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x110xxxxx0xxxxxxxxxxxxxxx
                                                 ldlarh.  */
                                              return 967;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x110xxxxx0xxxxxxxxxxxxxxx
                                             ldlar.  */
                                          return 965;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x111xxxxx0xxxxxxxxxxxxxxx
                                                 casab.  */
                                              return 1017;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x111xxxxx0xxxxxxxxxxxxxxx
                                                 casah.  */
                                              return 1020;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x111xxxxx0xxxxxxxxxxxxxxx
                                             casa.  */
                                          return 1023;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x110xxxxx1xxxxxxxxxxxxxxx
                                                 ldarb.  */
                                              return 942;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x110xxxxx1xxxxxxxxxxxxxxx
                                                 ldarh.  */
                                              return 948;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x110xxxxx1xxxxxxxxxxxxxxx
                                             ldar.  */
                                          return 958;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0000100x111xxxxx1xxxxxxxxxxxxxxx
                                                 casalb.  */
                                              return 1019;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0100100x111xxxxx1xxxxxxxxxxxxxxx
                                                 casalh.  */
                                              return 1022;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x00100x111xxxxx1xxxxxxxxxxxxxxx
                                             casal.  */
                                          return 1025;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x010100x11xxxxxxxxxxxxxxxxxxxxxx
                                     ldp.  */
                                  return 982;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x110100x11xxxxxxxxxxxxxxxxxxxxxx
                                     ldpsw.  */
                                  return 985;
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 31) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 0x011000xxxxxxxxxxxxxxxxxxxxxxxx
                                 ldr.  */
                              return 987;
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     10011000xxxxxxxxxxxxxxxxxxxxxxxx
                                     ldrsw.  */
                                  return 989;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     11011000xxxxxxxxxxxxxxxxxxxxxxxx
                                     prfm.  */
                                  return 990;
                                }
                            }
                        }
                      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 922;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000000xxxxxxxxx00xxxxxxxxxx
                                                         sturh.  */
                                                      return 927;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000000xxxxxxxxx00xxxxxxxxxx
                                                     stur.  */
                                                  return 930;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000010xxxxxxxxx00xxxxxxxxxx
                                                         ldurb.  */
                                                      return 923;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000010xxxxxxxxx00xxxxxxxxxx
                                                         ldurh.  */
                                                      return 928;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000010xxxxxxxxx00xxxxxxxxxx
                                                     ldur.  */
                                                  return 931;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursb.  */
                                                  return 924;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursw.  */
                                                  return 932;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011110001x0xxxxxxxxx00xxxxxxxxxx
                                                     ldursh.  */
                                                  return 929;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111110001x0xxxxxxxxx00xxxxxxxxxx
                                                     prfum.  */
                                                  return 933;
                                                }
                                            }
                                        }
                                    }
                                  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 1042;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx000000xxxxxxxxxx
                                                                         ldaddh.  */
                                                                      return 1043;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx000000xxxxxxxxxx
                                                                     ldadd.  */
                                                                  return 1044;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx000000xxxxxxxxxx
                                                                         ldaddab.  */
                                                                      return 1045;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx000000xxxxxxxxxx
                                                                         ldaddah.  */
                                                                      return 1048;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx000000xxxxxxxxxx
                                                                     ldadda.  */
                                                                  return 1051;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx000000xxxxxxxxxx
                                                                         ldaddlb.  */
                                                                      return 1046;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx000000xxxxxxxxxx
                                                                         ldaddlh.  */
                                                                      return 1049;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx000000xxxxxxxxxx
                                                                     ldaddl.  */
                                                                  return 1052;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx000000xxxxxxxxxx
                                                                         ldaddalb.  */
                                                                      return 1047;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx000000xxxxxxxxxx
                                                                         ldaddalh.  */
                                                                      return 1050;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx000000xxxxxxxxxx
                                                                     ldaddal.  */
                                                                  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
                                                                         00111000001xxxxx100000xxxxxxxxxx
                                                                         swpb.  */
                                                                      return 1030;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx100000xxxxxxxxxx
                                                                         swph.  */
                                                                      return 1031;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx100000xxxxxxxxxx
                                                                     swp.  */
                                                                  return 1032;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx100000xxxxxxxxxx
                                                                         swpab.  */
                                                                      return 1033;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx100000xxxxxxxxxx
                                                                         swpah.  */
                                                                      return 1036;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx100000xxxxxxxxxx
                                                                     swpa.  */
                                                                  return 1039;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx100000xxxxxxxxxx
                                                                         swplb.  */
                                                                      return 1034;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx100000xxxxxxxxxx
                                                                         swplh.  */
                                                                      return 1037;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx100000xxxxxxxxxx
                                                                     swpl.  */
                                                                  return 1040;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx100000xxxxxxxxxx
                                                                         swpalb.  */
                                                                      return 1035;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx100000xxxxxxxxxx
                                                                         swpalh.  */
                                                                      return 1038;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx100000xxxxxxxxxx
                                                                     swpal.  */
                                                                  return 1041;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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 1090;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx010000xxxxxxxxxx
                                                                         ldsmaxh.  */
                                                                      return 1091;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx010000xxxxxxxxxx
                                                                     ldsmax.  */
                                                                  return 1092;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx010000xxxxxxxxxx
                                                                         ldsmaxab.  */
                                                                      return 1093;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx010000xxxxxxxxxx
                                                                         ldsmaxah.  */
                                                                      return 1096;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx010000xxxxxxxxxx
                                                                     ldsmaxa.  */
                                                                  return 1099;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx010000xxxxxxxxxx
                                                                         ldsmaxlb.  */
                                                                      return 1094;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx010000xxxxxxxxxx
                                                                         ldsmaxlh.  */
                                                                      return 1097;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx010000xxxxxxxxxx
                                                                     ldsmaxl.  */
                                                                  return 1100;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx010000xxxxxxxxxx
                                                                         ldsmaxalb.  */
                                                                      return 1095;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx010000xxxxxxxxxx
                                                                         ldsmaxalh.  */
                                                                      return 1098;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx010000xxxxxxxxxx
                                                                     ldsmaxal.  */
                                                                  return 1101;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 31) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00111000xx1xxxxx110000xxxxxxxxxx
                                                                 ldaprb.  */
                                                              return 959;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01111000xx1xxxxx110000xxxxxxxxxx
                                                                 ldaprh.  */
                                                              return 960;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             1x111000xx1xxxxx110000xxxxxxxxxx
                                                             ldapr.  */
                                                          return 961;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              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
                                                                         00111000001xxxxx001000xxxxxxxxxx
                                                                         ldeorb.  */
                                                                      return 1066;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx001000xxxxxxxxxx
                                                                         ldeorh.  */
                                                                      return 1067;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx001000xxxxxxxxxx
                                                                     ldeor.  */
                                                                  return 1068;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx001000xxxxxxxxxx
                                                                         ldeorab.  */
                                                                      return 1069;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx001000xxxxxxxxxx
                                                                         ldeorah.  */
                                                                      return 1072;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx001000xxxxxxxxxx
                                                                     ldeora.  */
                                                                  return 1075;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx001000xxxxxxxxxx
                                                                         ldeorlb.  */
                                                                      return 1070;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx001000xxxxxxxxxx
                                                                         ldeorlh.  */
                                                                      return 1073;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx001000xxxxxxxxxx
                                                                     ldeorl.  */
                                                                  return 1076;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx001000xxxxxxxxxx
                                                                         ldeoralb.  */
                                                                      return 1071;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx001000xxxxxxxxxx
                                                                         ldeoralh.  */
                                                                      return 1074;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx001000xxxxxxxxxx
                                                                     ldeoral.  */
                                                                  return 1077;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000001xxxxx101000xxxxxxxxxx
                                                                     rcwswp.  */
                                                                  return 3265;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 31) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx101000xxxxxxxxxx
                                                                         rcwsswp.  */
                                                                      return 3273;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         11111000001xxxxx101000xxxxxxxxxx
                                                                         st64bv0.  */
                                                                      return 994;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000101xxxxx101000xxxxxxxxxx
                                                                     rcwswpa.  */
                                                                  return 3266;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000101xxxxx101000xxxxxxxxxx
                                                                     rcwsswpa.  */
                                                                  return 3274;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000011xxxxx101000xxxxxxxxxx
                                                                     rcwswpl.  */
                                                                  return 3268;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000011xxxxx101000xxxxxxxxxx
                                                                     rcwsswpl.  */
                                                                  return 3276;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000111xxxxx101000xxxxxxxxxx
                                                                     rcwswpal.  */
                                                                  return 3267;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000111xxxxx101000xxxxxxxxxx
                                                                     rcwsswpal.  */
                                                                  return 3275;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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 1114;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx11000xxxxxxxxxx
                                                                     ldumaxh.  */
                                                                  return 1115;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx11000xxxxxxxxxx
                                                                 ldumax.  */
                                                              return 1116;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx11000xxxxxxxxxx
                                                                     ldumaxab.  */
                                                                  return 1117;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx11000xxxxxxxxxx
                                                                     ldumaxah.  */
                                                                  return 1120;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx11000xxxxxxxxxx
                                                                 ldumaxa.  */
                                                              return 1123;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx11000xxxxxxxxxx
                                                                     ldumaxlb.  */
                                                                  return 1118;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx11000xxxxxxxxxx
                                                                     ldumaxlh.  */
                                                                  return 1121;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx11000xxxxxxxxxx
                                                                 ldumaxl.  */
                                                              return 1124;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx11000xxxxxxxxxx
                                                                     ldumaxalb.  */
                                                                  return 1119;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx11000xxxxxxxxxx
                                                                     ldumaxalh.  */
                                                                  return 1122;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx11000xxxxxxxxxx
                                                                 ldumaxal.  */
                                                              return 1125;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      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 >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000001xxxxx000100xxxxxxxxxx
                                                                         ldclrb.  */
                                                                      return 1054;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx000100xxxxxxxxxx
                                                                         ldclrh.  */
                                                                      return 1055;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx000100xxxxxxxxxx
                                                                     ldclr.  */
                                                                  return 1056;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx000100xxxxxxxxxx
                                                                         ldclrab.  */
                                                                      return 1057;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx000100xxxxxxxxxx
                                                                         ldclrah.  */
                                                                      return 1060;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx000100xxxxxxxxxx
                                                                     ldclra.  */
                                                                  return 1063;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx000100xxxxxxxxxx
                                                                         ldclrlb.  */
                                                                      return 1058;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx000100xxxxxxxxxx
                                                                         ldclrlh.  */
                                                                      return 1061;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx000100xxxxxxxxxx
                                                                     ldclrl.  */
                                                                  return 1064;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx000100xxxxxxxxxx
                                                                         ldclralb.  */
                                                                      return 1059;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx000100xxxxxxxxxx
                                                                         ldclralh.  */
                                                                      return 1062;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx000100xxxxxxxxxx
                                                                     ldclral.  */
                                                                  return 1065;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000001xxxxx100100xxxxxxxxxx
                                                                     rcwclr.  */
                                                                  return 3233;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 31) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx100100xxxxxxxxxx
                                                                         rcwsclr.  */
                                                                      return 3241;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         11111000001xxxxx100100xxxxxxxxxx
                                                                         st64b.  */
                                                                      return 992;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000101xxxxx100100xxxxxxxxxx
                                                                     rcwclra.  */
                                                                  return 3234;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000101xxxxx100100xxxxxxxxxx
                                                                     rcwsclra.  */
                                                                  return 3242;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000011xxxxx100100xxxxxxxxxx
                                                                     rcwclrl.  */
                                                                  return 3236;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000011xxxxx100100xxxxxxxxxx
                                                                     rcwsclrl.  */
                                                                  return 3244;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000111xxxxx100100xxxxxxxxxx
                                                                     rcwclral.  */
                                                                  return 3235;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000111xxxxx100100xxxxxxxxxx
                                                                     rcwsclral.  */
                                                                  return 3243;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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
                                                                         00111000001xxxxx010100xxxxxxxxxx
                                                                         ldsminb.  */
                                                                      return 1102;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx010100xxxxxxxxxx
                                                                         ldsminh.  */
                                                                      return 1103;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx010100xxxxxxxxxx
                                                                     ldsmin.  */
                                                                  return 1104;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx010100xxxxxxxxxx
                                                                         ldsminab.  */
                                                                      return 1105;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx010100xxxxxxxxxx
                                                                         ldsminah.  */
                                                                      return 1108;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx010100xxxxxxxxxx
                                                                     ldsmina.  */
                                                                  return 1111;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx010100xxxxxxxxxx
                                                                         ldsminlb.  */
                                                                      return 1106;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx010100xxxxxxxxxx
                                                                         ldsminlh.  */
                                                                      return 1109;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx010100xxxxxxxxxx
                                                                     ldsminl.  */
                                                                  return 1112;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx010100xxxxxxxxxx
                                                                         ldsminalb.  */
                                                                      return 1107;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx010100xxxxxxxxxx
                                                                         ldsminalh.  */
                                                                      return 1110;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx010100xxxxxxxxxx
                                                                     ldsminal.  */
                                                                  return 1113;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111000xx1xxxxx110100xxxxxxxxxx
                                                         ld64b.  */
                                                      return 991;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              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
                                                                         00111000001xxxxx001100xxxxxxxxxx
                                                                         ldsetb.  */
                                                                      return 1078;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx001100xxxxxxxxxx
                                                                         ldseth.  */
                                                                      return 1079;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000001xxxxx001100xxxxxxxxxx
                                                                     ldset.  */
                                                                  return 1080;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000101xxxxx001100xxxxxxxxxx
                                                                         ldsetab.  */
                                                                      return 1081;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000101xxxxx001100xxxxxxxxxx
                                                                         ldsetah.  */
                                                                      return 1084;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000101xxxxx001100xxxxxxxxxx
                                                                     ldseta.  */
                                                                  return 1087;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000011xxxxx001100xxxxxxxxxx
                                                                         ldsetlb.  */
                                                                      return 1082;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000011xxxxx001100xxxxxxxxxx
                                                                         ldsetlh.  */
                                                                      return 1085;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000011xxxxx001100xxxxxxxxxx
                                                                     ldsetl.  */
                                                                  return 1088;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         00111000111xxxxx001100xxxxxxxxxx
                                                                         ldsetalb.  */
                                                                      return 1083;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000111xxxxx001100xxxxxxxxxx
                                                                         ldsetalh.  */
                                                                      return 1086;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     1x111000111xxxxx001100xxxxxxxxxx
                                                                     ldsetal.  */
                                                                  return 1089;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000001xxxxx101100xxxxxxxxxx
                                                                     rcwset.  */
                                                                  return 3249;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 31) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         01111000001xxxxx101100xxxxxxxxxx
                                                                         rcwsset.  */
                                                                      return 3257;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         11111000001xxxxx101100xxxxxxxxxx
                                                                         st64bv.  */
                                                                      return 993;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000101xxxxx101100xxxxxxxxxx
                                                                     rcwseta.  */
                                                                  return 3250;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000101xxxxx101100xxxxxxxxxx
                                                                     rcwsseta.  */
                                                                  return 3258;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000011xxxxx101100xxxxxxxxxx
                                                                     rcwsetl.  */
                                                                  return 3252;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000011xxxxx101100xxxxxxxxxx
                                                                     rcwssetl.  */
                                                                  return 3260;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x0111000111xxxxx101100xxxxxxxxxx
                                                                     rcwsetal.  */
                                                                  return 3251;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1111000111xxxxx101100xxxxxxxxxx
                                                                     rcwssetal.  */
                                                                  return 3259;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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 1126;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000001xxxxxx11100xxxxxxxxxx
                                                                     lduminh.  */
                                                                  return 1127;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000001xxxxxx11100xxxxxxxxxx
                                                                 ldumin.  */
                                                              return 1128;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000101xxxxxx11100xxxxxxxxxx
                                                                     lduminab.  */
                                                                  return 1129;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000101xxxxxx11100xxxxxxxxxx
                                                                     lduminah.  */
                                                                  return 1132;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000101xxxxxx11100xxxxxxxxxx
                                                                 ldumina.  */
                                                              return 1135;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000011xxxxxx11100xxxxxxxxxx
                                                                     lduminlb.  */
                                                                  return 1130;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000011xxxxxx11100xxxxxxxxxx
                                                                     lduminlh.  */
                                                                  return 1133;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000011xxxxxx11100xxxxxxxxxx
                                                                 lduminl.  */
                                                              return 1136;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00111000111xxxxxx11100xxxxxxxxxx
                                                                     lduminalb.  */
                                                                  return 1131;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01111000111xxxxxx11100xxxxxxxxxx
                                                                     lduminalh.  */
                                                                  return 1134;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x111000111xxxxxx11100xxxxxxxxxx
                                                                 lduminal.  */
                                                              return 1137;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              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 913;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000000xxxxxxxxx10xxxxxxxxxx
                                                         sttrh.  */
                                                      return 916;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000000xxxxxxxxx10xxxxxxxxxx
                                                     sttr.  */
                                                  return 919;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000010xxxxxxxxx10xxxxxxxxxx
                                                         ldtrb.  */
                                                      return 914;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000010xxxxxxxxx10xxxxxxxxxx
                                                         ldtrh.  */
                                                      return 917;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000010xxxxxxxxx10xxxxxxxxxx
                                                     ldtr.  */
                                                  return 920;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x0xxxxxxxxx10xxxxxxxxxx
                                                     ldtrsb.  */
                                                  return 915;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x0xxxxxxxxx10xxxxxxxxxx
                                                     ldtrsw.  */
                                                  return 921;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11110001x0xxxxxxxxx10xxxxxxxxxx
                                                 ldtrsh.  */
                                              return 918;
                                            }
                                        }
                                    }
                                  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 901;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000001xxxxxxxxx10xxxxxxxxxx
                                                         strh.  */
                                                      return 906;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000001xxxxxxxxx10xxxxxxxxxx
                                                     str.  */
                                                  return 909;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00111000011xxxxxxxxx10xxxxxxxxxx
                                                         ldrb.  */
                                                      return 902;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01111000011xxxxxxxxx10xxxxxxxxxx
                                                         ldrh.  */
                                                      return 907;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x111000011xxxxxxxxx10xxxxxxxxxx
                                                     ldr.  */
                                                  return 910;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsb.  */
                                                  return 903;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsw.  */
                                                  return 911;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011110001x1xxxxxxxxx10xxxxxxxxxx
                                                     ldrsh.  */
                                                  return 908;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111110001x1xxxxxxxxx10xxxxxxxxxx
                                                     prfm.  */
                                                  return 912;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          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 870;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01111000000xxxxxxxxxx1xxxxxxxxxx
                                                     strh.  */
                                                  return 875;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 1x111000000xxxxxxxxxx1xxxxxxxxxx
                                                 str.  */
                                              return 878;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     00111000010xxxxxxxxxx1xxxxxxxxxx
                                                     ldrb.  */
                                                  return 871;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01111000010xxxxxxxxxx1xxxxxxxxxx
                                                     ldrh.  */
                                                  return 876;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 1x111000010xxxxxxxxxx1xxxxxxxxxx
                                                 ldr.  */
                                              return 879;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 001110001x0xxxxxxxxxx1xxxxxxxxxx
                                                 ldrsb.  */
                                              return 872;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 101110001x0xxxxxxxxxx1xxxxxxxxxx
                                                 ldrsw.  */
                                              return 880;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11110001x0xxxxxxxxxx1xxxxxxxxxx
                                             ldrsh.  */
                                          return 877;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx1110000x1xxxxxxxxxx1xxxxxxxxxx
                                         ldraa.  */
                                      return 935;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx1110001x1xxxxxxxxxx1xxxxxxxxxx
                                         ldrab.  */
                                      return 936;
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 22) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00011001000xxxxxxxxx00xxxxxxxxxx
                                                         stlurb.  */
                                                      return 3023;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         10011001000xxxxxxxxx00xxxxxxxxxx
                                                         stlur.  */
                                                      return 3031;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001000xxxxxxxxx00xxxxxxxxxx
                                                         stlurh.  */
                                                      return 3027;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001000xxxxxxxxx00xxxxxxxxxx
                                                         stlur.  */
                                                      return 3034;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001001xxxxx0x0000xxxxxxxxxx
                                                             stzgm.  */
                                                          return 964;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001001xxxxx1x0000xxxxxxxxxx
                                                             swpp.  */
                                                          return 1194;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011001001xxxxxxx1000xxxxxxxxxx
                                                             rcwswpp.  */
                                                          return 3269;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011001001xxxxxxx1000xxxxxxxxxx
                                                             rcwsswpp.  */
                                                          return 3277;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001001xxxxx0x0100xxxxxxxxxx
                                                             ldclrp.  */
                                                          return 1186;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001001xxxxx1x0100xxxxxxxxxx
                                                                 rcwclrp.  */
                                                              return 3237;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001001xxxxx1x0100xxxxxxxxxx
                                                                 rcwsclrp.  */
                                                              return 3245;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001001xxxxx0x1100xxxxxxxxxx
                                                             ldsetp.  */
                                                          return 1190;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001001xxxxx1x1100xxxxxxxxxx
                                                                 rcwsetp.  */
                                                              return 3253;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001001xxxxx1x1100xxxxxxxxxx
                                                                 rcwssetp.  */
                                                              return 3261;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx011001000xxxxxxxxx10xxxxxxxxxx
                                                 stilp.  */
                                              return 1199;
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011001001xxxxxxxxx10xxxxxxxxxx
                                                     rcwcas.  */
                                                  return 3217;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001001xxxxxxxxx10xxxxxxxxxx
                                                         rcwscas.  */
                                                      return 3225;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001001xxxxxxxxx10xxxxxxxxxx
                                                         stg.  */
                                                      return 881;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 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)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx000001xxxxxxxxxx
                                                                 cpyfp.  */
                                                              return 3083;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx100001xxxxxxxxxx
                                                                 cpyfprn.  */
                                                              return 3089;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx010001xxxxxxxxxx
                                                                 cpyfpwn.  */
                                                              return 3086;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx110001xxxxxxxxxx
                                                                 cpyfpn.  */
                                                              return 3092;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx001001xxxxxxxxxx
                                                                 cpyfprt.  */
                                                              return 3107;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx101001xxxxxxxxxx
                                                                 cpyfprtrn.  */
                                                              return 3113;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx011001xxxxxxxxxx
                                                                 cpyfprtwn.  */
                                                              return 3110;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx111001xxxxxxxxxx
                                                                 cpyfprtn.  */
                                                              return 3116;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx000101xxxxxxxxxx
                                                                 cpyfpwt.  */
                                                              return 3095;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx100101xxxxxxxxxx
                                                                 cpyfpwtrn.  */
                                                              return 3101;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx010101xxxxxxxxxx
                                                                 cpyfpwtwn.  */
                                                              return 3098;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx110101xxxxxxxxxx
                                                                 cpyfpwtn.  */
                                                              return 3104;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx001101xxxxxxxxxx
                                                                 cpyfpt.  */
                                                              return 3119;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx101101xxxxxxxxxx
                                                                 cpyfptrn.  */
                                                              return 3125;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx011101xxxxxxxxxx
                                                                 cpyfptwn.  */
                                                              return 3122;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011001000xxxxx111101xxxxxxxxxx
                                                                 cpyfptn.  */
                                                              return 3128;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011001000xxxxxxxx011xxxxxxxxxx
                                                     gcsstr.  */
                                                  return 1269;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011001000xxxxxxxx111xxxxxxxxxx
                                                     gcssttr.  */
                                                  return 1270;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011001001xxxxxxxxxx1xxxxxxxxxx
                                                 rcwcasp.  */
                                              return 3221;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01011001001xxxxxxxxxx1xxxxxxxxxx
                                                     rcwscasp.  */
                                                  return 3229;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11011001001xxxxxxxxxx1xxxxxxxxxx
                                                     stg.  */
                                                  return 885;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0011100100xxxxxxxxxxxxxxxxxxxxxx
                                             strb.  */
                                          return 889;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0111100100xxxxxxxxxxxxxxxxxxxxxx
                                             strh.  */
                                          return 894;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         1x11100100xxxxxxxxxxxxxxxxxxxxxx
                                         str.  */
                                      return 897;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00011001010xxxxxxxxx00xxxxxxxxxx
                                                         ldapurb.  */
                                                      return 3024;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         10011001010xxxxxxxxx00xxxxxxxxxx
                                                         ldapur.  */
                                                      return 3032;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001010xxxxxxxxx00xxxxxxxxxx
                                                         ldapurh.  */
                                                      return 3028;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001010xxxxxxxxx00xxxxxxxxxx
                                                         ldapur.  */
                                                      return 3035;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 13) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011001011xxxxxxx0000xxxxxxxxxx
                                                             swppl.  */
                                                          return 1197;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011001011xxxxxxx1000xxxxxxxxxx
                                                             rcwswppl.  */
                                                          return 3272;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 13) & 0x1) == 0)
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001011xxxxx0x0100xxxxxxxxxx
                                                                 ldclrpl.  */
                                                              return 1189;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001011xxxxx1x0100xxxxxxxxxx
                                                                 rcwclrpl.  */
                                                              return 3240;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 15) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001011xxxxx0x1100xxxxxxxxxx
                                                                 ldsetpl.  */
                                                              return 1193;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001011xxxxx1x1100xxxxxxxxxx
                                                                 rcwsetpl.  */
                                                              return 3256;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             01011001011xxxxxxxx000xxxxxxxxxx
                                                             rcwsswppl.  */
                                                          return 3280;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 13) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01011001011xxxxxxx0100xxxxxxxxxx
                                                                 rcwsclrpl.  */
                                                              return 3248;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01011001011xxxxxxx1100xxxxxxxxxx
                                                                 rcwssetpl.  */
                                                              return 3264;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001011xxxxxxxxx00xxxxxxxxxx
                                                         ldg.  */
                                                      return 934;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx011001010xxxxxxxxx10xxxxxxxxxx
                                                 ldiapp.  */
                                              return 1198;
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011001011xxxxxxxxx10xxxxxxxxxx
                                                     rcwcasl.  */
                                                  return 3220;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001011xxxxxxxxx10xxxxxxxxxx
                                                         rcwscasl.  */
                                                      return 3228;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001011xxxxxxxxx10xxxxxxxxxx
                                                         stzg.  */
                                                      return 882;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0000x1xxxxxxxxxx
                                                             cpyfm.  */
                                                          return 3084;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1000x1xxxxxxxxxx
                                                             cpyfmrn.  */
                                                          return 3090;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0100x1xxxxxxxxxx
                                                             cpyfmwn.  */
                                                          return 3087;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1100x1xxxxxxxxxx
                                                             cpyfmn.  */
                                                          return 3093;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0010x1xxxxxxxxxx
                                                             cpyfmrt.  */
                                                          return 3108;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1010x1xxxxxxxxxx
                                                             cpyfmrtrn.  */
                                                          return 3114;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0110x1xxxxxxxxxx
                                                             cpyfmrtwn.  */
                                                          return 3111;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1110x1xxxxxxxxxx
                                                             cpyfmrtn.  */
                                                          return 3117;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0001x1xxxxxxxxxx
                                                             cpyfmwt.  */
                                                          return 3096;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1001x1xxxxxxxxxx
                                                             cpyfmwtrn.  */
                                                          return 3102;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0101x1xxxxxxxxxx
                                                             cpyfmwtwn.  */
                                                          return 3099;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1101x1xxxxxxxxxx
                                                             cpyfmwtn.  */
                                                          return 3105;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0011x1xxxxxxxxxx
                                                             cpyfmt.  */
                                                          return 3120;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1011x1xxxxxxxxxx
                                                             cpyfmtrn.  */
                                                          return 3126;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx0111x1xxxxxxxxxx
                                                             cpyfmtwn.  */
                                                          return 3123;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001010xxxxx1111x1xxxxxxxxxx
                                                             cpyfmtn.  */
                                                          return 3129;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011001011xxxxxxxxxx1xxxxxxxxxx
                                                 rcwcaspl.  */
                                              return 3224;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01011001011xxxxxxxxxx1xxxxxxxxxx
                                                     rcwscaspl.  */
                                                  return 3232;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11011001011xxxxxxxxxx1xxxxxxxxxx
                                                     stzg.  */
                                                  return 886;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0011100101xxxxxxxxxxxxxxxxxxxxxx
                                             ldrb.  */
                                          return 890;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             0111100101xxxxxxxxxxxxxxxxxxxxxx
                                             ldrh.  */
                                          return 895;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         1x11100101xxxxxxxxxxxxxxxxxxxxxx
                                         ldr.  */
                                      return 898;
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         00011001100xxxxxxxxx00xxxxxxxxxx
                                                         ldapursb.  */
                                                      return 3026;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         10011001100xxxxxxxxx00xxxxxxxxxx
                                                         ldapursw.  */
                                                      return 3033;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011001100xxxxxxxxx00xxxxxxxxxx
                                                     ldapursh.  */
                                                  return 3030;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011001110xxxxxxxxx00xxxxxxxxxx
                                                     ldapursb.  */
                                                  return 3025;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011001110xxxxxxxxx00xxxxxxxxxx
                                                     ldapursh.  */
                                                  return 3029;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001101xxxxx0x0000xxxxxxxxxx
                                                             stgm.  */
                                                          return 963;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001111xxxxx0x0000xxxxxxxxxx
                                                             ldgm.  */
                                                          return 962;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001101xxxxx1x0000xxxxxxxxxx
                                                             swppa.  */
                                                          return 1195;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001111xxxxx1x0000xxxxxxxxxx
                                                             swppal.  */
                                                          return 1196;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011001101xxxxxxx1000xxxxxxxxxx
                                                             rcwswppa.  */
                                                          return 3270;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011001101xxxxxxx1000xxxxxxxxxx
                                                             rcwsswppa.  */
                                                          return 3278;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011001111xxxxxxx1000xxxxxxxxxx
                                                             rcwswppal.  */
                                                          return 3271;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011001111xxxxxxx1000xxxxxxxxxx
                                                             rcwsswppal.  */
                                                          return 3279;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001101xxxxx0x0100xxxxxxxxxx
                                                             ldclrpa.  */
                                                          return 1187;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001111xxxxx0x0100xxxxxxxxxx
                                                             ldclrpal.  */
                                                          return 1188;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001101xxxxx1x0100xxxxxxxxxx
                                                                 rcwclrpa.  */
                                                              return 3238;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001101xxxxx1x0100xxxxxxxxxx
                                                                 rcwsclrpa.  */
                                                              return 3246;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001111xxxxx1x0100xxxxxxxxxx
                                                                 rcwclrpal.  */
                                                              return 3239;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001111xxxxx1x0100xxxxxxxxxx
                                                                 rcwsclrpal.  */
                                                              return 3247;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001101xxxxx0x1100xxxxxxxxxx
                                                             ldsetpa.  */
                                                          return 1191;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001111xxxxx0x1100xxxxxxxxxx
                                                             ldsetpal.  */
                                                          return 1192;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001101xxxxx1x1100xxxxxxxxxx
                                                                 rcwsetpa.  */
                                                              return 3254;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001101xxxxx1x1100xxxxxxxxxx
                                                                 rcwssetpa.  */
                                                              return 3262;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011001111xxxxx1x1100xxxxxxxxxx
                                                                 rcwsetpal.  */
                                                              return 3255;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1011001111xxxxx1x1100xxxxxxxxxx
                                                                 rcwssetpal.  */
                                                              return 3263;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx011001100xxxxxxxxx10xxxxxxxxxx
                                                 stlr.  */
                                              return 1201;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx011001110xxxxxxxxx10xxxxxxxxxx
                                                 ldapr.  */
                                              return 1200;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011001101xxxxxxxxx10xxxxxxxxxx
                                                     rcwcasa.  */
                                                  return 3218;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001101xxxxxxxxx10xxxxxxxxxx
                                                         rcwscasa.  */
                                                      return 3226;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001101xxxxxxxxx10xxxxxxxxxx
                                                         st2g.  */
                                                      return 883;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0011001111xxxxxxxxx10xxxxxxxxxx
                                                     rcwcasal.  */
                                                  return 3219;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         01011001111xxxxxxxxx10xxxxxxxxxx
                                                         rcwscasal.  */
                                                      return 3227;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11011001111xxxxxxxxx10xxxxxxxxxx
                                                         stz2g.  */
                                                      return 884;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      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)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0000x1xxxxxxxxxx
                                                             cpyfe.  */
                                                          return 3085;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0000x1xxxxxxxxxx
                                                             setp.  */
                                                          return 3179;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx1000x1xxxxxxxxxx
                                                             cpyfern.  */
                                                          return 3091;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx1000x1xxxxxxxxxx
                                                             sete.  */
                                                          return 3181;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0100x1xxxxxxxxxx
                                                             cpyfewn.  */
                                                          return 3088;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0100x1xxxxxxxxxx
                                                             setm.  */
                                                          return 3180;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0110011x0xxxxx1100x1xxxxxxxxxx
                                                         cpyfen.  */
                                                      return 3094;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0010x1xxxxxxxxxx
                                                             cpyfert.  */
                                                          return 3109;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0010x1xxxxxxxxxx
                                                             setpn.  */
                                                          return 3185;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx1010x1xxxxxxxxxx
                                                             cpyfertrn.  */
                                                          return 3115;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx1010x1xxxxxxxxxx
                                                             seten.  */
                                                          return 3187;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0110x1xxxxxxxxxx
                                                             cpyfertwn.  */
                                                          return 3112;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0110x1xxxxxxxxxx
                                                             setmn.  */
                                                          return 3186;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0110011x0xxxxx1110x1xxxxxxxxxx
                                                         cpyfertn.  */
                                                      return 3118;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0001x1xxxxxxxxxx
                                                             cpyfewt.  */
                                                          return 3097;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0001x1xxxxxxxxxx
                                                             setpt.  */
                                                          return 3182;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx1001x1xxxxxxxxxx
                                                             cpyfewtrn.  */
                                                          return 3103;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx1001x1xxxxxxxxxx
                                                             setet.  */
                                                          return 3184;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0101x1xxxxxxxxxx
                                                             cpyfewtwn.  */
                                                          return 3100;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0101x1xxxxxxxxxx
                                                             setmt.  */
                                                          return 3183;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0110011x0xxxxx1101x1xxxxxxxxxx
                                                         cpyfewtn.  */
                                                      return 3106;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0011x1xxxxxxxxxx
                                                             cpyfet.  */
                                                          return 3121;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0011x1xxxxxxxxxx
                                                             setptn.  */
                                                          return 3188;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx1011x1xxxxxxxxxx
                                                             cpyfetrn.  */
                                                          return 3127;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx1011x1xxxxxxxxxx
                                                             setetn.  */
                                                          return 3190;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001100xxxxx0111x1xxxxxxxxxx
                                                             cpyfetwn.  */
                                                          return 3124;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011001110xxxxx0111x1xxxxxxxxxx
                                                             setmtn.  */
                                                          return 3189;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx0110011x0xxxxx1111x1xxxxxxxxxx
                                                         cpyfetn.  */
                                                      return 3130;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011001101xxxxxxxxxx1xxxxxxxxxx
                                                 rcwcaspa.  */
                                              return 3222;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01011001101xxxxxxxxxx1xxxxxxxxxx
                                                     rcwscaspa.  */
                                                  return 3230;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11011001101xxxxxxxxxx1xxxxxxxxxx
                                                     st2g.  */
                                                  return 887;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011001111xxxxxxxxxx1xxxxxxxxxx
                                                 rcwcaspal.  */
                                              return 3223;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     01011001111xxxxxxxxxx1xxxxxxxxxx
                                                     rcwscaspal.  */
                                                  return 3231;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11011001111xxxxxxxxxx1xxxxxxxxxx
                                                     stz2g.  */
                                                  return 888;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         001110011xxxxxxxxxxxxxxxxxxxxxxx
                                         ldrsb.  */
                                      return 891;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         101110011xxxxxxxxxxxxxxxxxxxxxxx
                                         ldrsw.  */
                                      return 899;
                                    }
                                }
                              else
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         011110011xxxxxxxxxxxxxxxxxxxxxxx
                                         ldrsh.  */
                                      return 896;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         111110011xxxxxxxxxxxxxxxxxxxxxxx
                                         prfm.  */
                                      return 900;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
      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 995;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 eor.  */
                              return 999;
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x01x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 orr.  */
                              return 997;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x11x00100xxxxxxxxxxxxxxxxxxxxxxx
                                 ands.  */
                              return 1000;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x00101xxxxxxxxxxxxxxxxxxxxxxx
                                 movn.  */
                              return 1216;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00101xxxxxxxxxxxxxxxxxxxxxxx
                                 movz.  */
                              return 1218;
                            }
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx1x00101xxxxxxxxxxxxxxxxxxxxxxx
                             movk.  */
                          return 1220;
                        }
                    }
                }
              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 1002;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1001010xx0xxxxxxxxxxxxxxxxxxxxx
                                     eor.  */
                                  return 1009;
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0101010xx0xxxxxxxxxxxxxxxxxxxxx
                                     orr.  */
                                  return 1004;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1101010xx0xxxxxxxxxxxxxxxxxxxxx
                                     ands.  */
                                  return 1011;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 22) & 0x1) == 0)
                            {
                              if (((word >> 23) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 10) & 0x1) == 0)
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0011010000xxxxxxx0x00xxxxxxxxxx
                                                         adc.  */
                                                      return 0;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011010000xxxxxxx0x00xxxxxxxxxx
                                                         sbc.  */
                                                      return 2;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0111010000xxxxxxx0x00xxxxxxxxxx
                                                         adcs.  */
                                                      return 1;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1111010000xxxxxxx0x00xxxxxxxxxx
                                                         sbcs.  */
                                                      return 4;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010000xxxxxx00x10xxxxxxxxxx
                                                     setf8.  */
                                                  return 3021;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010000xxxxxx10x10xxxxxxxxxx
                                                     setf16.  */
                                                  return 3022;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xxx11010000xxxxxxx0xx1xxxxxxxxxx
                                             rmif.  */
                                          return 3020;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11010000xxxxxxx1xxxxxxxxxxxxx
                                             addpt.  */
                                          return 3374;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x11010000xxxxxxx1xxxxxxxxxxxxx
                                             subpt.  */
                                          return 3375;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11010100xxxxxxxxxx0xxxxxxxxxx
                                             csel.  */
                                          return 662;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x11010100xxxxxxxxxx0xxxxxxxxxx
                                             csinv.  */
                                          return 666;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11010100xxxxxxxxxx1xxxxxxxxxx
                                             csinc.  */
                                          return 663;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1x11010100xxxxxxxxxx1xxxxxxxxxx
                                             csneg.  */
                                          return 669;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x11010010xxxxxxxxx00xxxxxxxxxx
                                                 ccmn.  */
                                              return 660;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11010010xxxxxxxxx00xxxxxxxxxx
                                                 ccmp.  */
                                              return 661;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0011010110xxxxxx00000xxxxxxxxxx
                                                                 subp.  */
                                                              return 721;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1011010110xxxx0x00000xxxxxxxxxx
                                                                     rbit.  */
                                                                  return 685;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     x1011010110xxxx1x00000xxxxxxxxxx
                                                                     pacia.  */
                                                                  return 693;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx111010110xxxxxx00000xxxxxxxxxx
                                                             subps.  */
                                                          return 722;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx10000xxxxxxxxxx
                                                             crc32b.  */
                                                          return 727;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010110xxxxxx10000xxxxxxxxxx
                                                             xpaci.  */
                                                          return 709;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx01000xxxxxxxxxx
                                                             lslv.  */
                                                          return 713;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1x11010110xxxx0x01000xxxxxxxxxx
                                                                 abs.  */
                                                              return 3208;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1x11010110xxxx1x01000xxxxxxxxxx
                                                                 paciza.  */
                                                              return 701;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx11000xxxxxxxxxx
                                                         smax.  */
                                                      return 3211;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx00100xxxxxxxxxx
                                                             irg.  */
                                                          return 724;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1x11010110xxxx0x00100xxxxxxxxxx
                                                                 clz.  */
                                                              return 690;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1x11010110xxxx1x00100xxxxxxxxxx
                                                                 autia.  */
                                                              return 697;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx10100xxxxxxxxxx
                                                         crc32cb.  */
                                                      return 731;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010110xxxxxxx1100xxxxxxxxxx
                                                         pacga.  */
                                                      return 726;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010110xxxxxxx1100xxxxxxxxxx
                                                         autiza.  */
                                                      return 705;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x11010010xxxxxxxxx10xxxxxxxxxx
                                                 ccmn.  */
                                              return 658;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11010010xxxxxxxxx10xxxxxxxxxx
                                                 ccmp.  */
                                              return 659;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx00010xxxxxxxxxx
                                                             udiv.  */
                                                          return 711;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 31) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01x11010110xxxx0x00010xxxxxxxxxx
                                                                     rev.  */
                                                                  return 687;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     11x11010110xxxx0x00010xxxxxxxxxx
                                                                     rev32.  */
                                                                  return 692;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1x11010110xxxx1x00010xxxxxxxxxx
                                                                 pacda.  */
                                                              return 695;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx10010xxxxxxxxxx
                                                         crc32w.  */
                                                      return 729;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x11010110xxxxxx01010xxxxxxxxxx
                                                             asrv.  */
                                                          return 717;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010110xxxxxx01010xxxxxxxxxx
                                                             pacdza.  */
                                                          return 703;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx11010xxxxxxxxxx
                                                         smin.  */
                                                      return 3213;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx0x00110xxxxxxxxxx
                                                             ctz.  */
                                                          return 3210;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11010110xxxx1x00110xxxxxxxxxx
                                                             autda.  */
                                                          return 699;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010110xxxxxx10110xxxxxxxxxx
                                                         crc32cw.  */
                                                      return 733;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010110xxxxxxx1110xxxxxxxxxx
                                                     autdza.  */
                                                  return 707;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx0x00001xxxxxxxxxx
                                                         rev16.  */
                                                      return 686;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx1x00001xxxxxxxxxx
                                                         pacib.  */
                                                      return 694;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx10001xxxxxxxxxx
                                                         crc32h.  */
                                                      return 728;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010x10xxxxxx10001xxxxxxxxxx
                                                         xpacd.  */
                                                      return 710;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx01001xxxxxxxxxx
                                                         lsrv.  */
                                                      return 715;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010x10xxxxxx01001xxxxxxxxxx
                                                         pacizb.  */
                                                      return 702;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx11001xxxxxxxxxx
                                                     umax.  */
                                                  return 3212;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx00101xxxxxxxxxx
                                                         gmi.  */
                                                      return 725;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010x10xxxx0x00101xxxxxxxxxx
                                                             cls.  */
                                                          return 691;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010x10xxxx1x00101xxxxxxxxxx
                                                             autib.  */
                                                          return 698;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx10101xxxxxxxxxx
                                                     crc32ch.  */
                                                  return 732;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010x10xxxxxxx1101xxxxxxxxxx
                                                 autizb.  */
                                              return 706;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx00011xxxxxxxxxx
                                                         sdiv.  */
                                                      return 712;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010x10xxxx0x00011xxxxxxxxxx
                                                             rev.  */
                                                          return 688;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x11010x10xxxx1x00011xxxxxxxxxx
                                                             pacdb.  */
                                                          return 696;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx10011xxxxxxxxxx
                                                     crc32x.  */
                                                  return 730;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11010x10xxxxxx01011xxxxxxxxxx
                                                         rorv.  */
                                                      return 719;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11010x10xxxxxx01011xxxxxxxxxx
                                                         pacdzb.  */
                                                      return 704;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx11011xxxxxxxxxx
                                                     umin.  */
                                                  return 3214;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx0x00111xxxxxxxxxx
                                                         cnt.  */
                                                      return 3209;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11010x10xxxx1x00111xxxxxxxxxx
                                                         autdb.  */
                                                      return 700;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11010x10xxxxxx10111xxxxxxxxxx
                                                     crc32cx.  */
                                                  return 734;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xxx11010x10xxxxxxx1111xxxxxxxxxx
                                                 autdzb.  */
                                              return 708;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x00x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 bic.  */
                              return 1003;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 eon.  */
                              return 1010;
                            }
                        }
                      else
                        {
                          if (((word >> 30) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x01x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 orn.  */
                              return 1007;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x11x1010xx1xxxxxxxxxxxxxxxxxxxxx
                                 bics.  */
                              return 1013;
                            }
                        }
                    }
                }
            }
          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 618;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 x10x00110xxxxxxxxxxxxxxxxxxxxxxx
                                 ubfm.  */
                              return 629;
                            }
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx1x00110xxxxxxxxxxxxxxxxxxxxxxx
                             bfm.  */
                          return 625;
                        }
                    }
                  else
                    {
                      /* 33222222222211111111110000000000
                         10987654321098765432109876543210
                         xxxx00111xxxxxxxxxxxxxxxxxxxxxxx
                         extr.  */
                      return 758;
                    }
                }
              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 21;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1001011xx0xxxxxxxxxxxxxxxxxxxxx
                                     sub.  */
                                  return 24;
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x0101011xx0xxxxxxxxxxxxxxxxxxxxx
                                     adds.  */
                                  return 22;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1101011xx0xxxxxxxxxxxxxxxxxxxxx
                                     subs.  */
                                  return 26;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxx11011x00xxxxx0xxxxxxxxxxxxxxx
                                     madd.  */
                                  return 735;
                                }
                              else
                                {
                                  if (((word >> 23) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011010xxxxx0xxxxxxxxxxxxxxx
                                         smulh.  */
                                      return 743;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011110xxxxx0xxxxxxxxxxxxxxx
                                         umulh.  */
                                      return 748;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxx11011xx0xxxxx1xxxxxxxxxxxxxxx
                                 msub.  */
                              return 737;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 22) & 0x1) == 0)
                        {
                          if (((word >> 23) & 0x1) == 0)
                            {
                              if (((word >> 28) & 0x1) == 0)
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0001011001xxxxxxxxxxxxxxxxxxxxx
                                             add.  */
                                          return 6;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1001011001xxxxxxxxxxxxxxxxxxxxx
                                             sub.  */
                                          return 9;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0101011001xxxxxxxxxxxxxxxxxxxxx
                                             adds.  */
                                          return 7;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1101011001xxxxxxxxxxxxxxxxxxxxx
                                             subs.  */
                                          return 10;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011001xxxxx0xxxxxxxxxxxxxxx
                                         smaddl.  */
                                      return 739;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xxx11011001xxxxx1xxxxxxxxxxxxxxx
                                         smsubl.  */
                                      return 741;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 15) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxxx1011101xxxxx0xxxxxxxxxxxxxxx
                                     umaddl.  */
                                  return 744;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xxxx1011101xxxxx1xxxxxxxxxxxxxxx
                                     umsubl.  */
                                  return 746;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxxx1011x11xxxxx0xxxxxxxxxxxxxxx
                                 maddpt.  */
                              return 3376;
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xxxx1011x11xxxxx1xxxxxxxxxxxxxxx
                                 msubpt.  */
                              return 3377;
                            }
                        }
                    }
                }
            }
        }
    }
  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 1340;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010000000xxxxxxxxxxxxx
                                                                     mul.  */
                                                                  return 1810;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001000000xxxxxxxxxxxxx
                                                                     smax.  */
                                                                  return 1890;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011000000xxxxxxxxxxxxx
                                                                     orr.  */
                                                                  return 1821;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000100000xxxxxxxxxxxxx
                                                                     addpt.  */
                                                                  return 3378;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010100000xxxxxxxxxxxxx
                                                                     sdiv.  */
                                                                  return 1881;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1100000xxxxxxxxxxxxx
                                                                 sabd.  */
                                                              return 1872;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0010000xxxxxxxxxxxxx
                                                                 smulh.  */
                                                              return 1895;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001010000xxxxxxxxxxxxx
                                                                     smin.  */
                                                                  return 1893;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011010000xxxxxxxxxxxxx
                                                                     and.  */
                                                                  return 1348;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx110000xxxxxxxxxxxxx
                                                             sdivr.  */
                                                          return 1882;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0001000xxxxxxxxxxxxx
                                                                 sub.  */
                                                              return 2012;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001001000xxxxxxxxxxxxx
                                                                     umax.  */
                                                                  return 2040;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011001000xxxxxxxxxxxxx
                                                                     eor.  */
                                                                  return 1435;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000101000xxxxxxxxxxxxx
                                                                     subpt.  */
                                                                  return 3380;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010101000xxxxxxxxxxxxx
                                                                     udiv.  */
                                                                  return 2034;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1101000xxxxxxxxxxxxx
                                                                 uabd.  */
                                                              return 2025;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000011000xxxxxxxxxxxxx
                                                                     subr.  */
                                                                  return 2014;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010011000xxxxxxxxxxxxx
                                                                     umulh.  */
                                                                  return 2045;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001011000xxxxxxxxxxxxx
                                                                     umin.  */
                                                                  return 2043;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011011000xxxxxxxxxxxxx
                                                                     bic.  */
                                                                  return 1360;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111000xxxxxxxxxxxxx
                                                             udivr.  */
                                                          return 2035;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1622;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1633;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx000000xxxxxxxxxx
                                                             sdot.  */
                                                          return 1883;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx000010xxxxxxxxxx
                                                             sqdmlalbt.  */
                                                          return 2234;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx000001xxxxxxxxxx
                                                             udot.  */
                                                          return 2036;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx000011xxxxxxxxxx
                                                             sqdmlslbt.  */
                                                          return 2241;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x0xx0xxxxx0001xxxxxxxxxxxx
                                                     cdot.  */
                                                  return 2123;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x00x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sb.  */
                                                  return 1626;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x0xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1637;
                                                }
                                            }
                                        }
                                    }
                                  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 1338;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000100xxxxxxxxxx
                                                             sqadd.  */
                                                          return 1897;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000010xxxxxxxxxx
                                                             addpt.  */
                                                          return 3379;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000110xxxxxxxxxx
                                                             sqsub.  */
                                                          return 1927;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000001xxxxxxxxxx
                                                             sub.  */
                                                          return 2010;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000101xxxxxxxxxx
                                                             uqadd.  */
                                                          return 2046;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000011xxxxxxxxxx
                                                             subpt.  */
                                                          return 3381;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx000111xxxxxxxxxx
                                                             uqsub.  */
                                                          return 2076;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx000xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1830;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1634;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx000x00xxxxxxxxxx
                                                             sqrdmlah.  */
                                                          return 2259;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx000x10xxxxxxxxxx
                                                             mla.  */
                                                          return 2166;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx000x01xxxxxxxxxx
                                                             sqrdmlsh.  */
                                                          return 2263;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx000x11xxxxxxxxxx
                                                             mls.  */
                                                          return 2169;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x00x1xxxxx000xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1831;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000000xxxxxxxxxx
                                                                     sdot.  */
                                                                  return 1884;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000000xxxxxxxxxx
                                                                     sdot.  */
                                                                  return 1885;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000100xxxxxxxxxx
                                                                     sqrdmlah.  */
                                                                  return 2260;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000100xxxxxxxxxx
                                                                     sqrdmlah.  */
                                                                  return 2261;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000010xxxxxxxxxx
                                                                     mla.  */
                                                                  return 2167;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000010xxxxxxxxxx
                                                                     mla.  */
                                                                  return 2168;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x01x1xxxxx000110xxxxxxxxxx
                                                                 usdot.  */
                                                              return 3040;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000001xxxxxxxxxx
                                                                     udot.  */
                                                                  return 2037;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000001xxxxxxxxxx
                                                                     udot.  */
                                                                  return 2038;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000101xxxxxxxxxx
                                                                     sqrdmlsh.  */
                                                                  return 2264;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000101xxxxxxxxxx
                                                                     sqrdmlsh.  */
                                                                  return 2265;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx000011xxxxxxxxxx
                                                                     mls.  */
                                                                  return 2170;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx000011xxxxxxxxxx
                                                                     mls.  */
                                                                  return 2171;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x01x1xxxxx000111xxxxxxxxxx
                                                                 sudot.  */
                                                              return 3041;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x1xxxxx000xxxxxxxxxxxxx
                                                     ld1sh.  */
                                                  return 1638;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  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)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx000000100xxxxxxxxxxxxx
                                                                 asr.  */
                                                              return 1356;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010000100xxxxxxxxxxxxx
                                                                     asr.  */
                                                                  return 1354;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010000100xxxxxxxxxxxxx
                                                                     shadd.  */
                                                                  return 2200;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx001000100xxxxxxxxxxxxx
                                                                 sqshl.  */
                                                              return 2278;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011000100xxxxxxxxxxxxx
                                                                     asr.  */
                                                                  return 1355;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx011000100xxxxxxxxxxxxx
                                                                     sqadd.  */
                                                                  return 2229;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx000100100xxxxxxxxxxxxx
                                                                 asrd.  */
                                                              return 1357;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010100100xxxxxxxxxxxxx
                                                                     asrr.  */
                                                                  return 1358;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010100100xxxxxxxxxxxxx
                                                                     srhadd.  */
                                                                  return 2291;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001100100xxxxxxxxxxxxx
                                                                     srshr.  */
                                                                  return 2295;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx001100100xxxxxxxxxxxxx
                                                                     sqshlr.  */
                                                                  return 2279;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx011100100xxxxxxxxxxxxx
                                                                 suqadd.  */
                                                              return 2315;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx000010100xxxxxxxxxxxxx
                                                                 srshl.  */
                                                              return 2293;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx010010100xxxxxxxxxxxxx
                                                                 shsub.  */
                                                              return 2203;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx001010100xxxxxxxxxxxxx
                                                                 sqrshl.  */
                                                              return 2271;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx011010100xxxxxxxxxxxxx
                                                                 sqsub.  */
                                                              return 2285;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000110100xxxxxxxxxxxxx
                                                                     sqshl.  */
                                                                  return 2277;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx000110100xxxxxxxxxxxxx
                                                                     srshlr.  */
                                                                  return 2294;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx010110100xxxxxxxxxxxxx
                                                                 shsubr.  */
                                                              return 2204;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx001110100xxxxxxxxxxxxx
                                                                 sqrshlr.  */
                                                              return 2272;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx011110100xxxxxxxxxxxxx
                                                                 sqsubr.  */
                                                              return 2286;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx000001100xxxxxxxxxxxxx
                                                                 lsr.  */
                                                              return 1801;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010001100xxxxxxxxxxxxx
                                                                     lsr.  */
                                                                  return 1799;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010001100xxxxxxxxxxxxx
                                                                     uhadd.  */
                                                                  return 2328;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx001001100xxxxxxxxxxxxx
                                                                 uqshl.  */
                                                              return 2358;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011001100xxxxxxxxxxxxx
                                                                     lsr.  */
                                                                  return 1800;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx011001100xxxxxxxxxxxxx
                                                                     uqadd.  */
                                                                  return 2352;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0101100xxxxxxxxxxxxx
                                                                 lsrr.  */
                                                              return 1802;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx0x0101100xxxxxxxxxxxxx
                                                                 urhadd.  */
                                                              return 2367;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001101100xxxxxxxxxxxxx
                                                                     urshr.  */
                                                                  return 2370;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx001101100xxxxxxxxxxxxx
                                                                     uqshlr.  */
                                                                  return 2359;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx011101100xxxxxxxxxxxxx
                                                                 usqadd.  */
                                                              return 2375;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000011100xxxxxxxxxxxxx
                                                                     lsl.  */
                                                                  return 1795;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx000011100xxxxxxxxxxxxx
                                                                     urshl.  */
                                                                  return 2368;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010011100xxxxxxxxxxxxx
                                                                     lsl.  */
                                                                  return 1793;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010011100xxxxxxxxxxxxx
                                                                     uhsub.  */
                                                                  return 2329;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx001011100xxxxxxxxxxxxx
                                                                 uqrshl.  */
                                                              return 2353;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011011100xxxxxxxxxxxxx
                                                                     lsl.  */
                                                                  return 1794;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx011011100xxxxxxxxxxxxx
                                                                     uqsub.  */
                                                                  return 2362;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000111100xxxxxxxxxxxxx
                                                                     uqshl.  */
                                                                  return 2357;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx000111100xxxxxxxxxxxxx
                                                                     urshlr.  */
                                                                  return 2369;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx010111100xxxxxxxxxxxxx
                                                                     lslr.  */
                                                                  return 1796;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010111100xxxxxxxxxxxxx
                                                                     uhsubr.  */
                                                                  return 2330;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001111100xxxxxxxxxxxxx
                                                                     sqshlu.  */
                                                                  return 2280;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx001111100xxxxxxxxxxxxx
                                                                     uqrshlr.  */
                                                                  return 2354;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0001x0xx011111100xxxxxxxxxxxxx
                                                                 uqsubr.  */
                                                              return 2363;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 10) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1000x0xxxxxxxxxx
                                                         asr.  */
                                                      return 1352;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x01xxxxx1000x0xxxxxxxxxx
                                                             smlalb.  */
                                                          return 2208;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x11xxxxx1000x0xxxxxxxxxx
                                                             smlalb.  */
                                                          return 2209;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1001x0xxxxxxxxxx
                                                         asr.  */
                                                      return 1353;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x01xxxxx1001x0xxxxxxxxxx
                                                             umlalb.  */
                                                          return 2333;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x11xxxxx1001x0xxxxxxxxxx
                                                             umlalb.  */
                                                          return 2334;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100001xxxxxxxxxx
                                                             lsr.  */
                                                          return 1797;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100011xxxxxxxxxx
                                                             lsl.  */
                                                          return 1791;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x01xxxxx1000x1xxxxxxxxxx
                                                             smlalt.  */
                                                          return 2211;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x11xxxxx1000x1xxxxxxxxxx
                                                             smlalt.  */
                                                          return 2212;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100101xxxxxxxxxx
                                                             lsr.  */
                                                          return 1798;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx100111xxxxxxxxxx
                                                             lsl.  */
                                                          return 1792;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x01xxxxx1001x1xxxxxxxxxx
                                                             umlalt.  */
                                                          return 2336;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0x11xxxxx1001x1xxxxxxxxxx
                                                             umlalt.  */
                                                          return 2337;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x0001x0000xxxxx100xxxxxxxxxxxxx
                                                     ldnt1sb.  */
                                                  return 2160;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x0001x0100xxxxx100xxxxxxxxxxxxx
                                                     ldnt1sh.  */
                                                  return 2161;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx100xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1628;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0001xxxxx100xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1632;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx100xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1641;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0101xxxxx100xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1644;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx100xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1598;
                                                }
                                              else
                                                {
                                                  if (((word >> 21) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0010xxxxx100xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1627;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0011xxxxx100xxxxxxxxxxxxx
                                                         prfb.  */
                                                      return 1832;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx100xxxxxxxxxxxxx
                                                     ld1rsw.  */
                                                  return 1619;
                                                }
                                              else
                                                {
                                                  if (((word >> 21) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0110xxxxx100xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1639;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0111xxxxx100xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1640;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          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 1804;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx010xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1564;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1584;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010000xxxxxxxxxx
                                                             smlalb.  */
                                                          return 2210;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010100xxxxxxxxxx
                                                             smlslb.  */
                                                          return 2216;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010010xxxxxxxxxx
                                                             umlalb.  */
                                                          return 2335;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010110xxxxxxxxxx
                                                             umlslb.  */
                                                          return 2341;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010001xxxxxxxxxx
                                                             smlalt.  */
                                                          return 2213;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010101xxxxxxxxxx
                                                             smlslt.  */
                                                          return 2219;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010011xxxxxxxxxx
                                                             umlalt.  */
                                                          return 2338;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx010111xxxxxxxxxx
                                                             umlslt.  */
                                                          return 2344;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x00x0xxxxx010xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1569;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x0xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1589;
                                                }
                                            }
                                        }
                                    }
                                  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 1555;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx010001xxxxxxxxxx
                                                             index.  */
                                                          return 1556;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0001xxxxx01010xxxxxxxxxxx
                                                                 addvl.  */
                                                              return 1342;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0101xxxxx01010xxxxxxxxxxx
                                                                 rdvl.  */
                                                              return 1866;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x11xxxxx01010xxxxxxxxxxx
                                                             addpl.  */
                                                          return 1341;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx010010xxxxxxxxxx
                                                             index.  */
                                                          return 1557;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx010011xxxxxxxxxx
                                                             index.  */
                                                          return 1554;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0001xxxxx01011xxxxxxxxxxx
                                                                 addsvl.  */
                                                              return 2407;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0101xxxxx01011xxxxxxxxxxx
                                                                 rdsvl.  */
                                                              return 2418;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x11xxxxx01011xxxxxxxxxxx
                                                             addspl.  */
                                                          return 2406;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx010xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1850;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1585;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx010xxxxxxxxxxxxx
                                                 prfw.  */
                                              return 1852;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0101xxxxx010xxxxxxxxxxxxx
                                                         cdot.  */
                                                      return 2125;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0111xxxxx010xxxxxxxxxxxxx
                                                         cdot.  */
                                                      return 2124;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x1xxxxx010xxxxxxxxxxxxx
                                                     ld1h.  */
                                                  return 1590;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx110xxxxxxxxxxxxx
                                                 mad.  */
                                              return 1803;
                                            }
                                          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 1924;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx110x00xxxxxxxxxx
                                                                     sqinch.  */
                                                                  return 1918;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx110x00xxxxxxxxxx
                                                                     sqincd.  */
                                                                  return 1915;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x011xxxx110x00xxxxxxxxxx
                                                                 incw.  */
                                                              return 1552;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx110x00xxxxxxxxxx
                                                                     inch.  */
                                                                  return 1548;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx110x00xxxxxxxxxx
                                                                     incd.  */
                                                                  return 1546;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x01xxxxx110x10xxxxxxxxxx
                                                             sqdecw.  */
                                                          return 1910;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx110x10xxxxxxxxxx
                                                                 sqdech.  */
                                                              return 1904;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx110x10xxxxxxxxxx
                                                                 sqdecd.  */
                                                              return 1901;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x010xxxx110x01xxxxxxxxxx
                                                                 uqincw.  */
                                                              return 2073;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx110x01xxxxxxxxxx
                                                                     uqinch.  */
                                                                  return 2067;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx110x01xxxxxxxxxx
                                                                     uqincd.  */
                                                                  return 2064;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0x011xxxx110x01xxxxxxxxxx
                                                                 decw.  */
                                                              return 1427;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx110x01xxxxxxxxxx
                                                                     dech.  */
                                                                  return 1423;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx110x01xxxxxxxxxx
                                                                     decd.  */
                                                                  return 1421;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x01xxxxx110x11xxxxxxxxxx
                                                             uqdecw.  */
                                                          return 2059;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx110x11xxxxxxxxxx
                                                                 uqdech.  */
                                                              return 2053;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx110x11xxxxxxxxxx
                                                                 uqdecd.  */
                                                              return 2050;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0000xxxxx110xxxxxxxxxxxxx
                                                         prfb.  */
                                                      return 1829;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0100xxxxx110xxxxxxxxxxxxx
                                                         prfh.  */
                                                      return 1844;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx110xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1571;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx110xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1593;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx110xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1600;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx110xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1604;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx110000xxxxxxxxxx
                                                             sclamp.  */
                                                          return 2463;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx110100xxxxxxxxxx
                                                             mlapt.  */
                                                          return 3383;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x00x0xxxxx110010xxxxxxxxxx
                                                                 sdot.  */
                                                              return 2476;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x01x0xxxxx110010xxxxxxxxxx
                                                                 sdot.  */
                                                              return 2475;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx110110xxxxxxxxxx
                                                             madpt.  */
                                                          return 3382;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0xx0xxxxx110x01xxxxxxxxxx
                                                         uclamp.  */
                                                      return 2464;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x0xxxxx110x11xxxxxxxxxx
                                                             udot.  */
                                                          return 2482;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x01x0xxxxx110x11xxxxxxxxxx
                                                             udot.  */
                                                          return 2481;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1b.  */
                                                      return 2156;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1h.  */
                                                      return 2159;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0010xxxxx110xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1570;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0110xxxxx110xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1591;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx110xxxxxxxxxxxxx
                                                     ld1b.  */
                                                  return 1576;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1100x0xxxxxxxxxx
                                                                 smullb.  */
                                                              return 2221;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1101x0xxxxxxxxxx
                                                                 umullb.  */
                                                              return 2346;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1100x1xxxxxxxxxx
                                                                 smullt.  */
                                                              return 2224;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1101x1xxxxxxxxxx
                                                                 umullt.  */
                                                              return 2349;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0101xxxxx110xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1597;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx110xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1853;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1100x0xxxxxxxxxx
                                                                 smullb.  */
                                                              return 2222;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1101x0xxxxxxxxxx
                                                                 umullb.  */
                                                              return 2347;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1100x1xxxxxxxxxx
                                                                 smullt.  */
                                                              return 2225;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1101x1xxxxxxxxxx
                                                                 umullt.  */
                                                              return 2350;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0111xxxxx110xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1592;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      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 >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000000001xxxxxxxxxxxxx
                                                                     saddv.  */
                                                                  return 1873;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx000001001xxxxxxxxxxxxx
                                                                     uaddv.  */
                                                                  return 2026;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx01000x001xxxxxxxxxxxxx
                                                                 movprfx.  */
                                                              return 1807;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001000001xxxxxxxxxxxxx
                                                                     smaxv.  */
                                                                  return 1891;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011000001xxxxxxxxxxxxx
                                                                     orv.  */
                                                                  return 1824;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001001001xxxxxxxxxxxxx
                                                                     umaxv.  */
                                                                  return 2041;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011001001xxxxxxxxxxxxx
                                                                     eorv.  */
                                                                  return 1438;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx100001xxxxxxxxxxxxx
                                                             smaxqv.  */
                                                          return 3307;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0101001xxxxxxxxxxxxx
                                                                 addqv.  */
                                                              return 3305;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx001101001xxxxxxxxxxxxx
                                                                     umaxqv.  */
                                                                  return 3309;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0xx011101001xxxxxxxxxxxxx
                                                                     eorqv.  */
                                                                  return 3311;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx00x010001xxxxxxxxxxxxx
                                                                 sminv.  */
                                                              return 1894;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx01x010001xxxxxxxxxxxxx
                                                                 andv.  */
                                                              return 1351;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx00x110001xxxxxxxxxxxxx
                                                                 sminqv.  */
                                                              return 3308;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx01x110001xxxxxxxxxxxxx
                                                                 andqv.  */
                                                              return 3306;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx011001xxxxxxxxxxxxx
                                                             uminv.  */
                                                          return 2044;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111001xxxxxxxxxxxxx
                                                             uminqv.  */
                                                          return 3310;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1722;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1733;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x0xx0xxxxx0010xxxxxxxxxxxx
                                                     cmla.  */
                                                  return 2126;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x0xx0xxxxx0011xxxxxxxxxxxx
                                                     sqrdcmlah.  */
                                                  return 2258;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x00x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1729;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x0xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1739;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0001xxxxx001x00xxxxxxxxxx
                                                                 and.  */
                                                              return 1346;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0101xxxxx001x00xxxxxxxxxx
                                                                 eor.  */
                                                              return 1433;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx001x00xxxxxxxxxx
                                                                 orr.  */
                                                              return 1819;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx001x00xxxxxxxxxx
                                                                 bic.  */
                                                              return 1359;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x01xxxxx001x10xxxxxxxxxx
                                                             eor3.  */
                                                          return 2129;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0x11xxxxx001x10xxxxxxxxxx
                                                             bcax.  */
                                                          return 2118;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx001x01xxxxxxxxxx
                                                         xar.  */
                                                      return 2391;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0001xxxxx001x11xxxxxxxxxx
                                                                 bsl.  */
                                                              return 2119;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0101xxxxx001x11xxxxxxxxxx
                                                                 bsl2n.  */
                                                              return 2121;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0011xxxxx001x11xxxxxxxxxx
                                                                 bsl1n.  */
                                                              return 2120;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0111xxxxx001x11xxxxxxxxxx
                                                                 nbsl.  */
                                                              return 2176;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx001xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1843;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1734;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx001xxxxxxxxxxxxx
                                                 prfh.  */
                                              return 1845;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx0010x0xxxxxxxxxx
                                                                 sqdmlalb.  */
                                                              return 2231;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx0010x0xxxxxxxxxx
                                                                 sqdmlalb.  */
                                                              return 2232;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx0011x0xxxxxxxxxx
                                                                 sqdmlslb.  */
                                                              return 2238;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx0011x0xxxxxxxxxx
                                                                 sqdmlslb.  */
                                                              return 2239;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx0010x1xxxxxxxxxx
                                                                 sqdmlalt.  */
                                                              return 2235;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx0010x1xxxxxxxxxx
                                                                 sqdmlalt.  */
                                                              return 2236;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx0011x1xxxxxxxxxx
                                                                 sqdmlslt.  */
                                                              return 2242;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx0011x1xxxxxxxxxx
                                                                 sqdmlslt.  */
                                                              return 2243;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x1xxxxx001xxxxxxxxxxxxx
                                                     ldff1sh.  */
                                                  return 1740;
                                                }
                                            }
                                        }
                                    }
                                }
                              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 2017;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1000101xxxxxxxxxxxxx
                                                                 cls.  */
                                                              return 1379;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0100101xxxxxxxxxxxxx
                                                                 sxtw.  */
                                                              return 2019;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1100101xxxxxxxxxxxxx
                                                                 fabs.  */
                                                              return 1441;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0010101xxxxxxxxxxxxx
                                                                 sxth.  */
                                                              return 2018;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1010101xxxxxxxxxxxxx
                                                                 cnt.  */
                                                              return 1408;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0110101xxxxxxxxxxxxx
                                                                 abs.  */
                                                              return 1337;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1110101xxxxxxxxxxxxx
                                                                 not.  */
                                                              return 1816;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0001101xxxxxxxxxxxxx
                                                                 uxtb.  */
                                                              return 2080;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1001101xxxxxxxxxxxxx
                                                                 clz.  */
                                                              return 1380;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0101101xxxxxxxxxxxxx
                                                                 uxtw.  */
                                                              return 2082;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1101101xxxxxxxxxxxxx
                                                                 fneg.  */
                                                              return 1518;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x0011101xxxxxxxxxxxxx
                                                                 uxth.  */
                                                              return 2081;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x0xx0x1011101xxxxxxxxxxxxx
                                                                 cnot.  */
                                                              return 1407;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx0xx111101xxxxxxxxxxxxx
                                                             neg.  */
                                                          return 1813;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0001xxxxx1010xxxxxxxxxxxx
                                                             adr.  */
                                                          return 1343;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0011xxxxx1010xxxxxxxxxxxx
                                                             adr.  */
                                                          return 1344;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x01x1xxxxx1010xxxxxxxxxxxx
                                                         adr.  */
                                                      return 1345;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx101100xxxxxxxxxx
                                                             ftssel.  */
                                                          return 1544;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx101110xxxxxxxxxx
                                                             fexpa.  */
                                                          return 1488;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx1011x1xxxxxxxxxx
                                                         movprfx.  */
                                                      return 1806;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0000xxxxx101xxxxxxxxxxxxx
                                                         ldnt1b.  */
                                                      return 2155;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0100xxxxx101xxxxxxxxxxxxx
                                                         ldnt1h.  */
                                                      return 2158;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx101xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1731;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx101xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1743;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx101xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1599;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx101xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1603;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx0x0000101xxxxxxxxxxxxx
                                                                 urecpe.  */
                                                              return 2366;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx0x1000101xxxxxxxxxxxxx
                                                                 sqabs.  */
                                                              return 2228;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx00x100101xxxxxxxxxxxxx
                                                                 sadalp.  */
                                                              return 2192;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx01x100101xxxxxxxxxxxxx
                                                                 smaxp.  */
                                                              return 2206;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0xx0xxx10101xxxxxxxxxxxxx
                                                         sminp.  */
                                                      return 2207;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx000001101xxxxxxxxxxxxx
                                                                     ursqrte.  */
                                                                  return 2371;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0xx010001101xxxxxxxxxxxxx
                                                                     addp.  */
                                                                  return 2117;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx0x1001101xxxxxxxxxxxxx
                                                                 sqneg.  */
                                                              return 2255;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx00x101101xxxxxxxxxxxxx
                                                                 uadalp.  */
                                                              return 2323;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0xx01x101101xxxxxxxxxxxxx
                                                                 umaxp.  */
                                                              return 2331;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0xx0xxx11101xxxxxxxxxxxxx
                                                         uminp.  */
                                                      return 2332;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x0x00xxxxx101xxxxxxxxxxxxx
                                                     ld1q.  */
                                                  return 3319;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0010xxxxx101xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1730;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0110xxxxx101xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1741;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0001xxxxx101xxxxxxxxxxxxx
                                                     ldff1sb.  */
                                                  return 1732;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1010x0xxxxxxxxxx
                                                                 smlslb.  */
                                                              return 2214;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1011x0xxxxxxxxxx
                                                                 umlslb.  */
                                                              return 2339;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1010x1xxxxxxxxxx
                                                                 smlslt.  */
                                                              return 2217;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1011x1xxxxxxxxxx
                                                                 umlslt.  */
                                                              return 2342;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0101xxxxx101xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1744;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0011xxxxx101xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1846;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1010x0xxxxxxxxxx
                                                                 smlslb.  */
                                                              return 2215;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1011x0xxxxxxxxxx
                                                                 umlslb.  */
                                                              return 2340;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1010x1xxxxxxxxxx
                                                                 smlslt.  */
                                                              return 2218;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1011x1xxxxxxxxxx
                                                                 umlslt.  */
                                                              return 2343;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0111xxxxx101xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1742;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          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 1805;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1688;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1708;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011000xxxxxxxxxx
                                                             sqdmlalb.  */
                                                          return 2233;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011100xxxxxxxxxx
                                                             sqrdmlah.  */
                                                          return 2262;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011010xxxxxxxxxx
                                                             sqdmlslb.  */
                                                          return 2240;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011110xxxxxxxxxx
                                                             usdot.  */
                                                          return 3039;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011001xxxxxxxxxx
                                                             sqdmlalt.  */
                                                          return 2237;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0xx0xxxxx011101xxxxxxxxxx
                                                             sqrdmlsh.  */
                                                          return 2266;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x0xx0xxxxx011x11xxxxxxxxxx
                                                         sqdmlslt.  */
                                                      return 2244;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x00x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1697;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1716;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx011000xxxxxxxxxx
                                                             mul.  */
                                                          return 2175;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx011100xxxxxxxxxx
                                                             sqdmulh.  */
                                                          return 2248;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx011x10xxxxxxxxxx
                                                         smulh.  */
                                                      return 2220;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx011001xxxxxxxxxx
                                                             pmul.  */
                                                          return 2178;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x0xx1xxxxx011101xxxxxxxxxx
                                                             sqrdmulh.  */
                                                          return 2270;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x0xx1xxxxx011x11xxxxxxxxxx
                                                         umulh.  */
                                                      return 2345;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x00x1xxxxx011xxxxxxxxxxxxx
                                                     prfd.  */
                                                  return 1836;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x01x1xxxxx011xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1709;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x00x1xxxxx011xxxxxxxxxxxxx
                                                 prfd.  */
                                              return 1838;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0101xxxxx0110xxxxxxxxxxxx
                                                             cmla.  */
                                                          return 2127;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0111xxxxx0110xxxxxxxxxxxx
                                                             cmla.  */
                                                          return 2128;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0101xxxxx0111xxxxxxxxxxxx
                                                             sqrdcmlah.  */
                                                          return 2256;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x0111xxxxx0111xxxxxxxxxxxx
                                                             sqrdcmlah.  */
                                                          return 2257;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x01x1xxxxx011xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1717;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 30) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x0xx0xxxxx111xxxxxxxxxxxxx
                                                 msb.  */
                                              return 1808;
                                            }
                                          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 1409;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111000xxxxxxxxxx
                                                                         cntw.  */
                                                                      return 1413;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111000xxxxxxxxxx
                                                                         cnth.  */
                                                                      return 1411;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111000xxxxxxxxxx
                                                                         cntd.  */
                                                                      return 1410;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111000xxxxxxxxxx
                                                                         incb.  */
                                                                      return 1545;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111000xxxxxxxxxx
                                                                         incw.  */
                                                                      return 1553;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111000xxxxxxxxxx
                                                                         inch.  */
                                                                      return 1549;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111000xxxxxxxxxx
                                                                         incd.  */
                                                                      return 1547;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00010xxxx111100xxxxxxxxxx
                                                                         sqincb.  */
                                                                      return 1914;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111100xxxxxxxxxx
                                                                         sqincw.  */
                                                                      return 1926;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111100xxxxxxxxxx
                                                                         sqinch.  */
                                                                      return 1920;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111100xxxxxxxxxx
                                                                         sqincd.  */
                                                                      return 1917;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111100xxxxxxxxxx
                                                                         sqincb.  */
                                                                      return 1913;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111100xxxxxxxxxx
                                                                         sqincw.  */
                                                                      return 1925;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111100xxxxxxxxxx
                                                                         sqinch.  */
                                                                      return 1919;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111100xxxxxxxxxx
                                                                         sqincd.  */
                                                                      return 1916;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00010xxxx111x10xxxxxxxxxx
                                                                     sqdecb.  */
                                                                  return 1900;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01010xxxx111x10xxxxxxxxxx
                                                                     sqdecw.  */
                                                                  return 1912;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx111x10xxxxxxxxxx
                                                                     sqdech.  */
                                                                  return 1906;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx111x10xxxxxxxxxx
                                                                     sqdecd.  */
                                                                  return 1903;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00011xxxx111x10xxxxxxxxxx
                                                                     sqdecb.  */
                                                                  return 1899;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01011xxxx111x10xxxxxxxxxx
                                                                     sqdecw.  */
                                                                  return 1911;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx111x10xxxxxxxxxx
                                                                     sqdech.  */
                                                                  return 1905;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx111x10xxxxxxxxxx
                                                                     sqdecd.  */
                                                                  return 1902;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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 1420;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0101xxxxx111001xxxxxxxxxx
                                                                     decw.  */
                                                                  return 1428;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0011xxxxx111001xxxxxxxxxx
                                                                     dech.  */
                                                                  return 1424;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x0111xxxxx111001xxxxxxxxxx
                                                                     decd.  */
                                                                  return 1422;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00010xxxx111101xxxxxxxxxx
                                                                         uqincb.  */
                                                                      return 2062;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01010xxxx111101xxxxxxxxxx
                                                                         uqincw.  */
                                                                      return 2074;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00110xxxx111101xxxxxxxxxx
                                                                         uqinch.  */
                                                                      return 2068;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01110xxxx111101xxxxxxxxxx
                                                                         uqincd.  */
                                                                      return 2065;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00011xxxx111101xxxxxxxxxx
                                                                         uqincb.  */
                                                                      return 2063;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01011xxxx111101xxxxxxxxxx
                                                                         uqincw.  */
                                                                      return 2075;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x00111xxxx111101xxxxxxxxxx
                                                                         uqinch.  */
                                                                      return 2069;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x01111xxxx111101xxxxxxxxxx
                                                                         uqincd.  */
                                                                      return 2066;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00010xxxx111x11xxxxxxxxxx
                                                                     uqdecb.  */
                                                                  return 2048;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01010xxxx111x11xxxxxxxxxx
                                                                     uqdecw.  */
                                                                  return 2060;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00110xxxx111x11xxxxxxxxxx
                                                                     uqdech.  */
                                                                  return 2054;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01110xxxx111x11xxxxxxxxxx
                                                                     uqdecd.  */
                                                                  return 2051;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00011xxxx111x11xxxxxxxxxx
                                                                     uqdecb.  */
                                                                  return 2049;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01011xxxx111x11xxxxxxxxxx
                                                                     uqdecw.  */
                                                                  return 2061;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x00111xxxx111x11xxxxxxxxxx
                                                                     uqdech.  */
                                                                  return 2055;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x01111xxxx111x11xxxxxxxxxx
                                                                     uqdecd.  */
                                                                  return 2052;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0000xxxxx111xxxxxxxxxxxxx
                                                         prfb.  */
                                                      return 1833;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0100xxxxx111xxxxxxxxxxxxx
                                                         prfh.  */
                                                      return 1847;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0001xxxxx111xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1699;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x0101xxxxx111xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1720;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x001xxxxxx111xxxxxxxxxxxxx
                                                     ld1rb.  */
                                                  return 1601;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x011xxxxxx111xxxxxxxxxxxxx
                                                     ld1rh.  */
                                                  return 1605;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0000xxxxx111xxxxxxxxxxxxx
                                                     prfb.  */
                                                  return 1835;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0100xxxxx111xxxxxxxxxxxxx
                                                     prfh.  */
                                                  return 1849;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0010xxxxx111xxxxxxxxxxxxx
                                                     ldff1b.  */
                                                  return 1698;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x0110xxxxx111xxxxxxxxxxxxx
                                                     ldff1h.  */
                                                  return 1718;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx111x00xxxxxxxxxx
                                                             sqdmulh.  */
                                                          return 2245;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x00x1xxxxx111x10xxxxxxxxxx
                                                             mul.  */
                                                          return 2172;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x00x1xxxxx111xx1xxxxxxxxxx
                                                         sqrdmulh.  */
                                                      return 2267;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0001xxxxx111xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1700;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0011xxxxx111xxxxxxxxxxxxx
                                                         prfd.  */
                                                      return 1839;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1110x0xxxxxxxxxx
                                                                 sqdmullb.  */
                                                              return 2249;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 11) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx111100xxxxxxxxxx
                                                                     sqdmulh.  */
                                                                  return 2246;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0101xxxxx111110xxxxxxxxxx
                                                                     mul.  */
                                                                  return 2173;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1110x1xxxxxxxxxx
                                                                 sqdmullt.  */
                                                              return 2252;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0101xxxxx1111x1xxxxxxxxxx
                                                                 sqrdmulh.  */
                                                              return 2268;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0101xxxxx111xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1721;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1110x0xxxxxxxxxx
                                                                 sqdmullb.  */
                                                              return 2250;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 11) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx111100xxxxxxxxxx
                                                                     sqdmulh.  */
                                                                  return 2247;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x0111xxxxx111110xxxxxxxxxx
                                                                     mul.  */
                                                                  return 2174;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1110x1xxxxxxxxxx
                                                                 sqdmullt.  */
                                                              return 2253;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x0111xxxxx1111x1xxxxxxxxxx
                                                                 sqrdmulh.  */
                                                              return 2269;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x0111xxxxx111xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1719;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                  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 1393;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx000xxxxxxxx1xxxx
                                                     cmphi.  */
                                                  return 1390;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x00x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqb.  */
                                                  return 1607;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x01x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqh.  */
                                                  return 1611;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx010xxxxxxxx0xxxx
                                                     cmpge.  */
                                                  return 1384;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx010xxxxxxxx1xxxx
                                                     cmpgt.  */
                                                  return 1387;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1565;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx010xxxxxxxxxxxxx
                                                         ld1sw.  */
                                                      return 1645;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1567;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx010xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1587;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx001xxxxxxxx0xxxx
                                                     cmpeq.  */
                                                  return 1381;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx001xxxxxxxx1xxxx
                                                     cmpne.  */
                                                  return 1404;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x00x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqb.  */
                                                  return 1606;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x01x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqh.  */
                                                  return 1610;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx011xxxxxxxx0xxxx
                                                     cmplt.  */
                                                  return 1402;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx011xxxxxxxx1xxxx
                                                     cmple.  */
                                                  return 1396;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1689;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx011xxxxxxxxxxxxx
                                                         ldff1sw.  */
                                                      return 1745;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1693;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1712;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         011001x0xx0xxxxx0xxxxxxxxxxxxxxx
                                         fcmla.  */
                                      return 1450;
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0x00xxxxx000xxxxxxxxxxxxx
                                                     st3q.  */
                                                  return 3328;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0010xxxxx000xxxxxxxxxxxxx
                                                         st2q.  */
                                                      return 3327;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0110xxxxx000xxxxxxxxxxxxx
                                                         st4q.  */
                                                      return 3329;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0x00xxxxx010xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1929;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0010xxxxx010xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1933;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0110xxxxx010xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1954;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0000xxxxx001xxxxxxxxxxxxx
                                                         stnt1b.  */
                                                      return 2307;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0100xxxxx001xxxxxxxxxxxxx
                                                         stnt1h.  */
                                                      return 2310;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0010xxxxx001xxxxxxxxxxxxx
                                                         stnt1b.  */
                                                      return 2306;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0110xxxxx001xxxxxxxxxxxxx
                                                         stnt1h.  */
                                                      return 2309;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0000xxxxx011xxxxxxxxxxxxx
                                                         stnt1b.  */
                                                      return 1999;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0100xxxxx011xxxxxxxxxxxxx
                                                         stnt1h.  */
                                                      return 2003;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0010xxxxx011xxxxxxxxxxxxx
                                                         st3b.  */
                                                      return 1983;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0110xxxxx011xxxxxxxxxxxxx
                                                         st3h.  */
                                                      return 1987;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          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 1385;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x0xx0xxxxx100xxxxxxxx1xxxx
                                                 cmpgt.  */
                                              return 1388;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx110xxxxxxxx0xxxx
                                                     cmphs.  */
                                                  return 1394;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx110xxxxxxxx1xxxx
                                                     cmphi.  */
                                                  return 1391;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1b.  */
                                                      return 1780;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1h.  */
                                                      return 1784;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0010xxxxx110xxxxxxxxxxxxx
                                                         ld3b.  */
                                                      return 1672;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0110xxxxx110xxxxxxxxxxxxx
                                                         ld3h.  */
                                                      return 1676;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 17) & 0x1) == 0)
                                            {
                                              if (((word >> 18) & 0x1) == 0)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0xx00x00x1x0xxxxxxxxxxxxx
                                                         fcadd.  */
                                                      return 1449;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0xx01x00x1x0xxxxxxxxxxxxx
                                                         faddp.  */
                                                      return 2133;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0xx0xx1001x0xxxxxxxxxxxxx
                                                         fmaxnmp.  */
                                                      return 2141;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0xx0xx1011x0xxxxxxxxxxxxx
                                                         fminnmp.  */
                                                      return 2143;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x0xx0xxx101x0xxxxxxxxxxxxx
                                                     fmaxp.  */
                                                  return 2142;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x0xx0xxx111x0xxxxxxxxxxxxx
                                                     fminp.  */
                                                  return 2144;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0000xxxxx1x0xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1930;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0100xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1949;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0010xxxxx1x0xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1934;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0110xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1955;
                                                }
                                            }
                                        }
                                    }
                                }
                              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 1382;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx101xxxxxxxx1xxxx
                                                     cmpne.  */
                                                  return 1405;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00000xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1572;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01000xxxx101xxxxxxxxxxxxx
                                                             ld1sw.  */
                                                          return 1650;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00100xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1574;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01100xxxx101xxxxxxxxxxxxx
                                                             ld1h.  */
                                                          return 1595;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00001xxxx101xxxxxxxxxxxxx
                                                             ldnf1b.  */
                                                          return 1764;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01001xxxx101xxxxxxxxxxxxx
                                                             ldnf1sw.  */
                                                          return 1777;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00101xxxx101xxxxxxxxxxxxx
                                                             ldnf1b.  */
                                                          return 1766;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01101xxxx101xxxxxxxxxxxxx
                                                             ldnf1h.  */
                                                          return 1770;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      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)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0xx0x0000101xxxxxxxxxxxxx
                                                                 faddqv.  */
                                                              return 3312;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0xx0x1000101xxxxxxxxxxxxx
                                                                 fcvtnt.  */
                                                              return 2136;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx100101xxxxxxxxxxxxx
                                                             fmaxnmqv.  */
                                                          return 3313;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x0000xx010101xxxxxxxxxxxxx
                                                                     fcvtxnt.  */
                                                                  return 2139;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x0100xx010101xxxxxxxxxxxxx
                                                                     bfcvtnt.  */
                                                                  return 3068;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0x10xx010101xxxxxxxxxxxxx
                                                                 fcvtnt.  */
                                                              return 2137;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx110101xxxxxxxxxxxxx
                                                             fmaxqv.  */
                                                          return 3314;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx001101xxxxxxxxxxxxx
                                                             fcvtlt.  */
                                                          return 2134;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx101101xxxxxxxxxxxxx
                                                             fminnmqv.  */
                                                          return 3315;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx011101xxxxxxxxxxxxx
                                                             fcvtlt.  */
                                                          return 2135;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0xx0xx111101xxxxxxxxxxxxx
                                                             fminqv.  */
                                                          return 3316;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0000xxxxx101xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1931;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0100xxxxx101xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1950;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0010xxxxx101xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1938;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0110xxxxx101xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1959;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx111xxxxxxxx0xxxx
                                                     cmplo.  */
                                                  return 1398;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x0xx0xxxxx111xxxxxxxx1xxxx
                                                     cmpls.  */
                                                  return 1400;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00000xxxx111xxxxxxxxxxxxx
                                                             ldnt1b.  */
                                                          return 1781;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01000xxxx111xxxxxxxxxxxxx
                                                             ldnt1h.  */
                                                          return 1785;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00100xxxx111xxxxxxxxxxxxx
                                                             ld3b.  */
                                                          return 1673;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01100xxxx111xxxxxxxxxxxxx
                                                             ld3h.  */
                                                          return 1677;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x0xx01xxxx111xxxxxxxxxxxxx
                                                     ld2q.  */
                                                  return 3320;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0x000xxxx111xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1936;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00100xxxx111xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1939;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01100xxxx111xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1960;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00001xxxx111xxxxxxxxxxxxx
                                                         stnt1b.  */
                                                      return 2000;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01001xxxx111xxxxxxxxxxxxx
                                                         stnt1h.  */
                                                      return 2004;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00101xxxx111xxxxxxxxxxxxx
                                                         st3b.  */
                                                      return 1984;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x01101xxxx111xxxxxxxxxxxxx
                                                         st3h.  */
                                                      return 1988;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      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 1395;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             001001x0xx1xxxxxxx0xxxxxxxx1xxxx
                                             cmphi.  */
                                          return 1392;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x00x1xxxxx000xxxxxxxxxxxxx
                                                     ld1rob.  */
                                                  return 3044;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x01x1xxxxx000xxxxxxxxxxxxx
                                                     ld1roh.  */
                                                  return 3045;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 101001x0xx1xxxxx100xxxxxxxxxxxxx
                                                 ld2q.  */
                                              return 3323;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1566;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx010xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1586;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx010xxxxxxxxxxxxx
                                                         ld1b.  */
                                                      return 1568;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx010xxxxxxxxxxxxx
                                                         ld1h.  */
                                                      return 1588;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx110xxxxxxxxxxxxx
                                                         ld2b.  */
                                                      return 1664;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx110xxxxxxxxxxxxx
                                                         ld2h.  */
                                                      return 1668;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx110xxxxxxxxxxxxx
                                                         ld4b.  */
                                                      return 1680;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx110xxxxxxxxxxxxx
                                                         ld4h.  */
                                                      return 1684;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x00x1xxxxx000x00xxxxxxxxxx
                                                             fmla.  */
                                                          return 1503;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x00x1xxxxx000x10xxxxxxxxxx
                                                             bfmla.  */
                                                          return 3294;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x00x1xxxxx000x01xxxxxxxxxx
                                                             fmls.  */
                                                          return 1507;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x00x1xxxxx000x11xxxxxxxxxx
                                                             bfmls.  */
                                                          return 3295;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x00x1xxxxx000xxxxxxxxxxxxx
                                                     st2q.  */
                                                  return 3330;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 10) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0101xxxxx0000x0xxxxxxxxxx
                                                                 fmla.  */
                                                              return 1504;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0101xxxxx0000x1xxxxxxxxxx
                                                                 fmls.  */
                                                              return 1508;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0101xxxxx0001xxxxxxxxxxxx
                                                             fcmla.  */
                                                          return 1451;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0101xxxxx000xxxxxxxxxxxxx
                                                         st3q.  */
                                                      return 3331;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 10) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0111xxxxx0000x0xxxxxxxxxx
                                                                 fmla.  */
                                                              return 1505;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0111xxxxx0000x1xxxxxxxxxx
                                                                 fmls.  */
                                                              return 1509;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx0001xxxxxxxxxxxx
                                                             fcmla.  */
                                                          return 1452;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0111xxxxx000xxxxxxxxxxxxx
                                                         st4q.  */
                                                      return 3332;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0001xxxxx010xxxxxxxxxxxxx
                                                         fdot.  */
                                                      return 2472;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0001xxxxx010xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1932;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0101xxxxx010xx0xxxxxxxxxx
                                                             fmlalb.  */
                                                          return 2145;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0101xxxxx010xx1xxxxxxxxxx
                                                             fmlalt.  */
                                                          return 2147;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0101xxxxx010xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1951;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0011xxxxx010xxxxxxxxxxxxx
                                                         bfdot.  */
                                                      return 3065;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0011xxxxx010xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1935;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx010xx0xxxxxxxxxx
                                                             bfmlalb.  */
                                                          return 3072;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx010xx1xxxxxxxxxx
                                                             bfmlalt.  */
                                                          return 3071;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0111xxxxx010xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1956;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11001x0001xxxxx1x0xxxxxxxxxxxxx
                                                 fdot.  */
                                              return 2473;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0101xxxxx1x0xx0xxxxxxxxxx
                                                         fmlalb.  */
                                                      return 2146;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0101xxxxx1x0xx1xxxxxxxxxx
                                                         fmlalt.  */
                                                      return 2148;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0101xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1952;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x11001x0011xxxxx1x0xxxxxxxxxxxxx
                                                 bfdot.  */
                                              return 3064;
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0111xxxxx1x0xx0xxxxxxxxxx
                                                         bfmlalb.  */
                                                      return 3070;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0111xxxxx1x0xx1xxxxxxxxxx
                                                         bfmlalt.  */
                                                      return 3069;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0111xxxxx1x0xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1957;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      if (((word >> 4) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             001001x0xx1xxxxxxx1xxxxxxxx0xxxx
                                             cmplo.  */
                                          return 1399;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             001001x0xx1xxxxxxx1xxxxxxxx1xxxx
                                             cmpls.  */
                                          return 1401;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x00x1xxxxx001xxxxxxxxxxxxx
                                                     ld1rob.  */
                                                  return 3048;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x01x1xxxxx001xxxxxxxxxxxxx
                                                     ld1roh.  */
                                                  return 3049;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00010xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1573;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01010xxxx101xxxxxxxxxxxxx
                                                             ld1h.  */
                                                          return 1594;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00110xxxx101xxxxxxxxxxxxx
                                                             ld1b.  */
                                                          return 1575;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01110xxxx101xxxxxxxxxxxxx
                                                             ld1h.  */
                                                          return 1596;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00011xxxx101xxxxxxxxxxxxx
                                                             ldnf1b.  */
                                                          return 1765;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01011xxxx101xxxxxxxxxxxxx
                                                             ldnf1h.  */
                                                          return 1769;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x00111xxxx101xxxxxxxxxxxxx
                                                             ldnf1b.  */
                                                          return 1767;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x01111xxxx101xxxxxxxxxxxxx
                                                             ldnf1h.  */
                                                          return 1771;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1691;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1710;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx011xxxxxxxxxxxxx
                                                         ldff1b.  */
                                                      return 1695;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx011xxxxxxxxxxxxx
                                                         ldff1h.  */
                                                      return 1714;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0001xxxxx111xxxxxxxxxxxxx
                                                         ld2b.  */
                                                      return 1665;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0101xxxxx111xxxxxxxxxxxxx
                                                         ld2h.  */
                                                      return 1669;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0011xxxxx111xxxxxxxxxxxxx
                                                         ld4b.  */
                                                      return 1681;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x0111xxxxx111xxxxxxxxxxxxx
                                                         ld4h.  */
                                                      return 1685;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x00x1xxxxx001x00xxxxxxxxxx
                                                             fmul.  */
                                                          return 1514;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0101xxxxx001x00xxxxxxxxxx
                                                                 fmul.  */
                                                              return 1515;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x0111xxxxx001x00xxxxxxxxxx
                                                                 fmul.  */
                                                              return 1516;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0xx1xxxxx001x10xxxxxxxxxx
                                                         bfmul.  */
                                                      return 3296;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x0xx1xxxxx001xx1xxxxxxxxxx
                                                     fclamp.  */
                                                  return 2474;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x0xx1xxxxx001xxxxxxxxxxxxx
                                                 st1q.  */
                                              return 3326;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0x01xxxxx101xx0xxxxxxxxxx
                                                         fmlslb.  */
                                                      return 2150;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0x01xxxxx101xx1xxxxxxxxxx
                                                         fmlslt.  */
                                                      return 2152;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x0x01xxxxx101xxxxxxxxxxxxx
                                                     st1h.  */
                                                  return 1953;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0011xxxxx101xxxxxxxxxxxxx
                                                     st1b.  */
                                                  return 1940;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx101xx0xxxxxxxxxx
                                                             bfmlslb.  */
                                                          return 2469;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx101xx1xxxxxxxxxx
                                                             bfmlslt.  */
                                                          return 2471;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0111xxxxx101xxxxxxxxxxxxx
                                                         st1h.  */
                                                      return 1961;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0001xxxxx011xxxxxxxxxxxxx
                                                     st2b.  */
                                                  return 1975;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0101xxxxx011xx0xxxxxxxxxx
                                                             fmlslb.  */
                                                          return 2149;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0101xxxxx011xx1xxxxxxxxxx
                                                             fmlslt.  */
                                                          return 2151;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0101xxxxx011xxxxxxxxxxxxx
                                                         st2h.  */
                                                      return 1979;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x11001x0011xxxxx011xxxxxxxxxxxxx
                                                     st4b.  */
                                                  return 1991;
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx011xx0xxxxxxxxxx
                                                             bfmlslb.  */
                                                          return 2468;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x0111xxxxx011xx1xxxxxxxxxx
                                                             bfmlslt.  */
                                                          return 2470;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x0111xxxxx011xxxxxxxxxxxxx
                                                         st4h.  */
                                                      return 1995;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00010xxxx111xxxxxxxxxxxxx
                                                         st1b.  */
                                                      return 1937;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x11001x00011xxxx111xxxxxxxxxxxxx
                                                         st2b.  */
                                                      return 1976;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0101xxxxx111xxxxxxxxxxxxx
                                                         fmmla.  */
                                                      return 3042;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x01010xxxx111xxxxxxxxxxxxx
                                                             st1h.  */
                                                          return 1958;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x01011xxxx111xxxxxxxxxxxxx
                                                             st2h.  */
                                                          return 1980;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0011xxxxx111xxxxxxxxxxxxx
                                                         bfmmla.  */
                                                      return 3066;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x00110xxxx111xxxxxxxxxxxxx
                                                             st1b.  */
                                                          return 1941;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x00111xxxx111xxxxxxxxxxxxx
                                                             st4b.  */
                                                          return 1992;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x0111xxxxx111xxxxxxxxxxxxx
                                                         fmmla.  */
                                                      return 3043;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x01110xxxx111xxxxxxxxxxxxx
                                                             st1h.  */
                                                          return 1962;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x01111xxxx111xxxxxxxxxxxxx
                                                             st4h.  */
                                                          return 1996;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
              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 1820;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x11000xxxxxxxxxxxxxxxxxxxx
                                                 and.  */
                                              return 1347;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x10100xxxxxxxxxxxxxxxxxxxx
                                                 eor.  */
                                              return 1434;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 000001x11100xxxxxxxxxxxxxxxxxxxx
                                                 dupm.  */
                                              return 1432;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             000001x1xx01xxxx0xxxxxxxxxxxxxxx
                                             cpy.  */
                                          return 1417;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             000001x1xx01xxxx1xxxxxxxxxxxxxxx
                                             fcpy.  */
                                          return 1464;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1001xxxxx000xxxxxxxxxxxxx
                                                         ext.  */
                                                      return 1439;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1101xxxxx000x00xxxxxxxxxx
                                                                 zip1.  */
                                                              return 3052;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1101xxxxx000010xxxxxxxxxx
                                                                     uzp1.  */
                                                                  return 3054;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1101xxxxx000110xxxxxxxxxx
                                                                     trn1.  */
                                                                  return 3056;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1101xxxxx000x01xxxxxxxxxx
                                                                 zip2.  */
                                                              return 3053;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1101xxxxx000011xxxxxxxxxx
                                                                     uzp2.  */
                                                                  return 3055;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1101xxxxx000111xxxxxxxxxx
                                                                     trn2.  */
                                                                  return 3057;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     000001x1x11xxxxx000xxxxxxxxxxxxx
                                                     ext.  */
                                                  return 2132;
                                                }
                                            }
                                          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 1415;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1000100xxxxxxxxxxxxx
                                                                 clasta.  */
                                                              return 1373;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0100100xxxxxxxxxxxxx
                                                                 revb.  */
                                                              return 1869;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1100100xxxxxxxxxxxxx
                                                                 splice.  */
                                                              return 1896;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0010100xxxxxxxxxxxxx
                                                                 lasta.  */
                                                              return 1561;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1010100xxxxxxxxxxxxx
                                                                 clasta.  */
                                                              return 1374;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0110100xxxxxxxxxxxxx
                                                                 revw.  */
                                                              return 1871;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1110100xxxxxxxxxxxxx
                                                                 revd.  */
                                                              return 2462;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0001100xxxxxxxxxxxxx
                                                                 compact.  */
                                                              return 1414;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1001100xxxxxxxxxxxxx
                                                                 clastb.  */
                                                              return 1376;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0101100xxxxxxxxxxxxx
                                                                 revh.  */
                                                              return 1870;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1101100xxxxxxxxxxxxx
                                                                 splice.  */
                                                              return 2227;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x0011100xxxxxxxxxxxxx
                                                                 lastb.  */
                                                              return 1563;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 000001x1xx1x1011100xxxxxxxxxxxxx
                                                                 clastb.  */
                                                              return 1377;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xx111100xxxxxxxxxxxxx
                                                             rbit.  */
                                                          return 1862;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 15) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx001000xxxxxxxxxx
                                                             dup.  */
                                                          return 1430;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx001100xxxxxxxxxx
                                                             tbl.  */
                                                          return 2020;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx001010xxxxxxxxxx
                                                             tbl.  */
                                                          return 2316;
                                                        }
                                                      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
                                                                                 000001x1xx100000001110xxxxxxxxxx
                                                                                 dup.  */
                                                                              return 1429;
                                                                            }
                                                                          else
                                                                            {
                                                                              /* 33222222222211111111110000000000
                                                                                 10987654321098765432109876543210
                                                                                 000001x1xx110000001110xxxxxxxxxx
                                                                                 sunpklo.  */
                                                                              return 2016;
                                                                            }
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             000001x1xx1x1000001110xxxxxxxxxx
                                                                             rev.  */
                                                                          return 1868;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 20) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             000001x1xx10x100001110xxxxxxxxxx
                                                                             insr.  */
                                                                          return 1558;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             000001x1xx11x100001110xxxxxxxxxx
                                                                             insr.  */
                                                                          return 1559;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1xx1xxx10001110xxxxxxxxxx
                                                                     uunpklo.  */
                                                                  return 2079;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 17) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1xx1xxx01001110xxxxxxxxxx
                                                                     sunpkhi.  */
                                                                  return 2015;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1xx1xxx11001110xxxxxxxxxx
                                                                     uunpkhi.  */
                                                                  return 2078;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1x01xxxxx001x01xxxxxxxxxx
                                                             dupq.  */
                                                          return 3317;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1x11xxxxx001x01xxxxxxxxxx
                                                             extq.  */
                                                          return 3318;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1xxxxx001x11xxxxxxxxxx
                                                         tbx.  */
                                                      return 2317;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx100xx0101xxxxxxxxxxxxx
                                                             lasta.  */
                                                          return 1560;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx110xx0101xxxxxxxxxxxxx
                                                             clasta.  */
                                                          return 1375;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1x1xx0101xxxxxxxxxxxxx
                                                         cpy.  */
                                                      return 1416;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 20) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx10xxx1101xxxxxxxxxxxxx
                                                         lastb.  */
                                                      return 1562;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx11xxx1101xxxxxxxxxxxxx
                                                         clastb.  */
                                                      return 1378;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  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 2096;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 18) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x1xx11x0x0010000xxxxxxxxxx
                                                                         punpklo.  */
                                                                      return 1861;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000001x1xx11x1x0010000xxxxxxxxxx
                                                                         rev.  */
                                                                      return 1867;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     000001x1xx11xxx1010000xxxxxxxxxx
                                                                     punpkhi.  */
                                                                  return 1860;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx011000xxxxxxxxxx
                                                             zip1.  */
                                                          return 2097;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 13) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx010100xxxxxxxxxx
                                                             trn1.  */
                                                          return 2021;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx011100xxxxxxxxxx
                                                             trn1.  */
                                                          return 2022;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1xxxxx010x10xxxxxxxxxx
                                                         uzp1.  */
                                                      return 2083;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1xxxxx011x10xxxxxxxxxx
                                                         uzp1.  */
                                                      return 2084;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 13) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx010001xxxxxxxxxx
                                                             zip2.  */
                                                          return 2098;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx011001xxxxxxxxxx
                                                             zip2.  */
                                                          return 2099;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 13) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx010101xxxxxxxxxx
                                                             trn2.  */
                                                          return 2023;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             000001x1xx1xxxxx011101xxxxxxxxxx
                                                             trn2.  */
                                                          return 2024;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1xxxxx010x11xxxxxxxxxx
                                                         uzp2.  */
                                                      return 2085;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         000001x1xx1xxxxx011x11xxxxxxxxxx
                                                         uzp2.  */
                                                      return 2086;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             000001x1xx1xxxxx11xxxxxxxxxxxxxx
                                             sel.  */
                                          return 1886;
                                        }
                                    }
                                }
                            }
                          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 1788;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 100001x1x1xxxxxx000xxxxxxxxxxxxx
                                                 prfb.  */
                                              return 1834;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 100001x10xxxxxxx100xxxxxxxxxxxxx
                                                 ld1rsh.  */
                                              return 1617;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 100001x11xxxxxxx100xxxxxxxxxxxxx
                                                 ld1rsb.  */
                                              return 1614;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x10x0xxxxx010xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1652;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x10x1xxxxx010xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1653;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x110xxxxxx010xxxxxxxxxxxxx
                                                     ldr.  */
                                                  return 1790;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x111xxxxxx010xxxxxxxxxxxxx
                                                     prfw.  */
                                                  return 1855;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x1000xxxxx110xxxxxxxxxxxxx
                                                         prfw.  */
                                                      return 1851;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x1100xxxxx110xxxxxxxxxxxxx
                                                         prfd.  */
                                                      return 1837;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x1x01xxxxx110xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1660;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x101xxxxxx110xxxxxxxxxxxxx
                                                     ld1rw.  */
                                                  return 1620;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x111xxxxxx110xxxxxxxxxxxxx
                                                     ld1rsb.  */
                                                  return 1616;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             100001x1xxxxxxxx001xxxxxxxxxxxxx
                                             prfh.  */
                                          return 1848;
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 100001x1x0xxxxxx101xxxxxxxxxxxxx
                                                 ldnt1w.  */
                                              return 2163;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x101xxxxxx101xxxxxxxxxxxxx
                                                     ld1rsh.  */
                                                  return 1618;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x111xxxxxx101xxxxxxxxxxxxx
                                                     ld1rsb.  */
                                                  return 1615;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x10x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1752;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x10x1xxxxx011xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1753;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 100001x11xxxxxxx011xxxxxxxxxxxxx
                                                 prfd.  */
                                              return 1841;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x1000xxxxx111xxxxxxxxxxxxx
                                                         prfw.  */
                                                      return 1854;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         100001x1100xxxxx111xxxxxxxxxxxxx
                                                         prfd.  */
                                                      return 1840;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x1x01xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1762;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x101xxxxxx111xxxxxxxxxxxxx
                                                     ld1rw.  */
                                                  return 1621;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     100001x111xxxxxx111xxxxxxxxxxxxx
                                                     ld1rd.  */
                                                  return 1602;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 13) & 0x1) == 0)
                            {
                              if (((word >> 14) & 0x1) == 0)
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000000xxxxxxxxxx
                                                             saddlb.  */
                                                          return 2193;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000100xxxxxxxxxx
                                                             ssublb.  */
                                                          return 2300;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000010xxxxxxxxxx
                                                             uaddlb.  */
                                                          return 2324;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000110xxxxxxxxxx
                                                             usublb.  */
                                                          return 2377;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000001xxxxxxxxxx
                                                             saddlt.  */
                                                          return 2195;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000101xxxxxxxxxx
                                                             ssublt.  */
                                                          return 2302;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000011xxxxxxxxxx
                                                             uaddlt.  */
                                                          return 2325;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx000111xxxxxxxxxx
                                                             usublt.  */
                                                          return 2378;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 110001x1xx0xxxxx000xxxxxxxxxxxxx
                                                 ld1sw.  */
                                              return 1646;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000000xxxxxxxxxx
                                                                 sqshrunb.  */
                                                              return 2283;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000100xxxxxxxxxx
                                                                 shrnb.  */
                                                              return 2201;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000010xxxxxxxxxx
                                                                 sqrshrunb.  */
                                                              return 2275;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000110xxxxxxxxxx
                                                                 rshrnb.  */
                                                              return 2183;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000001xxxxxxxxxx
                                                                 sqshrunt.  */
                                                              return 2284;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000101xxxxxxxxxx
                                                                 shrnt.  */
                                                              return 2202;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000011xxxxxxxxxx
                                                                 sqrshrunt.  */
                                                              return 2276;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx000111xxxxxxxxxx
                                                                 rshrnt.  */
                                                              return 2184;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x1xxxxx000xxxxxxxxxxxxx
                                                     ld1sw.  */
                                                  return 1647;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x1xxxxx000xxxxxxxxxxxxx
                                                 sqrshrun.  */
                                              return 2480;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx100000xxxxxxxxxx
                                                             saddlbt.  */
                                                          return 2194;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx100100xxxxxxxxxx
                                                             eorbt.  */
                                                          return 2130;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx100010xxxxxxxxxx
                                                             ssublbt.  */
                                                          return 2301;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x1000xxxxx100110xxxxxxxxxx
                                                                     smmla.  */
                                                                  return 3036;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x1100xxxxx100110xxxxxxxxxx
                                                                     usmmla.  */
                                                                  return 3038;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1x10xxxxx100110xxxxxxxxxx
                                                                 ummla.  */
                                                              return 3037;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx100x01xxxxxxxxxx
                                                         eortb.  */
                                                      return 2131;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx100x11xxxxxxxxxx
                                                         ssubltb.  */
                                                      return 2303;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x1x00xxxxx100xxxxxxxxxxxxx
                                                     ldnt1sw.  */
                                                  return 2162;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x1x10xxxxx100xxxxxxxxxxxxx
                                                     ld1sw.  */
                                                  return 1648;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x1xx1xxxxx100xxxxxxxx0xxxx
                                                     match.  */
                                                  return 2165;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x1xx1xxxxx100xxxxxxxx1xxxx
                                                     nmatch.  */
                                                  return 2177;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x1x01xxxxx100xxxxxxxxxxxxx
                                                     ld1sw.  */
                                                  return 1651;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x1x11xxxxx100xxxxxxxxxxxxx
                                                     ld1sw.  */
                                                  return 1649;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010000xxxxxxxxxx
                                                             saddwb.  */
                                                          return 2196;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010100xxxxxxxxxx
                                                             ssubwb.  */
                                                          return 2304;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010010xxxxxxxxxx
                                                             uaddwb.  */
                                                          return 2326;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010110xxxxxxxxxx
                                                             usubwb.  */
                                                          return 2379;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010001xxxxxxxxxx
                                                             saddwt.  */
                                                          return 2197;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010101xxxxxxxxxx
                                                             ssubwt.  */
                                                          return 2305;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010011xxxxxxxxxx
                                                             uaddwt.  */
                                                          return 2327;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx010111xxxxxxxxxx
                                                             usubwt.  */
                                                          return 2380;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x0xxxxx010xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1656;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x11x0xxxxx010xxxxxxxxxxxxx
                                                     ld1d.  */
                                                  return 1578;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x10x1xxxx0010000xxxxxxxxxx
                                                                     sqxtnb.  */
                                                                  return 2287;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x10x1xxxx1010000xxxxxxxxxx
                                                                     sqcvtn.  */
                                                                  return 2477;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x10x1xxxx0010100xxxxxxxxxx
                                                                     sqxtunb.  */
                                                                  return 2289;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x10x1xxxx1010100xxxxxxxxxx
                                                                     sqcvtun.  */
                                                                  return 2478;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxx0010x10xxxxxxxxxx
                                                                 uqxtnb.  */
                                                              return 2364;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxx1010x10xxxxxxxxxx
                                                                 uqcvtn.  */
                                                              return 2483;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx010001xxxxxxxxxx
                                                                 sqxtnt.  */
                                                              return 2288;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx010101xxxxxxxxxx
                                                                 sqxtunt.  */
                                                              return 2290;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x10x1xxxxx010x11xxxxxxxxxx
                                                             uqxtnt.  */
                                                          return 2365;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x1xxxxx010xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1657;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x11x1xxxxx010xxxxxxxxxxxxx
                                                 ld1d.  */
                                              return 1579;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx110000xxxxxxxxxx
                                                             sabalb.  */
                                                          return 2188;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x0xxxxx110100xxxxxxxxxx
                                                                 adclb.  */
                                                              return 2113;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x11x0xxxxx110100xxxxxxxxxx
                                                                 sbclb.  */
                                                              return 2198;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx110001xxxxxxxxxx
                                                             sabalt.  */
                                                          return 2189;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x0xxxxx110101xxxxxxxxxx
                                                                 adclt.  */
                                                              return 2114;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x11x0xxxxx110101xxxxxxxxxx
                                                                 sbclt.  */
                                                              return 2199;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx110010xxxxxxxxxx
                                                             uabalb.  */
                                                          return 2319;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx110011xxxxxxxxxx
                                                             uabalt.  */
                                                          return 2320;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxx011011xxxxxxxxxxx
                                                             cadd.  */
                                                          return 2122;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxx111011xxxxxxxxxxx
                                                             sqcadd.  */
                                                          return 2230;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1w.  */
                                                      return 2164;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1d.  */
                                                      return 2157;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1010xxxxx110xxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1658;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1110xxxxx110xxxxxxxxxxxxx
                                                         ld1d.  */
                                                      return 1580;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1001xxxxx110xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1663;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1011xxxxx110xxxxxxxxxxxxx
                                                     ld1w.  */
                                                  return 1659;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x11x1xxxxx110xxxxxxxxxxxxx
                                                     histcnt.  */
                                                  return 2153;
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1101xxxxx110xxxxxxxxxxxxx
                                                         ld1d.  */
                                                      return 1583;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1111xxxxx110xxxxxxxxxxxxx
                                                         ld1d.  */
                                                      return 1581;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 14) & 0x1) == 0)
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx001x00xxxxxxxxxx
                                                         sabdlb.  */
                                                      return 2190;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx001x10xxxxxxxxxx
                                                         uabdlb.  */
                                                      return 2321;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx001x01xxxxxxxxxx
                                                         sabdlt.  */
                                                      return 2191;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx001x11xxxxxxxxxx
                                                         uabdlt.  */
                                                      return 2322;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 110001x1xx0xxxxx001xxxxxxxxxxxxx
                                                 ldff1sw.  */
                                              return 1747;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001000xxxxxxxxxx
                                                                 sqshrnb.  */
                                                              return 2281;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001100xxxxxxxxxx
                                                                 uqshrnb.  */
                                                              return 2360;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001010xxxxxxxxxx
                                                                 sqrshrnb.  */
                                                              return 2273;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001110xxxxxxxxxx
                                                                 uqrshrnb.  */
                                                              return 2355;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001001xxxxxxxxxx
                                                                 sqshrnt.  */
                                                              return 2282;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001101xxxxxxxxxx
                                                                 uqshrnt.  */
                                                              return 2361;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001011xxxxxxxxxx
                                                                 sqrshrnt.  */
                                                              return 2274;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x10x1xxxxx001111xxxxxxxxxx
                                                                 uqrshrnt.  */
                                                              return 2356;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x1xxxxx001xxxxxxxxxxxxx
                                                     ldff1sw.  */
                                                  return 1748;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x11x1xxxxx0010xxxxxxxxxxxx
                                                     sqrshrn.  */
                                                  return 2479;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x11x1xxxxx0011xxxxxxxxxxxx
                                                     uqrshrn.  */
                                                  return 2484;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101000xxxxxxxxxx
                                                             sshllb.  */
                                                          return 2297;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101100xxxxxxxxxx
                                                             bext.  */
                                                          return 2402;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101010xxxxxxxxxx
                                                             ushllb.  */
                                                          return 2373;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101110xxxxxxxxxx
                                                             bgrp.  */
                                                          return 2403;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101001xxxxxxxxxx
                                                             sshllt.  */
                                                          return 2298;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx101101xxxxxxxxxx
                                                             bdep.  */
                                                          return 2401;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         010001x1xx0xxxxx101x11xxxxxxxxxx
                                                         ushllt.  */
                                                      return 2374;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 110001x1xx0xxxxx101xxxxxxxxxxxxx
                                                 ldff1sw.  */
                                              return 1749;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 31) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     010001x1x01xxxxx101xxxxxxxxxxxxx
                                                     histseg.  */
                                                  return 2154;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x1x01xxxxx101xxxxxxxxxxxxx
                                                     ldff1sw.  */
                                                  return 1751;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x10001x1x11xxxxx101xxxxxxxxxxxxx
                                                 ldff1sw.  */
                                              return 1750;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011000xxxxxxxxxx
                                                             sqdmullb.  */
                                                          return 2251;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011100xxxxxxxxxx
                                                             smullb.  */
                                                          return 2223;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1x00xxxxx011010xxxxxxxxxx
                                                                 pmullb.  */
                                                              return 2398;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1x10xxxxx011010xxxxxxxxxx
                                                                 pmullb.  */
                                                              return 2179;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011110xxxxxxxxxx
                                                             umullb.  */
                                                          return 2348;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011001xxxxxxxxxx
                                                             sqdmullt.  */
                                                          return 2254;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011101xxxxxxxxxx
                                                             smullt.  */
                                                          return 2226;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1x00xxxxx011011xxxxxxxxxx
                                                                 pmullt.  */
                                                              return 2399;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1x10xxxxx011011xxxxxxxxxx
                                                                 pmullt.  */
                                                              return 2180;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx011111xxxxxxxxxx
                                                             umullt.  */
                                                          return 2351;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1758;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x11x0xxxxx011xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1703;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011000xxxxxxxxxx
                                                             addhnb.  */
                                                          return 2115;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011100xxxxxxxxxx
                                                             subhnb.  */
                                                          return 2313;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011010xxxxxxxxxx
                                                             raddhnb.  */
                                                          return 2181;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011110xxxxxxxxxx
                                                             rsubhnb.  */
                                                          return 2185;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011001xxxxxxxxxx
                                                             addhnt.  */
                                                          return 2116;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011101xxxxxxxxxx
                                                             subhnt.  */
                                                          return 2314;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011011xxxxxxxxxx
                                                             raddhnt.  */
                                                          return 2182;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx1xxxxx011111xxxxxxxxxx
                                                             rsubhnt.  */
                                                          return 2186;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x10x1xxxxx011xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1759;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     110001x11x1xxxxx011xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1704;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111000xxxxxxxxxx
                                                             ssra.  */
                                                          return 2299;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111100xxxxxxxxxx
                                                             sri.  */
                                                          return 2292;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111010xxxxxxxxxx
                                                             srsra.  */
                                                          return 2296;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111110xxxxxxxxxx
                                                             saba.  */
                                                          return 2187;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111001xxxxxxxxxx
                                                             usra.  */
                                                          return 2376;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111101xxxxxxxxxx
                                                             sli.  */
                                                          return 2205;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111011xxxxxxxxxx
                                                             ursra.  */
                                                          return 2372;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             010001x1xx0xxxxx111111xxxxxxxxxx
                                                             uaba.  */
                                                          return 2318;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1000xxxxx111xxxxxxxxxxxxx
                                                         prfw.  */
                                                      return 1856;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1100xxxxx111xxxxxxxxxxxxx
                                                         prfd.  */
                                                      return 1842;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1010xxxxx111xxxxxxxxxxxxx
                                                         ldff1w.  */
                                                      return 1760;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1110xxxxx111xxxxxxxxxxxxx
                                                         ldff1d.  */
                                                      return 1705;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  if (((word >> 31) & 0x1) == 0)
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 17) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         010001x1001xxx001110x0xxxxxxxxxx
                                                                         aesmc.  */
                                                                      return 2397;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         010001x1001xxx101110x0xxxxxxxxxx
                                                                         aese.  */
                                                                      return 2395;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x1001xxxx11110x0xxxxxxxxxx
                                                                     sm4e.  */
                                                                  return 2392;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1001xxxxx1111x0xxxxxxxxxx
                                                                 sm4ekey.  */
                                                              return 2393;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              if (((word >> 17) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x1001xxx0x1110x1xxxxxxxxxx
                                                                     aesimc.  */
                                                                  return 2396;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     010001x1001xxx1x1110x1xxxxxxxxxx
                                                                     aesd.  */
                                                                  return 2394;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 010001x1001xxxxx1111x1xxxxxxxxxx
                                                                 rax1.  */
                                                              return 2400;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         110001x1001xxxxx111xxxxxxxxxxxxx
                                                         ldff1w.  */
                                                      return 1763;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1101xxxxx111xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1707;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1011xxxxx111xxxxxxxxxxxxx
                                                     ldff1w.  */
                                                  return 1761;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10001x1111xxxxx111xxxxxxxxxxxxx
                                                     ldff1d.  */
                                                  return 1706;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                  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 1386;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1xx0xxxxx000xxxxxxxx1xxxx
                                                     cmpgt.  */
                                                  return 1389;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqw.  */
                                                  return 1613;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x0xxxxx000xxxxxxxxxxxxx
                                                     ld1rqd.  */
                                                  return 1609;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000000xxxxx0xxxx
                                                                 whilege.  */
                                                              return 2381;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000100xxxxx0xxxx
                                                                 whilege.  */
                                                              return 2382;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000010xxxxx0xxxx
                                                                 whilehs.  */
                                                              return 2387;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000110xxxxx0xxxx
                                                                 whilehs.  */
                                                              return 2388;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000001xxxxx0xxxx
                                                                 whilelt.  */
                                                              return 2093;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000101xxxxx0xxxx
                                                                 whilelt.  */
                                                              return 2094;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000011xxxxx0xxxx
                                                                 whilelo.  */
                                                              return 2089;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000111xxxxx0xxxx
                                                                 whilelo.  */
                                                              return 2090;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000000xxxxx1xxxx
                                                                 whilegt.  */
                                                              return 2383;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000100xxxxx1xxxx
                                                                 whilegt.  */
                                                              return 2384;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000010xxxxx1xxxx
                                                                 whilehi.  */
                                                              return 2385;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000110xxxxx1xxxx
                                                                 whilehi.  */
                                                              return 2386;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000001xxxxx1xxxx
                                                                 whilele.  */
                                                              return 2087;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000101xxxxx1xxxx
                                                                 whilele.  */
                                                              return 2088;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000011xxxxx1xxxx
                                                                 whilels.  */
                                                              return 2091;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx000111xxxxx1xxxx
                                                                 whilels.  */
                                                              return 2092;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x1xxxxx000xxxxxxxxxxxxx
                                                     ld1row.  */
                                                  return 3046;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x1xxxxx000xxxxxxxxxxxxx
                                                     ld1rod.  */
                                                  return 3047;
                                                }
                                            }
                                        }
                                    }
                                  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 1444;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000010xxxxxxxxxx
                                                             fmul.  */
                                                          return 1511;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000110xxxxxxxxxx
                                                             frecps.  */
                                                          return 1524;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x1xx0xxxxx000x01xxxxxxxxxx
                                                         fsub.  */
                                                      return 1537;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000011xxxxxxxxxx
                                                             ftsmul.  */
                                                          return 1543;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xxxxx000111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 1534;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx000xxxxxxxxxxxxx
                                                 fmla.  */
                                              return 1502;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             111001x1xxxxxxxx000xxxxxxxxxxxxx
                                             str.  */
                                          return 2007;
                                        }
                                    }
                                }
                              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 1403;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1xx0xxxxx001xxxxxxxx1xxxx
                                                     cmple.  */
                                                  return 1397;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqw.  */
                                                  return 1612;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x0xxxxx001xxxxxxxxxxxxx
                                                     ld1rqd.  */
                                                  return 1608;
                                                }
                                            }
                                        }
                                      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
                                                                     011001x1xx000000001xxxxxxxxxxxxx
                                                                     faddv.  */
                                                                  return 1448;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 4) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx010000001xxxxxxxx0xxxx
                                                                         fcmge.  */
                                                                      return 1455;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx010000001xxxxxxxx1xxxx
                                                                         fcmgt.  */
                                                                      return 1457;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 10) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 11) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x1xx001000001x00xxxxxxxxxx
                                                                             f1cvt.  */
                                                                          return 3350;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x1xx001000001x10xxxxxxxxxx
                                                                             bf1cvt.  */
                                                                          return 3346;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 11) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x1xx001000001x01xxxxxxxxxx
                                                                             f2cvt.  */
                                                                          return 3351;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x1xx001000001x11xxxxxxxxxx
                                                                             bf2cvt.  */
                                                                          return 3347;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011000001xxxxxxxxxxxxx
                                                                     fadda.  */
                                                                  return 1447;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xx100001xxxxxxxxxxxxx
                                                             fmaxnmv.  */
                                                          return 1494;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x0010001xxxxxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 1453;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 10) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1010001x00xxxxxxxxxx
                                                                         fcvtn.  */
                                                                      return 3355;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1010001x10xxxxxxxxxx
                                                                         bfcvtn.  */
                                                                      return 3354;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1010001x01xxxxxxxxxx
                                                                         fcvtnb.  */
                                                                      return 3356;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1010001x11xxxxxxxxxx
                                                                         fcvtnt.  */
                                                                      return 3357;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x0110001xxxxxxxxxxxxx
                                                                 fmaxv.  */
                                                              return 1495;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x1110001xxxxxxxxxxxxx
                                                                 frecpe.  */
                                                              return 1523;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 4) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx0x0001001xxxxxxxx0xxxx
                                                                     fcmlt.  */
                                                                  return 1460;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx0x0001001xxxxxxxx1xxxx
                                                                     fcmle.  */
                                                                  return 1459;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 10) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1001001x00xxxxxxxxxx
                                                                         f1cvtlt.  */
                                                                      return 3352;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1001001x10xxxxxxxxxx
                                                                         bf1cvtlt.  */
                                                                      return 3348;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1001001x01xxxxxxxxxx
                                                                         f2cvtlt.  */
                                                                      return 3353;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1xx0x1001001x11xxxxxxxxxx
                                                                         bf2cvtlt.  */
                                                                      return 3349;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xx101001xxxxxxxxxxxxx
                                                             fminnmv.  */
                                                          return 1500;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             011001x1xx0xx011001xxxxxxxxxxxxx
                                                             fcmne.  */
                                                          return 1461;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x0111001xxxxxxxxxxxxx
                                                                 fminv.  */
                                                              return 1501;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x1111001xxxxxxxxxxxxx
                                                                 frsqrte.  */
                                                              return 1533;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1000xxxxx001xxxxxxxxxxxxx
                                                         stnt1w.  */
                                                      return 2312;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1100xxxxx001xxxxxxxxxxxxx
                                                         stnt1d.  */
                                                      return 2308;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1x10xxxxx001xxxxxxxxxxxxx
                                                     stnt1w.  */
                                                  return 2311;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xxxxx0010xxxxxxx0xxxx
                                                         ctermeq.  */
                                                      return 1418;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xxxxx0011xxxxxxx0xxxx
                                                         whilewr.  */
                                                      return 2390;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xxxxx0010xxxxxxx1xxxx
                                                         ctermne.  */
                                                      return 1419;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xxxxx0011xxxxxxx1xxxx
                                                         whilerw.  */
                                                      return 2389;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x1xxxxx001xxxxxxxxxxxxx
                                                     ld1row.  */
                                                  return 3050;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x1xxxxx001xxxxxxxxxxxxx
                                                     ld1rod.  */
                                                  return 3051;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x11001x1xx1xxxxx001xxxxxxxxxxxxx
                                             fmls.  */
                                          return 1506;
                                        }
                                    }
                                }
                            }
                          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 1349;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x10000xxxx01xxxx0xxxx1xxxx
                                                                 bic.  */
                                                              return 1361;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x100010xxx01xxxx0xxxxxxxxx
                                                                 brka.  */
                                                              return 1363;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x100011xxx01xxxx0xxxxxxxxx
                                                                 brkn.  */
                                                              return 1367;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1000xxxxx01xxxx1xxxx0xxxx
                                                             eor.  */
                                                          return 1436;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1000xxxxx01xxxx1xxxx1xxxx
                                                             sel.  */
                                                          return 1887;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx010xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1635;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx011xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1735;
                                                    }
                                                }
                                            }
                                          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 1822;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11000xxxx01xxxx0xxxx1xxxx
                                                                 orn.  */
                                                              return 1817;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x11001xxxx01xxxx0xxxxxxxxx
                                                             brkb.  */
                                                          return 1365;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 4) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1100xxxxx01xxxx1xxxx0xxxx
                                                             nor.  */
                                                          return 1814;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1100xxxxx01xxxx1xxxx1xxxx
                                                             nand.  */
                                                          return 1811;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx010xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1623;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx011xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1723;
                                                    }
                                                }
                                            }
                                        }
                                      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 1350;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x101010xxx01xxxx0xxxx0xxxx
                                                                     brkas.  */
                                                                  return 1364;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x101011xxx01xxxx0xxxx0xxxx
                                                                     brkns.  */
                                                                  return 1368;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1010xxxxx01xxxx1xxxx0xxxx
                                                             eors.  */
                                                          return 1437;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1010xxxxx01xxxxxxxxx1xxxx
                                                         bics.  */
                                                      return 1362;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1010xxxxx010xxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1654;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1010xxxxx011xxxxxxxxxxxxx
                                                         ldff1w.  */
                                                      return 1754;
                                                    }
                                                }
                                            }
                                          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 1823;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x11101xxxx01xxxx0xxxx0xxxx
                                                                 brkbs.  */
                                                              return 1366;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx1xxxx0xxxx
                                                             nors.  */
                                                          return 1815;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 9) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx0xxxx1xxxx
                                                             orns.  */
                                                          return 1818;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1110xxxxx01xxxx1xxxx1xxxx
                                                             nands.  */
                                                          return 1812;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx010xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1625;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx011xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1727;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 001001x1xx1xxxxx01xxxxxxxxx0xxxx
                                                 psel.  */
                                              return 2465;
                                            }
                                          else
                                            {
                                              if (((word >> 10) & 0x1) == 0)
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 3) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x000xxxxx10xxx
                                                                 whilege.  */
                                                              return 2948;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x000xxxxx11xxx
                                                                 whilegt.  */
                                                              return 2949;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 13) & 0x1) == 0)
                                                            {
                                                              if (((word >> 0) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010100xxxxx1xxx0
                                                                     whilege.  */
                                                                  return 2485;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010100xxxxx1xxx1
                                                                     whilegt.  */
                                                                  return 2486;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx011100xxxxx1xxxx
                                                                 pext.  */
                                                              return 2689;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 3) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x010xxxxx10xxx
                                                                 whilehs.  */
                                                              return 2951;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x010xxxxx11xxx
                                                                 whilehi.  */
                                                              return 2950;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 13) & 0x1) == 0)
                                                            {
                                                              if (((word >> 0) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010110xxxxx1xxx0
                                                                     whilehs.  */
                                                                  return 2488;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010110xxxxx1xxx1
                                                                     whilehi.  */
                                                                  return 2487;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx011110xxxxx1xxxx
                                                                 ptrue.  */
                                                              return 2691;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 11) & 0x1) == 0)
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 3) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x001xxxxx10xxx
                                                                 whilelt.  */
                                                              return 2955;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x001xxxxx11xxx
                                                                 whilele.  */
                                                              return 2952;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 13) & 0x1) == 0)
                                                            {
                                                              if (((word >> 0) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010101xxxxx1xxx0
                                                                     whilelt.  */
                                                                  return 2492;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xxxxx010101xxxxx1xxx1
                                                                     whilele.  */
                                                                  return 2489;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx011101xxxxx1xxxx
                                                                 pext.  */
                                                              return 2690;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 12) & 0x1) == 0)
                                                        {
                                                          if (((word >> 3) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x011xxxxx10xxx
                                                                 whilelo.  */
                                                              return 2953;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x011xxxxx11xxx
                                                                 whilels.  */
                                                              return 2954;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 0) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x111xxxxx1xxx0
                                                                 whilelo.  */
                                                              return 2490;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxxxx01x111xxxxx1xxx1
                                                                 whilels.  */
                                                              return 2491;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx010xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1636;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx010xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1624;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx010xxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1655;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx010xxxxxxxxxxxxx
                                                         ld1d.  */
                                                      return 1577;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx011xxxxxxxxxxxxx
                                                         ldff1sh.  */
                                                      return 1737;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx011xxxxxxxxxxxxx
                                                         ldff1sb.  */
                                                      return 1725;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx011xxxxxxxxxxxxx
                                                         ldff1w.  */
                                                      return 1756;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx011xxxxxxxxxxxxx
                                                         ldff1d.  */
                                                      return 1701;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              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 1456;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx010xxxxxxxx1xxxx
                                                     fcmgt.  */
                                                  return 1458;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx010xxxxxxxxxxxxx
                                                 fnmla.  */
                                              return 1520;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x1x0xxxxxx010xxxxxxxxxxxxx
                                                 str.  */
                                              return 2009;
                                            }
                                          else
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1x10xxxxx010xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1967;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1011xxxxx010xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1969;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1111xxxxx010xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1946;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx011xxxxxxxx0xxxx
                                                     fcmeq.  */
                                                  return 1454;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx011xxxxxxxx1xxxx
                                                     fcmne.  */
                                                  return 1462;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1000xxxxx011xxxxxxxxxxxxx
                                                         stnt1w.  */
                                                      return 2005;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1100xxxxx011xxxxxxxxxxxxx
                                                         stnt1d.  */
                                                      return 2001;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1010xxxxx011xxxxxxxxxxxxx
                                                         st3w.  */
                                                      return 1989;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1110xxxxx011xxxxxxxxxxxxx
                                                         st3d.  */
                                                      return 1985;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx011xxxxxxxxxxxxx
                                                 fnmls.  */
                                              return 1521;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1001xxxxx011xxxxxxxxxxxxx
                                                         st2w.  */
                                                      return 1981;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1101xxxxx011xxxxxxxxxxxxx
                                                         st2d.  */
                                                      return 1977;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1011xxxxx011xxxxxxxxxxxxx
                                                         st4w.  */
                                                      return 1997;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1111xxxxx011xxxxxxxxxxxxx
                                                         st4d.  */
                                                      return 1993;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      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 1383;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x01001x1xx0xxxxx100xxxxxxxx1xxxx
                                                 cmpne.  */
                                              return 1406;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 20) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10000xxxx101xxxxxxxxxxxxx
                                                         ld1sh.  */
                                                      return 1642;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11000xxxx101xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1629;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10100xxxx101xxxxxxxxxxxxx
                                                         ld1w.  */
                                                      return 1661;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11100xxxx101xxxxxxxxxxxxx
                                                         ld1sb.  */
                                                      return 1631;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10001xxxx101xxxxxxxxxxxxx
                                                         ldnf1sh.  */
                                                      return 1775;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11001xxxx101xxxxxxxxxxxxx
                                                         ldnf1sb.  */
                                                      return 1772;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x10101xxxx101xxxxxxxxxxxxx
                                                         ldnf1w.  */
                                                      return 1778;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x01001x11101xxxx101xxxxxxxxxxxxx
                                                         ldnf1sb.  */
                                                      return 1774;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  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 1369;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1x100xxxx11xxxxxxxxx0xxxx
                                                         brkpas.  */
                                                      return 1370;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx010xx011xxxxxxxxx0xxxx
                                                             ptest.  */
                                                          return 1857;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 10) & 0x1) == 0)
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 13) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx011xx01100x0xxxxx0xxxx
                                                                         pfirst.  */
                                                                      return 1827;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx011xx01110x0xxxxx0xxxx
                                                                         ptrue.  */
                                                                      return 1858;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1x0011xx011x1x0xxxxx0xxxx
                                                                         rdffr.  */
                                                                      return 1864;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1x1011xx011x1x0xxxxx0xxxx
                                                                         rdffrs.  */
                                                                      return 1865;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx011xx011xxx1xxxxx0xxxx
                                                                 pfalse.  */
                                                              return 1825;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 12) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx01xxx111x0x0xxxxx0xxxx
                                                                 ptrues.  */
                                                              return 1859;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx01xxx111x1x0xxxxx0xxxx
                                                                 rdffr.  */
                                                              return 1863;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx01xxx111xxx1xxxxx0xxxx
                                                             pnext.  */
                                                          return 1828;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1x00xxxxx11xxxxxxxxx1xxxx
                                                     brkpb.  */
                                                  return 1371;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     001001x1x10xxxxx11xxxxxxxxx1xxxx
                                                     brkpbs.  */
                                                  return 1372;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1000xxxxx110xxxxxxxxxxxxx
                                                         ldnt1w.  */
                                                      return 1786;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1100xxxxx110xxxxxxxxxxxxx
                                                         ldnt1d.  */
                                                      return 1782;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1010xxxxx110xxxxxxxxxxxxx
                                                         ld3w.  */
                                                      return 1678;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1110xxxxx110xxxxxxxxxxxxx
                                                         ld3d.  */
                                                      return 1674;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10000xxxx111xxxxxxxxxxxxx
                                                             ldnt1w.  */
                                                          return 1787;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11000xxxx111xxxxxxxxxxxxx
                                                             ldnt1d.  */
                                                          return 1783;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10100xxxx111xxxxxxxxxxxxx
                                                             ld3w.  */
                                                          return 1679;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11100xxxx111xxxxxxxxxxxxx
                                                             ld3d.  */
                                                          return 1675;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x10x01xxxx111xxxxxxxxxxxxx
                                                         ld3q.  */
                                                      return 3321;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x11x01xxxx111xxxxxxxxxxxxx
                                                         ld4q.  */
                                                      return 3322;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              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 1445;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000100100xxxxxxxxxxxxx
                                                                     fmaxnm.  */
                                                                  return 1492;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000010100xxxxxxxxxxxxx
                                                                     fmul.  */
                                                                  return 1512;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000110100xxxxxxxxxxxxx
                                                                     fmax.  */
                                                                  return 1490;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000001100xxxxxxxxxxxxx
                                                                     fsub.  */
                                                                  return 1538;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000101100xxxxxxxxxxxxx
                                                                     fminnm.  */
                                                                  return 1498;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000011100xxxxxxxxxxxxx
                                                                     fsubr.  */
                                                                  return 1540;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000111100xxxxxxxxxxxxx
                                                                     fmin.  */
                                                                  return 1496;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         011001x1xx010xxx100xxxxxxxxxxxxx
                                                         ftmad.  */
                                                      return 1542;
                                                    }
                                                }
                                              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 1440;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011000100xxxxxxxxxxxxx
                                                                     fadd.  */
                                                                  return 1446;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001100100xxxxxxxxxxxxx
                                                                     fdivr.  */
                                                                  return 1486;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011100100xxxxxxxxxxxxx
                                                                     fmaxnm.  */
                                                                  return 1493;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001010100xxxxxxxxxxxxx
                                                                     fmulx.  */
                                                                  return 1517;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011010100xxxxxxxxxxxxx
                                                                     fmul.  */
                                                                  return 1513;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001110100xxxxxxxxxxxxx
                                                                     famax.  */
                                                                  return 1210;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011110100xxxxxxxxxxxxx
                                                                     fmax.  */
                                                                  return 1491;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001001100xxxxxxxxxxxxx
                                                                     fscale.  */
                                                                  return 1535;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011001100xxxxxxxxxxxxx
                                                                     fsub.  */
                                                                  return 1539;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001101100xxxxxxxxxxxxx
                                                                     fdiv.  */
                                                                  return 1485;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011101100xxxxxxxxxxxxx
                                                                     fminnm.  */
                                                                  return 1499;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 011001x1xx0x1011100xxxxxxxxxxxxx
                                                                 fsubr.  */
                                                              return 1541;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001111100xxxxxxxxxxxxx
                                                                     famin.  */
                                                                  return 1211;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011111100xxxxxxxxxxxxx
                                                                     fmin.  */
                                                                  return 1497;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx110xxxxxxxx0xxxx
                                                     fcmuo.  */
                                                  return 1463;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     011001x1xx0xxxxx110xxxxxxxx1xxxx
                                                     facge.  */
                                                  return 1442;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1000xxxxx1x0xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1963;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1100xxxxx1x0xxxxxxxxxxxxx
                                                     st1d.  */
                                                  return 1942;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x1x10xxxxx1x0xxxxxxxxxxxxx
                                                 st1w.  */
                                              return 1968;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000000101xxxxxxxxxxxxx
                                                                     frintn.  */
                                                                  return 1529;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010000101xxxxxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 1877;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000100101xxxxxxxxxxxxx
                                                                     frinta.  */
                                                                  return 1526;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0010100101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1876;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101010100101xxxxxxxxxxxxx
                                                                             scvtf.  */
                                                                          return 1875;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111010100101xxxxxxxxxxxxx
                                                                             scvtf.  */
                                                                          return 1879;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000010101xxxxxxxxxxxxx
                                                                     frintm.  */
                                                                  return 1528;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010010101xxxxxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 1874;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000110101xxxxxxxxxxxxx
                                                                     frintx.  */
                                                                  return 1531;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x10x010110101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1878;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x11x010110101xxxxxxxxxxxxx
                                                                         scvtf.  */
                                                                      return 1880;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0001000101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1465;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1001000101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1467;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001100101xxxxxxxxxxxxx
                                                                     frecpx.  */
                                                                  return 1525;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x100001x10101xxxxxxxxxxxxx
                                                                         fcvtx.  */
                                                                      return 2138;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x110001x10101xxxxxxxxxxxxx
                                                                         bfcvt.  */
                                                                      return 3067;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1x1001x10101xxxxxxxxxxxxx
                                                                     fcvt.  */
                                                                  return 1469;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x100011xx0101xxxxxxxxxxxxx
                                                                     flogb.  */
                                                                  return 2140;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x110011xx0101xxxxxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 1474;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 17) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 18) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1011000101xxxxxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 1475;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101011100101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1472;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111011100101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1476;
                                                                        }
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 18) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1011010101xxxxxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 1471;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101011110101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1473;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111011110101xxxxxxxxxxxxx
                                                                             fcvtzs.  */
                                                                          return 1477;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              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 1530;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010001101xxxxxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 2030;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0001001101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1466;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x1001001101xxxxxxxxxxxxx
                                                                         fcvt.  */
                                                                      return 1468;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011001101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1482;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 22) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1x00x0101101xxxxxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 2029;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1010x0101101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 2028;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1110x0101101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 2032;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001101101xxxxxxxxxxxxx
                                                                     fsqrt.  */
                                                                  return 1536;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 22) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x1x0011101101xxxxxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 1481;
                                                                    }
                                                                  else
                                                                    {
                                                                      if (((word >> 23) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x101011101101xxxxxxxxxxxxx
                                                                             fcvtzu.  */
                                                                          return 1479;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             011001x111011101101xxxxxxxxxxxxx
                                                                             fcvtzu.  */
                                                                          return 1483;
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000011101xxxxxxxxxxxxx
                                                                     frintz.  */
                                                                  return 1532;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx010011101xxxxxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 2027;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx001011101xxxxxxxxxxxxx
                                                                     fcvt.  */
                                                                  return 1470;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx011011101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1478;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x1xx000111101xxxxxxxxxxxxx
                                                                     frinti.  */
                                                                  return 1527;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x10x010111101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 2031;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         011001x11x010111101xxxxxxxxxxxxx
                                                                         ucvtf.  */
                                                                      return 2033;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x10x0x1111101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1480;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     011001x11x0x1111101xxxxxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 1484;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1000xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1964;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1100xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1943;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1010xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1971;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1110xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1947;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx0xxxxx111xxxxxxxxxxxxx
                                                 facgt.  */
                                              return 1443;
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1xx00xxxx111xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1972;
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10001xxxx111xxxxxxxxxxxxx
                                                             stnt1w.  */
                                                          return 2006;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11001xxxx111xxxxxxxxxxxxx
                                                             stnt1d.  */
                                                          return 2002;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10101xxxx111xxxxxxxxxxxxx
                                                             st3w.  */
                                                          return 1990;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11101xxxx111xxxxxxxxxxxxx
                                                             st3d.  */
                                                          return 1986;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 9) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1x000010xxxx0xxxxxxxxx
                                                                 cntp.  */
                                                              return 1412;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 10) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 11) & 0x1) == 0)
                                                                    {
                                                                      if (((word >> 12) & 0x1) == 0)
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             001001x1xx1x100010x0000xxxxxxxxx
                                                                             sqincp.  */
                                                                          return 1921;
                                                                        }
                                                                      else
                                                                        {
                                                                          /* 33222222222211111111110000000000
                                                                             10987654321098765432109876543210
                                                                             001001x1xx1x100010x1000xxxxxxxxx
                                                                             wrffr.  */
                                                                          return 2095;
                                                                        }
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         001001x1xx1x100010xx100xxxxxxxxx
                                                                         sqincp.  */
                                                                      return 1923;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1x100010xxx10xxxxxxxxx
                                                                     sqincp.  */
                                                                  return 1922;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              if (((word >> 12) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx10010x00x0xxxxxxxxx
                                                                     incp.  */
                                                                  return 1550;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx10010x10x0xxxxxxxxx
                                                                     setffr.  */
                                                                  return 1888;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xx10010xx1x0xxxxxxxxx
                                                                 incp.  */
                                                              return 1551;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 10) & 0x1) == 0)
                                                        {
                                                          if (((word >> 11) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxx1010xx000xxxxxxxxx
                                                                 sqdecp.  */
                                                              return 1907;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxx1010xx100xxxxxxxxx
                                                                 sqdecp.  */
                                                              return 1909;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1xxx1010xxx10xxxxxxxxx
                                                             sqdecp.  */
                                                          return 1908;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 10) & 0x1) == 0)
                                                    {
                                                      if (((word >> 11) & 0x1) == 0)
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx00110xx000xxxxxxxxx
                                                                     uqincp.  */
                                                                  return 2070;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx10110xx000xxxxxxxxx
                                                                     decp.  */
                                                                  return 1425;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxx1110xx000xxxxxxxxx
                                                                 uqdecp.  */
                                                              return 2056;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 17) & 0x1) == 0)
                                                            {
                                                              if (((word >> 18) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx00110xx100xxxxxxxxx
                                                                     uqincp.  */
                                                                  return 2071;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     001001x1xx1xx10110xx100xxxxxxxxx
                                                                     decp.  */
                                                                  return 1426;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx1xxx1110xx100xxxxxxxxx
                                                                 uqdecp.  */
                                                              return 2057;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 17) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1xxx0110xxx10xxxxxxxxx
                                                             uqincp.  */
                                                          return 2072;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1xxx1110xxx10xxxxxxxxx
                                                             uqdecp.  */
                                                          return 2058;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 001001x1xx1xxxxx10xxxx1xxxxxxxxx
                                                 cntp.  */
                                              return 2528;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x10x1xxxxx100xxxxxxxxxxxxx
                                                     ld3q.  */
                                                  return 3324;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     101001x11x1xxxxx100xxxxxxxxxxxxx
                                                     ld4q.  */
                                                  return 3325;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10010xxxx101xxxxxxxxxxxxx
                                                             ld1sh.  */
                                                          return 1643;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11010xxxx101xxxxxxxxxxxxx
                                                             ld1sb.  */
                                                          return 1630;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10110xxxx101xxxxxxxxxxxxx
                                                             ld1w.  */
                                                          return 1662;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11110xxxx101xxxxxxxxxxxxx
                                                             ld1d.  */
                                                          return 1582;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10011xxxx101xxxxxxxxxxxxx
                                                             ldnf1sh.  */
                                                          return 1776;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11011xxxx101xxxxxxxxxxxxx
                                                             ldnf1sb.  */
                                                          return 1773;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x10111xxxx101xxxxxxxxxxxxx
                                                             ldnf1w.  */
                                                          return 1779;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             101001x11111xxxx101xxxxxxxxxxxxx
                                                             ldnf1d.  */
                                                          return 1768;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  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 1339;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11000011xxxxxxxxxxxxxx
                                                                 mul.  */
                                                              return 1809;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10100011xxxxxxxxxxxxxx
                                                                 smax.  */
                                                              return 1889;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11100011xxxxxxxxxxxxxx
                                                                 dup.  */
                                                              return 1431;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx10011xxxxxxxxxxxxxx
                                                         sqadd.  */
                                                      return 1898;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx01011xxxxxxxxxxxxxx
                                                         smin.  */
                                                      return 1892;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx11011xxxxxxxxxxxxxx
                                                         sqsub.  */
                                                      return 1928;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x000111xxxxxxxxxxxxxx
                                                             sub.  */
                                                          return 2011;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx10100111xxxxxxxxxxxxxx
                                                                 umax.  */
                                                              return 2039;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 001001x1xx11100111xxxxxxxxxxxxxx
                                                                 fdup.  */
                                                              return 1487;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx10111xxxxxxxxxxxxxx
                                                         uqadd.  */
                                                      return 2047;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x001111xxxxxxxxxxxxxx
                                                             subr.  */
                                                          return 2013;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             001001x1xx1x101111xxxxxxxxxxxxxx
                                                             umin.  */
                                                          return 2042;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         001001x1xx1xx11111xxxxxxxxxxxxxx
                                                         uqsub.  */
                                                      return 2077;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx110xxxxxxxxxxxxx
                                                         ld2w.  */
                                                      return 1670;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx110xxxxxxxxxxxxx
                                                         ld2d.  */
                                                      return 1666;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx110xxxxxxxxxxxxx
                                                         ld4w.  */
                                                      return 1686;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx110xxxxxxxxxxxxx
                                                         ld4d.  */
                                                      return 1682;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1001xxxxx111xxxxxxxxxxxxx
                                                         ld2w.  */
                                                      return 1671;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1101xxxxx111xxxxxxxxxxxxx
                                                         ld2d.  */
                                                      return 1667;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1011xxxxx111xxxxxxxxxxxxx
                                                         ld4w.  */
                                                      return 1687;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         101001x1111xxxxx111xxxxxxxxxxxxx
                                                         ld4d.  */
                                                      return 1683;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 31) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx100xxxxxxxxxxxxx
                                                 fmad.  */
                                              return 1489;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx110xxxxxxxxxxxxx
                                                 fnmad.  */
                                              return 1519;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1001xxxxx1x0xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1965;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1101xxxxx1x0xxxxxxxxxxxxx
                                                     st1d.  */
                                                  return 1944;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 111001x1x11xxxxx1x0xxxxxxxxxxxxx
                                                 st1w.  */
                                              return 1970;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx101xxxxxxxxxxxxx
                                                 fmsb.  */
                                              return 1510;
                                            }
                                          else
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1001xxxxx101xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1966;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x1101xxxxx101xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1945;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     111001x1x11xxxxx101xxxxxxxxxxxxx
                                                     st1w.  */
                                                  return 1973;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 31) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 011001x1xx1xxxxx111xxxxxxxxxxxxx
                                                 fnmsb.  */
                                              return 1522;
                                            }
                                          else
                                            {
                                              if (((word >> 20) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x10x10xxxx111xxxxxxxxxxxxx
                                                         st1w.  */
                                                      return 1974;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         111001x11x10xxxx111xxxxxxxxxxxxx
                                                         st1d.  */
                                                      return 1948;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10011xxxx111xxxxxxxxxxxxx
                                                             st2w.  */
                                                          return 1982;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11011xxxx111xxxxxxxxxxxxx
                                                             st2d.  */
                                                          return 1978;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x10111xxxx111xxxxxxxxxxxxx
                                                             st4w.  */
                                                          return 1998;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             111001x11111xxxx111xxxxxxxxxxxxx
                                                             st4d.  */
                                                          return 1994;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
          else
            {
              if (((word >> 29) & 0x1) == 0)
                {
                  if (((word >> 30) & 0x1) == 0)
                    {
                      if (((word >> 31) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             000101xxxxxxxxxxxxxxxxxxxxxxxxxx
                             b.  */
                          return 636;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             100101xxxxxxxxxxxxxxxxxxxxxxxxxx
                             bl.  */
                          return 637;
                        }
                    }
                  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 657;
                                    }
                                  else
                                    {
                                      if (((word >> 0) & 0x1) == 0)
                                        {
                                          if (((word >> 1) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx00
                                                     hlt.  */
                                                  return 753;
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11010100x01xxxxxxxxxxxxxxxx0xx00
                                                         brk.  */
                                                      return 752;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         11010100x11xxxxxxxxxxxxxxxx0xx00
                                                         tcancel.  */
                                                      return 1226;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx10
                                                     hvc.  */
                                                  return 750;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx10
                                                     dcps2.  */
                                                  return 756;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 1) & 0x1) == 0)
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx01
                                                     svc.  */
                                                  return 749;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx01
                                                     dcps1.  */
                                                  return 755;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 21) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx0xxxxxxxxxxxxxxxx0xx11
                                                     smc.  */
                                                  return 751;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     11010100xx1xxxxxxxxxxxxxxxx0xx11
                                                     dcps3.  */
                                                  return 757;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110000xxxxxxxxxxxxxxxx0xxxx
                                                 br.  */
                                              return 638;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110100xxxxxxxxxxxxxxxx0xxxx
                                                 eret.  */
                                              return 641;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010110x10xxxxxxxxxxxxxxxx0xxxx
                                             ret.  */
                                          return 640;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10101100x1xxxxxxxxxxxxxxxx0xxxx
                                             blr.  */
                                          return 639;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x10101101x1xxxxxxxxxxxxxxxx0xxxx
                                             drps.  */
                                          return 642;
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 25) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x1010100xxxxxxxxxxxxxxxxxxx1xxxx
                                     bc.c.  */
                                  return 3203;
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1010110000xxxxxxxxxx0xxxxx1xxxx
                                                     braaz.  */
                                                  return 647;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1010110100xxxxxxxxxx0xxxxx1xxxx
                                                     eretaa.  */
                                                  return 653;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110x10xxxxxxxxxx0xxxxx1xxxx
                                                 retaa.  */
                                              return 651;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010110xx1xxxxxxxxxx0xxxxx1xxxx
                                             blraaz.  */
                                          return 649;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          if (((word >> 22) & 0x1) == 0)
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1010110000xxxxxxxxxx1xxxxx1xxxx
                                                     brabz.  */
                                                  return 648;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1010110100xxxxxxxxxx1xxxxx1xxxx
                                                     eretab.  */
                                                  return 654;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1010110x10xxxxxxxxxx1xxxxx1xxxx
                                                 retab.  */
                                              return 652;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010110xx1xxxxxxxxxx1xxxxx1xxxx
                                             blrabz.  */
                                          return 650;
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 21) & 0x1) == 0)
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  if (((word >> 25) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1010101x00xxxxxxxxxxxxxxxxxxxxx
                                         xaflag.  */
                                      return 811;
                                    }
                                  else
                                    {
                                      if (((word >> 10) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010111x00xxxxxxxxxx0xxxxxxxxxx
                                             braa.  */
                                          return 643;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010111x00xxxxxxxxxx1xxxxxxxxxx
                                             brab.  */
                                          return 644;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 20) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x10101x1x100xxxxxxxxxxxxxxxxxxxx
                                         sysp.  */
                                      return 1273;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x10101x1x101xxxxxxxxxxxxxxxxxxxx
                                         msrr.  */
                                      return 1290;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  if (((word >> 25) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x1010101x01xxxxxxxxxxxxxxxxxxxxx
                                         tstart.  */
                                      return 1223;
                                    }
                                  else
                                    {
                                      if (((word >> 10) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010111x01xxxxxxxxxx0xxxxxxxxxx
                                             blraa.  */
                                          return 645;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1010111x01xxxxxxxxxx1xxxxxxxxxx
                                             blrab.  */
                                          return 646;
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     x10101x1x11xxxxxxxxxxxxxxxxxxxxx
                                     mrrs.  */
                                  return 1289;
                                }
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 25) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110100xxxxxxxxxxxxxxxxxxxxxxxx
                             cbz.  */
                          return 655;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110110xxxxxxxxxxxxxxxxxxxxxxxx
                             tbz.  */
                          return 1299;
                        }
                    }
                  else
                    {
                      if (((word >> 25) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110101xxxxxxxxxxxxxxxxxxxxxxxx
                             cbnz.  */
                          return 656;
                        }
                      else
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx110111xxxxxxxxxxxxxxxxxxxxxxxx
                             tbnz.  */
                          return 1300;
                        }
                    }
                }
            }
        }
      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 440;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110000xxxxxxxxxxxxxxxxxxxxxx
                                     stnp.  */
                                  return 973;
                                }
                            }
                          else
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 16) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001101000xxxx0xx0xxxxxxxxxxxxx
                                                 st1.  */
                                              return 456;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001101001xxxx0xx0xxxxxxxxxxxxx
                                                 st2.  */
                                              return 458;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx00110100xxxxx1xx0xxxxxxxxxxxxx
                                             stl1.  */
                                          return 1202;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101000xxxxxxx1xxxxxxxxxxxxx
                                             st3.  */
                                          return 457;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101001xxxxxxx1xxxxxxxxxxxxx
                                             st4.  */
                                          return 459;
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110100xxxxxxxxxxxxxxxxxxxxxx
                                     stp.  */
                                  return 977;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 24) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001100100xxxxxxxxxxxxxxxxxxxxx
                                         st4.  */
                                      return 448;
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101100xxxxxxx0xxxxxxxxxxxxx
                                             st1.  */
                                          return 468;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101100xxxxxxx1xxxxxxxxxxxxx
                                             st3.  */
                                          return 469;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x101xxxxxxx0xxxxxxxxxxxxx
                                         st2.  */
                                      return 470;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x101xxxxxxx1xxxxxxxxxxxxx
                                         st4.  */
                                      return 471;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10110x10xxxxxxxxxxxxxxxxxxxxxx
                                 stp.  */
                              return 983;
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 23) & 0x1) == 0)
                        {
                          if (((word >> 24) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx00110001xxxxxxxxxxxxxxxxxxxxxx
                                     ld4.  */
                                  return 444;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110001xxxxxxxxxxxxxxxxxxxxxx
                                     ldnp.  */
                                  return 974;
                                }
                            }
                          else
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 16) & 0x1) == 0)
                                        {
                                          if (((word >> 21) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001101010xxxx0xx0xxxxxxxxxxxxx
                                                 ld1.  */
                                              return 460;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001101011xxxx0xx0xxxxxxxxxxxxx
                                                 ld2.  */
                                              return 464;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx00110101xxxxx1xx0xxxxxxxxxxxxx
                                             ldap1.  */
                                          return 1203;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 21) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101010xxxxxxx1xxxxxxxxxxxxx
                                             ld3.  */
                                          return 461;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101011xxxxxxx1xxxxxxxxxxxxx
                                             ld4.  */
                                          return 465;
                                        }
                                    }
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx10110101xxxxxxxxxxxxxxxxxxxxxx
                                     ldp.  */
                                  return 978;
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 21) & 0x1) == 0)
                                {
                                  if (((word >> 24) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001100110xxxxxxxxxxxxxxxxxxxxx
                                         ld4.  */
                                      return 452;
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101110xxxxxxx0xxxxxxxxxxxxx
                                             ld1.  */
                                          return 472;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx001101110xxxxxxx1xxxxxxxxxxxxx
                                             ld3.  */
                                          return 473;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x111xxxxxxx0xxxxxxxxxxxxx
                                         ld2.  */
                                      return 476;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx00110x111xxxxxxx1xxxxxxxxxxxxx
                                         ld4.  */
                                      return 477;
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx10110x11xxxxxxxxxxxxxxxxxxxxxx
                                 ldp.  */
                              return 984;
                            }
                        }
                    }
                }
              else
                {
                  if (((word >> 24) & 0x1) == 0)
                    {
                      if (((word >> 29) & 0x1) == 0)
                        {
                          /* 33222222222211111111110000000000
                             10987654321098765432109876543210
                             xx011100xxxxxxxxxxxxxxxxxxxxxxxx
                             ldr.  */
                          return 988;
                        }
                      else
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x0xxxxxxxxxx00xxxxxxxxxx
                                         stur.  */
                                      return 925;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x1xxxxxxxxxx00xxxxxxxxxx
                                         ldur.  */
                                      return 926;
                                    }
                                }
                              else
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x0xxxxxxxxxx10xxxxxxxxxx
                                         str.  */
                                      return 904;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111100x1xxxxxxxxxx10xxxxxxxxxx
                                         ldr.  */
                                      return 905;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 22) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx111100x0xxxxxxxxxxx1xxxxxxxxxx
                                     str.  */
                                  return 873;
                                }
                              else
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx111100x1xxxxxxxxxxx1xxxxxxxxxx
                                     ldr.  */
                                  return 874;
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 22) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx011101x0xxxxxxxxxxx0xxxxxxxxxx
                                     stlur.  */
                                  return 1205;
                                }
                              else
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0000x1xxxxxxxxxx
                                                         cpyp.  */
                                                      return 3131;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0000x1xxxxxxxxxx
                                                         cpye.  */
                                                      return 3133;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1000x1xxxxxxxxxx
                                                         cpyprn.  */
                                                      return 3137;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1000x1xxxxxxxxxx
                                                         cpyern.  */
                                                      return 3139;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0100x1xxxxxxxxxx
                                                         cpypwn.  */
                                                      return 3134;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0100x1xxxxxxxxxx
                                                         cpyewn.  */
                                                      return 3136;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1100x1xxxxxxxxxx
                                                         cpypn.  */
                                                      return 3140;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1100x1xxxxxxxxxx
                                                         cpyen.  */
                                                      return 3142;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0010x1xxxxxxxxxx
                                                         cpyprt.  */
                                                      return 3155;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0010x1xxxxxxxxxx
                                                         cpyert.  */
                                                      return 3157;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1010x1xxxxxxxxxx
                                                         cpyprtrn.  */
                                                      return 3161;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1010x1xxxxxxxxxx
                                                         cpyertrn.  */
                                                      return 3163;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0110x1xxxxxxxxxx
                                                         cpyprtwn.  */
                                                      return 3158;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0110x1xxxxxxxxxx
                                                         cpyertwn.  */
                                                      return 3160;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1110x1xxxxxxxxxx
                                                         cpyprtn.  */
                                                      return 3164;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1110x1xxxxxxxxxx
                                                         cpyertn.  */
                                                      return 3166;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0001x1xxxxxxxxxx
                                                         cpypwt.  */
                                                      return 3143;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0001x1xxxxxxxxxx
                                                         cpyewt.  */
                                                      return 3145;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1001x1xxxxxxxxxx
                                                         cpypwtrn.  */
                                                      return 3149;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1001x1xxxxxxxxxx
                                                         cpyewtrn.  */
                                                      return 3151;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0101x1xxxxxxxxxx
                                                         cpypwtwn.  */
                                                      return 3146;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0101x1xxxxxxxxxx
                                                         cpyewtwn.  */
                                                      return 3148;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1101x1xxxxxxxxxx
                                                         cpypwtn.  */
                                                      return 3152;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1101x1xxxxxxxxxx
                                                         cpyewtn.  */
                                                      return 3154;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0011x1xxxxxxxxxx
                                                         cpypt.  */
                                                      return 3167;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0011x1xxxxxxxxxx
                                                         cpyet.  */
                                                      return 3169;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1011x1xxxxxxxxxx
                                                         cpyptrn.  */
                                                      return 3173;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1011x1xxxxxxxxxx
                                                         cpyetrn.  */
                                                      return 3175;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx0111x1xxxxxxxxxx
                                                         cpyptwn.  */
                                                      return 3170;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx0111x1xxxxxxxxxx
                                                         cpyetwn.  */
                                                      return 3172;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110100xxxxxx1111x1xxxxxxxxxx
                                                         cpyptn.  */
                                                      return 3176;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110110xxxxxx1111x1xxxxxxxxxx
                                                         cpyetn.  */
                                                      return 3178;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx111101x0xxxxxxxxxxxxxxxxxxxxxx
                                 str.  */
                              return 892;
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx011101x1xxxxxxxxxxx0xxxxxxxxxx
                                     ldapur.  */
                                  return 1204;
                                }
                              else
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0000x1xxxxxxxxxx
                                                         cpym.  */
                                                      return 3132;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0000x1xxxxxxxxxx
                                                         setgp.  */
                                                      return 3191;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx1000x1xxxxxxxxxx
                                                         cpymrn.  */
                                                      return 3138;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx1000x1xxxxxxxxxx
                                                         setge.  */
                                                      return 3193;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0100x1xxxxxxxxxx
                                                         cpymwn.  */
                                                      return 3135;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0100x1xxxxxxxxxx
                                                         setgm.  */
                                                      return 3192;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011101x1xxxxxx1100x1xxxxxxxxxx
                                                     cpymn.  */
                                                  return 3141;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0010x1xxxxxxxxxx
                                                         cpymrt.  */
                                                      return 3156;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0010x1xxxxxxxxxx
                                                         setgpn.  */
                                                      return 3197;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx1010x1xxxxxxxxxx
                                                         cpymrtrn.  */
                                                      return 3162;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx1010x1xxxxxxxxxx
                                                         setgen.  */
                                                      return 3199;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0110x1xxxxxxxxxx
                                                         cpymrtwn.  */
                                                      return 3159;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0110x1xxxxxxxxxx
                                                         setgmn.  */
                                                      return 3198;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011101x1xxxxxx1110x1xxxxxxxxxx
                                                     cpymrtn.  */
                                                  return 3165;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0001x1xxxxxxxxxx
                                                         cpymwt.  */
                                                      return 3144;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0001x1xxxxxxxxxx
                                                         setgpt.  */
                                                      return 3194;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx1001x1xxxxxxxxxx
                                                         cpymwtrn.  */
                                                      return 3150;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx1001x1xxxxxxxxxx
                                                         setget.  */
                                                      return 3196;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0101x1xxxxxxxxxx
                                                         cpymwtwn.  */
                                                      return 3147;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0101x1xxxxxxxxxx
                                                         setgmt.  */
                                                      return 3195;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011101x1xxxxxx1101x1xxxxxxxxxx
                                                     cpymwtn.  */
                                                  return 3153;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0011x1xxxxxxxxxx
                                                         cpymt.  */
                                                      return 3168;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0011x1xxxxxxxxxx
                                                         setgptn.  */
                                                      return 3200;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx1011x1xxxxxxxxxx
                                                         cpymtrn.  */
                                                      return 3174;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx1011x1xxxxxxxxxx
                                                         setgetn.  */
                                                      return 3202;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110101xxxxxx0111x1xxxxxxxxxx
                                                         cpymtwn.  */
                                                      return 3171;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx01110111xxxxxx0111x1xxxxxxxxxx
                                                         setgmtn.  */
                                                      return 3201;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx011101x1xxxxxx1111x1xxxxxxxxxx
                                                     cpymtn.  */
                                                  return 3177;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              /* 33222222222211111111110000000000
                                 10987654321098765432109876543210
                                 xx111101x1xxxxxxxxxxxxxxxxxxxxxx
                                 ldr.  */
                              return 893;
                            }
                        }
                    }
                }
            }
          else
            {
              if (((word >> 24) & 0x1) == 0)
                {
                  if (((word >> 21) & 0x1) == 0)
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 31) & 0x1) == 0)
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0x001110xx0xxxxxxxx000xxxxxxxxxx
                                                 tbl.  */
                                              return 420;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 0x001110xx0xxxxxxxx100xxxxxxxxxx
                                                 tbx.  */
                                              return 421;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     0x001110xx0xxxxxx0x010xxxxxxxxxx
                                                     trn1.  */
                                                  return 263;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     0x001110xx0xxxxxx1x010xxxxxxxxxx
                                                     trn2.  */
                                                  return 266;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxxx00110xxxxxxxxxx
                                                         uzp1.  */
                                                      return 262;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxxx10110xxxxxxxxxx
                                                         uzp2.  */
                                                      return 265;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxxx01110xxxxxxxxxx
                                                         zip1.  */
                                                      return 264;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxxx11110xxxxxxxxxx
                                                         zip2.  */
                                                      return 267;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110x00xxxxxxx0001xxxxxxxxxx
                                                         dup.  */
                                                      return 149;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110010xxxxxxx0001xxxxxxxxxx
                                                             fmaxnm.  */
                                                          return 292;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110110xxxxxxx0001xxxxxxxxxx
                                                             fminnm.  */
                                                          return 308;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx0x1001xxxxxxxxxx
                                                         fcmeq.  */
                                                      return 300;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx1x1001xxxxxxxxxx
                                                         smmla.  */
                                                      return 3058;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x0011100x0xxxxx0x0101xxxxxxxxxx
                                                             fadd.  */
                                                          return 296;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x0011101x0xxxxx0x0101xxxxxxxxxx
                                                             fsub.  */
                                                          return 312;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx1x0101xxxxxxxxxx
                                                         sdot.  */
                                                      return 2984;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x0011100x0xxxxxx01101xxxxxxxxxx
                                                             fmax.  */
                                                          return 302;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x0011101x0xxxxxx01101xxxxxxxxxx
                                                             fmin.  */
                                                          return 314;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110x00xxxxxx11101xxxxxxxxxx
                                                                 fcvtn.  */
                                                              return 3341;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110x00xxxxxx11101xxxxxxxxxx
                                                                 fcvtn2.  */
                                                              return 3342;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110x10xxxxxx11101xxxxxxxxxx
                                                             fcvtn.  */
                                                          return 3343;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110x00xxxxxxx0011xxxxxxxxxx
                                                         dup.  */
                                                      return 150;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110010xxxxxxx0011xxxxxxxxxx
                                                             fmla.  */
                                                          return 294;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110110xxxxxxx0011xxxxxxxxxx
                                                             fmls.  */
                                                          return 310;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx0x1011xxxxxxxxxx
                                                         smov.  */
                                                      return 151;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx1x1011xxxxxxxxxx
                                                         usmmla.  */
                                                      return 3060;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110x00xxxxx0x0111xxxxxxxxxx
                                                             ins.  */
                                                          return 154;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110010xxxxx0x0111xxxxxxxxxx
                                                                 fmulx.  */
                                                              return 298;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110110xxxxx0x0111xxxxxxxxxx
                                                                 famax.  */
                                                              return 1206;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110xx0xxxxx1x0111xxxxxxxxxx
                                                         usdot.  */
                                                      return 3061;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         0x001110x00xxxxxxx1111xxxxxxxxxx
                                                         umov.  */
                                                      return 152;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110010xxxxxxx1111xxxxxxxxxx
                                                             frecps.  */
                                                          return 304;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110110xxxxxxx1111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 316;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 22) & 0x1) == 0)
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x001110000xxxxxxxxxxxxxxxxxxxxx
                                             eor3.  */
                                          return 2991;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x001110100xxxxxxxxxxxxxxxxxxxxx
                                             xar.  */
                                          return 2993;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 15) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             1x001110x10xxxxx0xxxxxxxxxxxxxxx
                                             sm3ss1.  */
                                          return 2995;
                                        }
                                      else
                                        {
                                          if (((word >> 10) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         1x001110010xxxxx1xxx00xxxxxxxxxx
                                                         sm3tt1a.  */
                                                      return 2996;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         1x001110110xxxxx1xxx00xxxxxxxxxx
                                                         sha512su0.  */
                                                      return 2989;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x001110x10xxxxx1xxx10xxxxxxxxxx
                                                     sm3tt2a.  */
                                                  return 2998;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         1x001110010xxxxx1xxx01xxxxxxxxxx
                                                         sm3tt1b.  */
                                                      return 2997;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         1x001110110xxxxx1xxx01xxxxxxxxxx
                                                         sm4e.  */
                                                      return 3002;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     1x001110x10xxxxx1xxx11xxxxxxxxxx
                                                     sm3tt2b.  */
                                                  return 2999;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 10) & 0x1) == 0)
                                {
                                  /* 33222222222211111111110000000000
                                     10987654321098765432109876543210
                                     xx101110xx0xxxxxxxxxx0xxxxxxxxxx
                                     ext.  */
                                  return 132;
                                }
                              else
                                {
                                  if (((word >> 15) & 0x1) == 0)
                                    {
                                      if (((word >> 22) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx101110x00xxxxx0xxxx1xxxxxxxxxx
                                             ins.  */
                                          return 156;
                                        }
                                      else
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x0001xxxxxxxxxx
                                                             fmaxnmp.  */
                                                          return 343;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x0001xxxxxxxxxx
                                                             fminnmp.  */
                                                          return 359;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1001xxxxxxxxxx
                                                             fcmge.  */
                                                          return 349;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x1001xxxxxxxxxx
                                                             fcmgt.  */
                                                          return 363;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x0101xxxxxxxxxx
                                                             faddp.  */
                                                          return 345;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x0101xxxxxxxxxx
                                                             fabd.  */
                                                          return 361;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1101xxxxxxxxxx
                                                             fmaxp.  */
                                                          return 353;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x1101xxxxxxxxxx
                                                             fminp.  */
                                                          return 367;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110010xxxxx0xx011xxxxxxxxxx
                                                         facge.  */
                                                      return 351;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110110xxxxx0xx011xxxxxxxxxx
                                                         facgt.  */
                                                      return 365;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x0111xxxxxxxxxx
                                                             fmul.  */
                                                          return 347;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x0111xxxxxxxxxx
                                                             famin.  */
                                                          return 1208;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110010xxxxx0x1111xxxxxxxxxx
                                                             fdiv.  */
                                                          return 355;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110110xxxxx0x1111xxxxxxxxxx
                                                             fscale.  */
                                                          return 3344;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 11) & 0x1) == 0)
                                                {
                                                  if (((word >> 12) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx0xxxxx100001xxxxxxxxxx
                                                         sqrdmlah.  */
                                                      return 370;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx0xxxxx100101xxxxxxxxxx
                                                         udot.  */
                                                      return 2983;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101110xx0xxxxx100x11xxxxxxxxxx
                                                     sqrdmlsh.  */
                                                  return 371;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101110xx0xxxxx110xx1xxxxxxxxxx
                                                 fcmla.  */
                                              return 372;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101110xx0xxxxx101x01xxxxxxxxxx
                                                     ummla.  */
                                                  return 3059;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101110xx0xxxxx111x01xxxxxxxxxx
                                                     fcadd.  */
                                                  return 373;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101110xx0xxxxx1x1011xxxxxxxxxx
                                                     bfmmla.  */
                                                  return 3075;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx1011100x0xxxxx1x1111xxxxxxxxxx
                                                         bfdot.  */
                                                      return 3073;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x01011101x0xxxxx1x1111xxxxxxxxxx
                                                             bfmlalb.  */
                                                          return 3080;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x11011101x0xxxxx1x1111xxxxxxxxxx
                                                             bfmlalt.  */
                                                          return 3079;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      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 764;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx10xxxxxxxxxxxxxxxx
                                             scvtf.  */
                                          return 760;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 17) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx01xxxxxxxxxxxxxxxx
                                             fcvtzu.  */
                                          return 766;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx0xxx11xxxxxxxxxxxxxxxx
                                             ucvtf.  */
                                          return 762;
                                        }
                                    }
                                }
                              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 678;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx100x0xxxxxxxxxx
                                                     sha256h.  */
                                                  return 682;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx010x0xxxxxxxxxx
                                                     sha1m.  */
                                                  return 680;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx110x0xxxxxxxxxx
                                                     sha256su1.  */
                                                  return 684;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx001x0xxxxxxxxxx
                                                     sha1p.  */
                                                  return 679;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx0xxxxxx101x0xxxxxxxxxx
                                                     sha256h2.  */
                                                  return 683;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx11x0xxxxxxxxxx
                                                 sha1su0.  */
                                              return 681;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx0x01xxxxxxxxxx
                                                 dup.  */
                                              return 535;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx1x01xxxxxxxxxx
                                                 fcmeq.  */
                                              return 556;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011110xx0xxxxxxx0x11xxxxxxxxxx
                                                 fmulx.  */
                                              return 554;
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111100x0xxxxxxx1x11xxxxxxxxxx
                                                     frecps.  */
                                                  return 558;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111101x0xxxxxxx1x11xxxxxxxxxx
                                                     frsqrts.  */
                                                  return 560;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111110xx0xxxxxxx000xxxxxxxxxxx
                                             sqrdmlah.  */
                                          return 588;
                                        }
                                      else
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111100x0xxxxxxx100xxxxxxxxxxx
                                                 fcmge.  */
                                              return 573;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111101x0xxxxxxx100xxxxxxxxxxx
                                                 fcmgt.  */
                                              return 579;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111110xx0xxxxxxxx10xxxxxxxxxxx
                                         fabd.  */
                                      return 577;
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111110xx0xxxxxxx0x1xxxxxxxxxxx
                                         sqrdmlsh.  */
                                      return 589;
                                    }
                                  else
                                    {
                                      if (((word >> 23) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx1111100x0xxxxxxx1x1xxxxxxxxxxx
                                             facge.  */
                                          return 575;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx1111101x0xxxxxxx1x1xxxxxxxxxxx
                                             facgt.  */
                                          return 581;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      if (((word >> 28) & 0x1) == 0)
                        {
                          if (((word >> 15) & 0x1) == 0)
                            {
                              if (((word >> 29) & 0x1) == 0)
                                {
                                  if (((word >> 31) & 0x1) == 0)
                                    {
                                      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 >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx000000xxxxxxxxxx
                                                                 saddl.  */
                                                              return 44;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx000000xxxxxxxxxx
                                                                 saddl2.  */
                                                              return 45;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx010000xxxxxxxxxx
                                                                 addhn.  */
                                                              return 52;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx010000xxxxxxxxxx
                                                                 addhn2.  */
                                                              return 53;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx001000xxxxxxxxxx
                                                                 ssubl.  */
                                                              return 48;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx001000xxxxxxxxxx
                                                                 ssubl2.  */
                                                              return 49;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx011000xxxxxxxxxx
                                                                 subhn.  */
                                                              return 56;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx011000xxxxxxxxxx
                                                                 subhn2.  */
                                                              return 57;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx000100xxxxxxxxxx
                                                                 saddw.  */
                                                              return 46;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx000100xxxxxxxxxx
                                                                 saddw2.  */
                                                              return 47;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx010100xxxxxxxxxx
                                                                 sabal.  */
                                                              return 54;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx010100xxxxxxxxxx
                                                                 sabal2.  */
                                                              return 55;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx001100xxxxxxxxxx
                                                                 ssubw.  */
                                                              return 50;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx001100xxxxxxxxxx
                                                                 ssubw2.  */
                                                              return 51;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 00001110xx1xxxxx011100xxxxxxxxxx
                                                                 sabdl.  */
                                                              return 58;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx011100xxxxxxxxxx
                                                                 sabdl2.  */
                                                              return 59;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx000010xxxxxxxxxx
                                                             rev64.  */
                                                          return 162;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x0xx0010010xxxxxxxxxx
                                                                     cls.  */
                                                                  return 166;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x1xx0010010xxxxxxxxxx
                                                                     aese.  */
                                                                  return 671;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00001110xx1xxxx1010010xxxxxxxxxx
                                                                     sqxtn.  */
                                                                  return 176;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01001110xx1xxxx1010010xxxxxxxxxx
                                                                     sqxtn2.  */
                                                                  return 177;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx1xxxx0001010xxxxxxxxxx
                                                                 saddlp.  */
                                                              return 164;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00001110xx1xxxx1001010xxxxxxxxxx
                                                                     xtn.  */
                                                                  return 174;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01001110xx1xxxx1001010xxxxxxxxxx
                                                                     xtn2.  */
                                                                  return 175;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x0xx0011010xxxxxxxxxx
                                                                     sadalp.  */
                                                                  return 168;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x1xx0011010xxxxxxxxxx
                                                                     aesmc.  */
                                                                  return 673;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000011100x1xxxx1011010xxxxxxxxxx
                                                                         fcvtn.  */
                                                                      return 178;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         010011100x1xxxx1011010xxxxxxxxxx
                                                                         fcvtn2.  */
                                                                      return 179;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         000011101x1xxxx1011010xxxxxxxxxx
                                                                         bfcvtn.  */
                                                                      return 3076;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         010011101x1xxxx1011010xxxxxxxxxx
                                                                         bfcvtn2.  */
                                                                      return 3077;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx000110xxxxxxxxxx
                                                             rev16.  */
                                                          return 163;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx1x0xxx010110xxxxxxxxxx
                                                                 cnt.  */
                                                              return 167;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx1x1xxx010110xxxxxxxxxx
                                                                 aesd.  */
                                                              return 672;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx10xxxx001110xxxxxxxxxx
                                                                 suqadd.  */
                                                              return 165;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx11xxxx001110xxxxxxxxxx
                                                                 saddlv.  */
                                                              return 29;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x0xx0011110xxxxxxxxxx
                                                                     sqabs.  */
                                                                  return 169;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110xx1x1xx0011110xxxxxxxxxx
                                                                     aesimc.  */
                                                                  return 674;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 30) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     00001110xx1xxxx1011110xxxxxxxxxx
                                                                     fcvtl.  */
                                                                  return 180;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     01001110xx1xxxx1011110xxxxxxxxxx
                                                                     fcvtl2.  */
                                                                  return 181;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 11) & 0x1) == 0)
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx000001xxxxxxxxxx
                                                             shadd.  */
                                                          return 268;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx010001xxxxxxxxxx
                                                             sshl.  */
                                                          return 275;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx001001xxxxxxxxxx
                                                             shsub.  */
                                                          return 271;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx011001xxxxxxxxxx
                                                             smax.  */
                                                          return 279;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx000101xxxxxxxxxx
                                                             srhadd.  */
                                                          return 270;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx010101xxxxxxxxxx
                                                             srshl.  */
                                                          return 277;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx001101xxxxxxxxxx
                                                             cmgt.  */
                                                          return 273;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx011101xxxxxxxxxx
                                                             sabd.  */
                                                          return 281;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 12) & 0x1) == 0)
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx000011xxxxxxxxxx
                                                             sqadd.  */
                                                          return 269;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx010011xxxxxxxxxx
                                                             sqshl.  */
                                                          return 276;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx001011xxxxxxxxxx
                                                             sqsub.  */
                                                          return 272;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx011011xxxxxxxxxx
                                                             smin.  */
                                                          return 280;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 13) & 0x1) == 0)
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110001xxxxx000111xxxxxxxxxx
                                                                     and.  */
                                                                  return 305;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110101xxxxx000111xxxxxxxxxx
                                                                     orr.  */
                                                                  return 317;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110011xxxxx000111xxxxxxxxxx
                                                                     bic.  */
                                                                  return 306;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x001110111xxxxx000111xxxxxxxxxx
                                                                     orn.  */
                                                                  return 319;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx010111xxxxxxxxxx
                                                             sqrshl.  */
                                                          return 278;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 14) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx001111xxxxxxxxxx
                                                             cmge.  */
                                                          return 274;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx011111xxxxxxxxxx
                                                             saba.  */
                                                          return 282;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         1x001110xx1xxxxx0xxxxxxxxxxxxxxx
                                         bcax.  */
                                      return 2994;
                                    }
                                }
                              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 >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx000000xxxxxxxxxx
                                                             uaddl.  */
                                                          return 76;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx000000xxxxxxxxxx
                                                             uaddl2.  */
                                                          return 77;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx010000xxxxxxxxxx
                                                             raddhn.  */
                                                          return 84;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx010000xxxxxxxxxx
                                                             raddhn2.  */
                                                          return 85;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx001000xxxxxxxxxx
                                                             usubl.  */
                                                          return 80;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx001000xxxxxxxxxx
                                                             usubl2.  */
                                                          return 81;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx011000xxxxxxxxxx
                                                             rsubhn.  */
                                                          return 88;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx011000xxxxxxxxxx
                                                             rsubhn2.  */
                                                          return 89;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx000100xxxxxxxxxx
                                                             uaddw.  */
                                                          return 78;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx000100xxxxxxxxxx
                                                             uaddw2.  */
                                                          return 79;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx010100xxxxxxxxxx
                                                             uabal.  */
                                                          return 86;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx010100xxxxxxxxxx
                                                             uabal2.  */
                                                          return 87;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx001100xxxxxxxxxx
                                                             usubw.  */
                                                          return 82;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx001100xxxxxxxxxx
                                                             usubw2.  */
                                                          return 83;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx011100xxxxxxxxxx
                                                             uabdl.  */
                                                          return 90;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx011100xxxxxxxxxx
                                                             uabdl2.  */
                                                          return 91;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000010xxxxxxxxxx
                                                         rev32.  */
                                                      return 213;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0010010xxxxxxxxxx
                                                             clz.  */
                                                          return 216;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1010010xxxxxxxxxx
                                                                 uqxtn.  */
                                                              return 226;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1010010xxxxxxxxxx
                                                                 uqxtn2.  */
                                                              return 227;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0001010xxxxxxxxxx
                                                             uaddlp.  */
                                                          return 214;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1001010xxxxxxxxxx
                                                                 sqxtun.  */
                                                              return 222;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1001010xxxxxxxxxx
                                                                 sqxtun2.  */
                                                              return 223;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0011010xxxxxxxxxx
                                                             uadalp.  */
                                                          return 217;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtxn.  */
                                                              return 228;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1011010xxxxxxxxxx
                                                                 fcvtxn2.  */
                                                              return 229;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110x01xxxxx0x0110xxxxxxxxxx
                                                         not.  */
                                                      return 242;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110x11xxxxx0x0110xxxxxxxxxx
                                                         rbit.  */
                                                      return 244;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx10xxx0001110xxxxxxxxxx
                                                                 usqadd.  */
                                                              return 215;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx11xxx0001110xxxxxxxxxx
                                                                 uaddlv.  */
                                                              return 33;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x0101110xx1xxxx1001110xxxxxxxxxx
                                                                 shll.  */
                                                              return 224;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x1101110xx1xxxx1001110xxxxxxxxxx
                                                                 shll2.  */
                                                              return 225;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0011110xxxxxxxxxx
                                                             sqneg.  */
                                                          return 218;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 22) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x0101110001xxxx1011110xxxxxxxxxx
                                                                         f1cvtl.  */
                                                                      return 3337;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1101110001xxxx1011110xxxxxxxxxx
                                                                         f1cvtl2.  */
                                                                      return 3338;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x0101110101xxxx1011110xxxxxxxxxx
                                                                         bf1cvtl.  */
                                                                      return 3333;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1101110101xxxx1011110xxxxxxxxxx
                                                                         bf1cvtl2.  */
                                                                      return 3334;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x0101110011xxxx1011110xxxxxxxxxx
                                                                         f2cvtl.  */
                                                                      return 3339;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1101110011xxxx1011110xxxxxxxxxx
                                                                         f2cvtl2.  */
                                                                      return 3340;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 30) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x0101110111xxxx1011110xxxxxxxxxx
                                                                         bf2cvtl.  */
                                                                      return 3335;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         x1101110111xxxx1011110xxxxxxxxxx
                                                                         bf2cvtl2.  */
                                                                      return 3336;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000001xxxxxxxxxx
                                                         uhadd.  */
                                                      return 320;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010001xxxxxxxxxx
                                                         ushl.  */
                                                      return 327;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001001xxxxxxxxxx
                                                         uhsub.  */
                                                      return 323;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011001xxxxxxxxxx
                                                         umax.  */
                                                      return 331;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000101xxxxxxxxxx
                                                         urhadd.  */
                                                      return 322;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010101xxxxxxxxxx
                                                         urshl.  */
                                                      return 329;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001101xxxxxxxxxx
                                                         cmhi.  */
                                                      return 325;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011101xxxxxxxxxx
                                                         uabd.  */
                                                      return 333;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx000011xxxxxxxxxx
                                                         uqadd.  */
                                                      return 321;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010011xxxxxxxxxx
                                                         uqshl.  */
                                                      return 328;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001011xxxxxxxxxx
                                                         uqsub.  */
                                                      return 324;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011011xxxxxxxxxx
                                                         umin.  */
                                                      return 332;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      if (((word >> 22) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110001xxxxx000111xxxxxxxxxx
                                                                 eor.  */
                                                              return 356;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110101xxxxx000111xxxxxxxxxx
                                                                 bit.  */
                                                              return 368;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110011xxxxx000111xxxxxxxxxx
                                                                 bsl.  */
                                                              return 357;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110111xxxxx000111xxxxxxxxxx
                                                                 bif.  */
                                                              return 369;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx010111xxxxxxxxxx
                                                         uqrshl.  */
                                                      return 330;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx001111xxxxxxxxxx
                                                         cmhs.  */
                                                      return 326;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx011111xxxxxxxxxx
                                                         uaba.  */
                                                      return 334;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          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 >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx100000xxxxxxxxxx
                                                             smlal.  */
                                                          return 60;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx100000xxxxxxxxxx
                                                                 smlal2.  */
                                                              return 61;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 11001110xx1xxxxx100000xxxxxxxxxx
                                                                 sha512h.  */
                                                              return 2987;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx100000xxxxxxxxxx
                                                             umlal.  */
                                                          return 92;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx100000xxxxxxxxxx
                                                             umlal2.  */
                                                          return 93;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx110000xxxxxxxxxx
                                                             smull.  */
                                                          return 68;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 01001110xx1xxxxx110000xxxxxxxxxx
                                                                 smull2.  */
                                                              return 69;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 11001110xx1xxxxx110000xxxxxxxxxx
                                                                 sm3partw1.  */
                                                              return 3000;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx110000xxxxxxxxxx
                                                             umull.  */
                                                          return 96;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx110000xxxxxxxxxx
                                                             umull2.  */
                                                          return 97;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0001110xx1xxxxx101000xxxxxxxxxx
                                                             smlsl.  */
                                                          return 64;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1001110xx1xxxxx101000xxxxxxxxxx
                                                             smlsl2.  */
                                                          return 65;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0101110xx1xxxxx101000xxxxxxxxxx
                                                             umlsl.  */
                                                          return 94;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1101110xx1xxxxx101000xxxxxxxxxx
                                                             umlsl2.  */
                                                          return 95;
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 22) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x01110x01xxxxx111000xxxxxxxxxx
                                                             pmull.  */
                                                          return 72;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x01110x01xxxxx111000xxxxxxxxxx
                                                             pmull2.  */
                                                          return 74;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0x01110x11xxxxx111000xxxxxxxxxx
                                                             pmull.  */
                                                          return 73;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1x01110x11xxxxx111000xxxxxxxxxx
                                                             pmull2.  */
                                                          return 75;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x01110xx1xxxxx100100xxxxxxxxxx
                                                         sqdmlal.  */
                                                      return 62;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x01110xx1xxxxx100100xxxxxxxxxx
                                                         sqdmlal2.  */
                                                      return 63;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x01110xx1xxxxx110100xxxxxxxxxx
                                                         sqdmull.  */
                                                      return 70;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x01110xx1xxxxx110100xxxxxxxxxx
                                                         sqdmull2.  */
                                                      return 71;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0x01110xx1xxxxx1x1100xxxxxxxxxx
                                                     sqdmlsl.  */
                                                  return 66;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x01110xx1xxxxx1x1100xxxxxxxxxx
                                                     sqdmlsl2.  */
                                                  return 67;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 31) & 0x1) == 0)
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x001110xx1xxxx0100010xxxxxxxxxx
                                                                 cmgt.  */
                                                              return 170;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011100x1x0xx1100010xxxxxxxxxx
                                                                         frintn.  */
                                                                      return 182;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011101x1x0xx1100010xxxxxxxxxx
                                                                         frintp.  */
                                                                      return 202;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 23) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011100x1x1xx1100010xxxxxxxxxx
                                                                         frintn.  */
                                                                      return 183;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011101x1x1xx1100010xxxxxxxxxx
                                                                         frintp.  */
                                                                      return 203;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             1x001110xx1xxxxx100010xxxxxxxxxx
                                                             sha512su1.  */
                                                          return 2990;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0100010xxxxxxxxxx
                                                             cmge.  */
                                                          return 219;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x0xx1100010xxxxxxxxxx
                                                                 frinta.  */
                                                              return 230;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx1100010xxxxxxxxxx
                                                                 frinta.  */
                                                              return 231;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              if (((word >> 16) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     0x0011100x1xxxx0110010xxxxxxxxxx
                                                                     fmaxnmv.  */
                                                                  return 37;
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 19) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011100x1x0xx1110010xxxxxxxxxx
                                                                         fcvtas.  */
                                                                      return 190;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         0x0011100x1x1xx1110010xxxxxxxxxx
                                                                         fcvtas.  */
                                                                      return 191;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x0011100x1xxxxx110010xxxxxxxxxx
                                                                 sm4ekey.  */
                                                              return 3003;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1011100x1xxxx0110010xxxxxxxxxx
                                                                 fmaxnmv.  */
                                                              return 36;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1110010xxxxxxxxxx
                                                                     fcvtau.  */
                                                                  return 238;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1110010xxxxxxxxxx
                                                                     fcvtau.  */
                                                                  return 239;
                                                                }
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x100xx0110010xxxxxxxxxx
                                                                         fcmgt.  */
                                                                      return 194;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x100xx0110010xxxxxxxxxx
                                                                         fcmge.  */
                                                                      return 245;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x110xx0110010xxxxxxxxxx
                                                                         fminnmv.  */
                                                                      return 41;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x110xx0110010xxxxxxxxxx
                                                                         fminnmv.  */
                                                                      return 40;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx0110010xxxxxxxxxx
                                                                     fcmgt.  */
                                                                  return 195;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx0110010xxxxxxxxxx
                                                                     fcmge.  */
                                                                  return 246;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0011101x1xxxx1110010xxxxxxxxxx
                                                                 urecpe.  */
                                                              return 210;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1011101x1xxxx1110010xxxxxxxxxx
                                                                 ursqrte.  */
                                                              return 257;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 20) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx10xxx0101010xxxxxxxxxx
                                                             cmlt.  */
                                                          return 172;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx11xxx0101010xxxxxxxxxx
                                                                 smaxv.  */
                                                              return 30;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx11xxx0101010xxxxxxxxxx
                                                                 umaxv.  */
                                                              return 34;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011100x100xx1101010xxxxxxxxxx
                                                                         fcvtns.  */
                                                                      return 186;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x100xx1101010xxxxxxxxxx
                                                                         fcvtnu.  */
                                                                      return 234;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x100xx1101010xxxxxxxxxx
                                                                         fcvtps.  */
                                                                      return 206;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x100xx1101010xxxxxxxxxx
                                                                         fcvtpu.  */
                                                                      return 253;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx001110xx110xx1101010xxxxxxxxxx
                                                                     sminv.  */
                                                                  return 31;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx101110xx110xx1101010xxxxxxxxxx
                                                                     uminv.  */
                                                                  return 35;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 187;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 235;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 207;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 254;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x0xx0111010xxxxxxxxxx
                                                             fcmlt.  */
                                                          return 198;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx0111010xxxxxxxxxx
                                                             fcmlt.  */
                                                          return 199;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx1111010xxxxxxxxxx
                                                             frint32z.  */
                                                          return 158;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx1111010xxxxxxxxxx
                                                             frint32x.  */
                                                          return 159;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx0100110xxxxxxxxxx
                                                             cmeq.  */
                                                          return 171;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0100110xxxxxxxxxx
                                                             cmle.  */
                                                          return 220;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1100110xxxxxxxxxx
                                                                     frintm.  */
                                                                  return 184;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1100110xxxxxxxxxx
                                                                     frintx.  */
                                                                  return 232;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x0xx1100110xxxxxxxxxx
                                                                     frintz.  */
                                                                  return 204;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x0xx1100110xxxxxxxxxx
                                                                     frinti.  */
                                                                  return 251;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1100110xxxxxxxxxx
                                                                     frintm.  */
                                                                  return 185;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1100110xxxxxxxxxx
                                                                     frintx.  */
                                                                  return 233;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1100110xxxxxxxxxx
                                                                     frintz.  */
                                                                  return 205;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1100110xxxxxxxxxx
                                                                     frinti.  */
                                                                  return 252;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x0xx0110110xxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 196;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x0xx0110110xxxxxxxxxx
                                                                 fcmle.  */
                                                              return 247;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 197;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmle.  */
                                                              return 248;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 192;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 240;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x0xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 211;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x0xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 258;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 193;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 241;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 212;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 259;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx001110xx1xxxx0101110xxxxxxxxxx
                                                             abs.  */
                                                          return 173;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx101110xx1xxxx0101110xxxxxxxxxx
                                                             neg.  */
                                                          return 221;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011100x100xx1101110xxxxxxxxxx
                                                                         fcvtms.  */
                                                                      return 188;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x100xx1101110xxxxxxxxxx
                                                                         fcvtmu.  */
                                                                      return 236;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x100xx1101110xxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 208;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x100xx1101110xxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 255;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx01110xx110xx1101110xxxxxxxxxx
                                                                 addv.  */
                                                              return 32;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtms.  */
                                                                  return 189;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtmu.  */
                                                                  return 237;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 209;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 256;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx001110xx100xx0111110xxxxxxxxxx
                                                                     fabs.  */
                                                                  return 200;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx101110xx100xx0111110xxxxxxxxxx
                                                                     fneg.  */
                                                                  return 249;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011100x110xx0111110xxxxxxxxxx
                                                                         fmaxv.  */
                                                                      return 39;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011100x110xx0111110xxxxxxxxxx
                                                                         fmaxv.  */
                                                                      return 38;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0011101x110xx0111110xxxxxxxxxx
                                                                         fminv.  */
                                                                      return 43;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1011101x110xx0111110xxxxxxxxxx
                                                                         fminv.  */
                                                                      return 42;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx001110xx1x1xx0111110xxxxxxxxxx
                                                                 fabs.  */
                                                              return 201;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx101110xx1x1xx0111110xxxxxxxxxx
                                                                 fneg.  */
                                                              return 250;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0011100x1x0xx1111110xxxxxxxxxx
                                                                     frint64z.  */
                                                                  return 160;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1011100x1x0xx1111110xxxxxxxxxx
                                                                     frint64x.  */
                                                                  return 161;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx011101x1x0xx1111110xxxxxxxxxx
                                                                 fsqrt.  */
                                                              return 260;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx01110xx1x1xx1111110xxxxxxxxxx
                                                             fsqrt.  */
                                                          return 261;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 31) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx100001xxxxxxxxxx
                                                             add.  */
                                                          return 283;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             1x001110xx1xxxxx100001xxxxxxxxxx
                                                             sha512h2.  */
                                                          return 2988;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100001xxxxxxxxxx
                                                         sub.  */
                                                      return 335;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 31) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 0x0011100x1xxxxx110001xxxxxxxxxx
                                                                 fmaxnm.  */
                                                              return 291;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 1x0011100x1xxxxx110001xxxxxxxxxx
                                                                 sm3partw2.  */
                                                              return 3001;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx110001xxxxxxxxxx
                                                             fmaxnmp.  */
                                                          return 342;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110001xxxxxxxxxx
                                                             fminnm.  */
                                                          return 307;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx110001xxxxxxxxxx
                                                             fminnmp.  */
                                                          return 358;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101001xxxxxxxxxx
                                                         smaxp.  */
                                                      return 287;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101001xxxxxxxxxx
                                                         umaxp.  */
                                                      return 339;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111001xxxxxxxxxx
                                                             fcmeq.  */
                                                          return 299;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111001xxxxxxxxxx
                                                             fcmge.  */
                                                          return 348;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx011101x1xxxxx111001xxxxxxxxxx
                                                         fcmgt.  */
                                                      return 362;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100101xxxxxxxxxx
                                                         mla.  */
                                                      return 285;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100101xxxxxxxxxx
                                                         mls.  */
                                                      return 337;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx110101xxxxxxxxxx
                                                             fadd.  */
                                                          return 295;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx110101xxxxxxxxxx
                                                             faddp.  */
                                                          return 344;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110101xxxxxxxxxx
                                                             fsub.  */
                                                          return 311;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx110101xxxxxxxxxx
                                                             fabd.  */
                                                          return 360;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101101xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 289;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101101xxxxxxxxxx
                                                         sqrdmulh.  */
                                                      return 341;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111101xxxxxxxxxx
                                                             fmax.  */
                                                          return 301;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111101xxxxxxxxxx
                                                             fmaxp.  */
                                                          return 352;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx111101xxxxxxxxxx
                                                             fmin.  */
                                                          return 313;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx111101xxxxxxxxxx
                                                             fminp.  */
                                                          return 366;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 31) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             0x001110xx1xxxxx100011xxxxxxxxxx
                                                             cmtst.  */
                                                          return 284;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             1x001110xx1xxxxx100011xxxxxxxxxx
                                                             rax1.  */
                                                          return 2992;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100011xxxxxxxxxx
                                                         cmeq.  */
                                                      return 336;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx110011xxxxxxxxxx
                                                             fmla.  */
                                                          return 293;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x01011100x1xxxxx110011xxxxxxxxxx
                                                                 fmlal2.  */
                                                              return 3006;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x11011100x1xxxxx110011xxxxxxxxxx
                                                                 fmlal2.  */
                                                              return 3010;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110011xxxxxxxxxx
                                                             fmls.  */
                                                          return 309;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x01011101x1xxxxx110011xxxxxxxxxx
                                                                 fmlsl2.  */
                                                              return 3007;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x11011101x1xxxxx110011xxxxxxxxxx
                                                                 fmlsl2.  */
                                                              return 3011;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx101011xxxxxxxxxx
                                                         sminp.  */
                                                      return 288;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx101011xxxxxxxxxx
                                                         uminp.  */
                                                      return 340;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x00011100x1xxxxx111011xxxxxxxxxx
                                                                 fmlal.  */
                                                              return 3004;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10011100x1xxxxx111011xxxxxxxxxx
                                                                 fmlal.  */
                                                              return 3008;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111011xxxxxxxxxx
                                                             facge.  */
                                                          return 350;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          if (((word >> 30) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x00011101x1xxxxx111011xxxxxxxxxx
                                                                 fmlsl.  */
                                                              return 3005;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 x10011101x1xxxxx111011xxxxxxxxxx
                                                                 fmlsl.  */
                                                              return 3009;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx111011xxxxxxxxxx
                                                             facgt.  */
                                                          return 364;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx001110xx1xxxxx100111xxxxxxxxxx
                                                         mul.  */
                                                      return 286;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx101110xx1xxxxx100111xxxxxxxxxx
                                                         pmul.  */
                                                      return 338;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx110111xxxxxxxxxx
                                                             fmulx.  */
                                                          return 297;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx110111xxxxxxxxxx
                                                             fmul.  */
                                                          return 346;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx110111xxxxxxxxxx
                                                             famax.  */
                                                          return 1207;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx110111xxxxxxxxxx
                                                             famin.  */
                                                          return 1209;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx01110xx1xxxxx101111xxxxxxxxxx
                                                     addp.  */
                                                  return 290;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011100x1xxxxx111111xxxxxxxxxx
                                                             frecps.  */
                                                          return 303;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011100x1xxxxx111111xxxxxxxxxx
                                                             fdiv.  */
                                                          return 354;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx0011101x1xxxxx111111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 315;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx1011101x1xxxxx111111xxxxxxxxxx
                                                             fscale.  */
                                                          return 3345;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 10) & 0x1) == 0)
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 16) & 0x1) == 0)
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx100000x00000xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 768;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx110000x00000xxxxxxxxxx
                                                                     fcvtms.  */
                                                                  return 788;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx101000x00000xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 784;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx111000x00000xxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 792;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx100x00000xxxxxxxxxx
                                                             fcvtas.  */
                                                          return 776;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx010x00000xxxxxxxxxx
                                                             scvtf.  */
                                                          return 772;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1x0110x00000xxxxxxxxxx
                                                                 fmov.  */
                                                              return 780;
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx101110x00000xxxxxxxxxx
                                                                     fmov.  */
                                                                  return 796;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx111110x00000xxxxxxxxxx
                                                                     fjcvtzs.  */
                                                                  return 798;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 17) & 0x1) == 0)
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx100001x00000xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 770;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx110001x00000xxxxxxxxxx
                                                                     fcvtmu.  */
                                                                  return 790;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 20) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx101001x00000xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 786;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx111001x00000xxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 794;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx101x00000xxxxxxxxxx
                                                             fcvtau.  */
                                                          return 778;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 18) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx011x00000xxxxxxxxxx
                                                             ucvtf.  */
                                                          return 774;
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 19) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1x0111x00000xxxxxxxxxx
                                                                 fmov.  */
                                                              return 782;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1x1111x00000xxxxxxxxxx
                                                                 fmov.  */
                                                              return 797;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 17) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0000010000xxxxxxxxxx
                                                                     fmov.  */
                                                                  return 817;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x1000010000xxxxxxxxxx
                                                                     frint32z.  */
                                                                  return 813;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx100010000xxxxxxxxxx
                                                                 frintn.  */
                                                              return 826;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0001010000xxxxxxxxxx
                                                                     fneg.  */
                                                                  return 821;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x1001010000xxxxxxxxxx
                                                                     frint64z.  */
                                                                  return 815;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx101010000xxxxxxxxxx
                                                                 frintm.  */
                                                              return 830;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 16) & 0x1) == 0)
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0000110000xxxxxxxxxx
                                                                     fabs.  */
                                                                  return 819;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x1000110000xxxxxxxxxx
                                                                     frint32x.  */
                                                                  return 814;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx100110000xxxxxxxxxx
                                                                 frintp.  */
                                                              return 828;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 18) & 0x1) == 0)
                                                            {
                                                              if (((word >> 19) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x0001110000xxxxxxxxxx
                                                                     fsqrt.  */
                                                                  return 823;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xxx11110xx1x1001110000xxxxxxxxxx
                                                                     frint64x.  */
                                                                  return 816;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx101110000xxxxxxxxxx
                                                                 frintz.  */
                                                              return 832;
                                                            }
                                                        }
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 18) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1xx01xx10000xxxxxxxxxx
                                                         fcvt.  */
                                                      return 825;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 15) & 0x1) == 0)
                                                        {
                                                          if (((word >> 16) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx110010000xxxxxxxxxx
                                                                 frinta.  */
                                                              return 834;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx1xx111010000xxxxxxxxxx
                                                                 frintx.  */
                                                              return 836;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1xx11x110000xxxxxxxxxx
                                                             frinti.  */
                                                          return 838;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 3) & 0x1) == 0)
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxxxx1000xxxxx00xxx
                                                     fcmp.  */
                                                  return 803;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxxxx1000xxxxx10xxx
                                                     fcmpe.  */
                                                  return 805;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 4) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxxxx1000xxxxx01xxx
                                                     fcmp.  */
                                                  return 807;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxxxx1000xxxxx11xxx
                                                     fcmpe.  */
                                                  return 809;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0x11110xx1xxxxxxxx100xxxxxxxxxx
                                             fmov.  */
                                          return 866;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x11110xx1xxxxxx00100xxxxxxxxxx
                                                     sqdmlal.  */
                                                  return 422;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1x11110xx1xxxxxx10100xxxxxxxxxx
                                                     sqdmull.  */
                                                  return 424;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x11110xx1xxxxxxx1100xxxxxxxxxx
                                                 sqdmlsl.  */
                                              return 423;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11110xx1xxxxx000010xxxxxxxxxx
                                                         fmul.  */
                                                      return 840;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11110xx1xxxxx000010xxxxxxxxxx
                                                         sha1h.  */
                                                      return 675;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx100010xxxxxxxxxx
                                                             fnmul.  */
                                                          return 856;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx100010xxxxxxxxxx
                                                             cmgt.  */
                                                          return 482;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx100010xxxxxxxxxx
                                                         cmge.  */
                                                      return 511;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx010010xxxxxxxxxx
                                                             fmax.  */
                                                          return 848;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx010010xxxxxxxxxx
                                                             sqxtn.  */
                                                          return 486;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx010010xxxxxxxxxx
                                                         uqxtn.  */
                                                      return 515;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx011110xx100xx0110010xxxxxxxxxx
                                                                     fcmgt.  */
                                                                  return 495;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx111110xx100xx0110010xxxxxxxxxx
                                                                     fcmge.  */
                                                                  return 525;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmp.  */
                                                                      return 539;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x110xx0110010xxxxxxxxxx
                                                                         fmaxnmp.  */
                                                                      return 538;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111101x110xx0110010xxxxxxxxxx
                                                                         fminnmp.  */
                                                                      return 545;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x110xx0110010xxxxxxxxxx
                                                                         fminnmp.  */
                                                                      return 544;
                                                                    }
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmgt.  */
                                                              return 496;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx0110010xxxxxxxxxx
                                                                 fcmge.  */
                                                              return 526;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x0xx1110010xxxxxxxxxx
                                                                 fcvtas.  */
                                                              return 491;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x0xx1110010xxxxxxxxxx
                                                                 fcvtau.  */
                                                              return 521;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtas.  */
                                                              return 492;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx1110010xxxxxxxxxx
                                                                 fcvtau.  */
                                                              return 522;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx001010xxxxxxxxxx
                                                             fadd.  */
                                                          return 844;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx001010xxxxxxxxxx
                                                             sha256su0.  */
                                                          return 677;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx001010xxxxxxxxxx
                                                         sqxtun.  */
                                                      return 514;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1xxxx0101010xxxxxxxxxx
                                                         cmlt.  */
                                                      return 484;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x0xx1101010xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 487;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x0xx1101010xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 517;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x0xx1101010xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 501;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x0xx1101010xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 529;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtns.  */
                                                                  return 488;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1101010xxxxxxxxxx
                                                                     fcvtnu.  */
                                                                  return 518;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtps.  */
                                                                  return 502;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1101010xxxxxxxxxx
                                                                     fcvtpu.  */
                                                                  return 530;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx011110xx1xxxxx011010xxxxxxxxxx
                                                         fmaxnm.  */
                                                      return 852;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx011010xxxxxxxxxx
                                                         fcvtxn.  */
                                                      return 516;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 19) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1x0xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 499;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xxx11110xx1x1xxx111010xxxxxxxxxx
                                                         fcmlt.  */
                                                      return 500;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 30) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x0x11110xx1xxxxx000110xxxxxxxxxx
                                                         fdiv.  */
                                                      return 842;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1x11110xx1xxxxx000110xxxxxxxxxx
                                                         sha1su1.  */
                                                      return 676;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx011110xx1xxxxx100110xxxxxxxxxx
                                                         cmeq.  */
                                                      return 483;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx100110xxxxxxxxxx
                                                         cmle.  */
                                                      return 512;
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xxx11110xx1xxxxx010110xxxxxxxxxx
                                                     fmin.  */
                                                  return 850;
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx011110xx100xx0110110xxxxxxxxxx
                                                                     fcmeq.  */
                                                                  return 497;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx111110xx100xx0110110xxxxxxxxxx
                                                                     fcmle.  */
                                                                  return 527;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx011110xx110xx0110110xxxxxxxxxx
                                                                     faddp.  */
                                                                  return 541;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx111110xx110xx0110110xxxxxxxxxx
                                                                     faddp.  */
                                                                  return 540;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx011110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmeq.  */
                                                              return 498;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx111110xx1x1xx0110110xxxxxxxxxx
                                                                 fcmle.  */
                                                              return 528;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x0xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 493;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x0xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 523;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x0xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 505;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x0xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 533;
                                                                }
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1110110xxxxxxxxxx
                                                                     scvtf.  */
                                                                  return 494;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1110110xxxxxxxxxx
                                                                     ucvtf.  */
                                                                  return 524;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1110110xxxxxxxxxx
                                                                     frecpe.  */
                                                                  return 506;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1110110xxxxxxxxxx
                                                                     frsqrte.  */
                                                                  return 534;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx001110xxxxxxxxxx
                                                             fsub.  */
                                                          return 846;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx001110xxxxxxxxxx
                                                             suqadd.  */
                                                          return 480;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx001110xxxxxxxxxx
                                                         usqadd.  */
                                                      return 509;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 29) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx011110xx1xxxx0101110xxxxxxxxxx
                                                             abs.  */
                                                          return 485;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xx111110xx1xxxx0101110xxxxxxxxxx
                                                             neg.  */
                                                          return 513;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          if (((word >> 20) & 0x1) == 0)
                                                            {
                                                              if (((word >> 23) & 0x1) == 0)
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111100x100xx1101110xxxxxxxxxx
                                                                         fcvtms.  */
                                                                      return 489;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111100x100xx1101110xxxxxxxxxx
                                                                         fcvtmu.  */
                                                                      return 519;
                                                                    }
                                                                }
                                                              else
                                                                {
                                                                  if (((word >> 29) & 0x1) == 0)
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx0111101x100xx1101110xxxxxxxxxx
                                                                         fcvtzs.  */
                                                                      return 503;
                                                                    }
                                                                  else
                                                                    {
                                                                      /* 33222222222211111111110000000000
                                                                         10987654321098765432109876543210
                                                                         xx1111101x100xx1101110xxxxxxxxxx
                                                                         fcvtzu.  */
                                                                      return 531;
                                                                    }
                                                                }
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xxx11110xx110xx1101110xxxxxxxxxx
                                                                 addp.  */
                                                              return 537;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 23) & 0x1) == 0)
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtms.  */
                                                                  return 490;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111100x1x1xx1101110xxxxxxxxxx
                                                                     fcvtmu.  */
                                                                  return 520;
                                                                }
                                                            }
                                                          else
                                                            {
                                                              if (((word >> 29) & 0x1) == 0)
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx0111101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzs.  */
                                                                  return 504;
                                                                }
                                                              else
                                                                {
                                                                  /* 33222222222211111111110000000000
                                                                     10987654321098765432109876543210
                                                                     xx1111101x1x1xx1101110xxxxxxxxxx
                                                                     fcvtzu.  */
                                                                  return 532;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  if (((word >> 29) & 0x1) == 0)
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x0011110xx1xxxxx011110xxxxxxxxxx
                                                             fminnm.  */
                                                          return 854;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx011110xxxxxxxxxx
                                                             sqabs.  */
                                                          return 481;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx011110xxxxxxxxxx
                                                         sqneg.  */
                                                      return 510;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 16) & 0x1) == 0)
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0111100x1xxxx0111110xxxxxxxxxx
                                                                 fmaxp.  */
                                                              return 543;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1111100x1xxxx0111110xxxxxxxxxx
                                                                 fmaxp.  */
                                                              return 542;
                                                            }
                                                        }
                                                      else
                                                        {
                                                          if (((word >> 29) & 0x1) == 0)
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx0111101x1xxxx0111110xxxxxxxxxx
                                                                 fminp.  */
                                                              return 547;
                                                            }
                                                          else
                                                            {
                                                              /* 33222222222211111111110000000000
                                                                 10987654321098765432109876543210
                                                                 xx1111101x1xxxx0111110xxxxxxxxxx
                                                                 fminp.  */
                                                              return 546;
                                                            }
                                                        }
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 19) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1x0xx1111110xxxxxxxxxx
                                                             frecpx.  */
                                                          return 507;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             xxx11110xx1x1xx1111110xxxxxxxxxx
                                                             frecpx.  */
                                                          return 508;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          if (((word >> 4) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011110xx1xxxxxxxxx01xxxxx0xxxx
                                                 fccmp.  */
                                              return 799;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0011110xx1xxxxxxxxx01xxxxx1xxxx
                                                 fccmpe.  */
                                              return 801;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx00001xxxxxxxxxx
                                                         add.  */
                                                      return 565;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx10001xxxxxxxxxx
                                                         sshl.  */
                                                      return 563;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx1001xxxxxxxxxx
                                                     fcmeq.  */
                                                  return 555;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx0101xxxxxxxxxx
                                                     srshl.  */
                                                  return 564;
                                                }
                                              else
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx0x1101xxxxxxxxxx
                                                         cmgt.  */
                                                      return 561;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx1x1101xxxxxxxxxx
                                                         sqdmulh.  */
                                                      return 552;
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx00001xxxxxxxxxx
                                                     sub.  */
                                                  return 586;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx10001xxxxxxxxxx
                                                     ushl.  */
                                                  return 584;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1111100x1xxxxxxx1001xxxxxxxxxx
                                                     fcmge.  */
                                                  return 572;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1111101x1xxxxxxx1001xxxxxxxxxx
                                                     fcmgt.  */
                                                  return 578;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx0x0101xxxxxxxxxx
                                                     urshl.  */
                                                  return 585;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx1x0101xxxxxxxxxx
                                                     fabd.  */
                                                  return 576;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 15) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx0x1101xxxxxxxxxx
                                                     cmhi.  */
                                                  return 582;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxx1x1101xxxxxxxxxx
                                                     sqrdmulh.  */
                                                  return 571;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      if (((word >> 30) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x0011110xx1xxxxxxxxx11xxxxxxxxxx
                                             fcsel.  */
                                          return 868;
                                        }
                                      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 548;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x1011110xx1xxxxx100011xxxxxxxxxx
                                                             cmtst.  */
                                                          return 566;
                                                        }
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx10011xxxxxxxxxx
                                                         sqshl.  */
                                                      return 550;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011110xx1xxxxxxx1011xxxxxxxxxx
                                                     sqsub.  */
                                                  return 549;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 13) & 0x1) == 0)
                                                {
                                                  if (((word >> 15) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx0x0111xxxxxxxxxx
                                                         sqrshl.  */
                                                      return 551;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxx1x0111xxxxxxxxxx
                                                         fmulx.  */
                                                      return 553;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 14) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x1011110xx1xxxxxx01111xxxxxxxxxx
                                                         cmge.  */
                                                      return 562;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 23) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10111100x1xxxxxx11111xxxxxxxxxx
                                                             frecps.  */
                                                          return 557;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x10111101x1xxxxxx11111xxxxxxxxxx
                                                             frsqrts.  */
                                                          return 559;
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                  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 567;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx111110xx1xxxxx100011xxxxxxxxxx
                                                         cmeq.  */
                                                      return 587;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx10011xxxxxxxxxx
                                                     uqshl.  */
                                                  return 569;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx111110xx1xxxxxx01011xxxxxxxxxx
                                                     uqsub.  */
                                                  return 568;
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx1111100x1xxxxxx11011xxxxxxxxxx
                                                         facge.  */
                                                      return 574;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx1111101x1xxxxxx11011xxxxxxxxxx
                                                         facgt.  */
                                                      return 580;
                                                    }
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111110xx1xxxxxxx0111xxxxxxxxxx
                                                 uqrshl.  */
                                              return 570;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111110xx1xxxxxxx1111xxxxxxxxxx
                                                 cmhs.  */
                                              return 583;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
              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)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0000x0xxxxxxxxxx
                                                     fmlal.  */
                                                  return 3012;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0000x0xxxxxxxxxx
                                                     fmlal.  */
                                                  return 3016;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx0000x0xxxxxxxxxx
                                                 mla.  */
                                              return 119;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0100x0xxxxxxxxxx
                                                     fmlsl.  */
                                                  return 3013;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0100x0xxxxxxxxxx
                                                     fmlsl.  */
                                                  return 3017;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx0100x0xxxxxxxxxx
                                                 mls.  */
                                              return 122;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0010x0xxxxxxxxxx
                                                     smlal.  */
                                                  return 98;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0010x0xxxxxxxxxx
                                                     smlal2.  */
                                                  return 99;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx0010x0xxxxxxxxxx
                                                     umlal.  */
                                                  return 120;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx0010x0xxxxxxxxxx
                                                     umlal2.  */
                                                  return 121;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0110x0xxxxxxxxxx
                                                     smlsl.  */
                                                  return 102;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0110x0xxxxxxxxxx
                                                     smlsl2.  */
                                                  return 103;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx0110x0xxxxxxxxxx
                                                     umlsl.  */
                                                  return 123;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx0110x0xxxxxxxxxx
                                                     umlsl2.  */
                                                  return 124;
                                                }
                                            }
                                        }
                                    }
                                }
                              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 114;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx0001x0xxxxxxxxxx
                                                     fmla.  */
                                                  return 113;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011110xxxxxxx0101x0xxxxxxxxxx
                                                     fmls.  */
                                                  return 116;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx0101x0xxxxxxxxxx
                                                     fmls.  */
                                                  return 115;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0011x0xxxxxxxxxx
                                                     sqdmlal.  */
                                                  return 100;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0011x0xxxxxxxxxx
                                                     sqdmlal2.  */
                                                  return 101;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx0111x0xxxxxxxxxx
                                                     sqdmlsl.  */
                                                  return 104;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx0111x0xxxxxxxxxx
                                                     sqdmlsl2.  */
                                                  return 105;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx101111xxxxxxxx0xx1x0xxxxxxxxxx
                                         fcmla.  */
                                      return 131;
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001111xxxxxxxx0xx0x1xxxxxxxxxx
                                         movi.  */
                                      return 133;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx101111xxxxxxxx0xx0x1xxxxxxxxxx
                                         mvni.  */
                                      return 141;
                                    }
                                }
                              else
                                {
                                  if (((word >> 29) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx001111xxxxxxxx0xx1x1xxxxxxxxxx
                                         orr.  */
                                      return 134;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx101111xxxxxxxx0xx1x1xxxxxxxxxx
                                         bic.  */
                                      return 142;
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx0xxxxx0xxxxxxxxxxxxxxx
                                         fmadd.  */
                                      return 858;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx1xxxxx0xxxxxxxxxxxxxxx
                                         fnmadd.  */
                                      return 862;
                                    }
                                }
                              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 431;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111111xxxxxxx000xx0xxxxxxxxxx
                                                     fmla.  */
                                                  return 430;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 23) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111110xxxxxxx010xx0xxxxxxxxxx
                                                     fmls.  */
                                                  return 433;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x10111111xxxxxxx010xx0xxxxxxxxxx
                                                     fmls.  */
                                                  return 432;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 14) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx001xx0xxxxxxxxxx
                                                 sqdmlal.  */
                                              return 425;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx011xx0xxxxxxxxxx
                                                 sqdmlsl.  */
                                              return 426;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx0x00x1xxxxxxxxxx
                                                 sshr.  */
                                              return 590;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx0x10x1xxxxxxxxxx
                                                 srshr.  */
                                              return 592;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0001x1xxxxxxxxxx
                                                     ssra.  */
                                                  return 591;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0101x1xxxxxxxxxx
                                                     shl.  */
                                                  return 594;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0011x1xxxxxxxxxx
                                                     srsra.  */
                                                  return 593;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx0111x1xxxxxxxxxx
                                                     sqshl.  */
                                                  return 595;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 12) & 0x1) == 0)
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0000xxxxxxxxxxxx
                                             ushr.  */
                                          return 602;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0100xxxxxxxxxxxx
                                             sri.  */
                                          return 606;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0010xxxxxxxxxxxx
                                             urshr.  */
                                          return 604;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0110xxxxxxxxxxxx
                                             sqshlu.  */
                                          return 608;
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0001xxxxxxxxxxxx
                                             usra.  */
                                          return 603;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0101xxxxxxxxxxxx
                                             sli.  */
                                          return 607;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0011xxxxxxxxxxxx
                                             ursra.  */
                                          return 605;
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx0111xxxxxxxxxxxx
                                             uqshl.  */
                                          return 609;
                                        }
                                    }
                                }
                            }
                        }
                    }
                  else
                    {
                      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)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1000x0xxxxxxxxxx
                                                 mul.  */
                                              return 106;
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx1000x0xxxxxxxxxx
                                                     fmlal2.  */
                                                  return 3014;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx1000x0xxxxxxxxxx
                                                     fmlal2.  */
                                                  return 3018;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1100x0xxxxxxxxxx
                                                 sqdmulh.  */
                                              return 111;
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx1100x0xxxxxxxxxx
                                                     fmlsl2.  */
                                                  return 3015;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx1100x0xxxxxxxxxx
                                                     fmlsl2.  */
                                                  return 3019;
                                                }
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx1010x0xxxxxxxxxx
                                                     smull.  */
                                                  return 107;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx1010x0xxxxxxxxxx
                                                     smull2.  */
                                                  return 108;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx1010x0xxxxxxxxxx
                                                     umull.  */
                                                  return 125;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx1010x0xxxxxxxxxx
                                                     umull2.  */
                                                  return 126;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1110x0xxxxxxxxxx
                                                 sdot.  */
                                              return 2986;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx1110x0xxxxxxxxxx
                                                 udot.  */
                                              return 2985;
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 13) & 0x1) == 0)
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 23) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011110xxxxxxx1001x0xxxxxxxxxx
                                                     fmul.  */
                                                  return 118;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1011110xxxxxxx1001x0xxxxxxxxxx
                                                     fmulx.  */
                                                  return 128;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx0011111xxxxxxx1001x0xxxxxxxxxx
                                                     fmul.  */
                                                  return 117;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx1011111xxxxxxx1001x0xxxxxxxxxx
                                                     fmulx.  */
                                                  return 127;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1101x0xxxxxxxxxx
                                                 sqrdmulh.  */
                                              return 112;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx1101x0xxxxxxxxxx
                                                 sqrdmlah.  */
                                              return 129;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 14) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0x01111xxxxxxxx1011x0xxxxxxxxxx
                                                 sqdmull.  */
                                              return 109;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1x01111xxxxxxxx1011x0xxxxxxxxxx
                                                 sqdmull2.  */
                                              return 110;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 22) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx00111100xxxxxx1111x0xxxxxxxxxx
                                                         sudot.  */
                                                      return 3063;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx00111110xxxxxx1111x0xxxxxxxxxx
                                                         usdot.  */
                                                      return 3062;
                                                    }
                                                }
                                              else
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         xx00111101xxxxxx1111x0xxxxxxxxxx
                                                         bfdot.  */
                                                      return 3074;
                                                    }
                                                  else
                                                    {
                                                      if (((word >> 30) & 0x1) == 0)
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x000111111xxxxxx1111x0xxxxxxxxxx
                                                             bfmlalb.  */
                                                          return 3082;
                                                        }
                                                      else
                                                        {
                                                          /* 33222222222211111111110000000000
                                                             10987654321098765432109876543210
                                                             x100111111xxxxxx1111x0xxxxxxxxxx
                                                             bfmlalt.  */
                                                          return 3081;
                                                        }
                                                    }
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx1111x0xxxxxxxxxx
                                                 sqrdmlsh.  */
                                              return 130;
                                            }
                                        }
                                    }
                                }
                            }
                          else
                            {
                              if (((word >> 11) & 0x1) == 0)
                                {
                                  if (((word >> 14) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx10x001xxxxxxxxxx
                                                 movi.  */
                                              return 135;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx10x001xxxxxxxxxx
                                                 mvni.  */
                                              return 143;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx10x101xxxxxxxxxx
                                                 orr.  */
                                              return 136;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx10x101xxxxxxxxxx
                                                 bic.  */
                                              return 144;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx110x01xxxxxxxxxx
                                                 movi.  */
                                              return 137;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx110x01xxxxxxxxxx
                                                 mvni.  */
                                              return 145;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001111xxxxxxxx111001xxxxxxxxxx
                                                     movi.  */
                                                  return 138;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101111xxxxxxxx111001xxxxxxxxxx
                                                     movi.  */
                                                  return 146;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 29) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx001111xxxxxxxx111101xxxxxxxxxx
                                                     fmov.  */
                                                  return 139;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     xx101111xxxxxxxx111101xxxxxxxxxx
                                                     fmov.  */
                                                  return 148;
                                                }
                                            }
                                        }
                                    }
                                }
                              else
                                {
                                  if (((word >> 12) & 0x1) == 0)
                                    {
                                      if (((word >> 29) & 0x1) == 0)
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0001111xxxxxxxx1xx011xxxxxxxxxx
                                                 rshrn.  */
                                              return 382;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1001111xxxxxxxx1xx011xxxxxxxxxx
                                                 rshrn2.  */
                                              return 383;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 30) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x0101111xxxxxxxx1xx011xxxxxxxxxx
                                                 sqrshrun.  */
                                              return 406;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1101111xxxxxxxx1xx011xxxxxxxxxx
                                                 sqrshrun2.  */
                                              return 407;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 13) & 0x1) == 0)
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0001111xxxxxxxx1x0111xxxxxxxxxx
                                                     sqrshrn.  */
                                                  return 386;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1001111xxxxxxxx1x0111xxxxxxxxxx
                                                     sqrshrn2.  */
                                                  return 387;
                                                }
                                            }
                                          else
                                            {
                                              if (((word >> 30) & 0x1) == 0)
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x0101111xxxxxxxx1x0111xxxxxxxxxx
                                                     uqrshrn.  */
                                                  return 410;
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1101111xxxxxxxx1x0111xxxxxxxxxx
                                                     uqrshrn2.  */
                                                  return 411;
                                                }
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 29) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx001111xxxxxxxx1x1111xxxxxxxxxx
                                                 fmov.  */
                                              return 140;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx101111xxxxxxxx1x1111xxxxxxxxxx
                                                 fcvtzu.  */
                                              return 418;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                      else
                        {
                          if (((word >> 29) & 0x1) == 0)
                            {
                              if (((word >> 30) & 0x1) == 0)
                                {
                                  if (((word >> 21) & 0x1) == 0)
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx0xxxxx1xxxxxxxxxxxxxxx
                                         fmsub.  */
                                      return 860;
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         x0011111xx1xxxxx1xxxxxxxxxxxxxxx
                                         fnmsub.  */
                                      return 864;
                                    }
                                }
                              else
                                {
                                  if (((word >> 10) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             x1011111xxxxxxxx1xx0x0xxxxxxxxxx
                                             sqdmulh.  */
                                          return 428;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              if (((word >> 14) & 0x1) == 0)
                                                {
                                                  if (((word >> 23) & 0x1) == 0)
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10111110xxxxxxx1001x0xxxxxxxxxx
                                                         fmul.  */
                                                      return 435;
                                                    }
                                                  else
                                                    {
                                                      /* 33222222222211111111110000000000
                                                         10987654321098765432109876543210
                                                         x10111111xxxxxxx1001x0xxxxxxxxxx
                                                         fmul.  */
                                                      return 434;
                                                    }
                                                }
                                              else
                                                {
                                                  /* 33222222222211111111110000000000
                                                     10987654321098765432109876543210
                                                     x1011111xxxxxxxx1101x0xxxxxxxxxx
                                                     sqrdmulh.  */
                                                  return 429;
                                                }
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x11x0xxxxxxxxxx
                                                 sqdmull.  */
                                              return 427;
                                            }
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 11) & 0x1) == 0)
                                        {
                                          if (((word >> 12) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1xx001xxxxxxxxxx
                                                 scvtf.  */
                                              return 598;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1xx101xxxxxxxxxx
                                                 sqshrn.  */
                                              return 596;
                                            }
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x0x11xxxxxxxxxx
                                                 sqrshrn.  */
                                              return 597;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 x1011111xxxxxxxx1x1x11xxxxxxxxxx
                                                 fcvtzs.  */
                                              return 600;
                                            }
                                        }
                                    }
                                }
                            }
                          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 437;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx1111111xxxxxxx100xx0xxxxxxxxxx
                                                 fmulx.  */
                                              return 436;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx110xx0xxxxxxxxxx
                                             sqrdmlah.  */
                                          return 438;
                                        }
                                    }
                                  else
                                    {
                                      /* 33222222222211111111110000000000
                                         10987654321098765432109876543210
                                         xx111111xxxxxxxx1x1xx0xxxxxxxxxx
                                         sqrdmlsh.  */
                                      return 439;
                                    }
                                }
                              else
                                {
                                  if (((word >> 11) & 0x1) == 0)
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x0001xxxxxxxxxx
                                                 sqshrun.  */
                                              return 610;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x1001xxxxxxxxxx
                                                 ucvtf.  */
                                              return 614;
                                            }
                                        }
                                      else
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx1xx101xxxxxxxxxx
                                             uqshrn.  */
                                          return 612;
                                        }
                                    }
                                  else
                                    {
                                      if (((word >> 12) & 0x1) == 0)
                                        {
                                          /* 33222222222211111111110000000000
                                             10987654321098765432109876543210
                                             xx111111xxxxxxxx1xx011xxxxxxxxxx
                                             sqrshrun.  */
                                          return 611;
                                        }
                                      else
                                        {
                                          if (((word >> 13) & 0x1) == 0)
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x0111xxxxxxxxxx
                                                 uqrshrn.  */
                                              return 613;
                                            }
                                          else
                                            {
                                              /* 33222222222211111111110000000000
                                                 10987654321098765432109876543210
                                                 xx111111xxxxxxxx1x1111xxxxxxxxxx
                                                 fcvtzu.  */
                                              return 616;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

/* 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 2436: value = 2438; break;	/* mov --> mova.  */
    case 2438: return NULL;		/* mova --> NULL.  */
    case 2435: value = 2437; break;	/* mov --> mova.  */
    case 2437: return NULL;		/* mova --> NULL.  */
    case 2677: value = 2685; break;	/* mov --> mova.  */
    case 2685: return NULL;		/* mova --> NULL.  */
    case 2673: value = 2681; break;	/* mov --> mova.  */
    case 2681: return NULL;		/* mova --> NULL.  */
    case 2675: value = 2683; break;	/* mov --> mova.  */
    case 2683: return NULL;		/* mova --> NULL.  */
    case 2671: value = 2679; break;	/* mov --> mova.  */
    case 2679: return NULL;		/* mova --> NULL.  */
    case 2678: value = 2686; break;	/* mov --> mova.  */
    case 2686: return NULL;		/* mova --> NULL.  */
    case 2674: value = 2682; break;	/* mov --> mova.  */
    case 2682: return NULL;		/* mova --> NULL.  */
    case 2676: value = 2684; break;	/* mov --> mova.  */
    case 2684: return NULL;		/* mova --> NULL.  */
    case 2672: value = 2680; break;	/* mov --> mova.  */
    case 2680: return NULL;		/* mova --> NULL.  */
    case 2440: value = 2445; break;	/* ld1b --> ld1b.  */
    case 2445: return NULL;		/* ld1b --> NULL.  */
    case 2442: value = 2447; break;	/* ld1w --> ld1w.  */
    case 2447: return NULL;		/* ld1w --> NULL.  */
    case 2441: value = 2446; break;	/* ld1h --> ld1h.  */
    case 2446: return NULL;		/* ld1h --> NULL.  */
    case 2443: value = 2448; break;	/* ld1d --> ld1d.  */
    case 2448: return NULL;		/* ld1d --> NULL.  */
    case 2450: value = 2455; break;	/* st1b --> st1b.  */
    case 2455: return NULL;		/* st1b --> NULL.  */
    case 2452: value = 2457; break;	/* st1w --> st1w.  */
    case 2457: return NULL;		/* st1w --> NULL.  */
    case 2451: value = 2456; break;	/* st1h --> st1h.  */
    case 2456: return NULL;		/* st1h --> NULL.  */
    case 2453: value = 2458; break;	/* st1d --> st1d.  */
    case 2458: return NULL;		/* st1d --> NULL.  */
    case 2444: value = 2449; break;	/* ld1q --> ld1q.  */
    case 2449: return NULL;		/* ld1q --> NULL.  */
    case 2454: value = 2459; break;	/* st1q --> st1q.  */
    case 2459: return NULL;		/* st1q --> NULL.  */
    case 12: value = 19; break;	/* add --> addg.  */
    case 19: value = 3204; break;	/* addg --> smax.  */
    case 3204: value = 3205; break;	/* smax --> umax.  */
    case 3205: value = 3206; break;	/* umax --> smin.  */
    case 3206: value = 3207; break;	/* smin --> umin.  */
    case 3207: return NULL;		/* umin --> NULL.  */
    case 16: value = 20; break;	/* sub --> subg.  */
    case 20: return NULL;		/* subg --> NULL.  */
    case 971: value = 975; break;	/* stnp --> stp.  */
    case 975: return NULL;		/* stp --> NULL.  */
    case 969: value = 970; break;	/* stllrb --> stllrh.  */
    case 970: return NULL;		/* stllrh --> NULL.  */
    case 972: value = 976; break;	/* ldnp --> ldp.  */
    case 976: return NULL;		/* ldp --> NULL.  */
    case 912: value = 2467; break;	/* prfm --> rprfm.  */
    case 2467: return NULL;		/* rprfm --> NULL.  */
    case 1689: value = 1690; break;	/* ldff1b --> ldff1b.  */
    case 1690: return NULL;		/* ldff1b --> NULL.  */
    case 1745: value = 1746; break;	/* ldff1sw --> ldff1sw.  */
    case 1746: return NULL;		/* ldff1sw --> NULL.  */
    case 1693: value = 1694; break;	/* ldff1b --> ldff1b.  */
    case 1694: return NULL;		/* ldff1b --> NULL.  */
    case 1712: value = 1713; break;	/* ldff1h --> ldff1h.  */
    case 1713: return NULL;		/* ldff1h --> NULL.  */
    case 1691: value = 1692; break;	/* ldff1b --> ldff1b.  */
    case 1692: return NULL;		/* ldff1b --> NULL.  */
    case 1710: value = 1711; break;	/* ldff1h --> ldff1h.  */
    case 1711: return NULL;		/* ldff1h --> NULL.  */
    case 1695: value = 1696; break;	/* ldff1b --> ldff1b.  */
    case 1696: return NULL;		/* ldff1b --> NULL.  */
    case 1714: value = 1715; break;	/* ldff1h --> ldff1h.  */
    case 1715: return NULL;		/* ldff1h --> NULL.  */
    case 2474: value = 3291; break;	/* fclamp --> bfclamp.  */
    case 3291: return NULL;		/* bfclamp --> NULL.  */
    case 1788: value = 1789; break;	/* ldr --> ldr.  */
    case 1789: return NULL;		/* ldr --> NULL.  */
    case 1444: value = 3290; break;	/* fadd --> bfadd.  */
    case 3290: return NULL;		/* bfadd --> NULL.  */
    case 1511: value = 3292; break;	/* fmul --> bfmul.  */
    case 3292: return NULL;		/* bfmul --> NULL.  */
    case 1537: value = 3293; break;	/* fsub --> bfsub.  */
    case 3293: return NULL;		/* bfsub --> NULL.  */
    case 1502: value = 3286; break;	/* fmla --> bfmla.  */
    case 3286: return NULL;		/* bfmla --> NULL.  */
    case 2007: value = 2008; break;	/* str --> str.  */
    case 2008: return NULL;		/* str --> NULL.  */
    case 1506: value = 3287; break;	/* fmls --> bfmls.  */
    case 3287: return NULL;		/* bfmls --> NULL.  */
    case 1735: value = 1736; break;	/* ldff1sh --> ldff1sh.  */
    case 1736: return NULL;		/* ldff1sh --> NULL.  */
    case 1723: value = 1724; break;	/* ldff1sb --> ldff1sb.  */
    case 1724: return NULL;		/* ldff1sb --> NULL.  */
    case 1754: value = 1755; break;	/* ldff1w --> ldff1w.  */
    case 1755: return NULL;		/* ldff1w --> NULL.  */
    case 1727: value = 1728; break;	/* ldff1sb --> ldff1sb.  */
    case 1728: return NULL;		/* ldff1sb --> NULL.  */
    case 2465: value = 2466; break;	/* psel --> psel.  */
    case 2466: return NULL;		/* psel --> NULL.  */
    case 1737: value = 1738; break;	/* ldff1sh --> ldff1sh.  */
    case 1738: return NULL;		/* ldff1sh --> NULL.  */
    case 1725: value = 1726; break;	/* ldff1sb --> ldff1sb.  */
    case 1726: return NULL;		/* ldff1sb --> NULL.  */
    case 1756: value = 1757; break;	/* ldff1w --> ldff1w.  */
    case 1757: return NULL;		/* ldff1w --> NULL.  */
    case 1701: value = 1702; break;	/* ldff1d --> ldff1d.  */
    case 1702: return NULL;		/* ldff1d --> NULL.  */
    case 1825: value = 1826; break;	/* pfalse --> pfalse.  */
    case 1826: return NULL;		/* pfalse --> NULL.  */
    case 1445: value = 3281; break;	/* fadd --> bfadd.  */
    case 3281: return NULL;		/* bfadd --> NULL.  */
    case 1492: value = 3283; break;	/* fmaxnm --> bfmaxnm.  */
    case 3283: return NULL;		/* bfmaxnm --> NULL.  */
    case 1512: value = 3288; break;	/* fmul --> bfmul.  */
    case 3288: return NULL;		/* bfmul --> NULL.  */
    case 1490: value = 3282; break;	/* fmax --> bfmax.  */
    case 3282: return NULL;		/* bfmax --> NULL.  */
    case 1538: value = 3289; break;	/* fsub --> bfsub.  */
    case 3289: return NULL;		/* bfsub --> NULL.  */
    case 1498: value = 3285; break;	/* fminnm --> bfminnm.  */
    case 3285: return NULL;		/* bfminnm --> NULL.  */
    case 1496: value = 3284; break;	/* fmin --> bfmin.  */
    case 3284: return NULL;		/* bfmin --> NULL.  */
    case 811: value = 812; break;	/* xaflag --> axflag.  */
    case 812: value = 1224; break;	/* axflag --> tcommit.  */
    case 1224: value = 1227; break;	/* tcommit --> smstart.  */
    case 1227: value = 1228; break;	/* smstart --> smstop.  */
    case 1228: value = 1229; break;	/* smstop --> smstart.  */
    case 1229: value = 1230; break;	/* smstart --> smstop.  */
    case 1230: value = 1231; break;	/* smstop --> chkfeat.  */
    case 1231: value = 1232; break;	/* chkfeat --> msr.  */
    case 1232: value = 1233; break;	/* msr --> hint.  */
    case 1233: value = 1242; break;	/* hint --> dgh.  */
    case 1242: value = 1252; break;	/* dgh --> clrex.  */
    case 1252: value = 1253; break;	/* clrex --> dsb.  */
    case 1253: value = 1254; break;	/* dsb --> dsb.  */
    case 1254: value = 1258; break;	/* dsb --> dmb.  */
    case 1258: value = 1259; break;	/* dmb --> isb.  */
    case 1259: value = 1260; break;	/* isb --> sb.  */
    case 1260: value = 1261; break;	/* sb --> gcspushx.  */
    case 1261: value = 1262; break;	/* gcspushx --> gcspopx.  */
    case 1262: value = 1263; break;	/* gcspopx --> gcspopcx.  */
    case 1263: value = 1264; break;	/* gcspopcx --> gcsss1.  */
    case 1264: value = 1265; break;	/* gcsss1 --> gcspushm.  */
    case 1265: value = 1272; break;	/* gcspushm --> sys.  */
    case 1272: value = 1279; break;	/* sys --> wfet.  */
    case 1279: value = 1280; break;	/* wfet --> wfit.  */
    case 1280: value = 1285; break;	/* wfit --> cfinv.  */
    case 1285: value = 1286; break;	/* cfinv --> msr.  */
    case 1286: return NULL;		/* msr --> NULL.  */
    case 1223: value = 1225; break;	/* tstart --> ttest.  */
    case 1225: value = 1266; break;	/* ttest --> gcsss2.  */
    case 1266: value = 1267; break;	/* gcsss2 --> gcspopm.  */
    case 1267: value = 1268; break;	/* gcspopm --> gcspopm.  */
    case 1268: value = 1287; break;	/* gcspopm --> sysl.  */
    case 1287: value = 1288; break;	/* sysl --> mrs.  */
    case 1288: return NULL;		/* mrs --> NULL.  */
    case 440: value = 441; break;	/* st4 --> st1.  */
    case 441: value = 442; break;	/* st1 --> st2.  */
    case 442: value = 443; break;	/* st2 --> st3.  */
    case 443: return NULL;		/* st3 --> NULL.  */
    case 448: value = 449; break;	/* st4 --> st1.  */
    case 449: value = 450; break;	/* st1 --> st2.  */
    case 450: value = 451; break;	/* st2 --> st3.  */
    case 451: return NULL;		/* st3 --> NULL.  */
    case 444: value = 445; break;	/* ld4 --> ld1.  */
    case 445: value = 446; break;	/* ld1 --> ld2.  */
    case 446: value = 447; break;	/* ld2 --> ld3.  */
    case 447: return NULL;		/* ld3 --> NULL.  */
    case 460: value = 462; break;	/* ld1 --> ld1r.  */
    case 462: return NULL;		/* ld1r --> NULL.  */
    case 464: value = 466; break;	/* ld2 --> ld2r.  */
    case 466: return NULL;		/* ld2r --> NULL.  */
    case 461: value = 463; break;	/* ld3 --> ld3r.  */
    case 463: return NULL;		/* ld3r --> NULL.  */
    case 465: value = 467; break;	/* ld4 --> ld4r.  */
    case 467: return NULL;		/* ld4r --> NULL.  */
    case 452: value = 453; break;	/* ld4 --> ld1.  */
    case 453: value = 454; break;	/* ld1 --> ld2.  */
    case 454: value = 455; break;	/* ld2 --> ld3.  */
    case 455: return NULL;		/* ld3 --> NULL.  */
    case 472: value = 474; break;	/* ld1 --> ld1r.  */
    case 474: return NULL;		/* ld1r --> NULL.  */
    case 473: value = 475; break;	/* ld3 --> ld3r.  */
    case 475: return NULL;		/* ld3r --> NULL.  */
    case 476: value = 478; break;	/* ld2 --> ld2r.  */
    case 478: return NULL;		/* ld2r --> NULL.  */
    case 477: value = 479; break;	/* ld4 --> ld4r.  */
    case 479: return NULL;		/* ld4r --> NULL.  */
    case 764: value = 765; break;	/* fcvtzs --> fcvtzs.  */
    case 765: return NULL;		/* fcvtzs --> NULL.  */
    case 760: value = 761; break;	/* scvtf --> scvtf.  */
    case 761: return NULL;		/* scvtf --> NULL.  */
    case 766: value = 767; break;	/* fcvtzu --> fcvtzu.  */
    case 767: return NULL;		/* fcvtzu --> NULL.  */
    case 762: value = 763; break;	/* ucvtf --> ucvtf.  */
    case 763: return NULL;		/* ucvtf --> NULL.  */
    case 768: value = 769; break;	/* fcvtns --> fcvtns.  */
    case 769: return NULL;		/* fcvtns --> NULL.  */
    case 788: value = 789; break;	/* fcvtms --> fcvtms.  */
    case 789: return NULL;		/* fcvtms --> NULL.  */
    case 784: value = 785; break;	/* fcvtps --> fcvtps.  */
    case 785: return NULL;		/* fcvtps --> NULL.  */
    case 792: value = 793; break;	/* fcvtzs --> fcvtzs.  */
    case 793: return NULL;		/* fcvtzs --> NULL.  */
    case 776: value = 777; break;	/* fcvtas --> fcvtas.  */
    case 777: return NULL;		/* fcvtas --> NULL.  */
    case 772: value = 773; break;	/* scvtf --> scvtf.  */
    case 773: return NULL;		/* scvtf --> NULL.  */
    case 780: value = 781; break;	/* fmov --> fmov.  */
    case 781: return NULL;		/* fmov --> NULL.  */
    case 770: value = 771; break;	/* fcvtnu --> fcvtnu.  */
    case 771: return NULL;		/* fcvtnu --> NULL.  */
    case 790: value = 791; break;	/* fcvtmu --> fcvtmu.  */
    case 791: return NULL;		/* fcvtmu --> NULL.  */
    case 786: value = 787; break;	/* fcvtpu --> fcvtpu.  */
    case 787: return NULL;		/* fcvtpu --> NULL.  */
    case 794: value = 795; break;	/* fcvtzu --> fcvtzu.  */
    case 795: return NULL;		/* fcvtzu --> NULL.  */
    case 778: value = 779; break;	/* fcvtau --> fcvtau.  */
    case 779: return NULL;		/* fcvtau --> NULL.  */
    case 774: value = 775; break;	/* ucvtf --> ucvtf.  */
    case 775: return NULL;		/* ucvtf --> NULL.  */
    case 782: value = 783; break;	/* fmov --> fmov.  */
    case 783: return NULL;		/* fmov --> NULL.  */
    case 817: value = 818; break;	/* fmov --> fmov.  */
    case 818: return NULL;		/* fmov --> NULL.  */
    case 826: value = 827; break;	/* frintn --> frintn.  */
    case 827: return NULL;		/* frintn --> NULL.  */
    case 821: value = 822; break;	/* fneg --> fneg.  */
    case 822: return NULL;		/* fneg --> NULL.  */
    case 830: value = 831; break;	/* frintm --> frintm.  */
    case 831: return NULL;		/* frintm --> NULL.  */
    case 819: value = 820; break;	/* fabs --> fabs.  */
    case 820: return NULL;		/* fabs --> NULL.  */
    case 828: value = 829; break;	/* frintp --> frintp.  */
    case 829: return NULL;		/* frintp --> NULL.  */
    case 823: value = 824; break;	/* fsqrt --> fsqrt.  */
    case 824: return NULL;		/* fsqrt --> NULL.  */
    case 832: value = 833; break;	/* frintz --> frintz.  */
    case 833: return NULL;		/* frintz --> NULL.  */
    case 825: value = 3078; break;	/* fcvt --> bfcvt.  */
    case 3078: return NULL;		/* bfcvt --> NULL.  */
    case 834: value = 835; break;	/* frinta --> frinta.  */
    case 835: return NULL;		/* frinta --> NULL.  */
    case 836: value = 837; break;	/* frintx --> frintx.  */
    case 837: return NULL;		/* frintx --> NULL.  */
    case 838: value = 839; break;	/* frinti --> frinti.  */
    case 839: return NULL;		/* frinti --> NULL.  */
    case 803: value = 804; break;	/* fcmp --> fcmp.  */
    case 804: return NULL;		/* fcmp --> NULL.  */
    case 805: value = 806; break;	/* fcmpe --> fcmpe.  */
    case 806: return NULL;		/* fcmpe --> NULL.  */
    case 807: value = 808; break;	/* fcmp --> fcmp.  */
    case 808: return NULL;		/* fcmp --> NULL.  */
    case 809: value = 810; break;	/* fcmpe --> fcmpe.  */
    case 810: return NULL;		/* fcmpe --> NULL.  */
    case 866: value = 867; break;	/* fmov --> fmov.  */
    case 867: return NULL;		/* fmov --> NULL.  */
    case 840: value = 841; break;	/* fmul --> fmul.  */
    case 841: return NULL;		/* fmul --> NULL.  */
    case 856: value = 857; break;	/* fnmul --> fnmul.  */
    case 857: return NULL;		/* fnmul --> NULL.  */
    case 848: value = 849; break;	/* fmax --> fmax.  */
    case 849: return NULL;		/* fmax --> NULL.  */
    case 844: value = 845; break;	/* fadd --> fadd.  */
    case 845: return NULL;		/* fadd --> NULL.  */
    case 852: value = 853; break;	/* fmaxnm --> fmaxnm.  */
    case 853: return NULL;		/* fmaxnm --> NULL.  */
    case 842: value = 843; break;	/* fdiv --> fdiv.  */
    case 843: return NULL;		/* fdiv --> NULL.  */
    case 850: value = 851; break;	/* fmin --> fmin.  */
    case 851: return NULL;		/* fmin --> NULL.  */
    case 846: value = 847; break;	/* fsub --> fsub.  */
    case 847: return NULL;		/* fsub --> NULL.  */
    case 854: value = 855; break;	/* fminnm --> fminnm.  */
    case 855: return NULL;		/* fminnm --> NULL.  */
    case 799: value = 800; break;	/* fccmp --> fccmp.  */
    case 800: return NULL;		/* fccmp --> NULL.  */
    case 801: value = 802; break;	/* fccmpe --> fccmpe.  */
    case 802: return NULL;		/* fccmpe --> NULL.  */
    case 868: value = 869; break;	/* fcsel --> fcsel.  */
    case 869: return NULL;		/* fcsel --> NULL.  */
    case 133: value = 374; break;	/* movi --> sshr.  */
    case 374: value = 376; break;	/* sshr --> srshr.  */
    case 376: return NULL;		/* srshr --> NULL.  */
    case 141: value = 396; break;	/* mvni --> ushr.  */
    case 396: value = 398; break;	/* ushr --> urshr.  */
    case 398: value = 400; break;	/* urshr --> sri.  */
    case 400: value = 402; break;	/* sri --> sqshlu.  */
    case 402: return NULL;		/* sqshlu --> NULL.  */
    case 134: value = 375; break;	/* orr --> ssra.  */
    case 375: value = 377; break;	/* ssra --> srsra.  */
    case 377: value = 378; break;	/* srsra --> shl.  */
    case 378: value = 379; break;	/* shl --> sqshl.  */
    case 379: return NULL;		/* sqshl --> NULL.  */
    case 142: value = 397; break;	/* bic --> usra.  */
    case 397: value = 399; break;	/* usra --> ursra.  */
    case 399: value = 401; break;	/* ursra --> sli.  */
    case 401: value = 403; break;	/* sli --> uqshl.  */
    case 403: return NULL;		/* uqshl --> NULL.  */
    case 858: value = 859; break;	/* fmadd --> fmadd.  */
    case 859: return NULL;		/* fmadd --> NULL.  */
    case 862: value = 863; break;	/* fnmadd --> fnmadd.  */
    case 863: return NULL;		/* fnmadd --> NULL.  */
    case 135: value = 380; break;	/* movi --> shrn.  */
    case 380: value = 381; break;	/* shrn --> shrn2.  */
    case 381: value = 388; break;	/* shrn2 --> sshll.  */
    case 388: value = 390; break;	/* sshll --> sshll2.  */
    case 390: return NULL;		/* sshll2 --> NULL.  */
    case 143: value = 404; break;	/* mvni --> sqshrun.  */
    case 404: value = 405; break;	/* sqshrun --> sqshrun2.  */
    case 405: value = 412; break;	/* sqshrun2 --> ushll.  */
    case 412: value = 414; break;	/* ushll --> ushll2.  */
    case 414: return NULL;		/* ushll2 --> NULL.  */
    case 136: value = 384; break;	/* orr --> sqshrn.  */
    case 384: value = 385; break;	/* sqshrn --> sqshrn2.  */
    case 385: return NULL;		/* sqshrn2 --> NULL.  */
    case 144: value = 408; break;	/* bic --> uqshrn.  */
    case 408: value = 409; break;	/* uqshrn --> uqshrn2.  */
    case 409: return NULL;		/* uqshrn2 --> NULL.  */
    case 138: value = 392; break;	/* movi --> scvtf.  */
    case 392: value = 393; break;	/* scvtf --> scvtf.  */
    case 393: return NULL;		/* scvtf --> NULL.  */
    case 146: value = 147; break;	/* movi --> movi.  */
    case 147: value = 416; break;	/* movi --> ucvtf.  */
    case 416: value = 417; break;	/* ucvtf --> ucvtf.  */
    case 417: return NULL;		/* ucvtf --> NULL.  */
    case 140: value = 394; break;	/* fmov --> fcvtzs.  */
    case 394: value = 395; break;	/* fcvtzs --> fcvtzs.  */
    case 395: return NULL;		/* fcvtzs --> NULL.  */
    case 418: value = 419; break;	/* fcvtzu --> fcvtzu.  */
    case 419: return NULL;		/* fcvtzu --> NULL.  */
    case 860: value = 861; break;	/* fmsub --> fmsub.  */
    case 861: return NULL;		/* fmsub --> NULL.  */
    case 864: value = 865; break;	/* fnmsub --> fnmsub.  */
    case 865: return NULL;		/* fnmsub --> NULL.  */
    case 598: value = 599; break;	/* scvtf --> scvtf.  */
    case 599: return NULL;		/* scvtf --> NULL.  */
    case 600: value = 601; break;	/* fcvtzs --> fcvtzs.  */
    case 601: return NULL;		/* fcvtzs --> NULL.  */
    case 614: value = 615; break;	/* ucvtf --> ucvtf.  */
    case 615: return NULL;		/* ucvtf --> NULL.  */
    case 616: value = 617; break;	/* fcvtzu --> fcvtzu.  */
    case 617: 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 22: value = 23; break;	/* adds --> cmn.  */
    case 24: value = 25; break;	/* sub --> neg.  */
    case 26: value = 27; break;	/* subs --> cmp.  */
    case 152: value = 153; break;	/* umov --> mov.  */
    case 154: value = 155; break;	/* ins --> mov.  */
    case 156: value = 157; break;	/* ins --> mov.  */
    case 242: value = 243; break;	/* not --> mvn.  */
    case 317: value = 318; break;	/* orr --> mov.  */
    case 388: value = 389; break;	/* sshll --> sxtl.  */
    case 390: value = 391; break;	/* sshll2 --> sxtl2.  */
    case 412: value = 413; break;	/* ushll --> uxtl.  */
    case 414: value = 415; break;	/* ushll2 --> uxtl2.  */
    case 535: value = 536; break;	/* dup --> mov.  */
    case 618: value = 623; break;	/* sbfm --> sxtw.  */
    case 625: value = 627; break;	/* bfm --> bfc.  */
    case 629: value = 633; break;	/* ubfm --> uxth.  */
    case 663: value = 665; break;	/* csinc --> cset.  */
    case 666: value = 668; break;	/* csinv --> csetm.  */
    case 669: value = 670; break;	/* csneg --> cneg.  */
    case 688: value = 688; break;	/* rev --> rev.  */
    case 713: value = 714; break;	/* lslv --> lsl.  */
    case 715: value = 716; break;	/* lsrv --> lsr.  */
    case 717: value = 718; break;	/* asrv --> asr.  */
    case 719: value = 720; break;	/* rorv --> ror.  */
    case 722: value = 723; break;	/* subps --> cmpp.  */
    case 735: value = 736; break;	/* madd --> mul.  */
    case 737: value = 738; break;	/* msub --> mneg.  */
    case 739: value = 740; break;	/* smaddl --> smull.  */
    case 741: value = 742; break;	/* smsubl --> smnegl.  */
    case 744: value = 745; break;	/* umaddl --> umull.  */
    case 746: value = 747; break;	/* umsubl --> umnegl.  */
    case 758: value = 759; break;	/* extr --> ror.  */
    case 995: value = 996; break;	/* and --> bic.  */
    case 997: value = 998; break;	/* orr --> mov.  */
    case 1000: value = 1001; break;	/* ands --> tst.  */
    case 1004: value = 1006; break;	/* orr --> uxtw.  */
    case 1007: value = 1008; break;	/* orn --> mvn.  */
    case 1011: value = 1012; break;	/* ands --> tst.  */
    case 1042: value = 1138; break;	/* ldaddb --> staddb.  */
    case 1043: value = 1139; break;	/* ldaddh --> staddh.  */
    case 1044: value = 1140; break;	/* ldadd --> stadd.  */
    case 1046: value = 1141; break;	/* ldaddlb --> staddlb.  */
    case 1049: value = 1142; break;	/* ldaddlh --> staddlh.  */
    case 1052: value = 1143; break;	/* ldaddl --> staddl.  */
    case 1054: value = 1144; break;	/* ldclrb --> stclrb.  */
    case 1055: value = 1145; break;	/* ldclrh --> stclrh.  */
    case 1056: value = 1146; break;	/* ldclr --> stclr.  */
    case 1058: value = 1147; break;	/* ldclrlb --> stclrlb.  */
    case 1061: value = 1148; break;	/* ldclrlh --> stclrlh.  */
    case 1064: value = 1149; break;	/* ldclrl --> stclrl.  */
    case 1066: value = 1150; break;	/* ldeorb --> steorb.  */
    case 1067: value = 1151; break;	/* ldeorh --> steorh.  */
    case 1068: value = 1152; break;	/* ldeor --> steor.  */
    case 1070: value = 1153; break;	/* ldeorlb --> steorlb.  */
    case 1073: value = 1154; break;	/* ldeorlh --> steorlh.  */
    case 1076: value = 1155; break;	/* ldeorl --> steorl.  */
    case 1078: value = 1156; break;	/* ldsetb --> stsetb.  */
    case 1079: value = 1157; break;	/* ldseth --> stseth.  */
    case 1080: value = 1158; break;	/* ldset --> stset.  */
    case 1082: value = 1159; break;	/* ldsetlb --> stsetlb.  */
    case 1085: value = 1160; break;	/* ldsetlh --> stsetlh.  */
    case 1088: value = 1161; break;	/* ldsetl --> stsetl.  */
    case 1090: value = 1162; break;	/* ldsmaxb --> stsmaxb.  */
    case 1091: value = 1163; break;	/* ldsmaxh --> stsmaxh.  */
    case 1092: value = 1164; break;	/* ldsmax --> stsmax.  */
    case 1094: value = 1165; break;	/* ldsmaxlb --> stsmaxlb.  */
    case 1097: value = 1166; break;	/* ldsmaxlh --> stsmaxlh.  */
    case 1100: value = 1167; break;	/* ldsmaxl --> stsmaxl.  */
    case 1102: value = 1168; break;	/* ldsminb --> stsminb.  */
    case 1103: value = 1169; break;	/* ldsminh --> stsminh.  */
    case 1104: value = 1170; break;	/* ldsmin --> stsmin.  */
    case 1106: value = 1171; break;	/* ldsminlb --> stsminlb.  */
    case 1109: value = 1172; break;	/* ldsminlh --> stsminlh.  */
    case 1112: value = 1173; break;	/* ldsminl --> stsminl.  */
    case 1114: value = 1174; break;	/* ldumaxb --> stumaxb.  */
    case 1115: value = 1175; break;	/* ldumaxh --> stumaxh.  */
    case 1116: value = 1176; break;	/* ldumax --> stumax.  */
    case 1118: value = 1177; break;	/* ldumaxlb --> stumaxlb.  */
    case 1121: value = 1178; break;	/* ldumaxlh --> stumaxlh.  */
    case 1124: value = 1179; break;	/* ldumaxl --> stumaxl.  */
    case 1126: value = 1180; break;	/* lduminb --> stuminb.  */
    case 1127: value = 1181; break;	/* lduminh --> stuminh.  */
    case 1128: value = 1182; break;	/* ldumin --> stumin.  */
    case 1130: value = 1183; break;	/* lduminlb --> stuminlb.  */
    case 1133: value = 1184; break;	/* lduminlh --> stuminlh.  */
    case 1136: value = 1185; break;	/* lduminl --> stuminl.  */
    case 1216: value = 1217; break;	/* movn --> mov.  */
    case 1218: value = 1219; break;	/* movz --> mov.  */
    case 1233: value = 3215; break;	/* hint --> clrbhb.  */
    case 1253: value = 1257; break;	/* dsb --> pssbb.  */
    case 1254: value = 1254; break;	/* dsb --> dsb.  */
    case 1272: value = 3216; break;	/* sys --> trcit.  */
    case 1273: value = 1278; break;	/* sysp --> tlbip.  */
    case 1279: value = 1279; break;	/* wfet --> wfet.  */
    case 1280: value = 1280; break;	/* wfit --> wfit.  */
    case 1347: value = 2100; break;	/* and --> bic.  */
    case 1349: value = 1330; break;	/* and --> mov.  */
    case 1350: value = 1334; break;	/* ands --> movs.  */
    case 1385: value = 2101; break;	/* cmpge --> cmple.  */
    case 1388: value = 2104; break;	/* cmpgt --> cmplt.  */
    case 1390: value = 2102; break;	/* cmphi --> cmplo.  */
    case 1393: value = 2103; break;	/* cmphs --> cmpls.  */
    case 1415: value = 1327; break;	/* cpy --> mov.  */
    case 1416: value = 1329; break;	/* cpy --> mov.  */
    case 1417: value = 2111; break;	/* cpy --> fmov.  */
    case 1429: value = 1321; break;	/* dup --> mov.  */
    case 1430: value = 1324; break;	/* dup --> mov.  */
    case 1431: value = 2110; break;	/* dup --> fmov.  */
    case 1432: value = 1325; break;	/* dupm --> mov.  */
    case 1434: value = 2105; break;	/* eor --> eon.  */
    case 1436: value = 1335; break;	/* eor --> not.  */
    case 1437: value = 1336; break;	/* eors --> nots.  */
    case 1442: value = 2106; break;	/* facge --> facle.  */
    case 1443: value = 2107; break;	/* facgt --> faclt.  */
    case 1456: value = 2108; break;	/* fcmge --> fcmle.  */
    case 1458: value = 2109; break;	/* fcmgt --> fcmlt.  */
    case 1464: value = 1318; break;	/* fcpy --> fmov.  */
    case 1487: value = 1317; break;	/* fdup --> fmov.  */
    case 1819: value = 1319; break;	/* orr --> mov.  */
    case 1820: value = 2112; break;	/* orr --> orn.  */
    case 1822: value = 1323; break;	/* orr --> mov.  */
    case 1823: value = 1333; break;	/* orrs --> movs.  */
    case 1886: value = 1328; break;	/* sel --> mov.  */
    case 1887: value = 1331; 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 23: value = 22; break;	/* cmn --> adds.  */
    case 25: value = 24; break;	/* neg --> sub.  */
    case 27: value = 28; break;	/* cmp --> negs.  */
    case 28: value = 26; break;	/* negs --> subs.  */
    case 153: value = 152; break;	/* mov --> umov.  */
    case 155: value = 154; break;	/* mov --> ins.  */
    case 157: value = 156; break;	/* mov --> ins.  */
    case 243: value = 242; break;	/* mvn --> not.  */
    case 318: value = 317; break;	/* mov --> orr.  */
    case 389: value = 388; break;	/* sxtl --> sshll.  */
    case 391: value = 390; break;	/* sxtl2 --> sshll2.  */
    case 413: value = 412; break;	/* uxtl --> ushll.  */
    case 415: value = 414; break;	/* uxtl2 --> ushll2.  */
    case 536: value = 535; break;	/* mov --> dup.  */
    case 623: value = 622; break;	/* sxtw --> sxth.  */
    case 622: value = 621; break;	/* sxth --> sxtb.  */
    case 621: value = 624; break;	/* sxtb --> asr.  */
    case 624: value = 620; break;	/* asr --> sbfx.  */
    case 620: value = 619; break;	/* sbfx --> sbfiz.  */
    case 619: value = 618; break;	/* sbfiz --> sbfm.  */
    case 627: value = 628; break;	/* bfc --> bfxil.  */
    case 628: value = 626; break;	/* bfxil --> bfi.  */
    case 626: value = 625; break;	/* bfi --> bfm.  */
    case 633: value = 632; break;	/* uxth --> uxtb.  */
    case 632: value = 635; break;	/* uxtb --> lsr.  */
    case 635: value = 634; break;	/* lsr --> lsl.  */
    case 634: value = 631; break;	/* lsl --> ubfx.  */
    case 631: value = 630; break;	/* ubfx --> ubfiz.  */
    case 630: value = 629; break;	/* ubfiz --> ubfm.  */
    case 665: value = 664; break;	/* cset --> cinc.  */
    case 664: value = 663; break;	/* cinc --> csinc.  */
    case 668: value = 667; break;	/* csetm --> cinv.  */
    case 667: value = 666; break;	/* cinv --> csinv.  */
    case 670: value = 669; break;	/* cneg --> csneg.  */
    case 688: value = 689; break;	/* rev --> rev64.  */
    case 714: value = 713; break;	/* lsl --> lslv.  */
    case 716: value = 715; break;	/* lsr --> lsrv.  */
    case 718: value = 717; break;	/* asr --> asrv.  */
    case 720: value = 719; break;	/* ror --> rorv.  */
    case 723: value = 722; break;	/* cmpp --> subps.  */
    case 736: value = 735; break;	/* mul --> madd.  */
    case 738: value = 737; break;	/* mneg --> msub.  */
    case 740: value = 739; break;	/* smull --> smaddl.  */
    case 742: value = 741; break;	/* smnegl --> smsubl.  */
    case 745: value = 744; break;	/* umull --> umaddl.  */
    case 747: value = 746; break;	/* umnegl --> umsubl.  */
    case 759: value = 758; break;	/* ror --> extr.  */
    case 996: value = 995; break;	/* bic --> and.  */
    case 998: value = 997; break;	/* mov --> orr.  */
    case 1001: value = 1000; break;	/* tst --> ands.  */
    case 1006: value = 1005; break;	/* uxtw --> mov.  */
    case 1005: value = 1004; break;	/* mov --> orr.  */
    case 1008: value = 1007; break;	/* mvn --> orn.  */
    case 1012: value = 1011; break;	/* tst --> ands.  */
    case 1138: value = 1042; break;	/* staddb --> ldaddb.  */
    case 1139: value = 1043; break;	/* staddh --> ldaddh.  */
    case 1140: value = 1044; break;	/* stadd --> ldadd.  */
    case 1141: value = 1046; break;	/* staddlb --> ldaddlb.  */
    case 1142: value = 1049; break;	/* staddlh --> ldaddlh.  */
    case 1143: value = 1052; break;	/* staddl --> ldaddl.  */
    case 1144: value = 1054; break;	/* stclrb --> ldclrb.  */
    case 1145: value = 1055; break;	/* stclrh --> ldclrh.  */
    case 1146: value = 1056; break;	/* stclr --> ldclr.  */
    case 1147: value = 1058; break;	/* stclrlb --> ldclrlb.  */
    case 1148: value = 1061; break;	/* stclrlh --> ldclrlh.  */
    case 1149: value = 1064; break;	/* stclrl --> ldclrl.  */
    case 1150: value = 1066; break;	/* steorb --> ldeorb.  */
    case 1151: value = 1067; break;	/* steorh --> ldeorh.  */
    case 1152: value = 1068; break;	/* steor --> ldeor.  */
    case 1153: value = 1070; break;	/* steorlb --> ldeorlb.  */
    case 1154: value = 1073; break;	/* steorlh --> ldeorlh.  */
    case 1155: value = 1076; break;	/* steorl --> ldeorl.  */
    case 1156: value = 1078; break;	/* stsetb --> ldsetb.  */
    case 1157: value = 1079; break;	/* stseth --> ldseth.  */
    case 1158: value = 1080; break;	/* stset --> ldset.  */
    case 1159: value = 1082; break;	/* stsetlb --> ldsetlb.  */
    case 1160: value = 1085; break;	/* stsetlh --> ldsetlh.  */
    case 1161: value = 1088; break;	/* stsetl --> ldsetl.  */
    case 1162: value = 1090; break;	/* stsmaxb --> ldsmaxb.  */
    case 1163: value = 1091; break;	/* stsmaxh --> ldsmaxh.  */
    case 1164: value = 1092; break;	/* stsmax --> ldsmax.  */
    case 1165: value = 1094; break;	/* stsmaxlb --> ldsmaxlb.  */
    case 1166: value = 1097; break;	/* stsmaxlh --> ldsmaxlh.  */
    case 1167: value = 1100; break;	/* stsmaxl --> ldsmaxl.  */
    case 1168: value = 1102; break;	/* stsminb --> ldsminb.  */
    case 1169: value = 1103; break;	/* stsminh --> ldsminh.  */
    case 1170: value = 1104; break;	/* stsmin --> ldsmin.  */
    case 1171: value = 1106; break;	/* stsminlb --> ldsminlb.  */
    case 1172: value = 1109; break;	/* stsminlh --> ldsminlh.  */
    case 1173: value = 1112; break;	/* stsminl --> ldsminl.  */
    case 1174: value = 1114; break;	/* stumaxb --> ldumaxb.  */
    case 1175: value = 1115; break;	/* stumaxh --> ldumaxh.  */
    case 1176: value = 1116; break;	/* stumax --> ldumax.  */
    case 1177: value = 1118; break;	/* stumaxlb --> ldumaxlb.  */
    case 1178: value = 1121; break;	/* stumaxlh --> ldumaxlh.  */
    case 1179: value = 1124; break;	/* stumaxl --> ldumaxl.  */
    case 1180: value = 1126; break;	/* stuminb --> lduminb.  */
    case 1181: value = 1127; break;	/* stuminh --> lduminh.  */
    case 1182: value = 1128; break;	/* stumin --> ldumin.  */
    case 1183: value = 1130; break;	/* stuminlb --> lduminlb.  */
    case 1184: value = 1133; break;	/* stuminlh --> lduminlh.  */
    case 1185: value = 1136; break;	/* stuminl --> lduminl.  */
    case 1217: value = 1216; break;	/* mov --> movn.  */
    case 1219: value = 1218; break;	/* mov --> movz.  */
    case 3215: value = 1298; break;	/* clrbhb --> autibsp.  */
    case 1298: value = 1297; break;	/* autibsp --> autibz.  */
    case 1297: value = 1296; break;	/* autibz --> autiasp.  */
    case 1296: value = 1295; break;	/* autiasp --> autiaz.  */
    case 1295: value = 1294; break;	/* autiaz --> pacibsp.  */
    case 1294: value = 1293; break;	/* pacibsp --> pacibz.  */
    case 1293: value = 1292; break;	/* pacibz --> paciasp.  */
    case 1292: value = 1291; break;	/* paciasp --> paciaz.  */
    case 1291: value = 1271; break;	/* paciaz --> gcsb.  */
    case 1271: value = 1251; break;	/* gcsb --> clearbhb.  */
    case 1251: value = 1250; break;	/* clearbhb --> tsb.  */
    case 1250: value = 1249; break;	/* tsb --> psb.  */
    case 1249: value = 1248; break;	/* psb --> esb.  */
    case 1248: value = 1247; break;	/* esb --> autib1716.  */
    case 1247: value = 1246; break;	/* autib1716 --> autia1716.  */
    case 1246: value = 1245; break;	/* autia1716 --> pacib1716.  */
    case 1245: value = 1244; break;	/* pacib1716 --> pacia1716.  */
    case 1244: value = 1243; break;	/* pacia1716 --> xpaclri.  */
    case 1243: value = 1241; break;	/* xpaclri --> sevl.  */
    case 1241: value = 1240; break;	/* sevl --> sev.  */
    case 1240: value = 1239; break;	/* sev --> wfi.  */
    case 1239: value = 1238; break;	/* wfi --> wfe.  */
    case 1238: value = 1237; break;	/* wfe --> yield.  */
    case 1237: value = 1236; break;	/* yield --> bti.  */
    case 1236: value = 1235; break;	/* bti --> csdb.  */
    case 1235: value = 1234; break;	/* csdb --> nop.  */
    case 1234: value = 1233; break;	/* nop --> hint.  */
    case 1257: value = 1256; break;	/* pssbb --> ssbb.  */
    case 1256: value = 1255; break;	/* ssbb --> dfb.  */
    case 1255: value = 1253; break;	/* dfb --> dsb.  */
    case 3216: value = 1284; break;	/* trcit --> cosp.  */
    case 1284: value = 1283; break;	/* cosp --> cpp.  */
    case 1283: value = 1282; break;	/* cpp --> dvp.  */
    case 1282: value = 1281; break;	/* dvp --> cfp.  */
    case 1281: value = 1277; break;	/* cfp --> tlbi.  */
    case 1277: value = 1276; break;	/* tlbi --> ic.  */
    case 1276: value = 1275; break;	/* ic --> dc.  */
    case 1275: value = 1274; break;	/* dc --> at.  */
    case 1274: value = 1272; break;	/* at --> sys.  */
    case 1278: value = 1273; break;	/* tlbip --> sysp.  */
    case 2100: value = 1347; break;	/* bic --> and.  */
    case 1330: value = 1349; break;	/* mov --> and.  */
    case 1334: value = 1350; break;	/* movs --> ands.  */
    case 2101: value = 1385; break;	/* cmple --> cmpge.  */
    case 2104: value = 1388; break;	/* cmplt --> cmpgt.  */
    case 2102: value = 1390; break;	/* cmplo --> cmphi.  */
    case 2103: value = 1393; break;	/* cmpls --> cmphs.  */
    case 1327: value = 1415; break;	/* mov --> cpy.  */
    case 1329: value = 1416; break;	/* mov --> cpy.  */
    case 2111: value = 1332; break;	/* fmov --> mov.  */
    case 1332: value = 1417; break;	/* mov --> cpy.  */
    case 1321: value = 1429; break;	/* mov --> dup.  */
    case 1324: value = 1320; break;	/* mov --> mov.  */
    case 1320: value = 1430; break;	/* mov --> dup.  */
    case 2110: value = 1326; break;	/* fmov --> mov.  */
    case 1326: value = 1431; break;	/* mov --> dup.  */
    case 1325: value = 1432; break;	/* mov --> dupm.  */
    case 2105: value = 1434; break;	/* eon --> eor.  */
    case 1335: value = 1436; break;	/* not --> eor.  */
    case 1336: value = 1437; break;	/* nots --> eors.  */
    case 2106: value = 1442; break;	/* facle --> facge.  */
    case 2107: value = 1443; break;	/* faclt --> facgt.  */
    case 2108: value = 1456; break;	/* fcmle --> fcmge.  */
    case 2109: value = 1458; break;	/* fcmlt --> fcmgt.  */
    case 1318: value = 1464; break;	/* fmov --> fcpy.  */
    case 1317: value = 1487; break;	/* fmov --> fdup.  */
    case 1319: value = 1819; break;	/* mov --> orr.  */
    case 2112: value = 1820; break;	/* orn --> orr.  */
    case 1323: value = 1322; break;	/* mov --> mov.  */
    case 1322: value = 1822; break;	/* mov --> orr.  */
    case 1333: value = 1823; break;	/* movs --> orrs.  */
    case 1328: value = 1886; break;	/* mov --> sel.  */
    case 1331: value = 1887; break;	/* mov --> sel.  */
    default: return NULL;
    }

  return aarch64_opcode_table + value;
}

bool
aarch64_extract_operand (const aarch64_operand *self,
			   aarch64_opnd_info *info,
			   aarch64_insn code, const aarch64_inst *inst,
			   aarch64_operand_error *errors)
{
  /* Use the index as the key.  */
  int key = self - aarch64_operands;
  switch (key)
    {
    case 1:
    case 2:
    case 3:
    case 4:
    case 5:
    case 7:
    case 8:
    case 9:
    case 10:
    case 12:
    case 13:
    case 14:
    case 20:
    case 21:
    case 22:
    case 23:
    case 25:
    case 26:
    case 27:
    case 28:
    case 29:
    case 30:
    case 31:
    case 32:
    case 33:
    case 34:
    case 117:
    case 118:
    case 176:
    case 177:
    case 178:
    case 179:
    case 180:
    case 181:
    case 182:
    case 183:
    case 184:
    case 185:
    case 186:
    case 187:
    case 188:
    case 189:
    case 204:
    case 205:
    case 206:
    case 207:
    case 216:
    case 217:
    case 218:
    case 219:
    case 220:
    case 228:
    case 232:
    case 236:
    case 243:
    case 244:
    case 251:
    case 252:
    case 253:
    case 254:
      return aarch64_ext_regno (self, info, code, inst, errors);
    case 6:
    case 114:
    case 115:
    case 286:
    case 288:
      return aarch64_ext_none (self, info, code, inst, errors);
    case 11:
      return aarch64_ext_regrt_sysins (self, info, code, inst, errors);
    case 15:
    case 16:
      return aarch64_ext_regno_pair (self, info, code, inst, errors);
    case 17:
      return aarch64_ext_reg_extended (self, info, code, inst, errors);
    case 18:
      return aarch64_ext_reg_shifted (self, info, code, inst, errors);
    case 19:
      return aarch64_ext_reg_lsl_shifted (self, info, code, inst, errors);
    case 24:
      return aarch64_ext_ft (self, info, code, inst, errors);
    case 35:
    case 36:
    case 37:
    case 38:
    case 290:
      return aarch64_ext_reglane (self, info, code, inst, errors);
    case 39:
      return aarch64_ext_reglist (self, info, code, inst, errors);
    case 40:
      return aarch64_ext_ldst_reglist (self, info, code, inst, errors);
    case 41:
      return aarch64_ext_ldst_reglist_r (self, info, code, inst, errors);
    case 42:
      return aarch64_ext_ldst_elemlist (self, info, code, inst, errors);
    case 43:
    case 44:
    case 45:
    case 46:
    case 56:
    case 57:
    case 58:
    case 59:
    case 60:
    case 61:
    case 62:
    case 63:
    case 64:
    case 65:
    case 66:
    case 67:
    case 68:
    case 69:
    case 70:
    case 71:
    case 72:
    case 83:
    case 84:
    case 85:
    case 86:
    case 87:
    case 113:
    case 173:
    case 175:
    case 196:
    case 197:
    case 198:
    case 199:
    case 200:
    case 201:
    case 202:
    case 203:
    case 257:
    case 284:
    case 285:
    case 287:
    case 289:
    case 294:
    case 295:
      return aarch64_ext_imm (self, info, code, inst, errors);
    case 47:
    case 48:
      return aarch64_ext_advsimd_imm_shift (self, info, code, inst, errors);
    case 49:
    case 50:
    case 51:
      return aarch64_ext_advsimd_imm_modified (self, info, code, inst, errors);
    case 52:
      return aarch64_ext_shll_imm (self, info, code, inst, errors);
    case 55:
    case 163:
      return aarch64_ext_fpimm (self, info, code, inst, errors);
    case 73:
    case 171:
      return aarch64_ext_limm (self, info, code, inst, errors);
    case 74:
      return aarch64_ext_aimm (self, info, code, inst, errors);
    case 75:
      return aarch64_ext_imm_half (self, info, code, inst, errors);
    case 76:
      return aarch64_ext_fbits (self, info, code, inst, errors);
    case 78:
    case 79:
    case 168:
      return aarch64_ext_imm_rotate2 (self, info, code, inst, errors);
    case 80:
    case 167:
    case 169:
      return aarch64_ext_imm_rotate1 (self, info, code, inst, errors);
    case 81:
    case 82:
      return aarch64_ext_cond (self, info, code, inst, errors);
    case 88:
    case 97:
      return aarch64_ext_addr_simple (self, info, code, inst, errors);
    case 89:
      return aarch64_ext_addr_regoff (self, info, code, inst, errors);
    case 90:
    case 91:
    case 92:
    case 94:
    case 96:
      return aarch64_ext_addr_simm (self, info, code, inst, errors);
    case 93:
      return aarch64_ext_addr_simm10 (self, info, code, inst, errors);
    case 95:
      return aarch64_ext_addr_uimm12 (self, info, code, inst, errors);
    case 98:
      return aarch64_ext_addr_offset (self, info, code, inst, errors);
    case 99:
      return aarch64_ext_simd_addr_post (self, info, code, inst, errors);
    case 100:
    case 101:
      return aarch64_ext_sysreg (self, info, code, inst, errors);
    case 102:
      return aarch64_ext_pstatefield (self, info, code, inst, errors);
    case 103:
    case 104:
    case 105:
    case 106:
    case 107:
    case 108:
      return aarch64_ext_sysins_op (self, info, code, inst, errors);
    case 109:
    case 111:
      return aarch64_ext_barrier (self, info, code, inst, errors);
    case 110:
      return aarch64_ext_barrier_dsb_nxs (self, info, code, inst, errors);
    case 112:
      return aarch64_ext_prfop (self, info, code, inst, errors);
    case 116:
      return aarch64_ext_hint (self, info, code, inst, errors);
    case 119:
    case 120:
      return aarch64_ext_sve_addr_ri_s4 (self, info, code, inst, errors);
    case 121:
    case 122:
    case 123:
    case 124:
      return aarch64_ext_sve_addr_ri_s4xvl (self, info, code, inst, errors);
    case 125:
      return aarch64_ext_sve_addr_ri_s6xvl (self, info, code, inst, errors);
    case 126:
      return aarch64_ext_sve_addr_ri_s9xvl (self, info, code, inst, errors);
    case 127:
    case 128:
    case 129:
    case 130:
      return aarch64_ext_sve_addr_ri_u6 (self, info, code, inst, errors);
    case 131:
    case 132:
    case 133:
    case 134:
    case 135:
    case 136:
    case 137:
    case 138:
    case 139:
    case 140:
    case 141:
    case 142:
    case 143:
    case 144:
    case 145:
      return aarch64_ext_sve_addr_rr_lsl (self, info, code, inst, errors);
    case 146:
    case 147:
    case 148:
    case 149:
    case 150:
    case 151:
    case 152:
    case 153:
      return aarch64_ext_sve_addr_rz_xtw (self, info, code, inst, errors);
    case 154:
    case 155:
    case 156:
    case 157:
      return aarch64_ext_sve_addr_zi_u5 (self, info, code, inst, errors);
    case 158:
      return aarch64_ext_sve_addr_zz_lsl (self, info, code, inst, errors);
    case 159:
      return aarch64_ext_sve_addr_zz_sxtw (self, info, code, inst, errors);
    case 160:
      return aarch64_ext_sve_addr_zz_uxtw (self, info, code, inst, errors);
    case 161:
      return aarch64_ext_sve_aimm (self, info, code, inst, errors);
    case 162:
      return aarch64_ext_sve_asimm (self, info, code, inst, errors);
    case 164:
      return aarch64_ext_sve_float_half_one (self, info, code, inst, errors);
    case 165:
      return aarch64_ext_sve_float_half_two (self, info, code, inst, errors);
    case 166:
      return aarch64_ext_sve_float_zero_one (self, info, code, inst, errors);
    case 170:
      return aarch64_ext_inv_limm (self, info, code, inst, errors);
    case 172:
      return aarch64_ext_sve_limm_mov (self, info, code, inst, errors);
    case 174:
      return aarch64_ext_sve_scale (self, info, code, inst, errors);
    case 190:
    case 191:
    case 192:
      return aarch64_ext_sve_shlimm (self, info, code, inst, errors);
    case 193:
    case 194:
    case 195:
    case 270:
      return aarch64_ext_sve_shrimm (self, info, code, inst, errors);
    case 208:
    case 209:
    case 210:
    case 211:
      return aarch64_ext_sme_za_vrs1 (self, info, code, inst, errors);
    case 212:
    case 213:
    case 214:
    case 215:
      return aarch64_ext_sme_za_vrs2 (self, info, code, inst, errors);
    case 221:
    case 222:
    case 223:
    case 224:
    case 225:
    case 226:
    case 227:
      return aarch64_ext_sve_quad_index (self, info, code, inst, errors);
    case 229:
      return aarch64_ext_sve_index_imm (self, info, code, inst, errors);
    case 230:
      return aarch64_ext_sve_index (self, info, code, inst, errors);
    case 231:
    case 233:
    case 250:
      return aarch64_ext_sve_reglist (self, info, code, inst, errors);
    case 234:
    case 235:
    case 237:
    case 238:
    case 239:
    case 240:
    case 249:
      return aarch64_ext_sve_aligned_reglist (self, info, code, inst, errors);
    case 241:
    case 242:
      return aarch64_ext_sve_strided_reglist (self, info, code, inst, errors);
    case 245:
    case 247:
    case 258:
      return aarch64_ext_sme_za_hv_tiles (self, info, code, inst, errors);
    case 246:
    case 248:
      return aarch64_ext_sme_za_hv_tiles_range (self, info, code, inst, errors);
    case 255:
    case 256:
    case 271:
    case 272:
    case 273:
    case 274:
    case 275:
    case 276:
    case 277:
    case 278:
    case 279:
    case 280:
    case 281:
    case 282:
    case 283:
      return aarch64_ext_simple_index (self, info, code, inst, errors);
    case 259:
    case 260:
    case 261:
    case 262:
    case 263:
    case 264:
    case 265:
      return aarch64_ext_sme_za_array (self, info, code, inst, errors);
    case 266:
      return aarch64_ext_sme_addr_ri_u4xvl (self, info, code, inst, errors);
    case 267:
      return aarch64_ext_sme_sm_za (self, info, code, inst, errors);
    case 268:
      return aarch64_ext_sme_pred_reg_with_index (self, info, code, inst, errors);
    case 269:
      return aarch64_ext_plain_shrimm (self, info, code, inst, errors);
    case 291:
    case 292:
    case 293:
      return aarch64_ext_x0_to_x30 (self, info, code, inst, errors);
    case 296:
    case 297:
    case 298:
      return aarch64_ext_sve_reglist_zt (self, info, code, inst, errors);
    case 299:
    case 300:
    case 301:
    case 302:
      return aarch64_ext_rcpc3_addr_opt_offset (self, info, code, inst, errors);
    case 303:
      return aarch64_ext_rcpc3_addr_offset (self, info, code, inst, errors);
    default: assert (0); abort ();
    }
}
