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

#include "config.h"
#include "system.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 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.*/

#define operands recog_operand

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

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case DFmode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case FLOAT_EXTEND:
	  goto L347;
	case FLOAT:
	  goto L381;
	case FIX:
	  goto L452;
	case PLUS:
	  goto L621;
	case MINUS:
	  goto L748;
	case MULT:
	  goto L968;
	case DIV:
	  goto L1023;
	case NEG:
	  goto L1348;
	case SQRT:
	  goto L1362;
	case ABS:
	  goto L1376;
	}
    }
  if (general_operand (x1, DFmode))
    goto L254;
  goto ret0;

  L347: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    goto L352;
  goto ret0;

  L352: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 90;
  L353: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 91;
  goto ret0;

  L381: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    goto L386;
  L395: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 103;
      }
  L403: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 105;
      }
  goto ret0;

  L386: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 100;
  L387: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 101;
  goto L395;

  L452: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && !TARGET_68040)
	return 109;
      }
  goto ret0;

  L621: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT && 1)
    goto L622;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L617;
    }
  goto ret0;

  L622: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L623;
    }
  L628: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L629;
    }
  L634: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L635;
    }
  goto ret0;

  L623: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 137;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L628;

  L629: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 138;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L634;

  L635: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 139;
      }
  goto ret0;

  L617: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    goto L641;
  goto ret0;

  L641: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 136;
  L642: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 140;
  goto ret0;

  L748: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L754;
    }
  goto ret0;

  L754: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT && 1)
    goto L755;
  if (general_operand (x2, DFmode))
    goto L773;
  goto ret0;

  L755: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 158;
      }
  L761: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 159;
      }
  L767: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 160;
      }
  goto ret0;

  L773: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 157;
  L774: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 161;
  goto ret0;

  L968: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT && 1)
    goto L969;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L964;
    }
  goto ret0;

  L969: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L970;
    }
  L975: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L976;
    }
  L981: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L982;
    }
  goto ret0;

  L970: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 190;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L975;

  L976: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 191;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L981;

  L982: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 192;
      }
  goto ret0;

  L964: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    goto L988;
  goto ret0;

  L988: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 189;
  L989: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 193;
  goto ret0;

  L1023: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L1029;
    }
  goto ret0;

  L1029: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FLOAT && 1)
    goto L1030;
  if (general_operand (x2, DFmode))
    goto L1048;
  goto ret0;

  L1030: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 202;
      }
  L1036: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 203;
      }
  L1042: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 204;
      }
  goto ret0;

  L1048: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 201;
  L1049: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 205;
  goto ret0;

  L1348: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    goto L1353;
  goto ret0;

  L1353: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 263;
  L1354: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 264;
  goto ret0;

  L1362: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 266;
      }
  goto ret0;

  L1376: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    goto L1381;
  goto ret0;

  L1381: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 271;
  L1382: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 272;
  goto ret0;

  L254: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 60;
  L255: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 61;
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case DImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case ZERO_EXTEND:
	  goto L293;
	case SIGN_EXTEND:
	  goto L317;
	case PLUS:
	  goto L504;
	case MINUS:
	  goto L687;
	case AND:
	  goto L1127;
	case IOR:
	  goto L1178;
	case XOR:
	  goto L1249;
	case NEG:
	  goto L1300;
	case NOT:
	  goto L1386;
	case ASHIFT:
	  goto L1418;
	}
    }
  if (general_operand (x1, DImode))
    goto L273;
  goto ret0;

  L293: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[1] = x2;
	  return 73;
	}
      break;
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[1] = x2;
	  return 74;
	}
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[1] = x2;
	  return 75;
	}
    }
  goto ret0;

  L317: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[1] = x2;
	  return 82;
	}
      break;
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[1] = x2;
	  return 83;
	}
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[1] = x2;
	  return 84;
	}
    }
  goto ret0;

  L504: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case DImode:
      switch (GET_CODE (x2))
	{
	default:
	  break;
	case LSHIFTRT:
	  goto L505;
	case ASHIFT:
	  goto L523;
	}
    }
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L553;
    }
  goto ret0;

  L505: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L506;
    }
  goto ret0;

  L506: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) != CONST_INT)
    goto ret0;
  if (XWINT (x3, 0) == 63 && 1)
    goto L507;
  if (XWINT (x3, 0) == 32 && 1)
    goto L533;
  goto ret0;

  L507: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[1]) && pnum_clobbers != 0 && 1)
    {
      *pnum_clobbers = 1;
      return 119;
    }
  goto ret0;

  L533: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      return 121;
    }
  goto ret0;

  L523: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == SIGN_EXTEND && 1)
    goto L524;
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L539;
    }
  goto ret0;

  L524: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == HImode && general_operand (x4, HImode))
    {
      ro[1] = x4;
      goto L525;
    }
  goto ret0;

  L525: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    goto L526;
  goto ret0;

  L526: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && general_operand (x2, DImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	{
	  *pnum_clobbers = 1;
	  return 120;
	}
      }
  goto ret0;

  L539: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    goto L540;
  goto ret0;

  L540: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      return 122;
    }
  goto ret0;

  L553: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && general_operand (x2, DImode))
    {
      ro[2] = x2;
      *pnum_clobbers = 1;
      return 123;
    }
  goto ret0;

  L687: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L688;
    }
  L695: ATTRIBUTE_UNUSED_LABEL
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L696;
  L710: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L711;
    }
  goto ret0;

  L688: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == ASHIFT && 1)
    goto L689;
  x2 = XEXP (x1, 0);
  goto L695;

  L689: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == SIGN_EXTEND && 1)
    goto L690;
  x2 = XEXP (x1, 0);
  goto L695;

  L690: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == HImode && general_operand (x4, HImode))
    {
      ro[2] = x4;
      goto L691;
    }
  x2 = XEXP (x1, 0);
  goto L695;

  L691: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && pnum_clobbers != 0 && 1)
    if (!TARGET_5200)
      {
	*pnum_clobbers = 1;
	return 147;
      }
  x2 = XEXP (x1, 0);
  goto L695;

  L696: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == ASHIFT && 1)
    goto L697;
  x2 = XEXP (x1, 0);
  goto L710;

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

  L698: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    return 148;
  x2 = XEXP (x1, 0);
  goto L710;

  L711: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (pnum_clobbers != 0 && general_operand (x2, DImode))
    {
      ro[2] = x2;
      *pnum_clobbers = 1;
      return 149;
    }
  goto ret0;

  L1127: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1128;
    }
  goto ret0;

  L1128: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 216;
      }
  goto ret0;

  L1178: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == ZERO_EXTEND && 1)
    goto L1179;
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1185;
    }
  goto ret0;

  L1179: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, VOIDmode))
    {
      ro[1] = x3;
      goto L1180;
    }
  goto ret0;

  L1180: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 226;
      }
  goto ret0;

  L1185: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 227;
      }
  goto ret0;

  L1249: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1250;
    }
  goto ret0;

  L1250: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 239;
      }
  goto ret0;

  L1300: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    goto L1305;
  goto ret0;

  L1305: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (!TARGET_5200)
    return 250;
  L1306: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_5200)
    return 251;
  goto ret0;

  L1386: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 273;
      }
  goto ret0;

  L1418: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (extend_operator (x2, DImode))
    {
      ro[2] = x2;
      goto L1419;
    }
  L1439: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1440;
    }
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == SIGN_EXTEND && 1)
    goto L1434;
  goto ret0;

  L1419: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1420;
    }
  goto L1439;

  L1420: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 32 && 1)
    return 281;
  x2 = XEXP (x1, 0);
  goto L1439;

  L1440: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != CONST_INT)
    goto ret0;
  if (XWINT (x2, 0) == 32 && 1)
    return 283;
  L1445: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if ((!TARGET_5200
    && ((INTVAL (operands[2]) >= 1 && INTVAL (operands[2]) <= 3)
	|| INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16
	|| (INTVAL (operands[2]) > 32 && INTVAL (operands[2]) <= 63))))
    return 284;
  goto ret0;

  L1434: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == HImode && general_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L1435;
    }
  goto ret0;

  L1435: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 32 && pnum_clobbers != 0 && 1)
    {
      *pnum_clobbers = 1;
      return 282;
    }
  goto ret0;

  L273: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 67;
  L274: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 68;
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case SFmode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case FLOAT_TRUNCATE:
	  goto L357;
	case FLOAT:
	  goto L371;
	case FIX:
	  goto L456;
	case PLUS:
	  goto L651;
	case MINUS:
	  goto L778;
	case MULT:
	  goto L998;
	case DIV:
	  goto L1053;
	case NEG:
	  goto L1338;
	case SQRT:
	  goto L1358;
	case ABS:
	  goto L1366;
	}
    }
  if (general_operand (x1, SFmode))
    goto L246;
  goto ret0;

  L357: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DFmode))
    goto L362;
  L367: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 95;
      }
  goto ret0;

  L362: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 93;
  L363: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68040_ONLY)
    return 94;
  goto L367;

  L371: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    goto L376;
  L391: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 102;
      }
  L399: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 104;
      }
  goto ret0;

  L376: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 97;
  L377: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 98;
  goto L391;

  L456: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && !TARGET_68040)
	return 110;
      }
  goto ret0;

  L651: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L652;
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L647;
    }
  goto ret0;

  L652: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L653;
    }
  L658: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L659;
    }
  L664: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L665;
    }
  goto ret0;

  L653: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 143;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L658;

  L659: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 144;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L664;

  L665: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 145;
      }
  goto ret0;

  L647: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    goto L671;
  goto ret0;

  L671: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 142;
  L672: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 146;
  goto ret0;

  L778: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L784;
    }
  goto ret0;

  L784: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L785;
  if (general_operand (x2, SFmode))
    goto L803;
  goto ret0;

  L785: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 164;
      }
  L791: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 165;
      }
  L797: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 166;
      }
  goto ret0;

  L803: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 163;
  L804: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 167;
  goto ret0;

  L998: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L999;
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L994;
    }
  goto ret0;

  L999: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1000;
    }
  L1005: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L1006;
    }
  L1011: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L1012;
    }
  goto ret0;

  L1000: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 196;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L1005;

  L1006: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 197;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L1011;

  L1012: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 198;
      }
  goto ret0;

  L994: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    goto L1018;
  goto ret0;

  L1018: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 195;
  L1019: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 199;
  goto ret0;

  L1053: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L1059;
    }
  goto ret0;

  L1059: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == FLOAT && 1)
    goto L1060;
  if (general_operand (x2, SFmode))
    goto L1078;
  goto ret0;

  L1060: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 208;
      }
  L1066: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 209;
      }
  L1072: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 210;
      }
  goto ret0;

  L1078: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_FPA)
    return 207;
  L1079: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68881)
    return 211;
  goto ret0;

  L1338: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    goto L1343;
  goto ret0;

  L1343: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 260;
  L1344: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 261;
  goto ret0;

  L1358: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 265;
      }
  goto ret0;

  L1366: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    goto L1371;
  goto ret0;

  L1371: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_FPA)
    return 268;
  L1372: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 269;
  goto ret0;

  L246: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 57;
  L247: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 58;
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SImode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case PLUS:
      goto L557;
    case MINUS:
      goto L715;
    case MULT:
      goto L813;
    case IOR:
      goto L1235;
    case XOR:
      goto L1254;
    case NEG:
      goto L1310;
    case NOT:
      goto L1390;
    case SUBREG:
      if (XINT (x1, 1) == 1 && 1)
	goto L1502;
      break;
    case ZERO_EXTRACT:
      goto L1721;
    case SIGN_EXTRACT:
      goto L1733;
    }
  goto ret0;

  L557: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == LSHIFTRT && 1)
    goto L558;
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L577;
    }
  goto ret0;

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

  L559: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 31 && 1)
    goto L560;
  goto ret0;

  L560: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[1]) && 1)
    return 124;
  goto ret0;

  L577: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == SIGN_EXTEND && 1)
    goto L578;
  if (general_operand (x2, SImode))
    goto L571;
  goto ret0;

  L578: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[2] = x3;
      if (!TARGET_5200)
	return 128;
      }
  goto ret0;

  L571: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (! TARGET_5200)
    return 126;
  L572: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_5200)
    return 127;
  goto ret0;

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

  L721: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == SIGN_EXTEND && 1)
    goto L722;
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 150;
    }
  goto ret0;

  L722: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[2] = x3;
      if (!TARGET_5200)
	return 151;
      }
  goto ret0;

  L813: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case SImode:
      switch (GET_CODE (x2))
	{
	default:
	  break;
	case SIGN_EXTEND:
	  goto L814;
	case ZERO_EXTEND:
	  goto L839;
	}
    }
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L827;
    }
  goto ret0;

  L814: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L815;
    }
  goto ret0;

  L815: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case SIGN_EXTEND:
      if (GET_MODE (x2) == SImode && 1)
	goto L816;
      break;
    case CONST_INT:
      ro[2] = x2;
      if (INTVAL (operands[2]) >= -0x8000 && INTVAL (operands[2]) <= 0x7fff)
	return 170;
    }
  goto ret0;

  L816: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[2] = x3;
      return 169;
    }
  goto ret0;

  L839: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L840;
    }
  goto ret0;

  L840: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case ZERO_EXTEND:
      if (GET_MODE (x2) == SImode && 1)
	goto L841;
      break;
    case CONST_INT:
      ro[2] = x2;
      if (INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 0xffff)
	return 175;
    }
  goto ret0;

  L841: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (nonimmediate_operand (x3, HImode))
    {
      ro[2] = x3;
      return 174;
    }
  goto ret0;

  L827: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L833;
  goto ret0;

  L833: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_68020)
    return 172;
  L834: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_5200)
    return 173;
  goto ret0;

  L1235: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == ZERO_EXTEND && 1)
    goto L1236;
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1190;
    }
  goto ret0;

  L1236: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == HImode && general_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L1237;
    }
  L1244: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, VOIDmode))
    {
      ro[1] = x3;
      goto L1245;
    }
  goto ret0;

  L1237: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == ASHIFT && 1)
    goto L1238;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L1244;

  L1238: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1239;
    }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L1244;

  L1239: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 16 && 1)
    return 237;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L1244;

  L1245: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 238;
      }
  goto ret0;

  L1190: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L1196;
  goto ret0;

  L1196: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (! TARGET_5200)
    return 229;
  L1197: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_5200)
    return 230;
  goto ret0;

  L1254: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1255;
    }
  goto ret0;

  L1255: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L1261;
  goto ret0;

  L1261: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (!TARGET_5200)
    return 241;
  L1262: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_5200)
    return 242;
  goto ret0;

  L1310: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    goto L1315;
  goto ret0;

  L1315: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (!TARGET_5200)
    return 253;
  L1316: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_5200)
    return 254;
  goto ret0;

  L1390: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    goto L1395;
  goto ret0;

  L1395: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (!TARGET_5200)
    return 275;
  L1396: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_5200)
    return 276;
  goto ret0;

  L1502: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != DImode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    default:
      break;
    case ASHIFTRT:
      goto L1503;
    case LSHIFTRT:
      goto L1564;
    }
  goto ret0;

  L1503: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1504;
    }
  goto ret0;

  L1504: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    return 296;
  goto ret0;

  L1564: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1565;
    }
  goto ret0;

  L1565: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    return 307;
  goto ret0;

  L1721: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (memory_operand (x2, QImode))
	{
	  ro[1] = x2;
	  goto L1722;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[1] = x2;
	  goto L1728;
	}
    }
  goto ret0;

  L1722: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 32 && 1)
    goto L1723;
  L1752: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1753;
    }
  goto ret0;

  L1723: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[3]) % 8) == 0
   && ! mode_dependent_address_p (XEXP (operands[1], 0)))
	return 335;
      }
  x2 = XEXP (x1, 1);
  goto L1752;

  L1753: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 342;
      }
  goto ret0;

  L1728: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      goto L1729;
    }
  L1793: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1794;
    }
  goto ret0;

  L1729: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
   && INTVAL (operands[3]) % INTVAL (operands[2]) == 0
   && (GET_CODE (operands[1]) == REG
       || ! mode_dependent_address_p (XEXP (operands[1], 0))))
	return 336;
      }
  x2 = XEXP (x1, 1);
  goto L1793;

  L1794: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 349;
      }
  goto ret0;

  L1733: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (memory_operand (x2, QImode))
	{
	  ro[1] = x2;
	  goto L1734;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[1] = x2;
	  goto L1740;
	}
    }
  goto ret0;

  L1734: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 32 && 1)
    goto L1735;
  L1746: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1747;
    }
  goto ret0;

  L1735: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[3]) % 8) == 0
   && ! mode_dependent_address_p (XEXP (operands[1], 0)))
	return 337;
      }
  x2 = XEXP (x1, 1);
  goto L1746;

  L1747: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 340;
      }
  goto ret0;

  L1740: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      goto L1741;
    }
  L1787: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1788;
    }
  goto ret0;

  L1741: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16)
   && INTVAL (operands[3]) % INTVAL (operands[2]) == 0
   && (GET_CODE (operands[1]) == REG
       || ! mode_dependent_address_p (XEXP (operands[1], 0))))
	return 338;
      }
  x2 = XEXP (x1, 1);
  goto L1787;

  L1788: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 348;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case DImode:
      if (pnum_clobbers != 0 && nonimmediate_operand (x1, DImode))
	{
	  ro[0] = x1;
	  *pnum_clobbers = 2;
	  return 3;
	}
      break;
    case SImode:
      if (nonimmediate_operand (x1, SImode))
	{
	  ro[0] = x1;
	  return 5;
	}
      break;
    case HImode:
      if (nonimmediate_operand (x1, HImode))
	{
	  ro[0] = x1;
	  return 7;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x1, QImode))
	{
	  ro[0] = x1;
	  return 9;
	}
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case COMPARE:
      goto L65;
    case ZERO_EXTRACT:
      goto L127;
    case CONST_INT:
    case CONST_DOUBLE:
    case CONST:
    case SYMBOL_REF:
    case LABEL_REF:
    case SUBREG:
    case REG:
    case MEM:
    L34: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, SFmode))
	goto L38;
    }
  L48: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x1, DFmode))
    goto L52;
  L1815: ATTRIBUTE_UNUSED_LABEL
  if (GET_MODE (x1) == SImode && GET_CODE (x1) == ZERO_EXTRACT && 1)
    goto L1816;
  goto ret0;

  L65: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case SImode:
      if (nonimmediate_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L66;
	}
      break;
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L78;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L83;
	}
      break;
    case DFmode:
      if (general_operand (x2, DFmode))
	{
	  ro[0] = x2;
	  goto L96;
	}
      break;
    case SFmode:
      if (general_operand (x2, SFmode))
	{
	  ro[0] = x2;
	  goto L116;
	}
    }
  goto ret0;

  L66: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L72;
  goto ret0;

  L72: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (!TARGET_5200)
    return 19;
  L73: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_5200)
    return 20;
  goto ret0;

  L78: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 22;
      }
  goto ret0;

  L83: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 24;
      }
  goto ret0;

  L96: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    goto L102;
  goto ret0;

  L102: ATTRIBUTE_UNUSED_LABEL
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x2;
      if (TARGET_FPA)
	{
	  *pnum_clobbers = 1;
	  return 26;
	}
      }
  L103: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 27;
  goto ret0;

  L116: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    goto L122;
  goto ret0;

  L122: ATTRIBUTE_UNUSED_LABEL
  if (pnum_clobbers != 0 && 1)
    {
      ro[1] = x2;
      if (TARGET_FPA)
	{
	  *pnum_clobbers = 1;
	  return 29;
	}
      }
  L123: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_68881)
    return 30;
  goto ret0;

  L127: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (memory_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L128;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L146;
	}
    }
  goto L1815;

  L128: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
    goto L129;
  goto L1815;

  L129: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case MINUS:
      if (GET_MODE (x2) == SImode && 1)
	goto L130;
      break;
    case CONST_INT:
      ro[1] = x2;
      if ((unsigned) INTVAL (operands[1]) < 8 && !TARGET_5200)
	return 36;
    }
  goto L1815;

  L130: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 7 && 1)
    goto L157;
  goto L1815;

  L157: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == AND && 1)
    goto L158;
  if (general_operand (x3, SImode))
    goto L140;
  goto L1815;

  L158: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L159;
    }
  goto L1815;

  L159: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 7 && 1)
    return 34;
  goto L1815;

  L140: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x3;
  if (!TARGET_5200)
    return 31;
  L141: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x3;
  if (TARGET_5200)
    return 32;
  goto L1815;

  L146: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 1 && 1)
    goto L147;
  goto L1815;

  L147: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case MINUS:
      if (GET_MODE (x2) == SImode && 1)
	goto L148;
      break;
    case CONST_INT:
      goto L188;
    }
  goto L1815;

  L148: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 31 && 1)
    goto L167;
  goto L1815;

  L167: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == AND && 1)
    goto L168;
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      return 33;
    }
  goto L1815;

  L168: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (register_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L169;
    }
  goto L1815;

  L169: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 31 && 1)
    return 35;
  goto L1815;

  L188: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (!TARGET_5200)
    return 37;
  L189: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x2;
  if (TARGET_5200)
    return 38;
  goto L1815;

  L38: ATTRIBUTE_UNUSED_LABEL
  if (pnum_clobbers != 0 && 1)
    {
      ro[0] = x1;
      if (TARGET_FPA)
	{
	  *pnum_clobbers = 1;
	  return 11;
	}
      }
  L39: ATTRIBUTE_UNUSED_LABEL
  ro[0] = x1;
  if (TARGET_68881)
    return 12;
  goto L48;

  L52: ATTRIBUTE_UNUSED_LABEL
  if (pnum_clobbers != 0 && 1)
    {
      ro[0] = x1;
      if (TARGET_FPA)
	{
	  *pnum_clobbers = 1;
	  return 14;
	}
      }
  L53: ATTRIBUTE_UNUSED_LABEL
  ro[0] = x1;
  if (TARGET_68881)
    return 15;
  goto ret0;

  L1816: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (memory_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L1817;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1823;
	}
    }
  goto ret0;

  L1817: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[1] = x2;
      goto L1818;
    }
  goto ret0;

  L1818: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 353;
      }
  goto ret0;

  L1823: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[1] = x2;
      goto L1824;
    }
  goto ret0;

  L1824: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 354;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L587;
	}
    L1468: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L1469;
	}
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L604;
	}
    L1479: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L1480;
	}
    }
  goto ret0;

  L587: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case HImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case PLUS:
	  goto L588;
	case MINUS:
	  goto L732;
	case AND:
	  goto L1150;
	case IOR:
	  goto L1207;
	case XOR:
	  goto L1272;
	case NEG:
	  goto L1325;
	case NOT:
	  goto L1405;
	}
    }
  if (general_operand (x1, HImode))
    goto L220;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L588: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L589;
  L594: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L595;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L589: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 130;
      }
  x2 = XEXP (x1, 0);
  goto L594;

  L595: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 131;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L732: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L733;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L733: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 153;
      }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1150: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1151;
  L1156: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1157;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1151: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 221;
      }
  x2 = XEXP (x1, 0);
  goto L1156;

  L1157: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 222;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1207: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1208;
  L1213: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1214;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1208: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 232;
      }
  x2 = XEXP (x1, 0);
  goto L1213;

  L1214: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 233;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1272: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1273;
  L1278: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1279;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1273: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 244;
      }
  x2 = XEXP (x1, 0);
  goto L1278;

  L1279: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 245;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1325: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 256;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1405: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 278;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L220: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 48;
  L221: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 49;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1468;

  L1469: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != HImode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFT:
      goto L1470;
    case ASHIFTRT:
      goto L1547;
    case LSHIFTRT:
      goto L1605;
    case ROTATE:
      goto L1632;
    case ROTATERT:
      goto L1659;
    }
  goto ret0;

  L1470: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1471;
  goto ret0;

  L1471: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 290;
      }
  goto ret0;

  L1547: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1548;
  goto ret0;

  L1548: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 304;
      }
  goto ret0;

  L1605: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1606;
  goto ret0;

  L1606: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 316;
      }
  goto ret0;

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

  L1633: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 321;
      }
  goto ret0;

  L1659: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1660;
  goto ret0;

  L1660: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 326;
      }
  goto ret0;

  L604: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case QImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case PLUS:
	  goto L605;
	case MINUS:
	  goto L743;
	case AND:
	  goto L1167;
	case IOR:
	  goto L1224;
	case XOR:
	  goto L1289;
	case NEG:
	  goto L1334;
	case NOT:
	  goto L1414;
	}
    }
  if (general_operand (x1, QImode))
    goto L238;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L605: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L606;
  L611: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L612;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L606: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 133;
      }
  x2 = XEXP (x1, 0);
  goto L611;

  L612: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 134;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L743: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L744;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L744: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 155;
      }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1167: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1168;
  L1173: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1174;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1168: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 224;
      }
  x2 = XEXP (x1, 0);
  goto L1173;

  L1174: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 225;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1224: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1225;
  L1230: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1231;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1225: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 235;
      }
  x2 = XEXP (x1, 0);
  goto L1230;

  L1231: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 236;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1289: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1290;
  L1295: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1296;
    }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1290: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 247;
      }
  x2 = XEXP (x1, 0);
  goto L1295;

  L1296: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 248;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1334: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 258;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1414: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    if (!TARGET_5200)
      return 280;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L238: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 54;
  L239: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 55;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 0);
  goto L1479;

  L1480: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != QImode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFT:
      goto L1481;
    case ASHIFTRT:
      goto L1558;
    case LSHIFTRT:
      goto L1616;
    case ROTATE:
      goto L1643;
    case ROTATERT:
      goto L1670;
    }
  goto ret0;

  L1481: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1482;
  goto ret0;

  L1482: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 292;
      }
  goto ret0;

  L1558: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1559;
  goto ret0;

  L1559: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 306;
      }
  goto ret0;

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

  L1617: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 318;
      }
  goto ret0;

  L1643: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1644;
  goto ret0;

  L1644: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 323;
      }
  goto ret0;

  L1670: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L1671;
  goto ret0;

  L1671: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 328;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  x2 = XEXP (x1, 0);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case EQ:
      goto L1915;
    case NE:
      goto L1936;
    case GE:
      goto L1945;
    case LT:
      goto L1954;
    case GT:
      goto L1981;
    case GTU:
      goto L1990;
    case LTU:
      goto L2008;
    case GEU:
      goto L2026;
    case LE:
      goto L2035;
    case LEU:
      goto L2044;
    }
  goto ret0;

  L1915: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && general_operand (x3, DImode))
    {
      ro[0] = x3;
      goto L1916;
    }
  if (GET_CODE (x3) == CC0 && 1)
    goto L1964;
  goto ret0;

  L1916: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1917;
  goto ret0;

  L1917: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1918;
  goto ret0;

  L1918: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  goto L1919;

  L1919: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && pnum_clobbers != 0 && 1)
    {
      *pnum_clobbers = 1;
      return 379;
    }
  goto ret0;

  L1964: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1965;
  goto ret0;

  L1965: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L1966;
    case PC:
      goto L2056;
    }
  goto ret0;

  L1966: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1967;

  L1967: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 383;
  goto ret0;

  L2056: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2057;
  goto ret0;

  L2057: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 393;

  L1936: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && general_operand (x3, DImode))
    {
      ro[0] = x3;
      goto L1937;
    }
  if (GET_CODE (x3) == CC0 && 1)
    goto L1973;
  goto ret0;

  L1937: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1938;
  goto ret0;

  L1938: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1939;
  goto ret0;

  L1939: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  goto L1940;

  L1940: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && pnum_clobbers != 0 && 1)
    {
      *pnum_clobbers = 1;
      return 380;
    }
  goto ret0;

  L1973: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1974;
  goto ret0;

  L1974: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L1975;
    case PC:
      goto L2065;
    }
  goto ret0;

  L1975: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1976;

  L1976: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 384;
  goto ret0;

  L2065: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2066;
  goto ret0;

  L2066: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 394;

  L1945: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && general_operand (x3, DImode))
    {
      ro[0] = x3;
      goto L1946;
    }
  if (GET_CODE (x3) == CC0 && 1)
    goto L2018;
  goto ret0;

  L1946: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1947;
  goto ret0;

  L1947: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1948;
  goto ret0;

  L1948: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  goto L1949;

  L1949: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 381;
  goto ret0;

  L2018: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2019;
  goto ret0;

  L2019: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2020;
    case PC:
      goto L2110;
    }
  goto ret0;

  L2020: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2021;

  L2021: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 389;
  goto ret0;

  L2110: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2111;
  goto ret0;

  L2111: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 399;

  L1954: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && general_operand (x3, DImode))
    {
      ro[0] = x3;
      goto L1955;
    }
  if (GET_CODE (x3) == CC0 && 1)
    goto L2000;
  goto ret0;

  L1955: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1956;
  goto ret0;

  L1956: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L1957;
  goto ret0;

  L1957: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  goto L1958;

  L1958: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 382;
  goto ret0;

  L2000: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2001;
  goto ret0;

  L2001: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2002;
    case PC:
      goto L2092;
    }
  goto ret0;

  L2002: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2003;

  L2003: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 387;
  goto ret0;

  L2092: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2093;
  goto ret0;

  L2093: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 397;

  L1981: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1982;
  goto ret0;

  L1982: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1983;
  goto ret0;

  L1983: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L1984;
    case PC:
      goto L2074;
    }
  goto ret0;

  L1984: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1985;

  L1985: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 385;
  goto ret0;

  L2074: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2075;
  goto ret0;

  L2075: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 395;

  L1990: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L1991;
  goto ret0;

  L1991: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L1992;
  goto ret0;

  L1992: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L1993;
    case PC:
      goto L2083;
    }
  goto ret0;

  L1993: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L1994;

  L1994: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 386;
  goto ret0;

  L2083: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2084;
  goto ret0;

  L2084: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 396;

  L2008: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L2009;
  goto ret0;

  L2009: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2010;
  goto ret0;

  L2010: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2011;
    case PC:
      goto L2101;
    }
  goto ret0;

  L2011: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2012;

  L2012: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 388;
  goto ret0;

  L2101: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2102;
  goto ret0;

  L2102: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 398;

  L2026: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L2027;
  goto ret0;

  L2027: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2028;
  goto ret0;

  L2028: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2029;
    case PC:
      goto L2119;
    }
  goto ret0;

  L2029: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2030;

  L2030: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 390;
  goto ret0;

  L2119: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2120;
  goto ret0;

  L2120: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 400;

  L2035: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L2036;
  goto ret0;

  L2036: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2037;
  goto ret0;

  L2037: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2038;
    case PC:
      goto L2128;
    }
  goto ret0;

  L2038: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2039;

  L2039: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 391;
  goto ret0;

  L2128: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2129;
  goto ret0;

  L2129: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 401;

  L2044: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CC0 && 1)
    goto L2045;
  goto ret0;

  L2045: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 0 && 1)
    goto L2046;
  goto ret0;

  L2046: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case LABEL_REF:
      goto L2047;
    case PC:
      goto L2137;
    }
  goto ret0;

  L2047: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  goto L2048;

  L2048: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == PC && 1)
    return 392;
  goto ret0;

  L2137: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2138;
  goto ret0;

  L2138: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[0] = x3;
  return 402;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != XFmode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case FLOAT_EXTEND:
      goto L2350;
    case FLOAT:
      goto L2366;
    case FIX:
      goto L2378;
    case PLUS:
      goto L2394;
    case MINUS:
      goto L2417;
    case MULT:
      goto L2440;
    case DIV:
      goto L2463;
    case NEG:
      goto L2486;
    case ABS:
      goto L2490;
    case SQRT:
      goto L2494;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L2506;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L2518;
    }
  goto ret0;

  L2350: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 448;
      }
  L2354: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 449;
      }
  goto ret0;

  L2366: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 452;
      }
  L2370: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 453;
      }
  L2374: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 454;
      }
  goto ret0;

  L2378: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 455;
      }
  goto ret0;

  L2394: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != XFmode)
    goto ret0;
  if (GET_CODE (x2) == FLOAT && 1)
    goto L2395;
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L2413;
    }
  goto ret0;

  L2395: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L2396;
    }
  L2401: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L2402;
    }
  L2407: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L2408;
    }
  goto ret0;

  L2396: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 459;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L2401;

  L2402: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 460;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L2407;

  L2408: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 461;
      }
  goto ret0;

  L2413: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_68881)
	return 462;
      }
  goto ret0;

  L2417: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L2418;
    }
  goto ret0;

  L2418: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    goto ret0;
  if (GET_CODE (x2) == FLOAT && 1)
    goto L2419;
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_68881)
	return 466;
      }
  goto ret0;

  L2419: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 463;
      }
  L2425: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 464;
      }
  L2431: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 465;
      }
  goto ret0;

  L2440: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) != XFmode)
    goto ret0;
  if (GET_CODE (x2) == FLOAT && 1)
    goto L2441;
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L2459;
    }
  goto ret0;

  L2441: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L2442;
    }
  L2447: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L2448;
    }
  L2453: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      goto L2454;
    }
  goto ret0;

  L2442: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 467;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L2447;

  L2448: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 468;
      }
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  goto L2453;

  L2454: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 469;
      }
  goto ret0;

  L2459: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_68881)
	return 470;
      }
  goto ret0;

  L2463: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      goto L2464;
    }
  goto ret0;

  L2464: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != XFmode)
    goto ret0;
  if (GET_CODE (x2) == FLOAT && 1)
    goto L2465;
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[2] = x2;
      if (TARGET_68881)
	return 474;
      }
  goto ret0;

  L2465: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 471;
      }
  L2471: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 472;
      }
  L2477: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, QImode))
    {
      ro[2] = x3;
      if (TARGET_68881)
	return 473;
      }
  goto ret0;

  L2486: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 476;
      }
  goto ret0;

  L2490: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 478;
      }
  goto ret0;

  L2494: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 479;
      }
  goto ret0;

  L2506: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 482;
      }
  goto ret0;

  L2518: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 485;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XEXP (x0, 0);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case DFmode:
      if (GET_CODE (x1) == MEM && push_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L2;
	}
    L249: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L346;
	}
      break;
    case DImode:
      if (GET_CODE (x1) == MEM && push_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L5;
	}
    L268: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L292;
	}
    L327: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L328;
	}
    L1519: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, DImode))
	{
	  ro[0] = x1;
	  goto L1520;
	}
      break;
    case SImode:
      if (GET_CODE (x1) == MEM && push_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L192;
	}
    L194: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L304;
	}
      break;
    case HImode:
      if (general_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L288;
	}
    L1462: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L1463;
	}
      break;
    case QImode:
      if (general_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L280;
	}
    L1473: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L1474;
	}
    L1673: ATTRIBUTE_UNUSED_LABEL
      if (memory_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L1674;
	}
    L1826: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L1827;
	}
      break;
    case SFmode:
      if (general_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L356;
	}
      break;
    case XFmode:
      if (nonimmediate_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L258;
	}
    }
  L276: ATTRIBUTE_UNUSED_LABEL
  switch (GET_MODE (x1))
    {
    default:
      break;
    case SImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case MEM:
	  if (push_operand (x1, SImode))
	    {
	      ro[0] = x1;
	      goto L277;
	    }
	  break;
	case ZERO_EXTRACT:
	  goto L1691;
	}
    L555: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L556;
	}
    L1130: ATTRIBUTE_UNUSED_LABEL
      if (not_sp_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L1131;
	}
    L1447: ATTRIBUTE_UNUSED_LABEL
      if (register_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L1448;
	}
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case CC0:
      goto L16;
    case STRICT_LOW_PART:
      goto L214;
    case PC:
      goto L1913;
    }
  L2233: ATTRIBUTE_UNUSED_LABEL
  ro[0] = x1;
  goto L2234;
  L2250: ATTRIBUTE_UNUSED_LABEL
  switch (GET_CODE (x1))
    {
    default:
      break;
    case PC:
      goto L2251;
    case CC0:
      goto L2341;
    }
  switch (GET_MODE (x1))
    {
    default:
      break;
    case SImode:
      if (general_operand (x1, SImode))
	{
	  ro[0] = x1;
	  goto L2389;
	}
      break;
    case DFmode:
      if (register_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L2257;
	}
    L2356: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, DFmode))
	{
	  ro[0] = x1;
	  goto L2357;
	}
      break;
    case SFmode:
      if (register_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L2264;
	}
    L2360: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x1, SFmode))
	{
	  ro[0] = x1;
	  goto L2361;
	}
      break;
    case XFmode:
      if (general_operand (x1, XFmode))
	{
	  ro[0] = x1;
	  goto L2349;
	}
      break;
    case QImode:
      if (general_operand (x1, QImode))
	{
	  ro[0] = x1;
	  goto L2381;
	}
      break;
    case HImode:
      if (general_operand (x1, HImode))
	{
	  ro[0] = x1;
	  goto L2385;
	}
    }
  goto ret0;

  L2: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (general_operand (x1, DFmode))
    {
      ro[1] = x1;
      return 0;
    }
  x1 = XEXP (x0, 0);
  goto L249;
 L346: ATTRIBUTE_UNUSED_LABEL
  tem = recog_1 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L2233;

  L5: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (general_operand (x1, DImode))
    {
      ro[1] = x1;
      return 1;
    }
  x1 = XEXP (x0, 0);
  goto L268;
 L292: ATTRIBUTE_UNUSED_LABEL
  tem = recog_2 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L327;

  L328: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DImode)
    {
      x1 = XEXP (x0, 0);
      goto L1519;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case SIGN_EXTEND:
      goto L329;
    case ASHIFTRT:
      goto L1508;
    }
  x1 = XEXP (x0, 0);
  goto L1519;

  L329: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L330;
  x1 = XEXP (x0, 0);
  goto L1519;

  L330: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L331;
    }
  x1 = XEXP (x0, 0);
  goto L1519;

  L331: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      return 85;
    }
  x1 = XEXP (x0, 0);
  goto L1519;

  L1508: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1509;
    }
  x1 = XEXP (x0, 0);
  goto L1519;

  L1509: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 32 && 1)
    return 297;
  x1 = XEXP (x0, 0);
  goto L1519;

  L1520: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DImode)
    {
      x1 = XEXP (x0, 0);
      goto L2233;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFTRT:
      goto L1521;
    case LSHIFTRT:
      goto L1569;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1521: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1522;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1522: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != CONST_INT)
    {
      x1 = XEXP (x0, 0);
    goto L2233;
    }
  if (XWINT (x2, 0) == 32 && pnum_clobbers != 0 && 1)
    {
      *pnum_clobbers = 1;
      return 298;
    }
  L1527: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if ((!TARGET_5200 
    && ((INTVAL (operands[2]) >= 1 && INTVAL (operands[2]) <= 3)
	|| INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16
	|| INTVAL (operands[2]) == 31
	|| (INTVAL (operands[2]) > 32 && INTVAL (operands[2]) <= 63))))
    return 299;
  x1 = XEXP (x0, 0);
  goto L2233;

  L1569: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[1] = x2;
      goto L1570;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1570: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) != CONST_INT)
    {
      x1 = XEXP (x0, 0);
    goto L2233;
    }
  if (XWINT (x2, 0) == 32 && 1)
    return 308;
  L1575: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if ((!TARGET_5200
    && ((INTVAL (operands[2]) >= 1 && INTVAL (operands[2]) <= 3)
	 || INTVAL (operands[2]) == 8 || INTVAL (operands[2]) == 16
	 || (INTVAL (operands[2]) > 32 && INTVAL (operands[2]) <= 63))))
    return 309;
  x1 = XEXP (x0, 0);
  goto L2233;

  L192: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CONST_INT && 1)
    {
      ro[1] = x1;
      if (INTVAL (operands[1]) >= -0x8000 && INTVAL (operands[1]) < 0x8000)
	return 39;
      }
  x1 = XEXP (x0, 0);
  goto L194;

  L304: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case SImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case ZERO_EXTEND:
	  goto L305;
	case SIGN_EXTEND:
	  goto L335;
	case FIX:
	  goto L417;
	}
    }
  if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
    if (((TARGET_68020 || TARGET_5200)
    || !(GET_CODE (operands[0]) == MEM && MEM_VOLATILE_P (operands[0]))))
      return 40;
  L198: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x1, SImode))
    goto L202;
  x1 = XEXP (x0, 0);
  goto L276;

  L305: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[1] = x2;
	  if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	    return 79;
	  }
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[1] = x2;
	  if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	    return 81;
	  }
    }
  x1 = XEXP (x0, 0);
  goto L276;

  L335: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case HImode:
      if (nonimmediate_operand (x2, HImode))
	{
	  ro[1] = x2;
	  return 86;
	}
      break;
    case QImode:
      if (nonimmediate_operand (x2, QImode))
	{
	  ro[1] = x2;
	  if (TARGET_68020 || TARGET_5200)
	    return 88;
	  }
    }
  x1 = XEXP (x0, 0);
  goto L276;

  L417: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case DFmode:
      switch (GET_CODE (x2))
	{
	default:
	  break;
	case FIX:
	  goto L418;
	}
      break;
    case SFmode:
      if (GET_CODE (x2) == FIX && 1)
	goto L485;
    }
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 113;
      }
  L480: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 116;
      }
  x1 = XEXP (x0, 0);
  goto L276;

  L418: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && register_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_68881 && TARGET_68040)
	{
	  *pnum_clobbers = 2;
	  return 106;
	}
      }
  L490: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_FPA)
	return 118;
      }
  x1 = XEXP (x0, 0);
  goto L276;

  L485: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      if (TARGET_FPA)
	return 117;
      }
  x1 = XEXP (x0, 0);
  goto L276;

  L202: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 42;
  L203: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 43;
  x1 = XEXP (x0, 0);
  goto L276;

  L288: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case HImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case TRUNCATE:
	  goto L289;
	case ZERO_EXTEND:
	  goto L309;
	case SIGN_EXTEND:
	  goto L339;
	case FIX:
	  goto L432;
	case PLUS:
	  goto L582;
	case MINUS:
	  goto L726;
	case MULT:
	  goto L808;
	case AND:
	  goto L1144;
	case IOR:
	  goto L1201;
	case XOR:
	  goto L1266;
	case NEG:
	  goto L1320;
	case NOT:
	  goto L1400;
	}
    }
  if (general_operand (x1, HImode))
    goto L210;
  L1495: ATTRIBUTE_UNUSED_LABEL
  if (GET_MODE (x1) == HImode && GET_CODE (x1) == SUBREG && XINT (x1, 1) == 1 && 1)
    goto L1496;
  x1 = XEXP (x0, 0);
  goto L1462;

  L289: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      return 72;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L309: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, QImode))
    {
      ro[1] = x2;
      if (GET_CODE (operands[0]) != MEM || GET_CODE (operands[1]) != MEM)
	return 80;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L339: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, QImode))
    {
      ro[1] = x2;
      return 87;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L432: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FIX && 1)
    goto L433;
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 112;
      }
  L476: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 115;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L433: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && register_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_68881 && TARGET_68040)
	{
	  *pnum_clobbers = 2;
	  return 107;
	}
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L582: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L583;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L583: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 129;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L726: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L727;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L727: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 152;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L808: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L809;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L809: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      return 168;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1144: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1145;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1145: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 220;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1201: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1202;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1202: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 231;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1266: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1267;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1267: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 243;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1320: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 255;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1400: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 277;
      }
  x1 = XEXP (x0, 0);
  goto L1462;

  L210: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 45;
  L211: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 46;
  goto L1495;

  L1496: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DImode && GET_CODE (x2) == ASHIFTRT && 1)
    goto L1497;
  x1 = XEXP (x0, 0);
  goto L1462;

  L1497: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1498;
    }
  x1 = XEXP (x0, 0);
  goto L1462;

  L1498: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    return 295;
  x1 = XEXP (x0, 0);
  goto L1462;

  L1463: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != HImode)
    {
      x1 = XEXP (x0, 0);
      goto L2233;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFT:
      goto L1464;
    case ASHIFTRT:
      goto L1541;
    case LSHIFTRT:
      goto L1599;
    case ROTATE:
      goto L1626;
    case ROTATERT:
      goto L1653;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1464: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1465;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1465: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 289;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1541: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1542;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1542: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 303;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1599: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1600;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1600: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 315;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1626: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1627;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1627: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 320;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1653: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, HImode))
    {
      ro[1] = x2;
      goto L1654;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1654: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, HImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 325;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L280: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case QImode:
      switch (GET_CODE (x1))
	{
	default:
	  break;
	case TRUNCATE:
	  goto L281;
	case FIX:
	  goto L447;
	case PLUS:
	  goto L599;
	case MINUS:
	  goto L737;
	case AND:
	  goto L1161;
	case IOR:
	  goto L1218;
	case XOR:
	  goto L1283;
	case NEG:
	  goto L1329;
	case NOT:
	  goto L1409;
	}
    }
  if (general_operand (x1, QImode))
    goto L228;
  x1 = XEXP (x0, 0);
  goto L1473;

  L281: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      return 70;
    }
  L285: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, HImode))
    {
      ro[1] = x2;
      return 71;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L447: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == FIX && 1)
    goto L448;
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 111;
      }
  L472: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 114;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L448: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (pnum_clobbers != 0 && register_operand (x3, DFmode))
    {
      ro[1] = x3;
      if (TARGET_68881 && TARGET_68040)
	{
	  *pnum_clobbers = 2;
	  return 108;
	}
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L599: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L600;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L600: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 132;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L737: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L738;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L738: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 154;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1161: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1162;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1162: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 223;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1218: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1219;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1219: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 234;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1283: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1284;
    }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1284: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 246;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1329: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 257;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L1409: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, QImode))
    {
      ro[1] = x2;
      if (!TARGET_5200)
	return 279;
      }
  x1 = XEXP (x0, 0);
  goto L1473;

  L228: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (!TARGET_5200)
    return 51;
  L229: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_5200)
    return 52;
  x1 = XEXP (x0, 0);
  goto L1473;

  L1474: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != QImode)
    {
      x1 = XEXP (x0, 0);
      goto L1673;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFT:
      goto L1475;
    case ASHIFTRT:
      goto L1552;
    case LSHIFTRT:
      goto L1610;
    case ROTATE:
      goto L1637;
    case ROTATERT:
      goto L1664;
    case EQ:
      goto L1852;
    case NE:
      goto L1857;
    case GT:
      goto L1862;
    case GTU:
      goto L1867;
    case LT:
      goto L1872;
    case LTU:
      goto L1877;
    case GE:
      goto L1882;
    case GEU:
      goto L1887;
    case LE:
      goto L1892;
    case LEU:
      goto L1897;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1475: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1476;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1476: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 291;
      }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1552: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1553;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1553: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 305;
      }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1610: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1611;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1611: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 317;
      }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1637: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1638;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1638: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 322;
      }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1664: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L1665;
    }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1665: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, QImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 327;
      }
  x1 = XEXP (x0, 0);
  goto L1673;

  L1852: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1853;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1853: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 360;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1857: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1858;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1858: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 362;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1862: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1863;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1863: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 364;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1867: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1868;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1868: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 366;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1872: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1873;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1873: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 368;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1877: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1878;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1878: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 370;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1882: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1883;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1883: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 372;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1887: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1888;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1888: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 374;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1892: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1893;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1893: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 376;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1897: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == CC0 && 1)
    goto L1898;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1898: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    return 378;
  x1 = XEXP (x0, 0);
  goto L1673;

  L1674: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == QImode && GET_CODE (x1) == IOR && 1)
    goto L1675;
  x1 = XEXP (x0, 0);
  goto L1826;

  L1675: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == QImode && GET_CODE (x2) == SUBREG && XINT (x2, 1) == 0 && 1)
    goto L1676;
  x1 = XEXP (x0, 0);
  goto L1826;

  L1676: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == ASHIFT && 1)
    goto L1677;
  x1 = XEXP (x0, 0);
  goto L1826;

  L1677: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 1 && 1)
    goto L1678;
  x1 = XEXP (x0, 0);
  goto L1826;

  L1678: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (general_operand (x4, SImode))
    {
      ro[1] = x4;
      goto L1679;
    }
  L1686: ATTRIBUTE_UNUSED_LABEL
  if (extend_operator (x4, SImode))
    {
      ro[2] = x4;
      goto L1687;
    }
  x1 = XEXP (x0, 0);
  goto L1826;

  L1679: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    return 329;
  x2 = XEXP (x1, 0);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 1);
  goto L1686;

  L1687: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (general_operand (x5, VOIDmode))
    {
      ro[1] = x5;
      goto L1688;
    }
  x1 = XEXP (x0, 0);
  goto L1826;

  L1688: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (rtx_equal_p (x2, ro[0]) && 1)
    return 330;
  x1 = XEXP (x0, 0);
  goto L1826;

  L1827: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (valid_dbcc_comparison_p (x1, VOIDmode))
    {
      ro[1] = x1;
      goto L1828;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1828: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, DImode))
    {
      ro[2] = x2;
      goto L1829;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1829: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && XWINT (x2, 0) == 0 && 1)
    goto L1835;
  L1841: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DImode))
    goto L1847;
  x1 = XEXP (x0, 0);
  goto L2233;

  L1835: ATTRIBUTE_UNUSED_LABEL
  if (! TARGET_5200)
    return 355;
  L1836: ATTRIBUTE_UNUSED_LABEL
  if (TARGET_5200)
    return 356;
  goto L1841;

  L1847: ATTRIBUTE_UNUSED_LABEL
  ro[3] = x2;
  if (! TARGET_5200)
    return 357;
  L1848: ATTRIBUTE_UNUSED_LABEL
  ro[3] = x2;
  if (TARGET_5200)
    return 358;
  x1 = XEXP (x0, 0);
  goto L2233;
 L356: ATTRIBUTE_UNUSED_LABEL
  tem = recog_3 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L2233;

  L258: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != XFmode)
    {
      x1 = XEXP (x0, 0);
      goto L2233;
    }
  if (nonimmediate_operand (x1, XFmode))
    goto L262;
  L266: ATTRIBUTE_UNUSED_LABEL
  if (nonimmediate_operand (x1, XFmode))
    {
      ro[1] = x1;
      if (! TARGET_68881 && TARGET_5200)
	return 65;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L262: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (TARGET_68881)
    return 63;
  L263: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if (! TARGET_68881 && ! TARGET_5200)
    return 64;
  goto L266;

  L277: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (address_operand (x1, SImode))
    {
      ro[1] = x1;
      return 69;
    }
  x1 = XEXP (x0, 0);
  goto L555;

  L1691: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case QImode:
      if (memory_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L1692;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1715;
	}
    }
  goto L1130;

  L1692: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case CONST_INT:
      if (XWINT (x2, 0) == 1 && 1)
	goto L1693;
      if (XWINT (x2, 0) == 32 && 1)
	goto L1710;
    }
  L1757: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1758;
    }
  goto L1130;

  L1693: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == MINUS && 1)
    goto L1694;
  x2 = XEXP (x1, 1);
  goto L1757;

  L1694: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 7 && 1)
    goto L1695;
  x2 = XEXP (x1, 1);
  goto L1757;

  L1695: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L1696;
    }
  L1703: ATTRIBUTE_UNUSED_LABEL
  if (extend_operator (x3, SImode))
    {
      ro[2] = x3;
      goto L1704;
    }
  x2 = XEXP (x1, 1);
  goto L1757;

  L1696: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
    return 331;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 2);
  x3 = XEXP (x2, 1);
  goto L1703;

  L1704: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (general_operand (x4, VOIDmode))
    {
      ro[1] = x4;
      goto L1705;
    }
  x2 = XEXP (x1, 1);
  goto L1757;

  L1705: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CONST_INT && XWINT (x1, 0) == 0 && 1)
    return 332;
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 1);
  goto L1757;

  L1710: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      goto L1711;
    }
  x2 = XEXP (x1, 1);
  goto L1757;

  L1711: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SImode))
    {
      ro[3] = x1;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[2]) % 8) == 0
   && ! mode_dependent_address_p (XEXP (operands[0], 0)))
	return 333;
      }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 1);
  goto L1757;

  L1758: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1759;
    }
  goto L1130;

  L1759: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_MODE (x1))
    {
    default:
      break;
    case SImode:
      if (GET_CODE (x1) == XOR && 1)
	goto L1760;
      if (register_operand (x1, SImode))
	{
	  ro[3] = x1;
	  if (TARGET_68020 && TARGET_BITFIELD)
	    return 347;
	  }
    }
  if (GET_CODE (x1) != CONST_INT)
    {
      x1 = XEXP (x0, 0);
    goto L1130;
    }
  if (XWINT (x1, 0) == 0 && 1)
    if (TARGET_68020 && TARGET_BITFIELD)
      return 344;
  if (XWINT (x1, 0) == -1 && 1)
    if (TARGET_68020 && TARGET_BITFIELD)
      return 345;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1760: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == ZERO_EXTRACT && 1)
    goto L1761;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1761: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[0]) && 1)
    goto L1762;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1762: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1763;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1763: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (rtx_equal_p (x3, ro[2]) && 1)
    goto L1764;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1764: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[3] = x2;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[3]) == -1
       || (GET_CODE (operands[1]) == CONST_INT
           && (~ INTVAL (operands[3]) & ((1 << INTVAL (operands[1]))- 1)) == 0)))
	return 343;
      }
  x1 = XEXP (x0, 0);
  goto L1130;

  L1715: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[1] = x2;
      goto L1716;
    }
  L1798: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1799;
    }
  goto L1130;

  L1716: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (GET_CODE (x2) == CONST_INT && 1)
    {
      ro[2] = x2;
      goto L1717;
    }
  x2 = XEXP (x1, 1);
  goto L1798;

  L1717: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (register_operand (x1, SImode))
    {
      ro[3] = x1;
      if (TARGET_68020 && TARGET_BITFIELD
   && (INTVAL (operands[1]) == 8 || INTVAL (operands[1]) == 16)
   && INTVAL (operands[2]) % INTVAL (operands[1]) == 0
   && (GET_CODE (operands[0]) == REG
       || ! mode_dependent_address_p (XEXP (operands[0], 0))))
	return 334;
      }
  x1 = XEXP (x0, 0);
  x2 = XEXP (x1, 1);
  goto L1798;

  L1799: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 2);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      goto L1812;
    }
  goto L1130;

  L1812: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (register_operand (x1, SImode))
    {
      ro[3] = x1;
      if (TARGET_68020 && TARGET_BITFIELD)
	return 352;
      }
  if (GET_CODE (x1) != CONST_INT)
    {
      x1 = XEXP (x0, 0);
    goto L1130;
    }
  if (XWINT (x1, 0) == 0 && 1)
    if (TARGET_68020 && TARGET_BITFIELD)
      return 350;
  if (XWINT (x1, 0) == -1 && 1)
    if (TARGET_68020 && TARGET_BITFIELD)
      return 351;
  x1 = XEXP (x0, 0);
  goto L1130;
 L556: ATTRIBUTE_UNUSED_LABEL
  tem = recog_4 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L1130;

  L1131: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == SImode && GET_CODE (x1) == AND && 1)
    goto L1132;
  x1 = XEXP (x0, 0);
  goto L1447;

  L1132: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1133;
    }
  x1 = XEXP (x0, 0);
  goto L1447;

  L1133: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L1139;
  x1 = XEXP (x0, 0);
  goto L1447;

  L1139: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (!TARGET_5200)
    return 218;
  L1140: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if (TARGET_5200)
    return 219;
  x1 = XEXP (x0, 0);
  goto L1447;

  L1448: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SImode)
    {
      x1 = XEXP (x0, 0);
      goto L2233;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case ASHIFT:
      goto L1449;
    case ASHIFTRT:
      goto L1486;
    case LSHIFTRT:
      goto L1579;
    case ROTATE:
      goto L1621;
    case ROTATERT:
      goto L1648;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1449: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1450;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1450: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case CONST_INT:
      if (XWINT (x2, 0) == 16 && 1)
	if (!TARGET_68060)
	  return 286;
    L1455: ATTRIBUTE_UNUSED_LABEL
      ro[2] = x2;
      if ((! TARGET_68020 && !TARGET_5200
    && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
	return 287;
    }
  L1460: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 288;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1486: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1487;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1487: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case CONST_INT:
      if (XWINT (x2, 0) == 16 && 1)
	if (!TARGET_68060)
	  return 293;
    L1492: ATTRIBUTE_UNUSED_LABEL
      ro[2] = x2;
      if ((! TARGET_68020 && !TARGET_5200
    && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
	return 294;
    L1532: ATTRIBUTE_UNUSED_LABEL
      if (XWINT (x2, 0) == 31 && 1)
	return 301;
    }
  L1537: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 302;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1579: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1580;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1580: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_CODE (x2))
    {
    default:
      break;
    case CONST_INT:
      if (XWINT (x2, 0) == 31 && 1)
	return 311;
      if (XWINT (x2, 0) == 16 && 1)
	if (!TARGET_68060)
	  return 312;
    L1590: ATTRIBUTE_UNUSED_LABEL
      ro[2] = x2;
      if ((! TARGET_68020 && !TARGET_5200
    && INTVAL (operands[2]) > 16 && INTVAL (operands[2]) <= 24))
	return 313;
    }
  L1595: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      return 314;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1621: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1622;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1622: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 319;
      }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1648: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L1649;
    }
  x1 = XEXP (x0, 0);
  goto L2233;

  L1649: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    {
      ro[2] = x2;
      if (!TARGET_5200)
	return 324;
      }
  x1 = XEXP (x0, 0);
  goto L2233;
 L16: ATTRIBUTE_UNUSED_LABEL
  tem = recog_5 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L2233;
 L214: ATTRIBUTE_UNUSED_LABEL
  tem = recog_6 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  goto L2233;

  L1913: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  switch (GET_CODE (x1))
    {
    default:
      break;
    case IF_THEN_ELSE:
      goto L1914;
    case LABEL_REF:
      goto L2142;
    }
  x1 = XEXP (x0, 0);
  goto L2233;
 L1914: ATTRIBUTE_UNUSED_LABEL
  tem = recog_7 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x1 = XEXP (x0, 0);
  goto L2233;

  L2142: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  ro[0] = x2;
  return 403;

  L2234: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_CODE (x1) == CALL && 1)
    goto L2235;
  x1 = XEXP (x0, 0);
  goto L2250;

  L2235: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (memory_operand (x2, QImode))
    {
      ro[1] = x2;
      goto L2236;
    }
  x1 = XEXP (x0, 0);
  goto L2250;

  L2236: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SImode))
    goto L2242;
  x1 = XEXP (x0, 0);
  goto L2250;

  L2242: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if ((! flag_pic || flag_pic >= 3))
    return 416;
  L2243: ATTRIBUTE_UNUSED_LABEL
  ro[2] = x2;
  if ((flag_pic && flag_pic < 3))
    return 417;
  x1 = XEXP (x0, 0);
  goto L2250;

  L2251: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (address_operand (x1, SImode))
    {
      ro[0] = x1;
      return 423;
    }
  goto ret0;

  L2341: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (nonimmediate_operand (x1, XFmode))
    {
      ro[0] = x1;
      if (TARGET_68881)
	return 445;
      }
  if (GET_CODE (x1) == COMPARE && 1)
    goto L2345;
  goto ret0;

  L2345: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[0] = x2;
      goto L2346;
    }
  goto ret0;

  L2346: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 447;
      }
  goto ret0;

  L2389: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == SImode && GET_CODE (x1) == FIX && 1)
    goto L2390;
  if (address_operand (x1, QImode))
    {
      ro[1] = x1;
      return 424;
    }
  goto ret0;

  L2390: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 458;
      }
  goto ret0;

  L2257: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DFmode)
    {
      x1 = XEXP (x0, 0);
      goto L2356;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case PLUS:
      goto L2258;
    case MINUS:
      goto L2286;
    case MULT:
      goto L2300;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2258: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
    goto L2259;
  x1 = XEXP (x0, 0);
  goto L2356;

  L2259: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L2260;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2260: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2261;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2261: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 432;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2286: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
    goto L2287;
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L2273;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2287: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L2288;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2288: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2289;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2289: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 436;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2273: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MULT && 1)
    goto L2274;
  x1 = XEXP (x0, 0);
  goto L2356;

  L2274: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2275;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2275: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[3] = x3;
      if (TARGET_FPA)
	return 434;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2300: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case DFmode:
      switch (GET_CODE (x2))
	{
	default:
	  break;
	case PLUS:
	  goto L2301;
	case MINUS:
	  goto L2315;
	}
    }
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      goto L2322;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2301: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L2302;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2302: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2303;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2303: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 438;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2315: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L2316;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2316: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2317;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2317: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, DFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 440;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2322: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == DFmode && GET_CODE (x2) == MINUS && 1)
    goto L2323;
  x1 = XEXP (x0, 0);
  goto L2356;

  L2323: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DFmode))
    {
      ro[2] = x3;
      goto L2324;
    }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2324: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[3] = x3;
      if (TARGET_FPA)
	return 441;
      }
  x1 = XEXP (x0, 0);
  goto L2356;

  L2357: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != DFmode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case FLOAT_TRUNCATE:
      goto L2358;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L2502;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L2514;
    }
  goto ret0;

  L2358: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 450;
      }
  goto ret0;

  L2502: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 481;
      }
  goto ret0;

  L2514: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (general_operand (x2, DFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 484;
      }
  goto ret0;

  L2264: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SFmode)
    {
      x1 = XEXP (x0, 0);
      goto L2360;
    }
  switch (GET_CODE (x1))
    {
    default:
      break;
    case PLUS:
      goto L2265;
    case MINUS:
      goto L2293;
    case MULT:
      goto L2307;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2265: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
    goto L2266;
  x1 = XEXP (x0, 0);
  goto L2360;

  L2266: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L2267;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2267: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2268;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2268: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 433;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2293: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
    goto L2294;
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L2280;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2294: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L2295;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2295: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2296;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2296: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 437;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2280: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MULT && 1)
    goto L2281;
  x1 = XEXP (x0, 0);
  goto L2360;

  L2281: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2282;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2282: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[3] = x3;
      if (TARGET_FPA)
	return 435;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2307: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case SFmode:
      switch (GET_CODE (x2))
	{
	default:
	  break;
	case PLUS:
	  goto L2308;
	case MINUS:
	  goto L2329;
	}
    }
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      goto L2336;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2308: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L2309;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2309: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2310;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2310: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 439;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2329: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L2330;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2330: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2331;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2331: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[3] = x2;
      if (TARGET_FPA)
	return 442;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2336: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SFmode && GET_CODE (x2) == MINUS && 1)
    goto L2337;
  x1 = XEXP (x0, 0);
  goto L2360;

  L2337: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, SFmode))
    {
      ro[2] = x3;
      goto L2338;
    }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2338: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[3] = x3;
      if (TARGET_FPA)
	return 443;
      }
  x1 = XEXP (x0, 0);
  goto L2360;

  L2361: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) != SFmode)
    goto ret0;
  switch (GET_CODE (x1))
    {
    default:
      break;
    case FLOAT_TRUNCATE:
      goto L2362;
    case UNSPEC:
      if (XINT (x1, 1) == 1 && XVECLEN (x1, 0) == 1 && 1)
	goto L2498;
      if (XINT (x1, 1) == 2 && XVECLEN (x1, 0) == 1 && 1)
	goto L2510;
    }
  goto ret0;

  L2362: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 451;
      }
  goto ret0;

  L2498: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 480;
      }
  goto ret0;

  L2510: ATTRIBUTE_UNUSED_LABEL
  x2 = XVECEXP (x1, 0, 0);
  if (general_operand (x2, SFmode))
    {
      ro[1] = x2;
      if (TARGET_68881 && flag_fast_math)
	return 483;
      }
  goto ret0;
 L2349: ATTRIBUTE_UNUSED_LABEL
  return recog_8 (x0, insn, pnum_clobbers);

  L2381: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == QImode && GET_CODE (x1) == FIX && 1)
    goto L2382;
  goto ret0;

  L2382: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 456;
      }
  goto ret0;

  L2385: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (GET_MODE (x1) == HImode && GET_CODE (x1) == FIX && 1)
    goto L2386;
  goto ret0;

  L2386: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (general_operand (x2, XFmode))
    {
      ro[1] = x2;
      if (TARGET_68881)
	return 457;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != SImode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    default:
      break;
    case MULT:
      goto L852;
    case TRUNCATE:
      goto L914;
    }
  goto ret0;

  L852: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (register_operand (x3, SImode))
    {
      ro[1] = x3;
      goto L853;
    }
  goto ret0;

  L853: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (nonimmediate_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L854;
    }
  if (GET_CODE (x3) == CONST_INT && 1)
    {
      ro[2] = x3;
      goto L870;
    }
  L900: ATTRIBUTE_UNUSED_LABEL
  if (const_sint32_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L901;
    }
  goto ret0;

  L854: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L855;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L855: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L856;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L856: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == TRUNCATE && 1)
    goto L857;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L857: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1)
    goto L858;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L858: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
    goto L859;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L859: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != DImode)
    {
      x1 = XVECEXP (x0, 0, 0);
      x2 = XEXP (x1, 1);
      x3 = XEXP (x2, 1);
      goto L900;
    }
  switch (GET_CODE (x5))
    {
    default:
      break;
    case ZERO_EXTEND:
      goto L860;
    case SIGN_EXTEND:
      goto L891;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L860: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[1]) && 1)
    goto L861;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L861: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
    goto L862;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L862: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[2]) && 1)
    goto L863;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L863: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
      return 177;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L891: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[1]) && 1)
    goto L892;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L892: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
    goto L893;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L893: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[2]) && 1)
    goto L894;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L894: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
      return 180;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L870: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L871;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L871: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L872;
    }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L872: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == TRUNCATE && 1)
    goto L873;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L873: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1)
    goto L874;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L874: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
    goto L875;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L875: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
    goto L876;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L876: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[1]) && 1)
    goto L877;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L877: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (rtx_equal_p (x5, ro[2]) && 1)
    goto L878;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L878: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    if (TARGET_68020 && !TARGET_68060 && !TARGET_5200
   && (unsigned) INTVAL (operands[2]) <= 0x7fffffff)
      return 178;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 1);
  goto L900;

  L901: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L902;
  goto ret0;

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

  L903: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == TRUNCATE && 1)
    goto L904;
  goto ret0;

  L904: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1)
    goto L905;
  goto ret0;

  L905: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
    goto L906;
  goto ret0;

  L906: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
    goto L907;
  goto ret0;

  L907: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (rtx_equal_p (x6, ro[1]) && 1)
    goto L908;
  goto ret0;

  L908: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (rtx_equal_p (x5, ro[2]) && 1)
    goto L909;
  goto ret0;

  L909: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
      return 181;
  goto ret0;

  L914: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == LSHIFTRT && 1)
    goto L915;
  goto ret0;

  L915: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == MULT && 1)
    goto L916;
  goto ret0;

  L916: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) != DImode)
    goto ret0;
  switch (GET_CODE (x5))
    {
    default:
      break;
    case ZERO_EXTEND:
      goto L917;
    case SIGN_EXTEND:
      goto L942;
    }
  goto ret0;

  L917: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (register_operand (x6, SImode))
    {
      ro[2] = x6;
      goto L918;
    }
  goto ret0;

  L918: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == ZERO_EXTEND && 1)
    goto L919;
  L931: ATTRIBUTE_UNUSED_LABEL
  if (const_uint32_operand (x5, VOIDmode))
    {
      ro[3] = x5;
      goto L932;
    }
  goto ret0;

  L919: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (nonimmediate_operand (x6, SImode))
    {
      ro[3] = x6;
      goto L920;
    }
  goto L931;

  L920: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L921;
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L931;

  L921: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L922;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L931;

  L922: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
	return 183;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L931;

  L932: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L933;
  goto ret0;

  L933: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L934;
  goto ret0;

  L934: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
	return 184;
      }
  goto ret0;

  L942: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (register_operand (x6, SImode))
    {
      ro[2] = x6;
      goto L943;
    }
  goto ret0;

  L943: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_MODE (x5) == DImode && GET_CODE (x5) == SIGN_EXTEND && 1)
    goto L944;
  L956: ATTRIBUTE_UNUSED_LABEL
  if (const_sint32_operand (x5, VOIDmode))
    {
      ro[3] = x5;
      goto L957;
    }
  goto ret0;

  L944: ATTRIBUTE_UNUSED_LABEL
  x6 = XEXP (x5, 0);
  if (nonimmediate_operand (x6, SImode))
    {
      ro[3] = x6;
      goto L945;
    }
  goto L956;

  L945: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L946;
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L956;

  L946: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L947;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L956;

  L947: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
	return 186;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  x4 = XEXP (x3, 0);
  x5 = XEXP (x4, 1);
  goto L956;

  L957: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L958;
  goto ret0;

  L958: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L959;
  goto ret0;

  L959: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_68020 && !TARGET_68060 && !TARGET_5200)
	return 187;
      }
  goto ret0;
 ret0: return -1;
}

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

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  x3 = XEXP (x2, 0);
  switch (GET_CODE (x3))
    {
    default:
      break;
    case EQ:
      goto L1904;
    case NE:
      goto L1925;
    case GE:
      goto L2195;
    }
  goto ret0;

  L1904: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && general_operand (x4, DImode))
    {
      ro[0] = x4;
      goto L1905;
    }
  goto ret0;

  L1905: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L1906;
  goto ret0;

  L1906: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L1907;
  goto ret0;

  L1907: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L1908;

  L1908: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L1909;
  goto ret0;

  L1909: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1910;
  goto ret0;

  L1910: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 379;
    }
  goto ret0;

  L1925: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  switch (GET_MODE (x4))
    {
    default:
      break;
    case DImode:
      if (general_operand (x4, DImode))
	{
	  ro[0] = x4;
	  goto L1926;
	}
      break;
    case HImode:
      if (general_operand (x4, HImode))
	{
	  ro[0] = x4;
	  goto L2166;
	}
      break;
    case SImode:
      if (general_operand (x4, SImode))
	{
	  ro[0] = x4;
	  goto L2181;
	}
    }
  goto ret0;

  L1926: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L1927;
  goto ret0;

  L1927: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L1928;
  goto ret0;

  L1928: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L1929;

  L1929: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L1930;
  goto ret0;

  L1930: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1931;
  goto ret0;

  L1931: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 380;
    }
  goto ret0;

  L2166: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L2167;
  goto ret0;

  L2167: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L2168;
  goto ret0;

  L2168: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L2169;

  L2169: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L2170;
  goto ret0;

  L2170: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L2171;
  goto ret0;

  L2171: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L2172;
  goto ret0;

  L2172: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == PLUS && 1)
    goto L2173;
  goto ret0;

  L2173: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[0]) && 1)
    goto L2174;
  goto ret0;

  L2174: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
    if (!TARGET_5200)
      return 407;
  goto ret0;

  L2181: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L2182;
  goto ret0;

  L2182: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L2183;
  goto ret0;

  L2183: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L2184;

  L2184: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L2185;
  goto ret0;

  L2185: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L2186;
  goto ret0;

  L2186: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L2187;
  goto ret0;

  L2187: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L2188;
  goto ret0;

  L2188: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[0]) && 1)
    goto L2189;
  goto ret0;

  L2189: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
    if (!TARGET_5200)
      return 408;
  goto ret0;

  L2195: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_CODE (x4) != PLUS)
    goto ret0;
  switch (GET_MODE (x4))
    {
    default:
      break;
    case HImode:
      goto L2196;
    case SImode:
      goto L2213;
    }
  goto ret0;

  L2196: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (general_operand (x5, HImode))
    {
      ro[0] = x5;
      goto L2197;
    }
  goto ret0;

  L2197: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == -1 && 1)
    goto L2198;
  goto ret0;

  L2198: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L2199;
  goto ret0;

  L2199: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L2200;
  goto ret0;

  L2200: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L2201;

  L2201: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L2202;
  goto ret0;

  L2202: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L2203;
  goto ret0;

  L2203: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L2204;
  goto ret0;

  L2204: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == PLUS && 1)
    goto L2205;
  goto ret0;

  L2205: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[0]) && 1)
    goto L2206;
  goto ret0;

  L2206: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
    if (!TARGET_5200 && find_reg_note (insn, REG_NONNEG, 0))
      return 409;
  goto ret0;

  L2213: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (general_operand (x5, SImode))
    {
      ro[0] = x5;
      goto L2214;
    }
  goto ret0;

  L2214: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 1);
  if (GET_CODE (x5) == CONST_INT && XWINT (x5, 0) == -1 && 1)
    goto L2215;
  goto ret0;

  L2215: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 0 && 1)
    goto L2216;
  goto ret0;

  L2216: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == LABEL_REF && 1)
    goto L2217;
  goto ret0;

  L2217: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  ro[1] = x4;
  goto L2218;

  L2218: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 2);
  if (GET_CODE (x3) == PC && 1)
    goto L2219;
  goto ret0;

  L2219: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L2220;
  goto ret0;

  L2220: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (rtx_equal_p (x2, ro[0]) && 1)
    goto L2221;
  goto ret0;

  L2221: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == PLUS && 1)
    goto L2222;
  goto ret0;

  L2222: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[0]) && 1)
    goto L2223;
  goto ret0;

  L2223: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == -1 && 1)
    if (!TARGET_5200 && find_reg_note (insn, REG_NONNEG, 0))
      return 411;
  goto ret0;
 ret0: return -1;
}

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

  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case DImode:
      if (general_operand (x2, DImode))
	{
	  ro[0] = x2;
	  goto L494;
	}
      break;
    case SImode:
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L851;
	}
    L1082: ATTRIBUTE_UNUSED_LABEL
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L1083;
	}
      break;
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L1105;
	}
    }
  switch (GET_CODE (x2))
    {
    default:
      break;
    case CC0:
      goto L29;
    case PC:
      goto L2153;
    }
  goto ret0;

  L494: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != DImode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    default:
      break;
    case PLUS:
      goto L495;
    case MINUS:
      goto L677;
    case ASHIFT:
      goto L1425;
    case ASHIFTRT:
      goto L1514;
    }
  goto ret0;

  L495: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    default:
      break;
    case DImode:
      switch (GET_CODE (x3))
	{
	default:
	  break;
	case LSHIFTRT:
	  goto L496;
	case ASHIFT:
	  goto L513;
	}
    }
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L546;
    }
  goto ret0;

  L496: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (general_operand (x4, DImode))
    {
      ro[1] = x4;
      goto L497;
    }
  goto ret0;

  L497: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 63 && 1)
    goto L498;
  goto ret0;

  L498: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L499;
  goto ret0;

  L499: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L500;
  goto ret0;

  L500: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 119;
    }
  goto ret0;

  L513: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == SIGN_EXTEND && 1)
    goto L514;
  goto ret0;

  L514: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) == HImode && general_operand (x5, HImode))
    {
      ro[1] = x5;
      goto L515;
    }
  goto ret0;

  L515: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L516;
  goto ret0;

  L516: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L517;
    }
  goto ret0;

  L517: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L518;
  goto ret0;

  L518: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (!TARGET_5200)
	return 120;
      }
  goto ret0;

  L546: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L547;
    }
  goto ret0;

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

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

  L677: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L678;
    }
  goto ret0;

  L678: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == ASHIFT && 1)
    goto L679;
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L705;
    }
  goto ret0;

  L679: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == DImode && GET_CODE (x4) == SIGN_EXTEND && 1)
    goto L680;
  goto ret0;

  L680: ATTRIBUTE_UNUSED_LABEL
  x5 = XEXP (x4, 0);
  if (GET_MODE (x5) == HImode && general_operand (x5, HImode))
    {
      ro[2] = x5;
      goto L681;
    }
  goto ret0;

  L681: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 1);
  if (GET_CODE (x4) == CONST_INT && XWINT (x4, 0) == 32 && 1)
    goto L682;
  goto ret0;

  L682: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L683;
  goto ret0;

  L683: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (!TARGET_5200)
	return 147;
      }
  goto ret0;

  L705: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L706;
  goto ret0;

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

  L1425: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DImode && GET_CODE (x3) == SIGN_EXTEND && 1)
    goto L1426;
  goto ret0;

  L1426: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (GET_MODE (x4) == HImode && general_operand (x4, HImode))
    {
      ro[1] = x4;
      goto L1427;
    }
  goto ret0;

  L1427: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    goto L1428;
  goto ret0;

  L1428: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1429;
  goto ret0;

  L1429: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 282;
    }
  goto ret0;

  L1514: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, DImode))
    {
      ro[1] = x3;
      goto L1515;
    }
  goto ret0;

  L1515: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_CODE (x3) == CONST_INT && XWINT (x3, 0) == 32 && 1)
    goto L1516;
  goto ret0;

  L1516: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L1517;
  goto ret0;

  L1517: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      return 298;
    }
  goto ret0;
 L851: ATTRIBUTE_UNUSED_LABEL
  tem = recog_10 (x0, insn, pnum_clobbers);
  if (tem >= 0) return tem;
  x2 = XEXP (x1, 0);
  goto L1082;

  L1083: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != SImode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    default:
      break;
    case DIV:
      goto L1084;
    case UDIV:
      goto L1095;
    }
  goto ret0;

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

  L1085: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1086;
    }
  goto ret0;

  L1086: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1087;
  goto ret0;

  L1087: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L1088;
    }
  goto ret0;

  L1088: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == MOD && 1)
    goto L1089;
  goto ret0;

  L1089: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1090;
  goto ret0;

  L1090: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    if (TARGET_68020 && !TARGET_5200)
      return 212;
  goto ret0;

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

  L1096: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SImode))
    {
      ro[2] = x3;
      goto L1097;
    }
  goto ret0;

  L1097: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1098;
  goto ret0;

  L1098: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == SImode && general_operand (x2, SImode))
    {
      ro[3] = x2;
      goto L1099;
    }
  goto ret0;

  L1099: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == UMOD && 1)
    goto L1100;
  goto ret0;

  L1100: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1101;
  goto ret0;

  L1101: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    if (TARGET_68020 && !TARGET_5200)
      return 213;
  goto ret0;

  L1105: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) != HImode)
    goto ret0;
  switch (GET_CODE (x2))
    {
    default:
      break;
    case DIV:
      goto L1106;
    case UDIV:
      goto L1117;
    }
  goto ret0;

  L1106: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L1107;
    }
  goto ret0;

  L1107: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L1108;
    }
  goto ret0;

  L1108: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1109;
  goto ret0;

  L1109: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == HImode && general_operand (x2, HImode))
    {
      ro[3] = x2;
      goto L1110;
    }
  goto ret0;

  L1110: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == MOD && 1)
    goto L1111;
  goto ret0;

  L1111: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1112;
  goto ret0;

  L1112: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    if (!TARGET_5200)
      return 214;
  goto ret0;

  L1117: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (general_operand (x3, HImode))
    {
      ro[1] = x3;
      goto L1118;
    }
  goto ret0;

  L1118: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, HImode))
    {
      ro[2] = x3;
      goto L1119;
    }
  goto ret0;

  L1119: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == SET && 1)
    goto L1120;
  goto ret0;

  L1120: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_MODE (x2) == HImode && general_operand (x2, HImode))
    {
      ro[3] = x2;
      goto L1121;
    }
  goto ret0;

  L1121: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == UMOD && 1)
    goto L1122;
  goto ret0;

  L1122: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (rtx_equal_p (x3, ro[1]) && 1)
    goto L1123;
  goto ret0;

  L1123: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (rtx_equal_p (x3, ro[2]) && 1)
    if (!TARGET_5200)
      return 215;
  goto ret0;

  L29: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (general_operand (x2, SFmode))
    {
      ro[0] = x2;
      goto L30;
    }
  L43: ATTRIBUTE_UNUSED_LABEL
  if (general_operand (x2, DFmode))
    {
      ro[0] = x2;
      goto L44;
    }
  if (GET_CODE (x2) == COMPARE && 1)
    goto L58;
  goto ret0;

  L30: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L31;
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L43;

  L31: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_FPA)
	return 11;
      }
  x1 = XVECEXP (x0, 0, 0);
  x2 = XEXP (x1, 1);
  goto L43;

  L44: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L45;
  goto ret0;

  L45: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[1] = x2;
      if (TARGET_FPA)
	return 14;
      }
  goto ret0;

  L58: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  switch (GET_MODE (x3))
    {
    default:
      break;
    case DImode:
      if (nonimmediate_operand (x3, DImode))
	{
	  ro[1] = x3;
	  goto L59;
	}
      break;
    case DFmode:
      if (general_operand (x3, DFmode))
	{
	  ro[0] = x3;
	  goto L89;
	}
      break;
    case SFmode:
      if (general_operand (x3, SFmode))
	{
	  ro[0] = x3;
	  goto L109;
	}
    }
  goto ret0;

  L59: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DImode))
    {
      ro[2] = x3;
      goto L60;
    }
  goto ret0;

  L60: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L61;
  goto ret0;

  L61: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (register_operand (x2, DImode))
    {
      ro[0] = x2;
      return 17;
    }
  goto ret0;

  L89: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, DFmode))
    {
      ro[1] = x3;
      goto L90;
    }
  goto ret0;

  L90: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L91;
  goto ret0;

  L91: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      if (TARGET_FPA)
	return 26;
      }
  goto ret0;

  L109: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (general_operand (x3, SFmode))
    {
      ro[1] = x3;
      goto L110;
    }
  goto ret0;

  L110: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L111;
  goto ret0;

  L111: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[2] = x2;
      if (TARGET_FPA)
	return 29;
      }
  goto ret0;

  L2153: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case SImode:
      if (GET_CODE (x2) == PLUS && 1)
	goto L2154;
      if (register_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L2147;
	}
    }
  if (GET_CODE (x2) == IF_THEN_ELSE && 1)
    goto L1903;
  goto ret0;

  L2154: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_CODE (x3) == PC && 1)
    goto L2155;
  goto ret0;

  L2155: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 1);
  if (GET_MODE (x3) == SImode && GET_CODE (x3) == SIGN_EXTEND && 1)
    goto L2156;
  goto ret0;

  L2156: ATTRIBUTE_UNUSED_LABEL
  x4 = XEXP (x3, 0);
  if (register_operand (x4, HImode))
    {
      ro[0] = x4;
      goto L2157;
    }
  goto ret0;

  L2157: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L2158;
  goto ret0;

  L2158: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2159;
  goto ret0;

  L2159: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  return 406;

  L2147: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == USE && 1)
    goto L2148;
  goto ret0;

  L2148: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (GET_CODE (x2) == LABEL_REF && 1)
    goto L2149;
  goto ret0;

  L2149: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  ro[1] = x3;
  return 405;
 L1903: ATTRIBUTE_UNUSED_LABEL
  return recog_11 (x0, insn, pnum_clobbers);
 ret0: return -1;
}

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

  L2247: ATTRIBUTE_UNUSED_LABEL
  switch (GET_CODE (x0))
    {
    default:
      break;
    case REG:
      if (GET_MODE (x0) == SImode && XINT (x0, 0) == 15 && 1)
	if (NEED_PROBE)
	  return 421;
      break;
    case SET:
      goto L1;
    case PARALLEL:
      if (XVECLEN (x0, 0) == 3 && 1)
	goto L7;
      if (XVECLEN (x0, 0) == 2 && 1)
	goto L27;
      break;
    case CALL:
      goto L2225;
    case UNSPEC_VOLATILE:
      if (XINT (x0, 1) == 0 && XVECLEN (x0, 0) == 1 && 1)
	goto L2245;
      break;
    case CONST_INT:
      if (XWINT (x0, 0) == 0 && 1)
	return 420;
      break;
    case RETURN:
      if (USE_RETURN_INSN)
	return 422;
    }
  goto ret0;
 L1: ATTRIBUTE_UNUSED_LABEL
  return recog_9 (x0, insn, pnum_clobbers);

  L7: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L406;
  goto ret0;

  L406: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  switch (GET_MODE (x2))
    {
    default:
      break;
    case SImode:
      if (general_operand (x2, SImode))
	{
	  ro[0] = x2;
	  goto L407;
	}
      break;
    case HImode:
      if (general_operand (x2, HImode))
	{
	  ro[0] = x2;
	  goto L422;
	}
      break;
    case QImode:
      if (general_operand (x2, QImode))
	{
	  ro[0] = x2;
	  goto L437;
	}
    }
  if (GET_CODE (x2) == CC0 && 1)
    goto L9;
  goto ret0;

  L407: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == SImode && GET_CODE (x2) == FIX && 1)
    goto L408;
  goto ret0;

  L408: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
    goto L409;
  goto ret0;

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

  L410: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L411;
  goto ret0;

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

  L412: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L413;
  goto ret0;

  L413: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68881 && TARGET_68040)
	return 106;
      }
  goto ret0;

  L422: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == HImode && GET_CODE (x2) == FIX && 1)
    goto L423;
  goto ret0;

  L423: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
    goto L424;
  goto ret0;

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

  L425: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L426;
  goto ret0;

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

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

  L428: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68881 && TARGET_68040)
	return 107;
      }
  goto ret0;

  L437: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (GET_MODE (x2) == QImode && GET_CODE (x2) == FIX && 1)
    goto L438;
  goto ret0;

  L438: ATTRIBUTE_UNUSED_LABEL
  x3 = XEXP (x2, 0);
  if (GET_MODE (x3) == DFmode && GET_CODE (x3) == FIX && 1)
    goto L439;
  goto ret0;

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

  L440: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L441;
  goto ret0;

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

  L442: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L443;
  goto ret0;

  L443: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[3] = x2;
      if (TARGET_68881 && TARGET_68040)
	return 108;
      }
  goto ret0;

  L9: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 1);
  if (nonimmediate_operand (x2, DImode))
    {
      ro[0] = x2;
      goto L10;
    }
  goto ret0;

  L10: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 1);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L11;
  goto ret0;

  L11: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, SImode))
    {
      ro[1] = x2;
      goto L12;
    }
  goto ret0;

  L12: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 2);
  if (GET_CODE (x1) == CLOBBER && 1)
    goto L13;
  goto ret0;

  L13: ATTRIBUTE_UNUSED_LABEL
  x2 = XEXP (x1, 0);
  if (scratch_operand (x2, DImode))
    {
      ro[2] = x2;
      return 3;
    }
  goto ret0;

  L27: ATTRIBUTE_UNUSED_LABEL
  x1 = XVECEXP (x0, 0, 0);
  if (GET_CODE (x1) == SET && 1)
    goto L493;
  goto ret0;
 L493: ATTRIBUTE_UNUSED_LABEL
  return recog_12 (x0, insn, pnum_clobbers);

  L2225: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 0);
  if (memory_operand (x1, QImode))
    {
      ro[0] = x1;
      goto L2226;
    }
  goto ret0;

  L2226: ATTRIBUTE_UNUSED_LABEL
  x1 = XEXP (x0, 1);
  if (general_operand (x1, SImode))
    goto L2230;
  goto ret0;

  L2230: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if ((! flag_pic || flag_pic >= 3))
    return 413;
  L2231: ATTRIBUTE_UNUSED_LABEL
  ro[1] = x1;
  if ((flag_pic && flag_pic < 3))
    return 414;
  goto ret0;

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

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

  goto ret0;
 ret0: return 0;
}

