2013-01-08 Paul Thomas <pault@gcc.gnu.org>
[official-gcc.git] / gcc / config / h8300 / mova.md
bloba847c12d5e4fdb8e10ff51bd86d46334119d1ea8
1 ;; -*- buffer-read-only: t -*-
2 ;; Generated automatically from genmova.sh
3 ;; Copyright (C) 2004, 2009, 2012 Free Software Foundation, Inc.
4 ;;
5 ;; This file is part of GCC.
6 ;;
7 ;; GCC is free software; you can redistribute it and/or modify
8 ;; it under the terms of the GNU General Public License as published by
9 ;; the Free Software Foundation; either version 3, or (at your option)
10 ;; any later version.
12 ;; GCC is distributed in the hope that it will be useful,
13 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
14 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
15 ;; GNU General Public License for more details.
17 ;; You should have received a copy of the GNU General Public License
18 ;; along with GCC; see the file COPYING3.  If not see
19 ;; <http://www.gnu.org/licenses/>.
20 (define_insn ""
21   [(set (match_operand:QI 0 "register_operand" "=r,r")
22         (plus:QI (mult:QI (match_operand:QI 1 "h8300_dst_operand" "0,rQ")
23                            (const_int 2))
24                  (match_operand:QI 2 "immediate_operand" "i,i")))]
25   "TARGET_H8300SX"
26   "mova/w.l @(%o2%C2,%X1.b),%S0"
27   [(set_attr "length_table" "mova")
28    (set_attr "cc" "none")])
30 (define_insn ""
31   [(set (match_operand:QI 0 "register_operand" "=r,r")
32         (plus:QI (ashift:QI (match_operand:QI 1 "h8300_dst_operand" "0,rQ")
33                            (const_int 1))
34                  (match_operand:QI 2 "immediate_operand" "i,i")))]
35   "TARGET_H8300SX"
36   "mova/w.l @(%o2%C2,%X1.b),%S0"
37   [(set_attr "length_table" "mova")
38    (set_attr "cc" "none")])
40 (define_insn ""
41   [(set (match_operand:QI 0 "register_operand" "=r,r")
42         (plus:QI (mult:QI (match_operand:QI 1 "h8300_dst_operand" "0,rQ")
43                            (const_int 4))
44                  (match_operand:QI 2 "immediate_operand" "i,i")))]
45   "TARGET_H8300SX"
46   "mova/l.l @(%o2%C2,%X1.b),%S0"
47   [(set_attr "length_table" "mova")
48    (set_attr "cc" "none")])
50 (define_insn ""
51   [(set (match_operand:QI 0 "register_operand" "=r,r")
52         (plus:QI (ashift:QI (match_operand:QI 1 "h8300_dst_operand" "0,rQ")
53                            (const_int 2))
54                  (match_operand:QI 2 "immediate_operand" "i,i")))]
55   "TARGET_H8300SX"
56   "mova/l.l @(%o2%C2,%X1.b),%S0"
57   [(set_attr "length_table" "mova")
58    (set_attr "cc" "none")])
60 (define_insn ""
61   [(set (match_operand:HI 0 "register_operand" "=r,r")
62         (plus:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
63                  (match_operand:HI 2 "immediate_operand" "i,i")))]
64   "TARGET_H8300SX"
65   "mova/b.l @(%o2%C2,%X1.b),%S0"
66   [(set_attr "length_table" "mova")
67    (set_attr "cc" "none")])
69 (define_insn ""
70   [(set (match_operand:HI 0 "register_operand" "=r,r")
71         (mult:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
72                   (const_int 2)))]
73   "TARGET_H8300SX"
74   "mova/w.l @(0,%X1.b),%S0"
75   [(set_attr "length_table" "mova_zero")
76    (set_attr "cc" "none")])
78 (define_insn ""
79   [(set (match_operand:HI 0 "register_operand" "=r,r")
80         (plus:HI (mult:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
81                            (const_int 2))
82                  (match_operand:HI 2 "immediate_operand" "i,i")))]
83   "TARGET_H8300SX"
84   "mova/w.l @(%o2%C2,%X1.b),%S0"
85   [(set_attr "length_table" "mova")
86    (set_attr "cc" "none")])
88 (define_insn ""
89   [(set (match_operand:HI 0 "register_operand" "=r")
90         (and:HI (mult:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
91                           (const_int 2))
92                 (const_int 510)))]
93   "TARGET_H8300SX"
94   "mova/w.l @(0,%X1.b),%S0"
95   [(set_attr "length_table" "mova_zero")
96    (set_attr "cc" "none")])
98 (define_insn ""
99   [(set (match_operand:HI 0 "register_operand" "=r")
100         (plus:HI (and:HI (mult:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
101                                    (const_int 2))
102                          (const_int 510))
103                  (match_operand:HI 2 "immediate_operand" "i")))]
104   "TARGET_H8300SX"
105   "mova/w.l @(%o2%C2,%X1.b),%S0"
106   [(set_attr "length_table" "mova")
107    (set_attr "cc" "none")])
109 (define_insn ""
110   [(set (match_operand:HI 0 "register_operand" "=r")
111         (and:HI (mult:HI (match_operand:HI 1 "register_operand" "0")
112                           (const_int 2))
113                 (const_int 510)))]
114   "TARGET_H8300SX"
115   "mova/w.l @(0,%X1.b),%S0"
116   [(set_attr "length_table" "mova_zero")
117    (set_attr "cc" "none")])
119 (define_insn ""
120   [(set (match_operand:HI 0 "register_operand" "=r")
121         (plus:HI (and:HI (mult:HI (match_operand:HI 1 "register_operand" "0")
122                                    (const_int 2))
123                          (const_int 510))
124                  (match_operand:HI 2 "immediate_operand" "i")))]
125   "TARGET_H8300SX"
126   "mova/w.l @(%o2%C2,%X1.b),%S0"
127   [(set_attr "length_table" "mova")
128    (set_attr "cc" "none")])
130 (define_insn ""
131   [(set (match_operand:HI 0 "register_operand" "=r,r")
132         (ashift:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
133                   (const_int 1)))]
134   "TARGET_H8300SX"
135   "mova/w.l @(0,%X1.b),%S0"
136   [(set_attr "length_table" "mova_zero")
137    (set_attr "cc" "none")])
139 (define_insn ""
140   [(set (match_operand:HI 0 "register_operand" "=r,r")
141         (plus:HI (ashift:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
142                            (const_int 1))
143                  (match_operand:HI 2 "immediate_operand" "i,i")))]
144   "TARGET_H8300SX"
145   "mova/w.l @(%o2%C2,%X1.b),%S0"
146   [(set_attr "length_table" "mova")
147    (set_attr "cc" "none")])
149 (define_insn ""
150   [(set (match_operand:HI 0 "register_operand" "=r")
151         (and:HI (ashift:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
152                           (const_int 1))
153                 (const_int 510)))]
154   "TARGET_H8300SX"
155   "mova/w.l @(0,%X1.b),%S0"
156   [(set_attr "length_table" "mova_zero")
157    (set_attr "cc" "none")])
159 (define_insn ""
160   [(set (match_operand:HI 0 "register_operand" "=r")
161         (plus:HI (and:HI (ashift:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
162                                    (const_int 1))
163                          (const_int 510))
164                  (match_operand:HI 2 "immediate_operand" "i")))]
165   "TARGET_H8300SX"
166   "mova/w.l @(%o2%C2,%X1.b),%S0"
167   [(set_attr "length_table" "mova")
168    (set_attr "cc" "none")])
170 (define_insn ""
171   [(set (match_operand:HI 0 "register_operand" "=r")
172         (and:HI (ashift:HI (match_operand:HI 1 "register_operand" "0")
173                           (const_int 1))
174                 (const_int 510)))]
175   "TARGET_H8300SX"
176   "mova/w.l @(0,%X1.b),%S0"
177   [(set_attr "length_table" "mova_zero")
178    (set_attr "cc" "none")])
180 (define_insn ""
181   [(set (match_operand:HI 0 "register_operand" "=r")
182         (plus:HI (and:HI (ashift:HI (match_operand:HI 1 "register_operand" "0")
183                                    (const_int 1))
184                          (const_int 510))
185                  (match_operand:HI 2 "immediate_operand" "i")))]
186   "TARGET_H8300SX"
187   "mova/w.l @(%o2%C2,%X1.b),%S0"
188   [(set_attr "length_table" "mova")
189    (set_attr "cc" "none")])
191 (define_insn ""
192   [(set (match_operand:HI 0 "register_operand" "=r,r")
193         (mult:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
194                   (const_int 4)))]
195   "TARGET_H8300SX"
196   "mova/l.l @(0,%X1.b),%S0"
197   [(set_attr "length_table" "mova_zero")
198    (set_attr "cc" "none")])
200 (define_insn ""
201   [(set (match_operand:HI 0 "register_operand" "=r,r")
202         (plus:HI (mult:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
203                            (const_int 4))
204                  (match_operand:HI 2 "immediate_operand" "i,i")))]
205   "TARGET_H8300SX"
206   "mova/l.l @(%o2%C2,%X1.b),%S0"
207   [(set_attr "length_table" "mova")
208    (set_attr "cc" "none")])
210 (define_insn ""
211   [(set (match_operand:HI 0 "register_operand" "=r")
212         (and:HI (mult:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
213                           (const_int 4))
214                 (const_int 1020)))]
215   "TARGET_H8300SX"
216   "mova/l.l @(0,%X1.b),%S0"
217   [(set_attr "length_table" "mova_zero")
218    (set_attr "cc" "none")])
220 (define_insn ""
221   [(set (match_operand:HI 0 "register_operand" "=r")
222         (plus:HI (and:HI (mult:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
223                                    (const_int 4))
224                          (const_int 1020))
225                  (match_operand:HI 2 "immediate_operand" "i")))]
226   "TARGET_H8300SX"
227   "mova/l.l @(%o2%C2,%X1.b),%S0"
228   [(set_attr "length_table" "mova")
229    (set_attr "cc" "none")])
231 (define_insn ""
232   [(set (match_operand:HI 0 "register_operand" "=r")
233         (and:HI (mult:HI (match_operand:HI 1 "register_operand" "0")
234                           (const_int 4))
235                 (const_int 1020)))]
236   "TARGET_H8300SX"
237   "mova/l.l @(0,%X1.b),%S0"
238   [(set_attr "length_table" "mova_zero")
239    (set_attr "cc" "none")])
241 (define_insn ""
242   [(set (match_operand:HI 0 "register_operand" "=r")
243         (plus:HI (and:HI (mult:HI (match_operand:HI 1 "register_operand" "0")
244                                    (const_int 4))
245                          (const_int 1020))
246                  (match_operand:HI 2 "immediate_operand" "i")))]
247   "TARGET_H8300SX"
248   "mova/l.l @(%o2%C2,%X1.b),%S0"
249   [(set_attr "length_table" "mova")
250    (set_attr "cc" "none")])
252 (define_insn ""
253   [(set (match_operand:HI 0 "register_operand" "=r,r")
254         (ashift:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
255                   (const_int 2)))]
256   "TARGET_H8300SX"
257   "mova/l.l @(0,%X1.b),%S0"
258   [(set_attr "length_table" "mova_zero")
259    (set_attr "cc" "none")])
261 (define_insn ""
262   [(set (match_operand:HI 0 "register_operand" "=r,r")
263         (plus:HI (ashift:HI (zero_extend:HI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
264                            (const_int 2))
265                  (match_operand:HI 2 "immediate_operand" "i,i")))]
266   "TARGET_H8300SX"
267   "mova/l.l @(%o2%C2,%X1.b),%S0"
268   [(set_attr "length_table" "mova")
269    (set_attr "cc" "none")])
271 (define_insn ""
272   [(set (match_operand:HI 0 "register_operand" "=r")
273         (and:HI (ashift:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
274                           (const_int 2))
275                 (const_int 1020)))]
276   "TARGET_H8300SX"
277   "mova/l.l @(0,%X1.b),%S0"
278   [(set_attr "length_table" "mova_zero")
279    (set_attr "cc" "none")])
281 (define_insn ""
282   [(set (match_operand:HI 0 "register_operand" "=r")
283         (plus:HI (and:HI (ashift:HI (subreg:HI (match_operand:QI 1 "memory_operand" "m") 0)
284                                    (const_int 2))
285                          (const_int 1020))
286                  (match_operand:HI 2 "immediate_operand" "i")))]
287   "TARGET_H8300SX"
288   "mova/l.l @(%o2%C2,%X1.b),%S0"
289   [(set_attr "length_table" "mova")
290    (set_attr "cc" "none")])
292 (define_insn ""
293   [(set (match_operand:HI 0 "register_operand" "=r")
294         (and:HI (ashift:HI (match_operand:HI 1 "register_operand" "0")
295                           (const_int 2))
296                 (const_int 1020)))]
297   "TARGET_H8300SX"
298   "mova/l.l @(0,%X1.b),%S0"
299   [(set_attr "length_table" "mova_zero")
300    (set_attr "cc" "none")])
302 (define_insn ""
303   [(set (match_operand:HI 0 "register_operand" "=r")
304         (plus:HI (and:HI (ashift:HI (match_operand:HI 1 "register_operand" "0")
305                                    (const_int 2))
306                          (const_int 1020))
307                  (match_operand:HI 2 "immediate_operand" "i")))]
308   "TARGET_H8300SX"
309   "mova/l.l @(%o2%C2,%X1.b),%S0"
310   [(set_attr "length_table" "mova")
311    (set_attr "cc" "none")])
313 (define_insn ""
314   [(set (match_operand:SI 0 "register_operand" "=r,r")
315         (plus:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
316                  (match_operand:SI 2 "immediate_operand" "i,i")))]
317   "TARGET_H8300SX"
318   "mova/b.l @(%o2%C2,%X1.b),%S0"
319   [(set_attr "length_table" "mova")
320    (set_attr "cc" "none")])
322 (define_insn ""
323   [(set (match_operand:SI 0 "register_operand" "=r,r")
324         (mult:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
325                   (const_int 2)))]
326   "TARGET_H8300SX"
327   "mova/w.l @(0,%X1.b),%S0"
328   [(set_attr "length_table" "mova_zero")
329    (set_attr "cc" "none")])
331 (define_insn ""
332   [(set (match_operand:SI 0 "register_operand" "=r,r")
333         (plus:SI (mult:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
334                            (const_int 2))
335                  (match_operand:SI 2 "immediate_operand" "i,i")))]
336   "TARGET_H8300SX"
337   "mova/w.l @(%o2%C2,%X1.b),%S0"
338   [(set_attr "length_table" "mova")
339    (set_attr "cc" "none")])
341 (define_insn ""
342   [(set (match_operand:SI 0 "register_operand" "=r")
343         (and:SI (mult:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
344                           (const_int 2))
345                 (const_int 510)))]
346   "TARGET_H8300SX"
347   "mova/w.l @(0,%X1.b),%S0"
348   [(set_attr "length_table" "mova_zero")
349    (set_attr "cc" "none")])
351 (define_insn ""
352   [(set (match_operand:SI 0 "register_operand" "=r")
353         (plus:SI (and:SI (mult:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
354                                    (const_int 2))
355                          (const_int 510))
356                  (match_operand:SI 2 "immediate_operand" "i")))]
357   "TARGET_H8300SX"
358   "mova/w.l @(%o2%C2,%X1.b),%S0"
359   [(set_attr "length_table" "mova")
360    (set_attr "cc" "none")])
362 (define_insn ""
363   [(set (match_operand:SI 0 "register_operand" "=r")
364         (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
365                           (const_int 2))
366                 (const_int 510)))]
367   "TARGET_H8300SX"
368   "mova/w.l @(0,%X1.b),%S0"
369   [(set_attr "length_table" "mova_zero")
370    (set_attr "cc" "none")])
372 (define_insn ""
373   [(set (match_operand:SI 0 "register_operand" "=r")
374         (plus:SI (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
375                                    (const_int 2))
376                          (const_int 510))
377                  (match_operand:SI 2 "immediate_operand" "i")))]
378   "TARGET_H8300SX"
379   "mova/w.l @(%o2%C2,%X1.b),%S0"
380   [(set_attr "length_table" "mova")
381    (set_attr "cc" "none")])
383 (define_insn ""
384   [(set (match_operand:SI 0 "register_operand" "=r,r")
385         (ashift:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
386                   (const_int 1)))]
387   "TARGET_H8300SX"
388   "mova/w.l @(0,%X1.b),%S0"
389   [(set_attr "length_table" "mova_zero")
390    (set_attr "cc" "none")])
392 (define_insn ""
393   [(set (match_operand:SI 0 "register_operand" "=r,r")
394         (plus:SI (ashift:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
395                            (const_int 1))
396                  (match_operand:SI 2 "immediate_operand" "i,i")))]
397   "TARGET_H8300SX"
398   "mova/w.l @(%o2%C2,%X1.b),%S0"
399   [(set_attr "length_table" "mova")
400    (set_attr "cc" "none")])
402 (define_insn ""
403   [(set (match_operand:SI 0 "register_operand" "=r")
404         (and:SI (ashift:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
405                           (const_int 1))
406                 (const_int 510)))]
407   "TARGET_H8300SX"
408   "mova/w.l @(0,%X1.b),%S0"
409   [(set_attr "length_table" "mova_zero")
410    (set_attr "cc" "none")])
412 (define_insn ""
413   [(set (match_operand:SI 0 "register_operand" "=r")
414         (plus:SI (and:SI (ashift:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
415                                    (const_int 1))
416                          (const_int 510))
417                  (match_operand:SI 2 "immediate_operand" "i")))]
418   "TARGET_H8300SX"
419   "mova/w.l @(%o2%C2,%X1.b),%S0"
420   [(set_attr "length_table" "mova")
421    (set_attr "cc" "none")])
423 (define_insn ""
424   [(set (match_operand:SI 0 "register_operand" "=r")
425         (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
426                           (const_int 1))
427                 (const_int 510)))]
428   "TARGET_H8300SX"
429   "mova/w.l @(0,%X1.b),%S0"
430   [(set_attr "length_table" "mova_zero")
431    (set_attr "cc" "none")])
433 (define_insn ""
434   [(set (match_operand:SI 0 "register_operand" "=r")
435         (plus:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
436                                    (const_int 1))
437                          (const_int 510))
438                  (match_operand:SI 2 "immediate_operand" "i")))]
439   "TARGET_H8300SX"
440   "mova/w.l @(%o2%C2,%X1.b),%S0"
441   [(set_attr "length_table" "mova")
442    (set_attr "cc" "none")])
444 (define_insn ""
445   [(set (match_operand:SI 0 "register_operand" "=r,r")
446         (mult:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
447                   (const_int 4)))]
448   "TARGET_H8300SX"
449   "mova/l.l @(0,%X1.b),%S0"
450   [(set_attr "length_table" "mova_zero")
451    (set_attr "cc" "none")])
453 (define_insn ""
454   [(set (match_operand:SI 0 "register_operand" "=r,r")
455         (plus:SI (mult:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
456                            (const_int 4))
457                  (match_operand:SI 2 "immediate_operand" "i,i")))]
458   "TARGET_H8300SX"
459   "mova/l.l @(%o2%C2,%X1.b),%S0"
460   [(set_attr "length_table" "mova")
461    (set_attr "cc" "none")])
463 (define_insn ""
464   [(set (match_operand:SI 0 "register_operand" "=r")
465         (and:SI (mult:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
466                           (const_int 4))
467                 (const_int 1020)))]
468   "TARGET_H8300SX"
469   "mova/l.l @(0,%X1.b),%S0"
470   [(set_attr "length_table" "mova_zero")
471    (set_attr "cc" "none")])
473 (define_insn ""
474   [(set (match_operand:SI 0 "register_operand" "=r")
475         (plus:SI (and:SI (mult:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
476                                    (const_int 4))
477                          (const_int 1020))
478                  (match_operand:SI 2 "immediate_operand" "i")))]
479   "TARGET_H8300SX"
480   "mova/l.l @(%o2%C2,%X1.b),%S0"
481   [(set_attr "length_table" "mova")
482    (set_attr "cc" "none")])
484 (define_insn ""
485   [(set (match_operand:SI 0 "register_operand" "=r")
486         (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
487                           (const_int 4))
488                 (const_int 1020)))]
489   "TARGET_H8300SX"
490   "mova/l.l @(0,%X1.b),%S0"
491   [(set_attr "length_table" "mova_zero")
492    (set_attr "cc" "none")])
494 (define_insn ""
495   [(set (match_operand:SI 0 "register_operand" "=r")
496         (plus:SI (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
497                                    (const_int 4))
498                          (const_int 1020))
499                  (match_operand:SI 2 "immediate_operand" "i")))]
500   "TARGET_H8300SX"
501   "mova/l.l @(%o2%C2,%X1.b),%S0"
502   [(set_attr "length_table" "mova")
503    (set_attr "cc" "none")])
505 (define_insn ""
506   [(set (match_operand:SI 0 "register_operand" "=r,r")
507         (ashift:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
508                   (const_int 2)))]
509   "TARGET_H8300SX"
510   "mova/l.l @(0,%X1.b),%S0"
511   [(set_attr "length_table" "mova_zero")
512    (set_attr "cc" "none")])
514 (define_insn ""
515   [(set (match_operand:SI 0 "register_operand" "=r,r")
516         (plus:SI (ashift:SI (zero_extend:SI (match_operand:QI 1 "h8300_dst_operand" "0,rQ"))
517                            (const_int 2))
518                  (match_operand:SI 2 "immediate_operand" "i,i")))]
519   "TARGET_H8300SX"
520   "mova/l.l @(%o2%C2,%X1.b),%S0"
521   [(set_attr "length_table" "mova")
522    (set_attr "cc" "none")])
524 (define_insn ""
525   [(set (match_operand:SI 0 "register_operand" "=r")
526         (and:SI (ashift:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
527                           (const_int 2))
528                 (const_int 1020)))]
529   "TARGET_H8300SX"
530   "mova/l.l @(0,%X1.b),%S0"
531   [(set_attr "length_table" "mova_zero")
532    (set_attr "cc" "none")])
534 (define_insn ""
535   [(set (match_operand:SI 0 "register_operand" "=r")
536         (plus:SI (and:SI (ashift:SI (subreg:SI (match_operand:QI 1 "memory_operand" "m") 0)
537                                    (const_int 2))
538                          (const_int 1020))
539                  (match_operand:SI 2 "immediate_operand" "i")))]
540   "TARGET_H8300SX"
541   "mova/l.l @(%o2%C2,%X1.b),%S0"
542   [(set_attr "length_table" "mova")
543    (set_attr "cc" "none")])
545 (define_insn ""
546   [(set (match_operand:SI 0 "register_operand" "=r")
547         (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
548                           (const_int 2))
549                 (const_int 1020)))]
550   "TARGET_H8300SX"
551   "mova/l.l @(0,%X1.b),%S0"
552   [(set_attr "length_table" "mova_zero")
553    (set_attr "cc" "none")])
555 (define_insn ""
556   [(set (match_operand:SI 0 "register_operand" "=r")
557         (plus:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
558                                    (const_int 2))
559                          (const_int 1020))
560                  (match_operand:SI 2 "immediate_operand" "i")))]
561   "TARGET_H8300SX"
562   "mova/l.l @(%o2%C2,%X1.b),%S0"
563   [(set_attr "length_table" "mova")
564    (set_attr "cc" "none")])
566 (define_insn ""
567   [(set (match_operand:HI 0 "register_operand" "=r,r")
568         (plus:HI (mult:HI (match_operand:HI 1 "h8300_dst_operand" "0,rQ")
569                            (const_int 2))
570                  (match_operand:HI 2 "immediate_operand" "i,i")))]
571   "TARGET_H8300SX"
572   "mova/w.l @(%o2%C2,%T1.w),%S0"
573   [(set_attr "length_table" "mova")
574    (set_attr "cc" "none")])
576 (define_insn ""
577   [(set (match_operand:HI 0 "register_operand" "=r,r")
578         (plus:HI (ashift:HI (match_operand:HI 1 "h8300_dst_operand" "0,rQ")
579                            (const_int 1))
580                  (match_operand:HI 2 "immediate_operand" "i,i")))]
581   "TARGET_H8300SX"
582   "mova/w.l @(%o2%C2,%T1.w),%S0"
583   [(set_attr "length_table" "mova")
584    (set_attr "cc" "none")])
586 (define_insn ""
587   [(set (match_operand:HI 0 "register_operand" "=r,r")
588         (plus:HI (mult:HI (match_operand:HI 1 "h8300_dst_operand" "0,rQ")
589                            (const_int 4))
590                  (match_operand:HI 2 "immediate_operand" "i,i")))]
591   "TARGET_H8300SX"
592   "mova/l.l @(%o2%C2,%T1.w),%S0"
593   [(set_attr "length_table" "mova")
594    (set_attr "cc" "none")])
596 (define_insn ""
597   [(set (match_operand:HI 0 "register_operand" "=r,r")
598         (plus:HI (ashift:HI (match_operand:HI 1 "h8300_dst_operand" "0,rQ")
599                            (const_int 2))
600                  (match_operand:HI 2 "immediate_operand" "i,i")))]
601   "TARGET_H8300SX"
602   "mova/l.l @(%o2%C2,%T1.w),%S0"
603   [(set_attr "length_table" "mova")
604    (set_attr "cc" "none")])
606 (define_insn ""
607   [(set (match_operand:SI 0 "register_operand" "=r,r")
608         (plus:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
609                  (match_operand:SI 2 "immediate_operand" "i,i")))]
610   "TARGET_H8300SX"
611   "mova/b.l @(%o2%C2,%T1.w),%S0"
612   [(set_attr "length_table" "mova")
613    (set_attr "cc" "none")])
615 (define_insn ""
616   [(set (match_operand:SI 0 "register_operand" "=r,r")
617         (mult:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
618                   (const_int 2)))]
619   "TARGET_H8300SX"
620   "mova/w.l @(0,%T1.w),%S0"
621   [(set_attr "length_table" "mova_zero")
622    (set_attr "cc" "none")])
624 (define_insn ""
625   [(set (match_operand:SI 0 "register_operand" "=r,r")
626         (plus:SI (mult:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
627                            (const_int 2))
628                  (match_operand:SI 2 "immediate_operand" "i,i")))]
629   "TARGET_H8300SX"
630   "mova/w.l @(%o2%C2,%T1.w),%S0"
631   [(set_attr "length_table" "mova")
632    (set_attr "cc" "none")])
634 (define_insn ""
635   [(set (match_operand:SI 0 "register_operand" "=r")
636         (and:SI (mult:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
637                           (const_int 2))
638                 (const_int 131070)))]
639   "TARGET_H8300SX"
640   "mova/w.l @(0,%T1.w),%S0"
641   [(set_attr "length_table" "mova_zero")
642    (set_attr "cc" "none")])
644 (define_insn ""
645   [(set (match_operand:SI 0 "register_operand" "=r")
646         (plus:SI (and:SI (mult:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
647                                    (const_int 2))
648                          (const_int 131070))
649                  (match_operand:SI 2 "immediate_operand" "i")))]
650   "TARGET_H8300SX"
651   "mova/w.l @(%o2%C2,%T1.w),%S0"
652   [(set_attr "length_table" "mova")
653    (set_attr "cc" "none")])
655 (define_insn ""
656   [(set (match_operand:SI 0 "register_operand" "=r")
657         (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
658                           (const_int 2))
659                 (const_int 131070)))]
660   "TARGET_H8300SX"
661   "mova/w.l @(0,%T1.w),%S0"
662   [(set_attr "length_table" "mova_zero")
663    (set_attr "cc" "none")])
665 (define_insn ""
666   [(set (match_operand:SI 0 "register_operand" "=r")
667         (plus:SI (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
668                                    (const_int 2))
669                          (const_int 131070))
670                  (match_operand:SI 2 "immediate_operand" "i")))]
671   "TARGET_H8300SX"
672   "mova/w.l @(%o2%C2,%T1.w),%S0"
673   [(set_attr "length_table" "mova")
674    (set_attr "cc" "none")])
676 (define_insn ""
677   [(set (match_operand:SI 0 "register_operand" "=r,r")
678         (ashift:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
679                   (const_int 1)))]
680   "TARGET_H8300SX"
681   "mova/w.l @(0,%T1.w),%S0"
682   [(set_attr "length_table" "mova_zero")
683    (set_attr "cc" "none")])
685 (define_insn ""
686   [(set (match_operand:SI 0 "register_operand" "=r,r")
687         (plus:SI (ashift:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
688                            (const_int 1))
689                  (match_operand:SI 2 "immediate_operand" "i,i")))]
690   "TARGET_H8300SX"
691   "mova/w.l @(%o2%C2,%T1.w),%S0"
692   [(set_attr "length_table" "mova")
693    (set_attr "cc" "none")])
695 (define_insn ""
696   [(set (match_operand:SI 0 "register_operand" "=r")
697         (and:SI (ashift:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
698                           (const_int 1))
699                 (const_int 131070)))]
700   "TARGET_H8300SX"
701   "mova/w.l @(0,%T1.w),%S0"
702   [(set_attr "length_table" "mova_zero")
703    (set_attr "cc" "none")])
705 (define_insn ""
706   [(set (match_operand:SI 0 "register_operand" "=r")
707         (plus:SI (and:SI (ashift:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
708                                    (const_int 1))
709                          (const_int 131070))
710                  (match_operand:SI 2 "immediate_operand" "i")))]
711   "TARGET_H8300SX"
712   "mova/w.l @(%o2%C2,%T1.w),%S0"
713   [(set_attr "length_table" "mova")
714    (set_attr "cc" "none")])
716 (define_insn ""
717   [(set (match_operand:SI 0 "register_operand" "=r")
718         (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
719                           (const_int 1))
720                 (const_int 131070)))]
721   "TARGET_H8300SX"
722   "mova/w.l @(0,%T1.w),%S0"
723   [(set_attr "length_table" "mova_zero")
724    (set_attr "cc" "none")])
726 (define_insn ""
727   [(set (match_operand:SI 0 "register_operand" "=r")
728         (plus:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
729                                    (const_int 1))
730                          (const_int 131070))
731                  (match_operand:SI 2 "immediate_operand" "i")))]
732   "TARGET_H8300SX"
733   "mova/w.l @(%o2%C2,%T1.w),%S0"
734   [(set_attr "length_table" "mova")
735    (set_attr "cc" "none")])
737 (define_insn ""
738   [(set (match_operand:SI 0 "register_operand" "=r,r")
739         (mult:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
740                   (const_int 4)))]
741   "TARGET_H8300SX"
742   "mova/l.l @(0,%T1.w),%S0"
743   [(set_attr "length_table" "mova_zero")
744    (set_attr "cc" "none")])
746 (define_insn ""
747   [(set (match_operand:SI 0 "register_operand" "=r,r")
748         (plus:SI (mult:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
749                            (const_int 4))
750                  (match_operand:SI 2 "immediate_operand" "i,i")))]
751   "TARGET_H8300SX"
752   "mova/l.l @(%o2%C2,%T1.w),%S0"
753   [(set_attr "length_table" "mova")
754    (set_attr "cc" "none")])
756 (define_insn ""
757   [(set (match_operand:SI 0 "register_operand" "=r")
758         (and:SI (mult:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
759                           (const_int 4))
760                 (const_int 262140)))]
761   "TARGET_H8300SX"
762   "mova/l.l @(0,%T1.w),%S0"
763   [(set_attr "length_table" "mova_zero")
764    (set_attr "cc" "none")])
766 (define_insn ""
767   [(set (match_operand:SI 0 "register_operand" "=r")
768         (plus:SI (and:SI (mult:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
769                                    (const_int 4))
770                          (const_int 262140))
771                  (match_operand:SI 2 "immediate_operand" "i")))]
772   "TARGET_H8300SX"
773   "mova/l.l @(%o2%C2,%T1.w),%S0"
774   [(set_attr "length_table" "mova")
775    (set_attr "cc" "none")])
777 (define_insn ""
778   [(set (match_operand:SI 0 "register_operand" "=r")
779         (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
780                           (const_int 4))
781                 (const_int 262140)))]
782   "TARGET_H8300SX"
783   "mova/l.l @(0,%T1.w),%S0"
784   [(set_attr "length_table" "mova_zero")
785    (set_attr "cc" "none")])
787 (define_insn ""
788   [(set (match_operand:SI 0 "register_operand" "=r")
789         (plus:SI (and:SI (mult:SI (match_operand:SI 1 "register_operand" "0")
790                                    (const_int 4))
791                          (const_int 262140))
792                  (match_operand:SI 2 "immediate_operand" "i")))]
793   "TARGET_H8300SX"
794   "mova/l.l @(%o2%C2,%T1.w),%S0"
795   [(set_attr "length_table" "mova")
796    (set_attr "cc" "none")])
798 (define_insn ""
799   [(set (match_operand:SI 0 "register_operand" "=r,r")
800         (ashift:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
801                   (const_int 2)))]
802   "TARGET_H8300SX"
803   "mova/l.l @(0,%T1.w),%S0"
804   [(set_attr "length_table" "mova_zero")
805    (set_attr "cc" "none")])
807 (define_insn ""
808   [(set (match_operand:SI 0 "register_operand" "=r,r")
809         (plus:SI (ashift:SI (zero_extend:SI (match_operand:HI 1 "h8300_dst_operand" "0,rQ"))
810                            (const_int 2))
811                  (match_operand:SI 2 "immediate_operand" "i,i")))]
812   "TARGET_H8300SX"
813   "mova/l.l @(%o2%C2,%T1.w),%S0"
814   [(set_attr "length_table" "mova")
815    (set_attr "cc" "none")])
817 (define_insn ""
818   [(set (match_operand:SI 0 "register_operand" "=r")
819         (and:SI (ashift:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
820                           (const_int 2))
821                 (const_int 262140)))]
822   "TARGET_H8300SX"
823   "mova/l.l @(0,%T1.w),%S0"
824   [(set_attr "length_table" "mova_zero")
825    (set_attr "cc" "none")])
827 (define_insn ""
828   [(set (match_operand:SI 0 "register_operand" "=r")
829         (plus:SI (and:SI (ashift:SI (subreg:SI (match_operand:HI 1 "memory_operand" "m") 0)
830                                    (const_int 2))
831                          (const_int 262140))
832                  (match_operand:SI 2 "immediate_operand" "i")))]
833   "TARGET_H8300SX"
834   "mova/l.l @(%o2%C2,%T1.w),%S0"
835   [(set_attr "length_table" "mova")
836    (set_attr "cc" "none")])
838 (define_insn ""
839   [(set (match_operand:SI 0 "register_operand" "=r")
840         (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
841                           (const_int 2))
842                 (const_int 262140)))]
843   "TARGET_H8300SX"
844   "mova/l.l @(0,%T1.w),%S0"
845   [(set_attr "length_table" "mova_zero")
846    (set_attr "cc" "none")])
848 (define_insn ""
849   [(set (match_operand:SI 0 "register_operand" "=r")
850         (plus:SI (and:SI (ashift:SI (match_operand:SI 1 "register_operand" "0")
851                                    (const_int 2))
852                          (const_int 262140))
853                  (match_operand:SI 2 "immediate_operand" "i")))]
854   "TARGET_H8300SX"
855   "mova/l.l @(%o2%C2,%T1.w),%S0"
856   [(set_attr "length_table" "mova")
857    (set_attr "cc" "none")])