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

#include "config.h"
#include "rtl.h"
#include "regs.h"
#include "real.h"

extern rtx peep_operand[];

#define operands peep_operand

rtx
peephole (ins1)
     rtx ins1;
{
  rtx insn, x, pat;
  int i;

  if (NEXT_INSN (ins1)
      && GET_CODE (NEXT_INSN (ins1)) == BARRIER)
    return 0;

  insn = ins1;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L27;
  x = XEXP (pat, 0);
  operands[0] = x;
  if (! register_operand (x, SImode)) goto L27;
  x = XEXP (pat, 1);
  operands[1] = x;
  if (! memory_operand (x, SImode)) goto L27;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L27; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L27;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L27;
  x = XEXP (pat, 0);
  operands[2] = x;
  if (! memory_operand (x, SImode)) goto L27;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L27;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L27; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L27;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L27;
  x = XEXP (pat, 0);
  if (GET_CODE (x) != CC0) goto L27;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L27;
  if (! (find_reg_note (insn,REG_DEAD,0))) goto L27;
  PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
  INSN_CODE (ins1) = 27;
  delete_for_peephole (NEXT_INSN (ins1), insn);
  return NEXT_INSN (insn);
 L27:

  insn = ins1;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L31;
  x = XEXP (pat, 0);
  operands[0] = x;
  if (! register_operand (x, HImode)) goto L31;
  x = XEXP (pat, 1);
  operands[1] = x;
  if (! memory_operand (x, HImode)) goto L31;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L31; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L31;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L31;
  x = XEXP (pat, 0);
  operands[2] = x;
  if (! memory_operand (x, HImode)) goto L31;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L31;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L31; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L31;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L31;
  x = XEXP (pat, 0);
  if (GET_CODE (x) != CC0) goto L31;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L31;
  if (! (find_reg_note (insn,REG_DEAD,0))) goto L31;
  PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
  INSN_CODE (ins1) = 31;
  delete_for_peephole (NEXT_INSN (ins1), insn);
  return NEXT_INSN (insn);
 L31:

  insn = ins1;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L34;
  x = XEXP (pat, 0);
  operands[0] = x;
  if (! register_operand (x, QImode)) goto L34;
  x = XEXP (pat, 1);
  operands[1] = x;
  if (! memory_operand (x, QImode)) goto L34;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L34; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L34;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L34;
  x = XEXP (pat, 0);
  operands[2] = x;
  if (! memory_operand (x, QImode)) goto L34;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L34;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L34; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L34;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L34;
  x = XEXP (pat, 0);
  if (GET_CODE (x) != CC0) goto L34;
  x = XEXP (pat, 1);
  if (!rtx_equal_p (operands[0], x)) goto L34;
  if (! (find_reg_note (insn,REG_DEAD,0))) goto L34;
  PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (3, operands));
  INSN_CODE (ins1) = 34;
  delete_for_peephole (NEXT_INSN (ins1), insn);
  return NEXT_INSN (insn);
 L34:

  insn = ins1;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L238;
  x = XEXP (pat, 0);
  if (GET_CODE (x) != REG) goto L238;
  if (GET_MODE (x) != SImode) goto L238;
  if (XINT (x, 0) != 15) goto L238;
  x = XEXP (pat, 1);
  if (GET_CODE (x) != PLUS) goto L238;
  if (GET_MODE (x) != SImode) goto L238;
  x = XEXP (XEXP (pat, 1), 0);
  if (GET_CODE (x) != REG) goto L238;
  if (GET_MODE (x) != SImode) goto L238;
  if (XINT (x, 0) != 15) goto L238;
  x = XEXP (XEXP (pat, 1), 1);
  if (GET_CODE (x) != CONST_INT) goto L238;
  if (XINT (x, 0) != 4) goto L238;
  do { insn = NEXT_INSN (insn);
       if (insn == 0) goto L238; }
  while (GET_CODE (insn) == NOTE);
  if (GET_CODE (insn) == CODE_LABEL
      || GET_CODE (insn) == BARRIER)
    goto L238;
  pat = PATTERN (insn);
  x = pat;
  if (GET_CODE (x) != SET) goto L238;
  x = XEXP (pat, 0);
  operands[0] = x;
  if (! register_operand (x, DFmode)) goto L238;
  x = XEXP (pat, 1);
  operands[1] = x;
  if (! register_operand (x, DFmode)) goto L238;
  if (! (FP_REG_P (operands[0]) && ! FP_REG_P (operands[1]))) goto L238;
  PATTERN (ins1) = gen_rtx (PARALLEL, VOIDmode, gen_rtvec_v (2, operands));
  INSN_CODE (ins1) = 238;
  delete_for_peephole (NEXT_INSN (ins1), insn);
  return NEXT_INSN (insn);
 L238:

  return 0;
}

rtx peep_operand[3];
