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

#include "config.h"
#include "system.h"
#include "coretypes.h"
#include "tm.h"
#include "rtl.h"
#include "insn-config.h"
#include "recog.h"
#include "diagnostic-core.h"

/* This variable is used as the "location" of any missing operand
   whose numbers are skipped by a given pattern.  */
static rtx junk ATTRIBUTE_UNUSED;

void
insn_extract (rtx_insn *insn)
{
  rtx *ro = recog_data.operand;
  rtx **ro_loc = recog_data.operand_loc;
  rtx pat = PATTERN (insn);
  int i ATTRIBUTE_UNUSED; /* only for peepholes */

  if (flag_checking)
    {
      memset (ro, 0xab, sizeof (*ro) * MAX_RECOG_OPERANDS);
      memset (ro_loc, 0xab, sizeof (*ro_loc) * MAX_RECOG_OPERANDS);
    }

  switch (INSN_CODE (insn))
    {
    default:
      /* Control reaches here if insn_extract has been called with an
         unrecognizable insn (code -1), or an insn whose INSN_CODE
         corresponds to a DEFINE_EXPAND in the machine description;
         either way, a bug.  */
      if (INSN_CODE (insn) < 0)
        fatal_insn ("unrecognizable insn:", insn);
      else
        fatal_insn ("insn with invalid code number:", insn);

    case 4178:  /* *p arm_ssatsihi_shift */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4123:  /* *p arm_store_release_exclusivesi */
    case 4122:  /* *p arm_store_release_exclusivehi */
    case 4121:  /* *p arm_store_release_exclusiveqi */
    case 4120:  /* *p arm_store_release_exclusivedi */
    case 4119:  /* *p arm_store_exclusivedi */
    case 4118:  /* *p arm_store_exclusivesi */
    case 4117:  /* *p arm_store_exclusivehi */
    case 4116:  /* *p arm_store_exclusiveqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4092:  /* *p *thumb2_mulsi_short */
    case 4091:  /* *p *thumb2_subsi_short */
    case 4090:  /* *p *thumb2_addsi_short */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4089:  /* *p *thumb2_movsi_shortim */
    case 4088:  /* *p *thumb2_movhi_shortim */
    case 4087:  /* *p *thumb2_movqi_shortim */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4086:  /* *p *thumb2_shiftsi3_short */
    case 4085:  /* *p *thumb2_alusi3_short */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4069:  /* *p *combine_vcvtf2i */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4046:  /* *p *fnmadddf4 */
    case 4045:  /* *p *fnmaddsf4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4044:  /* *p *fnmsubdf4 */
    case 4043:  /* *p *fnmsubsf4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4042:  /* *p *fmsubdf4 */
    case 4041:  /* *p *fmsubsf4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 2));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4038:  /* *p *muldf3negdfsubdf_vfp */
    case 4037:  /* *p *mulsf3negsfsubsf_vfp */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4036:  /* *p *fmuldf3negdfadddf_vfp */
    case 4035:  /* *p *mulsf3negsfaddsf_vfp */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4003:  /* *p iwmmxt_textrcv8qi3 */
    case 4002:  /* *p iwmmxt_textrcv4hi3 */
    case 4001:  /* *p iwmmxt_textrcv2si3 */
      ro[0] = *(ro_loc[0] = &XVECEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0, 1));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3991:  /* *p iwmmxt_wmerge */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 3982:  /* *p iwmmxt_wmiattn */
    case 3981:  /* *p iwmmxt_wmiatbn */
    case 3980:  /* *p iwmmxt_wmiabtn */
    case 3979:  /* *p iwmmxt_wmiabbn */
    case 3978:  /* *p iwmmxt_wmiatt */
    case 3977:  /* *p iwmmxt_wmiatb */
    case 3976:  /* *p iwmmxt_wmiabt */
    case 3975:  /* *p iwmmxt_wmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 3974:  /* *p iwmmxt_wqmiattn */
    case 3973:  /* *p iwmmxt_wqmiatbn */
    case 3972:  /* *p iwmmxt_wqmiabtn */
    case 3971:  /* *p iwmmxt_wqmiabbn */
    case 3970:  /* *p iwmmxt_wqmiatt */
    case 3969:  /* *p iwmmxt_wqmiatb */
    case 3968:  /* *p iwmmxt_wqmiabt */
    case 3967:  /* *p iwmmxt_wqmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 4), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 2), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 3966:  /* *p iwmmxt_waddbhusl */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3965:  /* *p iwmmxt_waddbhusm */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3949:  /* *p iwmmxt_avg4r */
    case 3948:  /* *p iwmmxt_avg4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0), 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0), 0), 0), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0), 0), 0), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0), 0), 1), 0), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 3947:  /* *p addcv2si3 */
    case 3946:  /* *p addcv4hi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3945:  /* *p iwmmxt_wsubaddhx */
    case 3944:  /* *p iwmmxt_waddsubhx */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 3933:  /* *p iwmmxt_walignr3 */
    case 3932:  /* *p iwmmxt_walignr2 */
    case 3931:  /* *p iwmmxt_walignr1 */
    case 3930:  /* *p iwmmxt_walignr0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3929:  /* *p iwmmxt_walignr */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3928:  /* *p iwmmxt_waligni */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3921:  /* *p iwmmxt_tmiatt */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3920:  /* *p iwmmxt_tmiabt */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3919:  /* *p iwmmxt_tmiatb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3990:  /* *p iwmmxt_wmiawttn */
    case 3989:  /* *p iwmmxt_wmiawtbn */
    case 3988:  /* *p iwmmxt_wmiawbtn */
    case 3987:  /* *p iwmmxt_wmiawbbn */
    case 3986:  /* *p iwmmxt_wmiawtt */
    case 3985:  /* *p iwmmxt_wmiawtb */
    case 3984:  /* *p iwmmxt_wmiawbt */
    case 3983:  /* *p iwmmxt_wmiawbb */
    case 3918:  /* *p iwmmxt_tmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3917:  /* *p iwmmxt_tmiaph */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 3916:  /* *p iwmmxt_tmia */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3953:  /* *p iwmmxt_wmaddun */
    case 3952:  /* *p iwmmxt_wmaddsn */
    case 3951:  /* *p iwmmxt_wmaddux */
    case 3950:  /* *p iwmmxt_wmaddsx */
    case 3915:  /* *p iwmmxt_wmaddu */
    case 3914:  /* *p iwmmxt_wmadds */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 4054:  /* *p fixuns_truncdfsi2 */
    case 4053:  /* *p fixuns_truncsfsi2 */
    case 4052:  /* *p *truncsidf2_vfp */
    case 4051:  /* *p *truncsisf2_vfp */
    case 3889:  /* *p iwmmxt_wunpckelsw */
    case 3888:  /* *p iwmmxt_wunpckelsh */
    case 3887:  /* *p iwmmxt_wunpckelsb */
    case 3886:  /* *p iwmmxt_wunpckeluw */
    case 3885:  /* *p iwmmxt_wunpckeluh */
    case 3884:  /* *p iwmmxt_wunpckelub */
    case 3883:  /* *p iwmmxt_wunpckehsw */
    case 3882:  /* *p iwmmxt_wunpckehsh */
    case 3881:  /* *p iwmmxt_wunpckehsb */
    case 3880:  /* *p iwmmxt_wunpckehuw */
    case 3879:  /* *p iwmmxt_wunpckehuh */
    case 3878:  /* *p iwmmxt_wunpckehub */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3843:  /* *p iwmmxt_textrmw */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3842:  /* *p iwmmxt_textrmsh */
    case 3841:  /* *p iwmmxt_textrmuh */
    case 3840:  /* *p iwmmxt_textrmsb */
    case 3839:  /* *p iwmmxt_textrmub */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3838:  /* *p iwmmxt_tinsrw */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 2));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3837:  /* *p iwmmxt_tinsrh */
    case 3836:  /* *p iwmmxt_tinsrb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 2));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3959:  /* *p iwmmxt_wmulwumr */
    case 3958:  /* *p iwmmxt_wmulwsmr */
    case 3957:  /* *p iwmmxt_wmulumr */
    case 3956:  /* *p iwmmxt_wmulsmr */
    case 3833:  /* *p iwmmxt_uavgrndv4hi3 */
    case 3832:  /* *p iwmmxt_uavgrndv8qi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4106:  /* *p atomic_storesi */
    case 4105:  /* *p atomic_storehi */
    case 4104:  /* *p atomic_storeqi */
    case 4103:  /* *p atomic_loadsi */
    case 4102:  /* *p atomic_loadhi */
    case 4101:  /* *p atomic_loadqi */
    case 3964:  /* *p iwmmxt_wqmulwmr */
    case 3963:  /* *p iwmmxt_wqmulmr */
    case 3962:  /* *p iwmmxt_wqmulwm */
    case 3961:  /* *p iwmmxt_wqmulm */
    case 3937:  /* *p iwmmxt_wsadhz */
    case 3936:  /* *p iwmmxt_wsadbz */
    case 3853:  /* *p gtv2si3 */
    case 3852:  /* *p gtv4hi3 */
    case 3851:  /* *p gtv8qi3 */
    case 3850:  /* *p gtuv2si3 */
    case 3849:  /* *p gtuv4hi3 */
    case 3848:  /* *p gtuv8qi3 */
    case 3847:  /* *p eqv2si3 */
    case 3846:  /* *p eqv4hi3 */
    case 3845:  /* *p eqv8qi3 */
    case 3844:  /* *p iwmmxt_wshufh */
    case 3827:  /* *p iwmmxt_wmacuz */
    case 3825:  /* *p iwmmxt_wmacsz */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3935:  /* *p iwmmxt_wsadh */
    case 3934:  /* *p iwmmxt_wsadb */
    case 3826:  /* *p iwmmxt_wmacu */
    case 3824:  /* *p iwmmxt_wmacs */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 2));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3955:  /* *p iwmmxt_wmulwum */
    case 3954:  /* *p iwmmxt_wmulwsm */
    case 3943:  /* *p iwmmxt_wabsdiffw */
    case 3942:  /* *p iwmmxt_wabsdiffh */
    case 3941:  /* *p iwmmxt_wabsdiffb */
    case 3835:  /* *p iwmmxt_uavgv4hi3 */
    case 3834:  /* *p iwmmxt_uavgv8qi3 */
    case 3823:  /* *p umulv4hi3_highpart */
    case 3822:  /* *p smulv4hi3_highpart */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3790:  /* *p iwmmxt_nanddi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3783:  /* *p *load_multiple */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3778:  /* *p *stm2_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3777:  /* *p *stm2_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3776:  /* *p *ldm2_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3775:  /* *p *ldm2_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3782:  /* *p *stm2_db_update */
    case 3774:  /* *p *stm2_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3781:  /* *p *stm2_db */
    case 3773:  /* *p *stm2_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3780:  /* *p *ldm2_db_update */
    case 3772:  /* *p *ldm2_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3779:  /* *p *ldm2_db */
    case 3771:  /* *p *ldm2_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3770:  /* *p *stm2_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3769:  /* *p *stm2_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3768:  /* *p *ldm2_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 3767:  /* *p *ldm2_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 3762:  /* *p *stm3_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3761:  /* *p *stm3_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3760:  /* *p *ldm3_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3759:  /* *p *ldm3_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3766:  /* *p *stm3_db_update */
    case 3758:  /* *p *stm3_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3765:  /* *p *stm3_db */
    case 3757:  /* *p *stm3_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3764:  /* *p *ldm3_db_update */
    case 3756:  /* *p *ldm3_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3763:  /* *p *ldm3_db */
    case 3755:  /* *p *ldm3_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3754:  /* *p *stm3_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3753:  /* *p *stm3_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3752:  /* *p *ldm3_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 3751:  /* *p *ldm3_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 3746:  /* *p *stm4_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3745:  /* *p *stm4_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3744:  /* *p *ldm4_da_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3743:  /* *p *ldm4_da */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3750:  /* *p *stm4_db_update */
    case 3742:  /* *p *stm4_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3749:  /* *p *stm4_db */
    case 3741:  /* *p *stm4_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3748:  /* *p *ldm4_db_update */
    case 3740:  /* *p *ldm4_ib_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3747:  /* *p *ldm4_db */
    case 3739:  /* *p *ldm4_ib */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3738:  /* *p *stm4_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3737:  /* *p *stm4_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3736:  /* *p *ldm4_ia_update */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 3735:  /* *p *ldm4_ */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 3734:  /* *p *thumb2_strd_base_neg */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 3733:  /* *p *thumb2_strd_base */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 3732:  /* *p *thumb2_strd */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 3731:  /* *p *thumb2_ldrd_base_neg */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 3730:  /* *p *thumb2_ldrd_base */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 3729:  /* *p *thumb2_ldrd */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 3727:  /* *p *arm_movtas_ze */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3723:  /* *p *ldr_with_return */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3722:  /* *p *pop_multiple_with_return */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3721:  /* *p *pop_multiple_with_writeback_and_return */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 3720:  /* *p *load_multiple_with_writeback */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 3719:  /* *p *arith_adjacentmem */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3718:  /* *p *sub_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3717:  /* *p *and_shiftsi */
    case 3716:  /* *p *eor_shiftsi */
    case 3715:  /* *p *orr_shiftsi */
    case 3714:  /* *p *rsb_shiftsi */
    case 3713:  /* *p *add_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4034:  /* *p *muldf3subdf_vfp */
    case 4033:  /* *p *mulsf3subsf_vfp */
    case 4032:  /* *p *muldf3adddf_vfp */
    case 4031:  /* *p *mulsf3addsf_vfp */
    case 3712:  /* *p *and_multsi */
    case 3711:  /* *p *eor_multsi */
    case 3710:  /* *p *orr_multsi */
    case 3709:  /* *p *rsb_multsi */
    case 3708:  /* *p *add_multsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3707:  /* *p *load_indirect_jump */
    case 3706:  /* *p *arm_indirect_jump */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 1));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4079:  /* *p *thumb2_pop_single */
    case 3831:  /* *p iwmmxt_clrv2si */
    case 3830:  /* *p iwmmxt_clrv4hi */
    case 3829:  /* *p iwmmxt_clrv8qi */
    case 3828:  /* *p iwmmxt_clrdi */
    case 3726:  /* *p load_tp_hard */
    case 3705:  /* *p probe_stack */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4000:  /* *p iwmmxt_torvscv8qi3 */
    case 3999:  /* *p iwmmxt_torvscv4hi3 */
    case 3998:  /* *p iwmmxt_torvscv2si3 */
    case 3997:  /* *p iwmmxt_torcv8qi3 */
    case 3996:  /* *p iwmmxt_torcv4hi3 */
    case 3995:  /* *p iwmmxt_torcv2si3 */
    case 3994:  /* *p iwmmxt_tandcv8qi3 */
    case 3993:  /* *p iwmmxt_tandcv4hi3 */
    case 3992:  /* *p iwmmxt_tandcv2si3 */
    case 3704:  /* *p *arm_simple_return */
    case 3703:  /* *p *arm_return */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3701:  /* *p *arm_cmpsi_negshiftsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4064:  /* *p *cmpdf_trap_vfp */
    case 4063:  /* *p *cmpdf_vfp */
    case 4062:  /* *p *cmpsf_trap_vfp */
    case 4061:  /* *p *cmpsf_vfp */
    case 3700:  /* *p *arm_cmpsi_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3694:  /* *p tls_load_dot_plus_eight */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0, 2));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3693:  /* *p pic_add_dot_plus_eight */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 2));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3702:  /* *p *arm_jump */
    case 3684:  /* *p *compareqi_eq0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4078:  /* *p *thumb2_neg_abssi2 */
    case 3669:  /* *p *arm_neg_abssi2 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4094:  /* *p *thumb2_negsi2_short */
    case 4093:  /* *p *thumb2_one_cmplsi2_short */
    case 4077:  /* *p *thumb2_abssi2 */
    case 3668:  /* *p *arm_abssi2 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4040:  /* *p fmadf4 */
    case 4039:  /* *p fmasf4 */
    case 3664:  /* *p extzv_t2 */
    case 3663:  /* *p *extv_reg */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 2));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4111:  /* *p arm_load_acquire_exclusivehi */
    case 4110:  /* *p arm_load_acquire_exclusiveqi */
    case 4109:  /* *p arm_load_exclusivehi */
    case 4108:  /* *p arm_load_exclusiveqi */
    case 3660:  /* *p unaligned_loadhiu */
    case 3659:  /* *p unaligned_loadhis */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4115:  /* *p arm_load_acquire_exclusivedi */
    case 4114:  /* *p arm_load_exclusivedi */
    case 4113:  /* *p arm_load_acquire_exclusivesi */
    case 4112:  /* *p arm_load_exclusivesi */
    case 4107:  /* *p arm_atomic_loaddi2_ldrd */
    case 4075:  /* *p rintdf2 */
    case 4074:  /* *p nearbyintdf2 */
    case 4073:  /* *p btruncdf2 */
    case 4072:  /* *p rintsf2 */
    case 4071:  /* *p nearbyintsf2 */
    case 4070:  /* *p btruncsf2 */
    case 3940:  /* *p iwmmxt_wabsv8qi3 */
    case 3939:  /* *p iwmmxt_wabsv4hi3 */
    case 3938:  /* *p iwmmxt_wabsv2si3 */
    case 3927:  /* *p iwmmxt_waccw */
    case 3926:  /* *p iwmmxt_wacch */
    case 3925:  /* *p iwmmxt_waccb */
    case 3924:  /* *p iwmmxt_tmovmskw */
    case 3923:  /* *p iwmmxt_tmovmskh */
    case 3922:  /* *p iwmmxt_tmovmskb */
    case 3725:  /* *p rbitsi2 */
    case 3662:  /* *p unaligned_storehi */
    case 3661:  /* *p unaligned_storesi */
    case 3658:  /* *p unaligned_loadsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3657:  /* *p *not_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3656:  /* *p *arm_shiftsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3655:  /* *p *satsi_smax_shift */
    case 3654:  /* *p *satsi_smin_shift */
    case 3653:  /* *p *satsi_smax_shift */
    case 3652:  /* *p *satsi_smin_shift */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3651:  /* *p *satsi_smax */
    case 3650:  /* *p *satsi_smin */
    case 3649:  /* *p *satsi_smax */
    case 3648:  /* *p *satsi_smin */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4179:  /* *p arm_usatsihi */
    case 4084:  /* *p thumb2_zero_extendqisi2_v6 */
    case 4083:  /* *p *thumb2_zero_extendhisi2_v6 */
    case 4082:  /* *p *thumb2_extendqisi_v6 */
    case 4060:  /* *p *sqrtdf2_vfp */
    case 4059:  /* *p *sqrtsf2_vfp */
    case 4058:  /* *p floatunssidf2 */
    case 4057:  /* *p floatunssisf2 */
    case 4056:  /* *p *floatsidf2_vfp */
    case 4055:  /* *p *floatsisf2_vfp */
    case 4050:  /* *p truncsfhf2 */
    case 4049:  /* *p extendhfsf2 */
    case 4048:  /* *p *truncdfsf2_vfp */
    case 4047:  /* *p *extendsfdf2_vfp */
    case 4018:  /* *p *negdf2_vfp */
    case 4017:  /* *p *negsf2_vfp */
    case 4016:  /* *p *absdf2_vfp */
    case 4015:  /* *p *abssf2_vfp */
    case 3786:  /* *p tbcstv2si */
    case 3785:  /* *p tbcstv4hi */
    case 3784:  /* *p tbcstv8qi */
    case 3728:  /* *p *arm_rev */
    case 3724:  /* *p clzsi2 */
    case 3689:  /* *p *arm_extendqisi_v6 */
    case 3688:  /* *p *arm_extendqisi */
    case 3687:  /* *p *arm_extendqihi_insn */
    case 3686:  /* *p *arm_extendhisi2_v6 */
    case 3685:  /* *p *arm_extendhisi2 */
    case 3682:  /* *p *arm_zero_extendqisi2_v6 */
    case 3681:  /* *p *arm_zero_extendqisi2 */
    case 3679:  /* *p *arm_zero_extendhisi2_v6 */
    case 3678:  /* *p *arm_zero_extendhisi2 */
    case 3677:  /* *p extendsidi2 */
    case 3676:  /* *p extendhidi2 */
    case 3675:  /* *p extendqidi2 */
    case 3674:  /* *p zero_extendsidi2 */
    case 3673:  /* *p zero_extendhidi2 */
    case 3672:  /* *p zero_extendqidi2 */
    case 3671:  /* *p *arm_one_cmplsi2 */
    case 3670:  /* *p one_cmpldi2 */
    case 3667:  /* *p *arm_negsi2 */
    case 3647:  /* *p *smin_0 */
    case 3646:  /* *p *smax_m1 */
    case 3645:  /* *p *smax_0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3644:  /* *p *andsi_iorsi3_notsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3637:  /* *p andsi_not_shiftsi_si_scc */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 0;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0), 0), 0);
      recog_data.dup_num[2] = 1;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 1);
      recog_data.dup_num[3] = 3;
      break;

    case 3636:  /* *p andsi_not_shiftsi_si_scc_no_reuse */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4100:  /* *p *orsi_not_shiftsi_si */
    case 4076:  /* *p *thumb_andsi_not_shiftsi_si */
    case 3635:  /* *p andsi_not_shiftsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4099:  /* *p *orsi_notsi_si */
    case 3642:  /* *p *xordi_sesidi_di */
    case 3641:  /* *p *xordi_zesidi_di */
    case 3639:  /* *p *iordi_sesidi_di */
    case 3638:  /* *p *iordi_zesidi_di */
    case 3634:  /* *p andsi_notsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4097:  /* *p *iordi_notdi_zesidi */
    case 3632:  /* *p *anddi_notdi_zesidi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4098:  /* *p *iordi_notsesidi_di */
    case 4096:  /* *p *iordi_notzesidi_di */
    case 3633:  /* *p *anddi_notsesidi_di */
    case 3631:  /* *p *anddi_notzesidi_di */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4095:  /* *p *iordi_notdi_di */
    case 4068:  /* *p *combine_vcvt_f64_s32 */
    case 4067:  /* *p *combine_vcvt_f64_u32 */
    case 4066:  /* *p *combine_vcvt_f32_s32 */
    case 4065:  /* *p *combine_vcvt_f32_u32 */
    case 4029:  /* *p *muldf3negdf_vfp */
    case 4027:  /* *p *mulsf3negsf_vfp */
    case 3690:  /* *p *arm_extendqisi2addsi */
    case 3683:  /* *p *arm_zero_extendqisi2addsi */
    case 3680:  /* *p *arm_zero_extendhisi2addsi */
    case 3630:  /* *p *anddi_notdi_di */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3629:  /* *p insv_t2 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3628:  /* *p insv_zero */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 2));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3627:  /* *p *zeroextractsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 2));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3625:  /* *p *maddhidi4tt */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3624:  /* *p *maddhidi4tb */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3623:  /* *p maddhidi4 */
    case 3622:  /* *p *maddhisi4tt */
    case 3621:  /* *p *maddhisi4tb */
    case 3620:  /* *p maddhisi4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3615:  /* *p *umulsi3_highpart_v6 */
    case 3614:  /* *p *umulsi3_highpart_nov6 */
    case 3613:  /* *p *smulsi3_highpart_v6 */
    case 3612:  /* *p *smulsi3_highpart_nov6 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1), 0), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3877:  /* *p iwmmxt_wunpckilw */
    case 3876:  /* *p iwmmxt_wunpckilh */
    case 3875:  /* *p iwmmxt_wunpckilb */
    case 3874:  /* *p iwmmxt_wunpckihw */
    case 3873:  /* *p iwmmxt_wunpckihh */
    case 3872:  /* *p iwmmxt_wunpckihb */
    case 3871:  /* *p iwmmxt_wpackdus */
    case 3870:  /* *p iwmmxt_wpackwus */
    case 3869:  /* *p iwmmxt_wpackhus */
    case 3868:  /* *p iwmmxt_wpackdss */
    case 3867:  /* *p iwmmxt_wpackwss */
    case 3866:  /* *p iwmmxt_wpackhss */
    case 3619:  /* *p *mulhisi3tt */
    case 3618:  /* *p *mulhisi3bt */
    case 3617:  /* *p *mulhisi3tb */
    case 3616:  /* *p mulhisi3 */
    case 3609:  /* *p *umulsidi3_v6 */
    case 3608:  /* *p *umulsidi3_nov6 */
    case 3607:  /* *p *mulsidi3_v6 */
    case 3606:  /* *p *mulsidi3_nov6 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3611:  /* *p *umulsidi3adddi_v6 */
    case 3610:  /* *p *umulsidi3adddi */
    case 3605:  /* *p *mulsidi3adddi_v6 */
    case 3604:  /* *p *mulsidi3adddi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3603:  /* *p *mulsi3subsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3602:  /* *p *mulsi3addsi_v6 */
    case 3601:  /* *p *mulsi3addsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (pat, 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3599:  /* *p *arm_mulsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3596:  /* *p *subsi3_carryin_shift */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3597:  /* *p *rsbsi3_carryin_shift */
    case 3594:  /* *p *addsi3_carryin_shift_geu */
    case 3593:  /* *p *addsi3_carryin_shift_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (pat, 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3592:  /* *p *addsi3_carryin_alt2_geu */
    case 3591:  /* *p *addsi3_carryin_alt2_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4030:  /* *p *negmuldf3_vfp */
    case 4028:  /* *p *negmulsf3_vfp */
    case 3595:  /* *p *subsi3_carryin */
    case 3590:  /* *p *addsi3_carryin_geu */
    case 3589:  /* *p *addsi3_carryin_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3588:  /* *p *compare_addsi2_op1 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 1);
      recog_data.dup_num[0] = 1;
      break;

    case 3587:  /* *p *compare_addsi2_op0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 1);
      recog_data.dup_num[0] = 0;
      break;

    case 3586:  /* *p *compare_negsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 3585:  /* *p *addsi3_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 4177:  /* *p sssubsa3 */
    case 4176:  /* *p sssubsq3 */
    case 4175:  /* *p sssubha3 */
    case 4174:  /* *p sssubv2ha3 */
    case 4173:  /* *p sssubhq3 */
    case 4172:  /* *p sssubqq3 */
    case 4171:  /* *p sssubv2hq3 */
    case 4170:  /* *p sssubv4qq3 */
    case 4169:  /* *p ussubuha3 */
    case 4168:  /* *p ussubv2uha3 */
    case 4167:  /* *p ussubuhq3 */
    case 4166:  /* *p ussubuqq3 */
    case 4165:  /* *p ussubv2uhq3 */
    case 4164:  /* *p ussubv4uqq3 */
    case 4163:  /* *p subv2ha3 */
    case 4162:  /* *p subv2hq3 */
    case 4161:  /* *p subv4qq3 */
    case 4160:  /* *p subusa3 */
    case 4159:  /* *p subuha3 */
    case 4158:  /* *p subsa3 */
    case 4157:  /* *p subha3 */
    case 4156:  /* *p subusq3 */
    case 4155:  /* *p subuhq3 */
    case 4154:  /* *p subuqq3 */
    case 4153:  /* *p subsq3 */
    case 4152:  /* *p subhq3 */
    case 4151:  /* *p subqq3 */
    case 4150:  /* *p ssaddsa3 */
    case 4149:  /* *p ssaddsq3 */
    case 4148:  /* *p ssaddha3 */
    case 4147:  /* *p ssaddv2ha3 */
    case 4146:  /* *p ssaddhq3 */
    case 4145:  /* *p ssaddqq3 */
    case 4144:  /* *p ssaddv2hq3 */
    case 4143:  /* *p ssaddv4qq3 */
    case 4142:  /* *p usadduha3 */
    case 4141:  /* *p usaddv2uha3 */
    case 4140:  /* *p usadduhq3 */
    case 4139:  /* *p usadduqq3 */
    case 4138:  /* *p usaddv2uhq3 */
    case 4137:  /* *p usaddv4uqq3 */
    case 4136:  /* *p addv2ha3 */
    case 4135:  /* *p addv2hq3 */
    case 4134:  /* *p addv4qq3 */
    case 4133:  /* *p addusa3 */
    case 4132:  /* *p adduha3 */
    case 4131:  /* *p addsa3 */
    case 4130:  /* *p addha3 */
    case 4129:  /* *p addusq3 */
    case 4128:  /* *p adduhq3 */
    case 4127:  /* *p adduqq3 */
    case 4126:  /* *p addsq3 */
    case 4125:  /* *p addhq3 */
    case 4124:  /* *p addqq3 */
    case 4026:  /* *p *muldf3_vfp */
    case 4025:  /* *p *mulsf3_vfp */
    case 4024:  /* *p *divdf3_vfp */
    case 4023:  /* *p *divsf3_vfp */
    case 4022:  /* *p *subdf3_vfp */
    case 4021:  /* *p *subsf3_vfp */
    case 4020:  /* *p *adddf3_vfp */
    case 4019:  /* *p *addsf3_vfp */
    case 3960:  /* *p iwmmxt_wmulwl */
    case 3913:  /* *p ashldi3_di */
    case 3912:  /* *p ashlv2si3_di */
    case 3911:  /* *p ashlv4hi3_di */
    case 3910:  /* *p lshrdi3_di */
    case 3909:  /* *p lshrv2si3_di */
    case 3908:  /* *p lshrv4hi3_di */
    case 3907:  /* *p ashrdi3_di */
    case 3906:  /* *p ashrv2si3_di */
    case 3905:  /* *p ashrv4hi3_di */
    case 3904:  /* *p rordi3_di */
    case 3903:  /* *p rorv2si3_di */
    case 3902:  /* *p rorv4hi3_di */
    case 3901:  /* *p ashldi3_iwmmxt */
    case 3900:  /* *p ashlv2si3_iwmmxt */
    case 3899:  /* *p ashlv4hi3_iwmmxt */
    case 3898:  /* *p lshrdi3_iwmmxt */
    case 3897:  /* *p lshrv2si3_iwmmxt */
    case 3896:  /* *p lshrv4hi3_iwmmxt */
    case 3895:  /* *p ashrdi3_iwmmxt */
    case 3894:  /* *p ashrv2si3_iwmmxt */
    case 3893:  /* *p ashrv4hi3_iwmmxt */
    case 3892:  /* *p rordi3 */
    case 3891:  /* *p rorv2si3 */
    case 3890:  /* *p rorv4hi3 */
    case 3865:  /* *p *uminv8qi3_iwmmxt */
    case 3864:  /* *p *uminv4hi3_iwmmxt */
    case 3863:  /* *p *uminv2si3_iwmmxt */
    case 3862:  /* *p *sminv8qi3_iwmmxt */
    case 3861:  /* *p *sminv4hi3_iwmmxt */
    case 3860:  /* *p *sminv2si3_iwmmxt */
    case 3859:  /* *p *umaxv8qi3_iwmmxt */
    case 3858:  /* *p *umaxv4hi3_iwmmxt */
    case 3857:  /* *p *umaxv2si3_iwmmxt */
    case 3856:  /* *p *smaxv8qi3_iwmmxt */
    case 3855:  /* *p *smaxv4hi3_iwmmxt */
    case 3854:  /* *p *smaxv2si3_iwmmxt */
    case 3821:  /* *p *mulv4hi3_iwmmxt */
    case 3820:  /* *p ussubv2si3 */
    case 3819:  /* *p ussubv4hi3 */
    case 3818:  /* *p ussubv8qi3 */
    case 3817:  /* *p sssubv2si3 */
    case 3816:  /* *p sssubv4hi3 */
    case 3815:  /* *p sssubv8qi3 */
    case 3814:  /* *p *subv8qi3_iwmmxt */
    case 3813:  /* *p *subv4hi3_iwmmxt */
    case 3812:  /* *p *subv2si3_iwmmxt */
    case 3811:  /* *p usaddv2si3 */
    case 3810:  /* *p usaddv4hi3 */
    case 3809:  /* *p usaddv8qi3 */
    case 3808:  /* *p ssaddv2si3 */
    case 3807:  /* *p ssaddv4hi3 */
    case 3806:  /* *p ssaddv8qi3 */
    case 3805:  /* *p *addv8qi3_iwmmxt */
    case 3804:  /* *p *addv4hi3_iwmmxt */
    case 3803:  /* *p *addv2si3_iwmmxt */
    case 3802:  /* *p *xorv8qi3_iwmmxt */
    case 3801:  /* *p *xorv4hi3_iwmmxt */
    case 3800:  /* *p *xorv2si3_iwmmxt */
    case 3799:  /* *p *iorv8qi3_iwmmxt */
    case 3798:  /* *p *iorv4hi3_iwmmxt */
    case 3797:  /* *p *iorv2si3_iwmmxt */
    case 3796:  /* *p *andv8qi3_iwmmxt */
    case 3795:  /* *p *andv4hi3_iwmmxt */
    case 3794:  /* *p *andv2si3_iwmmxt */
    case 3789:  /* *p iwmmxt_anddi3 */
    case 3788:  /* *p iwmmxt_xordi3 */
    case 3787:  /* *p iwmmxt_iordi3 */
    case 3691:  /* *p *arm_movt */
    case 3666:  /* *p udivsi3 */
    case 3665:  /* *p divsi3 */
    case 3643:  /* *p *arm_xorsi3 */
    case 3640:  /* *p *iorsi3_insn */
    case 3626:  /* *p *arm_andsi3_insn */
    case 3600:  /* *p *arm_mulsi3_v6 */
    case 3598:  /* *p *arm_subsi3_insn */
    case 3584:  /* *p *arm_addsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 2722:  /* arm_ssatsihi_shift */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 2721:  /* usmulusa3 */
    case 2720:  /* ssmulsa3 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 2), 0));
      break;

    case 2665:  /* arm_store_release_exclusivesi */
    case 2664:  /* arm_store_release_exclusivehi */
    case 2663:  /* arm_store_release_exclusiveqi */
    case 2662:  /* arm_store_release_exclusivedi */
    case 2661:  /* arm_store_exclusivedi */
    case 2660:  /* arm_store_exclusivesi */
    case 2659:  /* arm_store_exclusivehi */
    case 2658:  /* arm_store_exclusiveqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0));
      break;

    case 2649:  /* atomic_nand_fetchdi */
    case 2648:  /* atomic_nand_fetchsi */
    case 2647:  /* atomic_nand_fetchhi */
    case 2646:  /* atomic_nand_fetchqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 2));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0);
      recog_data.dup_num[2] = 1;
      break;

    case 2645:  /* atomic_and_fetchdi */
    case 2644:  /* atomic_xor_fetchdi */
    case 2643:  /* atomic_or_fetchdi */
    case 2642:  /* atomic_sub_fetchdi */
    case 2641:  /* atomic_add_fetchdi */
    case 2640:  /* atomic_and_fetchsi */
    case 2639:  /* atomic_xor_fetchsi */
    case 2638:  /* atomic_or_fetchsi */
    case 2637:  /* atomic_sub_fetchsi */
    case 2636:  /* atomic_add_fetchsi */
    case 2635:  /* atomic_and_fetchhi */
    case 2634:  /* atomic_xor_fetchhi */
    case 2633:  /* atomic_or_fetchhi */
    case 2632:  /* atomic_sub_fetchhi */
    case 2631:  /* atomic_add_fetchhi */
    case 2630:  /* atomic_and_fetchqi */
    case 2629:  /* atomic_xor_fetchqi */
    case 2628:  /* atomic_or_fetchqi */
    case 2627:  /* atomic_sub_fetchqi */
    case 2626:  /* atomic_add_fetchqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 2));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0);
      recog_data.dup_num[2] = 1;
      break;

    case 2625:  /* atomic_fetch_nanddi */
    case 2624:  /* atomic_fetch_nandsi */
    case 2623:  /* atomic_fetch_nandhi */
    case 2622:  /* atomic_fetch_nandqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 4), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0), 0), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 2621:  /* atomic_fetch_anddi */
    case 2620:  /* atomic_fetch_xordi */
    case 2619:  /* atomic_fetch_ordi */
    case 2618:  /* atomic_fetch_subdi */
    case 2617:  /* atomic_fetch_adddi */
    case 2616:  /* atomic_fetch_andsi */
    case 2615:  /* atomic_fetch_xorsi */
    case 2614:  /* atomic_fetch_orsi */
    case 2613:  /* atomic_fetch_subsi */
    case 2612:  /* atomic_fetch_addsi */
    case 2611:  /* atomic_fetch_andhi */
    case 2610:  /* atomic_fetch_xorhi */
    case 2609:  /* atomic_fetch_orhi */
    case 2608:  /* atomic_fetch_subhi */
    case 2607:  /* atomic_fetch_addhi */
    case 2606:  /* atomic_fetch_andqi */
    case 2605:  /* atomic_fetch_xorqi */
    case 2604:  /* atomic_fetch_orqi */
    case 2603:  /* atomic_fetch_subqi */
    case 2602:  /* atomic_fetch_addqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0), 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 4), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 2601:  /* atomic_nanddi */
    case 2600:  /* atomic_nandsi */
    case 2599:  /* atomic_nandhi */
    case 2598:  /* atomic_nandqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 2597:  /* atomic_anddi */
    case 2596:  /* atomic_xordi */
    case 2595:  /* atomic_ordi */
    case 2594:  /* atomic_subdi */
    case 2593:  /* atomic_adddi */
    case 2592:  /* atomic_andsi */
    case 2591:  /* atomic_xorsi */
    case 2590:  /* atomic_orsi */
    case 2589:  /* atomic_subsi */
    case 2588:  /* atomic_addsi */
    case 2587:  /* atomic_andhi */
    case 2586:  /* atomic_xorhi */
    case 2585:  /* atomic_orhi */
    case 2584:  /* atomic_subhi */
    case 2583:  /* atomic_addhi */
    case 2582:  /* atomic_andqi */
    case 2581:  /* atomic_xorqi */
    case 2580:  /* atomic_orqi */
    case 2579:  /* atomic_subqi */
    case 2578:  /* atomic_addqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 2577:  /* atomic_exchangedi */
    case 2576:  /* atomic_exchangesi */
    case 2575:  /* atomic_exchangehi */
    case 2574:  /* atomic_exchangeqi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 2573:  /* atomic_compare_and_swapdi_1 */
    case 2572:  /* atomic_compare_and_swapsi_1 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 1));
      ro[4] = *(ro_loc[4] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 2));
      ro[5] = *(ro_loc[5] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 3));
      ro[6] = *(ro_loc[6] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 4));
      ro[7] = *(ro_loc[7] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 2), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 2571:  /* atomic_compare_and_swaphi_1 */
    case 2570:  /* atomic_compare_and_swapqi_1 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 1));
      ro[4] = *(ro_loc[4] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 2));
      ro[5] = *(ro_loc[5] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 3));
      ro[6] = *(ro_loc[6] = &XVECEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0, 4));
      ro[7] = *(ro_loc[7] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 2), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 2562:  /* *memory_barrier */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      recog_data.dup_loc[0] = &XVECEXP (XEXP (pat, 1), 0, 0);
      recog_data.dup_num[0] = 0;
      break;

    case 2561:  /* crypto_sha1p */
    case 2560:  /* crypto_sha1m */
    case 2559:  /* crypto_sha1c */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (pat, 1), 0, 2));
      ro[4] = *(ro_loc[4] = &XVECEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 1), 0, 0));
      break;

    case 2557:  /* crypto_sha1h */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0), 1), 0, 0));
      break;

    case 2546:  /* neon_vabdv2di_3 */
    case 2545:  /* neon_vabdv4sf_3 */
    case 2544:  /* neon_vabdv2sf_3 */
    case 2543:  /* neon_vabdv8hf_3 */
    case 2542:  /* neon_vabdv4hf_3 */
    case 2541:  /* neon_vabdv4si_3 */
    case 2540:  /* neon_vabdv2si_3 */
    case 2539:  /* neon_vabdv8hi_3 */
    case 2538:  /* neon_vabdv4hi_3 */
    case 2537:  /* neon_vabdv16qi_3 */
    case 2536:  /* neon_vabdv8qi_3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 1));
      break;

    case 2500:  /* neon_vec_umult_hi_v4si */
    case 2499:  /* neon_vec_smult_hi_v4si */
    case 2498:  /* neon_vec_umult_hi_v8hi */
    case 2497:  /* neon_vec_smult_hi_v8hi */
    case 2496:  /* neon_vec_umult_hi_v16qi */
    case 2495:  /* neon_vec_smult_hi_v16qi */
    case 2494:  /* neon_vec_umult_lo_v4si */
    case 2493:  /* neon_vec_smult_lo_v4si */
    case 2492:  /* neon_vec_umult_lo_v8hi */
    case 2491:  /* neon_vec_smult_lo_v8hi */
    case 2490:  /* neon_vec_umult_lo_v16qi */
    case 2489:  /* neon_vec_smult_lo_v16qi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1);
      recog_data.dup_num[0] = 2;
      break;

    case 2259:  /* *neon_vuzpv4hf_insn */
    case 2258:  /* *neon_vuzpv8hf_insn */
    case 2257:  /* *neon_vuzpv4sf_insn */
    case 2256:  /* *neon_vuzpv2sf_insn */
    case 2255:  /* *neon_vuzpv4si_insn */
    case 2254:  /* *neon_vuzpv2si_insn */
    case 2253:  /* *neon_vuzpv8hi_insn */
    case 2252:  /* *neon_vuzpv4hi_insn */
    case 2251:  /* *neon_vuzpv16qi_insn */
    case 2250:  /* *neon_vuzpv8qi_insn */
    case 2249:  /* *neon_vzipv4hf_insn */
    case 2248:  /* *neon_vzipv8hf_insn */
    case 2247:  /* *neon_vzipv4sf_insn */
    case 2246:  /* *neon_vzipv2sf_insn */
    case 2245:  /* *neon_vzipv4si_insn */
    case 2244:  /* *neon_vzipv2si_insn */
    case 2243:  /* *neon_vzipv8hi_insn */
    case 2242:  /* *neon_vzipv4hi_insn */
    case 2241:  /* *neon_vzipv16qi_insn */
    case 2240:  /* *neon_vzipv8qi_insn */
    case 2239:  /* *neon_vtrnv4hf_insn */
    case 2238:  /* *neon_vtrnv8hf_insn */
    case 2237:  /* *neon_vtrnv4sf_insn */
    case 2236:  /* *neon_vtrnv2sf_insn */
    case 2235:  /* *neon_vtrnv4si_insn */
    case 2234:  /* *neon_vtrnv2si_insn */
    case 2233:  /* *neon_vtrnv8hi_insn */
    case 2232:  /* *neon_vtrnv4hi_insn */
    case 2231:  /* *neon_vtrnv16qi_insn */
    case 2230:  /* *neon_vtrnv8qi_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1));
      recog_data.dup_loc[0] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 1);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0, 0);
      recog_data.dup_num[1] = 1;
      break;

    case 1971:  /* neon_vqdmlsl_lanev2si */
    case 1970:  /* neon_vqdmlsl_lanev4hi */
    case 1969:  /* neon_vmlslu_lanev2si */
    case 1968:  /* neon_vmlsls_lanev2si */
    case 1967:  /* neon_vmlslu_lanev4hi */
    case 1966:  /* neon_vmlsls_lanev4hi */
    case 1965:  /* neon_vmls_lanev4sf */
    case 1964:  /* neon_vmls_lanev4si */
    case 1963:  /* neon_vmls_lanev8hi */
    case 1962:  /* neon_vmls_lanev2sf */
    case 1961:  /* neon_vmls_lanev2si */
    case 1960:  /* neon_vmls_lanev4hi */
    case 1959:  /* neon_vqdmlal_lanev2si */
    case 1958:  /* neon_vqdmlal_lanev4hi */
    case 1957:  /* neon_vmlalu_lanev2si */
    case 1956:  /* neon_vmlals_lanev2si */
    case 1955:  /* neon_vmlalu_lanev4hi */
    case 1954:  /* neon_vmlals_lanev4hi */
    case 1953:  /* neon_vmla_lanev4sf */
    case 1952:  /* neon_vmla_lanev4si */
    case 1951:  /* neon_vmla_lanev8hi */
    case 1950:  /* neon_vmla_lanev2sf */
    case 1949:  /* neon_vmla_lanev2si */
    case 1948:  /* neon_vmla_lanev4hi */
    case 1947:  /* neon_vqrdmlsh_lanev2si */
    case 1946:  /* neon_vqrdmlah_lanev2si */
    case 1945:  /* neon_vqrdmlsh_lanev4hi */
    case 1944:  /* neon_vqrdmlah_lanev4hi */
    case 1943:  /* neon_vqrdmlsh_lanev4si */
    case 1942:  /* neon_vqrdmlah_lanev4si */
    case 1941:  /* neon_vqrdmlsh_lanev8hi */
    case 1940:  /* neon_vqrdmlah_lanev8hi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (pat, 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (pat, 1), 0, 2));
      ro[4] = *(ro_loc[4] = &XVECEXP (XEXP (pat, 1), 0, 3));
      break;

    case 1835:  /* *neon_vswpv2di */
    case 1834:  /* *neon_vswpdi */
    case 1833:  /* *neon_vswpv4sf */
    case 1832:  /* *neon_vswpv2sf */
    case 1831:  /* *neon_vswpv8hf */
    case 1830:  /* *neon_vswpv4hf */
    case 1829:  /* *neon_vswpv4si */
    case 1828:  /* *neon_vswpv2si */
    case 1827:  /* *neon_vswpv8hi */
    case 1826:  /* *neon_vswpv4hi */
    case 1825:  /* *neon_vswpv16qi */
    case 1824:  /* *neon_vswpv8qi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1);
      recog_data.dup_num[1] = 0;
      break;

    case 1653:  /* neon_vabaluv2si */
    case 1652:  /* neon_vabalsv2si */
    case 1651:  /* neon_vabaluv4hi */
    case 1650:  /* neon_vabalsv4hi */
    case 1649:  /* neon_vabaluv8qi */
    case 1648:  /* neon_vabalsv8qi */
    case 1647:  /* neon_vabauv4si */
    case 1646:  /* neon_vabasv4si */
    case 1645:  /* neon_vabauv2si */
    case 1644:  /* neon_vabasv2si */
    case 1643:  /* neon_vabauv8hi */
    case 1642:  /* neon_vabasv8hi */
    case 1641:  /* neon_vabauv4hi */
    case 1640:  /* neon_vabasv4hi */
    case 1639:  /* neon_vabauv16qi */
    case 1638:  /* neon_vabasv16qi */
    case 1637:  /* neon_vabauv8qi */
    case 1636:  /* neon_vabasv8qi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 1));
      break;

    case 1599:  /* neon_vcalev4hf_fp16insn */
    case 1598:  /* neon_vcaltv4hf_fp16insn */
    case 1597:  /* neon_vcagev4hf_fp16insn */
    case 1596:  /* neon_vcagtv4hf_fp16insn */
    case 1595:  /* neon_vcalev8hf_fp16insn */
    case 1594:  /* neon_vcaltv8hf_fp16insn */
    case 1593:  /* neon_vcagev8hf_fp16insn */
    case 1592:  /* neon_vcagtv8hf_fp16insn */
    case 1587:  /* neon_vcagev4sf_insn */
    case 1586:  /* neon_vcagtv4sf_insn */
    case 1585:  /* neon_vcagev2sf_insn */
    case 1584:  /* neon_vcagtv2sf_insn */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      break;

    case 1292:  /* quad_halves_umaxv16qi */
    case 1291:  /* quad_halves_uminv16qi */
    case 1290:  /* quad_halves_smaxv16qi */
    case 1289:  /* quad_halves_sminv16qi */
    case 1288:  /* quad_halves_plusv16qi */
    case 1287:  /* quad_halves_umaxv8hi */
    case 1286:  /* quad_halves_uminv8hi */
    case 1285:  /* quad_halves_smaxv8hi */
    case 1284:  /* quad_halves_sminv8hi */
    case 1283:  /* quad_halves_plusv8hi */
    case 1282:  /* quad_halves_smaxv4sf */
    case 1281:  /* quad_halves_sminv4sf */
    case 1280:  /* quad_halves_plusv4sf */
    case 1279:  /* quad_halves_umaxv4si */
    case 1278:  /* quad_halves_uminv4si */
    case 1277:  /* quad_halves_smaxv4si */
    case 1276:  /* quad_halves_sminv4si */
    case 1275:  /* quad_halves_plusv4si */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 1271:  /* vec_sel_widen_usum_hiv4siv2si3 */
    case 1270:  /* vec_sel_widen_usum_hiv4siv4hi3 */
    case 1269:  /* vec_sel_widen_usum_hiv4siv8qi3 */
    case 1268:  /* vec_sel_widen_usum_hiv8hiv2si3 */
    case 1267:  /* vec_sel_widen_usum_hiv8hiv4hi3 */
    case 1266:  /* vec_sel_widen_usum_hiv8hiv8qi3 */
    case 1265:  /* vec_sel_widen_usum_hiv16qiv2si3 */
    case 1264:  /* vec_sel_widen_usum_hiv16qiv4hi3 */
    case 1263:  /* vec_sel_widen_usum_hiv16qiv8qi3 */
    case 1262:  /* vec_sel_widen_usum_lov4siv2si3 */
    case 1261:  /* vec_sel_widen_usum_lov4siv4hi3 */
    case 1260:  /* vec_sel_widen_usum_lov4siv8qi3 */
    case 1259:  /* vec_sel_widen_usum_lov8hiv2si3 */
    case 1258:  /* vec_sel_widen_usum_lov8hiv4hi3 */
    case 1257:  /* vec_sel_widen_usum_lov8hiv8qi3 */
    case 1256:  /* vec_sel_widen_usum_lov16qiv2si3 */
    case 1255:  /* vec_sel_widen_usum_lov16qiv4hi3 */
    case 1254:  /* vec_sel_widen_usum_lov16qiv8qi3 */
    case 1250:  /* vec_sel_widen_ssum_hiv4siv2si3 */
    case 1249:  /* vec_sel_widen_ssum_hiv4siv4hi3 */
    case 1248:  /* vec_sel_widen_ssum_hiv4siv8qi3 */
    case 1247:  /* vec_sel_widen_ssum_hiv8hiv2si3 */
    case 1246:  /* vec_sel_widen_ssum_hiv8hiv4hi3 */
    case 1245:  /* vec_sel_widen_ssum_hiv8hiv8qi3 */
    case 1244:  /* vec_sel_widen_ssum_hiv16qiv2si3 */
    case 1243:  /* vec_sel_widen_ssum_hiv16qiv4hi3 */
    case 1242:  /* vec_sel_widen_ssum_hiv16qiv8qi3 */
    case 1241:  /* vec_sel_widen_ssum_lov4siv2si3 */
    case 1240:  /* vec_sel_widen_ssum_lov4siv4hi3 */
    case 1239:  /* vec_sel_widen_ssum_lov4siv8qi3 */
    case 1238:  /* vec_sel_widen_ssum_lov8hiv2si3 */
    case 1237:  /* vec_sel_widen_ssum_lov8hiv4hi3 */
    case 1236:  /* vec_sel_widen_ssum_lov8hiv8qi3 */
    case 1235:  /* vec_sel_widen_ssum_lov16qiv2si3 */
    case 1234:  /* vec_sel_widen_ssum_lov16qiv4hi3 */
    case 1233:  /* vec_sel_widen_ssum_lov16qiv8qi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 1232:  /* lshrdi3_neon */
    case 1231:  /* ashrdi3_neon */
    case 1226:  /* ashldi3_neon */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 3), 0));
      break;

    case 959:  /* vec_setv2di_internal */
    case 958:  /* vec_setv4sf_internal */
    case 957:  /* vec_setv4si_internal */
    case 956:  /* vec_setv8hf_internal */
    case 955:  /* vec_setv8hi_internal */
    case 954:  /* vec_setv16qi_internal */
    case 953:  /* vec_setv2sf_internal */
    case 952:  /* vec_setv2si_internal */
    case 951:  /* vec_setv4hf_internal */
    case 950:  /* vec_setv4hi_internal */
    case 949:  /* vec_setv8qi_internal */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 899:  /* *thumb2_cbnz */
    case 898:  /* *thumb2_cbz */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      break;

    case 890:  /* *thumb2_movsi_shortim */
    case 889:  /* *thumb2_movhi_shortim */
    case 888:  /* *thumb2_movqi_shortim */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      break;

    case 883:  /* thumb2_casesi_internal_pic */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 4), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0), 0);
      recog_data.dup_num[1] = 0;
      break;

    case 882:  /* thumb2_casesi_internal */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 2), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0), 0);
      recog_data.dup_num[1] = 0;
      break;

    case 872:  /* *thumb2_ior_scc_strict_it */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 859:  /* *thumb2_cmpsi_neg_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 858:  /* *thumb2_storewb_pairsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 0;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 0;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 1);
      recog_data.dup_num[2] = 2;
      break;

    case 856:  /* tls_load_dot_plus_four */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0, 0));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0, 2));
      break;

    case 844:  /* *thumb1_tablejump */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0));
      break;

    case 839:  /* thumb1_casesi_dispatch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1), 0));
      break;

    case 831:  /* thumb1_addsi3_addgeu */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      break;

    case 825:  /* *addsi3_cbranch_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      break;

    case 824:  /* *addsi3_cbranch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 3;
      break;

    case 823:  /* *cbranchne_decr1 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 2;
      break;

    case 822:  /* *tstsi3_cbranch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 821:  /* *tlobits_cbranch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 820:  /* *tbit_cbranch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 819:  /* *negated_cbranchsi4 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 818:  /* cbranchsi4_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 817:  /* cbranchsi4_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 816:  /* thumb1_cbz */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 815:  /* movmem8b */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 5), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 2;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[3] = 3;
      break;

    case 814:  /* movmem12b */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 4), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 5), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 6), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XVECEXP (pat, 0, 7), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 4), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 2;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[3] = 3;
      recog_data.dup_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[4] = 2;
      recog_data.dup_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[5] = 3;
      break;

    case 800:  /* *thumb1_neg_abssi2 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 1145:  /* negdi2_neon */
    case 828:  /* *cstoresi_ne0_thumb1_insn */
    case 827:  /* *cstoresi_eq0_thumb1_insn */
    case 805:  /* thumb1_extendhisi2 */
    case 799:  /* *thumb1_abssi2 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 737:  /* neon_vcvthu_nsi_unspec */
    case 736:  /* neon_vcvths_nsi_unspec */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (pat, 1), 0, 1));
      break;

    case 735:  /* neon_vcvthu_nhf_unspec */
    case 734:  /* neon_vcvths_nhf_unspec */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 729:  /* *combine_vcvtf2i */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      break;

    case 699:  /* *fnmadddf4 */
    case 698:  /* *fnmaddsf4 */
    case 697:  /* *fnmaddhf4 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      break;

    case 696:  /* *fnmsubdf4 */
    case 695:  /* *fnmsubsf4 */
    case 694:  /* *fnmsubhf4 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      break;

    case 1036:  /* fmsubv4hf4_intrinsic */
    case 1035:  /* fmsubv8hf4_intrinsic */
    case 1034:  /* fmsubv4sf4_intrinsic */
    case 1033:  /* fmsubv2sf4_intrinsic */
    case 1032:  /* *fmsubv4sf4 */
    case 1031:  /* *fmsubv2sf4 */
    case 693:  /* *fmsubdf4 */
    case 692:  /* *fmsubsf4 */
    case 691:  /* fmsubhf4_fp16 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 687:  /* *muldf3negdfsubdf_vfp */
    case 686:  /* *mulsf3negsfsubsf_vfp */
    case 685:  /* *mulhf3neghfsubhf_vfp */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 1024:  /* mulv4sf3negv4sfaddv4sf_neon */
    case 1023:  /* mulv2sf3negv2sfaddv2sf_neon */
    case 1022:  /* mulv4si3negv4siaddv4si_neon */
    case 1021:  /* mulv2si3negv2siaddv2si_neon */
    case 1020:  /* mulv8hi3negv8hiaddv8hi_neon */
    case 1019:  /* mulv4hi3negv4hiaddv4hi_neon */
    case 1018:  /* mulv16qi3negv16qiaddv16qi_neon */
    case 1017:  /* mulv8qi3negv8qiaddv8qi_neon */
    case 684:  /* *fmuldf3negdfadddf_vfp */
    case 683:  /* *mulsf3negsfaddsf_vfp */
    case 682:  /* *mulhf3neghfaddhf_vfp */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      break;

    case 625:  /* iwmmxt_textrcv8qi3 */
    case 624:  /* iwmmxt_textrcv4hi3 */
    case 623:  /* iwmmxt_textrcv2si3 */
      ro[0] = *(ro_loc[0] = &XVECEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0, 1));
      break;

    case 613:  /* iwmmxt_wmerge */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 604:  /* iwmmxt_wmiattn */
    case 603:  /* iwmmxt_wmiatbn */
    case 602:  /* iwmmxt_wmiabtn */
    case 601:  /* iwmmxt_wmiabbn */
    case 600:  /* iwmmxt_wmiatt */
    case 599:  /* iwmmxt_wmiatb */
    case 598:  /* iwmmxt_wmiabt */
    case 597:  /* iwmmxt_wmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 596:  /* iwmmxt_wqmiattn */
    case 595:  /* iwmmxt_wqmiatbn */
    case 594:  /* iwmmxt_wqmiabtn */
    case 593:  /* iwmmxt_wqmiabbn */
    case 592:  /* iwmmxt_wqmiatt */
    case 591:  /* iwmmxt_wqmiatb */
    case 590:  /* iwmmxt_wqmiabt */
    case 589:  /* iwmmxt_wqmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 3), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 4), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 2), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 588:  /* iwmmxt_waddbhusl */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1), 0), 0));
      break;

    case 587:  /* iwmmxt_waddbhusm */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      break;

    case 571:  /* iwmmxt_avg4r */
    case 570:  /* iwmmxt_avg4 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0), 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0), 0), 0), 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0), 0), 0), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0), 0), 1), 0), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 569:  /* addcv2si3 */
    case 568:  /* addcv4hi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 1));
      break;

    case 567:  /* iwmmxt_wsubaddhx */
    case 566:  /* iwmmxt_waddsubhx */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 555:  /* iwmmxt_walignr3 */
    case 554:  /* iwmmxt_walignr2 */
    case 553:  /* iwmmxt_walignr1 */
    case 552:  /* iwmmxt_walignr0 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 1));
      break;

    case 551:  /* iwmmxt_walignr */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0), 0));
      break;

    case 550:  /* iwmmxt_waligni */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (XEXP (pat, 1), 0, 0), 0), 1), 0));
      break;

    case 543:  /* iwmmxt_tmiatt */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0));
      break;

    case 542:  /* iwmmxt_tmiabt */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0));
      break;

    case 541:  /* iwmmxt_tmiatb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0));
      break;

    case 612:  /* iwmmxt_wmiawttn */
    case 611:  /* iwmmxt_wmiawtbn */
    case 610:  /* iwmmxt_wmiawbtn */
    case 609:  /* iwmmxt_wmiawbbn */
    case 608:  /* iwmmxt_wmiawtt */
    case 607:  /* iwmmxt_wmiawtb */
    case 606:  /* iwmmxt_wmiawbt */
    case 605:  /* iwmmxt_wmiawbb */
    case 540:  /* iwmmxt_tmiabb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0));
      break;

    case 539:  /* iwmmxt_tmiaph */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      break;

    case 538:  /* iwmmxt_tmia */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0));
      break;

    case 575:  /* iwmmxt_wmaddun */
    case 574:  /* iwmmxt_wmaddsn */
    case 573:  /* iwmmxt_wmaddux */
    case 572:  /* iwmmxt_wmaddsx */
    case 537:  /* iwmmxt_wmaddu */
    case 536:  /* iwmmxt_wmadds */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 1), 0), 0);
      recog_data.dup_num[1] = 2;
      break;

    case 970:  /* vec_extractv2di */
    case 969:  /* vec_extractv4sf */
    case 968:  /* vec_extractv4si */
    case 967:  /* vec_extractv8hf */
    case 966:  /* vec_extractv8hi */
    case 965:  /* vec_extractv16qi */
    case 964:  /* vec_extractv2sf */
    case 963:  /* vec_extractv2si */
    case 962:  /* vec_extractv4hf */
    case 961:  /* vec_extractv4hi */
    case 960:  /* vec_extractv8qi */
    case 465:  /* iwmmxt_textrmw */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 1), 0, 0));
      break;

    case 1823:  /* neon_vdup_lanev4hf_internal */
    case 1822:  /* neon_vdup_lanev8hf_internal */
    case 1821:  /* neon_vdup_lanev4sf_internal */
    case 1820:  /* neon_vdup_lanev2sf_internal */
    case 1819:  /* neon_vdup_lanev4si_internal */
    case 1818:  /* neon_vdup_lanev2si_internal */
    case 1817:  /* neon_vdup_lanev8hi_internal */
    case 1816:  /* neon_vdup_lanev4hi_internal */
    case 1815:  /* neon_vdup_lanev16qi_internal */
    case 1814:  /* neon_vdup_lanev8qi_internal */
    case 1802:  /* neon_vget_lanev4sf_zext_internal */
    case 1801:  /* neon_vget_lanev4si_zext_internal */
    case 1800:  /* neon_vget_lanev8hf_zext_internal */
    case 1799:  /* neon_vget_lanev8hi_zext_internal */
    case 1798:  /* neon_vget_lanev16qi_zext_internal */
    case 1797:  /* neon_vget_lanev4sf_sext_internal */
    case 1796:  /* neon_vget_lanev4si_sext_internal */
    case 1795:  /* neon_vget_lanev8hf_sext_internal */
    case 1794:  /* neon_vget_lanev8hi_sext_internal */
    case 1793:  /* neon_vget_lanev16qi_sext_internal */
    case 1792:  /* neon_vget_lanev2sf_zext_internal */
    case 1791:  /* neon_vget_lanev2si_zext_internal */
    case 1790:  /* neon_vget_lanev4hi_zext_internal */
    case 1789:  /* neon_vget_lanev8qi_zext_internal */
    case 1788:  /* neon_vget_lanev2sf_sext_internal */
    case 1787:  /* neon_vget_lanev2si_sext_internal */
    case 1786:  /* neon_vget_lanev4hi_sext_internal */
    case 1785:  /* neon_vget_lanev8qi_sext_internal */
    case 464:  /* iwmmxt_textrmsh */
    case 463:  /* iwmmxt_textrmuh */
    case 462:  /* iwmmxt_textrmsb */
    case 461:  /* iwmmxt_textrmub */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0, 0));
      break;

    case 460:  /* iwmmxt_tinsrw */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 459:  /* iwmmxt_tinsrh */
    case 458:  /* iwmmxt_tinsrb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 581:  /* iwmmxt_wmulwumr */
    case 580:  /* iwmmxt_wmulwsmr */
    case 579:  /* iwmmxt_wmulumr */
    case 578:  /* iwmmxt_wmulsmr */
    case 455:  /* iwmmxt_uavgrndv4hi3 */
    case 454:  /* iwmmxt_uavgrndv8qi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 1), 0));
      break;

    case 2556:  /* crypto_sha256su1 */
    case 2555:  /* crypto_sha256h2 */
    case 2554:  /* crypto_sha256h */
    case 2553:  /* crypto_sha1su0 */
    case 2445:  /* neon_vld4_lanev4sf */
    case 2444:  /* neon_vld4_lanev4si */
    case 2443:  /* neon_vld4_lanev8hf */
    case 2442:  /* neon_vld4_lanev8hi */
    case 2441:  /* neon_vld4_lanev2sf */
    case 2440:  /* neon_vld4_lanev2si */
    case 2439:  /* neon_vld4_lanev4hf */
    case 2438:  /* neon_vld4_lanev4hi */
    case 2437:  /* neon_vld4_lanev8qi */
    case 2389:  /* neon_vld3_lanev4sf */
    case 2388:  /* neon_vld3_lanev4si */
    case 2387:  /* neon_vld3_lanev8hf */
    case 2386:  /* neon_vld3_lanev8hi */
    case 2385:  /* neon_vld3_lanev2sf */
    case 2384:  /* neon_vld3_lanev2si */
    case 2383:  /* neon_vld3_lanev4hf */
    case 2382:  /* neon_vld3_lanev4hi */
    case 2381:  /* neon_vld3_lanev8qi */
    case 2338:  /* neon_vld2_lanev4sf */
    case 2337:  /* neon_vld2_lanev4si */
    case 2336:  /* neon_vld2_lanev8hf */
    case 2335:  /* neon_vld2_lanev8hi */
    case 2334:  /* neon_vld2_lanev2sf */
    case 2333:  /* neon_vld2_lanev2si */
    case 2332:  /* neon_vld2_lanev4hf */
    case 2331:  /* neon_vld2_lanev4hi */
    case 2330:  /* neon_vld2_lanev8qi */
    case 2283:  /* neon_vld1_lanev2di */
    case 2282:  /* neon_vld1_lanev4sf */
    case 2281:  /* neon_vld1_lanev4si */
    case 2280:  /* neon_vld1_lanev8hf */
    case 2279:  /* neon_vld1_lanev8hi */
    case 2278:  /* neon_vld1_lanev16qi */
    case 2277:  /* neon_vld1_lanedi */
    case 2276:  /* neon_vld1_lanev2sf */
    case 2275:  /* neon_vld1_lanev2si */
    case 2274:  /* neon_vld1_lanev4hf */
    case 2273:  /* neon_vld1_lanev4hi */
    case 2272:  /* neon_vld1_lanev8qi */
    case 2229:  /* neon_vtbx4v8qi */
    case 2228:  /* neon_vtbx3v8qi */
    case 2227:  /* neon_vtbx2v8qi */
    case 2226:  /* neon_vtbx1v8qi */
    case 2218:  /* neon_vsli_nv2di */
    case 2217:  /* neon_vsli_ndi */
    case 2216:  /* neon_vsli_nv4si */
    case 2215:  /* neon_vsli_nv2si */
    case 2214:  /* neon_vsli_nv8hi */
    case 2213:  /* neon_vsli_nv4hi */
    case 2212:  /* neon_vsli_nv16qi */
    case 2211:  /* neon_vsli_nv8qi */
    case 2210:  /* neon_vsri_nv2di */
    case 2209:  /* neon_vsri_ndi */
    case 2208:  /* neon_vsri_nv4si */
    case 2207:  /* neon_vsri_nv2si */
    case 2206:  /* neon_vsri_nv8hi */
    case 2205:  /* neon_vsri_nv4hi */
    case 2204:  /* neon_vsri_nv16qi */
    case 2203:  /* neon_vsri_nv8qi */
    case 2202:  /* neon_vrsrau_nv2di */
    case 2201:  /* neon_vrsras_nv2di */
    case 2200:  /* neon_vsrau_nv2di */
    case 2199:  /* neon_vsras_nv2di */
    case 2198:  /* neon_vrsrau_ndi */
    case 2197:  /* neon_vrsras_ndi */
    case 2196:  /* neon_vsrau_ndi */
    case 2195:  /* neon_vsras_ndi */
    case 2194:  /* neon_vrsrau_nv4si */
    case 2193:  /* neon_vrsras_nv4si */
    case 2192:  /* neon_vsrau_nv4si */
    case 2191:  /* neon_vsras_nv4si */
    case 2190:  /* neon_vrsrau_nv2si */
    case 2189:  /* neon_vrsras_nv2si */
    case 2188:  /* neon_vsrau_nv2si */
    case 2187:  /* neon_vsras_nv2si */
    case 2186:  /* neon_vrsrau_nv8hi */
    case 2185:  /* neon_vrsras_nv8hi */
    case 2184:  /* neon_vsrau_nv8hi */
    case 2183:  /* neon_vsras_nv8hi */
    case 2182:  /* neon_vrsrau_nv4hi */
    case 2181:  /* neon_vrsras_nv4hi */
    case 2180:  /* neon_vsrau_nv4hi */
    case 2179:  /* neon_vsras_nv4hi */
    case 2178:  /* neon_vrsrau_nv16qi */
    case 2177:  /* neon_vrsras_nv16qi */
    case 2176:  /* neon_vsrau_nv16qi */
    case 2175:  /* neon_vsras_nv16qi */
    case 2174:  /* neon_vrsrau_nv8qi */
    case 2173:  /* neon_vrsras_nv8qi */
    case 2172:  /* neon_vsrau_nv8qi */
    case 2171:  /* neon_vsras_nv8qi */
    case 2012:  /* neon_vbslv2di_internal */
    case 2011:  /* neon_vbsldi_internal */
    case 2010:  /* neon_vbslv4sf_internal */
    case 2009:  /* neon_vbslv2sf_internal */
    case 2008:  /* neon_vbslv8hf_internal */
    case 2007:  /* neon_vbslv4hf_internal */
    case 2006:  /* neon_vbslv4si_internal */
    case 2005:  /* neon_vbslv2si_internal */
    case 2004:  /* neon_vbslv8hi_internal */
    case 2003:  /* neon_vbslv4hi_internal */
    case 2002:  /* neon_vbslv16qi_internal */
    case 2001:  /* neon_vbslv8qi_internal */
    case 1983:  /* neon_vextv2di */
    case 1982:  /* neon_vextdi */
    case 1981:  /* neon_vextv4sf */
    case 1980:  /* neon_vextv2sf */
    case 1979:  /* neon_vextv8hf */
    case 1978:  /* neon_vextv4hf */
    case 1977:  /* neon_vextv4si */
    case 1976:  /* neon_vextv2si */
    case 1975:  /* neon_vextv8hi */
    case 1974:  /* neon_vextv4hi */
    case 1973:  /* neon_vextv16qi */
    case 1972:  /* neon_vextv8qi */
    case 1939:  /* neon_vqrdmulh_lanev2si */
    case 1938:  /* neon_vqdmulh_lanev2si */
    case 1937:  /* neon_vqrdmulh_lanev4hi */
    case 1936:  /* neon_vqdmulh_lanev4hi */
    case 1935:  /* neon_vqrdmulh_lanev4si */
    case 1934:  /* neon_vqdmulh_lanev4si */
    case 1933:  /* neon_vqrdmulh_lanev8hi */
    case 1932:  /* neon_vqdmulh_lanev8hi */
    case 1931:  /* neon_vqdmull_lanev2si */
    case 1930:  /* neon_vqdmull_lanev4hi */
    case 1929:  /* neon_vmullu_lanev2si */
    case 1928:  /* neon_vmulls_lanev2si */
    case 1927:  /* neon_vmullu_lanev4hi */
    case 1926:  /* neon_vmulls_lanev4hi */
    case 1925:  /* neon_vmul_lanev4hf */
    case 1924:  /* neon_vmul_lanev8hf */
    case 1923:  /* neon_vmul_lanev4sf */
    case 1922:  /* neon_vmul_lanev4si */
    case 1921:  /* neon_vmul_lanev8hi */
    case 1920:  /* neon_vmul_lanev2sf */
    case 1919:  /* neon_vmul_lanev2si */
    case 1918:  /* neon_vmul_lanev4hi */
    case 1442:  /* neon_vqdmlslv2si */
    case 1441:  /* neon_vqdmlslv4hi */
    case 1440:  /* neon_vqdmlalv2si */
    case 1439:  /* neon_vqdmlalv4hi */
    case 1438:  /* neon_vqrdmlshv4si */
    case 1437:  /* neon_vqrdmlahv4si */
    case 1436:  /* neon_vqrdmlshv8hi */
    case 1435:  /* neon_vqrdmlahv8hi */
    case 1434:  /* neon_vqrdmlshv2si */
    case 1433:  /* neon_vqrdmlahv2si */
    case 1432:  /* neon_vqrdmlshv4hi */
    case 1431:  /* neon_vqrdmlahv4hi */
    case 1422:  /* neon_vmlsluv2si */
    case 1421:  /* neon_vmlslsv2si */
    case 1420:  /* neon_vmlsluv4hi */
    case 1419:  /* neon_vmlslsv4hi */
    case 1418:  /* neon_vmlsluv8qi */
    case 1417:  /* neon_vmlslsv8qi */
    case 1416:  /* neon_vmlsv4sf_unspec */
    case 1415:  /* neon_vmlsv2sf_unspec */
    case 1414:  /* neon_vmlsv4si_unspec */
    case 1413:  /* neon_vmlsv2si_unspec */
    case 1412:  /* neon_vmlsv8hi_unspec */
    case 1411:  /* neon_vmlsv4hi_unspec */
    case 1410:  /* neon_vmlsv16qi_unspec */
    case 1409:  /* neon_vmlsv8qi_unspec */
    case 1408:  /* neon_vmlaluv2si */
    case 1407:  /* neon_vmlalsv2si */
    case 1406:  /* neon_vmlaluv4hi */
    case 1405:  /* neon_vmlalsv4hi */
    case 1404:  /* neon_vmlaluv8qi */
    case 1403:  /* neon_vmlalsv8qi */
    case 1402:  /* neon_vmlav4sf_unspec */
    case 1401:  /* neon_vmlav2sf_unspec */
    case 1400:  /* neon_vmlav4si_unspec */
    case 1399:  /* neon_vmlav2si_unspec */
    case 1398:  /* neon_vmlav8hi_unspec */
    case 1397:  /* neon_vmlav4hi_unspec */
    case 1396:  /* neon_vmlav16qi_unspec */
    case 1395:  /* neon_vmlav8qi_unspec */
    case 557:  /* iwmmxt_wsadh */
    case 556:  /* iwmmxt_wsadb */
    case 448:  /* iwmmxt_wmacu */
    case 446:  /* iwmmxt_wmacs */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (pat, 1), 0, 1));
      ro[3] = *(ro_loc[3] = &XVECEXP (XEXP (pat, 1), 0, 2));
      break;

    case 577:  /* iwmmxt_wmulwum */
    case 576:  /* iwmmxt_wmulwsm */
    case 565:  /* iwmmxt_wabsdiffw */
    case 564:  /* iwmmxt_wabsdiffh */
    case 563:  /* iwmmxt_wabsdiffb */
    case 457:  /* iwmmxt_uavgv4hi3 */
    case 456:  /* iwmmxt_uavgv8qi3 */
    case 445:  /* umulv4hi3_highpart */
    case 444:  /* smulv4hi3_highpart */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1), 0));
      break;

    case 4081:  /* *p *thumb2_movhi_insn */
    case 4080:  /* *p *thumb2_movsi_insn */
    case 4014:  /* *p *movdf_vfp */
    case 4013:  /* *p *thumb2_movsf_vfp */
    case 4012:  /* *p *movsf_vfp */
    case 4011:  /* *p *movhf_vfp_fp16 */
    case 4010:  /* *p *movdi_vfp_cortexa8 */
    case 4009:  /* *p *thumb2_movsi_vfp */
    case 4008:  /* *p *arm_movsi_vfp */
    case 4007:  /* *p *thumb2_movhi_fp16 */
    case 4006:  /* *p *arm_movhi_fp16 */
    case 4005:  /* *p *thumb2_movhi_vfp */
    case 4004:  /* *p *arm_movhi_vfp */
    case 3793:  /* *p movv8qi_internal */
    case 3792:  /* *p movv4hi_internal */
    case 3791:  /* *p movv2si_internal */
    case 3699:  /* *p *arm_movsf_soft_insn */
    case 3698:  /* *p *arm32_movhf */
    case 3697:  /* *p *arm_movqi_insn */
    case 3696:  /* *p *movhi_bytes */
    case 3695:  /* *p *movhi_insn_arch4 */
    case 3692:  /* *p *arm_movsi_insn */
    case 412:  /* *cond_iwmmxt_movsi_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 0), 0));
      break;

    case 409:  /* iwmmxt_nanddi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 402:  /* *load_multiple */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 0), 0));
      break;

    case 397:  /* *stm2_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 396:  /* *stm2_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 395:  /* *ldm2_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 394:  /* *ldm2_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 401:  /* *stm2_db_update */
    case 393:  /* *stm2_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 400:  /* *stm2_db */
    case 392:  /* *stm2_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 399:  /* *ldm2_db_update */
    case 391:  /* *ldm2_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 398:  /* *ldm2_db */
    case 390:  /* *ldm2_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 389:  /* *thumb_stm2_ia_update */
    case 388:  /* *stm2_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 387:  /* *stm2_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 386:  /* *thumb_ldm2_ia_update */
    case 385:  /* *ldm2_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[1] = 3;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[2] = 3;
      break;

    case 384:  /* *thumb_ldm2_ia */
    case 383:  /* *ldm2_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 3;
      break;

    case 378:  /* *stm3_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 377:  /* *stm3_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 376:  /* *ldm3_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 375:  /* *ldm3_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 382:  /* *stm3_db_update */
    case 374:  /* *stm3_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 381:  /* *stm3_db */
    case 373:  /* *stm3_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 380:  /* *ldm3_db_update */
    case 372:  /* *ldm3_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 379:  /* *ldm3_db */
    case 371:  /* *ldm3_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 370:  /* *thumb_stm3_ia_update */
    case 369:  /* *stm3_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 368:  /* *stm3_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 367:  /* *thumb_ldm3_ia_update */
    case 366:  /* *ldm3_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[3] = 4;
      break;

    case 365:  /* *thumb_ldm3_ia */
    case 364:  /* *ldm3_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[0] = 4;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[1] = 4;
      break;

    case 359:  /* *stm4_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 4), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 358:  /* *stm4_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 357:  /* *ldm4_da_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 4), 1), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 356:  /* *ldm4_da */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 363:  /* *stm4_db_update */
    case 355:  /* *stm4_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 4), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 362:  /* *stm4_db */
    case 354:  /* *stm4_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 361:  /* *ldm4_db_update */
    case 353:  /* *ldm4_ib_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 4), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 360:  /* *ldm4_db */
    case 352:  /* *ldm4_ib */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 351:  /* *thumb_stm4_ia_update */
    case 350:  /* *stm4_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 4), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 349:  /* *stm4_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 0), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 348:  /* *thumb_ldm4_ia_update */
    case 347:  /* *ldm4_ia_update */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 4), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 4), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[4] = 5;
      break;

    case 346:  /* *thumb_ldm4_ia */
    case 345:  /* *ldm4_ */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 3), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 3), 1), 0), 0);
      recog_data.dup_num[0] = 5;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0), 0);
      recog_data.dup_num[1] = 5;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 5;
      break;

    case 338:  /* *thumb2_strd_base_neg */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 337:  /* *thumb2_strd_base */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 336:  /* *thumb2_strd */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 0), 0), 0);
      recog_data.dup_num[0] = 0;
      break;

    case 335:  /* *thumb2_ldrd_base_neg */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 334:  /* *thumb2_ldrd_base */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 333:  /* *thumb2_ldrd */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 332:  /* arm_rev16si2_alt */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 331:  /* arm_rev16si2 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 327:  /* *arm_movtas_ze */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 1));
      break;

    case 326:  /* tlscall */
      ro[0] = *(ro_loc[0] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 1));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 2));
      break;

    case 885:  /* thumb2_eh_return */
    case 845:  /* thumb_eh_return */
    case 323:  /* arm_eh_return */
      ro[0] = *(ro_loc[0] = &XVECEXP (XVECEXP (pat, 0, 0), 0, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 321:  /* prefetch */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 1));
      ro[2] = *(ro_loc[2] = &XEXP (pat, 2));
      break;

    case 781:  /* set_fpscr */
    case 322:  /* force_register_use */
    case 317:  /* consttable_16 */
    case 316:  /* consttable_8 */
    case 315:  /* consttable_4 */
    case 314:  /* consttable_2 */
    case 313:  /* consttable_1 */
      ro[0] = *(ro_loc[0] = &XVECEXP (pat, 0, 0));
      break;

    case 308:  /* *ldr_with_return */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0));
      break;

    case 307:  /* *pop_multiple_with_return */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 306:  /* *pop_multiple_with_writeback_and_return */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 309:  /* *vfp_pop_multiple_with_writeback */
    case 305:  /* *load_multiple_with_writeback */
      ro[0] = *(ro_loc[0] = &PATTERN (insn));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0);
      recog_data.dup_num[1] = 1;
      break;

    case 304:  /* stack_tie */
      ro[0] = *(ro_loc[0] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 1));
      break;

    case 746:  /* *push_multi_vfp */
    case 303:  /* *push_multi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0, 0));
      ro[2] = *(ro_loc[2] = &PATTERN (insn));
      break;

    case 302:  /* *not_signextract_onebit */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 2));
      break;

    case 301:  /* *sign_extract_onebit */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      break;

    case 299:  /* *arith_adjacentmem */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 294:  /* *if_arith_not */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 293:  /* *ifcompare_arith_not */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 292:  /* *if_not_arith */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 291:  /* *ifcompare_not_arith */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      break;

    case 289:  /* *ifcompare_shift_shift */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[8] = *(ro_loc[8] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[9] = *(ro_loc[9] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      break;

    case 288:  /* *if_move_shift */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 2));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 286:  /* *if_shift_move */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 285:  /* *ifcompare_shift_move */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 296:  /* *if_neg_move */
    case 284:  /* *if_not_move */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 295:  /* *ifcompare_neg_move */
    case 283:  /* *ifcompare_not_move */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 300:  /* *cond_move_not */
    case 298:  /* *if_move_neg */
    case 282:  /* *if_move_not */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 297:  /* *ifcompare_move_neg */
    case 281:  /* *ifcompare_move_not */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 280:  /* *if_move_arith */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 2));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 287:  /* *ifcompare_move_shift */
    case 279:  /* *ifcompare_move_arith */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      break;

    case 278:  /* *if_arith_move */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 277:  /* *ifcompare_arith_move */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 290:  /* *if_shift_shift */
    case 276:  /* *if_arith_arith */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 2), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (pat, 1), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (pat, 1), 1));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (pat, 1), 2));
      ro[8] = *(ro_loc[8] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 275:  /* *ifcompare_arith_arith */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[7] = *(ro_loc[7] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[8] = *(ro_loc[8] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[9] = *(ro_loc[9] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 274:  /* *if_move_plus */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 273:  /* *ifcompare_move_plus */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 272:  /* *if_plus_move */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 271:  /* *ifcompare_plus_move */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 878:  /* *thumb2_movcond */
    case 270:  /* movcond */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 269:  /* movcond_addsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 877:  /* *thumb2_negscc */
    case 268:  /* *negscc */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 266:  /* *and_scc_scc_cmp */
    case 264:  /* *ior_scc_scc_cmp */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[7] = *(ro_loc[7] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 1;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[3] = 6;
      recog_data.dup_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1), 1);
      recog_data.dup_num[4] = 5;
      recog_data.dup_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1), 0);
      recog_data.dup_num[5] = 4;
      break;

    case 267:  /* *and_scc_scc_nodom */
    case 265:  /* *and_scc_scc */
    case 263:  /* *ior_scc_scc */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[6] = *(ro_loc[6] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 262:  /* *cmp_ior */
    case 261:  /* *cmp_and */
    case 260:  /* *cmp_ite1 */
    case 259:  /* *cmp_ite0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[6] = *(ro_loc[6] = &XEXP (pat, 0));
      break;

    case 875:  /* *thumb2_cond_arith_strict_it */
    case 874:  /* *thumb2_cond_arith */
    case 257:  /* *cond_arith */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XVECEXP (pat, 0, 0), 1));
      break;

    case 873:  /* *thumb2_cond_move */
    case 256:  /* *cond_move */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      break;

    case 255:  /* *compare_scc */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 871:  /* *thumb2_ior_scc */
    case 870:  /* *thumb2_and_scc */
    case 254:  /* *ior_scc */
    case 253:  /* *and_scc */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 252:  /* *sub_shiftsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 1));
      break;

    case 251:  /* *sub_shiftsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1), 1);
      recog_data.dup_num[2] = 4;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1), 0);
      recog_data.dup_num[3] = 3;
      break;

    case 250:  /* *sub_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      break;

    case 249:  /* *arith_shiftsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      break;

    case 248:  /* *arith_shiftsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[2] = 3;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[3] = 5;
      recog_data.dup_loc[4] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[4] = 4;
      break;

    case 247:  /* *and_shiftsi */
    case 246:  /* *eor_shiftsi */
    case 245:  /* *orr_shiftsi */
    case 244:  /* *rsb_shiftsi */
    case 243:  /* *add_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 1016:  /* mulv4hf3addv4hf_neon */
    case 1015:  /* mulv8hf3addv8hf_neon */
    case 1014:  /* mulv4sf3addv4sf_neon */
    case 1013:  /* mulv2sf3addv2sf_neon */
    case 1012:  /* mulv4si3addv4si_neon */
    case 1011:  /* mulv2si3addv2si_neon */
    case 1010:  /* mulv8hi3addv8hi_neon */
    case 1009:  /* mulv4hi3addv4hi_neon */
    case 1008:  /* mulv16qi3addv16qi_neon */
    case 1007:  /* mulv8qi3addv8qi_neon */
    case 681:  /* *muldf3subdf_vfp */
    case 680:  /* *mulsf3subsf_vfp */
    case 679:  /* *mulhf3subhf_vfp */
    case 678:  /* *muldf3adddf_vfp */
    case 677:  /* *mulsf3addsf_vfp */
    case 676:  /* *mulsf3addhf_vfp */
    case 242:  /* *and_multsi */
    case 241:  /* *eor_multsi */
    case 240:  /* *orr_multsi */
    case 239:  /* *rsb_multsi */
    case 238:  /* *add_multsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 869:  /* *thumb2_indirect_jump */
    case 840:  /* *thumb1_indirect_jump */
    case 235:  /* *load_indirect_jump */
    case 234:  /* *arm_indirect_jump */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 1));
      break;

    case 233:  /* arm_casesi_internal */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 2), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 2), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0), 0);
      recog_data.dup_num[1] = 0;
      break;

    case 854:  /* *thumb2_pop_single */
    case 843:  /* *thumb1_movpc_insn */
    case 782:  /* get_fpscr */
    case 453:  /* iwmmxt_clrv2si */
    case 452:  /* iwmmxt_clrv4hi */
    case 451:  /* iwmmxt_clrv8qi */
    case 450:  /* iwmmxt_clrdi */
    case 324:  /* load_tp_hard */
    case 231:  /* probe_stack */
    case 229:  /* *check_arch2 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      break;

    case 227:  /* *cond_simple_return_inverted */
    case 226:  /* *cond_return_inverted */
    case 225:  /* *cond_simple_return */
    case 224:  /* *cond_return */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 884:  /* *thumb2_return */
    case 842:  /* *epilogue_insns */
    case 841:  /* prologue_thumb1_interwork */
    case 716:  /* *movcc_vfp */
    case 622:  /* iwmmxt_torvscv8qi3 */
    case 621:  /* iwmmxt_torvscv4hi3 */
    case 620:  /* iwmmxt_torvscv2si3 */
    case 619:  /* iwmmxt_torcv8qi3 */
    case 618:  /* iwmmxt_torcv4hi3 */
    case 617:  /* iwmmxt_torcv2si3 */
    case 616:  /* iwmmxt_tandcv8qi3 */
    case 615:  /* iwmmxt_tandcv4hi3 */
    case 614:  /* iwmmxt_tandcv2si3 */
    case 325:  /* load_tp_soft */
    case 312:  /* consttable_end */
    case 311:  /* align_8 */
    case 310:  /* align_4 */
    case 237:  /* trap */
    case 236:  /* nop */
    case 230:  /* blockage */
    case 228:  /* *arm_simple_return */
    case 223:  /* *arm_return */
      break;

    case 222:  /* *sibcall_value_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 2), 0));
      break;

    case 221:  /* *sibcall_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 2), 0));
      break;

    case 868:  /* *call_value_reg_thumb2 */
    case 838:  /* *call_value_insn */
    case 836:  /* *call_value_reg_thumb1 */
    case 835:  /* *call_value_reg_thumb1_v5 */
    case 220:  /* *call_value_symbol */
    case 218:  /* *call_value_reg_arm */
    case 217:  /* *call_value_reg_armv5 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 867:  /* *call_reg_thumb2 */
    case 837:  /* *call_insn */
    case 834:  /* *call_reg_thumb1 */
    case 833:  /* *call_reg_thumb1_v5 */
    case 219:  /* *call_symbol */
    case 216:  /* *call_reg_arm */
    case 215:  /* *call_reg_armv5 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 866:  /* *thumb2_movsfcc_soft_insn */
    case 865:  /* *thumb2_movsicc_insn */
    case 644:  /* *thumb2_movdfcc_vfp */
    case 643:  /* *movdfcc_vfp */
    case 642:  /* *thumb2_movsfcc_vfp */
    case 641:  /* *movsfcc_vfp */
    case 213:  /* *movsfcc_soft_insn */
    case 212:  /* *movsicc_insn */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 2));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 211:  /* *cmovhf */
    case 210:  /* *cmovdf */
    case 209:  /* *cmovsf */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 864:  /* *thumb2_mov_notscc_strict_it */
    case 863:  /* *thumb2_mov_notscc */
    case 862:  /* *thumb2_mov_negscc_strict_it */
    case 861:  /* *thumb2_mov_negscc */
    case 208:  /* *mov_notscc */
    case 207:  /* *mov_negscc */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 860:  /* *thumb2_mov_scc */
    case 206:  /* *mov_scc */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 205:  /* *arm_cond_branch_reversed */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 2), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 204:  /* arm_cond_branch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 203:  /* *deleted_compare */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      recog_data.dup_loc[0] = &XEXP (pat, 1);
      recog_data.dup_num[0] = 0;
      break;

    case 826:  /* *thumb_cmpdi_zero */
    case 202:  /* *arm_cmpdi_zero */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 200:  /* *arm_cmpdi_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 199:  /* *arm_cmpsi_negshiftsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      break;

    case 198:  /* *cmpsi_shiftsi_swp */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 1));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 197:  /* *cmpsi_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 724:  /* *cmpdf_trap_vfp */
    case 723:  /* *cmpdf_vfp */
    case 722:  /* *cmpsf_trap_vfp */
    case 721:  /* *cmpsf_vfp */
    case 720:  /* *cmpdf_trap_split_vfp */
    case 719:  /* *cmpdf_split_vfp */
    case 718:  /* *cmpsf_trap_split_vfp */
    case 717:  /* *cmpsf_split_vfp */
    case 201:  /* *arm_cmpdi_unsigned */
    case 196:  /* *arm_cmpsi_insn */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 189:  /* *movsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
      recog_data.dup_num[0] = 1;
      break;

    case 188:  /* tls_load_dot_plus_eight */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 2));
      break;

    case 187:  /* pic_add_dot_plus_eight */
    case 186:  /* pic_add_dot_plus_four */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (pat, 1), 0, 2));
      break;

    case 2568:  /* atomic_storesi */
    case 2567:  /* atomic_storehi */
    case 2566:  /* atomic_storeqi */
    case 2565:  /* atomic_loadsi */
    case 2564:  /* atomic_loadhi */
    case 2563:  /* atomic_loadqi */
    case 2558:  /* crypto_vmullp64 */
    case 2552:  /* crypto_sha256su0 */
    case 2551:  /* crypto_sha1su1 */
    case 2550:  /* crypto_aese */
    case 2549:  /* crypto_aesd */
    case 2476:  /* neon_vst4_lanev4sf */
    case 2475:  /* neon_vst4_lanev4si */
    case 2474:  /* neon_vst4_lanev8hf */
    case 2473:  /* neon_vst4_lanev8hi */
    case 2472:  /* neon_vst4_lanev2sf */
    case 2471:  /* neon_vst4_lanev2si */
    case 2470:  /* neon_vst4_lanev4hf */
    case 2469:  /* neon_vst4_lanev4hi */
    case 2468:  /* neon_vst4_lanev8qi */
    case 2436:  /* neon_vld4qbv4sf */
    case 2435:  /* neon_vld4qbv4si */
    case 2434:  /* neon_vld4qbv8hf */
    case 2433:  /* neon_vld4qbv8hi */
    case 2432:  /* neon_vld4qbv16qi */
    case 2420:  /* neon_vst3_lanev4sf */
    case 2419:  /* neon_vst3_lanev4si */
    case 2418:  /* neon_vst3_lanev8hf */
    case 2417:  /* neon_vst3_lanev8hi */
    case 2416:  /* neon_vst3_lanev2sf */
    case 2415:  /* neon_vst3_lanev2si */
    case 2414:  /* neon_vst3_lanev4hf */
    case 2413:  /* neon_vst3_lanev4hi */
    case 2412:  /* neon_vst3_lanev8qi */
    case 2380:  /* neon_vld3qbv4sf */
    case 2379:  /* neon_vld3qbv4si */
    case 2378:  /* neon_vld3qbv8hf */
    case 2377:  /* neon_vld3qbv8hi */
    case 2376:  /* neon_vld3qbv16qi */
    case 2364:  /* neon_vst2_lanev4sf */
    case 2363:  /* neon_vst2_lanev4si */
    case 2362:  /* neon_vst2_lanev8hf */
    case 2361:  /* neon_vst2_lanev8hi */
    case 2360:  /* neon_vst2_lanev2sf */
    case 2359:  /* neon_vst2_lanev2si */
    case 2358:  /* neon_vst2_lanev4hf */
    case 2357:  /* neon_vst2_lanev4hi */
    case 2356:  /* neon_vst2_lanev8qi */
    case 2318:  /* neon_vst1_lanev2di */
    case 2317:  /* neon_vst1_lanev4sf */
    case 2316:  /* neon_vst1_lanev4si */
    case 2315:  /* neon_vst1_lanev8hf */
    case 2314:  /* neon_vst1_lanev8hi */
    case 2313:  /* neon_vst1_lanev16qi */
    case 2312:  /* neon_vst1_lanedi */
    case 2311:  /* neon_vst1_lanev2sf */
    case 2310:  /* neon_vst1_lanev2si */
    case 2309:  /* neon_vst1_lanev4hf */
    case 2308:  /* neon_vst1_lanev4hi */
    case 2307:  /* neon_vst1_lanev8qi */
    case 2225:  /* neon_vcombinev16qi */
    case 2224:  /* neon_vtbl2v16qi */
    case 2223:  /* neon_vtbl1v16qi */
    case 2222:  /* neon_vtbl4v8qi */
    case 2221:  /* neon_vtbl3v8qi */
    case 2220:  /* neon_vtbl2v8qi */
    case 2219:  /* neon_vtbl1v8qi */
    case 2170:  /* neon_vshllu_nv2si */
    case 2169:  /* neon_vshlls_nv2si */
    case 2168:  /* neon_vshllu_nv4hi */
    case 2167:  /* neon_vshlls_nv4hi */
    case 2166:  /* neon_vshllu_nv8qi */
    case 2165:  /* neon_vshlls_nv8qi */
    case 2164:  /* neon_vqshlu_nv2di */
    case 2163:  /* neon_vqshlu_ndi */
    case 2162:  /* neon_vqshlu_nv4si */
    case 2161:  /* neon_vqshlu_nv2si */
    case 2160:  /* neon_vqshlu_nv8hi */
    case 2159:  /* neon_vqshlu_nv4hi */
    case 2158:  /* neon_vqshlu_nv16qi */
    case 2157:  /* neon_vqshlu_nv8qi */
    case 2156:  /* neon_vqshl_u_nv2di */
    case 2155:  /* neon_vqshl_s_nv2di */
    case 2154:  /* neon_vqshl_u_ndi */
    case 2153:  /* neon_vqshl_s_ndi */
    case 2152:  /* neon_vqshl_u_nv4si */
    case 2151:  /* neon_vqshl_s_nv4si */
    case 2150:  /* neon_vqshl_u_nv2si */
    case 2149:  /* neon_vqshl_s_nv2si */
    case 2148:  /* neon_vqshl_u_nv8hi */
    case 2147:  /* neon_vqshl_s_nv8hi */
    case 2146:  /* neon_vqshl_u_nv4hi */
    case 2145:  /* neon_vqshl_s_nv4hi */
    case 2144:  /* neon_vqshl_u_nv16qi */
    case 2143:  /* neon_vqshl_s_nv16qi */
    case 2142:  /* neon_vqshl_u_nv8qi */
    case 2141:  /* neon_vqshl_s_nv8qi */
    case 2140:  /* neon_vshl_nv2di */
    case 2139:  /* neon_vshl_ndi */
    case 2138:  /* neon_vshl_nv4si */
    case 2137:  /* neon_vshl_nv2si */
    case 2136:  /* neon_vshl_nv8hi */
    case 2135:  /* neon_vshl_nv4hi */
    case 2134:  /* neon_vshl_nv16qi */
    case 2133:  /* neon_vshl_nv8qi */
    case 2132:  /* neon_vqrshrun_nv2di */
    case 2131:  /* neon_vqshrun_nv2di */
    case 2130:  /* neon_vqrshrun_nv4si */
    case 2129:  /* neon_vqshrun_nv4si */
    case 2128:  /* neon_vqrshrun_nv8hi */
    case 2127:  /* neon_vqshrun_nv8hi */
    case 2126:  /* neon_vqrshrnu_nv2di */
    case 2125:  /* neon_vqrshrns_nv2di */
    case 2124:  /* neon_vqshrnu_nv2di */
    case 2123:  /* neon_vqshrns_nv2di */
    case 2122:  /* neon_vqrshrnu_nv4si */
    case 2121:  /* neon_vqrshrns_nv4si */
    case 2120:  /* neon_vqshrnu_nv4si */
    case 2119:  /* neon_vqshrns_nv4si */
    case 2118:  /* neon_vqrshrnu_nv8hi */
    case 2117:  /* neon_vqrshrns_nv8hi */
    case 2116:  /* neon_vqshrnu_nv8hi */
    case 2115:  /* neon_vqshrns_nv8hi */
    case 2114:  /* neon_vrshrn_nv2di */
    case 2113:  /* neon_vshrn_nv2di */
    case 2112:  /* neon_vrshrn_nv4si */
    case 2111:  /* neon_vshrn_nv4si */
    case 2110:  /* neon_vrshrn_nv8hi */
    case 2109:  /* neon_vshrn_nv8hi */
    case 2108:  /* neon_vrshru_nv2di */
    case 2107:  /* neon_vrshrs_nv2di */
    case 2106:  /* neon_vshru_nv2di */
    case 2105:  /* neon_vshrs_nv2di */
    case 2104:  /* neon_vrshru_ndi */
    case 2103:  /* neon_vrshrs_ndi */
    case 2102:  /* neon_vshru_ndi */
    case 2101:  /* neon_vshrs_ndi */
    case 2100:  /* neon_vrshru_nv4si */
    case 2099:  /* neon_vrshrs_nv4si */
    case 2098:  /* neon_vshru_nv4si */
    case 2097:  /* neon_vshrs_nv4si */
    case 2096:  /* neon_vrshru_nv2si */
    case 2095:  /* neon_vrshrs_nv2si */
    case 2094:  /* neon_vshru_nv2si */
    case 2093:  /* neon_vshrs_nv2si */
    case 2092:  /* neon_vrshru_nv8hi */
    case 2091:  /* neon_vrshrs_nv8hi */
    case 2090:  /* neon_vshru_nv8hi */
    case 2089:  /* neon_vshrs_nv8hi */
    case 2088:  /* neon_vrshru_nv4hi */
    case 2087:  /* neon_vrshrs_nv4hi */
    case 2086:  /* neon_vshru_nv4hi */
    case 2085:  /* neon_vshrs_nv4hi */
    case 2084:  /* neon_vrshru_nv16qi */
    case 2083:  /* neon_vrshrs_nv16qi */
    case 2082:  /* neon_vshru_nv16qi */
    case 2081:  /* neon_vshrs_nv16qi */
    case 2080:  /* neon_vrshru_nv8qi */
    case 2079:  /* neon_vrshrs_nv8qi */
    case 2078:  /* neon_vshru_nv8qi */
    case 2077:  /* neon_vshrs_nv8qi */
    case 2076:  /* neon_vqrshluv2di */
    case 2075:  /* neon_vqrshlsv2di */
    case 2074:  /* neon_vqshluv2di */
    case 2073:  /* neon_vqshlsv2di */
    case 2072:  /* neon_vqrshludi */
    case 2071:  /* neon_vqrshlsdi */
    case 2070:  /* neon_vqshludi */
    case 2069:  /* neon_vqshlsdi */
    case 2068:  /* neon_vqrshluv4si */
    case 2067:  /* neon_vqrshlsv4si */
    case 2066:  /* neon_vqshluv4si */
    case 2065:  /* neon_vqshlsv4si */
    case 2064:  /* neon_vqrshluv2si */
    case 2063:  /* neon_vqrshlsv2si */
    case 2062:  /* neon_vqshluv2si */
    case 2061:  /* neon_vqshlsv2si */
    case 2060:  /* neon_vqrshluv8hi */
    case 2059:  /* neon_vqrshlsv8hi */
    case 2058:  /* neon_vqshluv8hi */
    case 2057:  /* neon_vqshlsv8hi */
    case 2056:  /* neon_vqrshluv4hi */
    case 2055:  /* neon_vqrshlsv4hi */
    case 2054:  /* neon_vqshluv4hi */
    case 2053:  /* neon_vqshlsv4hi */
    case 2052:  /* neon_vqrshluv16qi */
    case 2051:  /* neon_vqrshlsv16qi */
    case 2050:  /* neon_vqshluv16qi */
    case 2049:  /* neon_vqshlsv16qi */
    case 2048:  /* neon_vqrshluv8qi */
    case 2047:  /* neon_vqrshlsv8qi */
    case 2046:  /* neon_vqshluv8qi */
    case 2045:  /* neon_vqshlsv8qi */
    case 2044:  /* neon_vrshluv2di */
    case 2043:  /* neon_vrshlsv2di */
    case 2042:  /* neon_vshluv2di */
    case 2041:  /* neon_vshlsv2di */
    case 2040:  /* neon_vrshludi */
    case 2039:  /* neon_vrshlsdi */
    case 2038:  /* neon_vshludi */
    case 2037:  /* neon_vshlsdi */
    case 2036:  /* neon_vrshluv4si */
    case 2035:  /* neon_vrshlsv4si */
    case 2034:  /* neon_vshluv4si */
    case 2033:  /* neon_vshlsv4si */
    case 2032:  /* neon_vrshluv2si */
    case 2031:  /* neon_vrshlsv2si */
    case 2030:  /* neon_vshluv2si */
    case 2029:  /* neon_vshlsv2si */
    case 2028:  /* neon_vrshluv8hi */
    case 2027:  /* neon_vrshlsv8hi */
    case 2026:  /* neon_vshluv8hi */
    case 2025:  /* neon_vshlsv8hi */
    case 2024:  /* neon_vrshluv4hi */
    case 2023:  /* neon_vrshlsv4hi */
    case 2022:  /* neon_vshluv4hi */
    case 2021:  /* neon_vshlsv4hi */
    case 2020:  /* neon_vrshluv16qi */
    case 2019:  /* neon_vrshlsv16qi */
    case 2018:  /* neon_vshluv16qi */
    case 2017:  /* neon_vshlsv16qi */
    case 2016:  /* neon_vrshluv8qi */
    case 2015:  /* neon_vrshlsv8qi */
    case 2014:  /* neon_vshluv8qi */
    case 2013:  /* neon_vshlsv8qi */
    case 1883:  /* neon_vcvtu_nv8hi */
    case 1882:  /* neon_vcvts_nv8hi */
    case 1881:  /* neon_vcvtu_nv4hi */
    case 1880:  /* neon_vcvts_nv4hi */
    case 1879:  /* neon_vcvtu_nv4si */
    case 1878:  /* neon_vcvts_nv4si */
    case 1877:  /* neon_vcvtu_nv2si */
    case 1876:  /* neon_vcvts_nv2si */
    case 1875:  /* neon_vcvtu_nv4hf */
    case 1874:  /* neon_vcvts_nv4hf */
    case 1873:  /* neon_vcvtu_nv8hf */
    case 1872:  /* neon_vcvts_nv8hf */
    case 1871:  /* neon_vcvtu_nv4sf */
    case 1870:  /* neon_vcvts_nv4sf */
    case 1869:  /* neon_vcvtu_nv2sf */
    case 1868:  /* neon_vcvts_nv2sf */
    case 1743:  /* neon_vrsqrtsv4hf */
    case 1742:  /* neon_vrsqrtsv8hf */
    case 1741:  /* neon_vrsqrtsv4sf */
    case 1740:  /* neon_vrsqrtsv2sf */
    case 1739:  /* neon_vrecpsv4hf */
    case 1738:  /* neon_vrecpsv8hf */
    case 1737:  /* neon_vrecpsv4sf */
    case 1736:  /* neon_vrecpsv2sf */
    case 1735:  /* neon_vpminfv4sf */
    case 1734:  /* neon_vpmaxfv4sf */
    case 1733:  /* neon_vpminfv2sf */
    case 1732:  /* neon_vpmaxfv2sf */
    case 1731:  /* neon_vpminuv2si */
    case 1730:  /* neon_vpminsv2si */
    case 1729:  /* neon_vpmaxuv2si */
    case 1728:  /* neon_vpmaxsv2si */
    case 1727:  /* neon_vpminuv4hi */
    case 1726:  /* neon_vpminsv4hi */
    case 1725:  /* neon_vpmaxuv4hi */
    case 1724:  /* neon_vpmaxsv4hi */
    case 1723:  /* neon_vpminuv8qi */
    case 1722:  /* neon_vpminsv8qi */
    case 1721:  /* neon_vpmaxuv8qi */
    case 1720:  /* neon_vpmaxsv8qi */
    case 1719:  /* neon_vpadaluv4si */
    case 1718:  /* neon_vpadalsv4si */
    case 1717:  /* neon_vpadaluv2si */
    case 1716:  /* neon_vpadalsv2si */
    case 1715:  /* neon_vpadaluv8hi */
    case 1714:  /* neon_vpadalsv8hi */
    case 1713:  /* neon_vpadaluv4hi */
    case 1712:  /* neon_vpadalsv4hi */
    case 1711:  /* neon_vpadaluv16qi */
    case 1710:  /* neon_vpadalsv16qi */
    case 1709:  /* neon_vpadaluv8qi */
    case 1708:  /* neon_vpadalsv8qi */
    case 1695:  /* fminv4sf3 */
    case 1694:  /* fmaxv4sf3 */
    case 1693:  /* fminv2sf3 */
    case 1692:  /* fmaxv2sf3 */
    case 1691:  /* neon_vminnmv4hf */
    case 1690:  /* neon_vmaxnmv4hf */
    case 1689:  /* neon_vminnmv8hf */
    case 1688:  /* neon_vmaxnmv8hf */
    case 1687:  /* neon_vpminfv4hf */
    case 1686:  /* neon_vpmaxfv4hf */
    case 1685:  /* neon_vminfv4hf */
    case 1684:  /* neon_vmaxfv4hf */
    case 1683:  /* neon_vminfv8hf */
    case 1682:  /* neon_vmaxfv8hf */
    case 1681:  /* neon_vminfv4sf */
    case 1680:  /* neon_vmaxfv4sf */
    case 1679:  /* neon_vminfv2sf */
    case 1678:  /* neon_vmaxfv2sf */
    case 1677:  /* neon_vminuv4si */
    case 1676:  /* neon_vminsv4si */
    case 1675:  /* neon_vmaxuv4si */
    case 1674:  /* neon_vmaxsv4si */
    case 1673:  /* neon_vminuv2si */
    case 1672:  /* neon_vminsv2si */
    case 1671:  /* neon_vmaxuv2si */
    case 1670:  /* neon_vmaxsv2si */
    case 1669:  /* neon_vminuv8hi */
    case 1668:  /* neon_vminsv8hi */
    case 1667:  /* neon_vmaxuv8hi */
    case 1666:  /* neon_vmaxsv8hi */
    case 1665:  /* neon_vminuv4hi */
    case 1664:  /* neon_vminsv4hi */
    case 1663:  /* neon_vmaxuv4hi */
    case 1662:  /* neon_vmaxsv4hi */
    case 1661:  /* neon_vminuv16qi */
    case 1660:  /* neon_vminsv16qi */
    case 1659:  /* neon_vmaxuv16qi */
    case 1658:  /* neon_vmaxsv16qi */
    case 1657:  /* neon_vminuv8qi */
    case 1656:  /* neon_vminsv8qi */
    case 1655:  /* neon_vmaxuv8qi */
    case 1654:  /* neon_vmaxsv8qi */
    case 1635:  /* neon_vabdluv2si */
    case 1634:  /* neon_vabdlsv2si */
    case 1633:  /* neon_vabdluv4hi */
    case 1632:  /* neon_vabdlsv4hi */
    case 1631:  /* neon_vabdluv8qi */
    case 1630:  /* neon_vabdlsv8qi */
    case 1629:  /* neon_vabdfv4sf */
    case 1628:  /* neon_vabdfv2sf */
    case 1627:  /* neon_vabdv4hf */
    case 1626:  /* neon_vabdv8hf */
    case 1625:  /* neon_vabduv4si */
    case 1624:  /* neon_vabdsv4si */
    case 1623:  /* neon_vabduv2si */
    case 1622:  /* neon_vabdsv2si */
    case 1621:  /* neon_vabduv8hi */
    case 1620:  /* neon_vabdsv8hi */
    case 1619:  /* neon_vabduv4hi */
    case 1618:  /* neon_vabdsv4hi */
    case 1617:  /* neon_vabduv16qi */
    case 1616:  /* neon_vabdsv16qi */
    case 1615:  /* neon_vabduv8qi */
    case 1614:  /* neon_vabdsv8qi */
    case 1613:  /* neon_vtstv4si */
    case 1612:  /* neon_vtstv2si */
    case 1611:  /* neon_vtstv8hi */
    case 1610:  /* neon_vtstv4hi */
    case 1609:  /* neon_vtstv16qi */
    case 1608:  /* neon_vtstv8qi */
    case 1607:  /* neon_vcaltv4hf_fp16insn_unspec */
    case 1606:  /* neon_vcalev4hf_fp16insn_unspec */
    case 1605:  /* neon_vcagtv4hf_fp16insn_unspec */
    case 1604:  /* neon_vcagev4hf_fp16insn_unspec */
    case 1603:  /* neon_vcaltv8hf_fp16insn_unspec */
    case 1602:  /* neon_vcalev8hf_fp16insn_unspec */
    case 1601:  /* neon_vcagtv8hf_fp16insn_unspec */
    case 1600:  /* neon_vcagev8hf_fp16insn_unspec */
    case 1591:  /* neon_vcagtv4sf_insn_unspec */
    case 1590:  /* neon_vcagev4sf_insn_unspec */
    case 1589:  /* neon_vcagtv2sf_insn_unspec */
    case 1588:  /* neon_vcagev2sf_insn_unspec */
    case 1571:  /* neon_vclev4hf_fp16insn_unspec */
    case 1570:  /* neon_vcltv4hf_fp16insn_unspec */
    case 1569:  /* neon_vcgev4hf_fp16insn_unspec */
    case 1568:  /* neon_vcgtv4hf_fp16insn_unspec */
    case 1567:  /* neon_vceqv4hf_fp16insn_unspec */
    case 1566:  /* neon_vclev8hf_fp16insn_unspec */
    case 1565:  /* neon_vcltv8hf_fp16insn_unspec */
    case 1564:  /* neon_vcgev8hf_fp16insn_unspec */
    case 1563:  /* neon_vcgtv8hf_fp16insn_unspec */
    case 1562:  /* neon_vceqv8hf_fp16insn_unspec */
    case 1551:  /* neon_vclev4sf_insn_unspec */
    case 1550:  /* neon_vcltv4sf_insn_unspec */
    case 1549:  /* neon_vcgev4sf_insn_unspec */
    case 1548:  /* neon_vcgtv4sf_insn_unspec */
    case 1547:  /* neon_vceqv4sf_insn_unspec */
    case 1546:  /* neon_vclev2sf_insn_unspec */
    case 1545:  /* neon_vcltv2sf_insn_unspec */
    case 1544:  /* neon_vcgev2sf_insn_unspec */
    case 1543:  /* neon_vcgtv2sf_insn_unspec */
    case 1542:  /* neon_vceqv2sf_insn_unspec */
    case 1501:  /* neon_vrsubhnv2di */
    case 1500:  /* neon_vsubhnv2di */
    case 1499:  /* neon_vrsubhnv4si */
    case 1498:  /* neon_vsubhnv4si */
    case 1497:  /* neon_vrsubhnv8hi */
    case 1496:  /* neon_vsubhnv8hi */
    case 1495:  /* neon_vhsubuv4si */
    case 1494:  /* neon_vhsubsv4si */
    case 1493:  /* neon_vhsubuv2si */
    case 1492:  /* neon_vhsubsv2si */
    case 1491:  /* neon_vhsubuv8hi */
    case 1490:  /* neon_vhsubsv8hi */
    case 1489:  /* neon_vhsubuv4hi */
    case 1488:  /* neon_vhsubsv4hi */
    case 1487:  /* neon_vhsubuv16qi */
    case 1486:  /* neon_vhsubsv16qi */
    case 1485:  /* neon_vhsubuv8qi */
    case 1484:  /* neon_vhsubsv8qi */
    case 1483:  /* neon_vqsubuv2di */
    case 1482:  /* neon_vqsubsv2di */
    case 1481:  /* neon_vqsubudi */
    case 1480:  /* neon_vqsubsdi */
    case 1479:  /* neon_vqsubuv4si */
    case 1478:  /* neon_vqsubsv4si */
    case 1477:  /* neon_vqsubuv2si */
    case 1476:  /* neon_vqsubsv2si */
    case 1475:  /* neon_vqsubuv8hi */
    case 1474:  /* neon_vqsubsv8hi */
    case 1473:  /* neon_vqsubuv4hi */
    case 1472:  /* neon_vqsubsv4hi */
    case 1471:  /* neon_vqsubuv16qi */
    case 1470:  /* neon_vqsubsv16qi */
    case 1469:  /* neon_vqsubuv8qi */
    case 1468:  /* neon_vqsubsv8qi */
    case 1467:  /* neon_vsubwuv2si */
    case 1466:  /* neon_vsubwsv2si */
    case 1465:  /* neon_vsubwuv4hi */
    case 1464:  /* neon_vsubwsv4hi */
    case 1463:  /* neon_vsubwuv8qi */
    case 1462:  /* neon_vsubwsv8qi */
    case 1461:  /* neon_vsubluv2si */
    case 1460:  /* neon_vsublsv2si */
    case 1459:  /* neon_vsubluv4hi */
    case 1458:  /* neon_vsublsv4hi */
    case 1457:  /* neon_vsubluv8qi */
    case 1456:  /* neon_vsublsv8qi */
    case 1455:  /* neon_vsubv4sf_unspec */
    case 1454:  /* neon_vsubv2sf_unspec */
    case 1453:  /* neon_vqdmullv2si */
    case 1452:  /* neon_vqdmullv4hi */
    case 1451:  /* neon_vmullpv2si */
    case 1450:  /* neon_vmulluv2si */
    case 1449:  /* neon_vmullsv2si */
    case 1448:  /* neon_vmullpv4hi */
    case 1447:  /* neon_vmulluv4hi */
    case 1446:  /* neon_vmullsv4hi */
    case 1445:  /* neon_vmullpv8qi */
    case 1444:  /* neon_vmulluv8qi */
    case 1443:  /* neon_vmullsv8qi */
    case 1430:  /* neon_vqrdmulhv4si */
    case 1429:  /* neon_vqdmulhv4si */
    case 1428:  /* neon_vqrdmulhv8hi */
    case 1427:  /* neon_vqdmulhv8hi */
    case 1426:  /* neon_vqrdmulhv2si */
    case 1425:  /* neon_vqdmulhv2si */
    case 1424:  /* neon_vqrdmulhv4hi */
    case 1423:  /* neon_vqdmulhv4hi */
    case 1392:  /* neon_vmulfv4sf */
    case 1391:  /* neon_vmulfv2sf */
    case 1390:  /* neon_vmulpv16qi */
    case 1389:  /* neon_vmulpv8qi */
    case 1388:  /* neon_vraddhnv2di */
    case 1387:  /* neon_vaddhnv2di */
    case 1386:  /* neon_vraddhnv4si */
    case 1385:  /* neon_vaddhnv4si */
    case 1384:  /* neon_vraddhnv8hi */
    case 1383:  /* neon_vaddhnv8hi */
    case 1382:  /* neon_vqadduv2di */
    case 1381:  /* neon_vqaddsv2di */
    case 1380:  /* neon_vqaddudi */
    case 1379:  /* neon_vqaddsdi */
    case 1378:  /* neon_vqadduv4si */
    case 1377:  /* neon_vqaddsv4si */
    case 1376:  /* neon_vqadduv2si */
    case 1375:  /* neon_vqaddsv2si */
    case 1374:  /* neon_vqadduv8hi */
    case 1373:  /* neon_vqaddsv8hi */
    case 1372:  /* neon_vqadduv4hi */
    case 1371:  /* neon_vqaddsv4hi */
    case 1370:  /* neon_vqadduv16qi */
    case 1369:  /* neon_vqaddsv16qi */
    case 1368:  /* neon_vqadduv8qi */
    case 1367:  /* neon_vqaddsv8qi */
    case 1366:  /* neon_vhadduv4si */
    case 1365:  /* neon_vhaddsv4si */
    case 1364:  /* neon_vrhadduv4si */
    case 1363:  /* neon_vrhaddsv4si */
    case 1362:  /* neon_vhadduv2si */
    case 1361:  /* neon_vhaddsv2si */
    case 1360:  /* neon_vrhadduv2si */
    case 1359:  /* neon_vrhaddsv2si */
    case 1358:  /* neon_vhadduv8hi */
    case 1357:  /* neon_vhaddsv8hi */
    case 1356:  /* neon_vrhadduv8hi */
    case 1355:  /* neon_vrhaddsv8hi */
    case 1354:  /* neon_vhadduv4hi */
    case 1353:  /* neon_vhaddsv4hi */
    case 1352:  /* neon_vrhadduv4hi */
    case 1351:  /* neon_vrhaddsv4hi */
    case 1350:  /* neon_vhadduv16qi */
    case 1349:  /* neon_vhaddsv16qi */
    case 1348:  /* neon_vrhadduv16qi */
    case 1347:  /* neon_vrhaddsv16qi */
    case 1346:  /* neon_vhadduv8qi */
    case 1345:  /* neon_vhaddsv8qi */
    case 1344:  /* neon_vrhadduv8qi */
    case 1343:  /* neon_vrhaddsv8qi */
    case 1342:  /* neon_vaddwuv2si */
    case 1341:  /* neon_vaddwsv2si */
    case 1340:  /* neon_vaddwuv4hi */
    case 1339:  /* neon_vaddwsv4hi */
    case 1338:  /* neon_vaddwuv8qi */
    case 1337:  /* neon_vaddwsv8qi */
    case 1336:  /* neon_vaddluv2si */
    case 1335:  /* neon_vaddlsv2si */
    case 1334:  /* neon_vaddluv4hi */
    case 1333:  /* neon_vaddlsv4hi */
    case 1332:  /* neon_vaddluv8qi */
    case 1331:  /* neon_vaddlsv8qi */
    case 1330:  /* neon_vaddv4sf_unspec */
    case 1329:  /* neon_vaddv2sf_unspec */
    case 1312:  /* neon_vpumaxv2si */
    case 1311:  /* neon_vpumaxv4hi */
    case 1310:  /* neon_vpumaxv8qi */
    case 1309:  /* neon_vpuminv2si */
    case 1308:  /* neon_vpuminv4hi */
    case 1307:  /* neon_vpuminv8qi */
    case 1306:  /* neon_vpsmaxv2sf */
    case 1305:  /* neon_vpsmaxv2si */
    case 1304:  /* neon_vpsmaxv4hi */
    case 1303:  /* neon_vpsmaxv8qi */
    case 1302:  /* neon_vpsminv2sf */
    case 1301:  /* neon_vpsminv2si */
    case 1300:  /* neon_vpsminv4hi */
    case 1299:  /* neon_vpsminv8qi */
    case 1298:  /* neon_vpaddv4hf */
    case 1297:  /* neon_vpadd_internalv2sf */
    case 1296:  /* neon_vpadd_internalv2si */
    case 1295:  /* neon_vpadd_internalv4hi */
    case 1294:  /* neon_vpadd_internalv8qi */
    case 1228:  /* unsigned_shift_di3_neon */
    case 1227:  /* signed_shift_di3_neon */
    case 1223:  /* ashlv2di3_unsigned */
    case 1222:  /* ashlv4si3_unsigned */
    case 1221:  /* ashlv2si3_unsigned */
    case 1220:  /* ashlv8hi3_unsigned */
    case 1219:  /* ashlv4hi3_unsigned */
    case 1218:  /* ashlv16qi3_unsigned */
    case 1217:  /* ashlv8qi3_unsigned */
    case 1216:  /* ashlv2di3_signed */
    case 1215:  /* ashlv4si3_signed */
    case 1214:  /* ashlv2si3_signed */
    case 1213:  /* ashlv8hi3_signed */
    case 1212:  /* ashlv4hi3_signed */
    case 1211:  /* ashlv16qi3_signed */
    case 1210:  /* ashlv8qi3_signed */
    case 780:  /* fmindf3 */
    case 779:  /* fmaxdf3 */
    case 778:  /* fminsf3 */
    case 777:  /* fmaxsf3 */
    case 776:  /* neon_vminnmhf */
    case 775:  /* neon_vmaxnmhf */
    case 713:  /* neon_vrsqrtshf */
    case 586:  /* iwmmxt_wqmulwmr */
    case 585:  /* iwmmxt_wqmulmr */
    case 584:  /* iwmmxt_wqmulwm */
    case 583:  /* iwmmxt_wqmulm */
    case 559:  /* iwmmxt_wsadhz */
    case 558:  /* iwmmxt_wsadbz */
    case 475:  /* gtv2si3 */
    case 474:  /* gtv4hi3 */
    case 473:  /* gtv8qi3 */
    case 472:  /* gtuv2si3 */
    case 471:  /* gtuv4hi3 */
    case 470:  /* gtuv8qi3 */
    case 469:  /* eqv2si3 */
    case 468:  /* eqv4hi3 */
    case 467:  /* eqv8qi3 */
    case 466:  /* iwmmxt_wshufh */
    case 449:  /* iwmmxt_wmacuz */
    case 447:  /* iwmmxt_wmacsz */
    case 344:  /* crc32cw */
    case 343:  /* crc32ch */
    case 342:  /* crc32cb */
    case 341:  /* crc32w */
    case 340:  /* crc32h */
    case 339:  /* crc32b */
    case 232:  /* probe_stack_range */
    case 183:  /* pic_load_addr_unified */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      ro[2] = *(ro_loc[2] = &XVECEXP (XEXP (pat, 1), 0, 1));
      break;

    case 924:  /* *neon_movxi */
    case 923:  /* *neon_movci */
    case 922:  /* *neon_movoi */
    case 921:  /* *neon_movei */
    case 920:  /* *neon_movti */
    case 919:  /* *neon_movv2di */
    case 918:  /* *neon_movv4sf */
    case 917:  /* *neon_movv4si */
    case 916:  /* *neon_movv8hf */
    case 915:  /* *neon_movv8hi */
    case 914:  /* *neon_movv16qi */
    case 913:  /* *neon_movdi */
    case 912:  /* *neon_movv2sf */
    case 911:  /* *neon_movv2si */
    case 910:  /* *neon_movv4hf */
    case 909:  /* *neon_movv4hi */
    case 908:  /* *neon_movv8qi */
    case 857:  /* *thumb2_movhi_insn */
    case 855:  /* *thumb2_movsi_insn */
    case 813:  /* *thumb_movdf_insn */
    case 812:  /* *thumb1_movsf_insn */
    case 811:  /* *thumb1_movhf */
    case 810:  /* *thumb1_movqi_insn */
    case 809:  /* *thumb1_movhi_insn */
    case 808:  /* *thumb1_movsi_insn */
    case 807:  /* *thumb1_movdi_insn */
    case 640:  /* *thumb2_movdf_vfp */
    case 639:  /* *movdf_vfp */
    case 638:  /* *thumb2_movsf_vfp */
    case 637:  /* *movsf_vfp */
    case 636:  /* *movhf_vfp */
    case 635:  /* *movhf_vfp_neon */
    case 634:  /* *movhf_vfp_fp16 */
    case 633:  /* *movdi_vfp_cortexa8 */
    case 632:  /* *movdi_vfp */
    case 631:  /* *thumb2_movsi_vfp */
    case 630:  /* *arm_movsi_vfp */
    case 629:  /* *thumb2_movhi_fp16 */
    case 628:  /* *arm_movhi_fp16 */
    case 627:  /* *thumb2_movhi_vfp */
    case 626:  /* *arm_movhi_vfp */
    case 415:  /* movv8qi_internal */
    case 414:  /* movv4hi_internal */
    case 413:  /* movv2si_internal */
    case 411:  /* *iwmmxt_movsi_insn */
    case 410:  /* *iwmmxt_arm_movdi */
    case 195:  /* *movdf_soft_insn */
    case 194:  /* *arm_movsf_soft_insn */
    case 193:  /* *arm32_movhf */
    case 192:  /* *arm_movqi_insn */
    case 191:  /* *movhi_bytes */
    case 190:  /* *movhi_insn_arch4 */
    case 182:  /* *arm_movsi_insn */
    case 180:  /* *arm_movdi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (pat, 1));
      break;

    case 832:  /* *thumb_jump */
    case 214:  /* *arm_jump */
    case 172:  /* *compareqi_eq0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 159:  /* *notsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      break;

    case 158:  /* *notsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 853:  /* *thumb2_neg_abssi2 */
    case 155:  /* *arm_neg_abssi2 */
    case 153:  /* *negdi_zero_extendsidi */
    case 152:  /* *negdi_extendsidi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      break;

    case 707:  /* fixuns_truncdfsi2 */
    case 706:  /* fixuns_truncsfsi2 */
    case 705:  /* *truncsidf2_vfp */
    case 704:  /* *truncsisf2_vfp */
    case 511:  /* iwmmxt_wunpckelsw */
    case 510:  /* iwmmxt_wunpckelsh */
    case 509:  /* iwmmxt_wunpckelsb */
    case 508:  /* iwmmxt_wunpckeluw */
    case 507:  /* iwmmxt_wunpckeluh */
    case 506:  /* iwmmxt_wunpckelub */
    case 505:  /* iwmmxt_wunpckehsw */
    case 504:  /* iwmmxt_wunpckehsh */
    case 503:  /* iwmmxt_wunpckehsb */
    case 502:  /* iwmmxt_wunpckehuw */
    case 501:  /* iwmmxt_wunpckehuh */
    case 500:  /* iwmmxt_wunpckehub */
    case 329:  /* *arm_revsh */
    case 151:  /* *zextendsidi_negsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 149:  /* *negsi2_carryin_compare */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[0] = 1;
      break;

    case 147:  /* negdi2_compare */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[0] = 1;
      break;

    case 1030:  /* fmav4hf4_intrinsic */
    case 1029:  /* fmav8hf4_intrinsic */
    case 1028:  /* fmav4sf4_intrinsic */
    case 1027:  /* fmav2sf4_intrinsic */
    case 1026:  /* fmav4sf4 */
    case 1025:  /* fmav2sf4 */
    case 690:  /* fmadf4 */
    case 689:  /* fmasf4 */
    case 688:  /* fmahf4 */
    case 144:  /* extzv_t2 */
    case 143:  /* *extv_reg */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 2));
      break;

    case 2653:  /* arm_load_acquire_exclusivehi */
    case 2652:  /* arm_load_acquire_exclusiveqi */
    case 2651:  /* arm_load_exclusivehi */
    case 2650:  /* arm_load_exclusiveqi */
    case 1060:  /* neon_vcvtauv4sfv4si */
    case 1059:  /* neon_vcvtmuv4sfv4si */
    case 1058:  /* neon_vcvtpuv4sfv4si */
    case 1057:  /* neon_vcvtav4sfv4si */
    case 1056:  /* neon_vcvtmv4sfv4si */
    case 1055:  /* neon_vcvtpv4sfv4si */
    case 1054:  /* neon_vcvtauv2sfv2si */
    case 1053:  /* neon_vcvtmuv2sfv2si */
    case 1052:  /* neon_vcvtpuv2sfv2si */
    case 1051:  /* neon_vcvtav2sfv2si */
    case 1050:  /* neon_vcvtmv2sfv2si */
    case 1049:  /* neon_vcvtpv2sfv2si */
    case 770:  /* lroundudfsi2 */
    case 769:  /* lfloorudfsi2 */
    case 768:  /* lceiludfsi2 */
    case 767:  /* lrounddfsi2 */
    case 766:  /* lfloordfsi2 */
    case 765:  /* lceildfsi2 */
    case 764:  /* lroundusfsi2 */
    case 763:  /* lfloorusfsi2 */
    case 762:  /* lceilusfsi2 */
    case 761:  /* lroundsfsi2 */
    case 760:  /* lfloorsfsi2 */
    case 759:  /* lceilsfsi2 */
    case 140:  /* unaligned_loadhiu */
    case 139:  /* unaligned_loadhis */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (XEXP (pat, 1), 0), 0, 0));
      break;

    case 2657:  /* arm_load_acquire_exclusivedi */
    case 2656:  /* arm_load_exclusivedi */
    case 2655:  /* arm_load_acquire_exclusivesi */
    case 2654:  /* arm_load_exclusivesi */
    case 2569:  /* arm_atomic_loaddi2_ldrd */
    case 2548:  /* crypto_aesimc */
    case 2547:  /* crypto_aesmc */
    case 2467:  /* neon_vst4qbv4sf */
    case 2466:  /* neon_vst4qbv4si */
    case 2465:  /* neon_vst4qbv8hf */
    case 2464:  /* neon_vst4qbv8hi */
    case 2463:  /* neon_vst4qbv16qi */
    case 2462:  /* neon_vst4qav4sf */
    case 2461:  /* neon_vst4qav4si */
    case 2460:  /* neon_vst4qav8hf */
    case 2459:  /* neon_vst4qav8hi */
    case 2458:  /* neon_vst4qav16qi */
    case 2457:  /* neon_vst4di */
    case 2456:  /* neon_vst4v2sf */
    case 2455:  /* neon_vst4v2si */
    case 2454:  /* neon_vst4v4hf */
    case 2453:  /* neon_vst4v4hi */
    case 2452:  /* neon_vst4v8qi */
    case 2451:  /* neon_vld4_dupdi */
    case 2450:  /* neon_vld4_dupv2sf */
    case 2449:  /* neon_vld4_dupv2si */
    case 2448:  /* neon_vld4_dupv4hf */
    case 2447:  /* neon_vld4_dupv4hi */
    case 2446:  /* neon_vld4_dupv8qi */
    case 2431:  /* neon_vld4qav4sf */
    case 2430:  /* neon_vld4qav4si */
    case 2429:  /* neon_vld4qav8hf */
    case 2428:  /* neon_vld4qav8hi */
    case 2427:  /* neon_vld4qav16qi */
    case 2426:  /* neon_vld4di */
    case 2425:  /* neon_vld4v2sf */
    case 2424:  /* neon_vld4v2si */
    case 2423:  /* neon_vld4v4hf */
    case 2422:  /* neon_vld4v4hi */
    case 2421:  /* neon_vld4v8qi */
    case 2411:  /* neon_vst3qbv4sf */
    case 2410:  /* neon_vst3qbv4si */
    case 2409:  /* neon_vst3qbv8hf */
    case 2408:  /* neon_vst3qbv8hi */
    case 2407:  /* neon_vst3qbv16qi */
    case 2406:  /* neon_vst3qav4sf */
    case 2405:  /* neon_vst3qav4si */
    case 2404:  /* neon_vst3qav8hf */
    case 2403:  /* neon_vst3qav8hi */
    case 2402:  /* neon_vst3qav16qi */
    case 2401:  /* neon_vst3di */
    case 2400:  /* neon_vst3v2sf */
    case 2399:  /* neon_vst3v2si */
    case 2398:  /* neon_vst3v4hf */
    case 2397:  /* neon_vst3v4hi */
    case 2396:  /* neon_vst3v8qi */
    case 2395:  /* neon_vld3_dupdi */
    case 2394:  /* neon_vld3_dupv2sf */
    case 2393:  /* neon_vld3_dupv2si */
    case 2392:  /* neon_vld3_dupv4hf */
    case 2391:  /* neon_vld3_dupv4hi */
    case 2390:  /* neon_vld3_dupv8qi */
    case 2375:  /* neon_vld3qav4sf */
    case 2374:  /* neon_vld3qav4si */
    case 2373:  /* neon_vld3qav8hf */
    case 2372:  /* neon_vld3qav8hi */
    case 2371:  /* neon_vld3qav16qi */
    case 2370:  /* neon_vld3di */
    case 2369:  /* neon_vld3v2sf */
    case 2368:  /* neon_vld3v2si */
    case 2367:  /* neon_vld3v4hf */
    case 2366:  /* neon_vld3v4hi */
    case 2365:  /* neon_vld3v8qi */
    case 2355:  /* neon_vst2v4sf */
    case 2354:  /* neon_vst2v4si */
    case 2353:  /* neon_vst2v8hf */
    case 2352:  /* neon_vst2v8hi */
    case 2351:  /* neon_vst2v16qi */
    case 2350:  /* neon_vst2di */
    case 2349:  /* neon_vst2v2sf */
    case 2348:  /* neon_vst2v2si */
    case 2347:  /* neon_vst2v4hf */
    case 2346:  /* neon_vst2v4hi */
    case 2345:  /* neon_vst2v8qi */
    case 2344:  /* neon_vld2_dupdi */
    case 2343:  /* neon_vld2_dupv2sf */
    case 2342:  /* neon_vld2_dupv2si */
    case 2341:  /* neon_vld2_dupv4hf */
    case 2340:  /* neon_vld2_dupv4hi */
    case 2339:  /* neon_vld2_dupv8qi */
    case 2329:  /* neon_vld2v4sf */
    case 2328:  /* neon_vld2v4si */
    case 2327:  /* neon_vld2v8hf */
    case 2326:  /* neon_vld2v8hi */
    case 2325:  /* neon_vld2v16qi */
    case 2324:  /* neon_vld2di */
    case 2323:  /* neon_vld2v2sf */
    case 2322:  /* neon_vld2v2si */
    case 2321:  /* neon_vld2v4hf */
    case 2320:  /* neon_vld2v4hi */
    case 2319:  /* neon_vld2v8qi */
    case 2306:  /* neon_vst1v2di */
    case 2305:  /* neon_vst1di */
    case 2304:  /* neon_vst1v4sf */
    case 2303:  /* neon_vst1v2sf */
    case 2302:  /* neon_vst1v8hf */
    case 2301:  /* neon_vst1v4hf */
    case 2300:  /* neon_vst1v4si */
    case 2299:  /* neon_vst1v2si */
    case 2298:  /* neon_vst1v8hi */
    case 2297:  /* neon_vst1v4hi */
    case 2296:  /* neon_vst1v16qi */
    case 2295:  /* neon_vst1v8qi */
    case 2271:  /* neon_vld1v2di */
    case 2270:  /* neon_vld1di */
    case 2269:  /* neon_vld1v4sf */
    case 2268:  /* neon_vld1v2sf */
    case 2267:  /* neon_vld1v8hf */
    case 2266:  /* neon_vld1v4hf */
    case 2265:  /* neon_vld1v4si */
    case 2264:  /* neon_vld1v2si */
    case 2263:  /* neon_vld1v8hi */
    case 2262:  /* neon_vld1v4hi */
    case 2261:  /* neon_vld1v16qi */
    case 2260:  /* neon_vld1v8qi */
    case 2000:  /* neon_vrev16v16qi */
    case 1999:  /* neon_vrev16v8qi */
    case 1998:  /* neon_vrev32v8hi */
    case 1997:  /* neon_vrev32v16qi */
    case 1996:  /* neon_vrev32v4hi */
    case 1995:  /* neon_vrev32v8qi */
    case 1994:  /* neon_vrev64v2di */
    case 1993:  /* neon_vrev64v4sf */
    case 1992:  /* neon_vrev64v2sf */
    case 1991:  /* neon_vrev64v8hf */
    case 1990:  /* neon_vrev64v4hf */
    case 1989:  /* neon_vrev64v4si */
    case 1988:  /* neon_vrev64v2si */
    case 1987:  /* neon_vrev64v8hi */
    case 1986:  /* neon_vrev64v4hi */
    case 1985:  /* neon_vrev64v16qi */
    case 1984:  /* neon_vrev64v8qi */
    case 1917:  /* neon_vmovluv2si */
    case 1916:  /* neon_vmovlsv2si */
    case 1915:  /* neon_vmovluv4hi */
    case 1914:  /* neon_vmovlsv4hi */
    case 1913:  /* neon_vmovluv8qi */
    case 1912:  /* neon_vmovlsv8qi */
    case 1911:  /* neon_vqmovunv2di */
    case 1910:  /* neon_vqmovunv4si */
    case 1909:  /* neon_vqmovunv8hi */
    case 1908:  /* neon_vqmovnuv2di */
    case 1907:  /* neon_vqmovnsv2di */
    case 1906:  /* neon_vqmovnuv4si */
    case 1905:  /* neon_vqmovnsv4si */
    case 1904:  /* neon_vqmovnuv8hi */
    case 1903:  /* neon_vqmovnsv8hi */
    case 1902:  /* neon_vmovnv2di */
    case 1901:  /* neon_vmovnv4si */
    case 1900:  /* neon_vmovnv8hi */
    case 1899:  /* neon_vcvtpuv4hf */
    case 1898:  /* neon_vcvtpsv4hf */
    case 1897:  /* neon_vcvtnuv4hf */
    case 1896:  /* neon_vcvtnsv4hf */
    case 1895:  /* neon_vcvtmuv4hf */
    case 1894:  /* neon_vcvtmsv4hf */
    case 1893:  /* neon_vcvtauv4hf */
    case 1892:  /* neon_vcvtasv4hf */
    case 1891:  /* neon_vcvtpuv8hf */
    case 1890:  /* neon_vcvtpsv8hf */
    case 1889:  /* neon_vcvtnuv8hf */
    case 1888:  /* neon_vcvtnsv8hf */
    case 1887:  /* neon_vcvtmuv8hf */
    case 1886:  /* neon_vcvtmsv8hf */
    case 1885:  /* neon_vcvtauv8hf */
    case 1884:  /* neon_vcvtasv8hf */
    case 1867:  /* neon_vcvtuv4hf */
    case 1866:  /* neon_vcvtsv4hf */
    case 1865:  /* neon_vcvtuv8hf */
    case 1864:  /* neon_vcvtsv8hf */
    case 1863:  /* neon_vcvtuv8hi */
    case 1862:  /* neon_vcvtsv8hi */
    case 1861:  /* neon_vcvtuv4hi */
    case 1860:  /* neon_vcvtsv4hi */
    case 1859:  /* neon_vcvtv4hfv4sf */
    case 1858:  /* neon_vcvtv4sfv4hf */
    case 1857:  /* neon_vcvtuv4si */
    case 1856:  /* neon_vcvtsv4si */
    case 1855:  /* neon_vcvtuv2si */
    case 1854:  /* neon_vcvtsv2si */
    case 1853:  /* neon_vcvtuv4sf */
    case 1852:  /* neon_vcvtsv4sf */
    case 1851:  /* neon_vcvtuv2sf */
    case 1850:  /* neon_vcvtsv2sf */
    case 1784:  /* neon_vrsqrtev4sf */
    case 1783:  /* neon_vrsqrtev4si */
    case 1782:  /* neon_vrsqrtev2sf */
    case 1781:  /* neon_vrsqrtev2si */
    case 1780:  /* neon_vrecpev4sf */
    case 1779:  /* neon_vrecpev4si */
    case 1778:  /* neon_vrecpev2sf */
    case 1777:  /* neon_vrecpev2si */
    case 1776:  /* neon_vrecpev4hf */
    case 1775:  /* neon_vrecpev8hf */
    case 1766:  /* neon_vclsv4si */
    case 1765:  /* neon_vclsv2si */
    case 1764:  /* neon_vclsv8hi */
    case 1763:  /* neon_vclsv4hi */
    case 1762:  /* neon_vclsv16qi */
    case 1761:  /* neon_vclsv8qi */
    case 1760:  /* neon_vqnegv4si */
    case 1759:  /* neon_vqnegv2si */
    case 1758:  /* neon_vqnegv8hi */
    case 1757:  /* neon_vqnegv4hi */
    case 1756:  /* neon_vqnegv16qi */
    case 1755:  /* neon_vqnegv8qi */
    case 1749:  /* neon_vqabsv4si */
    case 1748:  /* neon_vqabsv2si */
    case 1747:  /* neon_vqabsv8hi */
    case 1746:  /* neon_vqabsv4hi */
    case 1745:  /* neon_vqabsv16qi */
    case 1744:  /* neon_vqabsv8qi */
    case 1707:  /* neon_vpaddluv4si */
    case 1706:  /* neon_vpaddlsv4si */
    case 1705:  /* neon_vpaddluv2si */
    case 1704:  /* neon_vpaddlsv2si */
    case 1703:  /* neon_vpaddluv8hi */
    case 1702:  /* neon_vpaddlsv8hi */
    case 1701:  /* neon_vpaddluv4hi */
    case 1700:  /* neon_vpaddlsv4hi */
    case 1699:  /* neon_vpaddluv16qi */
    case 1698:  /* neon_vpaddlsv16qi */
    case 1697:  /* neon_vpaddluv8qi */
    case 1696:  /* neon_vpaddlsv8qi */
    case 1293:  /* arm_reduc_plus_internal_v2di */
    case 1224:  /* neon_load_count */
    case 1163:  /* neon_vrsqrtev4hf */
    case 1162:  /* neon_vrsqrtev8hf */
    case 1161:  /* neon_vrndxv4hf */
    case 1160:  /* neon_vrndpv4hf */
    case 1159:  /* neon_vrndnv4hf */
    case 1158:  /* neon_vrndmv4hf */
    case 1157:  /* neon_vrndav4hf */
    case 1156:  /* neon_vrndv4hf */
    case 1155:  /* neon_vrndxv8hf */
    case 1154:  /* neon_vrndpv8hf */
    case 1153:  /* neon_vrndnv8hf */
    case 1152:  /* neon_vrndmv8hf */
    case 1151:  /* neon_vrndav8hf */
    case 1150:  /* neon_vrndv8hf */
    case 1048:  /* neon_vrintnv4sf */
    case 1047:  /* neon_vrintav4sf */
    case 1046:  /* neon_vrintxv4sf */
    case 1045:  /* neon_vrintmv4sf */
    case 1044:  /* neon_vrintzv4sf */
    case 1043:  /* neon_vrintpv4sf */
    case 1042:  /* neon_vrintnv2sf */
    case 1041:  /* neon_vrintav2sf */
    case 1040:  /* neon_vrintxv2sf */
    case 1039:  /* neon_vrintmv2sf */
    case 1038:  /* neon_vrintzv2sf */
    case 1037:  /* neon_vrintpv2sf */
    case 948:  /* *movmisalignv2di_neon_load */
    case 947:  /* *movmisalignv4sf_neon_load */
    case 946:  /* *movmisalignv4si_neon_load */
    case 945:  /* *movmisalignv8hf_neon_load */
    case 944:  /* *movmisalignv8hi_neon_load */
    case 943:  /* *movmisalignv16qi_neon_load */
    case 942:  /* *movmisalignv2di_neon_store */
    case 941:  /* *movmisalignv4sf_neon_store */
    case 940:  /* *movmisalignv4si_neon_store */
    case 939:  /* *movmisalignv8hf_neon_store */
    case 938:  /* *movmisalignv8hi_neon_store */
    case 937:  /* *movmisalignv16qi_neon_store */
    case 936:  /* *movmisaligndi_neon_load */
    case 935:  /* *movmisalignv2sf_neon_load */
    case 934:  /* *movmisalignv2si_neon_load */
    case 933:  /* *movmisalignv4hf_neon_load */
    case 932:  /* *movmisalignv4hi_neon_load */
    case 931:  /* *movmisalignv8qi_neon_load */
    case 930:  /* *movmisaligndi_neon_store */
    case 929:  /* *movmisalignv2sf_neon_store */
    case 928:  /* *movmisalignv2si_neon_store */
    case 927:  /* *movmisalignv4hf_neon_store */
    case 926:  /* *movmisalignv4hi_neon_store */
    case 925:  /* *movmisalignv8qi_neon_store */
    case 758:  /* rounddf2 */
    case 757:  /* rintdf2 */
    case 756:  /* nearbyintdf2 */
    case 755:  /* floordf2 */
    case 754:  /* ceildf2 */
    case 753:  /* btruncdf2 */
    case 752:  /* roundsf2 */
    case 751:  /* rintsf2 */
    case 750:  /* nearbyintsf2 */
    case 749:  /* floorsf2 */
    case 748:  /* ceilsf2 */
    case 747:  /* btruncsf2 */
    case 745:  /* neon_vcvtphusi */
    case 744:  /* neon_vcvtphssi */
    case 743:  /* neon_vcvtnhusi */
    case 742:  /* neon_vcvtnhssi */
    case 741:  /* neon_vcvtmhusi */
    case 740:  /* neon_vcvtmhssi */
    case 739:  /* neon_vcvtahusi */
    case 738:  /* neon_vcvtahssi */
    case 733:  /* neon_vcvthusi */
    case 732:  /* neon_vcvthssi */
    case 731:  /* neon_vcvthuhf */
    case 730:  /* neon_vcvthshf */
    case 657:  /* neon_vrndihf */
    case 656:  /* neon_vrndxhf */
    case 655:  /* neon_vrndphf */
    case 654:  /* neon_vrndnhf */
    case 653:  /* neon_vrndmhf */
    case 652:  /* neon_vrndahf */
    case 651:  /* neon_vrndhf */
    case 562:  /* iwmmxt_wabsv8qi3 */
    case 561:  /* iwmmxt_wabsv4hi3 */
    case 560:  /* iwmmxt_wabsv2si3 */
    case 549:  /* iwmmxt_waccw */
    case 548:  /* iwmmxt_wacch */
    case 547:  /* iwmmxt_waccb */
    case 546:  /* iwmmxt_tmovmskw */
    case 545:  /* iwmmxt_tmovmskh */
    case 544:  /* iwmmxt_tmovmskb */
    case 319:  /* rbitsi2 */
    case 185:  /* pic_load_addr_thumb1 */
    case 184:  /* pic_load_addr_32bit */
    case 142:  /* unaligned_storehi */
    case 141:  /* unaligned_storesi */
    case 138:  /* unaligned_loadsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XVECEXP (XEXP (pat, 1), 0, 0));
      break;

    case 137:  /* *not_shiftsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      break;

    case 136:  /* *not_shiftsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[2] = 1;
      break;

    case 135:  /* *not_shiftsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 134:  /* *shiftsi3_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 133:  /* *shiftsi3_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 1);
      recog_data.dup_num[0] = 3;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[2] = 1;
      break;

    case 132:  /* *arm_shiftsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 1));
      break;

    case 901:  /* *thumb2_negsi2_short */
    case 900:  /* *thumb2_one_cmplsi2_short */
    case 852:  /* *thumb2_abssi2 */
    case 851:  /* *thumb2_negdi2 */
    case 797:  /* *thumb1_negdi2 */
    case 154:  /* *arm_abssi2 */
    case 148:  /* *arm_negdi2 */
    case 131:  /* arm_lshrdi3_1bit */
    case 130:  /* arm_ashrdi3_1bit */
    case 129:  /* arm_ashldi3_1bit */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 128:  /* *satsi_smin_shift */
    case 127:  /* *satsi_smax_shift */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      break;

    case 126:  /* *satsi_smin */
    case 125:  /* *satsi_smax */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 876:  /* *thumb2_cond_sub */
    case 258:  /* *cond_sub */
    case 124:  /* *minmax_arithsi_non_canon */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 123:  /* *minmax_arithsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 0), 1));
      ro[5] = *(ro_loc[5] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      break;

    case 887:  /* *thumb2_shiftsi3_short */
    case 886:  /* *thumb2_alusi3_short */
    case 122:  /* *store_minmaxsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 0), 1));
      break;

    case 2723:  /* arm_usatsihi */
    case 2524:  /* neon_vec_pack_trunc_v2di */
    case 2523:  /* neon_vec_pack_trunc_v4si */
    case 2522:  /* neon_vec_pack_trunc_v8hi */
    case 2512:  /* neon_unpacku_v2si */
    case 2511:  /* neon_unpacks_v2si */
    case 2510:  /* neon_unpacku_v4hi */
    case 2509:  /* neon_unpacks_v4hi */
    case 2508:  /* neon_unpacku_v8qi */
    case 2507:  /* neon_unpacks_v8qi */
    case 2294:  /* neon_vld1_dupv2di */
    case 2293:  /* neon_vld1_dupv4sf */
    case 2292:  /* neon_vld1_dupv4si */
    case 2291:  /* neon_vld1_dupv8hf */
    case 2290:  /* neon_vld1_dupv8hi */
    case 2289:  /* neon_vld1_dupv16qi */
    case 2288:  /* neon_vld1_dupv2sf */
    case 2287:  /* neon_vld1_dupv2si */
    case 2286:  /* neon_vld1_dupv4hf */
    case 2285:  /* neon_vld1_dupv4hi */
    case 2284:  /* neon_vld1_dupv8qi */
    case 1849:  /* fixuns_truncv4sfv4si2 */
    case 1848:  /* fixuns_truncv2sfv2si2 */
    case 1847:  /* fix_truncv4sfv4si2 */
    case 1846:  /* fix_truncv2sfv2si2 */
    case 1845:  /* floatunsv4siv4sf2 */
    case 1844:  /* floatunsv2siv2sf2 */
    case 1843:  /* floatv4siv4sf2 */
    case 1842:  /* floatv2siv2sf2 */
    case 1813:  /* neon_vdup_nv2di */
    case 1812:  /* neon_vdup_nv4sf */
    case 1811:  /* neon_vdup_nv4si */
    case 1810:  /* neon_vdup_nv2sf */
    case 1809:  /* neon_vdup_nv2si */
    case 1808:  /* neon_vdup_nv8hf */
    case 1807:  /* neon_vdup_nv4hf */
    case 1806:  /* neon_vdup_nv8hi */
    case 1805:  /* neon_vdup_nv16qi */
    case 1804:  /* neon_vdup_nv4hi */
    case 1803:  /* neon_vdup_nv8qi */
    case 1774:  /* popcountv16qi2 */
    case 1773:  /* popcountv8qi2 */
    case 1772:  /* clzv4si2 */
    case 1771:  /* clzv2si2 */
    case 1770:  /* clzv8hi2 */
    case 1769:  /* clzv4hi2 */
    case 1768:  /* clzv16qi2 */
    case 1767:  /* clzv8qi2 */
    case 1754:  /* neon_bswapv2di */
    case 1753:  /* neon_bswapv4si */
    case 1752:  /* neon_bswapv2si */
    case 1751:  /* neon_bswapv8hi */
    case 1750:  /* neon_bswapv4hi */
    case 1149:  /* negv4hf2 */
    case 1148:  /* absv4hf2 */
    case 1147:  /* negv8hf2 */
    case 1146:  /* absv8hf2 */
    case 1144:  /* negv4sf2 */
    case 1143:  /* negv2sf2 */
    case 1142:  /* negv4si2 */
    case 1141:  /* negv2si2 */
    case 1140:  /* negv8hi2 */
    case 1139:  /* negv4hi2 */
    case 1138:  /* negv16qi2 */
    case 1137:  /* negv8qi2 */
    case 1136:  /* absv4sf2 */
    case 1135:  /* absv2sf2 */
    case 1134:  /* absv4si2 */
    case 1133:  /* absv2si2 */
    case 1132:  /* absv8hi2 */
    case 1131:  /* absv4hi2 */
    case 1130:  /* absv16qi2 */
    case 1129:  /* absv8qi2 */
    case 1128:  /* one_cmplv2di2 */
    case 1127:  /* one_cmplv4sf2 */
    case 1126:  /* one_cmplv2sf2 */
    case 1125:  /* one_cmplv8hf2 */
    case 1124:  /* one_cmplv4hf2 */
    case 1123:  /* one_cmplv4si2 */
    case 1122:  /* one_cmplv2si2 */
    case 1121:  /* one_cmplv8hi2 */
    case 1120:  /* one_cmplv4hi2 */
    case 1119:  /* one_cmplv16qi2 */
    case 1118:  /* one_cmplv8qi2 */
    case 881:  /* thumb2_zero_extendqisi2_v6 */
    case 880:  /* *thumb2_zero_extendhisi2_v6 */
    case 879:  /* *thumb2_extendqisi_v6 */
    case 806:  /* thumb1_extendqisi2 */
    case 804:  /* *thumb1_zero_extendqisi2_v6 */
    case 803:  /* *thumb1_zero_extendqisi2 */
    case 802:  /* *thumb1_zero_extendhisi2 */
    case 801:  /* *thumb1_one_cmplsi2 */
    case 798:  /* *thumb1_negsi2 */
    case 715:  /* *sqrtdf2_vfp */
    case 714:  /* *sqrtsf2_vfp */
    case 712:  /* neon_vsqrthf */
    case 711:  /* floatunssidf2 */
    case 710:  /* floatunssisf2 */
    case 709:  /* *floatsidf2_vfp */
    case 708:  /* *floatsisf2_vfp */
    case 703:  /* truncsfhf2 */
    case 702:  /* extendhfsf2 */
    case 701:  /* *truncdfsf2_vfp */
    case 700:  /* *extendsfdf2_vfp */
    case 650:  /* neghf2 */
    case 649:  /* abshf2 */
    case 648:  /* *negdf2_vfp */
    case 647:  /* *negsf2_vfp */
    case 646:  /* *absdf2_vfp */
    case 645:  /* *abssf2_vfp */
    case 405:  /* tbcstv2si */
    case 404:  /* tbcstv4hi */
    case 403:  /* tbcstv8qi */
    case 330:  /* *arm_rev16 */
    case 328:  /* *arm_rev */
    case 320:  /* ctzsi2 */
    case 318:  /* clzsi2 */
    case 178:  /* *arm_extendqisi_v6 */
    case 177:  /* *arm_extendqisi */
    case 176:  /* *arm_extendqihi_insn */
    case 174:  /* *arm_extendhisi2_v6 */
    case 173:  /* *arm_extendhisi2 */
    case 170:  /* *arm_zero_extendqisi2_v6 */
    case 169:  /* *arm_zero_extendqisi2 */
    case 167:  /* *arm_zero_extendhisi2_v6 */
    case 166:  /* *arm_zero_extendhisi2 */
    case 165:  /* extendsidi2 */
    case 164:  /* extendhidi2 */
    case 163:  /* extendqidi2 */
    case 162:  /* zero_extendsidi2 */
    case 161:  /* zero_extendhidi2 */
    case 160:  /* zero_extendqidi2 */
    case 157:  /* *arm_one_cmplsi2 */
    case 156:  /* one_cmpldi2 */
    case 150:  /* *arm_negsi2 */
    case 118:  /* *smin_0 */
    case 116:  /* *smax_m1 */
    case 115:  /* *smax_0 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 114:  /* *andsi_iorsi3_notsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 897:  /* *thumb2_mulsi_short_compare0_scratch */
    case 107:  /* *iorsi3_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      break;

    case 101:  /* *andsi_notsi_si_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      break;

    case 100:  /* *andsi_notsi_si_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 1;
      break;

    case 99:  /* andsi_not_shiftsi_si_scc */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 0;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0), 0);
      recog_data.dup_num[2] = 1;
      recog_data.dup_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[3] = 3;
      break;

    case 98:  /* andsi_not_shiftsi_si_scc_no_reuse */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 907:  /* *orsi_not_shiftsi_si */
    case 846:  /* *thumb_andsi_not_shiftsi_si */
    case 97:  /* andsi_not_shiftsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 904:  /* *iordi_notdi_zesidi */
    case 94:  /* *anddi_notdi_zesidi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 905:  /* *iordi_notsesidi_di */
    case 903:  /* *iordi_notzesidi_di */
    case 95:  /* *anddi_notsesidi_di */
    case 93:  /* *anddi_notzesidi_di */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      break;

    case 1274:  /* widen_usumv2si3 */
    case 1273:  /* widen_usumv4hi3 */
    case 1272:  /* widen_usumv8qi3 */
    case 1253:  /* widen_ssumv2si3 */
    case 1252:  /* widen_ssumv4hi3 */
    case 1251:  /* widen_ssumv8qi3 */
    case 902:  /* *iordi_notdi_di */
    case 790:  /* thumb1_bicsi3 */
    case 728:  /* *combine_vcvt_f64_s32 */
    case 727:  /* *combine_vcvt_f64_u32 */
    case 726:  /* *combine_vcvt_f32_s32 */
    case 725:  /* *combine_vcvt_f32_u32 */
    case 674:  /* *muldf3negdf_vfp */
    case 672:  /* *mulsf3negsf_vfp */
    case 670:  /* *mulsf3neghf_vfp */
    case 179:  /* *arm_extendqisi2addsi */
    case 175:  /* *arm_extendhisi2addsi */
    case 171:  /* *arm_zero_extendqisi2addsi */
    case 168:  /* *arm_zero_extendhisi2addsi */
    case 92:  /* *anddi_notdi_di */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 91:  /* insv_t2 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 2));
      ro[3] = *(ro_loc[3] = &XEXP (pat, 1));
      break;

    case 90:  /* insv_zero */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (pat, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 0), 2));
      break;

    case 89:  /* *ite_ne_zeroextractsi_shifted */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 88:  /* *ite_ne_zeroextractsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 2));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    case 86:  /* *ne_zeroextractsi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 2));
      break;

    case 85:  /* *zeroextractsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 2));
      break;

    case 84:  /* *andsi3_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 1106:  /* bicdi3_neon */
    case 1105:  /* bicv2di3_neon */
    case 1104:  /* bicv4sf3_neon */
    case 1103:  /* bicv2sf3_neon */
    case 1102:  /* bicv8hf3_neon */
    case 1101:  /* bicv4hf3_neon */
    case 1100:  /* bicv4si3_neon */
    case 1099:  /* bicv2si3_neon */
    case 1098:  /* bicv8hi3_neon */
    case 1097:  /* bicv4hi3_neon */
    case 1096:  /* bicv16qi3_neon */
    case 1095:  /* bicv8qi3_neon */
    case 1094:  /* orndi3_neon */
    case 1093:  /* ornv2di3_neon */
    case 1092:  /* ornv4sf3_neon */
    case 1091:  /* ornv2sf3_neon */
    case 1090:  /* ornv8hf3_neon */
    case 1089:  /* ornv4hf3_neon */
    case 1088:  /* ornv4si3_neon */
    case 1087:  /* ornv2si3_neon */
    case 1086:  /* ornv8hi3_neon */
    case 1085:  /* ornv4hi3_neon */
    case 1084:  /* ornv16qi3_neon */
    case 1083:  /* ornv8qi3_neon */
    case 906:  /* *orsi_notsi_si */
    case 110:  /* *xordi_sesidi_di */
    case 109:  /* *xordi_zesidi_di */
    case 104:  /* *iordi_sesidi_di */
    case 103:  /* *iordi_zesidi_di */
    case 96:  /* andsi_notsi_si */
    case 81:  /* *anddi_sesdi_di */
    case 80:  /* *anddi_zesidi_di */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      break;

    case 78:  /* *maddhidi4tt */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 77:  /* *maddhidi4tb */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 76:  /* maddhidi4 */
    case 75:  /* *maddhisi4tt */
    case 74:  /* *maddhisi4tb */
    case 73:  /* maddhisi4 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 68:  /* *umulsi3_highpart_v6 */
    case 67:  /* *umulsi3_highpart_nov6 */
    case 66:  /* *smulsi3_highpart_v6 */
    case 65:  /* *smulsi3_highpart_nov6 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XVECEXP (pat, 0, 1), 0));
      break;

    case 2521:  /* vec_pack_trunc_v2di */
    case 2520:  /* vec_pack_trunc_v4si */
    case 2519:  /* vec_pack_trunc_v8hi */
    case 2518:  /* neon_vec_umult_v2si */
    case 2517:  /* neon_vec_smult_v2si */
    case 2516:  /* neon_vec_umult_v4hi */
    case 2515:  /* neon_vec_smult_v4hi */
    case 2514:  /* neon_vec_umult_v8qi */
    case 2513:  /* neon_vec_smult_v8qi */
    case 499:  /* iwmmxt_wunpckilw */
    case 498:  /* iwmmxt_wunpckilh */
    case 497:  /* iwmmxt_wunpckilb */
    case 496:  /* iwmmxt_wunpckihw */
    case 495:  /* iwmmxt_wunpckihh */
    case 494:  /* iwmmxt_wunpckihb */
    case 493:  /* iwmmxt_wpackdus */
    case 492:  /* iwmmxt_wpackwus */
    case 491:  /* iwmmxt_wpackhus */
    case 490:  /* iwmmxt_wpackdss */
    case 489:  /* iwmmxt_wpackwss */
    case 488:  /* iwmmxt_wpackhss */
    case 72:  /* *mulhisi3tt */
    case 71:  /* *mulhisi3bt */
    case 70:  /* *mulhisi3tb */
    case 69:  /* mulhisi3 */
    case 62:  /* *umulsidi3_v6 */
    case 61:  /* *umulsidi3_nov6 */
    case 60:  /* *mulsidi3_v6 */
    case 59:  /* *mulsidi3_nov6 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      break;

    case 64:  /* *umulsidi3adddi_v6 */
    case 63:  /* *umulsidi3adddi */
    case 58:  /* *mulsidi3adddi_v6 */
    case 57:  /* *mulsidi3adddi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      break;

    case 56:  /* *mulsi3subsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 1), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 55:  /* *mulsi3addsi_compare0_scratch_v6 */
    case 54:  /* *mulsi3addsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      break;

    case 53:  /* *mulsi3addsi_compare0_v6 */
    case 52:  /* *mulsi3addsi_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[1] = 1;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[2] = 3;
      break;

    case 51:  /* *mulsi3addsi_v6 */
    case 50:  /* *mulsi3addsi */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 49:  /* *mulsi_compare0_scratch_v6 */
    case 48:  /* *mulsi_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      break;

    case 47:  /* *mulsi3_compare0_v6 */
    case 46:  /* *mulsi3_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 2;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 1;
      break;

    case 44:  /* *arm_mulsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 0));
      break;

    case 40:  /* *subdi_zesidi_zesidi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      break;

    case 37:  /* *subdi_di_sesidi */
    case 36:  /* *subdi_di_zesidi */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0));
      break;

    case 33:  /* *subsi3_carryin_shift */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 1), 1));
      break;

    case 32:  /* *subsi3_carryin_compare_const */
    case 31:  /* *subsi3_carryin_compare */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[1] = 2;
      break;

    case 43:  /* subsi3_compare */
    case 28:  /* subsi3_compare1 */
    case 27:  /* subdi3_compare1 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      break;

    case 87:  /* *ne_zeroextractsi_shifted */
    case 26:  /* *addsi3_carryin_clobercc_geu */
    case 25:  /* *addsi3_carryin_clobercc_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      break;

    case 34:  /* *rsbsi3_carryin_shift */
    case 24:  /* *addsi3_carryin_shift_geu */
    case 23:  /* *addsi3_carryin_shift_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 0));
      ro[4] = *(ro_loc[4] = &XEXP (XEXP (XEXP (XEXP (pat, 1), 0), 0), 1));
      break;

    case 22:  /* *addsi3_carryin_alt2_geu */
    case 21:  /* *addsi3_carryin_alt2_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 2535:  /* neon_vabdv2di_2 */
    case 2534:  /* neon_vabdv4sf_2 */
    case 2533:  /* neon_vabdv2sf_2 */
    case 2532:  /* neon_vabdv8hf_2 */
    case 2531:  /* neon_vabdv4hf_2 */
    case 2530:  /* neon_vabdv4si_2 */
    case 2529:  /* neon_vabdv2si_2 */
    case 2528:  /* neon_vabdv8hi_2 */
    case 2527:  /* neon_vabdv4hi_2 */
    case 2526:  /* neon_vabdv16qi_2 */
    case 2525:  /* neon_vabdv8qi_2 */
    case 2506:  /* neon_vec_ushiftl_v2si */
    case 2505:  /* neon_vec_sshiftl_v2si */
    case 2504:  /* neon_vec_ushiftl_v4hi */
    case 2503:  /* neon_vec_sshiftl_v4hi */
    case 2502:  /* neon_vec_ushiftl_v8qi */
    case 2501:  /* neon_vec_sshiftl_v8qi */
    case 2488:  /* neon_vec_unpacku_hi_v4si */
    case 2487:  /* neon_vec_unpacks_hi_v4si */
    case 2486:  /* neon_vec_unpacku_hi_v8hi */
    case 2485:  /* neon_vec_unpacks_hi_v8hi */
    case 2484:  /* neon_vec_unpacku_hi_v16qi */
    case 2483:  /* neon_vec_unpacks_hi_v16qi */
    case 2482:  /* neon_vec_unpacku_lo_v4si */
    case 2481:  /* neon_vec_unpacks_lo_v4si */
    case 2480:  /* neon_vec_unpacku_lo_v8hi */
    case 2479:  /* neon_vec_unpacks_lo_v8hi */
    case 2478:  /* neon_vec_unpacku_lo_v16qi */
    case 2477:  /* neon_vec_unpacks_lo_v16qi */
    case 1583:  /* neon_vcgeuv4si */
    case 1582:  /* neon_vcgtuv4si */
    case 1581:  /* neon_vcgeuv2si */
    case 1580:  /* neon_vcgtuv2si */
    case 1579:  /* neon_vcgeuv8hi */
    case 1578:  /* neon_vcgtuv8hi */
    case 1577:  /* neon_vcgeuv4hi */
    case 1576:  /* neon_vcgtuv4hi */
    case 1575:  /* neon_vcgeuv16qi */
    case 1574:  /* neon_vcgtuv16qi */
    case 1573:  /* neon_vcgeuv8qi */
    case 1572:  /* neon_vcgtuv8qi */
    case 1561:  /* neon_vcltv4hf_fp16insn */
    case 1560:  /* neon_vclev4hf_fp16insn */
    case 1559:  /* neon_vcgev4hf_fp16insn */
    case 1558:  /* neon_vcgtv4hf_fp16insn */
    case 1557:  /* neon_vceqv4hf_fp16insn */
    case 1556:  /* neon_vcltv8hf_fp16insn */
    case 1555:  /* neon_vclev8hf_fp16insn */
    case 1554:  /* neon_vcgev8hf_fp16insn */
    case 1553:  /* neon_vcgtv8hf_fp16insn */
    case 1552:  /* neon_vceqv8hf_fp16insn */
    case 1541:  /* neon_vcltv4sf_insn */
    case 1540:  /* neon_vclev4sf_insn */
    case 1539:  /* neon_vcgev4sf_insn */
    case 1538:  /* neon_vcgtv4sf_insn */
    case 1537:  /* neon_vceqv4sf_insn */
    case 1536:  /* neon_vcltv2sf_insn */
    case 1535:  /* neon_vclev2sf_insn */
    case 1534:  /* neon_vcgev2sf_insn */
    case 1533:  /* neon_vcgtv2sf_insn */
    case 1532:  /* neon_vceqv2sf_insn */
    case 1531:  /* neon_vcltv4si_insn */
    case 1530:  /* neon_vclev4si_insn */
    case 1529:  /* neon_vcgev4si_insn */
    case 1528:  /* neon_vcgtv4si_insn */
    case 1527:  /* neon_vceqv4si_insn */
    case 1526:  /* neon_vcltv2si_insn */
    case 1525:  /* neon_vclev2si_insn */
    case 1524:  /* neon_vcgev2si_insn */
    case 1523:  /* neon_vcgtv2si_insn */
    case 1522:  /* neon_vceqv2si_insn */
    case 1521:  /* neon_vcltv8hi_insn */
    case 1520:  /* neon_vclev8hi_insn */
    case 1519:  /* neon_vcgev8hi_insn */
    case 1518:  /* neon_vcgtv8hi_insn */
    case 1517:  /* neon_vceqv8hi_insn */
    case 1516:  /* neon_vcltv4hi_insn */
    case 1515:  /* neon_vclev4hi_insn */
    case 1514:  /* neon_vcgev4hi_insn */
    case 1513:  /* neon_vcgtv4hi_insn */
    case 1512:  /* neon_vceqv4hi_insn */
    case 1511:  /* neon_vcltv16qi_insn */
    case 1510:  /* neon_vclev16qi_insn */
    case 1509:  /* neon_vcgev16qi_insn */
    case 1508:  /* neon_vcgtv16qi_insn */
    case 1507:  /* neon_vceqv16qi_insn */
    case 1506:  /* neon_vcltv8qi_insn */
    case 1505:  /* neon_vclev8qi_insn */
    case 1504:  /* neon_vcgev8qi_insn */
    case 1503:  /* neon_vcgtv8qi_insn */
    case 1502:  /* neon_vceqv8qi_insn */
    case 829:  /* cstoresi_nltu_thumb1 */
    case 675:  /* *negmuldf3_vfp */
    case 673:  /* *negmulsf3_vfp */
    case 671:  /* *negmulhf3_vfp */
    case 30:  /* *subsi3_carryin_const */
    case 29:  /* *subsi3_carryin */
    case 20:  /* *addsi3_carryin_geu */
    case 19:  /* *addsi3_carryin_ltu */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 18:  /* *compare_addsi2_op1 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (pat, 1), 1);
      recog_data.dup_num[0] = 1;
      break;

    case 17:  /* *compare_addsi2_op0 */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (pat, 1), 1);
      recog_data.dup_num[0] = 0;
      break;

    case 16:  /* *addsi3_compare_op2 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1);
      recog_data.dup_num[2] = 2;
      break;

    case 15:  /* *addsi3_compare_op1 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1);
      recog_data.dup_num[2] = 1;
      break;

    case 14:  /* cmpsi2_addneg */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[3] = *(ro_loc[3] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      break;

    case 13:  /* *compare_negsi_si */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 894:  /* *thumb2_addsi3_compare0_scratch */
    case 113:  /* *xorsi3_compare0_scratch */
    case 12:  /* *addsi3_compare0_scratch */
      ro[0] = *(ro_loc[0] = &XEXP (XEXP (XEXP (pat, 1), 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (pat, 1), 0), 1));
      break;

    case 896:  /* *thumb2_mulsi_short_compare0 */
    case 893:  /* thumb2_addsi3_compare0 */
    case 112:  /* *xorsi3_compare0 */
    case 106:  /* *iorsi3_compare0 */
    case 83:  /* *andsi3_compare0 */
    case 42:  /* subsi3_compare0 */
    case 11:  /* addsi3_compare0 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      break;

    case 9:  /* *addsi3_compareC_upper */
    case 7:  /* *addsi3_compareV_upper */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0), 0);
      recog_data.dup_num[2] = 1;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0), 1);
      recog_data.dup_num[3] = 2;
      break;

    case 10:  /* addsi3_compareC */
    case 8:  /* adddi3_compareC */
    case 6:  /* addsi3_compareV */
    case 5:  /* adddi3_compareV */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 1), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 1), 0));
      recog_data.dup_loc[0] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 0);
      recog_data.dup_num[0] = 1;
      recog_data.dup_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 1), 1), 1);
      recog_data.dup_num[1] = 2;
      recog_data.dup_loc[2] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 0);
      recog_data.dup_num[2] = 1;
      recog_data.dup_loc[3] = &XEXP (XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1), 0), 1);
      recog_data.dup_num[3] = 2;
      break;

    case 2719:  /* sssubsa3 */
    case 2718:  /* sssubsq3 */
    case 2717:  /* sssubha3 */
    case 2716:  /* sssubv2ha3 */
    case 2715:  /* sssubhq3 */
    case 2714:  /* sssubqq3 */
    case 2713:  /* sssubv2hq3 */
    case 2712:  /* sssubv4qq3 */
    case 2711:  /* ussubuha3 */
    case 2710:  /* ussubv2uha3 */
    case 2709:  /* ussubuhq3 */
    case 2708:  /* ussubuqq3 */
    case 2707:  /* ussubv2uhq3 */
    case 2706:  /* ussubv4uqq3 */
    case 2705:  /* subv2ha3 */
    case 2704:  /* subv2hq3 */
    case 2703:  /* subv4qq3 */
    case 2702:  /* subusa3 */
    case 2701:  /* subuha3 */
    case 2700:  /* subsa3 */
    case 2699:  /* subha3 */
    case 2698:  /* subusq3 */
    case 2697:  /* subuhq3 */
    case 2696:  /* subuqq3 */
    case 2695:  /* subsq3 */
    case 2694:  /* subhq3 */
    case 2693:  /* subqq3 */
    case 2692:  /* ssaddsa3 */
    case 2691:  /* ssaddsq3 */
    case 2690:  /* ssaddha3 */
    case 2689:  /* ssaddv2ha3 */
    case 2688:  /* ssaddhq3 */
    case 2687:  /* ssaddqq3 */
    case 2686:  /* ssaddv2hq3 */
    case 2685:  /* ssaddv4qq3 */
    case 2684:  /* usadduha3 */
    case 2683:  /* usaddv2uha3 */
    case 2682:  /* usadduhq3 */
    case 2681:  /* usadduqq3 */
    case 2680:  /* usaddv2uhq3 */
    case 2679:  /* usaddv4uqq3 */
    case 2678:  /* addv2ha3 */
    case 2677:  /* addv2hq3 */
    case 2676:  /* addv4qq3 */
    case 2675:  /* addusa3 */
    case 2674:  /* adduha3 */
    case 2673:  /* addsa3 */
    case 2672:  /* addha3 */
    case 2671:  /* addusq3 */
    case 2670:  /* adduhq3 */
    case 2669:  /* adduqq3 */
    case 2668:  /* addsq3 */
    case 2667:  /* addhq3 */
    case 2666:  /* addqq3 */
    case 1841:  /* neon_vcombinedi */
    case 1840:  /* neon_vcombinev2sf */
    case 1839:  /* neon_vcombinev2si */
    case 1838:  /* neon_vcombinev4hf */
    case 1837:  /* neon_vcombinev4hi */
    case 1836:  /* neon_vcombinev8qi */
    case 1394:  /* neon_vmulfv4hf */
    case 1393:  /* neon_vmulfv8hf */
    case 1328:  /* *us_subv2sf_neon */
    case 1327:  /* *us_subv2si_neon */
    case 1326:  /* *us_subv4hi_neon */
    case 1325:  /* *us_subv8qi_neon */
    case 1324:  /* *ss_subv2sf_neon */
    case 1323:  /* *ss_subv2si_neon */
    case 1322:  /* *ss_subv4hi_neon */
    case 1321:  /* *ss_subv8qi_neon */
    case 1320:  /* *us_addv2sf_neon */
    case 1319:  /* *us_addv2si_neon */
    case 1318:  /* *us_addv4hi_neon */
    case 1317:  /* *us_addv8qi_neon */
    case 1316:  /* *ss_addv2sf_neon */
    case 1315:  /* *ss_addv2si_neon */
    case 1314:  /* *ss_addv4hi_neon */
    case 1313:  /* *ss_addv8qi_neon */
    case 1230:  /* lshrdi3_neon_imm_noclobber */
    case 1229:  /* ashrdi3_neon_imm_noclobber */
    case 1225:  /* ashldi3_neon_noclobber */
    case 1209:  /* vlshrv4si3_imm */
    case 1208:  /* vlshrv2si3_imm */
    case 1207:  /* vlshrv8hi3_imm */
    case 1206:  /* vlshrv4hi3_imm */
    case 1205:  /* vlshrv16qi3_imm */
    case 1204:  /* vlshrv8qi3_imm */
    case 1203:  /* vashrv4si3_imm */
    case 1202:  /* vashrv2si3_imm */
    case 1201:  /* vashrv8hi3_imm */
    case 1200:  /* vashrv4hi3_imm */
    case 1199:  /* vashrv16qi3_imm */
    case 1198:  /* vashrv8qi3_imm */
    case 1197:  /* vashlv4si3 */
    case 1196:  /* vashlv2si3 */
    case 1195:  /* vashlv8hi3 */
    case 1194:  /* vashlv4hi3 */
    case 1193:  /* vashlv16qi3 */
    case 1192:  /* vashlv8qi3 */
    case 1191:  /* *smaxv4sf3_neon */
    case 1190:  /* *smaxv2sf3_neon */
    case 1189:  /* *smaxv4si3_neon */
    case 1188:  /* *smaxv2si3_neon */
    case 1187:  /* *smaxv8hi3_neon */
    case 1186:  /* *smaxv4hi3_neon */
    case 1185:  /* *smaxv16qi3_neon */
    case 1184:  /* *smaxv8qi3_neon */
    case 1183:  /* *sminv4sf3_neon */
    case 1182:  /* *sminv2sf3_neon */
    case 1181:  /* *sminv4si3_neon */
    case 1180:  /* *sminv2si3_neon */
    case 1179:  /* *sminv8hi3_neon */
    case 1178:  /* *sminv4hi3_neon */
    case 1177:  /* *sminv16qi3_neon */
    case 1176:  /* *sminv8qi3_neon */
    case 1175:  /* *umaxv4si3_neon */
    case 1174:  /* *umaxv2si3_neon */
    case 1173:  /* *umaxv8hi3_neon */
    case 1172:  /* *umaxv4hi3_neon */
    case 1171:  /* *umaxv16qi3_neon */
    case 1170:  /* *umaxv8qi3_neon */
    case 1169:  /* *uminv4si3_neon */
    case 1168:  /* *uminv2si3_neon */
    case 1167:  /* *uminv8hi3_neon */
    case 1166:  /* *uminv4hi3_neon */
    case 1165:  /* *uminv16qi3_neon */
    case 1164:  /* *uminv8qi3_neon */
    case 1117:  /* xorv2di3 */
    case 1116:  /* xorv4sf3 */
    case 1115:  /* xorv2sf3 */
    case 1114:  /* xorv8hf3 */
    case 1113:  /* xorv4hf3 */
    case 1112:  /* xorv4si3 */
    case 1111:  /* xorv2si3 */
    case 1110:  /* xorv8hi3 */
    case 1109:  /* xorv4hi3 */
    case 1108:  /* xorv16qi3 */
    case 1107:  /* xorv8qi3 */
    case 1082:  /* andv2di3 */
    case 1081:  /* andv4sf3 */
    case 1080:  /* andv2sf3 */
    case 1079:  /* andv8hf3 */
    case 1078:  /* andv4hf3 */
    case 1077:  /* andv4si3 */
    case 1076:  /* andv2si3 */
    case 1075:  /* andv8hi3 */
    case 1074:  /* andv4hi3 */
    case 1073:  /* andv16qi3 */
    case 1072:  /* andv8qi3 */
    case 1071:  /* iorv2di3 */
    case 1070:  /* iorv4sf3 */
    case 1069:  /* iorv2sf3 */
    case 1068:  /* iorv8hf3 */
    case 1067:  /* iorv4hf3 */
    case 1066:  /* iorv4si3 */
    case 1065:  /* iorv2si3 */
    case 1064:  /* iorv8hi3 */
    case 1063:  /* iorv4hi3 */
    case 1062:  /* iorv16qi3 */
    case 1061:  /* iorv8qi3 */
    case 1006:  /* *mulv4sf3_neon */
    case 1005:  /* *mulv2sf3_neon */
    case 1004:  /* *mulv4si3_neon */
    case 1003:  /* *mulv2si3_neon */
    case 1002:  /* *mulv8hi3_neon */
    case 1001:  /* *mulv4hi3_neon */
    case 1000:  /* *mulv16qi3_neon */
    case 999:  /* *mulv8qi3_neon */
    case 997:  /* subv4hf3_fp16 */
    case 996:  /* subv8hf3_fp16 */
    case 995:  /* *subv2di3_neon */
    case 994:  /* *subv4sf3_neon */
    case 993:  /* *subv2sf3_neon */
    case 992:  /* *subv8hf3_neon */
    case 991:  /* *subv4hf3_neon */
    case 990:  /* *subv4si3_neon */
    case 989:  /* *subv2si3_neon */
    case 988:  /* *subv8hi3_neon */
    case 987:  /* *subv4hi3_neon */
    case 986:  /* *subv16qi3_neon */
    case 985:  /* *subv8qi3_neon */
    case 983:  /* addv4hf3_fp16 */
    case 982:  /* addv8hf3_fp16 */
    case 981:  /* *addv2di3_neon */
    case 980:  /* *addv4sf3_neon */
    case 979:  /* *addv2sf3_neon */
    case 978:  /* *addv8hf3_neon */
    case 977:  /* *addv4hf3_neon */
    case 976:  /* *addv4si3_neon */
    case 975:  /* *addv2si3_neon */
    case 974:  /* *addv8hi3_neon */
    case 973:  /* *addv4hi3_neon */
    case 972:  /* *addv16qi3_neon */
    case 971:  /* *addv8qi3_neon */
    case 830:  /* cstoresi_ltu_thumb1 */
    case 796:  /* *thumb1_rotrsi3 */
    case 795:  /* *thumb1_lshrsi3 */
    case 794:  /* *thumb1_ashrsi3 */
    case 793:  /* *thumb1_ashlsi3 */
    case 792:  /* *thumb1_xorsi3_insn */
    case 791:  /* *thumb1_iorsi3_insn */
    case 789:  /* *thumb1_andsi3_insn */
    case 788:  /* *thumb_mulsi3_v6 */
    case 787:  /* *thumb_mulsi3 */
    case 786:  /* thumb1_subsi3_insn */
    case 784:  /* *thumb1_addsi3 */
    case 774:  /* smindf3 */
    case 773:  /* sminsf3 */
    case 772:  /* smaxdf3 */
    case 771:  /* smaxsf3 */
    case 669:  /* *muldf3_vfp */
    case 668:  /* *mulsf3_vfp */
    case 667:  /* mulhf3 */
    case 666:  /* *divdf3_vfp */
    case 665:  /* *divsf3_vfp */
    case 664:  /* divhf3 */
    case 663:  /* *subdf3_vfp */
    case 662:  /* *subsf3_vfp */
    case 661:  /* subhf3 */
    case 660:  /* *adddf3_vfp */
    case 659:  /* *addsf3_vfp */
    case 658:  /* addhf3 */
    case 582:  /* iwmmxt_wmulwl */
    case 535:  /* ashldi3_di */
    case 534:  /* ashlv2si3_di */
    case 533:  /* ashlv4hi3_di */
    case 532:  /* lshrdi3_di */
    case 531:  /* lshrv2si3_di */
    case 530:  /* lshrv4hi3_di */
    case 529:  /* ashrdi3_di */
    case 528:  /* ashrv2si3_di */
    case 527:  /* ashrv4hi3_di */
    case 526:  /* rordi3_di */
    case 525:  /* rorv2si3_di */
    case 524:  /* rorv4hi3_di */
    case 523:  /* ashldi3_iwmmxt */
    case 522:  /* ashlv2si3_iwmmxt */
    case 521:  /* ashlv4hi3_iwmmxt */
    case 520:  /* lshrdi3_iwmmxt */
    case 519:  /* lshrv2si3_iwmmxt */
    case 518:  /* lshrv4hi3_iwmmxt */
    case 517:  /* ashrdi3_iwmmxt */
    case 516:  /* ashrv2si3_iwmmxt */
    case 515:  /* ashrv4hi3_iwmmxt */
    case 514:  /* rordi3 */
    case 513:  /* rorv2si3 */
    case 512:  /* rorv4hi3 */
    case 487:  /* *uminv8qi3_iwmmxt */
    case 486:  /* *uminv4hi3_iwmmxt */
    case 485:  /* *uminv2si3_iwmmxt */
    case 484:  /* *sminv8qi3_iwmmxt */
    case 483:  /* *sminv4hi3_iwmmxt */
    case 482:  /* *sminv2si3_iwmmxt */
    case 481:  /* *umaxv8qi3_iwmmxt */
    case 480:  /* *umaxv4hi3_iwmmxt */
    case 479:  /* *umaxv2si3_iwmmxt */
    case 478:  /* *smaxv8qi3_iwmmxt */
    case 477:  /* *smaxv4hi3_iwmmxt */
    case 476:  /* *smaxv2si3_iwmmxt */
    case 443:  /* *mulv4hi3_iwmmxt */
    case 442:  /* ussubv2si3 */
    case 441:  /* ussubv4hi3 */
    case 440:  /* ussubv8qi3 */
    case 439:  /* sssubv2si3 */
    case 438:  /* sssubv4hi3 */
    case 437:  /* sssubv8qi3 */
    case 436:  /* *subv8qi3_iwmmxt */
    case 435:  /* *subv4hi3_iwmmxt */
    case 434:  /* *subv2si3_iwmmxt */
    case 433:  /* usaddv2si3 */
    case 432:  /* usaddv4hi3 */
    case 431:  /* usaddv8qi3 */
    case 430:  /* ssaddv2si3 */
    case 429:  /* ssaddv4hi3 */
    case 428:  /* ssaddv8qi3 */
    case 427:  /* *addv8qi3_iwmmxt */
    case 426:  /* *addv4hi3_iwmmxt */
    case 425:  /* *addv2si3_iwmmxt */
    case 424:  /* *xorv8qi3_iwmmxt */
    case 423:  /* *xorv4hi3_iwmmxt */
    case 422:  /* *xorv2si3_iwmmxt */
    case 421:  /* *iorv8qi3_iwmmxt */
    case 420:  /* *iorv4hi3_iwmmxt */
    case 419:  /* *iorv2si3_iwmmxt */
    case 418:  /* *andv8qi3_iwmmxt */
    case 417:  /* *andv4hi3_iwmmxt */
    case 416:  /* *andv2si3_iwmmxt */
    case 408:  /* iwmmxt_anddi3 */
    case 407:  /* iwmmxt_xordi3 */
    case 406:  /* iwmmxt_iordi3 */
    case 181:  /* *arm_movt */
    case 146:  /* udivsi3 */
    case 145:  /* divsi3 */
    case 111:  /* *arm_xorsi3 */
    case 108:  /* *xordi3_insn */
    case 105:  /* *iorsi3_insn */
    case 102:  /* *iordi3_insn */
    case 82:  /* *arm_andsi3_insn */
    case 79:  /* *anddi3_insn */
    case 45:  /* *arm_mulsi3_v6 */
    case 41:  /* *arm_subsi3_insn */
    case 4:  /* *arm_addsi3 */
      ro[0] = *(ro_loc[0] = &XEXP (pat, 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (pat, 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (pat, 1), 1));
      break;

    case 39:  /* *subdi_sesidi_di */
    case 38:  /* *subdi_zesidi_di */
    case 3:  /* *adddi_zesidi_di */
    case 2:  /* *adddi_sesidi_di */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0), 0));
      break;

    case 998:  /* subdi3_neon */
    case 984:  /* adddi3_neon */
    case 895:  /* *thumb2_mulsi_short */
    case 892:  /* *thumb2_subsi_short */
    case 891:  /* *thumb2_addsi_short */
    case 850:  /* *thumb2_uminsi3 */
    case 849:  /* *thumb32_umaxsi3 */
    case 848:  /* *thumb2_sminsi3 */
    case 847:  /* *thumb2_smaxsi3 */
    case 785:  /* *thumb_subdi3 */
    case 783:  /* *thumb1_adddi3 */
    case 121:  /* *arm_uminsi3 */
    case 120:  /* *arm_umaxsi3 */
    case 119:  /* *arm_smin_insn */
    case 117:  /* *arm_smax_insn */
    case 35:  /* *arm_subdi3 */
    case 1:  /* *arm_adddi3 */
      ro[0] = *(ro_loc[0] = &XEXP (XVECEXP (pat, 0, 0), 0));
      ro[1] = *(ro_loc[1] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 0));
      ro[2] = *(ro_loc[2] = &XEXP (XEXP (XVECEXP (pat, 0, 0), 1), 1));
      break;

    }
}
