Home | History | Annotate | Line # | Download | only in nios2
ldstwm.md revision 1.1
      1 /* Nios II R2 CDX ldwm/stwm/push.h/pop.n instruction patterns.
      2    This file was automatically generated using nios2-ldstwm.sml.
      3    Please do not edit manually.
      4 
      5    Copyright (C) 2014-2016 Free Software Foundation, Inc.
      6    Contributed by Mentor Graphics.
      7 
      8    This file is part of GCC.
      9 
     10    GCC is free software; you can redistribute it and/or modify it
     11    under the terms of the GNU General Public License as published
     12    by the Free Software Foundation; either version 3, or (at your
     13    option) any later version.
     14 
     15    GCC is distributed in the hope that it will be useful, but WITHOUT
     16    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
     17    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
     18    License for more details.
     19 
     20    You should have received a copy of the GNU General Public License and
     21    a copy of the GCC Runtime Library Exception along with this program;
     22    see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
     23    <http://www.gnu.org/licenses/>.  */
     24 
     25 (define_insn "*cdx_push_ra_fp"
     26   [(match_parallel 0 ""
     27     [(set (reg:SI SP_REGNO)
     28           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
     29      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
     30      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))])]
     31    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3
     32     && (-INTVAL (operands[1]) & 3) == 0
     33     && (-INTVAL (operands[1]) - 8) <= 60"
     34 {
     35   operands[2] = GEN_INT (-INTVAL (operands[1]) - 8);
     36   return "push.n\\t{ra, fp}, %2";
     37 }
     38   [(set_attr "type" "push")])
     39 
     40 (define_insn "*cdx_push_ra"
     41   [(match_parallel 0 ""
     42     [(set (reg:SI SP_REGNO)
     43           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
     44      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))])]
     45    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2
     46     && (-INTVAL (operands[1]) & 3) == 0
     47     && (-INTVAL (operands[1]) - 4) <= 60"
     48 {
     49   operands[2] = GEN_INT (-INTVAL (operands[1]) - 4);
     50   return "push.n\\t{ra}, %2";
     51 }
     52   [(set_attr "type" "push")])
     53 
     54 (define_insn "*cdx_pop_fp_ra"
     55   [(match_parallel 0 "pop_operation"
     56     [(return)
     57      (set (reg:SI SP_REGNO)
     58           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
     59      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
     60      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))])]
     61    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
     62 {
     63   rtx x = XEXP (operands[3], 0);
     64   operands[3] = REG_P (x) ? const0_rtx : XEXP (x, 1);
     65   return "pop.n\\t{fp, ra}, %3";
     66 }
     67   [(set_attr "type" "pop")])
     68 
     69 (define_insn "*cdx_pop_ra"
     70   [(match_parallel 0 "pop_operation"
     71     [(return)
     72      (set (reg:SI SP_REGNO)
     73           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
     74      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))])]
     75    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
     76 {
     77   rtx x = XEXP (operands[2], 0);
     78   operands[2] = REG_P (x) ? const0_rtx : XEXP (x, 1);
     79   return "pop.n\\t{ra}, %2";
     80 }
     81   [(set_attr "type" "pop")])
     82 
     83 (define_insn "*cdx_push_ra_fp_r16"
     84   [(match_parallel 0 ""
     85     [(set (reg:SI SP_REGNO)
     86           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
     87      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
     88      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
     89      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 16))])]
     90    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4
     91     && (-INTVAL (operands[1]) & 3) == 0
     92     && (-INTVAL (operands[1]) - 12) <= 60"
     93 {
     94   operands[2] = GEN_INT (-INTVAL (operands[1]) - 12);
     95   return "push.n\\t{ra, fp, r16}, %2";
     96 }
     97   [(set_attr "type" "push")])
     98 
     99 (define_insn "*cdx_push_ra_r16"
    100   [(match_parallel 0 ""
    101     [(set (reg:SI SP_REGNO)
    102           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    103      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    104      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 16))])]
    105    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3
    106     && (-INTVAL (operands[1]) & 3) == 0
    107     && (-INTVAL (operands[1]) - 8) <= 60"
    108 {
    109   operands[2] = GEN_INT (-INTVAL (operands[1]) - 8);
    110   return "push.n\\t{ra, r16}, %2";
    111 }
    112   [(set_attr "type" "push")])
    113 
    114 (define_insn "*cdx_pop_r16_fp_ra"
    115   [(match_parallel 0 "pop_operation"
    116     [(return)
    117      (set (reg:SI SP_REGNO)
    118           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    119      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    120      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    121      (set (reg:SI 16) (match_operand:SI 4 "stack_memory_operand" ""))])]
    122    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
    123 {
    124   rtx x = XEXP (operands[4], 0);
    125   operands[4] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    126   return "pop.n\\t{r16, fp, ra}, %4";
    127 }
    128   [(set_attr "type" "pop")])
    129 
    130 (define_insn "*cdx_pop_r16_ra"
    131   [(match_parallel 0 "pop_operation"
    132     [(return)
    133      (set (reg:SI SP_REGNO)
    134           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    135      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    136      (set (reg:SI 16) (match_operand:SI 3 "stack_memory_operand" ""))])]
    137    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    138 {
    139   rtx x = XEXP (operands[3], 0);
    140   operands[3] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    141   return "pop.n\\t{r16, ra}, %3";
    142 }
    143   [(set_attr "type" "pop")])
    144 
    145 (define_insn "*cdx_push_ra_fp_r17_r16"
    146   [(match_parallel 0 ""
    147     [(set (reg:SI SP_REGNO)
    148           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    149      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    150      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    151      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 17))
    152      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 16))])]
    153    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5
    154     && (-INTVAL (operands[1]) & 3) == 0
    155     && (-INTVAL (operands[1]) - 16) <= 60"
    156 {
    157   operands[2] = GEN_INT (-INTVAL (operands[1]) - 16);
    158   return "push.n\\t{ra, fp, r17, r16}, %2";
    159 }
    160   [(set_attr "type" "push")])
    161 
    162 (define_insn "*cdx_push_ra_r17_r16"
    163   [(match_parallel 0 ""
    164     [(set (reg:SI SP_REGNO)
    165           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    166      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    167      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 17))
    168      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 16))])]
    169    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4
    170     && (-INTVAL (operands[1]) & 3) == 0
    171     && (-INTVAL (operands[1]) - 12) <= 60"
    172 {
    173   operands[2] = GEN_INT (-INTVAL (operands[1]) - 12);
    174   return "push.n\\t{ra, r17, r16}, %2";
    175 }
    176   [(set_attr "type" "push")])
    177 
    178 (define_insn "*cdx_pop_r16_r17_fp_ra"
    179   [(match_parallel 0 "pop_operation"
    180     [(return)
    181      (set (reg:SI SP_REGNO)
    182           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    183      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    184      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    185      (set (reg:SI 17) (match_operand:SI 4 "stack_memory_operand" ""))
    186      (set (reg:SI 16) (match_operand:SI 5 "stack_memory_operand" ""))])]
    187    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
    188 {
    189   rtx x = XEXP (operands[5], 0);
    190   operands[5] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    191   return "pop.n\\t{r16, r17, fp, ra}, %5";
    192 }
    193   [(set_attr "type" "pop")])
    194 
    195 (define_insn "*cdx_pop_r16_r17_ra"
    196   [(match_parallel 0 "pop_operation"
    197     [(return)
    198      (set (reg:SI SP_REGNO)
    199           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    200      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    201      (set (reg:SI 17) (match_operand:SI 3 "stack_memory_operand" ""))
    202      (set (reg:SI 16) (match_operand:SI 4 "stack_memory_operand" ""))])]
    203    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
    204 {
    205   rtx x = XEXP (operands[4], 0);
    206   operands[4] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    207   return "pop.n\\t{r16, r17, ra}, %4";
    208 }
    209   [(set_attr "type" "pop")])
    210 
    211 (define_insn "*cdx_push_ra_fp_r18_r17_r16"
    212   [(match_parallel 0 ""
    213     [(set (reg:SI SP_REGNO)
    214           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    215      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    216      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    217      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 18))
    218      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 17))
    219      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 16))])]
    220    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6
    221     && (-INTVAL (operands[1]) & 3) == 0
    222     && (-INTVAL (operands[1]) - 20) <= 60"
    223 {
    224   operands[2] = GEN_INT (-INTVAL (operands[1]) - 20);
    225   return "push.n\\t{ra, fp, r18, r17, r16}, %2";
    226 }
    227   [(set_attr "type" "push")])
    228 
    229 (define_insn "*cdx_push_ra_r18_r17_r16"
    230   [(match_parallel 0 ""
    231     [(set (reg:SI SP_REGNO)
    232           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    233      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    234      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 18))
    235      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 17))
    236      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 16))])]
    237    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5
    238     && (-INTVAL (operands[1]) & 3) == 0
    239     && (-INTVAL (operands[1]) - 16) <= 60"
    240 {
    241   operands[2] = GEN_INT (-INTVAL (operands[1]) - 16);
    242   return "push.n\\t{ra, r18, r17, r16}, %2";
    243 }
    244   [(set_attr "type" "push")])
    245 
    246 (define_insn "*cdx_pop_r16_r17_r18_fp_ra"
    247   [(match_parallel 0 "pop_operation"
    248     [(return)
    249      (set (reg:SI SP_REGNO)
    250           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    251      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    252      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    253      (set (reg:SI 18) (match_operand:SI 4 "stack_memory_operand" ""))
    254      (set (reg:SI 17) (match_operand:SI 5 "stack_memory_operand" ""))
    255      (set (reg:SI 16) (match_operand:SI 6 "stack_memory_operand" ""))])]
    256    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
    257 {
    258   rtx x = XEXP (operands[6], 0);
    259   operands[6] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    260   return "pop.n\\t{r16, r17, r18, fp, ra}, %6";
    261 }
    262   [(set_attr "type" "pop")])
    263 
    264 (define_insn "*cdx_pop_r16_r17_r18_ra"
    265   [(match_parallel 0 "pop_operation"
    266     [(return)
    267      (set (reg:SI SP_REGNO)
    268           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    269      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    270      (set (reg:SI 18) (match_operand:SI 3 "stack_memory_operand" ""))
    271      (set (reg:SI 17) (match_operand:SI 4 "stack_memory_operand" ""))
    272      (set (reg:SI 16) (match_operand:SI 5 "stack_memory_operand" ""))])]
    273    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
    274 {
    275   rtx x = XEXP (operands[5], 0);
    276   operands[5] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    277   return "pop.n\\t{r16, r17, r18, ra}, %5";
    278 }
    279   [(set_attr "type" "pop")])
    280 
    281 (define_insn "*cdx_push_ra_fp_r19_r18_r17_r16"
    282   [(match_parallel 0 ""
    283     [(set (reg:SI SP_REGNO)
    284           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    285      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    286      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    287      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 19))
    288      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 18))
    289      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 17))
    290      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 16))])]
    291    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7
    292     && (-INTVAL (operands[1]) & 3) == 0
    293     && (-INTVAL (operands[1]) - 24) <= 60"
    294 {
    295   operands[2] = GEN_INT (-INTVAL (operands[1]) - 24);
    296   return "push.n\\t{ra, fp, r19, r18, r17, r16}, %2";
    297 }
    298   [(set_attr "type" "push")])
    299 
    300 (define_insn "*cdx_push_ra_r19_r18_r17_r16"
    301   [(match_parallel 0 ""
    302     [(set (reg:SI SP_REGNO)
    303           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    304      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    305      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 19))
    306      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 18))
    307      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 17))
    308      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 16))])]
    309    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6
    310     && (-INTVAL (operands[1]) & 3) == 0
    311     && (-INTVAL (operands[1]) - 20) <= 60"
    312 {
    313   operands[2] = GEN_INT (-INTVAL (operands[1]) - 20);
    314   return "push.n\\t{ra, r19, r18, r17, r16}, %2";
    315 }
    316   [(set_attr "type" "push")])
    317 
    318 (define_insn "*cdx_pop_r16_r17_r18_r19_fp_ra"
    319   [(match_parallel 0 "pop_operation"
    320     [(return)
    321      (set (reg:SI SP_REGNO)
    322           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    323      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    324      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    325      (set (reg:SI 19) (match_operand:SI 4 "stack_memory_operand" ""))
    326      (set (reg:SI 18) (match_operand:SI 5 "stack_memory_operand" ""))
    327      (set (reg:SI 17) (match_operand:SI 6 "stack_memory_operand" ""))
    328      (set (reg:SI 16) (match_operand:SI 7 "stack_memory_operand" ""))])]
    329    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
    330 {
    331   rtx x = XEXP (operands[7], 0);
    332   operands[7] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    333   return "pop.n\\t{r16, r17, r18, r19, fp, ra}, %7";
    334 }
    335   [(set_attr "type" "pop")])
    336 
    337 (define_insn "*cdx_pop_r16_r17_r18_r19_ra"
    338   [(match_parallel 0 "pop_operation"
    339     [(return)
    340      (set (reg:SI SP_REGNO)
    341           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    342      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    343      (set (reg:SI 19) (match_operand:SI 3 "stack_memory_operand" ""))
    344      (set (reg:SI 18) (match_operand:SI 4 "stack_memory_operand" ""))
    345      (set (reg:SI 17) (match_operand:SI 5 "stack_memory_operand" ""))
    346      (set (reg:SI 16) (match_operand:SI 6 "stack_memory_operand" ""))])]
    347    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
    348 {
    349   rtx x = XEXP (operands[6], 0);
    350   operands[6] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    351   return "pop.n\\t{r16, r17, r18, r19, ra}, %6";
    352 }
    353   [(set_attr "type" "pop")])
    354 
    355 (define_insn "*cdx_push_ra_fp_r20_r19_r18_r17_r16"
    356   [(match_parallel 0 ""
    357     [(set (reg:SI SP_REGNO)
    358           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    359      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    360      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    361      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 20))
    362      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 19))
    363      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 18))
    364      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 17))
    365      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 16))])]
    366    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8
    367     && (-INTVAL (operands[1]) & 3) == 0
    368     && (-INTVAL (operands[1]) - 28) <= 60"
    369 {
    370   operands[2] = GEN_INT (-INTVAL (operands[1]) - 28);
    371   return "push.n\\t{ra, fp, r20, r19, r18, r17, r16}, %2";
    372 }
    373   [(set_attr "type" "push")])
    374 
    375 (define_insn "*cdx_push_ra_r20_r19_r18_r17_r16"
    376   [(match_parallel 0 ""
    377     [(set (reg:SI SP_REGNO)
    378           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    379      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    380      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 20))
    381      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 19))
    382      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 18))
    383      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 17))
    384      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 16))])]
    385    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7
    386     && (-INTVAL (operands[1]) & 3) == 0
    387     && (-INTVAL (operands[1]) - 24) <= 60"
    388 {
    389   operands[2] = GEN_INT (-INTVAL (operands[1]) - 24);
    390   return "push.n\\t{ra, r20, r19, r18, r17, r16}, %2";
    391 }
    392   [(set_attr "type" "push")])
    393 
    394 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_fp_ra"
    395   [(match_parallel 0 "pop_operation"
    396     [(return)
    397      (set (reg:SI SP_REGNO)
    398           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    399      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    400      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    401      (set (reg:SI 20) (match_operand:SI 4 "stack_memory_operand" ""))
    402      (set (reg:SI 19) (match_operand:SI 5 "stack_memory_operand" ""))
    403      (set (reg:SI 18) (match_operand:SI 6 "stack_memory_operand" ""))
    404      (set (reg:SI 17) (match_operand:SI 7 "stack_memory_operand" ""))
    405      (set (reg:SI 16) (match_operand:SI 8 "stack_memory_operand" ""))])]
    406    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
    407 {
    408   rtx x = XEXP (operands[8], 0);
    409   operands[8] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    410   return "pop.n\\t{r16, r17, r18, r19, r20, fp, ra}, %8";
    411 }
    412   [(set_attr "type" "pop")])
    413 
    414 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_ra"
    415   [(match_parallel 0 "pop_operation"
    416     [(return)
    417      (set (reg:SI SP_REGNO)
    418           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    419      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    420      (set (reg:SI 20) (match_operand:SI 3 "stack_memory_operand" ""))
    421      (set (reg:SI 19) (match_operand:SI 4 "stack_memory_operand" ""))
    422      (set (reg:SI 18) (match_operand:SI 5 "stack_memory_operand" ""))
    423      (set (reg:SI 17) (match_operand:SI 6 "stack_memory_operand" ""))
    424      (set (reg:SI 16) (match_operand:SI 7 "stack_memory_operand" ""))])]
    425    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
    426 {
    427   rtx x = XEXP (operands[7], 0);
    428   operands[7] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    429   return "pop.n\\t{r16, r17, r18, r19, r20, ra}, %7";
    430 }
    431   [(set_attr "type" "pop")])
    432 
    433 (define_insn "*cdx_push_ra_fp_r21_r20_r19_r18_r17_r16"
    434   [(match_parallel 0 ""
    435     [(set (reg:SI SP_REGNO)
    436           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    437      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    438      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    439      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 21))
    440      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 20))
    441      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 19))
    442      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 18))
    443      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 17))
    444      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -32))) (reg:SI 16))])]
    445    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9
    446     && (-INTVAL (operands[1]) & 3) == 0
    447     && (-INTVAL (operands[1]) - 32) <= 60"
    448 {
    449   operands[2] = GEN_INT (-INTVAL (operands[1]) - 32);
    450   return "push.n\\t{ra, fp, r21, r20, r19, r18, r17, r16}, %2";
    451 }
    452   [(set_attr "type" "push")])
    453 
    454 (define_insn "*cdx_push_ra_r21_r20_r19_r18_r17_r16"
    455   [(match_parallel 0 ""
    456     [(set (reg:SI SP_REGNO)
    457           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    458      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    459      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 21))
    460      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 20))
    461      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 19))
    462      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 18))
    463      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 17))
    464      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 16))])]
    465    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8
    466     && (-INTVAL (operands[1]) & 3) == 0
    467     && (-INTVAL (operands[1]) - 28) <= 60"
    468 {
    469   operands[2] = GEN_INT (-INTVAL (operands[1]) - 28);
    470   return "push.n\\t{ra, r21, r20, r19, r18, r17, r16}, %2";
    471 }
    472   [(set_attr "type" "push")])
    473 
    474 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_fp_ra"
    475   [(match_parallel 0 "pop_operation"
    476     [(return)
    477      (set (reg:SI SP_REGNO)
    478           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    479      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    480      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    481      (set (reg:SI 21) (match_operand:SI 4 "stack_memory_operand" ""))
    482      (set (reg:SI 20) (match_operand:SI 5 "stack_memory_operand" ""))
    483      (set (reg:SI 19) (match_operand:SI 6 "stack_memory_operand" ""))
    484      (set (reg:SI 18) (match_operand:SI 7 "stack_memory_operand" ""))
    485      (set (reg:SI 17) (match_operand:SI 8 "stack_memory_operand" ""))
    486      (set (reg:SI 16) (match_operand:SI 9 "stack_memory_operand" ""))])]
    487    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
    488 {
    489   rtx x = XEXP (operands[9], 0);
    490   operands[9] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    491   return "pop.n\\t{r16, r17, r18, r19, r20, r21, fp, ra}, %9";
    492 }
    493   [(set_attr "type" "pop")])
    494 
    495 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_ra"
    496   [(match_parallel 0 "pop_operation"
    497     [(return)
    498      (set (reg:SI SP_REGNO)
    499           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    500      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    501      (set (reg:SI 21) (match_operand:SI 3 "stack_memory_operand" ""))
    502      (set (reg:SI 20) (match_operand:SI 4 "stack_memory_operand" ""))
    503      (set (reg:SI 19) (match_operand:SI 5 "stack_memory_operand" ""))
    504      (set (reg:SI 18) (match_operand:SI 6 "stack_memory_operand" ""))
    505      (set (reg:SI 17) (match_operand:SI 7 "stack_memory_operand" ""))
    506      (set (reg:SI 16) (match_operand:SI 8 "stack_memory_operand" ""))])]
    507    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
    508 {
    509   rtx x = XEXP (operands[8], 0);
    510   operands[8] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    511   return "pop.n\\t{r16, r17, r18, r19, r20, r21, ra}, %8";
    512 }
    513   [(set_attr "type" "pop")])
    514 
    515 (define_insn "*cdx_push_ra_fp_r22_r21_r20_r19_r18_r17_r16"
    516   [(match_parallel 0 ""
    517     [(set (reg:SI SP_REGNO)
    518           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    519      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    520      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    521      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 22))
    522      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 21))
    523      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 20))
    524      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 19))
    525      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 18))
    526      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -32))) (reg:SI 17))
    527      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -36))) (reg:SI 16))])]
    528    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10
    529     && (-INTVAL (operands[1]) & 3) == 0
    530     && (-INTVAL (operands[1]) - 36) <= 60"
    531 {
    532   operands[2] = GEN_INT (-INTVAL (operands[1]) - 36);
    533   return "push.n\\t{ra, fp, r22, r21, r20, r19, r18, r17, r16}, %2";
    534 }
    535   [(set_attr "type" "push")])
    536 
    537 (define_insn "*cdx_push_ra_r22_r21_r20_r19_r18_r17_r16"
    538   [(match_parallel 0 ""
    539     [(set (reg:SI SP_REGNO)
    540           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    541      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    542      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 22))
    543      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 21))
    544      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 20))
    545      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 19))
    546      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 18))
    547      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 17))
    548      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -32))) (reg:SI 16))])]
    549    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9
    550     && (-INTVAL (operands[1]) & 3) == 0
    551     && (-INTVAL (operands[1]) - 32) <= 60"
    552 {
    553   operands[2] = GEN_INT (-INTVAL (operands[1]) - 32);
    554   return "push.n\\t{ra, r22, r21, r20, r19, r18, r17, r16}, %2";
    555 }
    556   [(set_attr "type" "push")])
    557 
    558 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_r22_fp_ra"
    559   [(match_parallel 0 "pop_operation"
    560     [(return)
    561      (set (reg:SI SP_REGNO)
    562           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    563      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    564      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    565      (set (reg:SI 22) (match_operand:SI 4 "stack_memory_operand" ""))
    566      (set (reg:SI 21) (match_operand:SI 5 "stack_memory_operand" ""))
    567      (set (reg:SI 20) (match_operand:SI 6 "stack_memory_operand" ""))
    568      (set (reg:SI 19) (match_operand:SI 7 "stack_memory_operand" ""))
    569      (set (reg:SI 18) (match_operand:SI 8 "stack_memory_operand" ""))
    570      (set (reg:SI 17) (match_operand:SI 9 "stack_memory_operand" ""))
    571      (set (reg:SI 16) (match_operand:SI 10 "stack_memory_operand" ""))])]
    572    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
    573 {
    574   rtx x = XEXP (operands[10], 0);
    575   operands[10] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    576   return "pop.n\\t{r16, r17, r18, r19, r20, r21, r22, fp, ra}, %10";
    577 }
    578   [(set_attr "type" "pop")])
    579 
    580 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_r22_ra"
    581   [(match_parallel 0 "pop_operation"
    582     [(return)
    583      (set (reg:SI SP_REGNO)
    584           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    585      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    586      (set (reg:SI 22) (match_operand:SI 3 "stack_memory_operand" ""))
    587      (set (reg:SI 21) (match_operand:SI 4 "stack_memory_operand" ""))
    588      (set (reg:SI 20) (match_operand:SI 5 "stack_memory_operand" ""))
    589      (set (reg:SI 19) (match_operand:SI 6 "stack_memory_operand" ""))
    590      (set (reg:SI 18) (match_operand:SI 7 "stack_memory_operand" ""))
    591      (set (reg:SI 17) (match_operand:SI 8 "stack_memory_operand" ""))
    592      (set (reg:SI 16) (match_operand:SI 9 "stack_memory_operand" ""))])]
    593    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
    594 {
    595   rtx x = XEXP (operands[9], 0);
    596   operands[9] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    597   return "pop.n\\t{r16, r17, r18, r19, r20, r21, r22, ra}, %9";
    598 }
    599   [(set_attr "type" "pop")])
    600 
    601 (define_insn "*cdx_push_ra_fp_r23_r22_r21_r20_r19_r18_r17_r16"
    602   [(match_parallel 0 ""
    603     [(set (reg:SI SP_REGNO)
    604           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    605      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    606      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI FP_REGNO))
    607      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 23))
    608      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 22))
    609      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 21))
    610      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 20))
    611      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 19))
    612      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -32))) (reg:SI 18))
    613      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -36))) (reg:SI 17))
    614      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -40))) (reg:SI 16))])]
    615    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11
    616     && (-INTVAL (operands[1]) & 3) == 0
    617     && (-INTVAL (operands[1]) - 40) <= 60"
    618 {
    619   operands[2] = GEN_INT (-INTVAL (operands[1]) - 40);
    620   return "push.n\\t{ra, fp, r23, r22, r21, r20, r19, r18, r17, r16}, %2";
    621 }
    622   [(set_attr "type" "push")])
    623 
    624 (define_insn "*cdx_push_ra_r23_r22_r21_r20_r19_r18_r17_r16"
    625   [(match_parallel 0 ""
    626     [(set (reg:SI SP_REGNO)
    627           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    628      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -4))) (reg:SI RA_REGNO))
    629      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -8))) (reg:SI 23))
    630      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -12))) (reg:SI 22))
    631      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -16))) (reg:SI 21))
    632      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -20))) (reg:SI 20))
    633      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -24))) (reg:SI 19))
    634      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -28))) (reg:SI 18))
    635      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -32))) (reg:SI 17))
    636      (set (mem:SI (plus:SI (reg:SI SP_REGNO) (const_int -36))) (reg:SI 16))])]
    637    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10
    638     && (-INTVAL (operands[1]) & 3) == 0
    639     && (-INTVAL (operands[1]) - 36) <= 60"
    640 {
    641   operands[2] = GEN_INT (-INTVAL (operands[1]) - 36);
    642   return "push.n\\t{ra, r23, r22, r21, r20, r19, r18, r17, r16}, %2";
    643 }
    644   [(set_attr "type" "push")])
    645 
    646 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_r22_r23_fp_ra"
    647   [(match_parallel 0 "pop_operation"
    648     [(return)
    649      (set (reg:SI SP_REGNO)
    650           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    651      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    652      (set (reg:SI FP_REGNO) (match_operand:SI 3 "stack_memory_operand" ""))
    653      (set (reg:SI 23) (match_operand:SI 4 "stack_memory_operand" ""))
    654      (set (reg:SI 22) (match_operand:SI 5 "stack_memory_operand" ""))
    655      (set (reg:SI 21) (match_operand:SI 6 "stack_memory_operand" ""))
    656      (set (reg:SI 20) (match_operand:SI 7 "stack_memory_operand" ""))
    657      (set (reg:SI 19) (match_operand:SI 8 "stack_memory_operand" ""))
    658      (set (reg:SI 18) (match_operand:SI 9 "stack_memory_operand" ""))
    659      (set (reg:SI 17) (match_operand:SI 10 "stack_memory_operand" ""))
    660      (set (reg:SI 16) (match_operand:SI 11 "stack_memory_operand" ""))])]
    661    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
    662 {
    663   rtx x = XEXP (operands[11], 0);
    664   operands[11] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    665   return "pop.n\\t{r16, r17, r18, r19, r20, r21, r22, r23, fp, ra}, %11";
    666 }
    667   [(set_attr "type" "pop")])
    668 
    669 (define_insn "*cdx_pop_r16_r17_r18_r19_r20_r21_r22_r23_ra"
    670   [(match_parallel 0 "pop_operation"
    671     [(return)
    672      (set (reg:SI SP_REGNO)
    673           (plus:SI (reg:SI SP_REGNO) (match_operand 1 "const_int_operand" "")))
    674      (set (reg:SI RA_REGNO) (match_operand:SI 2 "stack_memory_operand" ""))
    675      (set (reg:SI 23) (match_operand:SI 3 "stack_memory_operand" ""))
    676      (set (reg:SI 22) (match_operand:SI 4 "stack_memory_operand" ""))
    677      (set (reg:SI 21) (match_operand:SI 5 "stack_memory_operand" ""))
    678      (set (reg:SI 20) (match_operand:SI 6 "stack_memory_operand" ""))
    679      (set (reg:SI 19) (match_operand:SI 7 "stack_memory_operand" ""))
    680      (set (reg:SI 18) (match_operand:SI 8 "stack_memory_operand" ""))
    681      (set (reg:SI 17) (match_operand:SI 9 "stack_memory_operand" ""))
    682      (set (reg:SI 16) (match_operand:SI 10 "stack_memory_operand" ""))])]
    683    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
    684 {
    685   rtx x = XEXP (operands[10], 0);
    686   operands[10] = REG_P (x) ? const0_rtx : XEXP (x, 1);
    687   return "pop.n\\t{r16, r17, r18, r19, r20, r21, r22, r23, ra}, %10";
    688 }
    689   [(set_attr "type" "pop")])
    690 
    691 (define_insn "*cdx_ldwm1_inc_wb_ret"
    692   [(match_parallel 0 "ldwm_operation"
    693     [(return)
    694      (set (match_operand:SI 2 "register_operand" "+&r")
    695           (plus:SI (match_dup 2) (const_int 4)))
    696      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    697           (mem:SI (match_dup 2)))])]
    698    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    699    "ldwm\\t{%1}, (%2)++, writeback, ret"
    700   [(set_attr "type" "ldwm")])
    701 
    702 (define_insn "*cdx_ldwm1_inc_wb"
    703   [(match_parallel 0 "ldwm_operation"
    704     [(set (match_operand:SI 2 "register_operand" "+&r")
    705           (plus:SI (match_dup 2) (const_int 4)))
    706      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    707           (mem:SI (match_dup 2)))])]
    708    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    709    "ldwm\\t{%1}, (%2)++, writeback"
    710   [(set_attr "type" "ldwm")])
    711 
    712 (define_insn "*cdx_ldwm1_inc_ret"
    713   [(match_parallel 0 "ldwm_operation"
    714     [(return)
    715      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    716           (mem:SI (match_operand:SI 2 "register_operand" "r")))])]
    717    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    718    "ldwm\\t{%1}, (%2)++, ret"
    719   [(set_attr "type" "ldwm")])
    720 
    721 (define_insn "*cdx_ldwm1_inc"
    722   [(match_parallel 0 "ldwm_operation"
    723     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    724           (mem:SI (match_operand:SI 2 "register_operand" "r")))])]
    725    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 1"
    726    "ldwm\\t{%1}, (%2)++"
    727   [(set_attr "type" "ldwm")])
    728 
    729 (define_insn "*cdx_ldwm1_dec_wb_ret"
    730   [(match_parallel 0 "ldwm_operation"
    731     [(return)
    732      (set (match_operand:SI 2 "register_operand" "+&r")
    733           (plus:SI (match_dup 2) (const_int -4)))
    734      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    735           (mem:SI (plus:SI (match_dup 2) (const_int -4))))])]
    736    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    737    "ldwm\\t{%1}, --(%2), writeback, ret"
    738   [(set_attr "type" "ldwm")])
    739 
    740 (define_insn "*cdx_ldwm1_dec_wb"
    741   [(match_parallel 0 "ldwm_operation"
    742     [(set (match_operand:SI 2 "register_operand" "+&r")
    743           (plus:SI (match_dup 2) (const_int -4)))
    744      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    745           (mem:SI (plus:SI (match_dup 2) (const_int -4))))])]
    746    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    747    "ldwm\\t{%1}, --(%2), writeback"
    748   [(set_attr "type" "ldwm")])
    749 
    750 (define_insn "*cdx_ldwm1_dec_ret"
    751   [(match_parallel 0 "ldwm_operation"
    752     [(return)
    753      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    754           (mem:SI (plus:SI (match_operand:SI 2 "register_operand" "r") (const_int -4))))])]
    755    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    756    "ldwm\\t{%1}, --(%2), ret"
    757   [(set_attr "type" "ldwm")])
    758 
    759 (define_insn "*cdx_ldwm1_dec"
    760   [(match_parallel 0 "ldwm_operation"
    761     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    762           (mem:SI (plus:SI (match_operand:SI 2 "register_operand" "r") (const_int -4))))])]
    763    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 1"
    764    "ldwm\\t{%1}, --(%2)"
    765   [(set_attr "type" "ldwm")])
    766 
    767 (define_insn "*cdx_ldwm2_inc_wb_ret"
    768   [(match_parallel 0 "ldwm_operation"
    769     [(return)
    770      (set (match_operand:SI 3 "register_operand" "+&r")
    771           (plus:SI (match_dup 3) (const_int 8)))
    772      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    773           (mem:SI (match_dup 3)))
    774      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    775           (mem:SI (plus:SI (match_dup 3) (const_int 4))))])]
    776    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    777    "ldwm\\t{%1, %2}, (%3)++, writeback, ret"
    778   [(set_attr "type" "ldwm")])
    779 
    780 (define_insn "*cdx_ldwm2_inc_wb"
    781   [(match_parallel 0 "ldwm_operation"
    782     [(set (match_operand:SI 3 "register_operand" "+&r")
    783           (plus:SI (match_dup 3) (const_int 8)))
    784      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    785           (mem:SI (match_dup 3)))
    786      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    787           (mem:SI (plus:SI (match_dup 3) (const_int 4))))])]
    788    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    789    "ldwm\\t{%1, %2}, (%3)++, writeback"
    790   [(set_attr "type" "ldwm")])
    791 
    792 (define_insn "*cdx_ldwm2_inc_ret"
    793   [(match_parallel 0 "ldwm_operation"
    794     [(return)
    795      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    796           (mem:SI (match_operand:SI 3 "register_operand" "r")))
    797      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    798           (mem:SI (plus:SI (match_dup 3) (const_int 4))))])]
    799    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    800    "ldwm\\t{%1, %2}, (%3)++, ret"
    801   [(set_attr "type" "ldwm")])
    802 
    803 (define_insn "*cdx_ldwm2_inc"
    804   [(match_parallel 0 "ldwm_operation"
    805     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    806           (mem:SI (match_operand:SI 3 "register_operand" "r")))
    807      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    808           (mem:SI (plus:SI (match_dup 3) (const_int 4))))])]
    809    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    810    "ldwm\\t{%1, %2}, (%3)++"
    811   [(set_attr "type" "ldwm")])
    812 
    813 (define_insn "*cdx_ldwm2_dec_wb_ret"
    814   [(match_parallel 0 "ldwm_operation"
    815     [(return)
    816      (set (match_operand:SI 3 "register_operand" "+&r")
    817           (plus:SI (match_dup 3) (const_int -8)))
    818      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    819           (mem:SI (plus:SI (match_dup 3) (const_int -4))))
    820      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    821           (mem:SI (plus:SI (match_dup 3) (const_int -8))))])]
    822    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    823    "ldwm\\t{%1, %2}, --(%3), writeback, ret"
    824   [(set_attr "type" "ldwm")])
    825 
    826 (define_insn "*cdx_ldwm2_dec_wb"
    827   [(match_parallel 0 "ldwm_operation"
    828     [(set (match_operand:SI 3 "register_operand" "+&r")
    829           (plus:SI (match_dup 3) (const_int -8)))
    830      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    831           (mem:SI (plus:SI (match_dup 3) (const_int -4))))
    832      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    833           (mem:SI (plus:SI (match_dup 3) (const_int -8))))])]
    834    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    835    "ldwm\\t{%1, %2}, --(%3), writeback"
    836   [(set_attr "type" "ldwm")])
    837 
    838 (define_insn "*cdx_ldwm2_dec_ret"
    839   [(match_parallel 0 "ldwm_operation"
    840     [(return)
    841      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    842           (mem:SI (plus:SI (match_operand:SI 3 "register_operand" "r") (const_int -4))))
    843      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    844           (mem:SI (plus:SI (match_dup 3) (const_int -8))))])]
    845    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    846    "ldwm\\t{%1, %2}, --(%3), ret"
    847   [(set_attr "type" "ldwm")])
    848 
    849 (define_insn "*cdx_ldwm2_dec"
    850   [(match_parallel 0 "ldwm_operation"
    851     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    852           (mem:SI (plus:SI (match_operand:SI 3 "register_operand" "r") (const_int -4))))
    853      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    854           (mem:SI (plus:SI (match_dup 3) (const_int -8))))])]
    855    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
    856    "ldwm\\t{%1, %2}, --(%3)"
    857   [(set_attr "type" "ldwm")])
    858 
    859 (define_insn "*cdx_ldwm3_inc_wb_ret"
    860   [(match_parallel 0 "ldwm_operation"
    861     [(return)
    862      (set (match_operand:SI 4 "register_operand" "+&r")
    863           (plus:SI (match_dup 4) (const_int 12)))
    864      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    865           (mem:SI (match_dup 4)))
    866      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    867           (mem:SI (plus:SI (match_dup 4) (const_int 4))))
    868      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    869           (mem:SI (plus:SI (match_dup 4) (const_int 8))))])]
    870    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
    871    "ldwm\\t{%1, %2, %3}, (%4)++, writeback, ret"
    872   [(set_attr "type" "ldwm")])
    873 
    874 (define_insn "*cdx_ldwm3_inc_wb"
    875   [(match_parallel 0 "ldwm_operation"
    876     [(set (match_operand:SI 4 "register_operand" "+&r")
    877           (plus:SI (match_dup 4) (const_int 12)))
    878      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    879           (mem:SI (match_dup 4)))
    880      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    881           (mem:SI (plus:SI (match_dup 4) (const_int 4))))
    882      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    883           (mem:SI (plus:SI (match_dup 4) (const_int 8))))])]
    884    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    885    "ldwm\\t{%1, %2, %3}, (%4)++, writeback"
    886   [(set_attr "type" "ldwm")])
    887 
    888 (define_insn "*cdx_ldwm3_inc_ret"
    889   [(match_parallel 0 "ldwm_operation"
    890     [(return)
    891      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    892           (mem:SI (match_operand:SI 4 "register_operand" "r")))
    893      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    894           (mem:SI (plus:SI (match_dup 4) (const_int 4))))
    895      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    896           (mem:SI (plus:SI (match_dup 4) (const_int 8))))])]
    897    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    898    "ldwm\\t{%1, %2, %3}, (%4)++, ret"
    899   [(set_attr "type" "ldwm")])
    900 
    901 (define_insn "*cdx_ldwm3_inc"
    902   [(match_parallel 0 "ldwm_operation"
    903     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    904           (mem:SI (match_operand:SI 4 "register_operand" "r")))
    905      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    906           (mem:SI (plus:SI (match_dup 4) (const_int 4))))
    907      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    908           (mem:SI (plus:SI (match_dup 4) (const_int 8))))])]
    909    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    910    "ldwm\\t{%1, %2, %3}, (%4)++"
    911   [(set_attr "type" "ldwm")])
    912 
    913 (define_insn "*cdx_ldwm3_dec_wb_ret"
    914   [(match_parallel 0 "ldwm_operation"
    915     [(return)
    916      (set (match_operand:SI 4 "register_operand" "+&r")
    917           (plus:SI (match_dup 4) (const_int -12)))
    918      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    919           (mem:SI (plus:SI (match_dup 4) (const_int -4))))
    920      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    921           (mem:SI (plus:SI (match_dup 4) (const_int -8))))
    922      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    923           (mem:SI (plus:SI (match_dup 4) (const_int -12))))])]
    924    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
    925    "ldwm\\t{%1, %2, %3}, --(%4), writeback, ret"
    926   [(set_attr "type" "ldwm")])
    927 
    928 (define_insn "*cdx_ldwm3_dec_wb"
    929   [(match_parallel 0 "ldwm_operation"
    930     [(set (match_operand:SI 4 "register_operand" "+&r")
    931           (plus:SI (match_dup 4) (const_int -12)))
    932      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    933           (mem:SI (plus:SI (match_dup 4) (const_int -4))))
    934      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    935           (mem:SI (plus:SI (match_dup 4) (const_int -8))))
    936      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    937           (mem:SI (plus:SI (match_dup 4) (const_int -12))))])]
    938    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    939    "ldwm\\t{%1, %2, %3}, --(%4), writeback"
    940   [(set_attr "type" "ldwm")])
    941 
    942 (define_insn "*cdx_ldwm3_dec_ret"
    943   [(match_parallel 0 "ldwm_operation"
    944     [(return)
    945      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    946           (mem:SI (plus:SI (match_operand:SI 4 "register_operand" "r") (const_int -4))))
    947      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    948           (mem:SI (plus:SI (match_dup 4) (const_int -8))))
    949      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    950           (mem:SI (plus:SI (match_dup 4) (const_int -12))))])]
    951    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
    952    "ldwm\\t{%1, %2, %3}, --(%4), ret"
    953   [(set_attr "type" "ldwm")])
    954 
    955 (define_insn "*cdx_ldwm3_dec"
    956   [(match_parallel 0 "ldwm_operation"
    957     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
    958           (mem:SI (plus:SI (match_operand:SI 4 "register_operand" "r") (const_int -4))))
    959      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    960           (mem:SI (plus:SI (match_dup 4) (const_int -8))))
    961      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    962           (mem:SI (plus:SI (match_dup 4) (const_int -12))))])]
    963    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
    964    "ldwm\\t{%1, %2, %3}, --(%4)"
    965   [(set_attr "type" "ldwm")])
    966 
    967 (define_insn "*cdx_ldwm4_inc_wb_ret"
    968   [(match_parallel 0 "ldwm_operation"
    969     [(return)
    970      (set (match_operand:SI 5 "register_operand" "+&r")
    971           (plus:SI (match_dup 5) (const_int 16)))
    972      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    973           (mem:SI (match_dup 5)))
    974      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    975           (mem:SI (plus:SI (match_dup 5) (const_int 4))))
    976      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    977           (mem:SI (plus:SI (match_dup 5) (const_int 8))))
    978      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
    979           (mem:SI (plus:SI (match_dup 5) (const_int 12))))])]
    980    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
    981    "ldwm\\t{%1, %2, %3, %4}, (%5)++, writeback, ret"
    982   [(set_attr "type" "ldwm")])
    983 
    984 (define_insn "*cdx_ldwm4_inc_wb"
    985   [(match_parallel 0 "ldwm_operation"
    986     [(set (match_operand:SI 5 "register_operand" "+&r")
    987           (plus:SI (match_dup 5) (const_int 16)))
    988      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
    989           (mem:SI (match_dup 5)))
    990      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
    991           (mem:SI (plus:SI (match_dup 5) (const_int 4))))
    992      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
    993           (mem:SI (plus:SI (match_dup 5) (const_int 8))))
    994      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
    995           (mem:SI (plus:SI (match_dup 5) (const_int 12))))])]
    996    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
    997    "ldwm\\t{%1, %2, %3, %4}, (%5)++, writeback"
    998   [(set_attr "type" "ldwm")])
    999 
   1000 (define_insn "*cdx_ldwm4_inc_ret"
   1001   [(match_parallel 0 "ldwm_operation"
   1002     [(return)
   1003      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1004           (mem:SI (match_operand:SI 5 "register_operand" "r")))
   1005      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1006           (mem:SI (plus:SI (match_dup 5) (const_int 4))))
   1007      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1008           (mem:SI (plus:SI (match_dup 5) (const_int 8))))
   1009      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1010           (mem:SI (plus:SI (match_dup 5) (const_int 12))))])]
   1011    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   1012    "ldwm\\t{%1, %2, %3, %4}, (%5)++, ret"
   1013   [(set_attr "type" "ldwm")])
   1014 
   1015 (define_insn "*cdx_ldwm4_inc"
   1016   [(match_parallel 0 "ldwm_operation"
   1017     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1018           (mem:SI (match_operand:SI 5 "register_operand" "r")))
   1019      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1020           (mem:SI (plus:SI (match_dup 5) (const_int 4))))
   1021      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1022           (mem:SI (plus:SI (match_dup 5) (const_int 8))))
   1023      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1024           (mem:SI (plus:SI (match_dup 5) (const_int 12))))])]
   1025    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   1026    "ldwm\\t{%1, %2, %3, %4}, (%5)++"
   1027   [(set_attr "type" "ldwm")])
   1028 
   1029 (define_insn "*cdx_ldwm4_dec_wb_ret"
   1030   [(match_parallel 0 "ldwm_operation"
   1031     [(return)
   1032      (set (match_operand:SI 5 "register_operand" "+&r")
   1033           (plus:SI (match_dup 5) (const_int -16)))
   1034      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1035           (mem:SI (plus:SI (match_dup 5) (const_int -4))))
   1036      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1037           (mem:SI (plus:SI (match_dup 5) (const_int -8))))
   1038      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1039           (mem:SI (plus:SI (match_dup 5) (const_int -12))))
   1040      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1041           (mem:SI (plus:SI (match_dup 5) (const_int -16))))])]
   1042    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1043    "ldwm\\t{%1, %2, %3, %4}, --(%5), writeback, ret"
   1044   [(set_attr "type" "ldwm")])
   1045 
   1046 (define_insn "*cdx_ldwm4_dec_wb"
   1047   [(match_parallel 0 "ldwm_operation"
   1048     [(set (match_operand:SI 5 "register_operand" "+&r")
   1049           (plus:SI (match_dup 5) (const_int -16)))
   1050      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1051           (mem:SI (plus:SI (match_dup 5) (const_int -4))))
   1052      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1053           (mem:SI (plus:SI (match_dup 5) (const_int -8))))
   1054      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1055           (mem:SI (plus:SI (match_dup 5) (const_int -12))))
   1056      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1057           (mem:SI (plus:SI (match_dup 5) (const_int -16))))])]
   1058    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   1059    "ldwm\\t{%1, %2, %3, %4}, --(%5), writeback"
   1060   [(set_attr "type" "ldwm")])
   1061 
   1062 (define_insn "*cdx_ldwm4_dec_ret"
   1063   [(match_parallel 0 "ldwm_operation"
   1064     [(return)
   1065      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1066           (mem:SI (plus:SI (match_operand:SI 5 "register_operand" "r") (const_int -4))))
   1067      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1068           (mem:SI (plus:SI (match_dup 5) (const_int -8))))
   1069      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1070           (mem:SI (plus:SI (match_dup 5) (const_int -12))))
   1071      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1072           (mem:SI (plus:SI (match_dup 5) (const_int -16))))])]
   1073    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   1074    "ldwm\\t{%1, %2, %3, %4}, --(%5), ret"
   1075   [(set_attr "type" "ldwm")])
   1076 
   1077 (define_insn "*cdx_ldwm4_dec"
   1078   [(match_parallel 0 "ldwm_operation"
   1079     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1080           (mem:SI (plus:SI (match_operand:SI 5 "register_operand" "r") (const_int -4))))
   1081      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1082           (mem:SI (plus:SI (match_dup 5) (const_int -8))))
   1083      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1084           (mem:SI (plus:SI (match_dup 5) (const_int -12))))
   1085      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1086           (mem:SI (plus:SI (match_dup 5) (const_int -16))))])]
   1087    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   1088    "ldwm\\t{%1, %2, %3, %4}, --(%5)"
   1089   [(set_attr "type" "ldwm")])
   1090 
   1091 (define_insn "*cdx_ldwm5_inc_wb_ret"
   1092   [(match_parallel 0 "ldwm_operation"
   1093     [(return)
   1094      (set (match_operand:SI 6 "register_operand" "+&r")
   1095           (plus:SI (match_dup 6) (const_int 20)))
   1096      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1097           (mem:SI (match_dup 6)))
   1098      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1099           (mem:SI (plus:SI (match_dup 6) (const_int 4))))
   1100      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1101           (mem:SI (plus:SI (match_dup 6) (const_int 8))))
   1102      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1103           (mem:SI (plus:SI (match_dup 6) (const_int 12))))
   1104      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1105           (mem:SI (plus:SI (match_dup 6) (const_int 16))))])]
   1106    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1107    "ldwm\\t{%1, %2, %3, %4, %5}, (%6)++, writeback, ret"
   1108   [(set_attr "type" "ldwm")])
   1109 
   1110 (define_insn "*cdx_ldwm5_inc_wb"
   1111   [(match_parallel 0 "ldwm_operation"
   1112     [(set (match_operand:SI 6 "register_operand" "+&r")
   1113           (plus:SI (match_dup 6) (const_int 20)))
   1114      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1115           (mem:SI (match_dup 6)))
   1116      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1117           (mem:SI (plus:SI (match_dup 6) (const_int 4))))
   1118      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1119           (mem:SI (plus:SI (match_dup 6) (const_int 8))))
   1120      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1121           (mem:SI (plus:SI (match_dup 6) (const_int 12))))
   1122      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1123           (mem:SI (plus:SI (match_dup 6) (const_int 16))))])]
   1124    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1125    "ldwm\\t{%1, %2, %3, %4, %5}, (%6)++, writeback"
   1126   [(set_attr "type" "ldwm")])
   1127 
   1128 (define_insn "*cdx_ldwm5_inc_ret"
   1129   [(match_parallel 0 "ldwm_operation"
   1130     [(return)
   1131      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1132           (mem:SI (match_operand:SI 6 "register_operand" "r")))
   1133      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1134           (mem:SI (plus:SI (match_dup 6) (const_int 4))))
   1135      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1136           (mem:SI (plus:SI (match_dup 6) (const_int 8))))
   1137      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1138           (mem:SI (plus:SI (match_dup 6) (const_int 12))))
   1139      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1140           (mem:SI (plus:SI (match_dup 6) (const_int 16))))])]
   1141    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1142    "ldwm\\t{%1, %2, %3, %4, %5}, (%6)++, ret"
   1143   [(set_attr "type" "ldwm")])
   1144 
   1145 (define_insn "*cdx_ldwm5_inc"
   1146   [(match_parallel 0 "ldwm_operation"
   1147     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1148           (mem:SI (match_operand:SI 6 "register_operand" "r")))
   1149      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1150           (mem:SI (plus:SI (match_dup 6) (const_int 4))))
   1151      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1152           (mem:SI (plus:SI (match_dup 6) (const_int 8))))
   1153      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1154           (mem:SI (plus:SI (match_dup 6) (const_int 12))))
   1155      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1156           (mem:SI (plus:SI (match_dup 6) (const_int 16))))])]
   1157    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   1158    "ldwm\\t{%1, %2, %3, %4, %5}, (%6)++"
   1159   [(set_attr "type" "ldwm")])
   1160 
   1161 (define_insn "*cdx_ldwm5_dec_wb_ret"
   1162   [(match_parallel 0 "ldwm_operation"
   1163     [(return)
   1164      (set (match_operand:SI 6 "register_operand" "+&r")
   1165           (plus:SI (match_dup 6) (const_int -20)))
   1166      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1167           (mem:SI (plus:SI (match_dup 6) (const_int -4))))
   1168      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1169           (mem:SI (plus:SI (match_dup 6) (const_int -8))))
   1170      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1171           (mem:SI (plus:SI (match_dup 6) (const_int -12))))
   1172      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1173           (mem:SI (plus:SI (match_dup 6) (const_int -16))))
   1174      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1175           (mem:SI (plus:SI (match_dup 6) (const_int -20))))])]
   1176    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1177    "ldwm\\t{%1, %2, %3, %4, %5}, --(%6), writeback, ret"
   1178   [(set_attr "type" "ldwm")])
   1179 
   1180 (define_insn "*cdx_ldwm5_dec_wb"
   1181   [(match_parallel 0 "ldwm_operation"
   1182     [(set (match_operand:SI 6 "register_operand" "+&r")
   1183           (plus:SI (match_dup 6) (const_int -20)))
   1184      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1185           (mem:SI (plus:SI (match_dup 6) (const_int -4))))
   1186      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1187           (mem:SI (plus:SI (match_dup 6) (const_int -8))))
   1188      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1189           (mem:SI (plus:SI (match_dup 6) (const_int -12))))
   1190      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1191           (mem:SI (plus:SI (match_dup 6) (const_int -16))))
   1192      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1193           (mem:SI (plus:SI (match_dup 6) (const_int -20))))])]
   1194    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1195    "ldwm\\t{%1, %2, %3, %4, %5}, --(%6), writeback"
   1196   [(set_attr "type" "ldwm")])
   1197 
   1198 (define_insn "*cdx_ldwm5_dec_ret"
   1199   [(match_parallel 0 "ldwm_operation"
   1200     [(return)
   1201      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1202           (mem:SI (plus:SI (match_operand:SI 6 "register_operand" "r") (const_int -4))))
   1203      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1204           (mem:SI (plus:SI (match_dup 6) (const_int -8))))
   1205      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1206           (mem:SI (plus:SI (match_dup 6) (const_int -12))))
   1207      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1208           (mem:SI (plus:SI (match_dup 6) (const_int -16))))
   1209      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1210           (mem:SI (plus:SI (match_dup 6) (const_int -20))))])]
   1211    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1212    "ldwm\\t{%1, %2, %3, %4, %5}, --(%6), ret"
   1213   [(set_attr "type" "ldwm")])
   1214 
   1215 (define_insn "*cdx_ldwm5_dec"
   1216   [(match_parallel 0 "ldwm_operation"
   1217     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1218           (mem:SI (plus:SI (match_operand:SI 6 "register_operand" "r") (const_int -4))))
   1219      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1220           (mem:SI (plus:SI (match_dup 6) (const_int -8))))
   1221      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1222           (mem:SI (plus:SI (match_dup 6) (const_int -12))))
   1223      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1224           (mem:SI (plus:SI (match_dup 6) (const_int -16))))
   1225      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1226           (mem:SI (plus:SI (match_dup 6) (const_int -20))))])]
   1227    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   1228    "ldwm\\t{%1, %2, %3, %4, %5}, --(%6)"
   1229   [(set_attr "type" "ldwm")])
   1230 
   1231 (define_insn "*cdx_ldwm6_inc_wb_ret"
   1232   [(match_parallel 0 "ldwm_operation"
   1233     [(return)
   1234      (set (match_operand:SI 7 "register_operand" "+&r")
   1235           (plus:SI (match_dup 7) (const_int 24)))
   1236      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1237           (mem:SI (match_dup 7)))
   1238      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1239           (mem:SI (plus:SI (match_dup 7) (const_int 4))))
   1240      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1241           (mem:SI (plus:SI (match_dup 7) (const_int 8))))
   1242      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1243           (mem:SI (plus:SI (match_dup 7) (const_int 12))))
   1244      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1245           (mem:SI (plus:SI (match_dup 7) (const_int 16))))
   1246      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1247           (mem:SI (plus:SI (match_dup 7) (const_int 20))))])]
   1248    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1249    "ldwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++, writeback, ret"
   1250   [(set_attr "type" "ldwm")])
   1251 
   1252 (define_insn "*cdx_ldwm6_inc_wb"
   1253   [(match_parallel 0 "ldwm_operation"
   1254     [(set (match_operand:SI 7 "register_operand" "+&r")
   1255           (plus:SI (match_dup 7) (const_int 24)))
   1256      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1257           (mem:SI (match_dup 7)))
   1258      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1259           (mem:SI (plus:SI (match_dup 7) (const_int 4))))
   1260      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1261           (mem:SI (plus:SI (match_dup 7) (const_int 8))))
   1262      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1263           (mem:SI (plus:SI (match_dup 7) (const_int 12))))
   1264      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1265           (mem:SI (plus:SI (match_dup 7) (const_int 16))))
   1266      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1267           (mem:SI (plus:SI (match_dup 7) (const_int 20))))])]
   1268    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1269    "ldwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++, writeback"
   1270   [(set_attr "type" "ldwm")])
   1271 
   1272 (define_insn "*cdx_ldwm6_inc_ret"
   1273   [(match_parallel 0 "ldwm_operation"
   1274     [(return)
   1275      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1276           (mem:SI (match_operand:SI 7 "register_operand" "r")))
   1277      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1278           (mem:SI (plus:SI (match_dup 7) (const_int 4))))
   1279      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1280           (mem:SI (plus:SI (match_dup 7) (const_int 8))))
   1281      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1282           (mem:SI (plus:SI (match_dup 7) (const_int 12))))
   1283      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1284           (mem:SI (plus:SI (match_dup 7) (const_int 16))))
   1285      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1286           (mem:SI (plus:SI (match_dup 7) (const_int 20))))])]
   1287    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1288    "ldwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++, ret"
   1289   [(set_attr "type" "ldwm")])
   1290 
   1291 (define_insn "*cdx_ldwm6_inc"
   1292   [(match_parallel 0 "ldwm_operation"
   1293     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1294           (mem:SI (match_operand:SI 7 "register_operand" "r")))
   1295      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1296           (mem:SI (plus:SI (match_dup 7) (const_int 4))))
   1297      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1298           (mem:SI (plus:SI (match_dup 7) (const_int 8))))
   1299      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1300           (mem:SI (plus:SI (match_dup 7) (const_int 12))))
   1301      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1302           (mem:SI (plus:SI (match_dup 7) (const_int 16))))
   1303      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1304           (mem:SI (plus:SI (match_dup 7) (const_int 20))))])]
   1305    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1306    "ldwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++"
   1307   [(set_attr "type" "ldwm")])
   1308 
   1309 (define_insn "*cdx_ldwm6_dec_wb_ret"
   1310   [(match_parallel 0 "ldwm_operation"
   1311     [(return)
   1312      (set (match_operand:SI 7 "register_operand" "+&r")
   1313           (plus:SI (match_dup 7) (const_int -24)))
   1314      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1315           (mem:SI (plus:SI (match_dup 7) (const_int -4))))
   1316      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1317           (mem:SI (plus:SI (match_dup 7) (const_int -8))))
   1318      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1319           (mem:SI (plus:SI (match_dup 7) (const_int -12))))
   1320      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1321           (mem:SI (plus:SI (match_dup 7) (const_int -16))))
   1322      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1323           (mem:SI (plus:SI (match_dup 7) (const_int -20))))
   1324      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1325           (mem:SI (plus:SI (match_dup 7) (const_int -24))))])]
   1326    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1327    "ldwm\\t{%1, %2, %3, %4, %5, %6}, --(%7), writeback, ret"
   1328   [(set_attr "type" "ldwm")])
   1329 
   1330 (define_insn "*cdx_ldwm6_dec_wb"
   1331   [(match_parallel 0 "ldwm_operation"
   1332     [(set (match_operand:SI 7 "register_operand" "+&r")
   1333           (plus:SI (match_dup 7) (const_int -24)))
   1334      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1335           (mem:SI (plus:SI (match_dup 7) (const_int -4))))
   1336      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1337           (mem:SI (plus:SI (match_dup 7) (const_int -8))))
   1338      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1339           (mem:SI (plus:SI (match_dup 7) (const_int -12))))
   1340      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1341           (mem:SI (plus:SI (match_dup 7) (const_int -16))))
   1342      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1343           (mem:SI (plus:SI (match_dup 7) (const_int -20))))
   1344      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1345           (mem:SI (plus:SI (match_dup 7) (const_int -24))))])]
   1346    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1347    "ldwm\\t{%1, %2, %3, %4, %5, %6}, --(%7), writeback"
   1348   [(set_attr "type" "ldwm")])
   1349 
   1350 (define_insn "*cdx_ldwm6_dec_ret"
   1351   [(match_parallel 0 "ldwm_operation"
   1352     [(return)
   1353      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1354           (mem:SI (plus:SI (match_operand:SI 7 "register_operand" "r") (const_int -4))))
   1355      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1356           (mem:SI (plus:SI (match_dup 7) (const_int -8))))
   1357      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1358           (mem:SI (plus:SI (match_dup 7) (const_int -12))))
   1359      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1360           (mem:SI (plus:SI (match_dup 7) (const_int -16))))
   1361      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1362           (mem:SI (plus:SI (match_dup 7) (const_int -20))))
   1363      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1364           (mem:SI (plus:SI (match_dup 7) (const_int -24))))])]
   1365    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1366    "ldwm\\t{%1, %2, %3, %4, %5, %6}, --(%7), ret"
   1367   [(set_attr "type" "ldwm")])
   1368 
   1369 (define_insn "*cdx_ldwm6_dec"
   1370   [(match_parallel 0 "ldwm_operation"
   1371     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1372           (mem:SI (plus:SI (match_operand:SI 7 "register_operand" "r") (const_int -4))))
   1373      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1374           (mem:SI (plus:SI (match_dup 7) (const_int -8))))
   1375      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1376           (mem:SI (plus:SI (match_dup 7) (const_int -12))))
   1377      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1378           (mem:SI (plus:SI (match_dup 7) (const_int -16))))
   1379      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1380           (mem:SI (plus:SI (match_dup 7) (const_int -20))))
   1381      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1382           (mem:SI (plus:SI (match_dup 7) (const_int -24))))])]
   1383    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   1384    "ldwm\\t{%1, %2, %3, %4, %5, %6}, --(%7)"
   1385   [(set_attr "type" "ldwm")])
   1386 
   1387 (define_insn "*cdx_ldwm7_inc_wb_ret"
   1388   [(match_parallel 0 "ldwm_operation"
   1389     [(return)
   1390      (set (match_operand:SI 8 "register_operand" "+&r")
   1391           (plus:SI (match_dup 8) (const_int 28)))
   1392      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1393           (mem:SI (match_dup 8)))
   1394      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1395           (mem:SI (plus:SI (match_dup 8) (const_int 4))))
   1396      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1397           (mem:SI (plus:SI (match_dup 8) (const_int 8))))
   1398      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1399           (mem:SI (plus:SI (match_dup 8) (const_int 12))))
   1400      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1401           (mem:SI (plus:SI (match_dup 8) (const_int 16))))
   1402      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1403           (mem:SI (plus:SI (match_dup 8) (const_int 20))))
   1404      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1405           (mem:SI (plus:SI (match_dup 8) (const_int 24))))])]
   1406    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1407    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++, writeback, ret"
   1408   [(set_attr "type" "ldwm")])
   1409 
   1410 (define_insn "*cdx_ldwm7_inc_wb"
   1411   [(match_parallel 0 "ldwm_operation"
   1412     [(set (match_operand:SI 8 "register_operand" "+&r")
   1413           (plus:SI (match_dup 8) (const_int 28)))
   1414      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1415           (mem:SI (match_dup 8)))
   1416      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1417           (mem:SI (plus:SI (match_dup 8) (const_int 4))))
   1418      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1419           (mem:SI (plus:SI (match_dup 8) (const_int 8))))
   1420      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1421           (mem:SI (plus:SI (match_dup 8) (const_int 12))))
   1422      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1423           (mem:SI (plus:SI (match_dup 8) (const_int 16))))
   1424      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1425           (mem:SI (plus:SI (match_dup 8) (const_int 20))))
   1426      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1427           (mem:SI (plus:SI (match_dup 8) (const_int 24))))])]
   1428    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1429    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++, writeback"
   1430   [(set_attr "type" "ldwm")])
   1431 
   1432 (define_insn "*cdx_ldwm7_inc_ret"
   1433   [(match_parallel 0 "ldwm_operation"
   1434     [(return)
   1435      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1436           (mem:SI (match_operand:SI 8 "register_operand" "r")))
   1437      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1438           (mem:SI (plus:SI (match_dup 8) (const_int 4))))
   1439      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1440           (mem:SI (plus:SI (match_dup 8) (const_int 8))))
   1441      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1442           (mem:SI (plus:SI (match_dup 8) (const_int 12))))
   1443      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1444           (mem:SI (plus:SI (match_dup 8) (const_int 16))))
   1445      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1446           (mem:SI (plus:SI (match_dup 8) (const_int 20))))
   1447      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1448           (mem:SI (plus:SI (match_dup 8) (const_int 24))))])]
   1449    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1450    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++, ret"
   1451   [(set_attr "type" "ldwm")])
   1452 
   1453 (define_insn "*cdx_ldwm7_inc"
   1454   [(match_parallel 0 "ldwm_operation"
   1455     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1456           (mem:SI (match_operand:SI 8 "register_operand" "r")))
   1457      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1458           (mem:SI (plus:SI (match_dup 8) (const_int 4))))
   1459      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1460           (mem:SI (plus:SI (match_dup 8) (const_int 8))))
   1461      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1462           (mem:SI (plus:SI (match_dup 8) (const_int 12))))
   1463      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1464           (mem:SI (plus:SI (match_dup 8) (const_int 16))))
   1465      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1466           (mem:SI (plus:SI (match_dup 8) (const_int 20))))
   1467      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1468           (mem:SI (plus:SI (match_dup 8) (const_int 24))))])]
   1469    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1470    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++"
   1471   [(set_attr "type" "ldwm")])
   1472 
   1473 (define_insn "*cdx_ldwm7_dec_wb_ret"
   1474   [(match_parallel 0 "ldwm_operation"
   1475     [(return)
   1476      (set (match_operand:SI 8 "register_operand" "+&r")
   1477           (plus:SI (match_dup 8) (const_int -28)))
   1478      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1479           (mem:SI (plus:SI (match_dup 8) (const_int -4))))
   1480      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1481           (mem:SI (plus:SI (match_dup 8) (const_int -8))))
   1482      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1483           (mem:SI (plus:SI (match_dup 8) (const_int -12))))
   1484      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1485           (mem:SI (plus:SI (match_dup 8) (const_int -16))))
   1486      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1487           (mem:SI (plus:SI (match_dup 8) (const_int -20))))
   1488      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1489           (mem:SI (plus:SI (match_dup 8) (const_int -24))))
   1490      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1491           (mem:SI (plus:SI (match_dup 8) (const_int -28))))])]
   1492    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1493    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8), writeback, ret"
   1494   [(set_attr "type" "ldwm")])
   1495 
   1496 (define_insn "*cdx_ldwm7_dec_wb"
   1497   [(match_parallel 0 "ldwm_operation"
   1498     [(set (match_operand:SI 8 "register_operand" "+&r")
   1499           (plus:SI (match_dup 8) (const_int -28)))
   1500      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1501           (mem:SI (plus:SI (match_dup 8) (const_int -4))))
   1502      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1503           (mem:SI (plus:SI (match_dup 8) (const_int -8))))
   1504      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1505           (mem:SI (plus:SI (match_dup 8) (const_int -12))))
   1506      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1507           (mem:SI (plus:SI (match_dup 8) (const_int -16))))
   1508      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1509           (mem:SI (plus:SI (match_dup 8) (const_int -20))))
   1510      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1511           (mem:SI (plus:SI (match_dup 8) (const_int -24))))
   1512      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1513           (mem:SI (plus:SI (match_dup 8) (const_int -28))))])]
   1514    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1515    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8), writeback"
   1516   [(set_attr "type" "ldwm")])
   1517 
   1518 (define_insn "*cdx_ldwm7_dec_ret"
   1519   [(match_parallel 0 "ldwm_operation"
   1520     [(return)
   1521      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1522           (mem:SI (plus:SI (match_operand:SI 8 "register_operand" "r") (const_int -4))))
   1523      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1524           (mem:SI (plus:SI (match_dup 8) (const_int -8))))
   1525      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1526           (mem:SI (plus:SI (match_dup 8) (const_int -12))))
   1527      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1528           (mem:SI (plus:SI (match_dup 8) (const_int -16))))
   1529      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1530           (mem:SI (plus:SI (match_dup 8) (const_int -20))))
   1531      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1532           (mem:SI (plus:SI (match_dup 8) (const_int -24))))
   1533      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1534           (mem:SI (plus:SI (match_dup 8) (const_int -28))))])]
   1535    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1536    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8), ret"
   1537   [(set_attr "type" "ldwm")])
   1538 
   1539 (define_insn "*cdx_ldwm7_dec"
   1540   [(match_parallel 0 "ldwm_operation"
   1541     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1542           (mem:SI (plus:SI (match_operand:SI 8 "register_operand" "r") (const_int -4))))
   1543      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1544           (mem:SI (plus:SI (match_dup 8) (const_int -8))))
   1545      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1546           (mem:SI (plus:SI (match_dup 8) (const_int -12))))
   1547      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1548           (mem:SI (plus:SI (match_dup 8) (const_int -16))))
   1549      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1550           (mem:SI (plus:SI (match_dup 8) (const_int -20))))
   1551      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1552           (mem:SI (plus:SI (match_dup 8) (const_int -24))))
   1553      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1554           (mem:SI (plus:SI (match_dup 8) (const_int -28))))])]
   1555    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   1556    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8)"
   1557   [(set_attr "type" "ldwm")])
   1558 
   1559 (define_insn "*cdx_ldwm8_inc_wb_ret"
   1560   [(match_parallel 0 "ldwm_operation"
   1561     [(return)
   1562      (set (match_operand:SI 9 "register_operand" "+&r")
   1563           (plus:SI (match_dup 9) (const_int 32)))
   1564      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1565           (mem:SI (match_dup 9)))
   1566      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1567           (mem:SI (plus:SI (match_dup 9) (const_int 4))))
   1568      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1569           (mem:SI (plus:SI (match_dup 9) (const_int 8))))
   1570      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1571           (mem:SI (plus:SI (match_dup 9) (const_int 12))))
   1572      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1573           (mem:SI (plus:SI (match_dup 9) (const_int 16))))
   1574      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1575           (mem:SI (plus:SI (match_dup 9) (const_int 20))))
   1576      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1577           (mem:SI (plus:SI (match_dup 9) (const_int 24))))
   1578      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1579           (mem:SI (plus:SI (match_dup 9) (const_int 28))))])]
   1580    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1581    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++, writeback, ret"
   1582   [(set_attr "type" "ldwm")])
   1583 
   1584 (define_insn "*cdx_ldwm8_inc_wb"
   1585   [(match_parallel 0 "ldwm_operation"
   1586     [(set (match_operand:SI 9 "register_operand" "+&r")
   1587           (plus:SI (match_dup 9) (const_int 32)))
   1588      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1589           (mem:SI (match_dup 9)))
   1590      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1591           (mem:SI (plus:SI (match_dup 9) (const_int 4))))
   1592      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1593           (mem:SI (plus:SI (match_dup 9) (const_int 8))))
   1594      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1595           (mem:SI (plus:SI (match_dup 9) (const_int 12))))
   1596      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1597           (mem:SI (plus:SI (match_dup 9) (const_int 16))))
   1598      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1599           (mem:SI (plus:SI (match_dup 9) (const_int 20))))
   1600      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1601           (mem:SI (plus:SI (match_dup 9) (const_int 24))))
   1602      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1603           (mem:SI (plus:SI (match_dup 9) (const_int 28))))])]
   1604    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1605    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++, writeback"
   1606   [(set_attr "type" "ldwm")])
   1607 
   1608 (define_insn "*cdx_ldwm8_inc_ret"
   1609   [(match_parallel 0 "ldwm_operation"
   1610     [(return)
   1611      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1612           (mem:SI (match_operand:SI 9 "register_operand" "r")))
   1613      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1614           (mem:SI (plus:SI (match_dup 9) (const_int 4))))
   1615      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1616           (mem:SI (plus:SI (match_dup 9) (const_int 8))))
   1617      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1618           (mem:SI (plus:SI (match_dup 9) (const_int 12))))
   1619      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1620           (mem:SI (plus:SI (match_dup 9) (const_int 16))))
   1621      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1622           (mem:SI (plus:SI (match_dup 9) (const_int 20))))
   1623      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1624           (mem:SI (plus:SI (match_dup 9) (const_int 24))))
   1625      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1626           (mem:SI (plus:SI (match_dup 9) (const_int 28))))])]
   1627    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1628    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++, ret"
   1629   [(set_attr "type" "ldwm")])
   1630 
   1631 (define_insn "*cdx_ldwm8_inc"
   1632   [(match_parallel 0 "ldwm_operation"
   1633     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1634           (mem:SI (match_operand:SI 9 "register_operand" "r")))
   1635      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1636           (mem:SI (plus:SI (match_dup 9) (const_int 4))))
   1637      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1638           (mem:SI (plus:SI (match_dup 9) (const_int 8))))
   1639      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1640           (mem:SI (plus:SI (match_dup 9) (const_int 12))))
   1641      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1642           (mem:SI (plus:SI (match_dup 9) (const_int 16))))
   1643      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1644           (mem:SI (plus:SI (match_dup 9) (const_int 20))))
   1645      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1646           (mem:SI (plus:SI (match_dup 9) (const_int 24))))
   1647      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1648           (mem:SI (plus:SI (match_dup 9) (const_int 28))))])]
   1649    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1650    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++"
   1651   [(set_attr "type" "ldwm")])
   1652 
   1653 (define_insn "*cdx_ldwm8_dec_wb_ret"
   1654   [(match_parallel 0 "ldwm_operation"
   1655     [(return)
   1656      (set (match_operand:SI 9 "register_operand" "+&r")
   1657           (plus:SI (match_dup 9) (const_int -32)))
   1658      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1659           (mem:SI (plus:SI (match_dup 9) (const_int -4))))
   1660      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1661           (mem:SI (plus:SI (match_dup 9) (const_int -8))))
   1662      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1663           (mem:SI (plus:SI (match_dup 9) (const_int -12))))
   1664      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1665           (mem:SI (plus:SI (match_dup 9) (const_int -16))))
   1666      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1667           (mem:SI (plus:SI (match_dup 9) (const_int -20))))
   1668      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1669           (mem:SI (plus:SI (match_dup 9) (const_int -24))))
   1670      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1671           (mem:SI (plus:SI (match_dup 9) (const_int -28))))
   1672      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1673           (mem:SI (plus:SI (match_dup 9) (const_int -32))))])]
   1674    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1675    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9), writeback, ret"
   1676   [(set_attr "type" "ldwm")])
   1677 
   1678 (define_insn "*cdx_ldwm8_dec_wb"
   1679   [(match_parallel 0 "ldwm_operation"
   1680     [(set (match_operand:SI 9 "register_operand" "+&r")
   1681           (plus:SI (match_dup 9) (const_int -32)))
   1682      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1683           (mem:SI (plus:SI (match_dup 9) (const_int -4))))
   1684      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1685           (mem:SI (plus:SI (match_dup 9) (const_int -8))))
   1686      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1687           (mem:SI (plus:SI (match_dup 9) (const_int -12))))
   1688      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1689           (mem:SI (plus:SI (match_dup 9) (const_int -16))))
   1690      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1691           (mem:SI (plus:SI (match_dup 9) (const_int -20))))
   1692      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1693           (mem:SI (plus:SI (match_dup 9) (const_int -24))))
   1694      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1695           (mem:SI (plus:SI (match_dup 9) (const_int -28))))
   1696      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1697           (mem:SI (plus:SI (match_dup 9) (const_int -32))))])]
   1698    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1699    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9), writeback"
   1700   [(set_attr "type" "ldwm")])
   1701 
   1702 (define_insn "*cdx_ldwm8_dec_ret"
   1703   [(match_parallel 0 "ldwm_operation"
   1704     [(return)
   1705      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1706           (mem:SI (plus:SI (match_operand:SI 9 "register_operand" "r") (const_int -4))))
   1707      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1708           (mem:SI (plus:SI (match_dup 9) (const_int -8))))
   1709      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1710           (mem:SI (plus:SI (match_dup 9) (const_int -12))))
   1711      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1712           (mem:SI (plus:SI (match_dup 9) (const_int -16))))
   1713      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1714           (mem:SI (plus:SI (match_dup 9) (const_int -20))))
   1715      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1716           (mem:SI (plus:SI (match_dup 9) (const_int -24))))
   1717      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1718           (mem:SI (plus:SI (match_dup 9) (const_int -28))))
   1719      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1720           (mem:SI (plus:SI (match_dup 9) (const_int -32))))])]
   1721    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1722    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9), ret"
   1723   [(set_attr "type" "ldwm")])
   1724 
   1725 (define_insn "*cdx_ldwm8_dec"
   1726   [(match_parallel 0 "ldwm_operation"
   1727     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1728           (mem:SI (plus:SI (match_operand:SI 9 "register_operand" "r") (const_int -4))))
   1729      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1730           (mem:SI (plus:SI (match_dup 9) (const_int -8))))
   1731      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1732           (mem:SI (plus:SI (match_dup 9) (const_int -12))))
   1733      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1734           (mem:SI (plus:SI (match_dup 9) (const_int -16))))
   1735      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1736           (mem:SI (plus:SI (match_dup 9) (const_int -20))))
   1737      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1738           (mem:SI (plus:SI (match_dup 9) (const_int -24))))
   1739      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1740           (mem:SI (plus:SI (match_dup 9) (const_int -28))))
   1741      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1742           (mem:SI (plus:SI (match_dup 9) (const_int -32))))])]
   1743    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   1744    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9)"
   1745   [(set_attr "type" "ldwm")])
   1746 
   1747 (define_insn "*cdx_ldwm9_inc_wb_ret"
   1748   [(match_parallel 0 "ldwm_operation"
   1749     [(return)
   1750      (set (match_operand:SI 10 "register_operand" "+&r")
   1751           (plus:SI (match_dup 10) (const_int 36)))
   1752      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1753           (mem:SI (match_dup 10)))
   1754      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1755           (mem:SI (plus:SI (match_dup 10) (const_int 4))))
   1756      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1757           (mem:SI (plus:SI (match_dup 10) (const_int 8))))
   1758      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1759           (mem:SI (plus:SI (match_dup 10) (const_int 12))))
   1760      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1761           (mem:SI (plus:SI (match_dup 10) (const_int 16))))
   1762      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1763           (mem:SI (plus:SI (match_dup 10) (const_int 20))))
   1764      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1765           (mem:SI (plus:SI (match_dup 10) (const_int 24))))
   1766      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1767           (mem:SI (plus:SI (match_dup 10) (const_int 28))))
   1768      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1769           (mem:SI (plus:SI (match_dup 10) (const_int 32))))])]
   1770    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   1771    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++, writeback, ret"
   1772   [(set_attr "type" "ldwm")])
   1773 
   1774 (define_insn "*cdx_ldwm9_inc_wb"
   1775   [(match_parallel 0 "ldwm_operation"
   1776     [(set (match_operand:SI 10 "register_operand" "+&r")
   1777           (plus:SI (match_dup 10) (const_int 36)))
   1778      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1779           (mem:SI (match_dup 10)))
   1780      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1781           (mem:SI (plus:SI (match_dup 10) (const_int 4))))
   1782      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1783           (mem:SI (plus:SI (match_dup 10) (const_int 8))))
   1784      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1785           (mem:SI (plus:SI (match_dup 10) (const_int 12))))
   1786      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1787           (mem:SI (plus:SI (match_dup 10) (const_int 16))))
   1788      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1789           (mem:SI (plus:SI (match_dup 10) (const_int 20))))
   1790      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1791           (mem:SI (plus:SI (match_dup 10) (const_int 24))))
   1792      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1793           (mem:SI (plus:SI (match_dup 10) (const_int 28))))
   1794      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1795           (mem:SI (plus:SI (match_dup 10) (const_int 32))))])]
   1796    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1797    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++, writeback"
   1798   [(set_attr "type" "ldwm")])
   1799 
   1800 (define_insn "*cdx_ldwm9_inc_ret"
   1801   [(match_parallel 0 "ldwm_operation"
   1802     [(return)
   1803      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1804           (mem:SI (match_operand:SI 10 "register_operand" "r")))
   1805      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1806           (mem:SI (plus:SI (match_dup 10) (const_int 4))))
   1807      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1808           (mem:SI (plus:SI (match_dup 10) (const_int 8))))
   1809      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1810           (mem:SI (plus:SI (match_dup 10) (const_int 12))))
   1811      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1812           (mem:SI (plus:SI (match_dup 10) (const_int 16))))
   1813      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1814           (mem:SI (plus:SI (match_dup 10) (const_int 20))))
   1815      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1816           (mem:SI (plus:SI (match_dup 10) (const_int 24))))
   1817      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1818           (mem:SI (plus:SI (match_dup 10) (const_int 28))))
   1819      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1820           (mem:SI (plus:SI (match_dup 10) (const_int 32))))])]
   1821    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1822    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++, ret"
   1823   [(set_attr "type" "ldwm")])
   1824 
   1825 (define_insn "*cdx_ldwm9_inc"
   1826   [(match_parallel 0 "ldwm_operation"
   1827     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1828           (mem:SI (match_operand:SI 10 "register_operand" "r")))
   1829      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1830           (mem:SI (plus:SI (match_dup 10) (const_int 4))))
   1831      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1832           (mem:SI (plus:SI (match_dup 10) (const_int 8))))
   1833      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1834           (mem:SI (plus:SI (match_dup 10) (const_int 12))))
   1835      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1836           (mem:SI (plus:SI (match_dup 10) (const_int 16))))
   1837      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1838           (mem:SI (plus:SI (match_dup 10) (const_int 20))))
   1839      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1840           (mem:SI (plus:SI (match_dup 10) (const_int 24))))
   1841      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1842           (mem:SI (plus:SI (match_dup 10) (const_int 28))))
   1843      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1844           (mem:SI (plus:SI (match_dup 10) (const_int 32))))])]
   1845    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1846    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++"
   1847   [(set_attr "type" "ldwm")])
   1848 
   1849 (define_insn "*cdx_ldwm9_dec_wb_ret"
   1850   [(match_parallel 0 "ldwm_operation"
   1851     [(return)
   1852      (set (match_operand:SI 10 "register_operand" "+&r")
   1853           (plus:SI (match_dup 10) (const_int -36)))
   1854      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1855           (mem:SI (plus:SI (match_dup 10) (const_int -4))))
   1856      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1857           (mem:SI (plus:SI (match_dup 10) (const_int -8))))
   1858      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1859           (mem:SI (plus:SI (match_dup 10) (const_int -12))))
   1860      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1861           (mem:SI (plus:SI (match_dup 10) (const_int -16))))
   1862      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1863           (mem:SI (plus:SI (match_dup 10) (const_int -20))))
   1864      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1865           (mem:SI (plus:SI (match_dup 10) (const_int -24))))
   1866      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1867           (mem:SI (plus:SI (match_dup 10) (const_int -28))))
   1868      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1869           (mem:SI (plus:SI (match_dup 10) (const_int -32))))
   1870      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1871           (mem:SI (plus:SI (match_dup 10) (const_int -36))))])]
   1872    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   1873    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10), writeback, ret"
   1874   [(set_attr "type" "ldwm")])
   1875 
   1876 (define_insn "*cdx_ldwm9_dec_wb"
   1877   [(match_parallel 0 "ldwm_operation"
   1878     [(set (match_operand:SI 10 "register_operand" "+&r")
   1879           (plus:SI (match_dup 10) (const_int -36)))
   1880      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1881           (mem:SI (plus:SI (match_dup 10) (const_int -4))))
   1882      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1883           (mem:SI (plus:SI (match_dup 10) (const_int -8))))
   1884      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1885           (mem:SI (plus:SI (match_dup 10) (const_int -12))))
   1886      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1887           (mem:SI (plus:SI (match_dup 10) (const_int -16))))
   1888      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1889           (mem:SI (plus:SI (match_dup 10) (const_int -20))))
   1890      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1891           (mem:SI (plus:SI (match_dup 10) (const_int -24))))
   1892      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1893           (mem:SI (plus:SI (match_dup 10) (const_int -28))))
   1894      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1895           (mem:SI (plus:SI (match_dup 10) (const_int -32))))
   1896      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1897           (mem:SI (plus:SI (match_dup 10) (const_int -36))))])]
   1898    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1899    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10), writeback"
   1900   [(set_attr "type" "ldwm")])
   1901 
   1902 (define_insn "*cdx_ldwm9_dec_ret"
   1903   [(match_parallel 0 "ldwm_operation"
   1904     [(return)
   1905      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1906           (mem:SI (plus:SI (match_operand:SI 10 "register_operand" "r") (const_int -4))))
   1907      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1908           (mem:SI (plus:SI (match_dup 10) (const_int -8))))
   1909      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1910           (mem:SI (plus:SI (match_dup 10) (const_int -12))))
   1911      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1912           (mem:SI (plus:SI (match_dup 10) (const_int -16))))
   1913      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1914           (mem:SI (plus:SI (match_dup 10) (const_int -20))))
   1915      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1916           (mem:SI (plus:SI (match_dup 10) (const_int -24))))
   1917      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1918           (mem:SI (plus:SI (match_dup 10) (const_int -28))))
   1919      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1920           (mem:SI (plus:SI (match_dup 10) (const_int -32))))
   1921      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1922           (mem:SI (plus:SI (match_dup 10) (const_int -36))))])]
   1923    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   1924    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10), ret"
   1925   [(set_attr "type" "ldwm")])
   1926 
   1927 (define_insn "*cdx_ldwm9_dec"
   1928   [(match_parallel 0 "ldwm_operation"
   1929     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1930           (mem:SI (plus:SI (match_operand:SI 10 "register_operand" "r") (const_int -4))))
   1931      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1932           (mem:SI (plus:SI (match_dup 10) (const_int -8))))
   1933      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1934           (mem:SI (plus:SI (match_dup 10) (const_int -12))))
   1935      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1936           (mem:SI (plus:SI (match_dup 10) (const_int -16))))
   1937      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1938           (mem:SI (plus:SI (match_dup 10) (const_int -20))))
   1939      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1940           (mem:SI (plus:SI (match_dup 10) (const_int -24))))
   1941      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1942           (mem:SI (plus:SI (match_dup 10) (const_int -28))))
   1943      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1944           (mem:SI (plus:SI (match_dup 10) (const_int -32))))
   1945      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1946           (mem:SI (plus:SI (match_dup 10) (const_int -36))))])]
   1947    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   1948    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10)"
   1949   [(set_attr "type" "ldwm")])
   1950 
   1951 (define_insn "*cdx_ldwm10_inc_wb_ret"
   1952   [(match_parallel 0 "ldwm_operation"
   1953     [(return)
   1954      (set (match_operand:SI 11 "register_operand" "+&r")
   1955           (plus:SI (match_dup 11) (const_int 40)))
   1956      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1957           (mem:SI (match_dup 11)))
   1958      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1959           (mem:SI (plus:SI (match_dup 11) (const_int 4))))
   1960      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1961           (mem:SI (plus:SI (match_dup 11) (const_int 8))))
   1962      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1963           (mem:SI (plus:SI (match_dup 11) (const_int 12))))
   1964      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1965           (mem:SI (plus:SI (match_dup 11) (const_int 16))))
   1966      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1967           (mem:SI (plus:SI (match_dup 11) (const_int 20))))
   1968      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1969           (mem:SI (plus:SI (match_dup 11) (const_int 24))))
   1970      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1971           (mem:SI (plus:SI (match_dup 11) (const_int 28))))
   1972      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   1973           (mem:SI (plus:SI (match_dup 11) (const_int 32))))
   1974      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   1975           (mem:SI (plus:SI (match_dup 11) (const_int 36))))])]
   1976    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   1977    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++, writeback, ret"
   1978   [(set_attr "type" "ldwm")])
   1979 
   1980 (define_insn "*cdx_ldwm10_inc_wb"
   1981   [(match_parallel 0 "ldwm_operation"
   1982     [(set (match_operand:SI 11 "register_operand" "+&r")
   1983           (plus:SI (match_dup 11) (const_int 40)))
   1984      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   1985           (mem:SI (match_dup 11)))
   1986      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   1987           (mem:SI (plus:SI (match_dup 11) (const_int 4))))
   1988      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   1989           (mem:SI (plus:SI (match_dup 11) (const_int 8))))
   1990      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   1991           (mem:SI (plus:SI (match_dup 11) (const_int 12))))
   1992      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   1993           (mem:SI (plus:SI (match_dup 11) (const_int 16))))
   1994      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   1995           (mem:SI (plus:SI (match_dup 11) (const_int 20))))
   1996      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   1997           (mem:SI (plus:SI (match_dup 11) (const_int 24))))
   1998      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   1999           (mem:SI (plus:SI (match_dup 11) (const_int 28))))
   2000      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2001           (mem:SI (plus:SI (match_dup 11) (const_int 32))))
   2002      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2003           (mem:SI (plus:SI (match_dup 11) (const_int 36))))])]
   2004    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2005    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++, writeback"
   2006   [(set_attr "type" "ldwm")])
   2007 
   2008 (define_insn "*cdx_ldwm10_inc_ret"
   2009   [(match_parallel 0 "ldwm_operation"
   2010     [(return)
   2011      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2012           (mem:SI (match_operand:SI 11 "register_operand" "r")))
   2013      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2014           (mem:SI (plus:SI (match_dup 11) (const_int 4))))
   2015      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2016           (mem:SI (plus:SI (match_dup 11) (const_int 8))))
   2017      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2018           (mem:SI (plus:SI (match_dup 11) (const_int 12))))
   2019      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2020           (mem:SI (plus:SI (match_dup 11) (const_int 16))))
   2021      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2022           (mem:SI (plus:SI (match_dup 11) (const_int 20))))
   2023      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2024           (mem:SI (plus:SI (match_dup 11) (const_int 24))))
   2025      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2026           (mem:SI (plus:SI (match_dup 11) (const_int 28))))
   2027      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2028           (mem:SI (plus:SI (match_dup 11) (const_int 32))))
   2029      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2030           (mem:SI (plus:SI (match_dup 11) (const_int 36))))])]
   2031    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2032    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++, ret"
   2033   [(set_attr "type" "ldwm")])
   2034 
   2035 (define_insn "*cdx_ldwm10_inc"
   2036   [(match_parallel 0 "ldwm_operation"
   2037     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2038           (mem:SI (match_operand:SI 11 "register_operand" "r")))
   2039      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2040           (mem:SI (plus:SI (match_dup 11) (const_int 4))))
   2041      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2042           (mem:SI (plus:SI (match_dup 11) (const_int 8))))
   2043      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2044           (mem:SI (plus:SI (match_dup 11) (const_int 12))))
   2045      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2046           (mem:SI (plus:SI (match_dup 11) (const_int 16))))
   2047      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2048           (mem:SI (plus:SI (match_dup 11) (const_int 20))))
   2049      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2050           (mem:SI (plus:SI (match_dup 11) (const_int 24))))
   2051      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2052           (mem:SI (plus:SI (match_dup 11) (const_int 28))))
   2053      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2054           (mem:SI (plus:SI (match_dup 11) (const_int 32))))
   2055      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2056           (mem:SI (plus:SI (match_dup 11) (const_int 36))))])]
   2057    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   2058    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++"
   2059   [(set_attr "type" "ldwm")])
   2060 
   2061 (define_insn "*cdx_ldwm10_dec_wb_ret"
   2062   [(match_parallel 0 "ldwm_operation"
   2063     [(return)
   2064      (set (match_operand:SI 11 "register_operand" "+&r")
   2065           (plus:SI (match_dup 11) (const_int -40)))
   2066      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2067           (mem:SI (plus:SI (match_dup 11) (const_int -4))))
   2068      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2069           (mem:SI (plus:SI (match_dup 11) (const_int -8))))
   2070      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2071           (mem:SI (plus:SI (match_dup 11) (const_int -12))))
   2072      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2073           (mem:SI (plus:SI (match_dup 11) (const_int -16))))
   2074      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2075           (mem:SI (plus:SI (match_dup 11) (const_int -20))))
   2076      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2077           (mem:SI (plus:SI (match_dup 11) (const_int -24))))
   2078      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2079           (mem:SI (plus:SI (match_dup 11) (const_int -28))))
   2080      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2081           (mem:SI (plus:SI (match_dup 11) (const_int -32))))
   2082      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2083           (mem:SI (plus:SI (match_dup 11) (const_int -36))))
   2084      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2085           (mem:SI (plus:SI (match_dup 11) (const_int -40))))])]
   2086    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2087    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11), writeback, ret"
   2088   [(set_attr "type" "ldwm")])
   2089 
   2090 (define_insn "*cdx_ldwm10_dec_wb"
   2091   [(match_parallel 0 "ldwm_operation"
   2092     [(set (match_operand:SI 11 "register_operand" "+&r")
   2093           (plus:SI (match_dup 11) (const_int -40)))
   2094      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2095           (mem:SI (plus:SI (match_dup 11) (const_int -4))))
   2096      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2097           (mem:SI (plus:SI (match_dup 11) (const_int -8))))
   2098      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2099           (mem:SI (plus:SI (match_dup 11) (const_int -12))))
   2100      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2101           (mem:SI (plus:SI (match_dup 11) (const_int -16))))
   2102      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2103           (mem:SI (plus:SI (match_dup 11) (const_int -20))))
   2104      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2105           (mem:SI (plus:SI (match_dup 11) (const_int -24))))
   2106      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2107           (mem:SI (plus:SI (match_dup 11) (const_int -28))))
   2108      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2109           (mem:SI (plus:SI (match_dup 11) (const_int -32))))
   2110      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2111           (mem:SI (plus:SI (match_dup 11) (const_int -36))))
   2112      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2113           (mem:SI (plus:SI (match_dup 11) (const_int -40))))])]
   2114    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2115    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11), writeback"
   2116   [(set_attr "type" "ldwm")])
   2117 
   2118 (define_insn "*cdx_ldwm10_dec_ret"
   2119   [(match_parallel 0 "ldwm_operation"
   2120     [(return)
   2121      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2122           (mem:SI (plus:SI (match_operand:SI 11 "register_operand" "r") (const_int -4))))
   2123      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2124           (mem:SI (plus:SI (match_dup 11) (const_int -8))))
   2125      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2126           (mem:SI (plus:SI (match_dup 11) (const_int -12))))
   2127      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2128           (mem:SI (plus:SI (match_dup 11) (const_int -16))))
   2129      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2130           (mem:SI (plus:SI (match_dup 11) (const_int -20))))
   2131      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2132           (mem:SI (plus:SI (match_dup 11) (const_int -24))))
   2133      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2134           (mem:SI (plus:SI (match_dup 11) (const_int -28))))
   2135      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2136           (mem:SI (plus:SI (match_dup 11) (const_int -32))))
   2137      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2138           (mem:SI (plus:SI (match_dup 11) (const_int -36))))
   2139      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2140           (mem:SI (plus:SI (match_dup 11) (const_int -40))))])]
   2141    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2142    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11), ret"
   2143   [(set_attr "type" "ldwm")])
   2144 
   2145 (define_insn "*cdx_ldwm10_dec"
   2146   [(match_parallel 0 "ldwm_operation"
   2147     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2148           (mem:SI (plus:SI (match_operand:SI 11 "register_operand" "r") (const_int -4))))
   2149      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2150           (mem:SI (plus:SI (match_dup 11) (const_int -8))))
   2151      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2152           (mem:SI (plus:SI (match_dup 11) (const_int -12))))
   2153      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2154           (mem:SI (plus:SI (match_dup 11) (const_int -16))))
   2155      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2156           (mem:SI (plus:SI (match_dup 11) (const_int -20))))
   2157      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2158           (mem:SI (plus:SI (match_dup 11) (const_int -24))))
   2159      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2160           (mem:SI (plus:SI (match_dup 11) (const_int -28))))
   2161      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2162           (mem:SI (plus:SI (match_dup 11) (const_int -32))))
   2163      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2164           (mem:SI (plus:SI (match_dup 11) (const_int -36))))
   2165      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2166           (mem:SI (plus:SI (match_dup 11) (const_int -40))))])]
   2167    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   2168    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11)"
   2169   [(set_attr "type" "ldwm")])
   2170 
   2171 (define_insn "*cdx_ldwm11_inc_wb_ret"
   2172   [(match_parallel 0 "ldwm_operation"
   2173     [(return)
   2174      (set (match_operand:SI 12 "register_operand" "+&r")
   2175           (plus:SI (match_dup 12) (const_int 44)))
   2176      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2177           (mem:SI (match_dup 12)))
   2178      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2179           (mem:SI (plus:SI (match_dup 12) (const_int 4))))
   2180      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2181           (mem:SI (plus:SI (match_dup 12) (const_int 8))))
   2182      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2183           (mem:SI (plus:SI (match_dup 12) (const_int 12))))
   2184      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2185           (mem:SI (plus:SI (match_dup 12) (const_int 16))))
   2186      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2187           (mem:SI (plus:SI (match_dup 12) (const_int 20))))
   2188      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2189           (mem:SI (plus:SI (match_dup 12) (const_int 24))))
   2190      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2191           (mem:SI (plus:SI (match_dup 12) (const_int 28))))
   2192      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2193           (mem:SI (plus:SI (match_dup 12) (const_int 32))))
   2194      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2195           (mem:SI (plus:SI (match_dup 12) (const_int 36))))
   2196      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2197           (mem:SI (plus:SI (match_dup 12) (const_int 40))))])]
   2198    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2199    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++, writeback, ret"
   2200   [(set_attr "type" "ldwm")])
   2201 
   2202 (define_insn "*cdx_ldwm11_inc_wb"
   2203   [(match_parallel 0 "ldwm_operation"
   2204     [(set (match_operand:SI 12 "register_operand" "+&r")
   2205           (plus:SI (match_dup 12) (const_int 44)))
   2206      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2207           (mem:SI (match_dup 12)))
   2208      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2209           (mem:SI (plus:SI (match_dup 12) (const_int 4))))
   2210      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2211           (mem:SI (plus:SI (match_dup 12) (const_int 8))))
   2212      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2213           (mem:SI (plus:SI (match_dup 12) (const_int 12))))
   2214      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2215           (mem:SI (plus:SI (match_dup 12) (const_int 16))))
   2216      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2217           (mem:SI (plus:SI (match_dup 12) (const_int 20))))
   2218      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2219           (mem:SI (plus:SI (match_dup 12) (const_int 24))))
   2220      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2221           (mem:SI (plus:SI (match_dup 12) (const_int 28))))
   2222      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2223           (mem:SI (plus:SI (match_dup 12) (const_int 32))))
   2224      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2225           (mem:SI (plus:SI (match_dup 12) (const_int 36))))
   2226      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2227           (mem:SI (plus:SI (match_dup 12) (const_int 40))))])]
   2228    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2229    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++, writeback"
   2230   [(set_attr "type" "ldwm")])
   2231 
   2232 (define_insn "*cdx_ldwm11_inc_ret"
   2233   [(match_parallel 0 "ldwm_operation"
   2234     [(return)
   2235      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2236           (mem:SI (match_operand:SI 12 "register_operand" "r")))
   2237      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2238           (mem:SI (plus:SI (match_dup 12) (const_int 4))))
   2239      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2240           (mem:SI (plus:SI (match_dup 12) (const_int 8))))
   2241      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2242           (mem:SI (plus:SI (match_dup 12) (const_int 12))))
   2243      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2244           (mem:SI (plus:SI (match_dup 12) (const_int 16))))
   2245      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2246           (mem:SI (plus:SI (match_dup 12) (const_int 20))))
   2247      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2248           (mem:SI (plus:SI (match_dup 12) (const_int 24))))
   2249      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2250           (mem:SI (plus:SI (match_dup 12) (const_int 28))))
   2251      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2252           (mem:SI (plus:SI (match_dup 12) (const_int 32))))
   2253      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2254           (mem:SI (plus:SI (match_dup 12) (const_int 36))))
   2255      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2256           (mem:SI (plus:SI (match_dup 12) (const_int 40))))])]
   2257    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2258    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++, ret"
   2259   [(set_attr "type" "ldwm")])
   2260 
   2261 (define_insn "*cdx_ldwm11_inc"
   2262   [(match_parallel 0 "ldwm_operation"
   2263     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2264           (mem:SI (match_operand:SI 12 "register_operand" "r")))
   2265      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2266           (mem:SI (plus:SI (match_dup 12) (const_int 4))))
   2267      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2268           (mem:SI (plus:SI (match_dup 12) (const_int 8))))
   2269      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2270           (mem:SI (plus:SI (match_dup 12) (const_int 12))))
   2271      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2272           (mem:SI (plus:SI (match_dup 12) (const_int 16))))
   2273      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2274           (mem:SI (plus:SI (match_dup 12) (const_int 20))))
   2275      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2276           (mem:SI (plus:SI (match_dup 12) (const_int 24))))
   2277      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2278           (mem:SI (plus:SI (match_dup 12) (const_int 28))))
   2279      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2280           (mem:SI (plus:SI (match_dup 12) (const_int 32))))
   2281      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2282           (mem:SI (plus:SI (match_dup 12) (const_int 36))))
   2283      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2284           (mem:SI (plus:SI (match_dup 12) (const_int 40))))])]
   2285    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2286    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++"
   2287   [(set_attr "type" "ldwm")])
   2288 
   2289 (define_insn "*cdx_ldwm11_dec_wb_ret"
   2290   [(match_parallel 0 "ldwm_operation"
   2291     [(return)
   2292      (set (match_operand:SI 12 "register_operand" "+&r")
   2293           (plus:SI (match_dup 12) (const_int -44)))
   2294      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2295           (mem:SI (plus:SI (match_dup 12) (const_int -4))))
   2296      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2297           (mem:SI (plus:SI (match_dup 12) (const_int -8))))
   2298      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2299           (mem:SI (plus:SI (match_dup 12) (const_int -12))))
   2300      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2301           (mem:SI (plus:SI (match_dup 12) (const_int -16))))
   2302      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2303           (mem:SI (plus:SI (match_dup 12) (const_int -20))))
   2304      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2305           (mem:SI (plus:SI (match_dup 12) (const_int -24))))
   2306      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2307           (mem:SI (plus:SI (match_dup 12) (const_int -28))))
   2308      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2309           (mem:SI (plus:SI (match_dup 12) (const_int -32))))
   2310      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2311           (mem:SI (plus:SI (match_dup 12) (const_int -36))))
   2312      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2313           (mem:SI (plus:SI (match_dup 12) (const_int -40))))
   2314      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2315           (mem:SI (plus:SI (match_dup 12) (const_int -44))))])]
   2316    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2317    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12), writeback, ret"
   2318   [(set_attr "type" "ldwm")])
   2319 
   2320 (define_insn "*cdx_ldwm11_dec_wb"
   2321   [(match_parallel 0 "ldwm_operation"
   2322     [(set (match_operand:SI 12 "register_operand" "+&r")
   2323           (plus:SI (match_dup 12) (const_int -44)))
   2324      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2325           (mem:SI (plus:SI (match_dup 12) (const_int -4))))
   2326      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2327           (mem:SI (plus:SI (match_dup 12) (const_int -8))))
   2328      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2329           (mem:SI (plus:SI (match_dup 12) (const_int -12))))
   2330      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2331           (mem:SI (plus:SI (match_dup 12) (const_int -16))))
   2332      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2333           (mem:SI (plus:SI (match_dup 12) (const_int -20))))
   2334      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2335           (mem:SI (plus:SI (match_dup 12) (const_int -24))))
   2336      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2337           (mem:SI (plus:SI (match_dup 12) (const_int -28))))
   2338      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2339           (mem:SI (plus:SI (match_dup 12) (const_int -32))))
   2340      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2341           (mem:SI (plus:SI (match_dup 12) (const_int -36))))
   2342      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2343           (mem:SI (plus:SI (match_dup 12) (const_int -40))))
   2344      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2345           (mem:SI (plus:SI (match_dup 12) (const_int -44))))])]
   2346    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2347    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12), writeback"
   2348   [(set_attr "type" "ldwm")])
   2349 
   2350 (define_insn "*cdx_ldwm11_dec_ret"
   2351   [(match_parallel 0 "ldwm_operation"
   2352     [(return)
   2353      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2354           (mem:SI (plus:SI (match_operand:SI 12 "register_operand" "r") (const_int -4))))
   2355      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2356           (mem:SI (plus:SI (match_dup 12) (const_int -8))))
   2357      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2358           (mem:SI (plus:SI (match_dup 12) (const_int -12))))
   2359      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2360           (mem:SI (plus:SI (match_dup 12) (const_int -16))))
   2361      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2362           (mem:SI (plus:SI (match_dup 12) (const_int -20))))
   2363      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2364           (mem:SI (plus:SI (match_dup 12) (const_int -24))))
   2365      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2366           (mem:SI (plus:SI (match_dup 12) (const_int -28))))
   2367      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2368           (mem:SI (plus:SI (match_dup 12) (const_int -32))))
   2369      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2370           (mem:SI (plus:SI (match_dup 12) (const_int -36))))
   2371      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2372           (mem:SI (plus:SI (match_dup 12) (const_int -40))))
   2373      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2374           (mem:SI (plus:SI (match_dup 12) (const_int -44))))])]
   2375    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2376    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12), ret"
   2377   [(set_attr "type" "ldwm")])
   2378 
   2379 (define_insn "*cdx_ldwm11_dec"
   2380   [(match_parallel 0 "ldwm_operation"
   2381     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2382           (mem:SI (plus:SI (match_operand:SI 12 "register_operand" "r") (const_int -4))))
   2383      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2384           (mem:SI (plus:SI (match_dup 12) (const_int -8))))
   2385      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2386           (mem:SI (plus:SI (match_dup 12) (const_int -12))))
   2387      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2388           (mem:SI (plus:SI (match_dup 12) (const_int -16))))
   2389      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2390           (mem:SI (plus:SI (match_dup 12) (const_int -20))))
   2391      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2392           (mem:SI (plus:SI (match_dup 12) (const_int -24))))
   2393      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2394           (mem:SI (plus:SI (match_dup 12) (const_int -28))))
   2395      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2396           (mem:SI (plus:SI (match_dup 12) (const_int -32))))
   2397      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2398           (mem:SI (plus:SI (match_dup 12) (const_int -36))))
   2399      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2400           (mem:SI (plus:SI (match_dup 12) (const_int -40))))
   2401      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2402           (mem:SI (plus:SI (match_dup 12) (const_int -44))))])]
   2403    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   2404    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12)"
   2405   [(set_attr "type" "ldwm")])
   2406 
   2407 (define_insn "*cdx_ldwm12_inc_wb_ret"
   2408   [(match_parallel 0 "ldwm_operation"
   2409     [(return)
   2410      (set (match_operand:SI 13 "register_operand" "+&r")
   2411           (plus:SI (match_dup 13) (const_int 48)))
   2412      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2413           (mem:SI (match_dup 13)))
   2414      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2415           (mem:SI (plus:SI (match_dup 13) (const_int 4))))
   2416      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2417           (mem:SI (plus:SI (match_dup 13) (const_int 8))))
   2418      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2419           (mem:SI (plus:SI (match_dup 13) (const_int 12))))
   2420      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2421           (mem:SI (plus:SI (match_dup 13) (const_int 16))))
   2422      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2423           (mem:SI (plus:SI (match_dup 13) (const_int 20))))
   2424      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2425           (mem:SI (plus:SI (match_dup 13) (const_int 24))))
   2426      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2427           (mem:SI (plus:SI (match_dup 13) (const_int 28))))
   2428      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2429           (mem:SI (plus:SI (match_dup 13) (const_int 32))))
   2430      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2431           (mem:SI (plus:SI (match_dup 13) (const_int 36))))
   2432      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2433           (mem:SI (plus:SI (match_dup 13) (const_int 40))))
   2434      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2435           (mem:SI (plus:SI (match_dup 13) (const_int 44))))])]
   2436    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 14"
   2437    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++, writeback, ret"
   2438   [(set_attr "type" "ldwm")])
   2439 
   2440 (define_insn "*cdx_ldwm12_inc_wb"
   2441   [(match_parallel 0 "ldwm_operation"
   2442     [(set (match_operand:SI 13 "register_operand" "+&r")
   2443           (plus:SI (match_dup 13) (const_int 48)))
   2444      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2445           (mem:SI (match_dup 13)))
   2446      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2447           (mem:SI (plus:SI (match_dup 13) (const_int 4))))
   2448      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2449           (mem:SI (plus:SI (match_dup 13) (const_int 8))))
   2450      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2451           (mem:SI (plus:SI (match_dup 13) (const_int 12))))
   2452      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2453           (mem:SI (plus:SI (match_dup 13) (const_int 16))))
   2454      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2455           (mem:SI (plus:SI (match_dup 13) (const_int 20))))
   2456      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2457           (mem:SI (plus:SI (match_dup 13) (const_int 24))))
   2458      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2459           (mem:SI (plus:SI (match_dup 13) (const_int 28))))
   2460      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2461           (mem:SI (plus:SI (match_dup 13) (const_int 32))))
   2462      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2463           (mem:SI (plus:SI (match_dup 13) (const_int 36))))
   2464      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2465           (mem:SI (plus:SI (match_dup 13) (const_int 40))))
   2466      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2467           (mem:SI (plus:SI (match_dup 13) (const_int 44))))])]
   2468    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2469    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++, writeback"
   2470   [(set_attr "type" "ldwm")])
   2471 
   2472 (define_insn "*cdx_ldwm12_inc_ret"
   2473   [(match_parallel 0 "ldwm_operation"
   2474     [(return)
   2475      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2476           (mem:SI (match_operand:SI 13 "register_operand" "r")))
   2477      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2478           (mem:SI (plus:SI (match_dup 13) (const_int 4))))
   2479      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2480           (mem:SI (plus:SI (match_dup 13) (const_int 8))))
   2481      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2482           (mem:SI (plus:SI (match_dup 13) (const_int 12))))
   2483      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2484           (mem:SI (plus:SI (match_dup 13) (const_int 16))))
   2485      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2486           (mem:SI (plus:SI (match_dup 13) (const_int 20))))
   2487      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2488           (mem:SI (plus:SI (match_dup 13) (const_int 24))))
   2489      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2490           (mem:SI (plus:SI (match_dup 13) (const_int 28))))
   2491      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2492           (mem:SI (plus:SI (match_dup 13) (const_int 32))))
   2493      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2494           (mem:SI (plus:SI (match_dup 13) (const_int 36))))
   2495      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2496           (mem:SI (plus:SI (match_dup 13) (const_int 40))))
   2497      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2498           (mem:SI (plus:SI (match_dup 13) (const_int 44))))])]
   2499    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2500    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++, ret"
   2501   [(set_attr "type" "ldwm")])
   2502 
   2503 (define_insn "*cdx_ldwm12_inc"
   2504   [(match_parallel 0 "ldwm_operation"
   2505     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2506           (mem:SI (match_operand:SI 13 "register_operand" "r")))
   2507      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2508           (mem:SI (plus:SI (match_dup 13) (const_int 4))))
   2509      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2510           (mem:SI (plus:SI (match_dup 13) (const_int 8))))
   2511      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2512           (mem:SI (plus:SI (match_dup 13) (const_int 12))))
   2513      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2514           (mem:SI (plus:SI (match_dup 13) (const_int 16))))
   2515      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2516           (mem:SI (plus:SI (match_dup 13) (const_int 20))))
   2517      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2518           (mem:SI (plus:SI (match_dup 13) (const_int 24))))
   2519      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2520           (mem:SI (plus:SI (match_dup 13) (const_int 28))))
   2521      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2522           (mem:SI (plus:SI (match_dup 13) (const_int 32))))
   2523      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2524           (mem:SI (plus:SI (match_dup 13) (const_int 36))))
   2525      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2526           (mem:SI (plus:SI (match_dup 13) (const_int 40))))
   2527      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2528           (mem:SI (plus:SI (match_dup 13) (const_int 44))))])]
   2529    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2530    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++"
   2531   [(set_attr "type" "ldwm")])
   2532 
   2533 (define_insn "*cdx_ldwm12_dec_wb_ret"
   2534   [(match_parallel 0 "ldwm_operation"
   2535     [(return)
   2536      (set (match_operand:SI 13 "register_operand" "+&r")
   2537           (plus:SI (match_dup 13) (const_int -48)))
   2538      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2539           (mem:SI (plus:SI (match_dup 13) (const_int -4))))
   2540      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2541           (mem:SI (plus:SI (match_dup 13) (const_int -8))))
   2542      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2543           (mem:SI (plus:SI (match_dup 13) (const_int -12))))
   2544      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2545           (mem:SI (plus:SI (match_dup 13) (const_int -16))))
   2546      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2547           (mem:SI (plus:SI (match_dup 13) (const_int -20))))
   2548      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2549           (mem:SI (plus:SI (match_dup 13) (const_int -24))))
   2550      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2551           (mem:SI (plus:SI (match_dup 13) (const_int -28))))
   2552      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2553           (mem:SI (plus:SI (match_dup 13) (const_int -32))))
   2554      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2555           (mem:SI (plus:SI (match_dup 13) (const_int -36))))
   2556      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2557           (mem:SI (plus:SI (match_dup 13) (const_int -40))))
   2558      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2559           (mem:SI (plus:SI (match_dup 13) (const_int -44))))
   2560      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2561           (mem:SI (plus:SI (match_dup 13) (const_int -48))))])]
   2562    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 14"
   2563    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13), writeback, ret"
   2564   [(set_attr "type" "ldwm")])
   2565 
   2566 (define_insn "*cdx_ldwm12_dec_wb"
   2567   [(match_parallel 0 "ldwm_operation"
   2568     [(set (match_operand:SI 13 "register_operand" "+&r")
   2569           (plus:SI (match_dup 13) (const_int -48)))
   2570      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2571           (mem:SI (plus:SI (match_dup 13) (const_int -4))))
   2572      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2573           (mem:SI (plus:SI (match_dup 13) (const_int -8))))
   2574      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2575           (mem:SI (plus:SI (match_dup 13) (const_int -12))))
   2576      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2577           (mem:SI (plus:SI (match_dup 13) (const_int -16))))
   2578      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2579           (mem:SI (plus:SI (match_dup 13) (const_int -20))))
   2580      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2581           (mem:SI (plus:SI (match_dup 13) (const_int -24))))
   2582      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2583           (mem:SI (plus:SI (match_dup 13) (const_int -28))))
   2584      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2585           (mem:SI (plus:SI (match_dup 13) (const_int -32))))
   2586      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2587           (mem:SI (plus:SI (match_dup 13) (const_int -36))))
   2588      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2589           (mem:SI (plus:SI (match_dup 13) (const_int -40))))
   2590      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2591           (mem:SI (plus:SI (match_dup 13) (const_int -44))))
   2592      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2593           (mem:SI (plus:SI (match_dup 13) (const_int -48))))])]
   2594    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2595    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13), writeback"
   2596   [(set_attr "type" "ldwm")])
   2597 
   2598 (define_insn "*cdx_ldwm12_dec_ret"
   2599   [(match_parallel 0 "ldwm_operation"
   2600     [(return)
   2601      (set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2602           (mem:SI (plus:SI (match_operand:SI 13 "register_operand" "r") (const_int -4))))
   2603      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2604           (mem:SI (plus:SI (match_dup 13) (const_int -8))))
   2605      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2606           (mem:SI (plus:SI (match_dup 13) (const_int -12))))
   2607      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2608           (mem:SI (plus:SI (match_dup 13) (const_int -16))))
   2609      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2610           (mem:SI (plus:SI (match_dup 13) (const_int -20))))
   2611      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2612           (mem:SI (plus:SI (match_dup 13) (const_int -24))))
   2613      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2614           (mem:SI (plus:SI (match_dup 13) (const_int -28))))
   2615      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2616           (mem:SI (plus:SI (match_dup 13) (const_int -32))))
   2617      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2618           (mem:SI (plus:SI (match_dup 13) (const_int -36))))
   2619      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2620           (mem:SI (plus:SI (match_dup 13) (const_int -40))))
   2621      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2622           (mem:SI (plus:SI (match_dup 13) (const_int -44))))
   2623      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2624           (mem:SI (plus:SI (match_dup 13) (const_int -48))))])]
   2625    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   2626    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13), ret"
   2627   [(set_attr "type" "ldwm")])
   2628 
   2629 (define_insn "*cdx_ldwm12_dec"
   2630   [(match_parallel 0 "ldwm_operation"
   2631     [(set (match_operand:SI 1 "nios2_hard_register_operand" "")
   2632           (mem:SI (plus:SI (match_operand:SI 13 "register_operand" "r") (const_int -4))))
   2633      (set (match_operand:SI 2 "nios2_hard_register_operand" "")
   2634           (mem:SI (plus:SI (match_dup 13) (const_int -8))))
   2635      (set (match_operand:SI 3 "nios2_hard_register_operand" "")
   2636           (mem:SI (plus:SI (match_dup 13) (const_int -12))))
   2637      (set (match_operand:SI 4 "nios2_hard_register_operand" "")
   2638           (mem:SI (plus:SI (match_dup 13) (const_int -16))))
   2639      (set (match_operand:SI 5 "nios2_hard_register_operand" "")
   2640           (mem:SI (plus:SI (match_dup 13) (const_int -20))))
   2641      (set (match_operand:SI 6 "nios2_hard_register_operand" "")
   2642           (mem:SI (plus:SI (match_dup 13) (const_int -24))))
   2643      (set (match_operand:SI 7 "nios2_hard_register_operand" "")
   2644           (mem:SI (plus:SI (match_dup 13) (const_int -28))))
   2645      (set (match_operand:SI 8 "nios2_hard_register_operand" "")
   2646           (mem:SI (plus:SI (match_dup 13) (const_int -32))))
   2647      (set (match_operand:SI 9 "nios2_hard_register_operand" "")
   2648           (mem:SI (plus:SI (match_dup 13) (const_int -36))))
   2649      (set (match_operand:SI 10 "nios2_hard_register_operand" "")
   2650           (mem:SI (plus:SI (match_dup 13) (const_int -40))))
   2651      (set (match_operand:SI 11 "nios2_hard_register_operand" "")
   2652           (mem:SI (plus:SI (match_dup 13) (const_int -44))))
   2653      (set (match_operand:SI 12 "nios2_hard_register_operand" "")
   2654           (mem:SI (plus:SI (match_dup 13) (const_int -48))))])]
   2655    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   2656    "ldwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13)"
   2657   [(set_attr "type" "ldwm")])
   2658 
   2659 (define_insn "*cdx_stwm1_inc_wb"
   2660   [(match_parallel 0 "stwm_operation"
   2661     [(set (match_operand:SI 2 "register_operand" "+&r")
   2662           (plus:SI (match_dup 2) (const_int 4)))
   2663      (set (mem:SI (match_dup 2))
   2664           (match_operand:SI 1 "nios2_hard_register_operand" ""))])]
   2665    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
   2666    "stwm\\t{%1}, (%2)++, writeback"
   2667   [(set_attr "type" "stwm")])
   2668 
   2669 (define_insn "*cdx_stwm1_inc"
   2670   [(match_parallel 0 "stwm_operation"
   2671     [(set (mem:SI (match_operand:SI 2 "register_operand" "r"))
   2672           (match_operand:SI 1 "nios2_hard_register_operand" ""))])]
   2673    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 1"
   2674    "stwm\\t{%1}, (%2)++"
   2675   [(set_attr "type" "stwm")])
   2676 
   2677 (define_insn "*cdx_stwm1_dec_wb"
   2678   [(match_parallel 0 "stwm_operation"
   2679     [(set (match_operand:SI 2 "register_operand" "+&r")
   2680           (plus:SI (match_dup 2) (const_int -4)))
   2681      (set (mem:SI (plus:SI (match_dup 2) (const_int -4)))
   2682           (match_operand:SI 1 "nios2_hard_register_operand" ""))])]
   2683    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
   2684    "stwm\\t{%1}, --(%2), writeback"
   2685   [(set_attr "type" "stwm")])
   2686 
   2687 (define_insn "*cdx_stwm1_dec"
   2688   [(match_parallel 0 "stwm_operation"
   2689     [(set (mem:SI (plus:SI (match_operand:SI 2 "register_operand" "r") (const_int -4)))
   2690           (match_operand:SI 1 "nios2_hard_register_operand" ""))])]
   2691    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 1"
   2692    "stwm\\t{%1}, --(%2)"
   2693   [(set_attr "type" "stwm")])
   2694 
   2695 (define_insn "*cdx_stwm2_inc_wb"
   2696   [(match_parallel 0 "stwm_operation"
   2697     [(set (match_operand:SI 3 "register_operand" "+&r")
   2698           (plus:SI (match_dup 3) (const_int 8)))
   2699      (set (mem:SI (match_dup 3))
   2700           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2701      (set (mem:SI (plus:SI (match_dup 3) (const_int 4)))
   2702           (match_operand:SI 2 "nios2_hard_register_operand" ""))])]
   2703    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
   2704    "stwm\\t{%1, %2}, (%3)++, writeback"
   2705   [(set_attr "type" "stwm")])
   2706 
   2707 (define_insn "*cdx_stwm2_inc"
   2708   [(match_parallel 0 "stwm_operation"
   2709     [(set (mem:SI (match_operand:SI 3 "register_operand" "r"))
   2710           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2711      (set (mem:SI (plus:SI (match_dup 3) (const_int 4)))
   2712           (match_operand:SI 2 "nios2_hard_register_operand" ""))])]
   2713    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
   2714    "stwm\\t{%1, %2}, (%3)++"
   2715   [(set_attr "type" "stwm")])
   2716 
   2717 (define_insn "*cdx_stwm2_dec_wb"
   2718   [(match_parallel 0 "stwm_operation"
   2719     [(set (match_operand:SI 3 "register_operand" "+&r")
   2720           (plus:SI (match_dup 3) (const_int -8)))
   2721      (set (mem:SI (plus:SI (match_dup 3) (const_int -4)))
   2722           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2723      (set (mem:SI (plus:SI (match_dup 3) (const_int -8)))
   2724           (match_operand:SI 2 "nios2_hard_register_operand" ""))])]
   2725    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
   2726    "stwm\\t{%1, %2}, --(%3), writeback"
   2727   [(set_attr "type" "stwm")])
   2728 
   2729 (define_insn "*cdx_stwm2_dec"
   2730   [(match_parallel 0 "stwm_operation"
   2731     [(set (mem:SI (plus:SI (match_operand:SI 3 "register_operand" "r") (const_int -4)))
   2732           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2733      (set (mem:SI (plus:SI (match_dup 3) (const_int -8)))
   2734           (match_operand:SI 2 "nios2_hard_register_operand" ""))])]
   2735    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 2"
   2736    "stwm\\t{%1, %2}, --(%3)"
   2737   [(set_attr "type" "stwm")])
   2738 
   2739 (define_insn "*cdx_stwm3_inc_wb"
   2740   [(match_parallel 0 "stwm_operation"
   2741     [(set (match_operand:SI 4 "register_operand" "+&r")
   2742           (plus:SI (match_dup 4) (const_int 12)))
   2743      (set (mem:SI (match_dup 4))
   2744           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2745      (set (mem:SI (plus:SI (match_dup 4) (const_int 4)))
   2746           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2747      (set (mem:SI (plus:SI (match_dup 4) (const_int 8)))
   2748           (match_operand:SI 3 "nios2_hard_register_operand" ""))])]
   2749    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   2750    "stwm\\t{%1, %2, %3}, (%4)++, writeback"
   2751   [(set_attr "type" "stwm")])
   2752 
   2753 (define_insn "*cdx_stwm3_inc"
   2754   [(match_parallel 0 "stwm_operation"
   2755     [(set (mem:SI (match_operand:SI 4 "register_operand" "r"))
   2756           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2757      (set (mem:SI (plus:SI (match_dup 4) (const_int 4)))
   2758           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2759      (set (mem:SI (plus:SI (match_dup 4) (const_int 8)))
   2760           (match_operand:SI 3 "nios2_hard_register_operand" ""))])]
   2761    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
   2762    "stwm\\t{%1, %2, %3}, (%4)++"
   2763   [(set_attr "type" "stwm")])
   2764 
   2765 (define_insn "*cdx_stwm3_dec_wb"
   2766   [(match_parallel 0 "stwm_operation"
   2767     [(set (match_operand:SI 4 "register_operand" "+&r")
   2768           (plus:SI (match_dup 4) (const_int -12)))
   2769      (set (mem:SI (plus:SI (match_dup 4) (const_int -4)))
   2770           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2771      (set (mem:SI (plus:SI (match_dup 4) (const_int -8)))
   2772           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2773      (set (mem:SI (plus:SI (match_dup 4) (const_int -12)))
   2774           (match_operand:SI 3 "nios2_hard_register_operand" ""))])]
   2775    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   2776    "stwm\\t{%1, %2, %3}, --(%4), writeback"
   2777   [(set_attr "type" "stwm")])
   2778 
   2779 (define_insn "*cdx_stwm3_dec"
   2780   [(match_parallel 0 "stwm_operation"
   2781     [(set (mem:SI (plus:SI (match_operand:SI 4 "register_operand" "r") (const_int -4)))
   2782           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2783      (set (mem:SI (plus:SI (match_dup 4) (const_int -8)))
   2784           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2785      (set (mem:SI (plus:SI (match_dup 4) (const_int -12)))
   2786           (match_operand:SI 3 "nios2_hard_register_operand" ""))])]
   2787    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 3"
   2788    "stwm\\t{%1, %2, %3}, --(%4)"
   2789   [(set_attr "type" "stwm")])
   2790 
   2791 (define_insn "*cdx_stwm4_inc_wb"
   2792   [(match_parallel 0 "stwm_operation"
   2793     [(set (match_operand:SI 5 "register_operand" "+&r")
   2794           (plus:SI (match_dup 5) (const_int 16)))
   2795      (set (mem:SI (match_dup 5))
   2796           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2797      (set (mem:SI (plus:SI (match_dup 5) (const_int 4)))
   2798           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2799      (set (mem:SI (plus:SI (match_dup 5) (const_int 8)))
   2800           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2801      (set (mem:SI (plus:SI (match_dup 5) (const_int 12)))
   2802           (match_operand:SI 4 "nios2_hard_register_operand" ""))])]
   2803    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   2804    "stwm\\t{%1, %2, %3, %4}, (%5)++, writeback"
   2805   [(set_attr "type" "stwm")])
   2806 
   2807 (define_insn "*cdx_stwm4_inc"
   2808   [(match_parallel 0 "stwm_operation"
   2809     [(set (mem:SI (match_operand:SI 5 "register_operand" "r"))
   2810           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2811      (set (mem:SI (plus:SI (match_dup 5) (const_int 4)))
   2812           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2813      (set (mem:SI (plus:SI (match_dup 5) (const_int 8)))
   2814           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2815      (set (mem:SI (plus:SI (match_dup 5) (const_int 12)))
   2816           (match_operand:SI 4 "nios2_hard_register_operand" ""))])]
   2817    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   2818    "stwm\\t{%1, %2, %3, %4}, (%5)++"
   2819   [(set_attr "type" "stwm")])
   2820 
   2821 (define_insn "*cdx_stwm4_dec_wb"
   2822   [(match_parallel 0 "stwm_operation"
   2823     [(set (match_operand:SI 5 "register_operand" "+&r")
   2824           (plus:SI (match_dup 5) (const_int -16)))
   2825      (set (mem:SI (plus:SI (match_dup 5) (const_int -4)))
   2826           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2827      (set (mem:SI (plus:SI (match_dup 5) (const_int -8)))
   2828           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2829      (set (mem:SI (plus:SI (match_dup 5) (const_int -12)))
   2830           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2831      (set (mem:SI (plus:SI (match_dup 5) (const_int -16)))
   2832           (match_operand:SI 4 "nios2_hard_register_operand" ""))])]
   2833    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   2834    "stwm\\t{%1, %2, %3, %4}, --(%5), writeback"
   2835   [(set_attr "type" "stwm")])
   2836 
   2837 (define_insn "*cdx_stwm4_dec"
   2838   [(match_parallel 0 "stwm_operation"
   2839     [(set (mem:SI (plus:SI (match_operand:SI 5 "register_operand" "r") (const_int -4)))
   2840           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2841      (set (mem:SI (plus:SI (match_dup 5) (const_int -8)))
   2842           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2843      (set (mem:SI (plus:SI (match_dup 5) (const_int -12)))
   2844           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2845      (set (mem:SI (plus:SI (match_dup 5) (const_int -16)))
   2846           (match_operand:SI 4 "nios2_hard_register_operand" ""))])]
   2847    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 4"
   2848    "stwm\\t{%1, %2, %3, %4}, --(%5)"
   2849   [(set_attr "type" "stwm")])
   2850 
   2851 (define_insn "*cdx_stwm5_inc_wb"
   2852   [(match_parallel 0 "stwm_operation"
   2853     [(set (match_operand:SI 6 "register_operand" "+&r")
   2854           (plus:SI (match_dup 6) (const_int 20)))
   2855      (set (mem:SI (match_dup 6))
   2856           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2857      (set (mem:SI (plus:SI (match_dup 6) (const_int 4)))
   2858           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2859      (set (mem:SI (plus:SI (match_dup 6) (const_int 8)))
   2860           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2861      (set (mem:SI (plus:SI (match_dup 6) (const_int 12)))
   2862           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2863      (set (mem:SI (plus:SI (match_dup 6) (const_int 16)))
   2864           (match_operand:SI 5 "nios2_hard_register_operand" ""))])]
   2865    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   2866    "stwm\\t{%1, %2, %3, %4, %5}, (%6)++, writeback"
   2867   [(set_attr "type" "stwm")])
   2868 
   2869 (define_insn "*cdx_stwm5_inc"
   2870   [(match_parallel 0 "stwm_operation"
   2871     [(set (mem:SI (match_operand:SI 6 "register_operand" "r"))
   2872           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2873      (set (mem:SI (plus:SI (match_dup 6) (const_int 4)))
   2874           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2875      (set (mem:SI (plus:SI (match_dup 6) (const_int 8)))
   2876           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2877      (set (mem:SI (plus:SI (match_dup 6) (const_int 12)))
   2878           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2879      (set (mem:SI (plus:SI (match_dup 6) (const_int 16)))
   2880           (match_operand:SI 5 "nios2_hard_register_operand" ""))])]
   2881    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   2882    "stwm\\t{%1, %2, %3, %4, %5}, (%6)++"
   2883   [(set_attr "type" "stwm")])
   2884 
   2885 (define_insn "*cdx_stwm5_dec_wb"
   2886   [(match_parallel 0 "stwm_operation"
   2887     [(set (match_operand:SI 6 "register_operand" "+&r")
   2888           (plus:SI (match_dup 6) (const_int -20)))
   2889      (set (mem:SI (plus:SI (match_dup 6) (const_int -4)))
   2890           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2891      (set (mem:SI (plus:SI (match_dup 6) (const_int -8)))
   2892           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2893      (set (mem:SI (plus:SI (match_dup 6) (const_int -12)))
   2894           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2895      (set (mem:SI (plus:SI (match_dup 6) (const_int -16)))
   2896           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2897      (set (mem:SI (plus:SI (match_dup 6) (const_int -20)))
   2898           (match_operand:SI 5 "nios2_hard_register_operand" ""))])]
   2899    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   2900    "stwm\\t{%1, %2, %3, %4, %5}, --(%6), writeback"
   2901   [(set_attr "type" "stwm")])
   2902 
   2903 (define_insn "*cdx_stwm5_dec"
   2904   [(match_parallel 0 "stwm_operation"
   2905     [(set (mem:SI (plus:SI (match_operand:SI 6 "register_operand" "r") (const_int -4)))
   2906           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2907      (set (mem:SI (plus:SI (match_dup 6) (const_int -8)))
   2908           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2909      (set (mem:SI (plus:SI (match_dup 6) (const_int -12)))
   2910           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2911      (set (mem:SI (plus:SI (match_dup 6) (const_int -16)))
   2912           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2913      (set (mem:SI (plus:SI (match_dup 6) (const_int -20)))
   2914           (match_operand:SI 5 "nios2_hard_register_operand" ""))])]
   2915    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 5"
   2916    "stwm\\t{%1, %2, %3, %4, %5}, --(%6)"
   2917   [(set_attr "type" "stwm")])
   2918 
   2919 (define_insn "*cdx_stwm6_inc_wb"
   2920   [(match_parallel 0 "stwm_operation"
   2921     [(set (match_operand:SI 7 "register_operand" "+&r")
   2922           (plus:SI (match_dup 7) (const_int 24)))
   2923      (set (mem:SI (match_dup 7))
   2924           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2925      (set (mem:SI (plus:SI (match_dup 7) (const_int 4)))
   2926           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2927      (set (mem:SI (plus:SI (match_dup 7) (const_int 8)))
   2928           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2929      (set (mem:SI (plus:SI (match_dup 7) (const_int 12)))
   2930           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2931      (set (mem:SI (plus:SI (match_dup 7) (const_int 16)))
   2932           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   2933      (set (mem:SI (plus:SI (match_dup 7) (const_int 20)))
   2934           (match_operand:SI 6 "nios2_hard_register_operand" ""))])]
   2935    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   2936    "stwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++, writeback"
   2937   [(set_attr "type" "stwm")])
   2938 
   2939 (define_insn "*cdx_stwm6_inc"
   2940   [(match_parallel 0 "stwm_operation"
   2941     [(set (mem:SI (match_operand:SI 7 "register_operand" "r"))
   2942           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2943      (set (mem:SI (plus:SI (match_dup 7) (const_int 4)))
   2944           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2945      (set (mem:SI (plus:SI (match_dup 7) (const_int 8)))
   2946           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2947      (set (mem:SI (plus:SI (match_dup 7) (const_int 12)))
   2948           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2949      (set (mem:SI (plus:SI (match_dup 7) (const_int 16)))
   2950           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   2951      (set (mem:SI (plus:SI (match_dup 7) (const_int 20)))
   2952           (match_operand:SI 6 "nios2_hard_register_operand" ""))])]
   2953    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   2954    "stwm\\t{%1, %2, %3, %4, %5, %6}, (%7)++"
   2955   [(set_attr "type" "stwm")])
   2956 
   2957 (define_insn "*cdx_stwm6_dec_wb"
   2958   [(match_parallel 0 "stwm_operation"
   2959     [(set (match_operand:SI 7 "register_operand" "+&r")
   2960           (plus:SI (match_dup 7) (const_int -24)))
   2961      (set (mem:SI (plus:SI (match_dup 7) (const_int -4)))
   2962           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2963      (set (mem:SI (plus:SI (match_dup 7) (const_int -8)))
   2964           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2965      (set (mem:SI (plus:SI (match_dup 7) (const_int -12)))
   2966           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2967      (set (mem:SI (plus:SI (match_dup 7) (const_int -16)))
   2968           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2969      (set (mem:SI (plus:SI (match_dup 7) (const_int -20)))
   2970           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   2971      (set (mem:SI (plus:SI (match_dup 7) (const_int -24)))
   2972           (match_operand:SI 6 "nios2_hard_register_operand" ""))])]
   2973    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   2974    "stwm\\t{%1, %2, %3, %4, %5, %6}, --(%7), writeback"
   2975   [(set_attr "type" "stwm")])
   2976 
   2977 (define_insn "*cdx_stwm6_dec"
   2978   [(match_parallel 0 "stwm_operation"
   2979     [(set (mem:SI (plus:SI (match_operand:SI 7 "register_operand" "r") (const_int -4)))
   2980           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   2981      (set (mem:SI (plus:SI (match_dup 7) (const_int -8)))
   2982           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   2983      (set (mem:SI (plus:SI (match_dup 7) (const_int -12)))
   2984           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   2985      (set (mem:SI (plus:SI (match_dup 7) (const_int -16)))
   2986           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   2987      (set (mem:SI (plus:SI (match_dup 7) (const_int -20)))
   2988           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   2989      (set (mem:SI (plus:SI (match_dup 7) (const_int -24)))
   2990           (match_operand:SI 6 "nios2_hard_register_operand" ""))])]
   2991    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 6"
   2992    "stwm\\t{%1, %2, %3, %4, %5, %6}, --(%7)"
   2993   [(set_attr "type" "stwm")])
   2994 
   2995 (define_insn "*cdx_stwm7_inc_wb"
   2996   [(match_parallel 0 "stwm_operation"
   2997     [(set (match_operand:SI 8 "register_operand" "+&r")
   2998           (plus:SI (match_dup 8) (const_int 28)))
   2999      (set (mem:SI (match_dup 8))
   3000           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3001      (set (mem:SI (plus:SI (match_dup 8) (const_int 4)))
   3002           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3003      (set (mem:SI (plus:SI (match_dup 8) (const_int 8)))
   3004           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3005      (set (mem:SI (plus:SI (match_dup 8) (const_int 12)))
   3006           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3007      (set (mem:SI (plus:SI (match_dup 8) (const_int 16)))
   3008           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3009      (set (mem:SI (plus:SI (match_dup 8) (const_int 20)))
   3010           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3011      (set (mem:SI (plus:SI (match_dup 8) (const_int 24)))
   3012           (match_operand:SI 7 "nios2_hard_register_operand" ""))])]
   3013    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   3014    "stwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++, writeback"
   3015   [(set_attr "type" "stwm")])
   3016 
   3017 (define_insn "*cdx_stwm7_inc"
   3018   [(match_parallel 0 "stwm_operation"
   3019     [(set (mem:SI (match_operand:SI 8 "register_operand" "r"))
   3020           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3021      (set (mem:SI (plus:SI (match_dup 8) (const_int 4)))
   3022           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3023      (set (mem:SI (plus:SI (match_dup 8) (const_int 8)))
   3024           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3025      (set (mem:SI (plus:SI (match_dup 8) (const_int 12)))
   3026           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3027      (set (mem:SI (plus:SI (match_dup 8) (const_int 16)))
   3028           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3029      (set (mem:SI (plus:SI (match_dup 8) (const_int 20)))
   3030           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3031      (set (mem:SI (plus:SI (match_dup 8) (const_int 24)))
   3032           (match_operand:SI 7 "nios2_hard_register_operand" ""))])]
   3033    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   3034    "stwm\\t{%1, %2, %3, %4, %5, %6, %7}, (%8)++"
   3035   [(set_attr "type" "stwm")])
   3036 
   3037 (define_insn "*cdx_stwm7_dec_wb"
   3038   [(match_parallel 0 "stwm_operation"
   3039     [(set (match_operand:SI 8 "register_operand" "+&r")
   3040           (plus:SI (match_dup 8) (const_int -28)))
   3041      (set (mem:SI (plus:SI (match_dup 8) (const_int -4)))
   3042           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3043      (set (mem:SI (plus:SI (match_dup 8) (const_int -8)))
   3044           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3045      (set (mem:SI (plus:SI (match_dup 8) (const_int -12)))
   3046           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3047      (set (mem:SI (plus:SI (match_dup 8) (const_int -16)))
   3048           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3049      (set (mem:SI (plus:SI (match_dup 8) (const_int -20)))
   3050           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3051      (set (mem:SI (plus:SI (match_dup 8) (const_int -24)))
   3052           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3053      (set (mem:SI (plus:SI (match_dup 8) (const_int -28)))
   3054           (match_operand:SI 7 "nios2_hard_register_operand" ""))])]
   3055    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   3056    "stwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8), writeback"
   3057   [(set_attr "type" "stwm")])
   3058 
   3059 (define_insn "*cdx_stwm7_dec"
   3060   [(match_parallel 0 "stwm_operation"
   3061     [(set (mem:SI (plus:SI (match_operand:SI 8 "register_operand" "r") (const_int -4)))
   3062           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3063      (set (mem:SI (plus:SI (match_dup 8) (const_int -8)))
   3064           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3065      (set (mem:SI (plus:SI (match_dup 8) (const_int -12)))
   3066           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3067      (set (mem:SI (plus:SI (match_dup 8) (const_int -16)))
   3068           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3069      (set (mem:SI (plus:SI (match_dup 8) (const_int -20)))
   3070           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3071      (set (mem:SI (plus:SI (match_dup 8) (const_int -24)))
   3072           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3073      (set (mem:SI (plus:SI (match_dup 8) (const_int -28)))
   3074           (match_operand:SI 7 "nios2_hard_register_operand" ""))])]
   3075    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 7"
   3076    "stwm\\t{%1, %2, %3, %4, %5, %6, %7}, --(%8)"
   3077   [(set_attr "type" "stwm")])
   3078 
   3079 (define_insn "*cdx_stwm8_inc_wb"
   3080   [(match_parallel 0 "stwm_operation"
   3081     [(set (match_operand:SI 9 "register_operand" "+&r")
   3082           (plus:SI (match_dup 9) (const_int 32)))
   3083      (set (mem:SI (match_dup 9))
   3084           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3085      (set (mem:SI (plus:SI (match_dup 9) (const_int 4)))
   3086           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3087      (set (mem:SI (plus:SI (match_dup 9) (const_int 8)))
   3088           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3089      (set (mem:SI (plus:SI (match_dup 9) (const_int 12)))
   3090           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3091      (set (mem:SI (plus:SI (match_dup 9) (const_int 16)))
   3092           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3093      (set (mem:SI (plus:SI (match_dup 9) (const_int 20)))
   3094           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3095      (set (mem:SI (plus:SI (match_dup 9) (const_int 24)))
   3096           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3097      (set (mem:SI (plus:SI (match_dup 9) (const_int 28)))
   3098           (match_operand:SI 8 "nios2_hard_register_operand" ""))])]
   3099    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   3100    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++, writeback"
   3101   [(set_attr "type" "stwm")])
   3102 
   3103 (define_insn "*cdx_stwm8_inc"
   3104   [(match_parallel 0 "stwm_operation"
   3105     [(set (mem:SI (match_operand:SI 9 "register_operand" "r"))
   3106           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3107      (set (mem:SI (plus:SI (match_dup 9) (const_int 4)))
   3108           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3109      (set (mem:SI (plus:SI (match_dup 9) (const_int 8)))
   3110           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3111      (set (mem:SI (plus:SI (match_dup 9) (const_int 12)))
   3112           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3113      (set (mem:SI (plus:SI (match_dup 9) (const_int 16)))
   3114           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3115      (set (mem:SI (plus:SI (match_dup 9) (const_int 20)))
   3116           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3117      (set (mem:SI (plus:SI (match_dup 9) (const_int 24)))
   3118           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3119      (set (mem:SI (plus:SI (match_dup 9) (const_int 28)))
   3120           (match_operand:SI 8 "nios2_hard_register_operand" ""))])]
   3121    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   3122    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, (%9)++"
   3123   [(set_attr "type" "stwm")])
   3124 
   3125 (define_insn "*cdx_stwm8_dec_wb"
   3126   [(match_parallel 0 "stwm_operation"
   3127     [(set (match_operand:SI 9 "register_operand" "+&r")
   3128           (plus:SI (match_dup 9) (const_int -32)))
   3129      (set (mem:SI (plus:SI (match_dup 9) (const_int -4)))
   3130           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3131      (set (mem:SI (plus:SI (match_dup 9) (const_int -8)))
   3132           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3133      (set (mem:SI (plus:SI (match_dup 9) (const_int -12)))
   3134           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3135      (set (mem:SI (plus:SI (match_dup 9) (const_int -16)))
   3136           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3137      (set (mem:SI (plus:SI (match_dup 9) (const_int -20)))
   3138           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3139      (set (mem:SI (plus:SI (match_dup 9) (const_int -24)))
   3140           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3141      (set (mem:SI (plus:SI (match_dup 9) (const_int -28)))
   3142           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3143      (set (mem:SI (plus:SI (match_dup 9) (const_int -32)))
   3144           (match_operand:SI 8 "nios2_hard_register_operand" ""))])]
   3145    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   3146    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9), writeback"
   3147   [(set_attr "type" "stwm")])
   3148 
   3149 (define_insn "*cdx_stwm8_dec"
   3150   [(match_parallel 0 "stwm_operation"
   3151     [(set (mem:SI (plus:SI (match_operand:SI 9 "register_operand" "r") (const_int -4)))
   3152           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3153      (set (mem:SI (plus:SI (match_dup 9) (const_int -8)))
   3154           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3155      (set (mem:SI (plus:SI (match_dup 9) (const_int -12)))
   3156           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3157      (set (mem:SI (plus:SI (match_dup 9) (const_int -16)))
   3158           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3159      (set (mem:SI (plus:SI (match_dup 9) (const_int -20)))
   3160           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3161      (set (mem:SI (plus:SI (match_dup 9) (const_int -24)))
   3162           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3163      (set (mem:SI (plus:SI (match_dup 9) (const_int -28)))
   3164           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3165      (set (mem:SI (plus:SI (match_dup 9) (const_int -32)))
   3166           (match_operand:SI 8 "nios2_hard_register_operand" ""))])]
   3167    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 8"
   3168    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8}, --(%9)"
   3169   [(set_attr "type" "stwm")])
   3170 
   3171 (define_insn "*cdx_stwm9_inc_wb"
   3172   [(match_parallel 0 "stwm_operation"
   3173     [(set (match_operand:SI 10 "register_operand" "+&r")
   3174           (plus:SI (match_dup 10) (const_int 36)))
   3175      (set (mem:SI (match_dup 10))
   3176           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3177      (set (mem:SI (plus:SI (match_dup 10) (const_int 4)))
   3178           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3179      (set (mem:SI (plus:SI (match_dup 10) (const_int 8)))
   3180           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3181      (set (mem:SI (plus:SI (match_dup 10) (const_int 12)))
   3182           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3183      (set (mem:SI (plus:SI (match_dup 10) (const_int 16)))
   3184           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3185      (set (mem:SI (plus:SI (match_dup 10) (const_int 20)))
   3186           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3187      (set (mem:SI (plus:SI (match_dup 10) (const_int 24)))
   3188           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3189      (set (mem:SI (plus:SI (match_dup 10) (const_int 28)))
   3190           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3191      (set (mem:SI (plus:SI (match_dup 10) (const_int 32)))
   3192           (match_operand:SI 9 "nios2_hard_register_operand" ""))])]
   3193    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   3194    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++, writeback"
   3195   [(set_attr "type" "stwm")])
   3196 
   3197 (define_insn "*cdx_stwm9_inc"
   3198   [(match_parallel 0 "stwm_operation"
   3199     [(set (mem:SI (match_operand:SI 10 "register_operand" "r"))
   3200           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3201      (set (mem:SI (plus:SI (match_dup 10) (const_int 4)))
   3202           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3203      (set (mem:SI (plus:SI (match_dup 10) (const_int 8)))
   3204           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3205      (set (mem:SI (plus:SI (match_dup 10) (const_int 12)))
   3206           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3207      (set (mem:SI (plus:SI (match_dup 10) (const_int 16)))
   3208           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3209      (set (mem:SI (plus:SI (match_dup 10) (const_int 20)))
   3210           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3211      (set (mem:SI (plus:SI (match_dup 10) (const_int 24)))
   3212           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3213      (set (mem:SI (plus:SI (match_dup 10) (const_int 28)))
   3214           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3215      (set (mem:SI (plus:SI (match_dup 10) (const_int 32)))
   3216           (match_operand:SI 9 "nios2_hard_register_operand" ""))])]
   3217    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   3218    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, (%10)++"
   3219   [(set_attr "type" "stwm")])
   3220 
   3221 (define_insn "*cdx_stwm9_dec_wb"
   3222   [(match_parallel 0 "stwm_operation"
   3223     [(set (match_operand:SI 10 "register_operand" "+&r")
   3224           (plus:SI (match_dup 10) (const_int -36)))
   3225      (set (mem:SI (plus:SI (match_dup 10) (const_int -4)))
   3226           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3227      (set (mem:SI (plus:SI (match_dup 10) (const_int -8)))
   3228           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3229      (set (mem:SI (plus:SI (match_dup 10) (const_int -12)))
   3230           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3231      (set (mem:SI (plus:SI (match_dup 10) (const_int -16)))
   3232           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3233      (set (mem:SI (plus:SI (match_dup 10) (const_int -20)))
   3234           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3235      (set (mem:SI (plus:SI (match_dup 10) (const_int -24)))
   3236           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3237      (set (mem:SI (plus:SI (match_dup 10) (const_int -28)))
   3238           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3239      (set (mem:SI (plus:SI (match_dup 10) (const_int -32)))
   3240           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3241      (set (mem:SI (plus:SI (match_dup 10) (const_int -36)))
   3242           (match_operand:SI 9 "nios2_hard_register_operand" ""))])]
   3243    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   3244    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10), writeback"
   3245   [(set_attr "type" "stwm")])
   3246 
   3247 (define_insn "*cdx_stwm9_dec"
   3248   [(match_parallel 0 "stwm_operation"
   3249     [(set (mem:SI (plus:SI (match_operand:SI 10 "register_operand" "r") (const_int -4)))
   3250           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3251      (set (mem:SI (plus:SI (match_dup 10) (const_int -8)))
   3252           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3253      (set (mem:SI (plus:SI (match_dup 10) (const_int -12)))
   3254           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3255      (set (mem:SI (plus:SI (match_dup 10) (const_int -16)))
   3256           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3257      (set (mem:SI (plus:SI (match_dup 10) (const_int -20)))
   3258           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3259      (set (mem:SI (plus:SI (match_dup 10) (const_int -24)))
   3260           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3261      (set (mem:SI (plus:SI (match_dup 10) (const_int -28)))
   3262           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3263      (set (mem:SI (plus:SI (match_dup 10) (const_int -32)))
   3264           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3265      (set (mem:SI (plus:SI (match_dup 10) (const_int -36)))
   3266           (match_operand:SI 9 "nios2_hard_register_operand" ""))])]
   3267    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 9"
   3268    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9}, --(%10)"
   3269   [(set_attr "type" "stwm")])
   3270 
   3271 (define_insn "*cdx_stwm10_inc_wb"
   3272   [(match_parallel 0 "stwm_operation"
   3273     [(set (match_operand:SI 11 "register_operand" "+&r")
   3274           (plus:SI (match_dup 11) (const_int 40)))
   3275      (set (mem:SI (match_dup 11))
   3276           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3277      (set (mem:SI (plus:SI (match_dup 11) (const_int 4)))
   3278           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3279      (set (mem:SI (plus:SI (match_dup 11) (const_int 8)))
   3280           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3281      (set (mem:SI (plus:SI (match_dup 11) (const_int 12)))
   3282           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3283      (set (mem:SI (plus:SI (match_dup 11) (const_int 16)))
   3284           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3285      (set (mem:SI (plus:SI (match_dup 11) (const_int 20)))
   3286           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3287      (set (mem:SI (plus:SI (match_dup 11) (const_int 24)))
   3288           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3289      (set (mem:SI (plus:SI (match_dup 11) (const_int 28)))
   3290           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3291      (set (mem:SI (plus:SI (match_dup 11) (const_int 32)))
   3292           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3293      (set (mem:SI (plus:SI (match_dup 11) (const_int 36)))
   3294           (match_operand:SI 10 "nios2_hard_register_operand" ""))])]
   3295    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   3296    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++, writeback"
   3297   [(set_attr "type" "stwm")])
   3298 
   3299 (define_insn "*cdx_stwm10_inc"
   3300   [(match_parallel 0 "stwm_operation"
   3301     [(set (mem:SI (match_operand:SI 11 "register_operand" "r"))
   3302           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3303      (set (mem:SI (plus:SI (match_dup 11) (const_int 4)))
   3304           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3305      (set (mem:SI (plus:SI (match_dup 11) (const_int 8)))
   3306           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3307      (set (mem:SI (plus:SI (match_dup 11) (const_int 12)))
   3308           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3309      (set (mem:SI (plus:SI (match_dup 11) (const_int 16)))
   3310           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3311      (set (mem:SI (plus:SI (match_dup 11) (const_int 20)))
   3312           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3313      (set (mem:SI (plus:SI (match_dup 11) (const_int 24)))
   3314           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3315      (set (mem:SI (plus:SI (match_dup 11) (const_int 28)))
   3316           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3317      (set (mem:SI (plus:SI (match_dup 11) (const_int 32)))
   3318           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3319      (set (mem:SI (plus:SI (match_dup 11) (const_int 36)))
   3320           (match_operand:SI 10 "nios2_hard_register_operand" ""))])]
   3321    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   3322    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, (%11)++"
   3323   [(set_attr "type" "stwm")])
   3324 
   3325 (define_insn "*cdx_stwm10_dec_wb"
   3326   [(match_parallel 0 "stwm_operation"
   3327     [(set (match_operand:SI 11 "register_operand" "+&r")
   3328           (plus:SI (match_dup 11) (const_int -40)))
   3329      (set (mem:SI (plus:SI (match_dup 11) (const_int -4)))
   3330           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3331      (set (mem:SI (plus:SI (match_dup 11) (const_int -8)))
   3332           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3333      (set (mem:SI (plus:SI (match_dup 11) (const_int -12)))
   3334           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3335      (set (mem:SI (plus:SI (match_dup 11) (const_int -16)))
   3336           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3337      (set (mem:SI (plus:SI (match_dup 11) (const_int -20)))
   3338           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3339      (set (mem:SI (plus:SI (match_dup 11) (const_int -24)))
   3340           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3341      (set (mem:SI (plus:SI (match_dup 11) (const_int -28)))
   3342           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3343      (set (mem:SI (plus:SI (match_dup 11) (const_int -32)))
   3344           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3345      (set (mem:SI (plus:SI (match_dup 11) (const_int -36)))
   3346           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3347      (set (mem:SI (plus:SI (match_dup 11) (const_int -40)))
   3348           (match_operand:SI 10 "nios2_hard_register_operand" ""))])]
   3349    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   3350    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11), writeback"
   3351   [(set_attr "type" "stwm")])
   3352 
   3353 (define_insn "*cdx_stwm10_dec"
   3354   [(match_parallel 0 "stwm_operation"
   3355     [(set (mem:SI (plus:SI (match_operand:SI 11 "register_operand" "r") (const_int -4)))
   3356           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3357      (set (mem:SI (plus:SI (match_dup 11) (const_int -8)))
   3358           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3359      (set (mem:SI (plus:SI (match_dup 11) (const_int -12)))
   3360           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3361      (set (mem:SI (plus:SI (match_dup 11) (const_int -16)))
   3362           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3363      (set (mem:SI (plus:SI (match_dup 11) (const_int -20)))
   3364           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3365      (set (mem:SI (plus:SI (match_dup 11) (const_int -24)))
   3366           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3367      (set (mem:SI (plus:SI (match_dup 11) (const_int -28)))
   3368           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3369      (set (mem:SI (plus:SI (match_dup 11) (const_int -32)))
   3370           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3371      (set (mem:SI (plus:SI (match_dup 11) (const_int -36)))
   3372           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3373      (set (mem:SI (plus:SI (match_dup 11) (const_int -40)))
   3374           (match_operand:SI 10 "nios2_hard_register_operand" ""))])]
   3375    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 10"
   3376    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10}, --(%11)"
   3377   [(set_attr "type" "stwm")])
   3378 
   3379 (define_insn "*cdx_stwm11_inc_wb"
   3380   [(match_parallel 0 "stwm_operation"
   3381     [(set (match_operand:SI 12 "register_operand" "+&r")
   3382           (plus:SI (match_dup 12) (const_int 44)))
   3383      (set (mem:SI (match_dup 12))
   3384           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3385      (set (mem:SI (plus:SI (match_dup 12) (const_int 4)))
   3386           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3387      (set (mem:SI (plus:SI (match_dup 12) (const_int 8)))
   3388           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3389      (set (mem:SI (plus:SI (match_dup 12) (const_int 12)))
   3390           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3391      (set (mem:SI (plus:SI (match_dup 12) (const_int 16)))
   3392           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3393      (set (mem:SI (plus:SI (match_dup 12) (const_int 20)))
   3394           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3395      (set (mem:SI (plus:SI (match_dup 12) (const_int 24)))
   3396           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3397      (set (mem:SI (plus:SI (match_dup 12) (const_int 28)))
   3398           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3399      (set (mem:SI (plus:SI (match_dup 12) (const_int 32)))
   3400           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3401      (set (mem:SI (plus:SI (match_dup 12) (const_int 36)))
   3402           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3403      (set (mem:SI (plus:SI (match_dup 12) (const_int 40)))
   3404           (match_operand:SI 11 "nios2_hard_register_operand" ""))])]
   3405    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   3406    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++, writeback"
   3407   [(set_attr "type" "stwm")])
   3408 
   3409 (define_insn "*cdx_stwm11_inc"
   3410   [(match_parallel 0 "stwm_operation"
   3411     [(set (mem:SI (match_operand:SI 12 "register_operand" "r"))
   3412           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3413      (set (mem:SI (plus:SI (match_dup 12) (const_int 4)))
   3414           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3415      (set (mem:SI (plus:SI (match_dup 12) (const_int 8)))
   3416           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3417      (set (mem:SI (plus:SI (match_dup 12) (const_int 12)))
   3418           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3419      (set (mem:SI (plus:SI (match_dup 12) (const_int 16)))
   3420           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3421      (set (mem:SI (plus:SI (match_dup 12) (const_int 20)))
   3422           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3423      (set (mem:SI (plus:SI (match_dup 12) (const_int 24)))
   3424           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3425      (set (mem:SI (plus:SI (match_dup 12) (const_int 28)))
   3426           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3427      (set (mem:SI (plus:SI (match_dup 12) (const_int 32)))
   3428           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3429      (set (mem:SI (plus:SI (match_dup 12) (const_int 36)))
   3430           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3431      (set (mem:SI (plus:SI (match_dup 12) (const_int 40)))
   3432           (match_operand:SI 11 "nios2_hard_register_operand" ""))])]
   3433    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   3434    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, (%12)++"
   3435   [(set_attr "type" "stwm")])
   3436 
   3437 (define_insn "*cdx_stwm11_dec_wb"
   3438   [(match_parallel 0 "stwm_operation"
   3439     [(set (match_operand:SI 12 "register_operand" "+&r")
   3440           (plus:SI (match_dup 12) (const_int -44)))
   3441      (set (mem:SI (plus:SI (match_dup 12) (const_int -4)))
   3442           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3443      (set (mem:SI (plus:SI (match_dup 12) (const_int -8)))
   3444           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3445      (set (mem:SI (plus:SI (match_dup 12) (const_int -12)))
   3446           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3447      (set (mem:SI (plus:SI (match_dup 12) (const_int -16)))
   3448           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3449      (set (mem:SI (plus:SI (match_dup 12) (const_int -20)))
   3450           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3451      (set (mem:SI (plus:SI (match_dup 12) (const_int -24)))
   3452           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3453      (set (mem:SI (plus:SI (match_dup 12) (const_int -28)))
   3454           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3455      (set (mem:SI (plus:SI (match_dup 12) (const_int -32)))
   3456           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3457      (set (mem:SI (plus:SI (match_dup 12) (const_int -36)))
   3458           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3459      (set (mem:SI (plus:SI (match_dup 12) (const_int -40)))
   3460           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3461      (set (mem:SI (plus:SI (match_dup 12) (const_int -44)))
   3462           (match_operand:SI 11 "nios2_hard_register_operand" ""))])]
   3463    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   3464    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12), writeback"
   3465   [(set_attr "type" "stwm")])
   3466 
   3467 (define_insn "*cdx_stwm11_dec"
   3468   [(match_parallel 0 "stwm_operation"
   3469     [(set (mem:SI (plus:SI (match_operand:SI 12 "register_operand" "r") (const_int -4)))
   3470           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3471      (set (mem:SI (plus:SI (match_dup 12) (const_int -8)))
   3472           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3473      (set (mem:SI (plus:SI (match_dup 12) (const_int -12)))
   3474           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3475      (set (mem:SI (plus:SI (match_dup 12) (const_int -16)))
   3476           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3477      (set (mem:SI (plus:SI (match_dup 12) (const_int -20)))
   3478           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3479      (set (mem:SI (plus:SI (match_dup 12) (const_int -24)))
   3480           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3481      (set (mem:SI (plus:SI (match_dup 12) (const_int -28)))
   3482           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3483      (set (mem:SI (plus:SI (match_dup 12) (const_int -32)))
   3484           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3485      (set (mem:SI (plus:SI (match_dup 12) (const_int -36)))
   3486           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3487      (set (mem:SI (plus:SI (match_dup 12) (const_int -40)))
   3488           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3489      (set (mem:SI (plus:SI (match_dup 12) (const_int -44)))
   3490           (match_operand:SI 11 "nios2_hard_register_operand" ""))])]
   3491    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 11"
   3492    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11}, --(%12)"
   3493   [(set_attr "type" "stwm")])
   3494 
   3495 (define_insn "*cdx_stwm12_inc_wb"
   3496   [(match_parallel 0 "stwm_operation"
   3497     [(set (match_operand:SI 13 "register_operand" "+&r")
   3498           (plus:SI (match_dup 13) (const_int 48)))
   3499      (set (mem:SI (match_dup 13))
   3500           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3501      (set (mem:SI (plus:SI (match_dup 13) (const_int 4)))
   3502           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3503      (set (mem:SI (plus:SI (match_dup 13) (const_int 8)))
   3504           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3505      (set (mem:SI (plus:SI (match_dup 13) (const_int 12)))
   3506           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3507      (set (mem:SI (plus:SI (match_dup 13) (const_int 16)))
   3508           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3509      (set (mem:SI (plus:SI (match_dup 13) (const_int 20)))
   3510           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3511      (set (mem:SI (plus:SI (match_dup 13) (const_int 24)))
   3512           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3513      (set (mem:SI (plus:SI (match_dup 13) (const_int 28)))
   3514           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3515      (set (mem:SI (plus:SI (match_dup 13) (const_int 32)))
   3516           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3517      (set (mem:SI (plus:SI (match_dup 13) (const_int 36)))
   3518           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3519      (set (mem:SI (plus:SI (match_dup 13) (const_int 40)))
   3520           (match_operand:SI 11 "nios2_hard_register_operand" ""))
   3521      (set (mem:SI (plus:SI (match_dup 13) (const_int 44)))
   3522           (match_operand:SI 12 "nios2_hard_register_operand" ""))])]
   3523    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   3524    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++, writeback"
   3525   [(set_attr "type" "stwm")])
   3526 
   3527 (define_insn "*cdx_stwm12_inc"
   3528   [(match_parallel 0 "stwm_operation"
   3529     [(set (mem:SI (match_operand:SI 13 "register_operand" "r"))
   3530           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3531      (set (mem:SI (plus:SI (match_dup 13) (const_int 4)))
   3532           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3533      (set (mem:SI (plus:SI (match_dup 13) (const_int 8)))
   3534           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3535      (set (mem:SI (plus:SI (match_dup 13) (const_int 12)))
   3536           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3537      (set (mem:SI (plus:SI (match_dup 13) (const_int 16)))
   3538           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3539      (set (mem:SI (plus:SI (match_dup 13) (const_int 20)))
   3540           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3541      (set (mem:SI (plus:SI (match_dup 13) (const_int 24)))
   3542           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3543      (set (mem:SI (plus:SI (match_dup 13) (const_int 28)))
   3544           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3545      (set (mem:SI (plus:SI (match_dup 13) (const_int 32)))
   3546           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3547      (set (mem:SI (plus:SI (match_dup 13) (const_int 36)))
   3548           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3549      (set (mem:SI (plus:SI (match_dup 13) (const_int 40)))
   3550           (match_operand:SI 11 "nios2_hard_register_operand" ""))
   3551      (set (mem:SI (plus:SI (match_dup 13) (const_int 44)))
   3552           (match_operand:SI 12 "nios2_hard_register_operand" ""))])]
   3553    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   3554    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, (%13)++"
   3555   [(set_attr "type" "stwm")])
   3556 
   3557 (define_insn "*cdx_stwm12_dec_wb"
   3558   [(match_parallel 0 "stwm_operation"
   3559     [(set (match_operand:SI 13 "register_operand" "+&r")
   3560           (plus:SI (match_dup 13) (const_int -48)))
   3561      (set (mem:SI (plus:SI (match_dup 13) (const_int -4)))
   3562           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3563      (set (mem:SI (plus:SI (match_dup 13) (const_int -8)))
   3564           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3565      (set (mem:SI (plus:SI (match_dup 13) (const_int -12)))
   3566           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3567      (set (mem:SI (plus:SI (match_dup 13) (const_int -16)))
   3568           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3569      (set (mem:SI (plus:SI (match_dup 13) (const_int -20)))
   3570           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3571      (set (mem:SI (plus:SI (match_dup 13) (const_int -24)))
   3572           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3573      (set (mem:SI (plus:SI (match_dup 13) (const_int -28)))
   3574           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3575      (set (mem:SI (plus:SI (match_dup 13) (const_int -32)))
   3576           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3577      (set (mem:SI (plus:SI (match_dup 13) (const_int -36)))
   3578           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3579      (set (mem:SI (plus:SI (match_dup 13) (const_int -40)))
   3580           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3581      (set (mem:SI (plus:SI (match_dup 13) (const_int -44)))
   3582           (match_operand:SI 11 "nios2_hard_register_operand" ""))
   3583      (set (mem:SI (plus:SI (match_dup 13) (const_int -48)))
   3584           (match_operand:SI 12 "nios2_hard_register_operand" ""))])]
   3585    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 13"
   3586    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13), writeback"
   3587   [(set_attr "type" "stwm")])
   3588 
   3589 (define_insn "*cdx_stwm12_dec"
   3590   [(match_parallel 0 "stwm_operation"
   3591     [(set (mem:SI (plus:SI (match_operand:SI 13 "register_operand" "r") (const_int -4)))
   3592           (match_operand:SI 1 "nios2_hard_register_operand" ""))
   3593      (set (mem:SI (plus:SI (match_dup 13) (const_int -8)))
   3594           (match_operand:SI 2 "nios2_hard_register_operand" ""))
   3595      (set (mem:SI (plus:SI (match_dup 13) (const_int -12)))
   3596           (match_operand:SI 3 "nios2_hard_register_operand" ""))
   3597      (set (mem:SI (plus:SI (match_dup 13) (const_int -16)))
   3598           (match_operand:SI 4 "nios2_hard_register_operand" ""))
   3599      (set (mem:SI (plus:SI (match_dup 13) (const_int -20)))
   3600           (match_operand:SI 5 "nios2_hard_register_operand" ""))
   3601      (set (mem:SI (plus:SI (match_dup 13) (const_int -24)))
   3602           (match_operand:SI 6 "nios2_hard_register_operand" ""))
   3603      (set (mem:SI (plus:SI (match_dup 13) (const_int -28)))
   3604           (match_operand:SI 7 "nios2_hard_register_operand" ""))
   3605      (set (mem:SI (plus:SI (match_dup 13) (const_int -32)))
   3606           (match_operand:SI 8 "nios2_hard_register_operand" ""))
   3607      (set (mem:SI (plus:SI (match_dup 13) (const_int -36)))
   3608           (match_operand:SI 9 "nios2_hard_register_operand" ""))
   3609      (set (mem:SI (plus:SI (match_dup 13) (const_int -40)))
   3610           (match_operand:SI 10 "nios2_hard_register_operand" ""))
   3611      (set (mem:SI (plus:SI (match_dup 13) (const_int -44)))
   3612           (match_operand:SI 11 "nios2_hard_register_operand" ""))
   3613      (set (mem:SI (plus:SI (match_dup 13) (const_int -48)))
   3614           (match_operand:SI 12 "nios2_hard_register_operand" ""))])]
   3615    "TARGET_HAS_CDX && XVECLEN (operands[0], 0) == 12"
   3616    "stwm\\t{%1, %2, %3, %4, %5, %6, %7, %8, %9, %10, %11, %12}, --(%13)"
   3617   [(set_attr "type" "stwm")])
   3618 
   3619 (define_peephole2
   3620   [(match_scratch:SI 24 "r")
   3621    (set (match_operand:SI 0 "register_operand" "")
   3622         (match_operand:SI 12 "memory_operand" ""))
   3623    (set (match_operand:SI 1 "register_operand" "")
   3624         (match_operand:SI 13 "memory_operand" ""))
   3625    (set (match_operand:SI 2 "register_operand" "")
   3626         (match_operand:SI 14 "memory_operand" ""))
   3627    (set (match_operand:SI 3 "register_operand" "")
   3628         (match_operand:SI 15 "memory_operand" ""))
   3629    (set (match_operand:SI 4 "register_operand" "")
   3630         (match_operand:SI 16 "memory_operand" ""))
   3631    (set (match_operand:SI 5 "register_operand" "")
   3632         (match_operand:SI 17 "memory_operand" ""))
   3633    (set (match_operand:SI 6 "register_operand" "")
   3634         (match_operand:SI 18 "memory_operand" ""))
   3635    (set (match_operand:SI 7 "register_operand" "")
   3636         (match_operand:SI 19 "memory_operand" ""))
   3637    (set (match_operand:SI 8 "register_operand" "")
   3638         (match_operand:SI 20 "memory_operand" ""))
   3639    (set (match_operand:SI 9 "register_operand" "")
   3640         (match_operand:SI 21 "memory_operand" ""))
   3641    (set (match_operand:SI 10 "register_operand" "")
   3642         (match_operand:SI 22 "memory_operand" ""))
   3643    (set (match_operand:SI 11 "register_operand" "")
   3644         (match_operand:SI 23 "memory_operand" ""))
   3645    (match_dup 24)]
   3646   "TARGET_HAS_CDX"
   3647   [(const_int 0)]
   3648 {
   3649   if (gen_ldstwm_peep (true, 12, operands[24], operands))
   3650     DONE;
   3651   else
   3652     FAIL;
   3653 })
   3654 
   3655 (define_peephole2
   3656   [(match_scratch:SI 22 "r")
   3657    (set (match_operand:SI 0 "register_operand" "")
   3658         (match_operand:SI 11 "memory_operand" ""))
   3659    (set (match_operand:SI 1 "register_operand" "")
   3660         (match_operand:SI 12 "memory_operand" ""))
   3661    (set (match_operand:SI 2 "register_operand" "")
   3662         (match_operand:SI 13 "memory_operand" ""))
   3663    (set (match_operand:SI 3 "register_operand" "")
   3664         (match_operand:SI 14 "memory_operand" ""))
   3665    (set (match_operand:SI 4 "register_operand" "")
   3666         (match_operand:SI 15 "memory_operand" ""))
   3667    (set (match_operand:SI 5 "register_operand" "")
   3668         (match_operand:SI 16 "memory_operand" ""))
   3669    (set (match_operand:SI 6 "register_operand" "")
   3670         (match_operand:SI 17 "memory_operand" ""))
   3671    (set (match_operand:SI 7 "register_operand" "")
   3672         (match_operand:SI 18 "memory_operand" ""))
   3673    (set (match_operand:SI 8 "register_operand" "")
   3674         (match_operand:SI 19 "memory_operand" ""))
   3675    (set (match_operand:SI 9 "register_operand" "")
   3676         (match_operand:SI 20 "memory_operand" ""))
   3677    (set (match_operand:SI 10 "register_operand" "")
   3678         (match_operand:SI 21 "memory_operand" ""))
   3679    (match_dup 22)]
   3680   "TARGET_HAS_CDX"
   3681   [(const_int 0)]
   3682 {
   3683   if (gen_ldstwm_peep (true, 11, operands[22], operands))
   3684     DONE;
   3685   else
   3686     FAIL;
   3687 })
   3688 
   3689 (define_peephole2
   3690   [(match_scratch:SI 20 "r")
   3691    (set (match_operand:SI 0 "register_operand" "")
   3692         (match_operand:SI 10 "memory_operand" ""))
   3693    (set (match_operand:SI 1 "register_operand" "")
   3694         (match_operand:SI 11 "memory_operand" ""))
   3695    (set (match_operand:SI 2 "register_operand" "")
   3696         (match_operand:SI 12 "memory_operand" ""))
   3697    (set (match_operand:SI 3 "register_operand" "")
   3698         (match_operand:SI 13 "memory_operand" ""))
   3699    (set (match_operand:SI 4 "register_operand" "")
   3700         (match_operand:SI 14 "memory_operand" ""))
   3701    (set (match_operand:SI 5 "register_operand" "")
   3702         (match_operand:SI 15 "memory_operand" ""))
   3703    (set (match_operand:SI 6 "register_operand" "")
   3704         (match_operand:SI 16 "memory_operand" ""))
   3705    (set (match_operand:SI 7 "register_operand" "")
   3706         (match_operand:SI 17 "memory_operand" ""))
   3707    (set (match_operand:SI 8 "register_operand" "")
   3708         (match_operand:SI 18 "memory_operand" ""))
   3709    (set (match_operand:SI 9 "register_operand" "")
   3710         (match_operand:SI 19 "memory_operand" ""))
   3711    (match_dup 20)]
   3712   "TARGET_HAS_CDX"
   3713   [(const_int 0)]
   3714 {
   3715   if (gen_ldstwm_peep (true, 10, operands[20], operands))
   3716     DONE;
   3717   else
   3718     FAIL;
   3719 })
   3720 
   3721 (define_peephole2
   3722   [(match_scratch:SI 18 "r")
   3723    (set (match_operand:SI 0 "register_operand" "")
   3724         (match_operand:SI 9 "memory_operand" ""))
   3725    (set (match_operand:SI 1 "register_operand" "")
   3726         (match_operand:SI 10 "memory_operand" ""))
   3727    (set (match_operand:SI 2 "register_operand" "")
   3728         (match_operand:SI 11 "memory_operand" ""))
   3729    (set (match_operand:SI 3 "register_operand" "")
   3730         (match_operand:SI 12 "memory_operand" ""))
   3731    (set (match_operand:SI 4 "register_operand" "")
   3732         (match_operand:SI 13 "memory_operand" ""))
   3733    (set (match_operand:SI 5 "register_operand" "")
   3734         (match_operand:SI 14 "memory_operand" ""))
   3735    (set (match_operand:SI 6 "register_operand" "")
   3736         (match_operand:SI 15 "memory_operand" ""))
   3737    (set (match_operand:SI 7 "register_operand" "")
   3738         (match_operand:SI 16 "memory_operand" ""))
   3739    (set (match_operand:SI 8 "register_operand" "")
   3740         (match_operand:SI 17 "memory_operand" ""))
   3741    (match_dup 18)]
   3742   "TARGET_HAS_CDX"
   3743   [(const_int 0)]
   3744 {
   3745   if (gen_ldstwm_peep (true, 9, operands[18], operands))
   3746     DONE;
   3747   else
   3748     FAIL;
   3749 })
   3750 
   3751 (define_peephole2
   3752   [(match_scratch:SI 16 "r")
   3753    (set (match_operand:SI 0 "register_operand" "")
   3754         (match_operand:SI 8 "memory_operand" ""))
   3755    (set (match_operand:SI 1 "register_operand" "")
   3756         (match_operand:SI 9 "memory_operand" ""))
   3757    (set (match_operand:SI 2 "register_operand" "")
   3758         (match_operand:SI 10 "memory_operand" ""))
   3759    (set (match_operand:SI 3 "register_operand" "")
   3760         (match_operand:SI 11 "memory_operand" ""))
   3761    (set (match_operand:SI 4 "register_operand" "")
   3762         (match_operand:SI 12 "memory_operand" ""))
   3763    (set (match_operand:SI 5 "register_operand" "")
   3764         (match_operand:SI 13 "memory_operand" ""))
   3765    (set (match_operand:SI 6 "register_operand" "")
   3766         (match_operand:SI 14 "memory_operand" ""))
   3767    (set (match_operand:SI 7 "register_operand" "")
   3768         (match_operand:SI 15 "memory_operand" ""))
   3769    (match_dup 16)]
   3770   "TARGET_HAS_CDX"
   3771   [(const_int 0)]
   3772 {
   3773   if (gen_ldstwm_peep (true, 8, operands[16], operands))
   3774     DONE;
   3775   else
   3776     FAIL;
   3777 })
   3778 
   3779 (define_peephole2
   3780   [(match_scratch:SI 14 "r")
   3781    (set (match_operand:SI 0 "register_operand" "")
   3782         (match_operand:SI 7 "memory_operand" ""))
   3783    (set (match_operand:SI 1 "register_operand" "")
   3784         (match_operand:SI 8 "memory_operand" ""))
   3785    (set (match_operand:SI 2 "register_operand" "")
   3786         (match_operand:SI 9 "memory_operand" ""))
   3787    (set (match_operand:SI 3 "register_operand" "")
   3788         (match_operand:SI 10 "memory_operand" ""))
   3789    (set (match_operand:SI 4 "register_operand" "")
   3790         (match_operand:SI 11 "memory_operand" ""))
   3791    (set (match_operand:SI 5 "register_operand" "")
   3792         (match_operand:SI 12 "memory_operand" ""))
   3793    (set (match_operand:SI 6 "register_operand" "")
   3794         (match_operand:SI 13 "memory_operand" ""))
   3795    (match_dup 14)]
   3796   "TARGET_HAS_CDX"
   3797   [(const_int 0)]
   3798 {
   3799   if (gen_ldstwm_peep (true, 7, operands[14], operands))
   3800     DONE;
   3801   else
   3802     FAIL;
   3803 })
   3804 
   3805 (define_peephole2
   3806   [(match_scratch:SI 12 "r")
   3807    (set (match_operand:SI 0 "register_operand" "")
   3808         (match_operand:SI 6 "memory_operand" ""))
   3809    (set (match_operand:SI 1 "register_operand" "")
   3810         (match_operand:SI 7 "memory_operand" ""))
   3811    (set (match_operand:SI 2 "register_operand" "")
   3812         (match_operand:SI 8 "memory_operand" ""))
   3813    (set (match_operand:SI 3 "register_operand" "")
   3814         (match_operand:SI 9 "memory_operand" ""))
   3815    (set (match_operand:SI 4 "register_operand" "")
   3816         (match_operand:SI 10 "memory_operand" ""))
   3817    (set (match_operand:SI 5 "register_operand" "")
   3818         (match_operand:SI 11 "memory_operand" ""))
   3819    (match_dup 12)]
   3820   "TARGET_HAS_CDX"
   3821   [(const_int 0)]
   3822 {
   3823   if (gen_ldstwm_peep (true, 6, operands[12], operands))
   3824     DONE;
   3825   else
   3826     FAIL;
   3827 })
   3828 
   3829 (define_peephole2
   3830   [(match_scratch:SI 10 "r")
   3831    (set (match_operand:SI 0 "register_operand" "")
   3832         (match_operand:SI 5 "memory_operand" ""))
   3833    (set (match_operand:SI 1 "register_operand" "")
   3834         (match_operand:SI 6 "memory_operand" ""))
   3835    (set (match_operand:SI 2 "register_operand" "")
   3836         (match_operand:SI 7 "memory_operand" ""))
   3837    (set (match_operand:SI 3 "register_operand" "")
   3838         (match_operand:SI 8 "memory_operand" ""))
   3839    (set (match_operand:SI 4 "register_operand" "")
   3840         (match_operand:SI 9 "memory_operand" ""))
   3841    (match_dup 10)]
   3842   "TARGET_HAS_CDX"
   3843   [(const_int 0)]
   3844 {
   3845   if (gen_ldstwm_peep (true, 5, operands[10], operands))
   3846     DONE;
   3847   else
   3848     FAIL;
   3849 })
   3850 
   3851 (define_peephole2
   3852   [(match_scratch:SI 8 "r")
   3853    (set (match_operand:SI 0 "register_operand" "")
   3854         (match_operand:SI 4 "memory_operand" ""))
   3855    (set (match_operand:SI 1 "register_operand" "")
   3856         (match_operand:SI 5 "memory_operand" ""))
   3857    (set (match_operand:SI 2 "register_operand" "")
   3858         (match_operand:SI 6 "memory_operand" ""))
   3859    (set (match_operand:SI 3 "register_operand" "")
   3860         (match_operand:SI 7 "memory_operand" ""))
   3861    (match_dup 8)]
   3862   "TARGET_HAS_CDX"
   3863   [(const_int 0)]
   3864 {
   3865   if (gen_ldstwm_peep (true, 4, operands[8], operands))
   3866     DONE;
   3867   else
   3868     FAIL;
   3869 })
   3870 
   3871 (define_peephole2
   3872   [(match_scratch:SI 6 "r")
   3873    (set (match_operand:SI 0 "register_operand" "")
   3874         (match_operand:SI 3 "memory_operand" ""))
   3875    (set (match_operand:SI 1 "register_operand" "")
   3876         (match_operand:SI 4 "memory_operand" ""))
   3877    (set (match_operand:SI 2 "register_operand" "")
   3878         (match_operand:SI 5 "memory_operand" ""))
   3879    (match_dup 6)]
   3880   "TARGET_HAS_CDX"
   3881   [(const_int 0)]
   3882 {
   3883   if (gen_ldstwm_peep (true, 3, operands[6], operands))
   3884     DONE;
   3885   else
   3886     FAIL;
   3887 })
   3888 
   3889 (define_peephole2
   3890   [(match_scratch:SI 4 "r")
   3891    (set (match_operand:SI 0 "register_operand" "")
   3892         (match_operand:SI 2 "memory_operand" ""))
   3893    (set (match_operand:SI 1 "register_operand" "")
   3894         (match_operand:SI 3 "memory_operand" ""))
   3895    (match_dup 4)]
   3896   "TARGET_HAS_CDX"
   3897   [(const_int 0)]
   3898 {
   3899   if (gen_ldstwm_peep (true, 2, operands[4], operands))
   3900     DONE;
   3901   else
   3902     FAIL;
   3903 })
   3904 
   3905 (define_peephole2
   3906   [(match_scratch:SI 24 "r")
   3907    (set (match_operand:SI 12 "memory_operand" "")
   3908         (match_operand:SI 0 "register_operand" ""))
   3909    (set (match_operand:SI 13 "memory_operand" "")
   3910         (match_operand:SI 1 "register_operand" ""))
   3911    (set (match_operand:SI 14 "memory_operand" "")
   3912         (match_operand:SI 2 "register_operand" ""))
   3913    (set (match_operand:SI 15 "memory_operand" "")
   3914         (match_operand:SI 3 "register_operand" ""))
   3915    (set (match_operand:SI 16 "memory_operand" "")
   3916         (match_operand:SI 4 "register_operand" ""))
   3917    (set (match_operand:SI 17 "memory_operand" "")
   3918         (match_operand:SI 5 "register_operand" ""))
   3919    (set (match_operand:SI 18 "memory_operand" "")
   3920         (match_operand:SI 6 "register_operand" ""))
   3921    (set (match_operand:SI 19 "memory_operand" "")
   3922         (match_operand:SI 7 "register_operand" ""))
   3923    (set (match_operand:SI 20 "memory_operand" "")
   3924         (match_operand:SI 8 "register_operand" ""))
   3925    (set (match_operand:SI 21 "memory_operand" "")
   3926         (match_operand:SI 9 "register_operand" ""))
   3927    (set (match_operand:SI 22 "memory_operand" "")
   3928         (match_operand:SI 10 "register_operand" ""))
   3929    (set (match_operand:SI 23 "memory_operand" "")
   3930         (match_operand:SI 11 "register_operand" ""))
   3931    (match_dup 24)]
   3932   "TARGET_HAS_CDX"
   3933   [(const_int 0)]
   3934 {
   3935   if (gen_ldstwm_peep (false, 12, operands[24], operands))
   3936     DONE;
   3937   else
   3938     FAIL;
   3939 })
   3940 
   3941 (define_peephole2
   3942   [(match_scratch:SI 22 "r")
   3943    (set (match_operand:SI 11 "memory_operand" "")
   3944         (match_operand:SI 0 "register_operand" ""))
   3945    (set (match_operand:SI 12 "memory_operand" "")
   3946         (match_operand:SI 1 "register_operand" ""))
   3947    (set (match_operand:SI 13 "memory_operand" "")
   3948         (match_operand:SI 2 "register_operand" ""))
   3949    (set (match_operand:SI 14 "memory_operand" "")
   3950         (match_operand:SI 3 "register_operand" ""))
   3951    (set (match_operand:SI 15 "memory_operand" "")
   3952         (match_operand:SI 4 "register_operand" ""))
   3953    (set (match_operand:SI 16 "memory_operand" "")
   3954         (match_operand:SI 5 "register_operand" ""))
   3955    (set (match_operand:SI 17 "memory_operand" "")
   3956         (match_operand:SI 6 "register_operand" ""))
   3957    (set (match_operand:SI 18 "memory_operand" "")
   3958         (match_operand:SI 7 "register_operand" ""))
   3959    (set (match_operand:SI 19 "memory_operand" "")
   3960         (match_operand:SI 8 "register_operand" ""))
   3961    (set (match_operand:SI 20 "memory_operand" "")
   3962         (match_operand:SI 9 "register_operand" ""))
   3963    (set (match_operand:SI 21 "memory_operand" "")
   3964         (match_operand:SI 10 "register_operand" ""))
   3965    (match_dup 22)]
   3966   "TARGET_HAS_CDX"
   3967   [(const_int 0)]
   3968 {
   3969   if (gen_ldstwm_peep (false, 11, operands[22], operands))
   3970     DONE;
   3971   else
   3972     FAIL;
   3973 })
   3974 
   3975 (define_peephole2
   3976   [(match_scratch:SI 20 "r")
   3977    (set (match_operand:SI 10 "memory_operand" "")
   3978         (match_operand:SI 0 "register_operand" ""))
   3979    (set (match_operand:SI 11 "memory_operand" "")
   3980         (match_operand:SI 1 "register_operand" ""))
   3981    (set (match_operand:SI 12 "memory_operand" "")
   3982         (match_operand:SI 2 "register_operand" ""))
   3983    (set (match_operand:SI 13 "memory_operand" "")
   3984         (match_operand:SI 3 "register_operand" ""))
   3985    (set (match_operand:SI 14 "memory_operand" "")
   3986         (match_operand:SI 4 "register_operand" ""))
   3987    (set (match_operand:SI 15 "memory_operand" "")
   3988         (match_operand:SI 5 "register_operand" ""))
   3989    (set (match_operand:SI 16 "memory_operand" "")
   3990         (match_operand:SI 6 "register_operand" ""))
   3991    (set (match_operand:SI 17 "memory_operand" "")
   3992         (match_operand:SI 7 "register_operand" ""))
   3993    (set (match_operand:SI 18 "memory_operand" "")
   3994         (match_operand:SI 8 "register_operand" ""))
   3995    (set (match_operand:SI 19 "memory_operand" "")
   3996         (match_operand:SI 9 "register_operand" ""))
   3997    (match_dup 20)]
   3998   "TARGET_HAS_CDX"
   3999   [(const_int 0)]
   4000 {
   4001   if (gen_ldstwm_peep (false, 10, operands[20], operands))
   4002     DONE;
   4003   else
   4004     FAIL;
   4005 })
   4006 
   4007 (define_peephole2
   4008   [(match_scratch:SI 18 "r")
   4009    (set (match_operand:SI 9 "memory_operand" "")
   4010         (match_operand:SI 0 "register_operand" ""))
   4011    (set (match_operand:SI 10 "memory_operand" "")
   4012         (match_operand:SI 1 "register_operand" ""))
   4013    (set (match_operand:SI 11 "memory_operand" "")
   4014         (match_operand:SI 2 "register_operand" ""))
   4015    (set (match_operand:SI 12 "memory_operand" "")
   4016         (match_operand:SI 3 "register_operand" ""))
   4017    (set (match_operand:SI 13 "memory_operand" "")
   4018         (match_operand:SI 4 "register_operand" ""))
   4019    (set (match_operand:SI 14 "memory_operand" "")
   4020         (match_operand:SI 5 "register_operand" ""))
   4021    (set (match_operand:SI 15 "memory_operand" "")
   4022         (match_operand:SI 6 "register_operand" ""))
   4023    (set (match_operand:SI 16 "memory_operand" "")
   4024         (match_operand:SI 7 "register_operand" ""))
   4025    (set (match_operand:SI 17 "memory_operand" "")
   4026         (match_operand:SI 8 "register_operand" ""))
   4027    (match_dup 18)]
   4028   "TARGET_HAS_CDX"
   4029   [(const_int 0)]
   4030 {
   4031   if (gen_ldstwm_peep (false, 9, operands[18], operands))
   4032     DONE;
   4033   else
   4034     FAIL;
   4035 })
   4036 
   4037 (define_peephole2
   4038   [(match_scratch:SI 16 "r")
   4039    (set (match_operand:SI 8 "memory_operand" "")
   4040         (match_operand:SI 0 "register_operand" ""))
   4041    (set (match_operand:SI 9 "memory_operand" "")
   4042         (match_operand:SI 1 "register_operand" ""))
   4043    (set (match_operand:SI 10 "memory_operand" "")
   4044         (match_operand:SI 2 "register_operand" ""))
   4045    (set (match_operand:SI 11 "memory_operand" "")
   4046         (match_operand:SI 3 "register_operand" ""))
   4047    (set (match_operand:SI 12 "memory_operand" "")
   4048         (match_operand:SI 4 "register_operand" ""))
   4049    (set (match_operand:SI 13 "memory_operand" "")
   4050         (match_operand:SI 5 "register_operand" ""))
   4051    (set (match_operand:SI 14 "memory_operand" "")
   4052         (match_operand:SI 6 "register_operand" ""))
   4053    (set (match_operand:SI 15 "memory_operand" "")
   4054         (match_operand:SI 7 "register_operand" ""))
   4055    (match_dup 16)]
   4056   "TARGET_HAS_CDX"
   4057   [(const_int 0)]
   4058 {
   4059   if (gen_ldstwm_peep (false, 8, operands[16], operands))
   4060     DONE;
   4061   else
   4062     FAIL;
   4063 })
   4064 
   4065 (define_peephole2
   4066   [(match_scratch:SI 14 "r")
   4067    (set (match_operand:SI 7 "memory_operand" "")
   4068         (match_operand:SI 0 "register_operand" ""))
   4069    (set (match_operand:SI 8 "memory_operand" "")
   4070         (match_operand:SI 1 "register_operand" ""))
   4071    (set (match_operand:SI 9 "memory_operand" "")
   4072         (match_operand:SI 2 "register_operand" ""))
   4073    (set (match_operand:SI 10 "memory_operand" "")
   4074         (match_operand:SI 3 "register_operand" ""))
   4075    (set (match_operand:SI 11 "memory_operand" "")
   4076         (match_operand:SI 4 "register_operand" ""))
   4077    (set (match_operand:SI 12 "memory_operand" "")
   4078         (match_operand:SI 5 "register_operand" ""))
   4079    (set (match_operand:SI 13 "memory_operand" "")
   4080         (match_operand:SI 6 "register_operand" ""))
   4081    (match_dup 14)]
   4082   "TARGET_HAS_CDX"
   4083   [(const_int 0)]
   4084 {
   4085   if (gen_ldstwm_peep (false, 7, operands[14], operands))
   4086     DONE;
   4087   else
   4088     FAIL;
   4089 })
   4090 
   4091 (define_peephole2
   4092   [(match_scratch:SI 12 "r")
   4093    (set (match_operand:SI 6 "memory_operand" "")
   4094         (match_operand:SI 0 "register_operand" ""))
   4095    (set (match_operand:SI 7 "memory_operand" "")
   4096         (match_operand:SI 1 "register_operand" ""))
   4097    (set (match_operand:SI 8 "memory_operand" "")
   4098         (match_operand:SI 2 "register_operand" ""))
   4099    (set (match_operand:SI 9 "memory_operand" "")
   4100         (match_operand:SI 3 "register_operand" ""))
   4101    (set (match_operand:SI 10 "memory_operand" "")
   4102         (match_operand:SI 4 "register_operand" ""))
   4103    (set (match_operand:SI 11 "memory_operand" "")
   4104         (match_operand:SI 5 "register_operand" ""))
   4105    (match_dup 12)]
   4106   "TARGET_HAS_CDX"
   4107   [(const_int 0)]
   4108 {
   4109   if (gen_ldstwm_peep (false, 6, operands[12], operands))
   4110     DONE;
   4111   else
   4112     FAIL;
   4113 })
   4114 
   4115 (define_peephole2
   4116   [(match_scratch:SI 10 "r")
   4117    (set (match_operand:SI 5 "memory_operand" "")
   4118         (match_operand:SI 0 "register_operand" ""))
   4119    (set (match_operand:SI 6 "memory_operand" "")
   4120         (match_operand:SI 1 "register_operand" ""))
   4121    (set (match_operand:SI 7 "memory_operand" "")
   4122         (match_operand:SI 2 "register_operand" ""))
   4123    (set (match_operand:SI 8 "memory_operand" "")
   4124         (match_operand:SI 3 "register_operand" ""))
   4125    (set (match_operand:SI 9 "memory_operand" "")
   4126         (match_operand:SI 4 "register_operand" ""))
   4127    (match_dup 10)]
   4128   "TARGET_HAS_CDX"
   4129   [(const_int 0)]
   4130 {
   4131   if (gen_ldstwm_peep (false, 5, operands[10], operands))
   4132     DONE;
   4133   else
   4134     FAIL;
   4135 })
   4136 
   4137 (define_peephole2
   4138   [(match_scratch:SI 8 "r")
   4139    (set (match_operand:SI 4 "memory_operand" "")
   4140         (match_operand:SI 0 "register_operand" ""))
   4141    (set (match_operand:SI 5 "memory_operand" "")
   4142         (match_operand:SI 1 "register_operand" ""))
   4143    (set (match_operand:SI 6 "memory_operand" "")
   4144         (match_operand:SI 2 "register_operand" ""))
   4145    (set (match_operand:SI 7 "memory_operand" "")
   4146         (match_operand:SI 3 "register_operand" ""))
   4147    (match_dup 8)]
   4148   "TARGET_HAS_CDX"
   4149   [(const_int 0)]
   4150 {
   4151   if (gen_ldstwm_peep (false, 4, operands[8], operands))
   4152     DONE;
   4153   else
   4154     FAIL;
   4155 })
   4156 
   4157 (define_peephole2
   4158   [(match_scratch:SI 6 "r")
   4159    (set (match_operand:SI 3 "memory_operand" "")
   4160         (match_operand:SI 0 "register_operand" ""))
   4161    (set (match_operand:SI 4 "memory_operand" "")
   4162         (match_operand:SI 1 "register_operand" ""))
   4163    (set (match_operand:SI 5 "memory_operand" "")
   4164         (match_operand:SI 2 "register_operand" ""))
   4165    (match_dup 6)]
   4166   "TARGET_HAS_CDX"
   4167   [(const_int 0)]
   4168 {
   4169   if (gen_ldstwm_peep (false, 3, operands[6], operands))
   4170     DONE;
   4171   else
   4172     FAIL;
   4173 })
   4174 
   4175 (define_peephole2
   4176   [(match_scratch:SI 4 "r")
   4177    (set (match_operand:SI 2 "memory_operand" "")
   4178         (match_operand:SI 0 "register_operand" ""))
   4179    (set (match_operand:SI 3 "memory_operand" "")
   4180         (match_operand:SI 1 "register_operand" ""))
   4181    (match_dup 4)]
   4182   "TARGET_HAS_CDX"
   4183   [(const_int 0)]
   4184 {
   4185   if (gen_ldstwm_peep (false, 2, operands[4], operands))
   4186     DONE;
   4187   else
   4188     FAIL;
   4189 })
   4190 
   4191