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

#include "config.h"
#include "rtl.h"
#include "insn-config.h"
#include "recog.h"
#include "real.h"
#include "output.h"
#include "flags.h"


/* `recog' contains a decision tree
   that recognizes whether the rtx X0 is a valid instruction.

   recog returns -1 if the rtx is not valid.
   If the rtx is valid, recog returns a nonnegative number
   which is the insn code number for the pattern that matched.
   This is the same as the order in the machine description of
   the entry that matched.  This number can be used as an index into
   entry that matched.  This number can be used as an index into various
   insn_* tables, such as insn_templates, insn_outfun, and insn_n_operands
   (found in insn-output.c).

   The third argument to recog is an optional pointer to an int.
   If present, recog will accept a pattern if it matches except for
   missing CLOBBER expressions at the end.  In that case, the value
   pointed to by the optional pointer will be set to the number of
   CLOBBERs that need to be added (it should be initialized to zero by
   the caller).  If it is set nonzero, the caller should allocate a
   PARALLEL of the appropriate size, copy the initial entries, and call
   add_clobbers (found in insn-emit.c) to fill in the CLOBBERs.*/

rtx recog_operand[MAX_RECOG_OPERANDS];

rtx *recog_operand_loc[MAX_RECOG_OPERANDS];

rtx *recog_dup_loc[MAX_DUP_OPERANDS];

char recog_dup_num[MAX_DUP_OPERANDS];

#define operands recog_operand

int
recog_1 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case HImode:
      switch (GET_CODE (x1))
	{
	case ZERO_EXTEND:
	  goto L474;
	case SIGN_EXTEND:
	  goto L494;
	case PLUS:
	  goto L715;
	case MINUS:
	  goto L746;
	case MULT:
	  goto L780;
	case AND:
	  goto L913;
	case IOR:
	  goto L928;
	case XOR:
	  goto L943;
	case NEG:
	  goto L961;
	case NOT:
	  goto L1078;
	case ASHIFT:
	  goto L1104;
	case ASHIFTRT:
	  goto L1132;
	case LSHIFTRT:
	  goto L1160;
	case ROTATE:
	  goto L1175;
	case ROTATERT:
	  goto L1190;
	}
    }
  if (general_operand (x1, HImode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 55;
      }
  goto ret0;

  L474:
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, QImode))
    {
      ro[1] = x2;
      return 86;
    }
  goto ret0;

  L494:
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, QImode))
    {
      ro[1] = x2;
      return 91;
    }
  goto ret0;

  L715:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L716;
    }
  goto ret0;

  L716:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 129;
    }
  goto ret0;

  L746:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L747;
    }
  goto ret0;

  L747:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 137;
    }
  goto ret0;

  L780:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case HImode:
      switch (GET_CODE (x2))
	{
	case ZERO_EXTEND:
	  goto L781;
	case SIGN_EXTEND:
	  goto L788;
	}
    }
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L757;
    }
  goto ret0;

  L781:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, QImode))
    {
      ro[1] = x3;
      goto L782;
    }
  goto ret0;

  L782:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == ZERO_EXTEND && 1)
    goto L783;
  goto ret0;

  L783:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, QImode))
    {
      ro[2] = x3;
      return 146;
    }
  goto ret0;

  L788:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, QImode))
    {
      ro[1] = x3;
      goto L789;
    }
  goto ret0;

  L789:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == SIGN_EXTEND && 1)
    goto L790;
  goto ret0;

  L790:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, QImode))
    {
      ro[2] = x3;
      return 147;
    }
  goto ret0;

  L757:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    goto L763;
  goto ret0;

  L763:
  ro[2] = x2;
  if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80)
    return 142;
  L764:
  ro[2] = x2;
  return 143;

  L913:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L914;
    }
  goto ret0;

  L914:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 165;
    }
  goto ret0;

  L928:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L929;
    }
  goto ret0;

  L929:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 168;
    }
  goto ret0;

  L943:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L944;
    }
  goto ret0;

  L944:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 171;
    }
  goto ret0;

  L961:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      return 175;
    }
  goto ret0;

  L1078:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      return 202;
    }
  goto ret0;

  L1104:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1105;
    }
  goto ret0;

  L1105:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, HImode))
    {
      ro[2] = x2;
      return 208;
    }
  goto ret0;

  L1132:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1133;
    }
  goto ret0;

  L1133:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, HImode))
    {
      ro[2] = x2;
      return 214;
    }
  goto ret0;

  L1160:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1161;
    }
  goto ret0;

  L1161:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, HImode))
    {
      ro[2] = x2;
      return 220;
    }
  goto ret0;

  L1175:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1176;
    }
  goto ret0;

  L1176:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, HImode))
    {
      ro[2] = x2;
      return 223;
    }
  goto ret0;

  L1190:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1191;
    }
  goto ret0;

  L1191:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, HImode))
    {
      ro[2] = x2;
      return 226;
    }
  goto ret0;
 ret0: return -1;
}

int
recog_2 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case SImode:
      if (nonimmediate_operand (x1, SImode))
	{
	  ro[0] = x1;
	  return 0;
	}
      break;
    case HImode:
      if (nonimmediate_operand (x1, HImode))
	{
	  ro[0] = x1;
	  return 2;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x1, QImode))
	{
	  ro[0] = x1;
	  return 4;
	}
      break;
    case SFmode:
      if (pnum_clobbers != 0 && register_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  if (TARGET_80387 && ! TARGET_IEEE_FP)
	    {
	      *pnum_clobbers = 1;
	      return 6;
	    }
	  }
      break;
    case DFmode:
      if (pnum_clobbers != 0 && register_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  if (TARGET_80387 && ! TARGET_IEEE_FP)
	    {
	      *pnum_clobbers = 1;
	      return 8;
	    }
	  }
      break;
    case XFmode:
      if (pnum_clobbers != 0 && register_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  if (TARGET_80387 && ! TARGET_IEEE_FP)
	    {
	      *pnum_clobbers = 1;
	      return 10;
	    }
	  }
    }
  switch (GET_CODE (x1))
    {
    case COMPARE:
      goto L39;
    case ZERO_EXTRACT:
      goto L1220;
    }
  L61:
  if (VOIDmode_compare_op (x1, VOIDmode))
    {
      ro[2] = x1;
      goto L91;
    }
  L134:
  switch (GET_MODE (x1))
    {
    case CCFPEQmode:
      switch (GET_CODE (x1))
	{
	case COMPARE:
	  goto L135;
	}
      break;
    case SImode:
      switch (GET_CODE (x1))
	{
	case AND:
	  goto L282;
	}
      break;
    case HImode:
      switch (GET_CODE (x1))
	{
	case AND:
	  goto L287;
	}
      break;
    case QImode:
      if (GET_CODE (x1) == AND && 1)
	goto L292;
    }
  goto ret0;

  L39:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case SImode:
      if (nonimmediate_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L40;
	}
      break;
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L45;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L50;
	}
    }
  goto L61;

  L40:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	return 12;
      }
  goto L61;

  L45:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	return 14;
      }
  goto L61;

  L50:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	return 16;
      }
  goto L61;

  L1220:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1221;
	}
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L1233;
	}
    }
  goto L61;

  L1221:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != CONST_INT)
    {
    goto L61;
    }
  if (XWINT (x2, 0) == 1 && 1)
    goto L1222;
  L1227:
  ro[1] = x2;
  goto L1228;

  L1222:
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      if (GET_CODE (operands[1]) != CONST_INT)
	return 231;
      }
  x2 = XEXP (x1, 1);
  goto L1227;

  L1228:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      return 232;
    }
  goto L61;

  L1233:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[1] = x2;
      goto L1234;
    }
  goto L61;

  L1234:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      if (GET_CODE (operands[0]) != MEM || ! MEM_VOLATILE_P (operands[0]))
	return 233;
      }
  goto L61;

  L91:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case XFmode:
      if (GET_CODE (x2) == FLOAT && 1)
	goto L92;
      if (nonimmediate_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L63;
	}
    L76:
      if (register_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L77;
	}
      break;
    case DFmode:
      switch (GET_CODE (x2))
	{
	case FLOAT:
	  goto L178;
	case FLOAT_EXTEND:
	  goto L208;
	case SUBREG:
	case REG:
	case MEM:
	  if (nonimmediate_operand (x2, DFmode))
	    {
	      ro[0] = x2;
	      goto L149;
	    }
	}
    L162:
      if (register_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L163;
	}
      break;
    case SFmode:
      if (GET_CODE (x2) == FLOAT && 1)
	goto L264;
      if (nonimmediate_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L235;
	}
    L248:
      if (register_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L249;
	}
    }
  goto L134;

  L92:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[0] = x3;
      goto L93;
    }
  goto L134;

  L93:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 20;
	}
      }
  goto L134;

  L63:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	{
	  *pnum_clobbers = 1;
	  return 18;
	}
      }
  x2 = XEXP (x1, 0);
  goto L76;

  L77:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    {
      goto L134;
    }
  switch (GET_CODE (x2))
    {
    case FLOAT:
      goto L78;
    case FLOAT_EXTEND:
      goto L108;
    }
  goto L134;

  L78:
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && nonimmediate_operand (x3, SImode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 19;
	}
      }
  goto L134;

  L108:
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case DFmode:
      if (pnum_clobbers != 0 && nonimmediate_operand (x3, DFmode))
	{
	  ro[1] = x3;
	  if (TARGET_80387)
	    {
	      *pnum_clobbers = 1;
	      return 21;
	    }
	  }
      break;
    case SFmode:
      if (pnum_clobbers != 0 && nonimmediate_operand (x3, SFmode))
	{
	  ro[1] = x3;
	  if (TARGET_80387)
	    {
	      *pnum_clobbers = 1;
	      return 22;
	    }
	  }
    }
  goto L134;

  L178:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[0] = x3;
      goto L179;
    }
  goto L134;

  L179:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 26;
	}
      }
  goto L134;

  L208:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SFmode))
    {
      ro[0] = x3;
      goto L209;
    }
  goto L134;

  L209:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 28;
	}
      }
  goto L134;

  L149:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && nonimmediate_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	{
	  *pnum_clobbers = 1;
	  return 24;
	}
      }
  x2 = XEXP (x1, 0);
  goto L162;

  L163:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DFmode)
    {
      goto L134;
    }
  switch (GET_CODE (x2))
    {
    case FLOAT:
      goto L164;
    case FLOAT_EXTEND:
      goto L194;
    }
  goto L134;

  L164:
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && nonimmediate_operand (x3, SImode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 25;
	}
      }
  goto L134;

  L194:
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && nonimmediate_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 27;
	}
      }
  goto L134;

  L264:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[0] = x3;
      goto L265;
    }
  goto L134;

  L265:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 32;
	}
      }
  goto L134;

  L235:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && nonimmediate_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	{
	  *pnum_clobbers = 1;
	  return 30;
	}
      }
  x2 = XEXP (x1, 0);
  goto L248;

  L249:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L250;
  goto L134;

  L250:
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && nonimmediate_operand (x3, SImode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 31;
	}
      }
  goto L134;

  L135:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case XFmode:
      if (register_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L136;
	}
      break;
    case DFmode:
      if (register_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L222;
	}
      break;
    case SFmode:
      if (register_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L278;
	}
    }
  goto ret0;

  L136:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 23;
	}
      }
  goto ret0;

  L222:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 29;
	}
      }
  goto ret0;

  L278:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && register_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 33;
	}
      }
  goto ret0;

  L282:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[0] = x2;
      goto L283;
    }
  goto ret0;

  L283:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      return 43;
    }
  goto ret0;

  L287:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[0] = x2;
      goto L288;
    }
  goto ret0;

  L288:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      return 44;
    }
  goto ret0;

  L292:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[0] = x2;
      goto L293;
    }
  goto ret0;

  L293:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      return 45;
    }
  goto ret0;
 ret0: return -1;
}

int
recog_3 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XEXP (x0, 1);
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    case EQ:
      goto L1289;
    case NE:
      goto L1298;
    case GT:
      goto L1307;
    case GTU:
      goto L1316;
    case LT:
      goto L1325;
    case LTU:
      goto L1334;
    case GE:
      goto L1343;
    case GEU:
      goto L1352;
    case LE:
      goto L1361;
    case LEU:
      goto L1370;
    }
  goto ret0;

  L1289:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1290;
  goto ret0;

  L1290:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1291;
  goto ret0;

  L1291:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1292;
    case PC:
      goto L1382;
    }
  goto ret0;

  L1292:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1293;

  L1293:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 255;
  goto ret0;

  L1382:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1383;
  goto ret0;

  L1383:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 274;

  L1298:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1299;
  goto ret0;

  L1299:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1300;
  goto ret0;

  L1300:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1301;
    case PC:
      goto L1391;
    }
  goto ret0;

  L1301:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1302;

  L1302:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 257;
  goto ret0;

  L1391:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1392;
  goto ret0;

  L1392:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 275;

  L1307:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1308;
  goto ret0;

  L1308:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1309;
  goto ret0;

  L1309:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1310;
    case PC:
      goto L1400;
    }
  goto ret0;

  L1310:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1311;

  L1311:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 259;
  goto ret0;

  L1400:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1401;
  goto ret0;

  L1401:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 276;

  L1316:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1317;
  goto ret0;

  L1317:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1318;
  goto ret0;

  L1318:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1319;
    case PC:
      goto L1409;
    }
  goto ret0;

  L1319:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1320;

  L1320:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 261;
  goto ret0;

  L1409:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1410;
  goto ret0;

  L1410:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 277;

  L1325:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1326;
  goto ret0;

  L1326:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1327;
  goto ret0;

  L1327:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1328;
    case PC:
      goto L1418;
    }
  goto ret0;

  L1328:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1329;

  L1329:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 263;
  goto ret0;

  L1418:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1419;
  goto ret0;

  L1419:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 278;

  L1334:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1335;
  goto ret0;

  L1335:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1336;
  goto ret0;

  L1336:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1337;
    case PC:
      goto L1427;
    }
  goto ret0;

  L1337:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1338;

  L1338:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 265;
  goto ret0;

  L1427:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1428;
  goto ret0;

  L1428:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 279;

  L1343:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1344;
  goto ret0;

  L1344:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1345;
  goto ret0;

  L1345:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1346;
    case PC:
      goto L1436;
    }
  goto ret0;

  L1346:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1347;

  L1347:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 267;
  goto ret0;

  L1436:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1437;
  goto ret0;

  L1437:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 280;

  L1352:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1353;
  goto ret0;

  L1353:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1354;
  goto ret0;

  L1354:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1355;
    case PC:
      goto L1445;
    }
  goto ret0;

  L1355:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1356;

  L1356:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 269;
  goto ret0;

  L1445:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1446;
  goto ret0;

  L1446:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 281;

  L1361:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1362;
  goto ret0;

  L1362:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1363;
  goto ret0;

  L1363:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1364;
    case PC:
      goto L1454;
    }
  goto ret0;

  L1364:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1365;

  L1365:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 271;
  goto ret0;

  L1454:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1455;
  goto ret0;

  L1455:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 282;

  L1370:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1371;
  goto ret0;

  L1371:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1372;
  goto ret0;

  L1372:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case LABEL_REF:
      goto L1373;
    case PC:
      goto L1463;
    }
  goto ret0;

  L1373:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1374;

  L1374:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 273;
  goto ret0;

  L1463:
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1464;
  goto ret0;

  L1464:
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 283;
 ret0: return -1;
}

int
recog_4 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XEXP (x0, 0);
  switch (GET_MODE (x1))
    {
    case SImode:
      switch (GET_CODE (x1))
	{
	case MEM:
	  if (push_operand (x1, SImode))
	    {
	      ro[0] = x1;
	      goto L296;
	    }
	  break;
	case ZERO_EXTRACT:
	  goto L1199;
	}
    L304:
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L469;
	}
    L723:
      if (register_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L820;
	}
    L739:
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L740;
	}
      break;
    case HImode:
      if (GET_CODE (x1) == MEM && push_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L308;
	}
    L316:
      if (general_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L473;
	}
      break;
    case QImode:
      if (GET_CODE (x1) == MEM && push_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L327;
	}
    L332:
      if (general_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L719;
	}
    L1236:
      if (register_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L1237;
	}
      break;
    case SFmode:
      if (GET_CODE (x1) == MEM && push_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L340;
	}
    L359:
      if (memory_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L360;
	}
    L362:
      if (general_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L520;
	}
    L679:
      if (register_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L680;
	}
      break;
    case DFmode:
      if (GET_CODE (x1) == MEM && push_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L373;
	}
    L396:
      if (memory_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L397;
	}
    L399:
      if (general_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L501;
	}
    L675:
      if (register_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L676;
	}
      break;
    case XFmode:
      if (GET_CODE (x1) == MEM && push_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L410;
	}
    L433:
      if (memory_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L434;
	}
    L436:
      if (general_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L505;
	}
    L671:
      if (register_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L672;
	}
      break;
    case DImode:
      if (GET_CODE (x1) == MEM && push_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L455;
	}
    L465:
      if (general_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L704;
	}
    L480:
      if (register_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L481;
	}
    }
  switch (GET_CODE (x1))
    {
    case CC0:
      goto L2;
    case STRICT_LOW_PART:
      goto L320;
    case PC:
      goto L1522;
    }
  L1588:
  ro[0] = x1;
  goto L1589;
  L1655:
  switch (GET_MODE (x1))
    {
    case SImode:
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L1656;
	}
      break;
    case HImode:
      if (general_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L1662;
	}
      break;
    case DFmode:
      if (register_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L1668;
	}
      break;
    case XFmode:
      if (register_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L1679;
	}
      break;
    case SFmode:
      if (register_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L1726;
	}
    }
  goto ret0;

  L296:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SImode))
    {
      ro[1] = x1;
      if (TARGET_386)
	return 46;
      }
  L299:
  if (nonmemory_operand (x1, SImode))
    {
      ro[1] = x1;
      if (!TARGET_386 && TARGET_MOVE)
	return 47;
      }
  L302:
  if (general_operand (x1, SImode))
    {
      ro[1] = x1;
      if (!TARGET_386 && !TARGET_MOVE)
	return 48;
      }
  x1 = XEXP (x0, 0);
  goto L304;

  L1199:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
    {
      ro[0] = x2;
      goto L1200;
    }
  goto L1588;

  L1200:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
    goto L1201;
  goto L1588;

  L1201:
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1202;
    }
  goto L1588;

  L1202:
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CONST_INT && 1)
    {
      ro[3] = x1;
      if (TARGET_386 && GET_CODE (operands[2]) != CONST_INT)
	return 228;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L469:
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case SImode:
      switch (GET_CODE (x1))
	{
	case ZERO_EXTEND:
	  goto L470;
	case SIGN_EXTEND:
	  goto L490;
	case PLUS:
	  goto L710;
	}
    }
  if (general_operand (x1, SImode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 50;
      }
  x1 = XEXP (x0, 0);
  goto L723;

  L470:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[1] = x2;
	  return 85;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[1] = x2;
	  return 87;
	}
    }
  x1 = XEXP (x0, 0);
  goto L723;

  L490:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[1] = x2;
	  return 90;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[1] = x2;
	  return 92;
	}
    }
  x1 = XEXP (x0, 0);
  goto L723;

  L710:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L711;
    }
  x1 = XEXP (x0, 0);
  goto L723;

  L711:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 128;
    }
  x1 = XEXP (x0, 0);
  goto L723;

  L820:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == SImode && GET_CODE (x1) == TRUNCATE && 1)
    goto L821;
  if (address_operand (x1, QImode))
    {
      ro[1] = x1;
      return 131;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L821:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == LSHIFTRT && 1)
    goto L822;
  x1 = XEXP (x0, 0);
  goto L739;

  L822:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == MULT && 1)
    goto L823;
  x1 = XEXP (x0, 0);
  goto L739;

  L823:
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != DImode)
    {
      x1 = XEXP (x0, 0);
      goto L739;
    }
  switch (GET_CODE (x4))
    {
    case ZERO_EXTEND:
      goto L824;
    case SIGN_EXTEND:
      goto L847;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L824:
  x5 = XEXP (x4, 0);
  if (register_operand (x5, SImode))
    {
      ro[1] = x5;
      goto L825;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L825:
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == ZERO_EXTEND && 1)
    goto L826;
  x1 = XEXP (x0, 0);
  goto L739;

  L826:
  x5 = XEXP (x4, 0);
  if (nonimmediate_operand (x5, SImode))
    {
      ro[2] = x5;
      goto L827;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L827:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && pnum_clobbers != 0 && 1)
    if (TARGET_WIDE_MULTIPLY)
      {
	*pnum_clobbers = 1;
	return 150;
      }
  x1 = XEXP (x0, 0);
  goto L739;

  L847:
  x5 = XEXP (x4, 0);
  if (register_operand (x5, SImode))
    {
      ro[1] = x5;
      goto L848;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L848:
  x4 = XEXP (x3, 1);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == SIGN_EXTEND && 1)
    goto L849;
  x1 = XEXP (x0, 0);
  goto L739;

  L849:
  x5 = XEXP (x4, 0);
  if (nonimmediate_operand (x5, SImode))
    {
      ro[2] = x5;
      goto L850;
    }
  x1 = XEXP (x0, 0);
  goto L739;

  L850:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && pnum_clobbers != 0 && 1)
    if (TARGET_WIDE_MULTIPLY)
      {
	*pnum_clobbers = 1;
	return 151;
      }
  x1 = XEXP (x0, 0);
  goto L739;

  L740:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SImode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case MINUS:
      goto L741;
    case MULT:
      goto L768;
    case AND:
      goto L908;
    case IOR:
      goto L923;
    case XOR:
      goto L1206;
    case NEG:
      goto L957;
    case NOT:
      goto L1074;
    case ASHIFT:
      goto L1099;
    case ASHIFTRT:
      goto L1127;
    case LSHIFTRT:
      goto L1155;
    case ROTATE:
      goto L1170;
    case ROTATERT:
      goto L1185;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L741:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L742;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L742:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 136;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L768:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L769;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L769:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L775;
  x1 = XEXP (x0, 0);
  goto L1588;

  L775:
  ro[2] = x2;
  if (GET_CODE (operands[2]) == CONST_INT && INTVAL (operands[2]) == 0x80)
    return 144;
  L776:
  ro[2] = x2;
  return 145;

  L908:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L909;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L909:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 164;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L923:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L924;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L924:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 167;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1206:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1)
    goto L1207;
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1214;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1207:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1)
    goto L1208;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1208:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1209;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1209:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (TARGET_386 && GET_CODE (operands[1]) != CONST_INT)
	return 229;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1214:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1)
    goto L1215;
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 170;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1215:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 1 && 1)
    goto L1216;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1216:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_386 && GET_CODE (operands[2]) != CONST_INT)
	return 230;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L957:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      return 174;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1074:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      return 201;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1099:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1100;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1100:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, SImode))
    {
      ro[2] = x2;
      return 207;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1127:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1128;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1128:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, SImode))
    {
      ro[2] = x2;
      return 213;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1155:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1156;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1156:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, SImode))
    {
      ro[2] = x2;
      return 219;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1170:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1171;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1171:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, SImode))
    {
      ro[2] = x2;
      return 222;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1185:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1186;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1186:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, SImode))
    {
      ro[2] = x2;
      return 225;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L308:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, HImode))
    {
      ro[1] = x1;
      if (TARGET_386)
	return 51;
      }
  L311:
  if (nonmemory_operand (x1, HImode))
    {
      ro[1] = x1;
      if (!TARGET_386 && TARGET_MOVE)
	return 52;
      }
  L314:
  if (general_operand (x1, HImode))
    {
      ro[1] = x1;
      if (!TARGET_386 && !TARGET_MOVE)
	return 53;
      }
  x1 = XEXP (x0, 0);
  goto L316;
 L473:
  tem = recog_1 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L1588;

  L327:
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case QImode:
      if (nonimmediate_operand (x1, QImode))
	{
	  ro[1] = x1;
	  if (!TARGET_MOVE)
	    return 59;
	  }
    L330:
      if (register_operand (x1, QImode))
	{
	  ro[1] = x1;
	  if (TARGET_MOVE)
	    return 60;
	  }
    }
  if (immediate_operand (x1, QImode))
    {
      ro[1] = x1;
      return 58;
    }
  x1 = XEXP (x0, 0);
  goto L332;

  L719:
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case QImode:
      switch (GET_CODE (x1))
	{
	case PLUS:
	  goto L720;
	case MINUS:
	  goto L751;
	case DIV:
	  goto L854;
	case UDIV:
	  goto L859;
	case AND:
	  goto L918;
	case IOR:
	  goto L933;
	case XOR:
	  goto L948;
	case NEG:
	  goto L965;
	case NOT:
	  goto L1082;
	case ASHIFT:
	  goto L1109;
	case ASHIFTRT:
	  goto L1137;
	case LSHIFTRT:
	  goto L1165;
	case ROTATE:
	  goto L1180;
	case ROTATERT:
	  goto L1195;
	}
    }
  if (general_operand (x1, QImode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 62;
      }
  x1 = XEXP (x0, 0);
  goto L1236;

  L720:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L721;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L721:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 130;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L751:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L752;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L752:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 138;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L854:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L855;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L855:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 155;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L859:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L860;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L860:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 156;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L918:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L919;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L919:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 166;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L933:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L934;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L934:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 169;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L948:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L949;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L949:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      return 172;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L965:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      return 176;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1082:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      return 203;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1109:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1110;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1110:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, QImode))
    {
      ro[2] = x2;
      return 209;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1137:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1138;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1138:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, QImode))
    {
      ro[2] = x2;
      return 215;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1165:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1166;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1166:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, QImode))
    {
      ro[2] = x2;
      return 221;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1180:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1181;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1181:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, QImode))
    {
      ro[2] = x2;
      return 224;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1195:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1196;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1196:
  x2 = XEXP (x1, 1);
  if (nonmemory_operand (x2, QImode))
    {
      ro[2] = x2;
      return 227;
    }
  x1 = XEXP (x0, 0);
  goto L1236;

  L1237:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != QImode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case EQ:
      goto L1238;
    case NE:
      goto L1243;
    case GT:
      goto L1248;
    case GTU:
      goto L1253;
    case LT:
      goto L1258;
    case LTU:
      goto L1263;
    case GE:
      goto L1268;
    case GEU:
      goto L1273;
    case LE:
      goto L1278;
    case LEU:
      goto L1283;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1238:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1239;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1239:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 235;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1243:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1244;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1244:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 237;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1248:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1249;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1249:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 239;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1253:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1254;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1254:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 241;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1258:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1259;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1259:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 243;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1263:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1264;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1264:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 245;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1268:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1269;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1269:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 247;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1273:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1274;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1274:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 249;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1278:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1279;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1279:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 251;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1283:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1284;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1284:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 253;
  x1 = XEXP (x0, 0);
  goto L1588;

  L340:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SFmode))
    goto L350;
  x1 = XEXP (x0, 0);
  goto L359;

  L350:
  ro[1] = x1;
  if (!TARGET_MOVE)
    return 66;
  L351:
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x1;
      *pnum_clobbers = 1;
      return 67;
    }
  x1 = XEXP (x0, 0);
  goto L359;

  L360:
  x1 = XEXP (x0, 1);
  if (pnum_clobbers != 0 && memory_operand (x1, SFmode))
    {
      ro[1] = x1;
      *pnum_clobbers = 1;
      return 68;
    }
  x1 = XEXP (x0, 0);
  goto L362;

  L520:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == SFmode && GET_CODE (x1) == FLOAT_TRUNCATE && 1)
    goto L521;
  if (general_operand (x1, SFmode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 69;
      }
  x1 = XEXP (x0, 0);
  goto L679;

  L521:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 98;
      }
  x1 = XEXP (x0, 0);
  goto L679;

  L680:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SFmode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case FLOAT:
      goto L681;
    case NEG:
      goto L969;
    case ABS:
      goto L991;
    case SQRT:
      goto L1013;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L1044;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L1061;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L681:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case DImode:
      if (nonimmediate_operand (x2, DImode))
	{
	  ro[1] = x2;
	  if (TARGET_80387)
	    return 123;
	  }
      break;
    case SImode:
      if (nonimmediate_operand (x2, SImode))
	{
	  ro[1] = x2;
	  if (TARGET_80387)
	    return 126;
	  }
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L969:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 177;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L991:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 182;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1013:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 187;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1044:
  x2 = XVECEXP (x1, 0, 0);
  if (register_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 194;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1061:
  x2 = XVECEXP (x1, 0, 0);
  if (register_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 198;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L373:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, DFmode))
    goto L385;
  x1 = XEXP (x0, 0);
  goto L396;

  L385:
  ro[1] = x1;
  if (!TARGET_MOVE)
    return 72;
  L386:
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 73;
    }
  x1 = XEXP (x0, 0);
  goto L396;

  L397:
  x1 = XEXP (x0, 1);
  if (pnum_clobbers != 0 && memory_operand (x1, DFmode))
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 74;
    }
  x1 = XEXP (x0, 0);
  goto L399;

  L501:
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case DFmode:
      switch (GET_CODE (x1))
	{
	case FLOAT_EXTEND:
	  goto L502;
	case FLOAT_TRUNCATE:
	  goto L525;
	}
    }
  if (general_operand (x1, DFmode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 75;
      }
  x1 = XEXP (x0, 0);
  goto L675;

  L502:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 93;
      }
  x1 = XEXP (x0, 0);
  goto L675;

  L525:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 99;
      }
  x1 = XEXP (x0, 0);
  goto L675;

  L676:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DFmode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case FLOAT:
      goto L677;
    case NEG:
      goto L977;
    case ABS:
      goto L999;
    case SQRT:
      goto L1021;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L1048;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L1065;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L677:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case DImode:
      if (nonimmediate_operand (x2, DImode))
	{
	  ro[1] = x2;
	  if (TARGET_80387)
	    return 122;
	  }
      break;
    case SImode:
      if (nonimmediate_operand (x2, SImode))
	{
	  ro[1] = x2;
	  if (TARGET_80387)
	    return 124;
	  }
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L977:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L978;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 178;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L978:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	return 179;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L999:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1000;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 183;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1000:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	return 184;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1021:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1022;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 188;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1022:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 189;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1048:
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != DFmode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  if (GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1049;
  if (register_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 193;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1049:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 195;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1065:
  x2 = XVECEXP (x1, 0, 0);
  if (GET_MODE (x2) != DFmode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  if (GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1066;
  if (register_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 197;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1066:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 199;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L410:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, XFmode))
    goto L422;
  x1 = XEXP (x0, 0);
  goto L433;

  L422:
  ro[1] = x1;
  if (!TARGET_MOVE)
    return 78;
  L423:
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 79;
    }
  x1 = XEXP (x0, 0);
  goto L433;

  L434:
  x1 = XEXP (x0, 1);
  if (pnum_clobbers != 0 && memory_operand (x1, XFmode))
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 80;
    }
  x1 = XEXP (x0, 0);
  goto L436;

  L505:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == XFmode && GET_CODE (x1) == FLOAT_EXTEND && 1)
    goto L506;
  if (general_operand (x1, XFmode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 81;
      }
  x1 = XEXP (x0, 0);
  goto L671;

  L506:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 94;
      }
  L510:
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 95;
      }
  x1 = XEXP (x0, 0);
  goto L671;

  L672:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != XFmode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case FLOAT:
      goto L673;
    case NEG:
      goto L986;
    case ABS:
      goto L1008;
    case SQRT:
      goto L1030;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L1053;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L1070;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L673:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 121;
      }
  L689:
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 125;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L986:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L987;
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 180;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L987:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	return 181;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1008:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1009;
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_80387)
	return 185;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1009:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_80387)
	return 186;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1030:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == XFmode && GET_CODE (x2) == FLOAT_EXTEND && 1)
    goto L1031;
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 190;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1031:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 191;
      }
  L1036:
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 192;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1053:
  x2 = XVECEXP (x1, 0, 0);
  if (register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 196;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1070:
  x2 = XVECEXP (x1, 0, 0);
  if (register_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (! TARGET_NO_FANCY_MATH_387 && TARGET_80387 
   && (TARGET_IEEE_FP || flag_fast_math) )
	return 200;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L455:
  x1 = XEXP (x0, 1);
  if (pnum_clobbers != 0 && general_operand (x1, DImode))
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 83;
    }
  x1 = XEXP (x0, 0);
  goto L465;

  L704:
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    case DImode:
      switch (GET_CODE (x1))
	{
	case PLUS:
	  goto L705;
	case MINUS:
	  goto L736;
	case NEG:
	  goto L953;
	}
    }
  if (pnum_clobbers != 0 && general_operand (x1, DImode))
    {
      ro[1] = x1;
      *pnum_clobbers = 2;
      return 84;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L705:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L706;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L706:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && general_operand (x2, DImode))
    {
      ro[2] = x2;
      *pnum_clobbers = 1;
      return 127;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L736:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L737;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L737:
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && general_operand (x2, DImode))
    {
      ro[2] = x2;
      *pnum_clobbers = 1;
      return 135;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L953:
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      return 173;
    }
  x1 = XEXP (x0, 0);
  goto L480;

  L481:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DImode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x1))
    {
    case ZERO_EXTEND:
      goto L482;
    case SIGN_EXTEND:
      goto L486;
    case MULT:
      goto L794;
    case ASHIFT:
      goto L1086;
    case ASHIFTRT:
      goto L1114;
    case LSHIFTRT:
      goto L1142;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L482:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      return 88;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L486:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      return 89;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L794:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != DImode)
    {
      x1 = XEXP (x0, 0);
      goto L1588;
    }
  switch (GET_CODE (x2))
    {
    case ZERO_EXTEND:
      goto L795;
    case SIGN_EXTEND:
      goto L802;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L795:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L796;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L796:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == ZERO_EXTEND && 1)
    goto L797;
  x1 = XEXP (x0, 0);
  goto L1588;

  L797:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_WIDE_MULTIPLY)
	return 148;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L802:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L803;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L803:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == SIGN_EXTEND && 1)
    goto L804;
  x1 = XEXP (x0, 0);
  goto L1588;

  L804:
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_WIDE_MULTIPLY)
	return 149;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1086:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1087;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1087:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      return 205;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1114:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1115;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1115:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      return 211;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1142:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1143;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1143:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      return 217;
    }
  x1 = XEXP (x0, 0);
  goto L1588;
 L2:
  tem = recog_2 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L1588;

  L320:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L321;
	}
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L337;
	}
    }
  goto L1588;

  L321:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, HImode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 57;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L337:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, QImode))
    {
      ro[1] = x1;
      if ((!TARGET_MOVE || GET_CODE (operands[0]) != MEM) || (GET_CODE (operands[1]) != MEM))
	return 64;
      }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1522:
  x1 = XEXP (x0, 1);
  switch (GET_CODE (x1))
    {
    case MINUS:
      if (GET_MODE (x1) == SImode && 1)
	goto L1523;
      break;
    case IF_THEN_ELSE:
      goto L1288;
    case LABEL_REF:
      goto L1468;
    }
  L1471:
  if (general_operand (x1, SImode))
    {
      ro[0] = x1;
      return 285;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1523:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 3 && 1)
    goto L1524;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1524:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == MEM && 1)
    goto L1525;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1525:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == PLUS && 1)
    goto L1526;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1526:
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == SImode && GET_CODE (x4) == MULT && 1)
    goto L1527;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1527:
  x5 = XEXP (x4, 0);
  if (register_operand (x5, SImode))
    {
      ro[0] = x5;
      goto L1528;
    }
  x1 = XEXP (x0, 0);
  goto L1588;

  L1528:
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == 4 && 1)
    goto L1529;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1529:
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == LABEL_REF && 1)
    goto L1530;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1530:
  x5 = XEXP (x4, 0);
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x5;
      *pnum_clobbers = 1;
      return 290;
    }
  x1 = XEXP (x0, 0);
  goto L1588;
 L1288:
  tem = recog_3 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L1588;

  L1468:
  x2 = XEXP (x1, 0);
  ro[0] = x2;
  return 284;

  L1589:
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CALL && 1)
    goto L1590;
  x1 = XEXP (x0, 0);
  goto L1655;

  L1590:
  x2 = XEXP (x1, 0);
  if (call_insn_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1591;
    }
  L1595:
  if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1)
    goto L1596;
  x1 = XEXP (x0, 0);
  goto L1655;

  L1591:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 302;
    }
  x2 = XEXP (x1, 0);
  goto L1595;

  L1596:
  x3 = XEXP (x2, 0);
  if (symbolic_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1597;
    }
  x1 = XEXP (x0, 0);
  goto L1655;

  L1597:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (!HALF_PIC_P ())
	return 303;
      }
  x1 = XEXP (x0, 0);
  goto L1655;

  L1656:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == SImode && GET_CODE (x1) == PLUS && 1)
    goto L1657;
  goto ret0;

  L1657:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == FFS && 1)
    goto L1658;
  goto ret0;

  L1658:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1659;
    }
  goto ret0;

  L1659:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && 1)
    return 314;
  goto ret0;

  L1662:
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == HImode && GET_CODE (x1) == PLUS && 1)
    goto L1663;
  goto ret0;

  L1663:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == FFS && 1)
    goto L1664;
  goto ret0;

  L1664:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1665;
    }
  goto ret0;

  L1665:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == -1 && 1)
    return 316;
  goto ret0;

  L1668:
  x1 = XEXP (x0, 1);
  if (binary_387_op (x1, DFmode))
    {
      ro[3] = x1;
      goto L1674;
    }
  goto ret0;

  L1674:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case DFmode:
      switch (GET_CODE (x2))
	{
	case FLOAT:
	  goto L1675;
	case FLOAT_EXTEND:
	  goto L1710;
	case SUBREG:
	case REG:
	case MEM:
	  if (nonimmediate_operand (x2, DFmode))
	    {
	      ro[1] = x2;
	      goto L1670;
	    }
	}
    }
  L1715:
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L1716;
    }
  goto ret0;

  L1675:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1676;
    }
  goto ret0;

  L1676:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 318;
      }
  goto ret0;

  L1710:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L1711;
    }
  goto ret0;

  L1711:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 324;
      }
  goto ret0;

  L1670:
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, DFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 317;
      }
  x2 = XEXP (x1, 0);
  goto L1715;

  L1716:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DFmode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    case FLOAT:
      goto L1717;
    case FLOAT_EXTEND:
      goto L1723;
    }
  goto ret0;

  L1717:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_80387)
	return 325;
      }
  goto ret0;

  L1723:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      if (TARGET_80387)
	return 326;
      }
  goto ret0;

  L1679:
  x1 = XEXP (x0, 1);
  if (binary_387_op (x1, XFmode))
    {
      ro[3] = x1;
      goto L1685;
    }
  goto ret0;

  L1685:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case XFmode:
      switch (GET_CODE (x2))
	{
	case FLOAT:
	  goto L1686;
	case FLOAT_EXTEND:
	  goto L1692;
	case SUBREG:
	case REG:
	case MEM:
	  if (nonimmediate_operand (x2, XFmode))
	    {
	      ro[1] = x2;
	      goto L1681;
	    }
	}
    }
  L1697:
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L1698;
    }
  goto ret0;

  L1686:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1687;
    }
  goto ret0;

  L1687:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 320;
      }
  goto ret0;

  L1692:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L1693;
    }
  goto ret0;

  L1693:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 321;
      }
  goto ret0;

  L1681:
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 319;
      }
  x2 = XEXP (x1, 0);
  goto L1697;

  L1698:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    case FLOAT:
      goto L1699;
    case FLOAT_EXTEND:
      goto L1705;
    }
  goto ret0;

  L1699:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_80387)
	return 322;
      }
  goto ret0;

  L1705:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      if (TARGET_80387)
	return 323;
      }
  goto ret0;

  L1726:
  x1 = XEXP (x0, 1);
  if (binary_387_op (x1, SFmode))
    {
      ro[3] = x1;
      goto L1732;
    }
  goto ret0;

  L1732:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (GET_CODE (x2) == FLOAT && 1)
	goto L1733;
      if (nonimmediate_operand (x2, SFmode))
	{
	  ro[1] = x2;
	  goto L1728;
	}
    }
  L1738:
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L1739;
    }
  goto ret0;

  L1733:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1734;
    }
  goto ret0;

  L1734:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 328;
      }
  goto ret0;

  L1728:
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, SFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 327;
      }
  x2 = XEXP (x1, 0);
  goto L1738;

  L1739:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L1740;
  goto ret0;

  L1740:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_80387)
	return 329;
      }
  goto ret0;
 ret0: return -1;
}

int
recog_5 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case XFmode:
      if (GET_CODE (x3) == FLOAT && 1)
	goto L84;
      if (nonimmediate_operand (x3, XFmode))
	{
	  ro[0] = x3;
	  goto L56;
	}
    L68:
      if (register_operand (x3, XFmode))
	{
	  ro[0] = x3;
	  goto L69;
	}
      break;
    case DFmode:
      switch (GET_CODE (x3))
	{
	case FLOAT:
	  goto L170;
	case FLOAT_EXTEND:
	  goto L200;
	case SUBREG:
	case REG:
	case MEM:
	  if (nonimmediate_operand (x3, DFmode))
	    {
	      ro[0] = x3;
	      goto L142;
	    }
	}
    L154:
      if (register_operand (x3, DFmode))
	{
	  ro[0] = x3;
	  goto L155;
	}
      break;
    case SFmode:
      if (GET_CODE (x3) == FLOAT && 1)
	goto L256;
      if (nonimmediate_operand (x3, SFmode))
	{
	  ro[0] = x3;
	  goto L228;
	}
    L240:
      if (register_operand (x3, SFmode))
	{
	  ro[0] = x3;
	  goto L241;
	}
    }
  goto ret0;

  L84:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[0] = x4;
      goto L85;
    }
  goto ret0;

  L85:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, XFmode))
    {
      ro[1] = x3;
      goto L86;
    }
  goto ret0;

  L86:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L87;
  goto ret0;

  L87:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 20;
      }
  goto ret0;

  L56:
  x3 = XEXP (x2, 1);
  if (nonimmediate_operand (x3, XFmode))
    {
      ro[1] = x3;
      goto L57;
    }
  x3 = XEXP (x2, 0);
  goto L68;

  L57:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L58;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L68;

  L58:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	return 18;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L68;

  L69:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != XFmode)
    goto ret0;
  switch (GET_CODE (x3))
    {
    case FLOAT:
      goto L70;
    case FLOAT_EXTEND:
      goto L100;
    }
  goto ret0;

  L70:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L71;
    }
  goto ret0;

  L71:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L72;
  goto ret0;

  L72:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 19;
      }
  goto ret0;

  L100:
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    case DFmode:
      if (nonimmediate_operand (x4, DFmode))
	{
	  ro[1] = x4;
	  goto L101;
	}
      break;
    case SFmode:
      if (nonimmediate_operand (x4, SFmode))
	{
	  ro[1] = x4;
	  goto L116;
	}
    }
  goto ret0;

  L101:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L102;
  goto ret0;

  L102:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 21;
      }
  goto ret0;

  L116:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L117;
  goto ret0;

  L117:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 22;
      }
  goto ret0;

  L170:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[0] = x4;
      goto L171;
    }
  goto ret0;

  L171:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L172;
    }
  goto ret0;

  L172:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L173;
  goto ret0;

  L173:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 26;
      }
  goto ret0;

  L200:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SFmode))
    {
      ro[0] = x4;
      goto L201;
    }
  goto ret0;

  L201:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L202;
    }
  goto ret0;

  L202:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L203;
  goto ret0;

  L203:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 28;
      }
  goto ret0;

  L142:
  x3 = XEXP (x2, 1);
  if (nonimmediate_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L143;
    }
  x3 = XEXP (x2, 0);
  goto L154;

  L143:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L144;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L154;

  L144:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	return 24;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L154;

  L155:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) != DFmode)
    goto ret0;
  switch (GET_CODE (x3))
    {
    case FLOAT:
      goto L156;
    case FLOAT_EXTEND:
      goto L186;
    }
  goto ret0;

  L156:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L157;
    }
  goto ret0;

  L157:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L158;
  goto ret0;

  L158:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 25;
      }
  goto ret0;

  L186:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SFmode))
    {
      ro[1] = x4;
      goto L187;
    }
  goto ret0;

  L187:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L188;
  goto ret0;

  L188:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 27;
      }
  goto ret0;

  L256:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[0] = x4;
      goto L257;
    }
  goto ret0;

  L257:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L258;
    }
  goto ret0;

  L258:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L259;
  goto ret0;

  L259:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 32;
      }
  goto ret0;

  L228:
  x3 = XEXP (x2, 1);
  if (nonimmediate_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L229;
    }
  x3 = XEXP (x2, 0);
  goto L240;

  L229:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L230;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L240;

  L230:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387
   && (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM))
	return 30;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L240;

  L241:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == SFmode && GET_CODE (x3) == FLOAT && 1)
    goto L242;
  goto ret0;

  L242:
  x4 = XEXP (x3, 0);
  if (nonimmediate_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L243;
    }
  goto ret0;

  L243:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L244;
  goto ret0;

  L244:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	return 31;
      }
  goto ret0;
 ret0: return -1;
}

int
recog_6 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (GET_CODE (x2) == MEM && push_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L344;
	}
    L354:
      if (memory_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L355;
	}
    L366:
      if (register_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L367;
	}
    L513:
      if (nonimmediate_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L514;
	}
      break;
    case DFmode:
      if (register_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L404;
	}
      break;
    case XFmode:
      if (register_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L441;
	}
      break;
    case DImode:
      if (general_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L697;
	}
    L1090:
      if (register_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L1091;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L808;
	}
      break;
    case HImode:
      if (register_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L875;
	}
    }
  switch (GET_CODE (x2))
    {
    case CC0:
      goto L12;
    case PC:
      goto L1509;
    }
  L1566:
  ro[0] = x2;
  goto L1567;
  L1743:
  if (register_operand (x2, SImode))
    {
      ro[0] = x2;
      goto L1744;
    }
  goto ret0;

  L344:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L345;
    }
  x2 = XEXP (x1, 0);
  goto L354;

  L345:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L346;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L354;

  L346:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 67;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L354;

  L355:
  x2 = XEXP (x1, 1);
  if (memory_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L356;
    }
  x2 = XEXP (x1, 0);
  goto L366;

  L356:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L357;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L366;

  L357:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 68;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L366;

  L367:
  x2 = XEXP (x1, 1);
  if (register_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L368;
    }
  x2 = XEXP (x1, 0);
  goto L513;

  L368:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L369;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L513;

  L369:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L370;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L513;

  L370:
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    return 70;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L513;

  L514:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT_TRUNCATE && 1)
    goto L515;
  x2 = XEXP (x1, 0);
  goto L1566;

  L515:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L516;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L516:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L517;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L517:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SFmode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 97;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L404:
  x2 = XEXP (x1, 1);
  if (register_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L405;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L405:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L406;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L406:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L407;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L407:
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    return 76;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L441:
  x2 = XEXP (x1, 1);
  if (register_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L442;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L442:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L443;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L443:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L444;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L444:
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    return 82;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L697:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DImode)
    {
      x2 = XEXP (x1, 0);
      goto L1090;
    }
  switch (GET_CODE (x2))
    {
    case PLUS:
      goto L698;
    case MINUS:
      goto L729;
    }
  x2 = XEXP (x1, 0);
  goto L1090;

  L698:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L699;
    }
  x2 = XEXP (x1, 0);
  goto L1090;

  L699:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L700;
    }
  x2 = XEXP (x1, 0);
  goto L1090;

  L700:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L701;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1090;

  L701:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 127;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1090;

  L729:
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L730;
    }
  x2 = XEXP (x1, 0);
  goto L1090;

  L730:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L731;
    }
  x2 = XEXP (x1, 0);
  goto L1090;

  L731:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L732;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1090;

  L732:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 135;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1090;

  L1091:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DImode)
    {
      x2 = XEXP (x1, 0);
      goto L1566;
    }
  switch (GET_CODE (x2))
    {
    case ASHIFT:
      goto L1092;
    case ASHIFTRT:
      goto L1120;
    case LSHIFTRT:
      goto L1148;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1092:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1093;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1093:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L1094;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1094:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1095;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1095:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[2]) && 1)
    return 206;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1120:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1121;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1121:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L1122;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1122:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1123;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1123:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[2]) && 1)
    return 212;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1148:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1149;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1149:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L1150;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1150:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1151;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1151:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[2]) && 1)
    return 218;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L808:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != SImode)
    {
      x2 = XEXP (x1, 0);
      goto L1566;
    }
  switch (GET_CODE (x2))
    {
    case TRUNCATE:
      goto L809;
    case DIV:
      goto L865;
    case UDIV:
      goto L887;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L809:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1)
    goto L810;
  x2 = XEXP (x1, 0);
  goto L1566;

  L810:
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
    goto L811;
  x2 = XEXP (x1, 0);
  goto L1566;

  L811:
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != DImode)
    {
      x2 = XEXP (x1, 0);
      goto L1566;
    }
  switch (GET_CODE (x5))
    {
    case ZERO_EXTEND:
      goto L812;
    case SIGN_EXTEND:
      goto L835;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L812:
  x6 = XEXP (x5, 0);
  if (register_operand (x6, SImode))
    {
      ro[1] = x6;
      goto L813;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L813:
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
    goto L814;
  x2 = XEXP (x1, 0);
  goto L1566;

  L814:
  x6 = XEXP (x5, 0);
  if (nonimmediate_operand (x6, SImode))
    {
      ro[2] = x6;
      goto L815;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L815:
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L816;
  x2 = XEXP (x1, 0);
  goto L1566;

  L816:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L817;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L817:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_WIDE_MULTIPLY)
	return 150;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L835:
  x6 = XEXP (x5, 0);
  if (register_operand (x6, SImode))
    {
      ro[1] = x6;
      goto L836;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L836:
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
    goto L837;
  x2 = XEXP (x1, 0);
  goto L1566;

  L837:
  x6 = XEXP (x5, 0);
  if (nonimmediate_operand (x6, SImode))
    {
      ro[2] = x6;
      goto L838;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L838:
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L839;
  x2 = XEXP (x1, 0);
  goto L1566;

  L839:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L840;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L840:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_WIDE_MULTIPLY)
	return 151;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L865:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L866;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L866:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L867;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L867:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L868;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L868:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L869;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L869:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1)
    goto L870;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L870:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L871;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L871:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 160;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L887:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L888;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L888:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L889;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L889:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L890;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L890:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L891;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L891:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1)
    goto L892;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L892:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L893;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L893:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 162;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L875:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != HImode)
    {
      x2 = XEXP (x1, 0);
      goto L1566;
    }
  switch (GET_CODE (x2))
    {
    case DIV:
      goto L876;
    case UDIV:
      goto L898;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L876:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L877;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L877:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L878;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L878:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L879;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L879:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[3] = x2;
      goto L880;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L880:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == MOD && 1)
    goto L881;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L881:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L882;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L882:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 161;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L898:
  x3 = XEXP (x2, 0);
  if (register_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L899;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L899:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L900;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L900:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L901;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L901:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[3] = x2;
      goto L902;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L902:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == UMOD && 1)
    goto L903;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L903:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L904;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L904:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 163;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L12:
  x2 = XEXP (x1, 1);
  switch (GET_MODE (x2))
    {
    case SFmode:
      if (register_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L13;
	}
      break;
    case DFmode:
      if (register_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L22;
	}
      break;
    case XFmode:
      if (register_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L31;
	}
    }
  L54:
  if (VOIDmode_compare_op (x2, VOIDmode))
    {
      ro[2] = x2;
      goto L83;
    }
  L127:
  if (GET_MODE (x2) == CCFPEQmode && GET_CODE (x2) == COMPARE && 1)
    goto L128;
  x2 = XEXP (x1, 0);
  goto L1566;

  L13:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L14;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;

  L14:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_80387 && ! TARGET_IEEE_FP)
	return 6;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;

  L22:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L23;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;

  L23:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_80387 && ! TARGET_IEEE_FP)
	return 8;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;

  L31:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L32;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;

  L32:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_80387 && ! TARGET_IEEE_FP)
	return 10;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L54;
 L83:
  tem = recog_5 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  goto L127;

  L128:
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    case XFmode:
      if (register_operand (x3, XFmode))
	{
	  ro[0] = x3;
	  goto L129;
	}
      break;
    case DFmode:
      if (register_operand (x3, DFmode))
	{
	  ro[0] = x3;
	  goto L215;
	}
      break;
    case SFmode:
      if (register_operand (x3, SFmode))
	{
	  ro[0] = x3;
	  goto L271;
	}
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L129:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, XFmode))
    {
      ro[1] = x3;
      goto L130;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L130:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L131;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L131:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 23;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L215:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L216;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L216:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L217;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L217:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 29;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L271:
  x3 = XEXP (x2, 1);
  if (register_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L272;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L272:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L273;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L273:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, HImode))
    {
      ro[2] = x2;
      if (TARGET_80387)
	return 33;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1509:
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    case MINUS:
      if (GET_MODE (x2) == SImode && 1)
	goto L1510;
      break;
    case IF_THEN_ELSE:
      goto L1476;
    case CONST_INT:
    case CONST_DOUBLE:
    case CONST:
    case SYMBOL_REF:
    case LABEL_REF:
    case SUBREG:
    case REG:
    case MEM:
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1535;
	}
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1510:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 3 && 1)
    goto L1511;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1511:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == MEM && 1)
    goto L1512;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1512:
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == SImode && GET_CODE (x4) == PLUS && 1)
    goto L1513;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1513:
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) == SImode && GET_CODE (x5) == MULT && 1)
    goto L1514;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1514:
  x6 = XEXP (x5, 0);
  if (register_operand (x6, SImode))
    {
      ro[0] = x6;
      goto L1515;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1515:
  x6 = XEXP (x5, 1);
  if (GET_CODE (x6) == CONST_INT && XWINT (x6, 0) == 4 && 1)
    goto L1516;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1516:
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) == LABEL_REF && 1)
    goto L1517;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1517:
  x6 = XEXP (x5, 0);
  ro[1] = x6;
  goto L1518;

  L1518:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1519;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1519:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 290;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1476:
  x3 = XEXP (x2, 0);
  if (arithmetic_comparison_operator (x3, VOIDmode))
    {
      ro[0] = x3;
      goto L1477;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1477:
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) != SImode)
    {
      x2 = XEXP (x1, 0);
      goto L1566;
    }
  switch (GET_CODE (x4))
    {
    case PLUS:
      goto L1478;
    case MINUS:
      goto L1495;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1478:
  x5 = XEXP (x4, 0);
  if (general_operand (x5, SImode))
    {
      ro[1] = x5;
      goto L1479;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1479:
  x5 = XEXP (x4, 1);
  if (general_operand (x5, SImode))
    {
      ro[2] = x5;
      goto L1480;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1480:
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L1481;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1481:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L1482;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1482:
  x4 = XEXP (x3, 0);
  ro[3] = x4;
  goto L1483;

  L1483:
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L1484;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1484:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1485;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1485:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L1486;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1486:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L1487;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1487:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1488;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1488:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 287;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1495:
  x5 = XEXP (x4, 0);
  if (general_operand (x5, SImode))
    {
      ro[1] = x5;
      goto L1496;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1496:
  x5 = XEXP (x4, 1);
  if (general_operand (x5, SImode))
    {
      ro[2] = x5;
      goto L1497;
    }
  x2 = XEXP (x1, 0);
  goto L1566;

  L1497:
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L1498;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1498:
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L1499;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1499:
  x4 = XEXP (x3, 0);
  ro[3] = x4;
  goto L1500;

  L1500:
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L1501;
  x2 = XEXP (x1, 0);
  goto L1566;

  L1501:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1502;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1502:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L1503;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1503:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1)
    goto L1504;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1504:
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1505;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1505:
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    return 288;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1535:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L1536;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1536:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1537;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1566;

  L1537:
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  return 291;

  L1567:
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CALL && 1)
    goto L1579;
  x2 = XEXP (x1, 0);
  goto L1743;

  L1579:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == QImode && GET_CODE (x3) == MEM && 1)
    goto L1580;
  L1568:
  if (call_insn_operand (x3, QImode))
    {
      ro[1] = x3;
      goto L1569;
    }
  x2 = XEXP (x1, 0);
  goto L1743;

  L1580:
  x4 = XEXP (x3, 0);
  if (symbolic_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L1581;
    }
  goto L1568;

  L1581:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1582;
    }
  x3 = XEXP (x2, 0);
  goto L1568;

  L1582:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1583;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L1568;

  L1583:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
    goto L1584;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L1568;

  L1584:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L1585;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L1568;

  L1585:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
    goto L1586;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L1568;

  L1586:
  x3 = XEXP (x2, 1);
  if (immediate_operand (x3, SImode))
    {
      ro[4] = x3;
      if (!HALF_PIC_P ())
	return 300;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  goto L1568;

  L1569:
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1570;
    }
  x2 = XEXP (x1, 0);
  goto L1743;

  L1570:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1571;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1743;

  L1571:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
    goto L1572;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1743;

  L1572:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L1573;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1743;

  L1573:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
    goto L1574;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1743;

  L1574:
  x3 = XEXP (x2, 1);
  if (immediate_operand (x3, SImode))
    {
      ro[4] = x3;
      return 299;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1743;

  L1744:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == UNSPEC && XINT (x2, 1) == 0 && XVECLEN (x2, 0) == 3 && 1)
    goto L1745;
  goto ret0;

  L1745:
  x3 = XVECEXP (x2, 0, 0);
  if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
    goto L1746;
  goto ret0;

  L1746:
  x4 = XEXP (x3, 0);
  if (address_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L1747;
    }
  goto ret0;

  L1747:
  x3 = XVECEXP (x2, 0, 1);
  if (register_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L1748;
    }
  goto ret0;

  L1748:
  x3 = XVECEXP (x2, 0, 2);
  if (immediate_operand (x3, SImode))
    {
      ro[3] = x3;
      goto L1749;
    }
  goto ret0;

  L1749:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1750;
  goto ret0;

  L1750:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    return 331;
  goto ret0;
 ret0: return -1;
}

int
recog_7 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case DFmode:
      if (GET_CODE (x2) == MEM && push_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L377;
	}
    L389:
      if (memory_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L390;
	}
      break;
    case XFmode:
      if (GET_CODE (x2) == MEM && push_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L414;
	}
    L426:
      if (memory_operand (x2, XFmode))
	{
	  ro[0] = x2;
	  goto L427;
	}
      break;
    case DImode:
      if (GET_CODE (x2) == MEM && push_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L448;
	}
    L458:
      if (general_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L459;
	}
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L619;
	}
    }
  goto ret0;

  L377:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L378;
    }
  x2 = XEXP (x1, 0);
  goto L389;

  L378:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L379;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L389;

  L379:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L380;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L389;

  L380:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L381;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L389;

  L381:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 73;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L389;

  L390:
  x2 = XEXP (x1, 1);
  if (memory_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L391;
    }
  goto ret0;

  L391:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L392;
  goto ret0;

  L392:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L393;
    }
  goto ret0;

  L393:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L394;
  goto ret0;

  L394:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 74;
    }
  goto ret0;

  L414:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L415;
    }
  x2 = XEXP (x1, 0);
  goto L426;

  L415:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L416;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L426;

  L416:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L417;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L426;

  L417:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L418;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L426;

  L418:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 79;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L426;

  L427:
  x2 = XEXP (x1, 1);
  if (memory_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L428;
    }
  goto ret0;

  L428:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L429;
  goto ret0;

  L429:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L430;
    }
  goto ret0;

  L430:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L431;
  goto ret0;

  L431:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 80;
    }
  goto ret0;

  L448:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L449;
    }
  x2 = XEXP (x1, 0);
  goto L458;

  L449:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L450;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L458;

  L450:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L451;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L458;

  L451:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L452;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L458;

  L452:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 83;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L458;

  L459:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L460;
    }
  goto ret0;

  L460:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L461;
  goto ret0;

  L461:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L462;
    }
  goto ret0;

  L462:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L463;
  goto ret0;

  L463:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      return 84;
    }
  goto ret0;

  L619:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
    goto L620;
  goto ret0;

  L620:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != FIX)
    goto ret0;
  switch (GET_MODE (x3))
    {
    case XFmode:
      goto L621;
    case DFmode:
      goto L643;
    case SFmode:
      goto L665;
    }
  goto ret0;

  L621:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, XFmode))
    {
      ro[1] = x4;
      goto L622;
    }
  goto ret0;

  L622:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L623;
  goto ret0;

  L623:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L624;
    }
  goto ret0;

  L624:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L625;
  goto ret0;

  L625:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 112;
	}
      }
  goto ret0;

  L643:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, DFmode))
    {
      ro[1] = x4;
      goto L644;
    }
  goto ret0;

  L644:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L645;
  goto ret0;

  L645:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L646;
    }
  goto ret0;

  L646:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L647;
  goto ret0;

  L647:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 113;
	}
      }
  goto ret0;

  L665:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SFmode))
    {
      ro[1] = x4;
      goto L666;
    }
  goto ret0;

  L666:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L667;
  goto ret0;

  L667:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L668;
    }
  goto ret0;

  L668:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L669;
  goto ret0;

  L669:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 114;
	}
      }
  goto ret0;
 ret0: return -1;
}

int
recog_8 (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case DImode:
      if (general_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L543;
	}
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L607;
	}
    }
  goto ret0;

  L543:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1)
    goto L544;
  goto ret0;

  L544:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != FIX)
    goto ret0;
  switch (GET_MODE (x3))
    {
    case XFmode:
      goto L545;
    case DFmode:
      goto L571;
    case SFmode:
      goto L597;
    }
  goto ret0;

  L545:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, XFmode))
    {
      ro[1] = x4;
      goto L546;
    }
  goto ret0;

  L546:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L547;
  goto ret0;

  L547:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L548;
  goto ret0;

  L548:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L549;
  goto ret0;

  L549:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L550;
    }
  goto ret0;

  L550:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L551;
  goto ret0;

  L551:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 106;
	}
      }
  goto ret0;

  L571:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, DFmode))
    {
      ro[1] = x4;
      goto L572;
    }
  goto ret0;

  L572:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L573;
  goto ret0;

  L573:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L574;
  goto ret0;

  L574:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L575;
  goto ret0;

  L575:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L576;
    }
  goto ret0;

  L576:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L577;
  goto ret0;

  L577:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 107;
	}
      }
  goto ret0;

  L597:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SFmode))
    {
      ro[1] = x4;
      goto L598;
    }
  goto ret0;

  L598:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L599;
  goto ret0;

  L599:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L600;
  goto ret0;

  L600:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L601;
  goto ret0;

  L601:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L602;
    }
  goto ret0;

  L602:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L603;
  goto ret0;

  L603:
  x2 = XEXP (x1, 0);
  if (pnum_clobbers != 0 && memory_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_80387)
	{
	  *pnum_clobbers = 1;
	  return 108;
	}
      }
  goto ret0;

  L607:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
    goto L608;
  goto ret0;

  L608:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != FIX)
    goto ret0;
  switch (GET_MODE (x3))
    {
    case XFmode:
      goto L609;
    case DFmode:
      goto L631;
    case SFmode:
      goto L653;
    }
  goto ret0;

  L609:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, XFmode))
    {
      ro[1] = x4;
      goto L610;
    }
  goto ret0;

  L610:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L611;
  goto ret0;

  L611:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L612;
    }
  goto ret0;

  L612:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L613;
  goto ret0;

  L613:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L614;
    }
  goto ret0;

  L614:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L615;
  goto ret0;

  L615:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 112;
      }
  goto ret0;

  L631:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, DFmode))
    {
      ro[1] = x4;
      goto L632;
    }
  goto ret0;

  L632:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L633;
  goto ret0;

  L633:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L634;
    }
  goto ret0;

  L634:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L635;
  goto ret0;

  L635:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L636;
    }
  goto ret0;

  L636:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L637;
  goto ret0;

  L637:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 113;
      }
  goto ret0;

  L653:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SFmode))
    {
      ro[1] = x4;
      goto L654;
    }
  goto ret0;

  L654:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L655;
  goto ret0;

  L655:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L656;
    }
  goto ret0;

  L656:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L657;
  goto ret0;

  L657:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L658;
    }
  goto ret0;

  L658:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L659;
  goto ret0;

  L659:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 114;
      }
  goto ret0;
 ret0: return -1;
}

int
recog (x0, insn, pnum_clobbers)
     register rtx x0;
     rtx insn;
     int *pnum_clobbers;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  int tem;

  L0:
  switch (GET_CODE (x0))
    {
    case SET:
      goto L295;
    case PARALLEL:
      if (XVECLEN (x0, 0) == 2 && 1)
	goto L10;
      if (XVECLEN (x0, 0) == 3 && 1)
	goto L375;
      if (XVECLEN (x0, 0) == 5 && 1)
	goto L527;
      if (XVECLEN (x0, 0) == 4 && 1)
	goto L541;
      if (XVECLEN (x0, 0) == 6 && 1)
	goto L1603;
      break;
    case CALL:
      goto L1558;
    case UNSPEC_VOLATILE:
      if (XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1)
	goto L1599;
      break;
    case RETURN:
      if (simple_386_epilogue ())
	return 306;
      break;
    case CONST_INT:
      if (XWINT (x0, 0) == 0 && 1)
	return 307;
    }
  goto ret0;
 L295:
  return recog_4 (x0, insn, pnum_clobbers);

  L10:
  x1 = XVECEXP (x0, 0, 0);
  switch (GET_CODE (x1))
    {
    case SET:
      goto L343;
    case CALL:
      goto L1549;
    }
  goto ret0;
 L343:
  return recog_6 (x0, insn, pnum_clobbers);

  L1549:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == QImode && GET_CODE (x2) == MEM && 1)
    goto L1550;
  L1540:
  if (call_insn_operand (x2, QImode))
    {
      ro[0] = x2;
      goto L1541;
    }
  goto ret0;

  L1550:
  x3 = XEXP (x2, 0);
  if (symbolic_operand (x3, SImode))
    {
      ro[0] = x3;
      goto L1551;
    }
  goto L1540;

  L1551:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1552;
    }
  x2 = XEXP (x1, 0);
  goto L1540;

  L1552:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1553;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1540;

  L1553:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
    goto L1554;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1540;

  L1554:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L1555;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1540;

  L1555:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
    goto L1556;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1540;

  L1556:
  x3 = XEXP (x2, 1);
  if (immediate_operand (x3, SImode))
    {
      ro[3] = x3;
      if (!HALF_PIC_P ())
	return 294;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  goto L1540;

  L1541:
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1542;
    }
  goto ret0;

  L1542:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1543;
  goto ret0;

  L1543:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == REG && XINT (x2, 0) == 7 && 1)
    goto L1544;
  goto ret0;

  L1544:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L1545;
  goto ret0;

  L1545:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == REG && XINT (x3, 0) == 7 && 1)
    goto L1546;
  goto ret0;

  L1546:
  x3 = XEXP (x2, 1);
  if (immediate_operand (x3, SImode))
    {
      ro[3] = x3;
      return 293;
    }
  goto ret0;

  L375:
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L376;
  goto ret0;
 L376:
  return recog_7 (x0, insn, pnum_clobbers);

  L527:
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L528;
  goto ret0;

  L528:
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DImode && general_operand (x2, DImode))
    {
      ro[0] = x2;
      goto L529;
    }
  goto ret0;

  L529:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == FIX && 1)
    goto L530;
  goto ret0;

  L530:
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) != FIX)
    goto ret0;
  switch (GET_MODE (x3))
    {
    case XFmode:
      goto L531;
    case DFmode:
      goto L557;
    case SFmode:
      goto L583;
    }
  goto ret0;

  L531:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, XFmode))
    {
      ro[1] = x4;
      goto L532;
    }
  goto ret0;

  L532:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L533;
  goto ret0;

  L533:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L534;
  goto ret0;

  L534:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L535;
  goto ret0;

  L535:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L536;
    }
  goto ret0;

  L536:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L537;
  goto ret0;

  L537:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L538;
    }
  goto ret0;

  L538:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L539;
  goto ret0;

  L539:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 106;
      }
  goto ret0;

  L557:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, DFmode))
    {
      ro[1] = x4;
      goto L558;
    }
  goto ret0;

  L558:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L559;
  goto ret0;

  L559:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L560;
  goto ret0;

  L560:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L561;
  goto ret0;

  L561:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L562;
    }
  goto ret0;

  L562:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L563;
  goto ret0;

  L563:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L564;
    }
  goto ret0;

  L564:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L565;
  goto ret0;

  L565:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 107;
      }
  goto ret0;

  L583:
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SFmode))
    {
      ro[1] = x4;
      goto L584;
    }
  goto ret0;

  L584:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L585;
  goto ret0;

  L585:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L586;
  goto ret0;

  L586:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L587;
  goto ret0;

  L587:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L588;
    }
  goto ret0;

  L588:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L589;
  goto ret0;

  L589:
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L590;
    }
  goto ret0;

  L590:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L591;
  goto ret0;

  L591:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      if (TARGET_80387)
	return 108;
      }
  goto ret0;

  L541:
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L542;
  goto ret0;
 L542:
  return recog_8 (x0, insn, pnum_clobbers);

  L1603:
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L1604;
  goto ret0;

  L1604:
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    case BLKmode:
      if (GET_CODE (x2) == MEM && 1)
	goto L1605;
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1621;
	}
    }
  if (GET_CODE (x2) == CC0 && 1)
    goto L1639;
  goto ret0;

  L1605:
  x3 = XEXP (x2, 0);
  if (address_operand (x3, SImode))
    {
      ro[0] = x3;
      goto L1606;
    }
  goto ret0;

  L1606:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == BLKmode && GET_CODE (x2) == MEM && 1)
    goto L1607;
  goto ret0;

  L1607:
  x3 = XEXP (x2, 0);
  if (address_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1608;
    }
  goto ret0;

  L1608:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L1609;
  goto ret0;

  L1609:
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      goto L1610;
    }
  goto ret0;

  L1610:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == USE && 1)
    goto L1611;
  goto ret0;

  L1611:
  x2 = XEXP (x1, 0);
  if (immediate_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L1612;
    }
  goto ret0;

  L1612:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1613;
  goto ret0;

  L1613:
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[4] = x2;
      goto L1614;
    }
  goto ret0;

  L1614:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1615;
  goto ret0;

  L1615:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1616;
  goto ret0;

  L1616:
  x1 = XVECEXP (x0, 0, 5);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1617;
  goto ret0;

  L1617:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    return 309;
  goto ret0;

  L1621:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1)
    goto L1622;
  goto ret0;

  L1622:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
    goto L1623;
  goto ret0;

  L1623:
  x4 = XEXP (x3, 0);
  if (address_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L1624;
    }
  goto ret0;

  L1624:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
    goto L1625;
  goto ret0;

  L1625:
  x4 = XEXP (x3, 0);
  if (address_operand (x4, SImode))
    {
      ro[2] = x4;
      goto L1626;
    }
  goto ret0;

  L1626:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L1627;
  goto ret0;

  L1627:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L1628;
    }
  goto ret0;

  L1628:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == USE && 1)
    goto L1629;
  goto ret0;

  L1629:
  x2 = XEXP (x1, 0);
  if (immediate_operand (x2, SImode))
    {
      ro[4] = x2;
      goto L1630;
    }
  goto ret0;

  L1630:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1631;
  goto ret0;

  L1631:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L1632;
  goto ret0;

  L1632:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1633;
  goto ret0;

  L1633:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[2]) && 1)
    goto L1634;
  goto ret0;

  L1634:
  x1 = XVECEXP (x0, 0, 5);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1635;
  goto ret0;

  L1635:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[3]) && 1)
    return 311;
  goto ret0;

  L1639:
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == COMPARE && 1)
    goto L1640;
  goto ret0;

  L1640:
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
    goto L1641;
  goto ret0;

  L1641:
  x4 = XEXP (x3, 0);
  if (address_operand (x4, SImode))
    {
      ro[0] = x4;
      goto L1642;
    }
  goto ret0;

  L1642:
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == BLKmode && GET_CODE (x3) == MEM && 1)
    goto L1643;
  goto ret0;

  L1643:
  x4 = XEXP (x3, 0);
  if (address_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L1644;
    }
  goto ret0;

  L1644:
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L1645;
  goto ret0;

  L1645:
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1646;
    }
  goto ret0;

  L1646:
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == USE && 1)
    goto L1647;
  goto ret0;

  L1647:
  x2 = XEXP (x1, 0);
  if (immediate_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L1648;
    }
  goto ret0;

  L1648:
  x1 = XVECEXP (x0, 0, 3);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1649;
  goto ret0;

  L1649:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1650;
  goto ret0;

  L1650:
  x1 = XVECEXP (x0, 0, 4);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1651;
  goto ret0;

  L1651:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[1]) && 1)
    goto L1652;
  goto ret0;

  L1652:
  x1 = XVECEXP (x0, 0, 5);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1653;
  goto ret0;

  L1653:
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[2]) && 1)
    return 312;
  goto ret0;

  L1558:
  x1 = XEXP (x0, 0);
  if (call_insn_operand (x1, QImode))
    {
      ro[0] = x1;
      goto L1559;
    }
  L1561:
  if (GET_MODE (x1) == QImode && GET_CODE (x1) == MEM && 1)
    goto L1562;
  goto ret0;

  L1559:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SImode))
    {
      ro[1] = x1;
      return 296;
    }
  x1 = XEXP (x0, 0);
  goto L1561;

  L1562:
  x2 = XEXP (x1, 0);
  if (symbolic_operand (x2, SImode))
    {
      ro[0] = x2;
      goto L1563;
    }
  goto ret0;

  L1563:
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SImode))
    {
      ro[1] = x1;
      if (!HALF_PIC_P ())
	return 297;
      }
  goto ret0;

  L1599:
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
    return 305;
  goto ret0;
 ret0: return -1;
}

rtx
split_insns (x0, insn)
     register rtx x0;
     rtx insn;
{
  register rtx *ro = &recog_operand[0];
  register rtx x1, x2, x3, x4, x5, x6;
  rtx tem;

  goto ret0;
 ret0: return 0;
}

