/* Generated automatically by the program `genoutput'
from the machine description file `md'.  */

#include "config.h"
#include "system.h"
#include "flags.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "real.h"
#include "insn-config.h"

#include "conditions.h"
#include "insn-flags.h"
#include "insn-attr.h"

#include "insn-codes.h"

#include "recog.h"

#include "output.h"

static const char *
output_1 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_1[] = {
    "lbz%U1%X1 %0,%1",
    "rldicl %0,%1,0,56",
  };
  return strings_1[which_alternative];
}

static const char *
output_8 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_8[] = {
    "lhz%U1%X1 %0,%1",
    "rldicl %0,%1,0,48",
  };
  return strings_8[which_alternative];
}

static const char *
output_12 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_12[] = {
    "lha%U1%X1 %0,%1",
    "extsh %0,%1",
  };
  return strings_12[which_alternative];
}

static const char *
output_16 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_16[] = {
    "lwz%U1%X1 %0,%1",
    "rldicl %0,%1,0,32",
  };
  return strings_16[which_alternative];
}

static const char *
output_20 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_20[] = {
    "lwa%U1%X1 %0,%1",
    "extsw %0,%1",
  };
  return strings_20[which_alternative];
}

static const char *
output_24 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_24[] = {
    "lbz%U1%X1 %0,%1",
    "{rlinm|rlwinm} %0,%1,0,24,31",
  };
  return strings_24[which_alternative];
}

static const char *
output_34 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_34[] = {
    "lbz%U1%X1 %0,%1",
    "{rlinm|rlwinm} %0,%1,0,24,31",
  };
  return strings_34[which_alternative];
}

static const char *
output_44 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_44[] = {
    "lhz%U1%X1 %0,%1",
    "{rlinm|rlwinm} %0,%1,0,16,31",
  };
  return strings_44[which_alternative];
}

static const char *
output_48 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_48[] = {
    "lha%U1%X1 %0,%1",
    "{exts|extsh} %0,%1",
  };
  return strings_48[which_alternative];
}

static const char *
output_52 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_52[] = {
    "{cax|add} %0,%1,%2",
    "{cal %0,%2(%1)|addi %0,%1,%2}",
    "{ai|addic} %0,%1,%2",
    "{cau|addis} %0,%1,%v2",
  };
  return strings_52[which_alternative];
}

static const char *
output_53 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_53[] = {
    "{cax.|add.} %3,%1,%2",
    "{ai.|addic.} %3,%1,%2",
    "#",
    "#",
  };
  return strings_53[which_alternative];
}

static const char *
output_55 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_55[] = {
    "{cax.|add.} %0,%1,%2",
    "{ai.|addic.} %0,%1,%2",
    "#",
    "#",
  };
  return strings_55[which_alternative];
}

static const char *
output_59 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_59[] = {
    "nor. %2,%1,%1",
    "#",
  };
  return strings_59[which_alternative];
}

static const char *
output_61 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_61[] = {
    "nor. %0,%1,%1",
    "#",
  };
  return strings_61[which_alternative];
}

static const char *
output_64 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_64[] = {
    "subf %0,%2,%1",
    "subfic %0,%2,%1",
  };
  return strings_64[which_alternative];
}

static const char *
output_65 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_65[] = {
    "{sf.|subfc.} %3,%2,%1",
    "#",
  };
  return strings_65[which_alternative];
}

static const char *
output_66 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_66[] = {
    "subf. %3,%2,%1",
    "#",
  };
  return strings_66[which_alternative];
}

static const char *
output_68 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_68[] = {
    "{sf.|subfc.} %0,%2,%1",
    "#",
  };
  return strings_68[which_alternative];
}

static const char *
output_69 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_69[] = {
    "subf. %0,%2,%1",
    "#",
  };
  return strings_69[which_alternative];
}

static const char *
output_83 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (TARGET_POWERPC)
    ? "{srai|srawi} %2,%1,31\n\txor %0,%2,%1\n\tsubf %0,%2,%0"
    : "{srai|srawi} %2,%1,31\n\txor %0,%2,%1\n\t{sf|subfc} %0,%2,%0";
}
}

static const char *
output_86 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (TARGET_POWERPC)
    ? "{srai|srawi} %2,%1,31\n\txor %0,%2,%1\n\tsubf %0,%0,%2"
    : "{srai|srawi} %2,%1,31\n\txor %0,%2,%1\n\t{sf|subfc} %0,%0,%2";
}
}

static const char *
output_93 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_93[] = {
    "{muls|mullw} %0,%1,%2",
    "{muli|mulli} %0,%1,%2",
  };
  return strings_93[which_alternative];
}

static const char *
output_94 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_94[] = {
    "{muls|mullw} %0,%1,%2",
    "{muli|mulli} %0,%1,%2",
  };
  return strings_94[which_alternative];
}

static const char *
output_121 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_121[] = {
    "and %0,%1,%2",
    "{rlinm|rlwinm} %0,%1,0,%m2,%M2",
    "{andil.|andi.} %0,%1,%b2",
    "{andiu.|andis.} %0,%1,%u2",
  };
  return strings_121[which_alternative];
}

static const char *
output_122 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_122[] = {
    "and. %3,%1,%2",
    "{andil.|andi.} %3,%1,%b2",
    "{andiu.|andis.} %3,%1,%u2",
    "{rlinm.|rlwinm.} %3,%1,0,%m2,%M2",
    "#",
    "#",
    "#",
    "#",
  };
  return strings_122[which_alternative];
}

static const char *
output_124 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_124[] = {
    "and. %0,%1,%2",
    "{andil.|andi.} %0,%1,%b2",
    "{andiu.|andis.} %0,%1,%u2",
    "{rlinm.|rlwinm.} %0,%1,0,%m2,%M2",
    "#",
    "#",
    "#",
    "#",
  };
  return strings_124[which_alternative];
}

static const char *
output_127 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_127[] = {
    "or %0,%1,%2",
    "{oril|ori} %0,%1,%b2",
    "{oriu|oris} %0,%1,%u2",
  };
  return strings_127[which_alternative];
}

static const char *
output_128 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_128[] = {
    "or. %3,%1,%2",
    "#",
  };
  return strings_128[which_alternative];
}

static const char *
output_130 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_130[] = {
    "or. %0,%1,%2",
    "#",
  };
  return strings_130[which_alternative];
}

static const char *
output_134 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_134[] = {
    "xor %0,%1,%2",
    "{xoril|xori} %0,%1,%b2",
    "{xoriu|xoris} %0,%1,%u2",
  };
  return strings_134[which_alternative];
}

static const char *
output_135 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_135[] = {
    "xor. %3,%1,%2",
    "#",
  };
  return strings_135[which_alternative];
}

static const char *
output_137 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_137[] = {
    "xor. %0,%1,%2",
    "#",
  };
  return strings_137[which_alternative];
}

static const char *
output_141 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_141[] = {
    "eqv. %3,%1,%2",
    "#",
  };
  return strings_141[which_alternative];
}

static const char *
output_143 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_143[] = {
    "eqv. %0,%1,%2",
    "#",
  };
  return strings_143[which_alternative];
}

static const char *
output_146 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_146[] = {
    "andc. %3,%2,%1",
    "#",
  };
  return strings_146[which_alternative];
}

static const char *
output_148 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_148[] = {
    "andc. %0,%2,%1",
    "#",
  };
  return strings_148[which_alternative];
}

static const char *
output_151 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_151[] = {
    "orc. %3,%2,%1",
    "#",
  };
  return strings_151[which_alternative];
}

static const char *
output_153 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_153[] = {
    "orc. %0,%2,%1",
    "#",
  };
  return strings_153[which_alternative];
}

static const char *
output_156 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_156[] = {
    "nand. %3,%1,%2",
    "#",
  };
  return strings_156[which_alternative];
}

static const char *
output_158 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_158[] = {
    "nand. %0,%1,%2",
    "#",
  };
  return strings_158[which_alternative];
}

static const char *
output_161 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_161[] = {
    "nor. %3,%1,%2",
    "#",
  };
  return strings_161[which_alternative];
}

static const char *
output_163 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_163[] = {
    "nor. %0,%1,%2",
    "#",
  };
  return strings_163[which_alternative];
}

static const char *
output_174 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[2]) & 31;
  int size = INTVAL (operands[1]) & 31;

  operands[4] = GEN_INT (32 - start - size);
  operands[1] = GEN_INT (start + size - 1);
  return "{rlimi|rlwimi} %0,%3,%h4,%h2,%h1";
}
}

static const char *
output_175 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int shift = INTVAL (operands[4]) & 31;
  int start = INTVAL (operands[2]) & 31;
  int size = INTVAL (operands[1]) & 31;

  operands[4] = GEN_INT (shift - start - size);
  operands[1] = GEN_INT (start + size - 1);
  return "{rlimi|rlwimi} %0,%3,%h4,%h2,%h1";
}
}

static const char *
output_176 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int shift = INTVAL (operands[4]) & 31;
  int start = INTVAL (operands[2]) & 31;
  int size = INTVAL (operands[1]) & 31;

  operands[4] = GEN_INT (32 - shift - start - size);
  operands[1] = GEN_INT (start + size - 1);
  return "{rlimi|rlwimi} %0,%3,%h4,%h2,%h1";
}
}

static const char *
output_177 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int shift = INTVAL (operands[4]) & 31;
  int start = INTVAL (operands[2]) & 31;
  int size = INTVAL (operands[1]) & 31;

  operands[4] = GEN_INT (32 - shift - start - size);
  operands[1] = GEN_INT (start + size - 1);
  return "{rlimi|rlwimi} %0,%3,%h4,%h2,%h1";
}
}

static const char *
output_178 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int extract_start = INTVAL (operands[5]) & 31;
  int extract_size = INTVAL (operands[4]) & 31;
  int insert_start = INTVAL (operands[2]) & 31;
  int insert_size = INTVAL (operands[1]) & 31;

/* Align extract field with insert field */
  operands[5] = GEN_INT (extract_start + extract_size - insert_start - insert_size);
  operands[1] = GEN_INT (insert_start + insert_size - 1);
  return "{rlimi|rlwimi} %0,%3,%h5,%h2,%h1";
}
}

static const char *
output_179 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[2]) & 63;
  int size = INTVAL (operands[1]) & 63;

  operands[1] = GEN_INT (64 - start - size);
  return "rldimi %0,%3,%H1,%H2";
}
}

static const char *
output_181 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 31;
  int size = INTVAL (operands[2]) & 31;

  if (start + size >= 32)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  return "{rlinm|rlwinm} %0,%1,%3,%s2,31";
}
}

static const char *
output_182 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 31;
  int size = INTVAL (operands[2]) & 31;

  /* If the bitfield being tested fits in the upper or lower half of a
     word, it is possible to use andiu. or andil. to test it.  This is
     useful because the condition register set-use delay is smaller for
     andi[ul]. than for rlinm.  This doesn't work when the starting bit
     position is 0 because the LT and GT bits may be set wrong.  */

  if ((start > 0 && start + size <= 16) || start >= 16)
    {
      operands[3] = GEN_INT (((1 << (16 - (start & 15)))
			      - (1 << (16 - (start & 15) - size))));
      if (start < 16)
	return "{andiu.|andis.} %4,%1,%3";
      else
	return "{andil.|andi.} %4,%1,%3";
    }

  if (start + size >= 32)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  return "{rlinm.|rlwinm.} %4,%1,%3,%s2,31";
}
}

static const char *
output_183 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 31;
  int size = INTVAL (operands[2]) & 31;

  if (start >= 16 && start + size == 32)
    {
      operands[3] = GEN_INT ((1 << (32 - start)) - 1);
      return "{andil.|andi.} %0,%1,%3";
    }

  if (start + size >= 32)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  return "{rlinm.|rlwinm.} %0,%1,%3,%s2,31";
}
}

static const char *
output_184 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 63;
  int size = INTVAL (operands[2]) & 63;

  if (start + size >= 64)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  operands[2] = GEN_INT (64 - size);
  return "rldicl %0,%1,%3,%2";
}
}

static const char *
output_185 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 63;
  int size = INTVAL (operands[2]) & 63;

  if (start + size >= 64)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  operands[2] = GEN_INT (64 - size);
  return "rldicl. %4,%1,%3,%2";
}
}

static const char *
output_186 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int start = INTVAL (operands[3]) & 63;
  int size = INTVAL (operands[2]) & 63;

  if (start + size >= 64)
    operands[3] = const0_rtx;
  else
    operands[3] = GEN_INT (start + size);
  operands[2] = GEN_INT (64 - size);
  return "rldicl. %0,%1,%3,%2";
}
}

static const char *
output_200 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_200[] = {
    "sle %0,%1,%2",
    "{sli|slwi} %0,%1,%h2",
  };
  return strings_200[which_alternative];
}

static const char *
output_202 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_202[] = {
    "sle. %3,%1,%2",
    "{sli.|slwi.} %3,%1,%h2",
  };
  return strings_202[which_alternative];
}

static const char *
output_204 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_204[] = {
    "sle. %0,%1,%2",
    "{sli.|slwi.} %0,%1,%h2",
  };
  return strings_204[which_alternative];
}

static const char *
output_210 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_210[] = {
    "sre %0,%1,%2",
    "mr %0,%1",
    "{s%A2i|s%A2wi} %0,%1,%h2",
  };
  return strings_210[which_alternative];
}

static const char *
output_211 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_211[] = {
    "mr %0,%1",
    "{sr|srw}%I2 %0,%1,%h2",
  };
  return strings_211[which_alternative];
}

static const char *
output_212 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_212[] = {
    "sre. %3,%1,%2",
    "mr. %1,%1",
    "{s%A2i.|s%A2wi.} %3,%1,%h2",
  };
  return strings_212[which_alternative];
}

static const char *
output_213 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_213[] = {
    "mr. %1,%1",
    "{sr|srw}%I2. %3,%1,%h2",
  };
  return strings_213[which_alternative];
}

static const char *
output_214 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_214[] = {
    "sre. %0,%1,%2",
    "mr. %0,%1",
    "{s%A2i.|s%A2wi.} %0,%1,%h2",
  };
  return strings_214[which_alternative];
}

static const char *
output_215 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_215[] = {
    "mr. %0,%1",
    "{sr|srw}%I2. %0,%1,%h2",
  };
  return strings_215[which_alternative];
}

static const char *
output_229 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_229[] = {
    "srea %0,%1,%2",
    "{srai|srawi} %0,%1,%h2",
  };
  return strings_229[which_alternative];
}

static const char *
output_231 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_231[] = {
    "srea. %3,%1,%2",
    "{srai.|srawi.} %3,%1,%h2",
  };
  return strings_231[which_alternative];
}

static const char *
output_233 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_233[] = {
    "srea. %0,%1,%2",
    "{srai.|srawi.} %0,%1,%h2",
  };
  return strings_233[which_alternative];
}

static const char *
output_235 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (REGNO (operands[0]) == REGNO (operands[1]))
    return "";
  else
    return "fmr %0,%1";
}
}

static const char *
output_296 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (rs6000_fpmem_offset > 32760)
    {
      rtx xop[3];

      xop[0] = operands[0];
      xop[1] = (frame_pointer_needed) ? frame_pointer_rtx : stack_pointer_rtx;
      xop[2] = GEN_INT ((rs6000_fpmem_offset >> 16) + ((rs6000_fpmem_offset & 0x8000) >> 15));
      output_asm_insn ("{cau|addis} %0,%1,%2", xop);
    }

  return "";
}
}

static const char *
output_297 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rtx indx;

  if (rs6000_fpmem_offset > 32760)
    indx = operands[1];
  else if (frame_pointer_needed)
    indx = frame_pointer_rtx;
  else
    indx = stack_pointer_rtx;

  operands[2] = gen_rtx_MEM (SImode,
			 gen_rtx_PLUS (Pmode,
				  indx,
				  GEN_INT ((((rs6000_fpmem_offset & 0xffff) ^ 0x8000) - 0x8000)
					   + ((WORDS_BIG_ENDIAN != 0) * 4))));

  return "{st|stw} %0,%2";
}
}

static const char *
output_298 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rtx indx;

  if (rs6000_fpmem_offset > 32760)
    indx = operands[1];
  else if (frame_pointer_needed)
    indx = frame_pointer_rtx;
  else
    indx = stack_pointer_rtx;

  operands[2] = gen_rtx_MEM (SImode,
			 gen_rtx_PLUS (Pmode,
				  indx,
				  GEN_INT ((((rs6000_fpmem_offset & 0xffff) ^ 0x8000) - 0x8000)
					   + ((WORDS_BIG_ENDIAN == 0) * 4))));

  return "{st|stw} %0,%2";
}
}

static const char *
output_299 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rtx indx;
  HOST_WIDE_INT offset = rs6000_fpmem_offset;

  if (rs6000_fpmem_offset > 32760)
    {
      indx = operands[1];
      offset = (((offset & 0xffff) ^ 0x8000) - 0x8000);
    }
  else if (frame_pointer_needed)
    indx = frame_pointer_rtx;
  else
    indx = stack_pointer_rtx;

  operands[2] = gen_rtx_MEM (SImode,
			 gen_rtx_PLUS (Pmode, indx, GEN_INT (offset)));

  return "lfd %0,%2";
}
}

static const char *
output_303 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rtx indx;

  if (rs6000_fpmem_offset > 32760)
    indx = operands[1];
  else if (frame_pointer_needed)
    indx = frame_pointer_rtx;
  else
    indx = stack_pointer_rtx;

  operands[2] = gen_rtx_MEM (DFmode,
			 gen_rtx_PLUS (Pmode,
				  indx,
				  GEN_INT ((((rs6000_fpmem_offset & 0xffff)
					     ^ 0x8000) - 0x8000))));

  return "stfd %0,%2";
}
}

static const char *
output_304 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rtx indx;

  if (rs6000_fpmem_offset > 32760)
    indx = operands[1];
  else if (frame_pointer_needed)
    indx = frame_pointer_rtx;
  else
    indx = stack_pointer_rtx;

  operands[2] = gen_rtx_MEM (DFmode,
			 gen_rtx_PLUS (Pmode,
				  indx,
				  GEN_INT ((((rs6000_fpmem_offset & 0xffff) ^ 0x8000) - 0x8000)
					   + ((WORDS_BIG_ENDIAN) ? 4 : 0))));

  return "{l|lwz} %0,%2";
}
}

static const char *
output_311 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (WORDS_BIG_ENDIAN)
    return (GET_CODE (operands[2])) != CONST_INT
	    ? "{a|addc} %L0,%L1,%L2\n\t{ae|adde} %0,%1,%2"
	    : "{ai|addic} %L0,%L1,%2\n\t{a%G2e|add%G2e} %0,%1";
  else
    return (GET_CODE (operands[2])) != CONST_INT
	    ? "{a|addc} %0,%1,%2\n\t{ae|adde} %L0,%L1,%L2"
	    : "{ai|addic} %0,%1,%2\n\t{a%G2e|add%G2e} %L0,%L1";
}
}

static const char *
output_312 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (WORDS_BIG_ENDIAN)
    return (GET_CODE (operands[1]) != CONST_INT)
	    ? "{sf|subfc} %L0,%L2,%L1\n\t{sfe|subfe} %0,%2,%1"
	    : "{sfi|subfic} %L0,%L2,%1\n\t{sf%G1e|subf%G1e} %0,%2";
  else
    return (GET_CODE (operands[1]) != CONST_INT)
	    ? "{sf|subfc} %0,%2,%1\n\t{sfe|subfe} %L0,%L2,%L1"
	    : "{sfi|subfic} %0,%2,%1\n\t{sf%G1e|subf%G1e} %L0,%L2";
}
}

static const char *
output_313 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (WORDS_BIG_ENDIAN)
    ? "{sfi|subfic} %L0,%L1,0\n\t{sfze|subfze} %0,%1"
    : "{sfi|subfic} %0,%1,0\n\t{sfze|subfze} %L0,%L1";
}
}

static const char *
output_316 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (WORDS_BIG_ENDIAN)
    ? "mulhw %0,%1,%2\n\tmullw %L0,%1,%2"
    : "mulhw %L0,%1,%2\n\tmullw %0,%1,%2";
}
}

static const char *
output_319 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (WORDS_BIG_ENDIAN)
    ? "mulhwu %0,%1,%2\n\tmullw %L0,%1,%2"
    : "mulhwu %L0,%1,%2\n\tmullw %0,%1,%2";
}
}

static const char *
output_320 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return (WORDS_BIG_ENDIAN)
    ? "mulhwu %0,%1,%2\n\tmullw %L0,%1,%2"
    : "mulhwu %L0,%1,%2\n\tmullw %0,%1,%2";
}
}

static const char *
output_328 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_328[] = {
    "{sli|slwi} %0,%L1,%h2\n\t{cal %L0,0(0)|li %L0,0}",
    "sl%I2q %L0,%L1,%h2\n\tsll%I2q %0,%1,%h2",
    "sl%I2q %L0,%L1,%h2\n\tsll%I2q %0,%1,%h2",
    "sl%I2q %L0,%L1,%h2\n\tsll%I2q %0,%1,%h2",
  };
  return strings_328[which_alternative];
}

static const char *
output_329 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_329[] = {
    "{s%A2i|s%A2wi} %L0,%1,%h2\n\t{cal %0,0(0)|li %0,0}",
    "sr%I2q %0,%1,%h2\n\tsrl%I2q %L0,%L1,%h2",
    "sr%I2q %0,%1,%h2\n\tsrl%I2q %L0,%L1,%h2",
    "sr%I2q %0,%1,%h2\n\tsrl%I2q %L0,%L1,%h2",
  };
  return strings_329[which_alternative];
}

static const char *
output_330 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_330[] = {
    "{srai|srawi} %0,%1,31\n\t{srai|srawi} %L0,%1,%h2",
    "sraiq %0,%1,%h2\n\tsrliq %L0,%L1,%h2",
  };
  return strings_330[which_alternative];
}

static const char *
output_332 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_332[] = {
    "add %0,%1,%2",
    "addi %0,%1,%2",
    "addic %0,%1,%2",
    "addis %0,%1,%v2",
  };
  return strings_332[which_alternative];
}

static const char *
output_333 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_333[] = {
    "add. %3,%1,%2",
    "addic. %3,%1,%2",
  };
  return strings_333[which_alternative];
}

static const char *
output_334 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_334[] = {
    "add. %0,%1,%2",
    "addic. %0,%1,%2",
  };
  return strings_334[which_alternative];
}

static const char *
output_339 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_339[] = {
    "subf %0,%2,%1",
    "subfic %0,%2,%1",
  };
  return strings_339[which_alternative];
}

static const char *
output_389 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_389[] = {
    "and %0,%1,%2",
    "rldic%B2 %0,%1,0,%S2",
    "andi. %0,%1,%b2",
    "andis. %0,%1,%u2",
  };
  return strings_389[which_alternative];
}

static const char *
output_390 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_390[] = {
    "and. %3,%1,%2",
    "andi. %3,%1,%b2",
    "andis. %3,%1,%u2",
    "rldic%B2. %3,%1,0,%S2",
  };
  return strings_390[which_alternative];
}

static const char *
output_391 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_391[] = {
    "and. %0,%1,%2",
    "andi. %0,%1,%b2",
    "andis. %0,%1,%u2",
    "rldic%B2. %0,%1,0,%S2",
  };
  return strings_391[which_alternative];
}

static const char *
output_393 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_393[] = {
    "or %0,%1,%2",
    "ori %0,%1,%b2",
    "oris %0,%1,%u2",
  };
  return strings_393[which_alternative];
}

static const char *
output_398 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_398[] = {
    "xor %0,%1,%2",
    "xori %0,%1,%b2",
    "xoris %0,%1,%u2",
  };
  return strings_398[which_alternative];
}

static const char *
output_423 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_423[] = {
    "mr %0,%1",
    "{cal|la} %0,%a1",
    "{l%U1%X1|lwz%U1%X1} %0,%1",
    "{st%U0%X0|stw%U0%X0} %1,%0",
    "{lil|li} %0,%1",
    "{liu|lis} %0,%v1",
    "#",
    "{cal|la} %0,%1(%*)",
    "mf%1 %0",
    "mt%0 %1",
    "mt%0 %1",
    "cror 0,0,0",
  };
  return strings_423[which_alternative];
}

static const char *
output_427 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_427[] = {
    "mr %0,%1",
    "lhz%U1%X1 %0,%1",
    "sth%U0%X0 %1,%0",
    "{lil|li} %0,%w1",
    "mf%1 %0",
    "mt%0 %1",
    "mt%0 %1",
    "cror 0,0,0",
  };
  return strings_427[which_alternative];
}

static const char *
output_429 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_429[] = {
    "mr %0,%1",
    "lbz%U1%X1 %0,%1",
    "stb%U0%X0 %1,%0",
    "{lil|li} %0,%1",
    "mf%1 %0",
    "mt%0 %1",
    "mt%0 %1",
    "cror 0,0,0",
  };
  return strings_429[which_alternative];
}

static const char *
output_431 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_431[] = {
    "mcrf %0,%1",
    "mtcrf 128,%1",
    "{rlinm|rlwinm} %1,%1,%F0,0,31\n\tmtcrf %R0,%1\n\t{rlinm|rlwinm} %1,%1,%f0,0,31",
    "mfcr %0",
    "mfcr %0\n\t{rlinm|rlwinm} %0,%0,%f1,0,3",
    "mr %0,%1",
    "{l%U1%X1|lwz%U1%X1} %0,%1",
    "{st%U0%U1|stw%U0%U1} %1,%0",
  };
  return strings_431[which_alternative];
}

static const char *
output_434 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_434[] = {
    "mr %0,%1",
    "{l%U1%X1|lwz%U1%X1} %0,%1",
    "{st%U0%X0|stw%U0%X0} %1,%0",
    "fmr %0,%1",
    "lfs%U1%X1 %0,%1",
    "stfs%U0%X0 %1,%0",
    "#",
    "#",
  };
  return strings_434[which_alternative];
}

static const char *
output_435 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_435[] = {
    "mr %0,%1",
    "{l%U1%X1|lwz%U1%X1} %0,%1",
    "{st%U0%X0|stw%U0%X0} %1,%0",
    "{lil|li} %0,%1",
    "{liu|lis} %0,%v1",
    "{cal|la} %0,%1(%*)",
    "#",
    "#",
  };
  return strings_435[which_alternative];
}

static const char *
output_440 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();
    case 0:
      /* We normally copy the low-numbered register first.  However, if
	 the first register operand 0 is the same as the second register
	 of operand 1, we must copy in the opposite order.  */
      if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
	return "mr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1";
    case 1:
      if (offsettable_memref_p (operands[1])
	  || (GET_CODE (operands[1]) == MEM
	      && (GET_CODE (XEXP (operands[1], 0)) == LO_SUM
		  || GET_CODE (XEXP (operands[1], 0)) == PRE_INC
		  || GET_CODE (XEXP (operands[1], 0)) == PRE_DEC)))
	{
	  /* If the low-address word is used in the address, we must load
	     it last.  Otherwise, load it first.  Note that we cannot have
	     auto-increment in that case since the address register is
	     known to be dead.  */
	  if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
				 operands[1], 0))
	    return "{l|lwz} %L0,%L1\n\t{l|lwz} %0,%1";
	  else
	    return "{l%U1|lwz%U1} %0,%1\n\t{l|lwz} %L0,%L1";
	}
      else
	{
	  rtx addreg;

	  addreg = find_addr_reg (XEXP (operands[1], 0));
	  if (refers_to_regno_p (REGNO (operands[0]),
				 REGNO (operands[0]) + 1,
				 operands[1], 0))
	    {
	      output_asm_insn ("{cal|la} %0,4(%0)", &addreg);
	      output_asm_insn ("{lx|lwzx} %L0,%1", operands);
	      output_asm_insn ("{cal|la} %0,-4(%0)", &addreg);
	      return "{lx|lwzx} %0,%1";
	    }
	  else
	    {
	      output_asm_insn ("{lx|lwzx} %0,%1", operands);
	      output_asm_insn ("{cal|la} %0,4(%0)", &addreg);
	      output_asm_insn ("{lx|lwzx} %L0,%1", operands);
	      output_asm_insn ("{cal|la} %0,-4(%0)", &addreg);
	      return "";
	    }
	}
    case 2:
      if (offsettable_memref_p (operands[0])
	  || (GET_CODE (operands[0]) == MEM
	      && (GET_CODE (XEXP (operands[0], 0)) == LO_SUM
		  || GET_CODE (XEXP (operands[0], 0)) == PRE_INC
		  || GET_CODE (XEXP (operands[0], 0)) == PRE_DEC)))
	return "{st%U0|stw%U0} %1,%0\n\t{st|stw} %L1,%L0";
      else
	{
	  rtx addreg;

	  addreg = find_addr_reg (XEXP (operands[0], 0));
	  output_asm_insn ("{stx|stwx} %1,%0", operands);
	  output_asm_insn ("{cal|la} %0,4(%0)", &addreg);
	  output_asm_insn ("{stx|stwx} %L1,%0", operands);
	  output_asm_insn ("{cal|la} %0,-4(%0)", &addreg);
	  return "";
	}
    case 3:
    case 4:
    case 5:
      return "#";
    case 6:
      return "fmr %0,%1";
    case 7:
      return "lfd%U1%X1 %0,%1";
    case 8:
      return "stfd%U0%X0 %1,%0";
    }
}
}

static const char *
output_441 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();
    case 0:
      /* We normally copy the low-numbered register first.  However, if
	 the first register operand 0 is the same as the second register of
	 operand 1, we must copy in the opposite order.  */
      if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
	return "mr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1";
    case 1:
      /* If the low-address word is used in the address, we must load it
	 last.  Otherwise, load it first.  Note that we cannot have
	 auto-increment in that case since the address register is known to be
	 dead.  */
      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
			     operands [1], 0))
	return "{l|lwz} %L0,%L1\n\t{l|lwz} %0,%1";
      else
	return "{l%U1|lwz%U1} %0,%1\n\t{l|lwz} %L0,%L1";
    case 2:
      return "{st%U0|stw%U0} %1,%0\n\t{st|stw} %L1,%L0";
    case 3:
    case 4:
    case 5:
      return "#";
    }
}
}

static const char *
output_442 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_442[] = {
    "mr %0,%1",
    "ld%U1%X1 %0,%1",
    "std%U0%X0 %1,%0",
    "#",
    "#",
    "#",
    "fmr %0,%1",
    "lfd%U1%X1 %0,%1",
    "stfd%U0%X0 %1,%0",
  };
  return strings_442[which_alternative];
}

static const char *
output_443 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_443[] = {
    "mr %0,%1",
    "ld%U1%X1 %0,%1",
    "std%U0%X0 %1,%0",
    "#",
    "#",
    "#",
  };
  return strings_443[which_alternative];
}

static const char *
output_445 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();
    case 0:
      /* We normally copy the low-numbered register first.  However, if
	 the first register operand 0 is the same as the second register of
	 operand 1, we must copy in the opposite order.  */
      if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
	return "mr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1";
    case 1:
      /* If the low-address word is used in the address, we must load it
	 last.  Otherwise, load it first.  Note that we cannot have
	 auto-increment in that case since the address register is known to be
	 dead.  */
      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
			     operands [1], 0))
	return "{l|lwz} %L0,%L1\n\t{l|lwz} %0,%1";
      else
	return "{l%U1|lwz%U1} %0,%1\n\t{l|lwz} %L0,%L1";
    case 2:
      return "{st%U0|stw%U0} %1,%0\n\t{st|stw} %L1,%L0";
    case 3:
      return "fmr %0,%1";
    case 4:
      return "lfd%U1%X1 %0,%1";
    case 5:
      return "stfd%U0%X0 %1,%0";
    case 6:
    case 7:
    case 8:
    case 9:
    case 10:
      return "#";
    }
}
}

static const char *
output_448 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_448[] = {
    "mr %0,%1",
    "ld%U1%X1 %0,%1",
    "std%U0%X0 %1,%0",
    "li %0,%1",
    "lis %0,%v1",
    "#",
    "{cal|la} %0,%1(%*)",
    "fmr %0,%1",
    "lfd%U1%X1 %0,%1",
    "stfd%U0%X0 %1,%0",
    "mf%1 %0",
    "mt%0 %1",
    "cror 0,0,0",
  };
  return strings_448[which_alternative];
}

static const char *
output_449 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  return ((unsigned HOST_WIDE_INT)
	  (CONST_DOUBLE_LOW (operands[1]) + 0x8000) < 0x10000)
	 ? "li %0,%1" : "lis %0,%v1";
}
}

static const char *
output_458 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();

    case 0:
      return "{stsi|stswi} %1,%P0,16";

    case 1:
      return "{st%U0|stw%U0} %1,%0\n\t{st|stw} %L1,%L0\n\t{st|stw} %Y1,%Y0\n\t{st|stw} %Z1,%Z0";

    case 2:
      /* Normally copy registers with lowest numbered register copied first.
	 But copy in the other order if the first register of the output
	 is the second, third, or fourth register in the input.  */
      if (REGNO (operands[0]) >= REGNO (operands[1]) + 1
	  && REGNO (operands[0]) <= REGNO (operands[1]) + 3)
	return "mr %Z0,%Z1\n\tmr %Y0,%Y1\n\tmr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1\n\tmr %Y0,%Y1\n\tmr %Z0,%Z1";
    case 3:
      /* If the address is not used in the output, we can use lsi.  Otherwise,
	 fall through to generating four loads.  */
      if (! reg_overlap_mentioned_p (operands[0], operands[1]))
	return "{lsi|lswi} %0,%P1,16";
      /* ... fall through ... */
    case 4:
      /* If the address register is the same as the register for the lowest-
	 addressed word, load it last.  Similarly for the next two words.
	 Otherwise load lowest address to highest.  */
      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
			     operands[1], 0))
	return "{l|lwz} %L0,%L1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %0,%1";
      else if (refers_to_regno_p (REGNO (operands[0]) + 1,
				  REGNO (operands[0]) + 2, operands[1], 0))
	return "{l|lwz} %0,%1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %L0,%L1";
      else if (refers_to_regno_p (REGNO (operands[0]) + 2,
				  REGNO (operands[0]) + 3, operands[1], 0))
	return "{l|lwz} %0,%1\n\t{l|lwz} %L0,%L1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %Y0,%Y1";
      else
	return "{l%U1|lwz%U1} %0,%1\n\t{l|lwz} %L0,%L1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1";
    }
}
}

static const char *
output_459 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();

    case 0:
      return "{st%U0|stw%U0} %1,%0\n\t{st|stw} %L1,%L0\n\t{st|stw} %Y1,%Y0\n\t{st|stw} %Z1,%Z0";

    case 1:
      /* Normally copy registers with lowest numbered register copied first.
	 But copy in the other order if the first register of the output
	 is the second, third, or fourth register in the input.  */
      if (REGNO (operands[0]) >= REGNO (operands[1]) + 1
	  && REGNO (operands[0]) <= REGNO (operands[1]) + 3)
	return "mr %Z0,%Z1\n\tmr %Y0,%Y1\n\tmr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1\n\tmr %Y0,%Y1\n\tmr %Z0,%Z1";
    case 2:
      /* If the address register is the same as the register for the lowest-
	 addressed word, load it last.  Similarly for the next two words.
	 Otherwise load lowest address to highest.  */
      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
			     operands[1], 0))
	return "{l|lwz} %L0,%L1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %0,%1";
      else if (refers_to_regno_p (REGNO (operands[0]) + 1,
				  REGNO (operands[0]) + 2, operands[1], 0))
	return "{l|lwz} %0,%1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %L0,%L1";
      else if (refers_to_regno_p (REGNO (operands[0]) + 2,
				  REGNO (operands[0]) + 3, operands[1], 0))
	return "{l|lwz} %0,%1\n\t{l|lwz} %L0,%L1\n\t{l|lwz} %Z0,%Z1\n\t{l|lwz} %Y0,%Y1";
      else
	return "{l%U1|lwz%U1} %0,%1\n\t{l|lwz} %L0,%L1\n\t{l|lwz} %Y0,%Y1\n\t{l|lwz} %Z0,%Z1";
    }
}
}

static const char *
output_460 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  switch (which_alternative)
    {
    default:
      abort ();
    case 0:
      /* We normally copy the low-numbered register first.  However, if
	 the first register operand 0 is the same as the second register of
	 operand 1, we must copy in the opposite order.  */
      if (REGNO (operands[0]) == REGNO (operands[1]) + 1)
	return "mr %L0,%L1\n\tmr %0,%1";
      else
	return "mr %0,%1\n\tmr %L0,%L1";
    case 1:
      /* If the low-address word is used in the address, we must load it
	 last.  Otherwise, load it first.  Note that we cannot have
	 auto-increment in that case since the address register is known to be
	 dead.  */
      if (refers_to_regno_p (REGNO (operands[0]), REGNO (operands[0]) + 1,
			     operands [1], 0))
	return "ld %L0,%L1\n\tld %0,%1";
      else
	return "ld%U1 %0,%1\n\tld %L0,%L1";
    case 2:
      return "std%U0 %1,%0\n\tstd %L1,%L0";
    }
}
}

static const char *
output_462 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* We have to handle the case where the pseudo used to contain the address
     is assigned to one of the output registers.  */
  int i, j;
  int words = XVECLEN (operands[0], 0);
  rtx xop[10];

  if (XVECLEN (operands[0], 0) == 1)
    return "{l|lwz} %1,0(%2)";

  for (i = 0; i < words; i++)
    if (refers_to_regno_p (REGNO (operands[1]) + i,
			   REGNO (operands[1]) + i + 1, operands[2], 0))
      {
	if (i == words-1)
	  {
	    xop[0] = operands[1];
	    xop[1] = operands[2];
	    xop[2] = GEN_INT (4 * (words-1));
	    output_asm_insn ("{lsi|lswi} %0,%1,%2\n\t{l|lwz} %1,%2(%1)", xop);
	    return "";
	  }
	else if (i == 0)
	  {
	    xop[0] = operands[1];
	    xop[1] = gen_rtx_REG (SImode, REGNO (operands[1]) + 1);
	    xop[2] = GEN_INT (4 * (words-1));
	    output_asm_insn ("{cal %0,4(%0)|addi %0,%0,4}\n\t{lsi|lswi} %1,%0,%2\n\t{l|lwz} %0,-4(%0)", xop);
	    return "";
	  }
	else
	  {
	    for (j = 0; j < words; j++)
	      if (j != i)
		{
		  xop[0] = gen_rtx_REG (SImode, REGNO (operands[1]) + j);
		  xop[1] = operands[2];
		  xop[2] = GEN_INT (j * 4);
		  output_asm_insn ("{l|lwz} %0,%2(%1)", xop);
		}
	    xop[0] = operands[2];
	    xop[1] = GEN_INT (i * 4);
	    output_asm_insn ("{l|lwz} %0,%1(%0)", xop);
	    return "";
	  }
      }

  return "{lsi|lswi} %1,%2,%N0";
}
}

static const char *
output_482 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_482[] = {
    "ldux %3,%0,%2",
    "ldu %3,%2(%0)",
  };
  return strings_482[which_alternative];
}

static const char *
output_484 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_484[] = {
    "stdux %3,%0,%2",
    "stdu %3,%2(%0)",
  };
  return strings_484[which_alternative];
}

static const char *
output_485 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_485[] = {
    "{lux|lwzux} %3,%0,%2",
    "{lu|lwzu} %3,%2(%0)",
  };
  return strings_485[which_alternative];
}

static const char *
output_486 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_486[] = {
    "{stux|stwux} %3,%0,%2",
    "{stu|stwu} %3,%2(%0)",
  };
  return strings_486[which_alternative];
}

static const char *
output_487 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_487[] = {
    "lhzux %3,%0,%2",
    "lhzu %3,%2(%0)",
  };
  return strings_487[which_alternative];
}

static const char *
output_488 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_488[] = {
    "lhzux %3,%0,%2",
    "lhzu %3,%2(%0)",
  };
  return strings_488[which_alternative];
}

static const char *
output_489 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_489[] = {
    "lhaux %3,%0,%2",
    "lhau %3,%2(%0)",
  };
  return strings_489[which_alternative];
}

static const char *
output_490 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_490[] = {
    "sthux %3,%0,%2",
    "sthu %3,%2(%0)",
  };
  return strings_490[which_alternative];
}

static const char *
output_491 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_491[] = {
    "lbzux %3,%0,%2",
    "lbzu %3,%2(%0)",
  };
  return strings_491[which_alternative];
}

static const char *
output_492 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_492[] = {
    "lbzux %3,%0,%2",
    "lbzu %3,%2(%0)",
  };
  return strings_492[which_alternative];
}

static const char *
output_493 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_493[] = {
    "stbux %3,%0,%2",
    "stbu %3,%2(%0)",
  };
  return strings_493[which_alternative];
}

static const char *
output_494 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_494[] = {
    "lfsux %3,%0,%2",
    "lfsu %3,%2(%0)",
  };
  return strings_494[which_alternative];
}

static const char *
output_495 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_495[] = {
    "stfsux %3,%0,%2",
    "stfsu %3,%2(%0)",
  };
  return strings_495[which_alternative];
}

static const char *
output_496 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_496[] = {
    "{lux|lwzux} %3,%0,%2",
    "{lu|lwzu} %3,%2(%0)",
  };
  return strings_496[which_alternative];
}

static const char *
output_497 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_497[] = {
    "{stux|stwux} %3,%0,%2",
    "{stu|stwu} %3,%2(%0)",
  };
  return strings_497[which_alternative];
}

static const char *
output_498 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_498[] = {
    "lfdux %3,%0,%2",
    "lfdu %3,%2(%0)",
  };
  return strings_498[which_alternative];
}

static const char *
output_499 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_499[] = {
    "stfdux %3,%0,%2",
    "stfdu %3,%2(%0)",
  };
  return strings_499[which_alternative];
}

static const char *
output_509 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  rs6000_output_load_toc_table (asm_out_file, 30);
  return "";
}
}

static const char *
output_516 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return "{brl|blrl}";
}
}

static const char *
output_517 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return "{brl|blrl}";
}
}

static const char *
output_520 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z0@local" : "bl %z0";
}
}

static const char *
output_521 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z0@local" : "bl %z0";
}
}

static const char *
output_522 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z1@local" : "bl %z1";
}
}

static const char *
output_523 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z1@local" : "bl %z1";
}
}

static const char *
output_524 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* Indirect calls should go through call_indirect */
  if (GET_CODE (operands[0]) == REG)
    abort ();

  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (TARGET_WINDOWS_NT) ? "bl %z0\n\t.znop %z0" : "bl %z0\n\t%.";
}
}

static const char *
output_525 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* Indirect calls should go through call_indirect */
  if (GET_CODE (operands[0]) == REG)
    abort ();

  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (TARGET_WINDOWS_NT) ? "bl %z0\n\t.znop %z0" : "bl %z0\n\t%.";
}
}

static const char *
output_526 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* Indirect calls should go through call_indirect */
  if (GET_CODE (operands[0]) == REG)
    abort ();

  if (INTVAL (operands[2]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[2]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z0@plt" : "bl %z0";
}
}

static const char *
output_527 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* This should be handled by call_value_indirect */
  if (GET_CODE (operands[1]) == REG)
    abort ();

  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (TARGET_WINDOWS_NT) ? "bl %z1\n\t.znop %z1" : "bl %z1\n\t%.";
}
}

static const char *
output_528 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* This should be handled by call_value_indirect */
  if (GET_CODE (operands[1]) == REG)
    abort ();

  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (TARGET_WINDOWS_NT) ? "bl %z1\n\t.znop %z1" : "bl %z1\n\t%.";
}
}

static const char *
output_529 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  /* This should be handled by call_value_indirect */
  if (GET_CODE (operands[1]) == REG)
    abort ();

  if (INTVAL (operands[3]) & CALL_V4_SET_FP_ARGS)
    output_asm_insn ("crxor 6,6,6", operands);

  else if (INTVAL (operands[3]) & CALL_V4_CLEAR_FP_ARGS)
    output_asm_insn ("creqv 6,6,6", operands);

  return (DEFAULT_ABI == ABI_V4 && flag_pic) ? "bl %z1@plt" : "bl %z1";
}
}

static const char *
output_570 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int is_bit = ccr_bit (operands[1], 1);
  int put_bit = 31 - (INTVAL (operands[3]) & 31);
  int count;

  if (is_bit >= put_bit)
    count = is_bit - put_bit;
  else
    count = 32 - (put_bit - is_bit);

  operands[4] = GEN_INT (count);
  operands[5] = GEN_INT (put_bit);

  return "%D1mfcr %0\n\t{rlinm|rlwinm} %0,%0,%4,%5,%5";
}
}

static const char *
output_571 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  int is_bit = ccr_bit (operands[1], 1);
  int put_bit = 31 - (INTVAL (operands[3]) & 31);
  int count;

  if (is_bit >= put_bit)
    count = is_bit - put_bit;
  else
    count = 32 - (put_bit - is_bit);

  operands[5] = GEN_INT (count);
  operands[6] = GEN_INT (put_bit);

  return "%D1mfcr %4\n\t{rlinm.|rlwinm.} %4,%4,%5,%6,%6";
}
}

static const char *
output_572 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  enum rtx_code code1, code2;

  code1 = GET_CODE (operands[1]);
  code2 = GET_CODE (operands[3]);

  if ((code1 == EQ || code1 == LT || code1 == GT
       || code1 == LTU || code1 == GTU
       || (code1 != NE && GET_MODE (operands[2]) == CCFPmode))
      !=
      (code2 == EQ || code2 == LT || code2 == GT
       || code2 == LTU || code2 == GTU
       || (code2 != NE && GET_MODE (operands[4]) == CCFPmode)))
    return "%C1%C3crxor %E0,%j1,%j3";
  else
    return "%C1%C3creqv %E0,%j1,%j3";
}
}

static const char *
output_574 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_574[] = {
    "xor %0,%1,%2\n\t{sfi|subfic} %3,%0,0\n\t{ae|adde} %0,%3,%0",
    "{sfi|subfic} %3,%1,0\n\t{ae|adde} %0,%3,%1",
    "{xoril|xori} %0,%1,%b2\n\t{sfi|subfic} %3,%0,0\n\t{ae|adde} %0,%3,%0",
    "{xoriu|xoris} %0,%1,%u2\n\t{sfi|subfic} %3,%0,0\n\t{ae|adde} %0,%3,%0",
    "{sfi|subfic} %0,%1,%2\n\t{sfi|subfic} %3,%0,0\n\t{ae|adde} %0,%3,%0",
  };
  return strings_574[which_alternative];
}

static const char *
output_575 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_575[] = {
    "xor %0,%1,%2\n\tsubfic %3,%0,0\n\tadde %0,%3,%0",
    "subfic %3,%1,0\n\tadde %0,%3,%1",
    "xori %0,%1,%b2\n\tsubfic %3,%0,0\n\tadde %0,%3,%0",
    "xoris %0,%1,%u2\n\tsubfic %3,%0,0\n\tadde %0,%3,%0",
    "subfic %0,%1,%2\n\tsubfic %3,%0,0\n\tadde %0,%3,%0",
  };
  return strings_575[which_alternative];
}

static const char *
output_576 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_576[] = {
    "xor %0,%1,%2\n\t{sfi|subfic} %3,%0,0\n\t{ae.|adde.} %0,%3,%0",
    "{sfi|subfic} %3,%1,0\n\t{ae.|adde.} %0,%3,%1",
    "{xoril|xori} %0,%1,%b2\n\t{sfi|subfic} %3,%0,0\n\t{ae.|adde.} %0,%3,%0",
    "{xoriu|xoris} %0,%1,%u2\n\t{sfi|subfic} %3,%0,0\n\t{ae.|adde.} %0,%3,%0",
    "{sfi|subfic} %0,%1,%2\n\t{sfi|subfic} %3,%0,0\n\t{ae.|adde.} %0,%3,%0",
  };
  return strings_576[which_alternative];
}

static const char *
output_577 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_577[] = {
    "xor %0,%1,%2\n\tsubfic %3,%0,0\n\tadde. %0,%3,%0",
    "subfic %3,%1,0\n\tadde. %0,%3,%1",
    "xori %0,%1,%b2\n\tsubfic %3,%0,0\n\tadde. %0,%3,%0",
    "xoris %0,%1,%u2\n\tsubfic %3,%0,0\n\tadde. %0,%3,%0",
    "subfic %0,%1,%2\n\tsubfic %3,%0,0\n\tadde. %0,%3,%0",
  };
  return strings_577[which_alternative];
}

static const char *
output_579 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_579[] = {
    "xor %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
    "{sfi|subfic} %4,%1,0\n\t{aze|addze} %0,%3",
    "{xoril|xori} %4,%1,%b2\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
    "{xoriu|xoris} %4,%1,%u2\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
    "{sfi|subfic} %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
  };
  return strings_579[which_alternative];
}

static const char *
output_580 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_580[] = {
    "xor %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
    "{sfi|subfic} %4,%1,0\n\t{aze.|addze.} %4,%3",
    "{xoril|xori} %4,%1,%b2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
    "{xoriu|xoris} %4,%1,%u2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
    "{sfi|subfic} %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
  };
  return strings_580[which_alternative];
}

static const char *
output_581 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_581[] = {
    "xor %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
    "{sfi|subfic} %4,%1,0\n\t{aze.|addze.} %0,%3",
    "{xoril|xori} %4,%1,%b2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
    "{xoriu|xoris} %4,%1,%u2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
    "{sfi|subfic} %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
  };
  return strings_581[which_alternative];
}

static const char *
output_582 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_582[] = {
    "xor %0,%1,%2\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
    "{ai|addic} %0,%1,-1\n\t{sfe|subfe} %0,%0,%0",
    "{xoril|xori} %0,%1,%b2\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
    "{xoriu|xoris} %0,%1,%u2\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
    "{sfi|subfic} %0,%1,%2\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
  };
  return strings_582[which_alternative];
}

static const char *
output_591 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_591[] = {
    "doz %3,%2,%1\n\t{sfi|subfic} %0,%3,0\n\t{ae|adde} %0,%0,%3",
    "{ai|addic} %0,%1,-1\n\t{aze|addze} %0,%0\n\t{sri|srwi} %0,%0,31",
  };
  return strings_591[which_alternative];
}

static const char *
output_592 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_592[] = {
    "doz %3,%2,%1\n\t{sfi|subfic} %0,%3,0\n\t{ae.|adde.} %0,%0,%3",
    "{ai|addic} %0,%1,-1\n\t{aze|addze} %0,%0\n\t{sri.|srwi.} %0,%0,31",
  };
  return strings_592[which_alternative];
}

static const char *
output_593 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_593[] = {
    "doz %4,%2,%1\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
    "{srai|srawi} %4,%1,31\n\t{sf|subfc} %4,%1,%4\n\t{aze|addze} %0,%3",
  };
  return strings_593[which_alternative];
}

static const char *
output_594 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_594[] = {
    "doz %4,%2,%1\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
    "{srai|srawi} %4,%1,31\n\t{sf|subfc} %4,%1,%4\n\t{aze.|addze.} %4,%3",
  };
  return strings_594[which_alternative];
}

static const char *
output_595 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_595[] = {
    "doz %4,%2,%1\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
    "{srai|srawi} %4,%1,31\n\t{sf|subfc} %4,%1,%4\n\t{aze.|addze.} %0,%3",
  };
  return strings_595[which_alternative];
}

static const char *
output_596 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_596[] = {
    "doz %0,%2,%1\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
    "{ai|addic} %0,%1,-1\n\t{aze|addze} %0,%0\n\t{srai|srawi} %0,%0,31",
  };
  return strings_596[which_alternative];
}

static const char *
output_615 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_615[] = {
    "{sf|subfc} %0,%2,%1\n\t{sfe|subfe} %0,%0,%0\n\tneg %0,%0",
    "{ai|addic} %0,%1,%n2\n\t{sfe|subfe} %0,%0,%0\n\tneg %0,%0",
  };
  return strings_615[which_alternative];
}

static const char *
output_616 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_616[] = {
    "{sf|subfc} %0,%2,%1\n\t{sfe|subfe} %0,%0,%0\n\tneg. %0,%0",
    "{ai|addic} %0,%1,%n2\n\t{sfe|subfe} %0,%0,%0\n\tneg. %0,%0",
  };
  return strings_616[which_alternative];
}

static const char *
output_617 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_617[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\t{sf%I3|subf%I3c} %0,%4,%3",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\t{sf%I3|subf%I3c} %0,%4,%3",
  };
  return strings_617[which_alternative];
}

static const char *
output_618 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_618[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %4,%4,%3",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %4,%4,%3",
  };
  return strings_618[which_alternative];
}

static const char *
output_619 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_619[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %0,%4,%3",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %0,%4,%3",
  };
  return strings_619[which_alternative];
}

static const char *
output_620 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_620[] = {
    "{sf|subfc} %0,%2,%1\n\t{sfe|subfe} %0,%0,%0",
    "{ai|addic} %0,%1,%n2\n\t{sfe|subfe} %0,%0,%0",
  };
  return strings_620[which_alternative];
}

static const char *
output_633 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_633[] = {
    "{sf|subfc} %0,%2,%1\n\t{cal %0,0(0)|li %0,0}\n\t{ae|adde} %0,%0,%0",
    "{ai|addic} %0,%1,%n2\n\t{cal %0,0(0)|li %0,0}\n\t{ae|adde} %0,%0,%0",
  };
  return strings_633[which_alternative];
}

static const char *
output_634 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_634[] = {
    "subfc %0,%2,%1\n\tli %0,0\n\tadde %0,%0,%0",
    "addic %0,%1,%n2\n\tli %0,0\n\tadde %0,%0,%0",
  };
  return strings_634[which_alternative];
}

static const char *
output_635 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_635[] = {
    "{sf|subfc} %0,%2,%1\n\t{cal %0,0(0)|li %0,0}\n\t{ae.|adde.} %0,%0,%0",
    "{ai|addic} %0,%1,%n2\n\t{cal %0,0(0)|li %0,0}\n\t{ae.|adde.} %0,%0,%0",
  };
  return strings_635[which_alternative];
}

static const char *
output_636 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_636[] = {
    "subfc %0,%2,%1\n\tli %0,0\n\tadde. %0,%0,%0",
    "addic %0,%1,%n2\n\tli %0,0\n\tadde. %0,%0,%0",
  };
  return strings_636[which_alternative];
}

static const char *
output_637 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_637[] = {
    "{sf|subfc} %4,%2,%1\n\t{aze|addze} %0,%3",
    "{ai|addic} %4,%1,%n2\n\t{aze|addze} %0,%3",
  };
  return strings_637[which_alternative];
}

static const char *
output_638 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_638[] = {
    "{sf|subfc} %4,%2,%1\n\t{aze.|addze.} %4,%3",
    "{ai|addic} %4,%1,%n2\n\t{aze.|addze.} %4,%3",
  };
  return strings_638[which_alternative];
}

static const char *
output_639 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_639[] = {
    "{sf|subfc} %4,%2,%1\n\t{aze.|addze.} %0,%3",
    "{ai|addic} %4,%1,%n2\n\t{aze.|addze.} %0,%3",
  };
  return strings_639[which_alternative];
}

static const char *
output_640 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_640[] = {
    "{sf|subfc} %0,%2,%1\n\t{sfe|subfe} %0,%0,%0\n\tnand %0,%0,%0",
    "{sfi|subfic} %0,%1,-1\n\t{a%I2|add%I2c} %0,%0,%2\n\t{sfe|subfe} %0,%0,%0",
  };
  return strings_640[which_alternative];
}

static const char *
output_641 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_641[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\tandc %0,%3,%4",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\tandc %0,%3,%4",
  };
  return strings_641[which_alternative];
}

static const char *
output_642 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_642[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\tandc. %4,%3,%4",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\tandc. %4,%3,%4",
  };
  return strings_642[which_alternative];
}

static const char *
output_643 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_643[] = {
    "{sf|subfc} %4,%2,%1\n\t{sfe|subfe} %4,%4,%4\n\tandc. %0,%3,%4",
    "{ai|addic} %4,%1,%n2\n\t{sfe|subfe} %4,%4,%4\n\tandc. %0,%3,%4",
  };
  return strings_643[which_alternative];
}

static const char *
output_666 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_666[] = {
    "{ai|addic} %4,%1,%k2\n\t{aze|addze} %0,%3",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\t{sf%I3|subf%I3c} %0,%4,%3",
  };
  return strings_666[which_alternative];
}

static const char *
output_667 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_667[] = {
    "addic %4,%1,%k2\n\taddze %0,%3",
    "subf%I2c %4,%1,%2\n\tsubfe %4,%4,%4\n\tsubf%I3c %0,%4,%3",
  };
  return strings_667[which_alternative];
}

static const char *
output_668 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_668[] = {
    "{ai|addic} %4,%1,%k2\n\t{aze.|addze.} %4,%3",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %4,%4,%3",
  };
  return strings_668[which_alternative];
}

static const char *
output_669 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_669[] = {
    "addic %4,%1,%k2\n\taddze. %4,%3",
    "subf%I2c %4,%1,%2\n\tsubfe %4,%4,%4\n\tsubfc. %4,%4,%3",
  };
  return strings_669[which_alternative];
}

static const char *
output_670 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_670[] = {
    "{ai|addic} %4,%1,%k2\n\t{aze.|addze.} %0,%3",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\t{sf.|subfc.} %0,%4,%3",
  };
  return strings_670[which_alternative];
}

static const char *
output_671 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_671[] = {
    "addic %4,%1,%k2\n\taddze. %0,%3",
    "subf%I2c %4,%1,%2\n\tsubfe %4,%4,%4\n\tsubfc. %0,%4,%3",
  };
  return strings_671[which_alternative];
}

static const char *
output_674 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (get_attr_length (insn) == 8)
    return "%C1bc %t1,%j1,%l0";
  else
    return "%C1bc %T1,%j1,%$+8\n\tb %l0";

}
}

static const char *
output_676 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (get_attr_length (insn) == 8)
    return "%C1bc %T1,%j1,%l0";
  else
    return "%C1bc %t1,%j1,%$+8\n\tb %l0";
}
}

static const char *
output_681 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_681[] = {
    "bctr",
    "{br|blr}",
  };
  return strings_681[which_alternative];
}

static const char *
output_682 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_682[] = {
    "bctr",
    "{br|blr}",
  };
  return strings_682[which_alternative];
}

static const char *
output_686 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_686[] = {
    "bctr",
    "{br|blr}",
  };
  return strings_686[which_alternative];
}

static const char *
output_687 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{
  static const char *const strings_687[] = {
    "bctr",
    "{br|blr}",
  };
  return strings_687[which_alternative];
}

static const char *
output_692 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

static const char *
output_693 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_694 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

static const char *
output_695 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_696 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

static const char *
output_697 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_698 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

static const char *
output_699 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_700 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_701 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

static const char *
output_702 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "bdz %l0";
  else
    return "{bdn|bdnz} %$+8\n\tb %l0";
}
}

static const char *
output_703 (operands, insn)
     rtx *operands ATTRIBUTE_UNUSED;
     rtx insn ATTRIBUTE_UNUSED;
{

{
  if (which_alternative != 0)
    return "#";
  else if (get_attr_length (insn) == 8)
    return "{bdn|bdnz} %l0";
  else
    return "bdz %$+8\n\tb %l0";
}
}

const char * const insn_template[] =
  {
    0,
    0,
    "rldicl. %2,%1,0,56",
    "rldicl. %0,%1,0,56",
    "extsb %0,%1",
    "extsb. %2,%1",
    "extsb. %0,%1",
    0,
    0,
    "rldicl. %2,%1,0,48",
    "rldicl. %0,%1,0,48",
    0,
    0,
    "extsh. %2,%1",
    "extsh. %0,%1",
    0,
    0,
    "rldicl. %2,%1,0,32",
    "rldicl. %0,%1,0,32",
    0,
    0,
    "extsw. %2,%1",
    "extsw. %0,%1",
    0,
    0,
    "{andil.|andi.} %2,%1,0xff",
    "{andil.|andi.} %0,%1,0xff",
    0,
    "extsb %0,%1",
    "extsb. %2,%1",
    "extsb. %0,%1",
    0,
    0,
    0,
    0,
    "{andil.|andi.} %2,%1,0xff",
    "{andil.|andi.} %0,%1,0xff",
    0,
    "extsb %0,%1",
    "extsb. %2,%1",
    "extsb. %0,%1",
    0,
    0,
    0,
    0,
    "{andil.|andi.} %2,%1,0xffff",
    "{andil.|andi.} %0,%1,0xffff",
    0,
    0,
    "{exts.|extsh.} %2,%1",
    "{exts.|extsh.} %0,%1",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "nor %0,%1,%1",
    0,
    0,
    0,
    0,
    "{sf%I1|subf%I1c} %0,%2,%1",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "doz%I2 %0,%1,%2",
    "doz%I2. %3,%1,%2",
    "doz%I2. %0,%1,%2",
    0,
    "abs %0,%1",
    0,
    0,
    "nabs %0,%1",
    0,
    0,
    "neg %0,%1",
    "neg. %2,%1",
    "neg. %0,%1",
    "neg %0,%1\n\tand %0,%0,%1\n\t{cntlz|cntlzw} %0,%0\n\t{sfi|subfic} %0,%0,32",
    0,
    0,
    0,
    "{muls.|mullw.} %3,%1,%2",
    "{muls.|mullw.} %3,%1,%2",
    "{muls.|mullw.} %0,%1,%2",
    "{muls.|mullw.} %0,%1,%2",
    0,
    "divs %0,%1,%2",
    0,
    "divwu %0,%1,%2",
    "divwu %0,%1,%2",
    0,
    "divw %0,%1,%2",
    "divw %0,%1,%2",
    0,
    "{srai|srawi} %0,%1,%p2\n\t{aze|addze} %0,%0",
    "{srai|srawi} %3,%1,%p2\n\t{aze.|addze.} %3,%3",
    "{srai|srawi} %0,%1,%p2\n\t{aze.|addze.} %0,%0",
    "div %0,%1,%3",
    0,
    0,
    0,
    "bla __mulh",
    "bla __mull",
    "bla __divss",
    "bla __divus",
    "bla __quoss",
    "bla __quous",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "eqv %0,%1,%2",
    0,
    0,
    0,
    0,
    "andc %0,%2,%1",
    0,
    0,
    0,
    0,
    "orc %0,%2,%1",
    0,
    0,
    0,
    0,
    "nand %0,%1,%2",
    0,
    0,
    0,
    0,
    "nor %0,%1,%2",
    0,
    0,
    0,
    0,
    "maskir %0,%3,%2",
    "maskir %0,%3,%2",
    "maskir %0,%3,%2",
    "maskir %0,%3,%2",
    "maskir. %0,%3,%2",
    "maskir. %0,%3,%2",
    "maskir. %0,%3,%2",
    "maskir. %0,%3,%2",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{rl%I2nm|rlw%I2nm} %0,%1,%h2,0,31",
    "{rl%I2nm.|rlw%I2nm.} %3,%1,%h2,0,31",
    "{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,0,31",
    "{rl%I2nm|rlw%I2nm} %0,%1,%h2,%m3,%M3",
    "{rl%I2nm.|rlw%I2nm.} %4,%1,%h2,%m3,%M3",
    "{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,%m3,%M3",
    "{rl%I2nm|rlw%I2nm} %0,%1,%h2,24,31",
    "{rl%I2nm.|rlw%I2nm.} %3,%1,%h2,24,31",
    "{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,24,31",
    "{rl%I2nm|rlw%I2nm} %0,%1,%h2,16,31",
    "{rl%I2nm.|rlw%I2nm.} %3,%1,%h2,16,31",
    "{rl%I2nm.|rlw%I2nm.} %0,%1,%h2,16,31",
    0,
    0,
    "{sl|slw}%I2 %0,%1,%h2",
    0,
    "{sl|slw}%I2. %3,%1,%h2",
    0,
    "{sl|slw}%I2. %0,%1,%h2",
    "{rlinm|rlwinm} %0,%1,%h2,%m3,%M3",
    "{rlinm.|rlwinm.} %4,%1,%h2,%m3,%M3",
    "{rlinm.|rlwinm.} %0,%1,%h2,%m3,%M3",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{rlinm|rlwinm} %0,%1,%s2,%m3,%M3",
    "{rlinm.|rlwinm.} %4,%1,%s2,%m3,%M3",
    "{rlinm.|rlwinm.} %0,%1,%s2,%m3,%M3",
    "{rlinm|rlwinm} %0,%1,%s2,24,31",
    "{rlinm.|rlwinm.} %3,%1,%s2,24,31",
    "{rlinm.|rlwinm.} %0,%1,%s2,24,31",
    "{rlinm|rlwinm} %0,%1,%s2,16,31",
    "{rlinm.|rlwinm.} %3,%1,%s2,16,31",
    "{rlinm.|rlwinm.} %0,%1,%s2,16,31",
    "rrib %0,%1,%2",
    "rrib %0,%1,%2",
    "rrib %0,%1,%2",
    0,
    0,
    "{sra|sraw}%I2 %0,%1,%h2",
    0,
    "{sra|sraw}%I2. %3,%1,%h2",
    0,
    "{sra|sraw}%I2. %0,%1,%h2",
    0,
    "frsp %0,%1",
    "frsp %0,%1",
    "fneg %0,%1",
    "fabs %0,%1",
    "fnabs %0,%1",
    0,
    "fadds %0,%1,%2",
    "{fa|fadd} %0,%1,%2",
    0,
    "fsubs %0,%1,%2",
    "{fs|fsub} %0,%1,%2",
    0,
    "fmuls %0,%1,%2",
    "{fm|fmul} %0,%1,%2",
    0,
    "fdivs %0,%1,%2",
    "{fd|fdiv} %0,%1,%2",
    "fmadds %0,%1,%2,%3",
    "{fma|fmadd} %0,%1,%2,%3",
    "fmsubs %0,%1,%2,%3",
    "{fms|fmsub} %0,%1,%2,%3",
    "fnmadds %0,%1,%2,%3",
    "{fnma|fnmadd} %0,%1,%2,%3",
    "fnmsubs %0,%1,%2,%3",
    "{fnms|fnmsub} %0,%1,%2,%3",
    0,
    "fsqrts %0,%1",
    "fsqrt %0,%1",
    0,
    0,
    0,
    0,
    0,
    "fsel %0,%1,%2,%3",
    "fsel %0,%1,%2,%3",
    "fneg %0,%1",
    "fabs %0,%1",
    "fnabs %0,%1",
    "{fa|fadd} %0,%1,%2",
    "{fs|fsub} %0,%1,%2",
    "{fm|fmul} %0,%1,%2",
    "{fd|fdiv} %0,%1,%2",
    "{fma|fmadd} %0,%1,%2,%3",
    "{fms|fmsub} %0,%1,%2,%3",
    "{fnma|fnmadd} %0,%1,%2,%3",
    "{fnms|fnmsub} %0,%1,%2,%3",
    "fsqrt %0,%1",
    0,
    0,
    0,
    0,
    0,
    "fsel %0,%1,%2,%3",
    "fsel %0,%1,%2,%3",
    0,
    "#",
    0,
    0,
    "#",
    0,
    0,
    0,
    0,
    0,
    0,
    "#",
    0,
    0,
    0,
    0,
    0,
    0,
    "{fcirz|fctiwz} %0,%1",
    "fcfid %0,%1",
    "fctidz %0,%1",
    0,
    0,
    0,
    0,
    "mul %0,%1,%2\n\tmfmq %L0",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "mul %0,%1,%2",
    "mulhw %0,%1,%2",
    0,
    "mulhwu %0,%1,%2",
    "mulhwu %0,%1,%2",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "nor %0,%1,%1",
    "nor. %2,%1,%1",
    "nor. %0,%1,%1",
    0,
    "subf. %3,%2,%1",
    "subf. %0,%2,%1",
    0,
    "sradi %2,%1,63\n\txor %0,%2,%1\n\tsubf %0,%2,%0",
    0,
    "sradi %2,%1,63\n\txor %0,%2,%1\n\tsubf %0,%0,%2",
    0,
    0,
    "neg %0,%1",
    "neg. %2,%1",
    "neg. %0,%1",
    "neg %0,%1\n\tand %0,%0,%1\n\tcntlzd %0,%0\n\tsubfic %0,%0,64",
    "mulld %0,%1,%2",
    "mulhd %0,%1,%2",
    "mulhdu %0,%1,%2",
    0,
    0,
    "sradi %0,%1,%p2\n\taddze %0,%0",
    "sradi %3,%1,%p2\n\taddze. %3,%3",
    "sradi %0,%1,%p2\n\taddze. %0,%0",
    "divd %0,%1,%2",
    "divdu %0,%1,%2",
    "rld%I2cl %0,%1,%H2,0",
    "rld%I2cl. %3,%1,%H2,0",
    "rld%I2cl. %0,%1,%H2,0",
    "rld%I2c%B3 %0,%1,%H2,%S3",
    "rld%I2c%B3. %4,%1,%H2,%S3",
    "rld%I2c%B3. %0,%1,%H2,%S3",
    "rld%I2cl %0,%1,%H2,56",
    "rld%I2cl. %3,%1,%H2,56",
    "rld%I2cl. %0,%1,%H2,56",
    "rld%I2cl %0,%1,%H2,48",
    "rld%I2cl. %3,%1,%H2,48",
    "rld%I2cl. %0,%1,%H2,48",
    "rld%I2cl %0,%1,%H2,32",
    "rld%I2cl. %3,%1,%H2,32",
    "rld%I2cl. %0,%1,%H2,32",
    0,
    "sld%I2 %0,%1,%H2",
    "sld%I2. %3,%1,%H2",
    "sld%I2. %0,%1,%H2",
    0,
    "srd%I2 %0,%1,%H2",
    "srd%I2. %3,%1,%H2",
    "srd%I2. %0,%1,%H2",
    0,
    "srad%I2 %0,%1,%H2",
    "srad%I2. %3,%1,%H2",
    "srad%I2. %0,%1,%H2",
    0,
    0,
    0,
    0,
    0,
    "or. %3,%1,%2",
    "or. %0,%1,%2",
    0,
    0,
    0,
    "xor. %3,%1,%2",
    "xor. %0,%1,%2",
    0,
    "eqv %0,%1,%2",
    "eqv. %3,%1,%2",
    "eqv. %0,%1,%2",
    "andc %0,%2,%1",
    "andc. %3,%2,%1",
    "andc. %0,%2,%1",
    "orc %0,%2,%1",
    "orc. %3,%2,%1",
    "orc. %0,%2,%1",
    "nand %0,%1,%2",
    "nand. %3,%1,%2",
    "nand. %0,%1,%2",
    "nor %0,%1,%2",
    "nor. %3,%1,%2",
    "nor. %0,%1,%2",
    "{liu|lis} %0,%1@ha",
    "{cal|la} %0,%2@l(%1)",
    0,
    "{l|lwz} %0,%a1@got(%2)",
    0,
    0,
    0,
    0,
    "mr. %0,%1",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "mr. %0,%1",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{stsi|stswi} %2,%P1,%O0",
    "{stsi|stswi} %2,%1,%O0",
    0,
    0,
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    0,
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    0,
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    0,
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    0,
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    "{lsi|lswi} %4,%1,%2\n\t{stsi|stswi} %4,%0,%2",
    0,
    "lwaux %3,%0,%2",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "lfq%U1%X1 %0,%1",
    "stfq%U0%X0 %1,%0",
    0,
    "",
    0,
    0,
    0,
    0,
    0,
    0,
    "mt%7 %0\n\t{brl|blrl}",
    "std %4,%3\n\tld %6,0(%0)\n\tld %4,8(%0)\n\tmt%7 %6\n\tld %5,16(%0)\n\tblrl\n\tld %4,%3",
    "mt%8 %1\n\t{brl|blrl}",
    "std %5,%4\n\tld %7,0(%1)\n\tld %5,8(%1)\n\tmt%8 %7\n\tld %6,16(%1)\n\tblrl\n\tld %5,%4",
    "{st|stw} %4,%a3\n\t{l|lwz} %5,0(%0)\n\t{l|lwz} %4,4(%0)\n\tmt%6 %5\n\t{brl|blrl}\n\t{l|lwz} %4,%a3",
    "{st|stw} %5,%a4\n\t{l|lwz} %6,0(%1)\n\t{l|lwz} %5,4(%1)\n\tmt%7 %6\n\t{brl|blrl}\n\t{l|lwz} %5,%a4",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "",
    "bl _GLOBAL_OFFSET_TABLE_@local-4",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{cmp%I2|cmpw%I2} %0,%1,%2",
    "cmpd%I2 %0,%1,%2",
    0,
    "{cmpl%I2|cmplw%I2} %0,%1,%W2",
    "cmpld%I2 %0,%1,%W2",
    "#",
    "#",
    0,
    0,
    "fcmpu %0,%1,%2",
    "fcmpu %0,%1,%2",
    "%D1mfcr %0\n\t{rlinm|rlwinm} %0,%0,%J1,31,31",
    "%D1mfcr %3\n\t{rlinm.|rlwinm.} %3,%3,%J1,31,31",
    0,
    0,
    0,
    "%D1%D4mfcr %3\n\t{rlinm|rlwinm} %0,%3,%J1,31,31\n\t{rlinm|rlwinm} %3,%3,%J4,31,31",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{ai|addic} %2,%1,-1\n\t{sfe|subfe} %0,%2,%1",
    "addic %2,%1,-1\n\tsubfe %0,%2,%1",
    "{ai|addic} %3,%1,-1\n\t{aze|addze} %0,%2",
    "addic %3,%1,-1\n\taddze %0,%2",
    "{ai|addic} %3,%1,-1\n\t{aze.|addze.} %3,%2",
    "addic %3,%1,-1\n\taddze. %3,%2",
    "{ai|addic} %3,%1,-1\n\t{aze.|addze.} %0,%2",
    "addic %3,%1,-1\n\taddze. %0,%2",
    0,
    0,
    0,
    0,
    0,
    0,
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{cal %0,0(0)|li %0,0}\n\t{ae|adde} %0,%0,%0",
    "subf%I2c %0,%1,%2\n\tli %0,0\n\tadde %0,%0,%0",
    "subf%I2c %0,%1,%2\n\tli %0,0\n\tadde. %0,%0,%0",
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{cal %0,0(0)|li %0,0}\n\t{ae.|adde.} %0,%0,%0",
    "subf%I2c %0,%1,%2\n\tli %0,0\n\tadde. %0,%0,%0",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{aze|addze} %0,%3",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{aze.|addze.} %4,%3",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{aze.|addze.} %0,%3",
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{sfe|subfe} %0,%0,%0\n\tnand %0,%0,%0",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\tandc %0,%3,%4",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\tandc. %4,%3,%4",
    "{sf%I2|subf%I2c} %4,%1,%2\n\t{sfe|subfe} %4,%4,%4\n\tandc. %0,%3,%4",
    "doz%I2 %0,%1,%2\n\tnabs %0,%0\n\t{sri|srwi} %0,%0,31",
    "doz%I2 %0,%1,%2\n\tnabs %0,%0\n\t{sri.|srwi.} %0,%0,31",
    "doz%I2 %4,%1,%2\n\t{ai|addic} %4,%4,-1\n\t{aze|addze} %0,%3",
    "doz%I2 %4,%1,%2\n\t{ai|addic} %4,%4,-1\n\t{aze.|addze.} %4,%3",
    "doz%I2 %4,%1,%2\n\t{ai|addic} %4,%4,-1\n\t{aze.|addze.} %0,%3",
    "doz%I2 %0,%1,%2\n\tnabs %0,%0\n\t{srai|srawi} %0,%0,31",
    0,
    0,
    0,
    0,
    0,
    0,
    "doz%I2 %3,%1,%2\n\t{sfi|subfic} %0,%3,0\n\t{ae|adde} %0,%0,%3",
    "doz%I2 %3,%1,%2\n\t{sfi|subfic} %0,%3,0\n\t{ae.|adde.} %0,%0,%3",
    "doz%I2 %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze|addze} %0,%3",
    "doz%I2 %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %4,%3",
    "doz%I2 %4,%1,%2\n\t{sfi|subfic} %4,%4,0\n\t{aze.|addze.} %0,%3",
    "doz%I2 %0,%1,%2\n\t{ai|addic} %0,%0,-1\n\t{sfe|subfe} %0,%0,%0",
    "{srai|srawi} %3,%1,31\n\tandc %0,%2,%3",
    "sradi %3,%1,63\n\tandc %0,%2,%3",
    "{srai|srawi} %3,%1,31\n\tandc. %3,%2,%3",
    "sradi %3,%1,63\n\tandc. %3,%2,%3",
    "{srai|srawi} %3,%1,31\n\tandc. %0,%2,%3",
    "sradi %3,%1,63\n\tandc. %0,%2,%3",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{sfi|subfic} %0,%1,0\n\t{ame|addme} %0,%0\n\t{sri|srwi} %0,%0,31",
    "subfic %0,%1,0\n\taddme %0,%0\n\tsrdi %0,%0,63",
    "{sfi|subfic} %0,%1,0\n\t{ame|addme} %0,%0\n\t{sri.|srwi.} %0,%0,31",
    "subfic %0,%1,0\n\taddme %0,%0\n\tsrdi. %0,%0,63",
    "doz %0,%2,%1\n\tnabs %0,%0\n\t{sri|srwi} %0,%0,31",
    "doz %0,%2,%1\n\tnabs %0,%0\n\t{sri.|srwi.} %0,%0,31",
    "{a|addc} %3,%1,%1\n\t{sfe|subfe} %3,%1,%3\n\t{aze|addze} %0,%2",
    "addc %3,%1,%1\n\tsubfe %3,%1,%3\n\taddze %0,%2",
    "{a|addc} %3,%1,%1\n\t{sfe|subfe} %3,%1,%3\n\t{aze.|addze.} %3,%2",
    "addc %3,%1,%1\n\tsubfe %3,%1,%3\n\taddze. %3,%2",
    "{a|addc} %3,%1,%1\n\t{sfe|subfe} %3,%1,%3\n\t{aze.|addze.} %0,%2",
    "addc %3,%1,%1\n\tsubfe %3,%1,%3\n\taddze. %0,%2",
    "doz %4,%2,%1\n\t{ai|addic} %4,%4,-1\n\t{aze|addze} %0,%3",
    "doz %4,%2,%1\n\t{ai|addic} %4,%4,-1\n\t{aze.|addze.} %4,%3",
    "doz %4,%2,%1\n\t{ai|addic} %4,%4,-1\n\t{aze.|addze.} %0,%3",
    "{sfi|subfic} %0,%1,0\n\t{ame|addme} %0,%0\n\t{srai|srawi} %0,%0,31",
    "subfic %0,%1,0\n\taddme %0,%0\n\tsradi} %0,%0,63",
    "doz %0,%2,%1\n\tnabs %0,%0\n\t{srai|srawi} %0,%0,31",
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{sfe|subfe} %0,%0,%0\n\tneg %0,%0",
    "subf%I2c %0,%1,%2\n\tsubfe %0,%0,%0\n\tneg %0,%0",
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{sfe|subfe} %0,%0,%0\n\tneg. %0,%0",
    "subf%I2c %0,%1,%2\n\tsubfe %0,%0,%0\n\tneg. %0,%0",
    0,
    0,
    0,
    0,
    0,
    0,
    "{sf%I2|subf%I2c} %0,%1,%2\n\t{sfe|subfe} %0,%0,%0",
    "subf%I2c %0,%1,%2\n\tsubfe %0,%0,%0",
    0,
    "{%C0bcr|%C0bclr} %t0,%j0",
    0,
    "{%C0bcr|%C0bclr} %T0,%j0",
    "b %l0",
    "{br|blr}",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{cror 0,0,0|nop}",
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    "{t 31,0,0|trap}",
    0,
    "t%V0%I2 %1,%2",
  };

const char *(*const insn_outfun[])() =
  {
    0,
    output_1,
    0,
    0,
    0,
    0,
    0,
    0,
    output_8,
    0,
    0,
    0,
    output_12,
    0,
    0,
    0,
    output_16,
    0,
    0,
    0,
    output_20,
    0,
    0,
    0,
    output_24,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_34,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_44,
    0,
    0,
    0,
    output_48,
    0,
    0,
    0,
    output_52,
    output_53,
    0,
    output_55,
    0,
    0,
    0,
    output_59,
    0,
    output_61,
    0,
    0,
    output_64,
    output_65,
    output_66,
    0,
    output_68,
    output_69,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_83,
    0,
    0,
    output_86,
    0,
    0,
    0,
    0,
    0,
    0,
    output_93,
    output_94,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_121,
    output_122,
    0,
    output_124,
    0,
    0,
    output_127,
    output_128,
    0,
    output_130,
    0,
    0,
    0,
    output_134,
    output_135,
    0,
    output_137,
    0,
    0,
    0,
    output_141,
    0,
    output_143,
    0,
    0,
    output_146,
    0,
    output_148,
    0,
    0,
    output_151,
    0,
    output_153,
    0,
    0,
    output_156,
    0,
    output_158,
    0,
    0,
    output_161,
    0,
    output_163,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_174,
    output_175,
    output_176,
    output_177,
    output_178,
    output_179,
    0,
    output_181,
    output_182,
    output_183,
    output_184,
    output_185,
    output_186,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_200,
    0,
    output_202,
    0,
    output_204,
    0,
    0,
    0,
    0,
    0,
    output_210,
    output_211,
    output_212,
    output_213,
    output_214,
    output_215,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_229,
    0,
    output_231,
    0,
    output_233,
    0,
    output_235,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_296,
    output_297,
    output_298,
    output_299,
    0,
    0,
    0,
    output_303,
    output_304,
    0,
    0,
    0,
    0,
    0,
    0,
    output_311,
    output_312,
    output_313,
    0,
    0,
    output_316,
    0,
    0,
    output_319,
    output_320,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_328,
    output_329,
    output_330,
    0,
    output_332,
    output_333,
    output_334,
    0,
    0,
    0,
    0,
    output_339,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_389,
    output_390,
    output_391,
    0,
    output_393,
    0,
    0,
    0,
    0,
    output_398,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_423,
    0,
    0,
    0,
    output_427,
    0,
    output_429,
    0,
    output_431,
    0,
    0,
    output_434,
    output_435,
    0,
    0,
    0,
    0,
    output_440,
    output_441,
    output_442,
    output_443,
    0,
    output_445,
    0,
    0,
    output_448,
    output_449,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_458,
    output_459,
    output_460,
    0,
    output_462,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_482,
    0,
    output_484,
    output_485,
    output_486,
    output_487,
    output_488,
    output_489,
    output_490,
    output_491,
    output_492,
    output_493,
    output_494,
    output_495,
    output_496,
    output_497,
    output_498,
    output_499,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_509,
    0,
    0,
    0,
    0,
    0,
    0,
    output_516,
    output_517,
    0,
    0,
    output_520,
    output_521,
    output_522,
    output_523,
    output_524,
    output_525,
    output_526,
    output_527,
    output_528,
    output_529,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_570,
    output_571,
    output_572,
    0,
    output_574,
    output_575,
    output_576,
    output_577,
    0,
    output_579,
    output_580,
    output_581,
    output_582,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_591,
    output_592,
    output_593,
    output_594,
    output_595,
    output_596,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_615,
    output_616,
    output_617,
    output_618,
    output_619,
    output_620,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_633,
    output_634,
    output_635,
    output_636,
    output_637,
    output_638,
    output_639,
    output_640,
    output_641,
    output_642,
    output_643,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    output_666,
    output_667,
    output_668,
    output_669,
    output_670,
    output_671,
    0,
    0,
    output_674,
    0,
    output_676,
    0,
    0,
    0,
    0,
    output_681,
    output_682,
    0,
    0,
    0,
    output_686,
    output_687,
    0,
    0,
    0,
    0,
    output_692,
    output_693,
    output_694,
    output_695,
    output_696,
    output_697,
    output_698,
    output_699,
    output_700,
    output_701,
    output_702,
    output_703,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
  };

rtx (*const insn_gen_function[]) () =
  {
    gen_zero_extendqidi2,
    0,
    0,
    0,
    gen_extendqidi2,
    0,
    0,
    gen_zero_extendhidi2,
    0,
    0,
    0,
    gen_extendhidi2,
    0,
    0,
    0,
    gen_zero_extendsidi2,
    0,
    0,
    0,
    gen_extendsidi2,
    0,
    0,
    0,
    gen_zero_extendqisi2,
    0,
    0,
    0,
    gen_extendqisi2,
    gen_extendqisi2_ppc,
    0,
    0,
    gen_extendqisi2_power,
    gen_extendqisi2_no_power,
    gen_zero_extendqihi2,
    0,
    0,
    0,
    gen_extendqihi2,
    gen_extendqihi2_ppc,
    0,
    0,
    gen_extendqihi2_power,
    gen_extendqihi2_no_power,
    gen_zero_extendhisi2,
    0,
    0,
    0,
    gen_extendhisi2,
    0,
    0,
    0,
    gen_addsi3,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_one_cmplsi2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_subsi3,
    gen_sminsi3,
    0,
    gen_smaxsi3,
    0,
    gen_uminsi3,
    gen_umaxsi3,
    0,
    0,
    0,
    gen_abssi2,
    gen_abssi2_power,
    gen_abssi2_nopower,
    0,
    0,
    0,
    0,
    gen_negsi2,
    0,
    0,
    gen_ffssi2,
    gen_mulsi3,
    gen_mulsi3_mq,
    gen_mulsi3_no_mq,
    0,
    0,
    0,
    0,
    gen_divmodsi4,
    0,
    gen_udivsi3,
    gen_udivsi3_mq,
    0,
    gen_divsi3,
    gen_divsi3_mq,
    0,
    gen_modsi3,
    0,
    0,
    0,
    0,
    gen_udivmodsi4_normal,
    gen_udivmodsi4_tests,
    gen_udivmodsi4,
    gen_mulh_call,
    gen_mull_call,
    gen_divss_call,
    gen_divus_call,
    gen_quoss_call,
    gen_quous_call,
    gen_andsi3,
    0,
    0,
    0,
    0,
    gen_iorsi3,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_xorsi3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_insv,
    gen_insvsi,
    0,
    0,
    0,
    0,
    gen_insvdi,
    gen_extzv,
    gen_extzvsi,
    0,
    0,
    gen_extzvdi,
    0,
    0,
    gen_rotlsi3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_ashlsi3,
    gen_ashlsi3_power,
    gen_ashlsi3_no_power,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_lshrsi3,
    gen_lshrsi3_power,
    gen_lshrsi3_no_power,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_ashrsi3,
    gen_ashrsi3_power,
    gen_ashrsi3_no_power,
    0,
    0,
    0,
    0,
    gen_extendsfdf2,
    gen_truncdfsf2,
    gen_aux_truncdfsf2,
    gen_negsf2,
    gen_abssf2,
    0,
    gen_addsf3,
    0,
    0,
    gen_subsf3,
    0,
    0,
    gen_mulsf3,
    0,
    0,
    gen_divsf3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_sqrtsf2,
    0,
    0,
    gen_maxsf3,
    0,
    gen_minsf3,
    0,
    gen_movsfcc,
    gen_fselsfsf4,
    gen_fseldfsf4,
    gen_negdf2,
    gen_absdf2,
    0,
    gen_adddf3,
    gen_subdf3,
    gen_muldf3,
    gen_divdf3,
    0,
    0,
    0,
    0,
    gen_sqrtdf2,
    gen_maxdf3,
    0,
    gen_mindf3,
    0,
    gen_movdfcc,
    gen_fseldfdf4,
    gen_fselsfdf4,
    gen_floatsidf2,
    0,
    0,
    gen_floatunssidf2,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_fix_truncdfsi2,
    0,
    0,
    0,
    0,
    gen_fixuns_truncdfsi2,
    gen_trunc_call,
    gen_trunc_call_rtl,
    0,
    gen_floatdidf2,
    gen_fix_truncdfdi2,
    0,
    0,
    0,
    gen_mulsidi3,
    gen_mulsidi3_mq,
    0,
    0,
    gen_umulsidi3,
    gen_umulsidi3_mq,
    0,
    0,
    gen_smulsi3_highpart,
    gen_smulsi3_highpart_mq,
    0,
    gen_umulsi3_highpart,
    gen_umulsi3_highpart_mq,
    0,
    gen_ashldi3_power,
    gen_lshrdi3_power,
    gen_ashrdi3_power,
    gen_adddi3,
    0,
    0,
    0,
    0,
    gen_one_cmpldi2,
    0,
    0,
    0,
    0,
    0,
    gen_subdi3,
    gen_absdi2,
    0,
    0,
    0,
    gen_negdi2,
    0,
    0,
    0,
    gen_ffsdi2,
    gen_muldi3,
    gen_smuldi3_highpart,
    gen_umuldi3_highpart,
    gen_divdi3,
    gen_moddi3,
    0,
    0,
    0,
    0,
    gen_udivdi3,
    gen_rotldi3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_ashldi3,
    0,
    0,
    0,
    gen_lshrdi3,
    0,
    0,
    0,
    gen_ashrdi3,
    0,
    0,
    0,
    gen_anddi3,
    0,
    0,
    gen_iordi3,
    0,
    0,
    0,
    0,
    gen_xordi3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_elf_high,
    gen_elf_low,
    gen_movsi_got,
    0,
    0,
    gen_movsi,
    0,
    0,
    0,
    gen_movhi,
    0,
    gen_movqi,
    0,
    gen_movcc,
    0,
    gen_movsf,
    0,
    0,
    0,
    gen_movdf,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_movdi,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_movti,
    0,
    0,
    0,
    gen_load_multiple,
    0,
    gen_store_multiple,
    0,
    0,
    gen_movstrsi,
    gen_movstrsi_8reg,
    0,
    0,
    gen_movstrsi_6reg,
    0,
    0,
    gen_movstrsi_4reg,
    0,
    0,
    gen_movstrsi_2reg,
    0,
    0,
    gen_movstrsi_1reg,
    0,
    0,
    0,
    0,
    gen_movdi_update,
    0,
    gen_movsi_update,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_allocate_stack,
    gen_set_sp,
    gen_save_stack_function,
    gen_restore_stack_function,
    gen_restore_stack_block,
    gen_save_stack_nonlocal,
    gen_restore_stack_nonlocal,
    gen_nonlocal_goto_receiver,
    gen_call_indirect_aix32,
    gen_call_indirect_aix64,
    gen_call_value_indirect_aix32,
    gen_call_value_indirect_aix64,
    gen_call_indirect_nt,
    gen_call_value_indirect_nt,
    gen_call_indirect_sysv,
    gen_call_value_indirect_sysv,
    gen_call,
    gen_call_value,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_untyped_call,
    gen_blockage,
    gen_init_v4_pic,
    gen_cmpsi,
    gen_cmpdi,
    gen_cmpsf,
    gen_cmpdf,
    gen_beq,
    gen_bne,
    gen_blt,
    gen_bgt,
    gen_ble,
    gen_bge,
    gen_bgtu,
    gen_bltu,
    gen_bgeu,
    gen_bleu,
    gen_seq,
    gen_sne,
    gen_sgt,
    gen_slt,
    gen_sge,
    gen_sle,
    gen_sgtu,
    gen_sltu,
    gen_sgeu,
    gen_sleu,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_jump,
    gen_return,
    gen_indirect_jump,
    gen_indirect_jumpsi,
    gen_indirect_jumpdi,
    gen_tablejump,
    gen_tablejumpsi,
    gen_tablejumpdi,
    0,
    0,
    gen_nop,
    gen_decrement_and_branch_on_count,
    gen_ctrsi,
    gen_ctrdi,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    gen_trap,
    gen_conditional_trap,
    0,
  };

const char *insn_name[] =
  {
    "zero_extendqidi2",
    "zero_extendqidi2+1",
    "zero_extendqidi2+2",
    "extendqidi2-1",
    "extendqidi2",
    "extendqidi2+1",
    "zero_extendhidi2-1",
    "zero_extendhidi2",
    "zero_extendhidi2+1",
    "zero_extendhidi2+2",
    "extendhidi2-1",
    "extendhidi2",
    "extendhidi2+1",
    "extendhidi2+2",
    "zero_extendsidi2-1",
    "zero_extendsidi2",
    "zero_extendsidi2+1",
    "zero_extendsidi2+2",
    "extendsidi2-1",
    "extendsidi2",
    "extendsidi2+1",
    "extendsidi2+2",
    "zero_extendqisi2-1",
    "zero_extendqisi2",
    "zero_extendqisi2+1",
    "zero_extendqisi2+2",
    "extendqisi2-1",
    "extendqisi2",
    "extendqisi2_ppc",
    "extendqisi2_ppc+1",
    "extendqisi2_power-1",
    "extendqisi2_power",
    "extendqisi2_no_power",
    "zero_extendqihi2",
    "zero_extendqihi2+1",
    "zero_extendqihi2+2",
    "extendqihi2-1",
    "extendqihi2",
    "extendqihi2_ppc",
    "extendqihi2_ppc+1",
    "extendqihi2_power-1",
    "extendqihi2_power",
    "extendqihi2_no_power",
    "zero_extendhisi2",
    "zero_extendhisi2+1",
    "zero_extendhisi2+2",
    "extendhisi2-1",
    "extendhisi2",
    "extendhisi2+1",
    "extendhisi2+2",
    "addsi3-1",
    "addsi3",
    "*addsi3_internal1",
    "*addsi3_internal2",
    "*addsi3_internal2+1",
    "*addsi3_internal3",
    "*addsi3_internal3+1",
    "one_cmplsi2-1",
    "one_cmplsi2",
    "one_cmplsi2+1",
    "one_cmplsi2+2",
    "one_cmplsi2+3",
    "one_cmplsi2+4",
    "one_cmplsi2+5",
    "one_cmplsi2+6",
    "subsi3-6",
    "subsi3-5",
    "subsi3-4",
    "subsi3-3",
    "subsi3-2",
    "subsi3-1",
    "subsi3",
    "sminsi3",
    "sminsi3+1",
    "smaxsi3",
    "smaxsi3+1",
    "uminsi3",
    "umaxsi3",
    "umaxsi3+1",
    "umaxsi3+2",
    "abssi2-1",
    "abssi2",
    "abssi2_power",
    "abssi2_nopower",
    "abssi2_nopower+1",
    "*nabs_power",
    "*nabs_no_power",
    "*nabs_no_power+1",
    "negsi2",
    "negsi2+1",
    "ffssi2-1",
    "ffssi2",
    "mulsi3",
    "mulsi3_mq",
    "mulsi3_no_mq",
    "mulsi3_no_mq+1",
    "mulsi3_no_mq+2",
    "divmodsi4-2",
    "divmodsi4-1",
    "divmodsi4",
    "divmodsi4+1",
    "udivsi3",
    "udivsi3_mq",
    "*udivsi3_no_mq",
    "divsi3",
    "divsi3_mq",
    "*divsi3_no_mq",
    "modsi3",
    "modsi3+1",
    "modsi3+2",
    "udivmodsi4_normal-2",
    "udivmodsi4_normal-1",
    "udivmodsi4_normal",
    "udivmodsi4_tests",
    "udivmodsi4",
    "mulh_call",
    "mull_call",
    "divss_call",
    "divus_call",
    "quoss_call",
    "quous_call",
    "andsi3",
    "*andsi3_internal2",
    "*andsi3_internal2+1",
    "*andsi3_internal3",
    "*andsi3_internal3+1",
    "iorsi3",
    "*iorsi3_internal1",
    "*iorsi3_internal2",
    "*iorsi3_internal2+1",
    "*iorsi3_internal3",
    "*iorsi3_internal3+1",
    "xorsi3-1",
    "xorsi3",
    "*xorsi3_internal1",
    "*xorsi3_internal2",
    "*xorsi3_internal2+1",
    "*xorsi3_internal3",
    "*xorsi3_internal3+1",
    "*eqvsi3_internal1-1",
    "*eqvsi3_internal1",
    "*eqvsi3_internal2",
    "*eqvsi3_internal2+1",
    "*eqvsi3_internal3",
    "*eqvsi3_internal3+1",
    "*andcsi3_internal1",
    "*andcsi3_internal2",
    "*andcsi3_internal2+1",
    "*andcsi3_internal3",
    "*andcsi3_internal3+1",
    "*iorcsi3_internal1",
    "*iorcsi3_internal2",
    "*iorcsi3_internal2+1",
    "*iorcsi3_internal3",
    "*iorcsi3_internal3+1",
    "*nandsi3_internal1",
    "*nandsi3_internal2",
    "*nandsi3_internal2+1",
    "*nandsi3_internal3",
    "*nandsi3_internal3+1",
    "*norsi3_internal1",
    "*norsi3_internal2",
    "*norsi3_internal2+1",
    "*norsi3_internal3",
    "*norsi3_internal3+1",
    "*maskir_internal1",
    "*maskir_internal2",
    "*maskir_internal3",
    "*maskir_internal4",
    "*maskir_internal5",
    "*maskir_internal6",
    "*maskir_internal7",
    "*maskir_internal8",
    "insv",
    "insvsi",
    "*insvsi_internal1",
    "*insvsi_internal2",
    "*insvsi_internal3",
    "*insvsi_internal4",
    "insvdi",
    "extzv",
    "extzvsi",
    "*extzvsi_internal1",
    "*extzvsi_internal2",
    "extzvdi",
    "*extzvdi_internal1",
    "*extzvdi_internal2",
    "rotlsi3",
    "*rotlsi3_internal2",
    "*rotlsi3_internal3",
    "*rotlsi3_internal4",
    "*rotlsi3_internal5",
    "*rotlsi3_internal6",
    "*rotlsi3_internal7",
    "*rotlsi3_internal8",
    "*rotlsi3_internal9",
    "*rotlsi3_internal10",
    "*rotlsi3_internal11",
    "*rotlsi3_internal12",
    "ashlsi3",
    "ashlsi3_power",
    "ashlsi3_no_power",
    "ashlsi3_no_power+1",
    "ashlsi3_no_power+2",
    "ashlsi3_no_power+3",
    "ashlsi3_no_power+4",
    "lshrsi3-3",
    "lshrsi3-2",
    "lshrsi3-1",
    "lshrsi3",
    "lshrsi3_power",
    "lshrsi3_no_power",
    "lshrsi3_no_power+1",
    "lshrsi3_no_power+2",
    "lshrsi3_no_power+3",
    "lshrsi3_no_power+4",
    "lshrsi3_no_power+5",
    "lshrsi3_no_power+6",
    "lshrsi3_no_power+7",
    "lshrsi3_no_power+8",
    "ashrsi3-8",
    "ashrsi3-7",
    "ashrsi3-6",
    "ashrsi3-5",
    "ashrsi3-4",
    "ashrsi3-3",
    "ashrsi3-2",
    "ashrsi3-1",
    "ashrsi3",
    "ashrsi3_power",
    "ashrsi3_no_power",
    "ashrsi3_no_power+1",
    "ashrsi3_no_power+2",
    "extendsfdf2-2",
    "extendsfdf2-1",
    "extendsfdf2",
    "truncdfsf2",
    "aux_truncdfsf2",
    "negsf2",
    "abssf2",
    "abssf2+1",
    "addsf3",
    "addsf3+1",
    "subsf3-1",
    "subsf3",
    "subsf3+1",
    "mulsf3-1",
    "mulsf3",
    "mulsf3+1",
    "divsf3-1",
    "divsf3",
    "divsf3+1",
    "divsf3+2",
    "divsf3+3",
    "divsf3+4",
    "divsf3+5",
    "sqrtsf2-5",
    "sqrtsf2-4",
    "sqrtsf2-3",
    "sqrtsf2-2",
    "sqrtsf2-1",
    "sqrtsf2",
    "sqrtsf2+1",
    "maxsf3-1",
    "maxsf3",
    "maxsf3+1",
    "minsf3",
    "minsf3+1",
    "movsfcc",
    "fselsfsf4",
    "fseldfsf4",
    "negdf2",
    "absdf2",
    "absdf2+1",
    "adddf3",
    "subdf3",
    "muldf3",
    "divdf3",
    "divdf3+1",
    "divdf3+2",
    "sqrtdf2-2",
    "sqrtdf2-1",
    "sqrtdf2",
    "maxdf3",
    "maxdf3+1",
    "mindf3",
    "mindf3+1",
    "movdfcc",
    "fseldfdf4",
    "fselsfdf4",
    "floatsidf2",
    "*floatsidf2_internal",
    "*floatsidf2_internal+1",
    "floatunssidf2",
    "*floatunssidf2_internal",
    "*floatunssidf2_internal+1",
    "*floatsidf2_loadaddr",
    "*floatsidf2_store1",
    "*floatsidf2_store2",
    "*floatsidf2_load",
    "fix_truncdfsi2",
    "*fix_truncdfsi2_internal",
    "*fix_truncdfsi2_internal+1",
    "*fix_truncdfsi2_store",
    "*fix_truncdfsi2_load",
    "fixuns_truncdfsi2",
    "trunc_call",
    "trunc_call_rtl",
    "*fctiwz",
    "floatdidf2",
    "fix_truncdfdi2",
    "*adddi3_noppc64",
    "*subdi3_noppc64",
    "*negdi2_noppc64",
    "mulsidi3",
    "mulsidi3_mq",
    "*mulsidi3_no_mq",
    "*mulsidi3_no_mq+1",
    "umulsidi3",
    "umulsidi3_mq",
    "*umulsidi3_no_mq",
    "*umulsidi3_no_mq+1",
    "smulsi3_highpart",
    "smulsi3_highpart_mq",
    "*smulsi3_highpart_no_mq",
    "umulsi3_highpart",
    "umulsi3_highpart_mq",
    "*umulsi3_highpart_no_mq",
    "ashldi3_power",
    "lshrdi3_power",
    "ashrdi3_power",
    "adddi3",
    "*adddi3_internal1",
    "*adddi3_internal2",
    "*adddi3_internal3",
    "*adddi3_internal3+1",
    "one_cmpldi2",
    "one_cmpldi2+1",
    "one_cmpldi2+2",
    "one_cmpldi2+3",
    "subdi3-2",
    "subdi3-1",
    "subdi3",
    "absdi2",
    "absdi2+1",
    "*nabsdi2",
    "*nabsdi2+1",
    "negdi2",
    "negdi2+1",
    "negdi2+2",
    "ffsdi2-1",
    "ffsdi2",
    "muldi3",
    "smuldi3_highpart",
    "umuldi3_highpart",
    "divdi3",
    "moddi3",
    "moddi3+1",
    "moddi3+2",
    "udivdi3-2",
    "udivdi3-1",
    "udivdi3",
    "rotldi3",
    "*rotldi3_internal2",
    "*rotldi3_internal3",
    "*rotldi3_internal4",
    "*rotldi3_internal5",
    "*rotldi3_internal6",
    "*rotldi3_internal7",
    "*rotldi3_internal8",
    "*rotldi3_internal9",
    "*rotldi3_internal10",
    "*rotldi3_internal11",
    "*rotldi3_internal12",
    "*rotldi3_internal13",
    "*rotldi3_internal14",
    "*rotldi3_internal15",
    "ashldi3",
    "ashldi3+1",
    "ashldi3+2",
    "lshrdi3-1",
    "lshrdi3",
    "lshrdi3+1",
    "lshrdi3+2",
    "ashrdi3-1",
    "ashrdi3",
    "ashrdi3+1",
    "ashrdi3+2",
    "anddi3-1",
    "anddi3",
    "*anddi3_internal2",
    "*anddi3_internal3",
    "iordi3",
    "*iordi3_internal1",
    "*iordi3_internal2",
    "*iordi3_internal3",
    "*iordi3_internal3+1",
    "xordi3",
    "*xordi3_internal1",
    "*xordi3_internal2",
    "*xordi3_internal3",
    "*xordi3_internal3+1",
    "*eqvdi3_internal1",
    "*eqvdi3_internal2",
    "*eqvdi3_internal3",
    "*andcdi3_internal1",
    "*andcdi3_internal2",
    "*andcdi3_internal3",
    "*iorcdi3_internal1",
    "*iorcdi3_inernal2",
    "*iorcdi3_internal3",
    "*nanddi3_internal1",
    "*nanddi3_internal2",
    "*nanddi3_internal3",
    "*nordi3_internal1",
    "*nordi3_internal2",
    "*nordi3_internal3",
    "elf_high",
    "elf_low",
    "movsi_got",
    "*movsi_got_internal",
    "*movsi_got_internal+1",
    "movsi",
    "movsi+1",
    "movsi+2",
    "movhi-1",
    "movhi",
    "movhi+1",
    "movqi",
    "movqi+1",
    "movcc",
    "movcc+1",
    "movsf",
    "movsf+1",
    "*movsf_hardfloat",
    "*movsf_softfloat",
    "movdf",
    "movdf+1",
    "movdf+2",
    "*movdf_hardfloat32-1",
    "*movdf_hardfloat32",
    "*movdf_softfloat32",
    "*movdf_hardfloat64",
    "*movdf_softfloat64",
    "movdi",
    "*movdi_32",
    "*movdi_32+1",
    "*movdi_64-1",
    "*movdi_64",
    "*movdi_64+1",
    "*movdi_64+2",
    "*movdi_64+3",
    "*movdi_64+4",
    "movti-4",
    "movti-3",
    "movti-2",
    "movti-1",
    "movti",
    "*movti_power",
    "*movti_string",
    "*movti_ppc64",
    "load_multiple",
    "load_multiple+1",
    "store_multiple",
    "store_multiple+1",
    "movstrsi-1",
    "movstrsi",
    "movstrsi_8reg",
    "movstrsi_8reg+1",
    "movstrsi_6reg-1",
    "movstrsi_6reg",
    "movstrsi_6reg+1",
    "movstrsi_4reg-1",
    "movstrsi_4reg",
    "movstrsi_4reg+1",
    "movstrsi_2reg-1",
    "movstrsi_2reg",
    "movstrsi_2reg+1",
    "movstrsi_1reg-1",
    "movstrsi_1reg",
    "movstrsi_1reg+1",
    "*movdi_update1-1",
    "*movdi_update1",
    "*movdi_update2",
    "movdi_update",
    "*movsi_update1",
    "movsi_update",
    "*movhi_update",
    "*movhi_update2",
    "*movhi_update3",
    "*movhi_update4",
    "*movqi_update1",
    "*movqi_update2",
    "*movqi_update3",
    "*movsf_update1",
    "*movsf_update2",
    "*movsf_update3",
    "*movsf_update4",
    "*movdf_update1",
    "*movdf_update2",
    "*movdf_update2+1",
    "allocate_stack-1",
    "allocate_stack",
    "set_sp",
    "save_stack_function",
    "restore_stack_function",
    "restore_stack_block",
    "save_stack_nonlocal",
    "restore_stack_nonlocal",
    "nonlocal_goto_receiver",
    "call_indirect_aix32",
    "call_indirect_aix64",
    "call_value_indirect_aix32",
    "call_value_indirect_aix64",
    "call_indirect_nt",
    "call_value_indirect_nt",
    "call_indirect_sysv",
    "call_value_indirect_sysv",
    "call",
    "call_value",
    "*call_local32",
    "*call_local64",
    "*ret_call_local32",
    "*ret_call_local64",
    "*call_nonlocal_aix32",
    "*call_nonlocal_aix64",
    "*call_nonlocal_sysv",
    "*ret_call_nonlocal_aix32",
    "*ret_call_nonlocal_aix64",
    "*ret_call_nonlocal_sysv",
    "untyped_call",
    "blockage",
    "init_v4_pic",
    "cmpsi",
    "cmpdi",
    "cmpsf",
    "cmpdf",
    "beq",
    "bne",
    "blt",
    "bgt",
    "ble",
    "bge",
    "bgtu",
    "bltu",
    "bgeu",
    "bleu",
    "seq",
    "sne",
    "sgt",
    "slt",
    "sge",
    "sle",
    "sgtu",
    "sltu",
    "sgeu",
    "sleu",
    "sleu+1",
    "sleu+2",
    "sleu+3",
    "sleu+4",
    "sleu+5",
    "sleu+6",
    "sleu+7",
    "sleu+8",
    "sleu+9",
    "sleu+10",
    "sleu+11",
    "sleu+12",
    "sleu+13",
    "*ne0-13",
    "*ne0-12",
    "*ne0-11",
    "*ne0-10",
    "*ne0-9",
    "*ne0-8",
    "*ne0-7",
    "*ne0-6",
    "*ne0-5",
    "*ne0-4",
    "*ne0-3",
    "*ne0-2",
    "*ne0-1",
    "*ne0",
    "*ne0+1",
    "*ne0+2",
    "*ne0+3",
    "*ne0+4",
    "*ne0+5",
    "*ne0+6",
    "*ne0+7",
    "*ne0+8",
    "*ne0+9",
    "*ne0+10",
    "*ne0+11",
    "*ne0+12",
    "*ne0+13",
    "*ne0+14",
    "*ne0+15",
    "*ne0+16",
    "*ne0+17",
    "*ne0+18",
    "*ne0+19",
    "*ne0+20",
    "*ne0+21",
    "*ne0+22",
    "*ne0+23",
    "*ne0+24",
    "*ne0+25",
    "*ne0+26",
    "*ne0+27",
    "*ne0+28",
    "*ne0+29",
    "*ne0+30",
    "*ne0+31",
    "*ne0+32",
    "*ne0+33",
    "*ne0+34",
    "*ne0+35",
    "*ne0+36",
    "*ne0+37",
    "*ne0+38",
    "*ne0+39",
    "*ne0+40",
    "*ne0+41",
    "*ne0+42",
    "*ne0+43",
    "*ne0+44",
    "*ne0+45",
    "*ne0+46",
    "*ne0+47",
    "jump-47",
    "jump-46",
    "jump-45",
    "jump-44",
    "jump-43",
    "jump-42",
    "jump-41",
    "jump-40",
    "jump-39",
    "jump-38",
    "jump-37",
    "jump-36",
    "jump-35",
    "jump-34",
    "jump-33",
    "jump-32",
    "jump-31",
    "jump-30",
    "jump-29",
    "jump-28",
    "jump-27",
    "jump-26",
    "jump-25",
    "jump-24",
    "jump-23",
    "jump-22",
    "jump-21",
    "jump-20",
    "jump-19",
    "jump-18",
    "jump-17",
    "jump-16",
    "jump-15",
    "jump-14",
    "jump-13",
    "jump-12",
    "jump-11",
    "jump-10",
    "jump-9",
    "jump-8",
    "jump-7",
    "jump-6",
    "jump-5",
    "jump-4",
    "jump-3",
    "jump-2",
    "jump-1",
    "jump",
    "return",
    "indirect_jump",
    "indirect_jumpsi",
    "indirect_jumpdi",
    "tablejump",
    "tablejumpsi",
    "tablejumpdi",
    "tablejumpdi+1",
    "nop-1",
    "nop",
    "decrement_and_branch_on_count",
    "ctrsi",
    "ctrdi",
    "*ctrsi_internal1",
    "*ctrsi_internal2",
    "*ctrdi_internal1",
    "*ctrdi_internal2",
    "*ctrsi_internal3",
    "*ctrsi_internal4",
    "*ctrdi_internal3",
    "*ctrdi_internal4",
    "*ctrsi_internal5",
    "*ctrsi_internal6",
    "*ctrdi_internal5",
    "*ctrdi_internal6",
    "*ctrdi_internal6+1",
    "*ctrdi_internal6+2",
    "trap-2",
    "trap-1",
    "trap",
    "conditional_trap",
    "conditional_trap+1",
  };
const char **insn_name_ptr = insn_name;

const int insn_n_operands[] =
  {
    2,
    2,
    3,
    3,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    2,
    2,
    2,
    3,
    3,
    2,
    2,
    3,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    3,
    2,
    3,
    3,
    3,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    4,
    4,
    3,
    3,
    4,
    3,
    4,
    3,
    3,
    3,
    4,
    4,
    2,
    2,
    3,
    3,
    2,
    3,
    3,
    2,
    3,
    3,
    2,
    3,
    4,
    3,
    5,
    4,
    5,
    4,
    4,
    4,
    3,
    4,
    3,
    3,
    4,
    3,
    3,
    3,
    4,
    4,
    5,
    4,
    5,
    4,
    1,
    1,
    1,
    2,
    1,
    2,
    4,
    5,
    5,
    5,
    5,
    3,
    3,
    4,
    4,
    4,
    4,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    3,
    3,
    4,
    4,
    4,
    4,
    3,
    4,
    4,
    4,
    4,
    3,
    4,
    4,
    4,
    4,
    3,
    4,
    4,
    4,
    4,
    3,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    5,
    5,
    5,
    5,
    4,
    4,
    5,
    5,
    5,
    6,
    4,
    4,
    4,
    5,
    5,
    4,
    5,
    5,
    3,
    4,
    4,
    4,
    5,
    5,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    4,
    3,
    5,
    4,
    5,
    4,
    4,
    5,
    5,
    3,
    4,
    3,
    5,
    4,
    5,
    4,
    4,
    5,
    5,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    3,
    3,
    3,
    4,
    3,
    5,
    4,
    5,
    4,
    2,
    2,
    2,
    2,
    2,
    2,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    2,
    2,
    2,
    3,
    4,
    3,
    4,
    4,
    4,
    4,
    2,
    2,
    2,
    3,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    2,
    3,
    4,
    3,
    4,
    4,
    4,
    4,
    2,
    6,
    6,
    2,
    5,
    5,
    1,
    2,
    2,
    2,
    2,
    4,
    4,
    2,
    2,
    2,
    3,
    3,
    2,
    2,
    2,
    3,
    3,
    2,
    3,
    4,
    3,
    3,
    3,
    4,
    3,
    3,
    3,
    4,
    3,
    3,
    4,
    3,
    4,
    4,
    4,
    3,
    3,
    4,
    4,
    3,
    2,
    3,
    3,
    3,
    4,
    4,
    3,
    3,
    3,
    3,
    3,
    2,
    2,
    3,
    3,
    2,
    3,
    3,
    3,
    3,
    3,
    3,
    4,
    4,
    3,
    3,
    3,
    4,
    4,
    4,
    5,
    5,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    3,
    4,
    4,
    3,
    3,
    4,
    4,
    3,
    3,
    4,
    4,
    4,
    4,
    4,
    3,
    3,
    4,
    4,
    3,
    3,
    3,
    4,
    4,
    3,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    4,
    4,
    3,
    4,
    4,
    2,
    3,
    2,
    3,
    3,
    2,
    2,
    2,
    3,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    3,
    2,
    3,
    3,
    2,
    0,
    3,
    0,
    4,
    4,
    4,
    5,
    6,
    6,
    5,
    6,
    6,
    5,
    6,
    6,
    6,
    6,
    6,
    6,
    6,
    6,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    4,
    2,
    1,
    2,
    2,
    2,
    2,
    2,
    0,
    8,
    8,
    9,
    9,
    7,
    8,
    4,
    5,
    3,
    4,
    4,
    4,
    5,
    5,
    4,
    4,
    4,
    5,
    5,
    5,
    3,
    0,
    1,
    2,
    2,
    2,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    3,
    3,
    4,
    3,
    3,
    5,
    5,
    5,
    5,
    3,
    3,
    3,
    4,
    4,
    5,
    5,
    6,
    4,
    4,
    5,
    5,
    6,
    5,
    5,
    6,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    5,
    5,
    4,
    5,
    5,
    5,
    6,
    3,
    3,
    3,
    4,
    4,
    4,
    5,
    5,
    6,
    3,
    5,
    5,
    6,
    3,
    4,
    5,
    5,
    6,
    3,
    3,
    4,
    5,
    5,
    6,
    3,
    4,
    5,
    5,
    5,
    6,
    3,
    4,
    4,
    4,
    4,
    5,
    5,
    3,
    3,
    4,
    4,
    5,
    5,
    6,
    3,
    5,
    5,
    6,
    2,
    2,
    3,
    3,
    3,
    4,
    4,
    4,
    4,
    4,
    5,
    5,
    5,
    5,
    6,
    2,
    2,
    3,
    3,
    3,
    4,
    4,
    5,
    5,
    5,
    5,
    6,
    6,
    3,
    3,
    3,
    2,
    3,
    2,
    1,
    0,
    1,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    0,
    2,
    4,
    4,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    5,
    7,
    7,
    7,
    7,
    0,
    2,
    3,
  };

const int insn_n_dups[] =
  {
    0,
    0,
    0,
    1,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    2,
    2,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    2,
    2,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    5,
    0,
    5,
    0,
    11,
    11,
    2,
    2,
    6,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    2,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    3,
    5,
    11,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    1,
    1,
    1,
    1,
    5,
    5,
    5,
    5,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    3,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    4,
    0,
    4,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    4,
    0,
    4,
    0,
    0,
    0,
    0,
    4,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    1,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    0,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    2,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    1,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    0,
    0,
    1,
    0,
    0,
    0,
    5,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    2,
    2,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    3,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    2,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    3,
    0,
    0,
    1,
    1,
    0,
    2,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    3,
    0,
    0,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    0,
    0,
    3,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    3,
    3,
    0,
    0,
    0,
    0,
    2,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    2,
    0,
  };

const char *const insn_operand_constraint[][MAX_RECOG_OPERANDS] =
  {
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r", "m,r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "", "", "", },
    { "=r,r,?r,r", "%r,b,r,b", "r,I,I,L", },
    { "=x,x,?y,?y", "%r,r,r,r", "r,I,r,I", "=r,r,r,r", },
    { "", "", "", "", },
    { "=r,r,r,r", "%r,r,r,r", "r,I,r,I", "=x,x,?y,?y", },
    { "", "", "", "", },
    { "", "", "", },
    { "=r", "r", },
    { "=x,?y", "r,r", "=r,r", },
    { "", "", "", },
    { "=r,r", "r,r", "=x,?y", },
    { "", "", "", },
    { "=r", "rI", "r", },
    { "=r,r", "r,I", "r,r", },
    { "=x,?y", "r,r", "r,r", "=r,r", },
    { "=x,?y", "r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "r,r", "r,r", "=x,?y", },
    { "=r,r", "r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", },
    { "=r", "r", "rI", },
    { "=x", "r", "rI", "=r", },
    { "=r", "r", "rI", "=x", },
    { "", "", },
    { "=r", "r", },
    { "=&r,r", "r,0", "=&r,&r", },
    { "", "", "", },
    { "=r", "r", },
    { "=&r,r", "r,0", "=&r,&r", },
    { "", "", "", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "=&r", "r", },
    { "", "", "", },
    { "=r,r", "%r,r", "r,I", "=q,q", },
    { "=r,r", "%r,r", "r,I", },
    { "=x", "%r", "r", "=r", "=q", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", "=q", },
    { "=r", "%r", "r", "=x", },
    { "", "", "", "", },
    { "=r", "r", "r", "=q", },
    { "", "", "", },
    { "=r", "r", "r", "=q", },
    { "=r", "r", "r", },
    { "", "", "", },
    { "=r", "r", "r", "=q", },
    { "=r", "r", "r", },
    { "", "", "", },
    { "=r", "r", "N", },
    { "=x", "r", "N", "=r", },
    { "=r", "r", "N", "=x", },
    { "=r", "r", "=*q", "r", "2", },
    { "", "", "", "", },
    { "", "", "", "", "", },
    { "", "", "", "", },
    { "=l", },
    { "=l", },
    { "=l", },
    { "=l", "=x", },
    { "=l", },
    { "=l", "=x", },
    { "=r,r,r,r", "%r,r,r,r", "?r,T,K,J", "=X,X,x,x", },
    { "=x,x,x,x,?y,??y,??y,?y", "%r,r,r,r,r,r,r,r", "r,K,J,T,r,K,J,T", "=r,r,r,r,r,r,r,r", "=X,X,X,X,X,x,x,X", },
    { "", "", "", "", "", },
    { "=r,r,r,r,r,r,r,r", "%r,r,r,r,r,r,r,r", "r,K,J,T,r,K,J,T", "=x,x,x,x,?y,??y,??y,?y", "=X,X,X,X,X,x,x,X", },
    { "", "", "", "", "", },
    { "", "", "", },
    { "=r,r,r", "%r,r,r", "r,K,J", },
    { "=x,?y", "%r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "%r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", },
    { "=r,r,r", "%r,r,r", "r,K,J", },
    { "=x,?y", "%r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "%r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "", "", "", },
    { "=r", "%r", "r", },
    { "=x,?y", "%r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "%r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "=r", "r", "r", },
    { "=x,?y", "r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "=r", "r", "r", },
    { "=x,?y", "r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "=r", "%r", "r", },
    { "=x,?y", "%r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "%r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "=r", "%r", "r", },
    { "=x,?y", "%r,r", "r,r", "=r,r", },
    { "", "", "", "", },
    { "=r,r", "%r,r", "r,r", "=x,?y", },
    { "", "", "", "", },
    { "=r", "0", "r", "r", },
    { "=r", "0", "r", "r", },
    { "=r", "0", "r", "r", },
    { "=r", "0", "r", "r", },
    { "=r", "0", "r", "r", "=x", },
    { "=r", "0", "r", "r", "=x", },
    { "=r", "0", "r", "r", "=x", },
    { "=r", "0", "r", "r", "=x", },
    { "", "", "", "", },
    { "+r", "i", "i", "r", },
    { "+r", "i", "i", "r", "i", },
    { "+r", "i", "i", "r", "i", },
    { "+r", "i", "i", "r", "i", },
    { "+r", "i", "i", "r", "i", "i", },
    { "+r", "i", "i", "r", },
    { "", "", "", "", },
    { "=r", "r", "i", "i", },
    { "=x", "r", "i", "i", "=r", },
    { "=r", "r", "i", "i", "=x", },
    { "=r", "r", "i", "i", },
    { "=x", "r", "i", "i", "=r", },
    { "=r", "r", "i", "i", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "ri", "T", },
    { "=x", "r", "ri", "T", "=r", },
    { "=r", "r", "ri", "T", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "", "", "", },
    { "=r,r", "r,r", "r,i", "=q,X", },
    { "=r", "r", "ri", },
    { "=x,x", "r,r", "r,i", "=r,r", "=q,X", },
    { "=x", "r", "ri", "=r", },
    { "=r,r", "r,r", "r,i", "=x,x", "=q,X", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "i", "T", },
    { "=x", "r", "i", "T", "=r", },
    { "=r", "r", "i", "T", "=x", },
    { "", "", "", },
    { "=r,r,r", "r,r,r", "r,O,i", "=q,X,X", },
    { "=r,r", "r,r", "O,ri", },
    { "=x,x,x", "r,r,r", "r,O,i", "=r,X,r", "=q,X,X", },
    { "=x,x", "r,r", "O,ri", "=X,r", },
    { "=r,r,r", "r,r,r", "r,O,i", "=x,x,x", "=q,X,X", },
    { "=r,r", "r,r", "O,ri", "=x,x", },
    { "=r", "r", "i", "T", },
    { "=x", "r", "i", "T", "=r", },
    { "=r", "r", "i", "T", "=x", },
    { "=r", "r", "i", },
    { "=x", "r", "i", "=r", },
    { "=r", "r", "i", "=x", },
    { "=r", "r", "i", },
    { "=x", "r", "i", "=r", },
    { "=r", "r", "i", "=x", },
    { "+r", "r", "r", },
    { "+r", "r", "r", },
    { "+r", "r", "r", },
    { "", "", "", },
    { "=r,r", "r,r", "r,i", "=q,X", },
    { "=r", "r", "ri", },
    { "=x,x", "r,r", "r,i", "=r,r", "=q,X", },
    { "=x", "r", "ri", "=r", },
    { "=r,r", "r,r", "r,i", "=x,x", "=q,X", },
    { "=r", "r", "ri", "=x", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "", "", "", },
    { "=f", "%f", "f", },
    { "=f", "%f", "f", },
    { "", "", "", },
    { "=f", "f", "f", },
    { "=f", "f", "f", },
    { "", "", "", },
    { "=f", "%f", "f", },
    { "=f", "%f", "f", },
    { "", "", "", },
    { "=f", "f", "f", },
    { "=f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "", "", },
    { "=f", "f", },
    { "=f", "f", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", "", },
    { "=f", "f", "f", "f", },
    { "=f", "f", "f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "%f", "f", },
    { "=f", "f", "f", },
    { "=f", "%f", "f", },
    { "=f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "%f", "f", "f", },
    { "=f", "f", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", },
    { "", "", "", "", },
    { "", "", "", "", },
    { "=f", "f", "f", "f", },
    { "=f", "f", "f", "f", },
    { "", "", },
    { "=&f", "r", "r", "f", "=r", "=b", },
    { "", "", "", "", "", "", },
    { "", "", },
    { "=&f", "r", "r", "f", "=b", },
    { "", "", "", "", "", },
    { "=b", },
    { "r", "b", },
    { "r", "b", },
    { "=f", "b", },
    { "", "", },
    { "=r", "f", "=f", "=b", },
    { "", "", "", "", },
    { "f", "b", },
    { "=r", "b", },
    { "", "", },
    { "", "", "", },
    { "", "", "", },
    { "=f", "f", },
    { "=f", "f", },
    { "=f", "f", },
    { "=&r,&r,r,r", "%r,r,0,0", "r,I,r,I", },
    { "=&r,&r,r,r,r", "r,I,0,r,I", "r,r,r,0,0", },
    { "=&r,r", "r,0", },
    { "", "", "", },
    { "=r", "%r", "r", "=q", },
    { "=&r", "%r", "r", },
    { "", "", "", },
    { "", "", "", },
    { "=&r", "%r", "r", "=q", },
    { "=&r", "%r", "r", },
    { "", "", "", },
    { "", "%r", "r", },
    { "=r", "%r", "r", "=q", },
    { "=r", "%r", "r", },
    { "", "", "", },
    { "=r", "%r", "r", "=q", },
    { "=r", "%r", "r", },
    { "=r,r,r,&r", "r,r,0,r", "M,i,r,r", "=X,q,q,q", },
    { "=r,r,r,&r", "r,r,0,r", "M,i,r,r", "=X,q,q,q", },
    { "=&r,r", "r,r", "M,i", "=X,q", },
    { "", "", "", },
    { "=r,r,?r,r", "%r,b,r,b", "r,I,I,L", },
    { "=x,x", "%r,r", "r,I", "=r,r", },
    { "=r,r", "%r,r", "r,I", "=x,x", },
    { "", "", "", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "=r,r", "r,I", "r,r", },
    { "=x", "r", "r", "=r", },
    { "=r", "r", "r", "=x", },
    { "", "", "", },
    { "=&r,r", "r,0", "=&r,&r", },
    { "", "", "", },
    { "=&r,r", "r,0", "=&r,&r", },
    { "", "", "", },
    { "", "", },
    { "=r", "r", },
    { "=x", "r", "=r", },
    { "=r", "r", "=x", },
    { "=&r", "r", },
    { "=r", "%r", "r", },
    { "=r", "%r", "r", },
    { "=r", "%r", "r", },
    { "", "", "", },
    { "", "", "", },
    { "=r", "r", "N", },
    { "=x", "r", "N", "=r", },
    { "=r", "r", "N", "=x", },
    { "=r", "r", "r", },
    { "=r", "r", "r", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "ri", "S", },
    { "=x", "r", "ri", "S", "=r", },
    { "=r", "r", "ri", "S", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "", "", "", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "", "", "", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "", "", "", },
    { "=r", "r", "ri", },
    { "=x", "r", "ri", "=r", },
    { "=r", "r", "ri", "=x", },
    { "=r,r,r,r", "%r,r,r,r", "?r,S,K,J", "=X,X,x,x", },
    { "=x,x,x,x", "%r,r,r,r", "r,K,J,S", "=r,r,r,r", },
    { "=r,r,r,r", "%r,r,r,r", "r,K,J,S", "=x,x,x,x", },
    { "", "", "", },
    { "=r,r,r", "%r,r,r", "r,K,J", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", },
    { "", "", "", },
    { "", "", "", },
    { "=r,r,r", "%r,r,r", "r,K,J", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", },
    { "", "", "", },
    { "=r", "%r", "r", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", },
    { "=r", "r", "r", },
    { "=x", "r", "r", "=r", },
    { "=r", "r", "r", "=x", },
    { "=r", "r", "r", },
    { "=x", "r", "r", "=r", },
    { "=r", "r", "r", "=x", },
    { "=r", "%r", "r", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", },
    { "=r", "%r", "r", },
    { "=x", "%r", "r", "=r", },
    { "=r", "%r", "r", "=x", },
    { "=b", "", },
    { "=r", "b", "", },
    { "", "", },
    { "=r", "", "b", },
    { "", "", "", },
    { "", "", },
    { "=r,r,r,m,r,r,r,r,r,*q,*c*l,*h", "r,U,m,r,I,L,n,R,*h,r,r,0", },
    { "", "", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=r,r,m,r,r,*q,*c*l,*h", "r,m,r,i,*h,r,r,0", },
    { "", "", },
    { "=r,r,m,r,r,*q,*c*l,*h", "r,m,r,i,*h,r,r,0", },
    { "", "", },
    { "=y,x,y,r,r,r,r,m", "y,r,r,x,y,r,m,r", },
    { "", "", },
    { "", "", },
    { "=!r,!r,m,f,f,m,!r,!r", "r,m,r,f,m,f,G,Fn", },
    { "=r,r,m,r,r,r,r,r", "r,m,r,I,L,R,G,Fn", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "=!r,??r,m,!r,!r,!r,f,f,m", "r,m,r,G,H,F,f,m,f", },
    { "=r,r,m,r,r,r", "r,m,r,G,H,F", },
    { "=!r,??r,m,!r,!r,!r,f,f,m", "r,m,r,G,H,F,f,m,f", },
    { "=r,r,m,r,r,r", "r,m,r,G,H,F", },
    { "", "", },
    { "=r,r,m,f,f,m,r,r,r,r,r", "r,m,r,f,m,f,IJK,n,G,H,F", },
    { "", "", },
    { "", "", },
    { "=r,r,m,r,r,r,r,f,f,m,r,*h,*h", "r,m,r,I,L,nF,R,f,m,f,*h,r,0", },
    { "=r", "F", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "=r", "r", "=x", },
    { "", "", },
    { "=Q,m,????r,????r,????r", "r,r,r,Q,m", "=q,q#X,X,X,X", },
    { "=m,????r,????r", "r,r,m", "=X,X,X", },
    { "=r,r,m", "r,m,r", },
    { 0 },
    { "", "=r", "b", },
    { 0 },
    { "", "=Q", "r", "=q", },
    { "", "b", "r", "X", },
    { "", "", "", "", },
    { "", "", "", "", "", },
    { "b", "b", "i", "i", "=r", "=q", },
    { "b", "b", "i", "i", "=r", "X", },
    { "", "", "", "", "", },
    { "b", "b", "i", "i", "=r", "=q", },
    { "b", "b", "i", "i", "=r", "X", },
    { "", "", "", "", "", },
    { "b", "b", "i", "i", "=r", "=q", },
    { "b", "b", "i", "i", "=r", "X", },
    { "", "", "", "", "", "", },
    { "b", "b", "i", "i", "=&r", "=q", },
    { "b", "b", "i", "i", "=&r", "X", },
    { "", "", "", "", "", "", },
    { "b", "b", "i", "i", "=&r", "=q", },
    { "b", "b", "i", "i", "=&r", "X", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b", "0", "r", "=r", },
    { "=b,b", "0,0", "r,I", "r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "r,r", },
    { "=b,b", "0,0", "r,I", "=f,f", },
    { "=b,b", "0,0", "r,I", "f,f", },
    { "=b,b", "0,0", "r,I", "=r,r", },
    { "=b,b", "0,0", "r,I", "r,r", },
    { "=b,b", "0,0", "r,I", "=f,f", },
    { "=b,b", "0,0", "r,I", "f,f", },
    { "=f", "", "=f", "", },
    { "", "f", "", "f", },
    { "=r", "", },
    { "r", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { 0 },
    { "b", "n", "n", "o", "r", "=r", "=&r", "=l", },
    { "b", "n", "n", "o", "r", "=r", "=&r", "=l", },
    { "fg", "b", "n", "n", "o", "r", "=r", "=&r", "=l", },
    { "fg", "b", "n", "n", "o", "r", "=r", "=&r", "=l", },
    { "b", "n", "n", "o", "r", "=&r", "=l", },
    { "fg", "b", "n", "n", "o", "r", "=&r", "=l", },
    { "l,l", "n,n", "O,n", "=l,l", },
    { "=fg,fg", "l,l", "n,n", "O,n", "=l,l", },
    { "", "", "", },
    { "", "", "", "", },
    { "s,s", "g,g", "O,n", "=l,l", },
    { "s,s", "g,g", "O,n", "=l,l", },
    { "=fg,fg", "s,s", "g,g", "O,n", "=l,l", },
    { "=fg,fg", "s,s", "g,g", "O,n", "=l,l", },
    { "s,s", "fg,fg", "O,n", "=l,l", },
    { "s,s", "fg,fg", "O,n", "=l,l", },
    { "s,s", "fg,fg", "O,n", "=l,l", },
    { "=fg,fg", "s,s", "fg,fg", "O,n", "=l,l", },
    { "=fg,fg", "s,s", "fg,fg", "O,n", "=l,l", },
    { "=fg,fg", "s,s", "fg,fg", "O,n", "=l,l", },
    { "", "", "", },
    { 0 },
    { "=l", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "", },
    { "=y", "r", "rI", },
    { "=y", "r", "rI", },
    { "", "", "", "", },
    { "=y", "r", "rI", },
    { "=y", "r", "rI", },
    { "=r", "r", "i", "=y", "i", },
    { "=r", "r", "i", "=y", "i", },
    { "", "", "", "", "", },
    { "", "", "", "", "", },
    { "=y", "f", "f", },
    { "=y", "f", "f", },
    { "=r", "", "y", },
    { "=x", "", "y", "=r", },
    { "=r", "", "y", "n", },
    { "=x", "", "y", "n", "=r", },
    { "=y", "", "y", "", "y", },
    { "=r", "", "y", "=r", "", "y", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "=r,&r,r,r,r", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "=r,&r,r,r,r", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "=r,&r,r,r,r", "=x,x,x,x,x", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "=r,&r,r,r,r", "=x,x,x,x,x", },
    { "", "", "", "", "", "", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "r,r,r,r,r", "=&r,&r,&r,&r,&r", },
    { "=x,x,x,x,x", "%r,r,r,r,r", "r,O,K,J,I", "r,r,r,r,r", "=&r,&r,&r,&r,&r", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", "r,r,r,r,r", "=&r,&r,&r,&r,&r", "=x,x,x,x,x", },
    { "=r,r,r,r,r", "%r,r,r,r,r", "r,O,K,J,I", },
    { "=&r", "r", "=&r", },
    { "=r", "r", "=&r", },
    { "=r", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r,r", "r,r", "r,O", "=r,X", },
    { "=r,r", "r,r", "r,O", "=r,X", "=x,x", },
    { "=r,r", "r,r", "r,O", "r,r", "=&r,&r", },
    { "=x,x", "r,r", "r,O", "r,r", "=&r,&r", },
    { "=r,r", "r,r", "r,O", "r,r", "=&r,&r", "=x,x", },
    { "=r,r", "r,r", "r,O", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", "=x", },
    { "=r", "r", "rI", "=x", },
    { "=r", "r", "rI", "=x", },
    { "=r", "r", "rI", "r", "=&r", },
    { "=x", "r", "rI", "r", "=&r", },
    { "=r", "r", "rI", "r", "=&r", "=x", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", "r", "=&r", },
    { "=x", "r", "rI", "r", "=&r", },
    { "=r", "r", "rI", "r", "=&r", "=x", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", "=x", },
    { "=r", "r", "rI", "r", "=&r", },
    { "=x", "r", "rI", "r", "=&r", },
    { "=r", "r", "rI", "r", "=&r", "=x", },
    { "=r", "r", "rI", },
    { "=r,r", "r,r", "r,P", },
    { "=r,r", "r,r", "r,P", "=x,x", },
    { "=r,r", "r,r", "r,P", "rI,rI", "=&r,&r", },
    { "=x,x", "r,r", "r,P", "r,r", "=&r,&r", },
    { "=r,r", "r,r", "r,P", "r,r", "=&r,&r", "=x,x", },
    { "=r,r", "r,r", "r,P", },
    { "=r", "r", "rI", "=r", },
    { "=r", "r", "rI", "=r", "=x", },
    { "=r", "r", "rI", "r", "=&r", },
    { "=x", "r", "rI", "r", "=&r", },
    { "=r", "r", "rI", "r", "=&r", "=x", },
    { "=r", "r", "rI", },
    { "=r", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r,r", "r,r", "r,P", },
    { "=r,r", "r,r", "r,P", },
    { "=r,r", "r,r", "r,P", "=x,x", },
    { "=r,r", "r,r", "r,P", "=x,x", },
    { "=r,r", "r,r", "r,P", "r,r", "=&r,&r", },
    { "=x,x", "r,r", "r,P", "r,r", "=&r,&r", },
    { "=r,r", "r,r", "r,P", "r,r", "=&r,&r", "=x,x", },
    { "=r,r", "r,r", "r,I", },
    { "=r,r", "r,r", "r,P", "r,r", "=&r,&r", },
    { "=x,x", "r,r", "r,P", "r,r", "=&r,&r", },
    { "=r,r", "r,r", "r,P", "r,r", "=&r,&r", "=x,x", },
    { "=r", "r", },
    { "=r", "r", },
    { "=r", "r", "=x", },
    { "=r", "r", "=x", },
    { "=r", "r", "r", },
    { "=r", "r", "r", "=x", },
    { "=r", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=x", "r", "r", "=&r", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r", "r", "r", "=&r", "=x", },
    { "=r", "r", "r", "r", "=&r", },
    { "=x", "r", "r", "r", "=&r", },
    { "=r", "r", "r", "r", "=&r", "=x", },
    { "=r", "r", },
    { "=r", "r", },
    { "=r", "r", "r", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", "=x", },
    { "=r", "r", "rI", "=x", },
    { "=r,r", "r,r", "I,rI", "r,rI", "=&r,&r", },
    { "=r,r", "r,r", "I,rI", "r,rI", "=&r,&r", },
    { "=x,x", "r,r", "I,r", "r,r", "=&r,&r", },
    { "=x,x", "r,r", "I,r", "r,r", "=&r,&r", },
    { "=r,r", "r,r", "I,r", "r,r", "=&r,&r", "=x,x", },
    { "=r,r", "r,r", "I,r", "r,r", "=&r,&r", "=x,x", },
    { "=r", "r", "rI", },
    { "=r", "r", "rI", },
    { "", "", "x,?y", },
    { "", "x,?y", },
    { "", "", "x,?y", },
    { "", "x,?y", },
    { "", },
    { 0 },
    { "", },
    { "c,l", },
    { "c,l", },
    { "", "", },
    { "", "", },
    { "", "", },
    { "c,l", "", },
    { "c,l", "", },
    { 0 },
    { "", "", },
    { "", "", "", "", },
    { "", "", "", "", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&X", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&X", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&X", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&X", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "c,*r,*r", "=1,*r,m*q*c*l", "=X,&x,&x", "=X,X,r", },
    { "", "", "", "", "", "", "", },
    { "", "", "", "", "", "", "", },
    { "", "", "", "", "", "", "", },
    { "", "", "", "", "", "", "", },
    { 0 },
    { "", "", },
    { "", "r", "rI", },
  };

const enum machine_mode insn_operand_mode[][MAX_RECOG_OPERANDS] =
  {
    { DImode, QImode, },
    { DImode, QImode, },
    { CCmode, QImode, DImode, },
    { DImode, QImode, CCmode, },
    { DImode, QImode, },
    { CCmode, QImode, DImode, },
    { DImode, QImode, CCmode, },
    { DImode, HImode, },
    { DImode, HImode, },
    { CCmode, HImode, DImode, },
    { DImode, HImode, CCmode, },
    { DImode, HImode, },
    { DImode, HImode, },
    { CCmode, HImode, DImode, },
    { DImode, HImode, CCmode, },
    { DImode, SImode, },
    { DImode, SImode, },
    { CCmode, SImode, DImode, },
    { DImode, SImode, CCmode, },
    { DImode, SImode, },
    { DImode, SImode, },
    { CCmode, SImode, DImode, },
    { DImode, SImode, CCmode, },
    { SImode, QImode, },
    { SImode, QImode, },
    { CCmode, QImode, SImode, },
    { SImode, QImode, CCmode, },
    { SImode, QImode, },
    { SImode, QImode, },
    { CCmode, QImode, SImode, },
    { SImode, QImode, CCmode, },
    { SImode, QImode, },
    { SImode, QImode, },
    { HImode, QImode, },
    { HImode, QImode, },
    { CCmode, QImode, HImode, },
    { HImode, QImode, CCmode, },
    { HImode, QImode, },
    { HImode, QImode, },
    { CCmode, QImode, HImode, },
    { HImode, QImode, CCmode, },
    { HImode, QImode, },
    { HImode, QImode, },
    { SImode, HImode, },
    { SImode, HImode, },
    { CCmode, HImode, SImode, },
    { SImode, HImode, CCmode, },
    { SImode, HImode, },
    { SImode, HImode, },
    { CCmode, HImode, SImode, },
    { SImode, HImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, },
    { CCmode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, },
    { SImode, SImode, },
    { SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, },
    { SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, },
    { CCmode, SImode, SImode, },
    { SImode, SImode, CCmode, },
    { SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, CCmode, },
    { SImode, },
    { SImode, CCmode, },
    { SImode, SImode, SImode, CCmode, },
    { CCmode, SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { VOIDmode, SImode, SImode, VOIDmode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { DImode, SImode, SImode, DImode, },
    { VOIDmode, VOIDmode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, SImode, SImode, },
    { CCmode, DImode, SImode, SImode, DImode, },
    { DImode, DImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { DFmode, SFmode, },
    { SFmode, DFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, SFmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SFmode, SFmode, SFmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SFmode, VOIDmode, SFmode, SFmode, },
    { SFmode, SFmode, SFmode, SFmode, },
    { SFmode, DFmode, SFmode, SFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, DFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, DFmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { DFmode, DFmode, DFmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { DFmode, VOIDmode, DFmode, DFmode, },
    { DFmode, DFmode, DFmode, DFmode, },
    { DFmode, SFmode, DFmode, DFmode, },
    { DFmode, SImode, },
    { DFmode, SImode, SImode, DFmode, SImode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { DFmode, SImode, },
    { DFmode, SImode, SImode, DFmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, },
    { SImode, VOIDmode, },
    { SImode, VOIDmode, },
    { DFmode, VOIDmode, },
    { SImode, DFmode, },
    { SImode, DFmode, DImode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { DImode, VOIDmode, },
    { SImode, VOIDmode, },
    { SImode, DFmode, },
    { SImode, DFmode, SImode, },
    { SImode, DFmode, VOIDmode, },
    { DImode, DFmode, },
    { DFmode, DImode, },
    { DImode, DFmode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, },
    { DImode, SImode, SImode, },
    { DImode, SImode, SImode, SImode, },
    { DImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, SImode, SImode, },
    { DImode, SImode, SImode, SImode, },
    { DImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, SImode, SImode, },
    { DImode, DImode, SImode, SImode, },
    { DImode, DImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, DImode, },
    { CCmode, DImode, DImode, },
    { DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, DImode, DImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, DImode, },
    { DImode, DImode, },
    { CCmode, DImode, DImode, },
    { DImode, DImode, CCmode, },
    { DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, SImode, },
    { DImode, DImode, SImode, },
    { CCmode, DImode, SImode, DImode, },
    { DImode, DImode, SImode, CCmode, },
    { DImode, DImode, SImode, },
    { DImode, DImode, SImode, },
    { CCmode, DImode, SImode, DImode, },
    { DImode, DImode, SImode, CCmode, },
    { DImode, DImode, SImode, },
    { DImode, DImode, SImode, },
    { CCmode, DImode, SImode, DImode, },
    { DImode, DImode, SImode, CCmode, },
    { DImode, DImode, DImode, CCmode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { DImode, DImode, DImode, },
    { CCmode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { SImode, VOIDmode, },
    { SImode, SImode, VOIDmode, },
    { SImode, SImode, },
    { SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, },
    { SImode, SImode, },
    { VOIDmode, VOIDmode, },
    { SImode, SImode, CCmode, },
    { HImode, HImode, },
    { HImode, HImode, },
    { QImode, QImode, },
    { QImode, QImode, },
    { CCmode, CCmode, },
    { CCmode, CCmode, },
    { SFmode, SFmode, },
    { VOIDmode, VOIDmode, },
    { SFmode, SFmode, },
    { SFmode, SFmode, },
    { DFmode, DFmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, },
    { DFmode, DFmode, },
    { DImode, DImode, },
    { DImode, DImode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { DImode, DImode, },
    { DImode, DImode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { DImode, DImode, CCmode, },
    { TImode, TImode, },
    { TImode, TImode, SImode, },
    { TImode, TImode, SImode, },
    { TImode, TImode, },
    { VOIDmode },
    { VOIDmode, SImode, SImode, },
    { VOIDmode },
    { VOIDmode, SImode, SImode, SImode, },
    { VOIDmode, SImode, SImode, SImode, },
    { BLKmode, BLKmode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, DImode, SImode, },
    { SImode, SImode, SImode, SImode, DImode, SImode, },
    { SImode, SImode, SImode, SImode, DImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, DImode, },
    { DImode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, HImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, HImode, },
    { SImode, SImode, SImode, QImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, QImode, },
    { SImode, SImode, SImode, SFmode, },
    { SImode, SImode, SImode, SFmode, },
    { SImode, SImode, SImode, SFmode, },
    { SImode, SImode, SImode, SFmode, },
    { SImode, SImode, SImode, DFmode, },
    { SImode, SImode, SImode, DFmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { SImode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode },
    { SImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { DImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { VOIDmode, SImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { VOIDmode, DImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { SImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { VOIDmode, SImode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, SImode, SImode, },
    { SImode, VOIDmode, VOIDmode, SImode, },
    { VOIDmode, SImode, VOIDmode, VOIDmode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, VOIDmode, SImode, SImode, },
    { DImode, VOIDmode, SImode, SImode, },
    { VOIDmode, SImode, VOIDmode, SImode, SImode, },
    { VOIDmode, DImode, VOIDmode, SImode, SImode, },
    { SImode, VOIDmode, SImode, SImode, },
    { DImode, VOIDmode, SImode, SImode, },
    { SImode, VOIDmode, SImode, SImode, },
    { VOIDmode, SImode, VOIDmode, SImode, SImode, },
    { VOIDmode, DImode, VOIDmode, SImode, SImode, },
    { VOIDmode, SImode, VOIDmode, SImode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode },
    { SImode, },
    { SImode, SImode, },
    { DImode, DImode, },
    { SFmode, SFmode, },
    { DFmode, DFmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { VOIDmode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { SImode, },
    { CCmode, SImode, SImode, },
    { CCmode, DImode, DImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { CCUNSmode, SImode, SImode, },
    { CCUNSmode, DImode, DImode, },
    { SImode, SImode, SImode, CCmode, SImode, },
    { SImode, SImode, SImode, CCUNSmode, SImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { CCFPmode, SFmode, SFmode, },
    { CCFPmode, DFmode, DFmode, },
    { SImode, SImode, VOIDmode, },
    { CCmode, SImode, VOIDmode, SImode, },
    { SImode, SImode, VOIDmode, SImode, },
    { CCmode, SImode, VOIDmode, SImode, SImode, },
    { CCEQmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, DImode, CCmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, },
    { CCmode, SImode, SImode, SImode, },
    { CCmode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, },
    { CCmode, SImode, SImode, SImode, },
    { CCmode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, },
    { DImode, DImode, },
    { SImode, SImode, CCmode, },
    { DImode, DImode, CCmode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, CCmode, },
    { SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, },
    { CCmode, SImode, SImode, SImode, },
    { CCmode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { SImode, SImode, },
    { DImode, DImode, },
    { SImode, SImode, SImode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, SImode, SImode, },
    { DImode, DImode, DImode, DImode, DImode, },
    { CCmode, SImode, SImode, SImode, SImode, },
    { CCmode, DImode, DImode, DImode, DImode, },
    { SImode, SImode, SImode, SImode, SImode, CCmode, },
    { DImode, DImode, DImode, DImode, DImode, CCmode, },
    { SImode, SImode, SImode, },
    { DImode, DImode, DImode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, },
    { VOIDmode, },
    { VOIDmode },
    { VOIDmode, },
    { SImode, },
    { DImode, },
    { VOIDmode, VOIDmode, },
    { SImode, VOIDmode, },
    { DImode, VOIDmode, },
    { SImode, VOIDmode, },
    { DImode, VOIDmode, },
    { VOIDmode },
    { VOIDmode, VOIDmode, },
    { SImode, VOIDmode, CCmode, SImode, },
    { DImode, VOIDmode, CCmode, DImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, SImode, SImode, CCmode, SImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, DImode, DImode, CCmode, DImode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, VOIDmode, },
    { VOIDmode },
    { VOIDmode, VOIDmode, },
    { VOIDmode, SImode, SImode, },
  };

const char insn_operand_strict_low[][MAX_RECOG_OPERANDS] =
  {
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, 0, },
    { 0, },
    { 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0 },
    { 0, 0, 0, },
    { 0 },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, },
    { 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0 },
    { 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, 0, 0, },
    { 0, 0, },
    { 0, },
    { 0 },
    { 0, },
    { 0, },
    { 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0 },
    { 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0 },
    { 0, 0, },
    { 0, 0, 0, },
  };

extern int gpc_reg_operand ();
extern int reg_or_mem_operand ();
extern int cc_reg_operand ();
extern int scratch_operand ();
extern int lwa_operand ();
extern int reg_or_cint_operand ();
extern int add_operand ();
extern int reg_or_short_operand ();
extern int const_int_operand ();
extern int register_operand ();
extern int and_operand ();
extern int logical_operand ();
extern int mask_operand ();
extern int comparison_operator ();
extern int mask64_operand ();
extern int and64_operand ();
extern int got_operand ();
extern int got_no_const_operand ();
extern int general_operand ();
extern int any_operand ();
extern int nonimmediate_operand ();
extern int input_operand ();
extern int const_double_operand ();
extern int load_multiple_operation ();
extern int store_multiple_operation ();
extern int indirect_operand ();
extern int immediate_operand ();
extern int memory_operand ();
extern int offsettable_mem_operand ();
extern int address_operand ();
extern int current_file_function_operand ();
extern int call_operand ();
extern int reg_or_u_short_operand ();
extern int short_cint_operand ();
extern int u_short_cint_operand ();
extern int scc_comparison_operator ();
extern int reg_or_neg_short_operand ();
extern int branch_comparison_operator ();
extern int trap_comparison_operator ();

int (*const insn_operand_predicate[][MAX_RECOG_OPERANDS])() =
  {
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, lwa_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_mem_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, add_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, reg_or_short_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, register_operand, gpc_reg_operand, register_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, gpc_reg_operand, },
    { scratch_operand, },
    { scratch_operand, },
    { scratch_operand, },
    { scratch_operand, scratch_operand, },
    { scratch_operand, },
    { scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, and_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, and_operand, scratch_operand, scratch_operand, },
    { 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, and_operand, cc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, logical_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, logical_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, const_int_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, const_int_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, const_int_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, const_int_operand, const_int_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, const_int_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, mask_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, comparison_operator, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, comparison_operator, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, 0, },
    { gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, add_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, reg_or_short_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, },
    { cc_reg_operand, gpc_reg_operand, const_int_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, const_int_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask64_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask64_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, mask64_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, and64_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, and64_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, and64_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, logical_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, logical_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, 0, },
    { gpc_reg_operand, gpc_reg_operand, 0, },
    { gpc_reg_operand, got_operand, },
    { gpc_reg_operand, got_no_const_operand, gpc_reg_operand, },
    { 0, 0, 0, },
    { general_operand, any_operand, },
    { nonimmediate_operand, input_operand, },
    { 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { general_operand, any_operand, },
    { nonimmediate_operand, input_operand, },
    { general_operand, any_operand, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, nonimmediate_operand, },
    { nonimmediate_operand, nonimmediate_operand, },
    { nonimmediate_operand, any_operand, },
    { 0, 0, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, any_operand, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, input_operand, },
    { nonimmediate_operand, input_operand, },
    { general_operand, any_operand, },
    { nonimmediate_operand, input_operand, },
    { 0, 0, },
    { 0, 0, },
    { nonimmediate_operand, input_operand, },
    { gpc_reg_operand, const_double_operand, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { general_operand, general_operand, },
    { reg_or_mem_operand, reg_or_mem_operand, scratch_operand, },
    { reg_or_mem_operand, reg_or_mem_operand, scratch_operand, },
    { nonimmediate_operand, input_operand, },
    { 0 },
    { load_multiple_operation, gpc_reg_operand, gpc_reg_operand, },
    { 0 },
    { store_multiple_operation, indirect_operand, gpc_reg_operand, scratch_operand, },
    { store_multiple_operation, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, gpc_reg_operand, scratch_operand, },
    { 0, 0, 0, 0, scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, scratch_operand, scratch_operand, },
    { 0, 0, 0, 0, scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, immediate_operand, immediate_operand, scratch_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, },
    { 0, 0, 0, 0, },
    { 0, 0, 0, 0, },
    { gpc_reg_operand, reg_or_short_operand, },
    { register_operand, },
    { any_operand, any_operand, },
    { any_operand, any_operand, },
    { register_operand, register_operand, },
    { memory_operand, register_operand, },
    { register_operand, memory_operand, },
    { 0 },
    { gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { register_operand, gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { register_operand, gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { register_operand, gpc_reg_operand, const_int_operand, const_int_operand, offsettable_mem_operand, gpc_reg_operand, scratch_operand, scratch_operand, },
    { register_operand, const_int_operand, const_int_operand, scratch_operand, },
    { register_operand, register_operand, const_int_operand, const_int_operand, scratch_operand, },
    { address_operand, 0, 0, },
    { 0, address_operand, 0, 0, },
    { current_file_function_operand, 0, immediate_operand, scratch_operand, },
    { current_file_function_operand, 0, immediate_operand, scratch_operand, },
    { 0, current_file_function_operand, 0, immediate_operand, scratch_operand, },
    { 0, current_file_function_operand, 0, immediate_operand, scratch_operand, },
    { call_operand, 0, immediate_operand, scratch_operand, },
    { call_operand, 0, immediate_operand, scratch_operand, },
    { call_operand, 0, immediate_operand, scratch_operand, },
    { 0, call_operand, 0, immediate_operand, scratch_operand, },
    { 0, call_operand, 0, immediate_operand, scratch_operand, },
    { 0, call_operand, 0, immediate_operand, scratch_operand, },
    { 0, 0, 0, },
    { 0 },
    { register_operand, },
    { gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { 0, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { 0, 0, 0, 0, },
    { cc_reg_operand, gpc_reg_operand, reg_or_u_short_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_u_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, short_cint_operand, cc_reg_operand, short_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, u_short_cint_operand, cc_reg_operand, short_cint_operand, },
    { 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, scc_comparison_operator, cc_reg_operand, },
    { cc_reg_operand, scc_comparison_operator, cc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, scc_comparison_operator, cc_reg_operand, const_int_operand, },
    { cc_reg_operand, scc_comparison_operator, cc_reg_operand, const_int_operand, gpc_reg_operand, },
    { cc_reg_operand, scc_comparison_operator, cc_reg_operand, scc_comparison_operator, cc_reg_operand, },
    { 0, 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, scratch_operand, cc_reg_operand, },
    { 0, 0, 0, 0, 0, 0, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_cint_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_cint_operand, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, reg_or_short_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_neg_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, reg_or_short_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, reg_or_short_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { cc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, gpc_reg_operand, scratch_operand, cc_reg_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { gpc_reg_operand, gpc_reg_operand, reg_or_short_operand, },
    { 0, branch_comparison_operator, cc_reg_operand, },
    { branch_comparison_operator, cc_reg_operand, },
    { 0, branch_comparison_operator, cc_reg_operand, },
    { branch_comparison_operator, cc_reg_operand, },
    { 0, },
    { 0 },
    { register_operand, },
    { register_operand, },
    { register_operand, },
    { 0, 0, },
    { 0, 0, },
    { 0, 0, },
    { register_operand, 0, },
    { register_operand, 0, },
    { 0 },
    { register_operand, 0, },
    { register_operand, 0, scratch_operand, scratch_operand, },
    { register_operand, 0, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, register_operand, register_operand, scratch_operand, scratch_operand, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0, 0, 0, 0, 0, 0, 0, },
    { 0 },
    { trap_comparison_operator, const_int_operand, },
    { trap_comparison_operator, register_operand, reg_or_short_operand, },
  };

const int insn_n_alternatives[] =
  {
    0,
    2,
    1,
    1,
    1,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    1,
    1,
    1,
    0,
    0,
    0,
    2,
    1,
    1,
    0,
    1,
    1,
    1,
    0,
    0,
    0,
    2,
    1,
    1,
    0,
    2,
    1,
    1,
    0,
    4,
    4,
    0,
    4,
    0,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    2,
    2,
    2,
    0,
    2,
    2,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    1,
    0,
    1,
    2,
    0,
    1,
    2,
    0,
    1,
    1,
    1,
    1,
    0,
    2,
    2,
    1,
    1,
    1,
    1,
    0,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    0,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    4,
    8,
    0,
    8,
    0,
    0,
    3,
    2,
    0,
    2,
    0,
    0,
    0,
    3,
    2,
    0,
    2,
    0,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    2,
    0,
    2,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    2,
    1,
    2,
    1,
    2,
    1,
    1,
    1,
    1,
    0,
    3,
    2,
    3,
    2,
    3,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    2,
    1,
    2,
    1,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    1,
    0,
    0,
    1,
    0,
    1,
    1,
    1,
    1,
    0,
    1,
    0,
    1,
    1,
    0,
    0,
    0,
    1,
    1,
    1,
    4,
    5,
    2,
    0,
    1,
    1,
    0,
    0,
    1,
    1,
    0,
    1,
    1,
    1,
    0,
    1,
    1,
    4,
    4,
    2,
    0,
    4,
    2,
    2,
    0,
    1,
    1,
    1,
    2,
    1,
    1,
    0,
    2,
    0,
    2,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    1,
    1,
    0,
    1,
    1,
    1,
    0,
    1,
    1,
    1,
    4,
    4,
    4,
    0,
    3,
    1,
    1,
    0,
    0,
    3,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    0,
    1,
    0,
    0,
    12,
    0,
    1,
    0,
    8,
    0,
    8,
    0,
    8,
    0,
    0,
    8,
    8,
    0,
    0,
    0,
    0,
    9,
    6,
    9,
    6,
    0,
    11,
    0,
    0,
    13,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    0,
    5,
    3,
    3,
    0,
    1,
    0,
    1,
    1,
    0,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    0,
    1,
    1,
    2,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    1,
    1,
    1,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    2,
    2,
    0,
    0,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    0,
    0,
    1,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
    1,
    0,
    1,
    1,
    1,
    1,
    0,
    0,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    5,
    5,
    5,
    5,
    0,
    5,
    5,
    5,
    5,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    2,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    1,
    2,
    2,
    2,
    2,
    2,
    2,
    1,
    1,
    2,
    2,
    2,
    2,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    0,
    2,
    2,
    0,
    0,
    0,
    0,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    3,
    0,
    0,
    0,
    0,
    0,
    0,
    1,
  };
