xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/h8300/mova.md (revision 87d689fb734c654d2486f87f7be32f1b53ecdbec)
1;; -*- buffer-read-only: t -*-
2;; Generated automatically from genmova.sh
3;; Copyright (C) 2004-2015 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.
11;;
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.
16;;
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")])
29
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")])
39
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")])
49
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")])
59
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")])
68
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")])
77
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")])
87
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")])
97
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")])
108
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")])
118
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")])
129
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")])
138
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")])
148
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")])
158
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")])
169
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")])
179
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")])
190
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")])
199
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")])
209
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")])
219
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")])
230
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")])
240
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")])
251
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")])
260
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")])
270
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")])
280
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")])
291
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")])
301
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")])
312
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")])
321
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")])
330
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")])
340
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")])
350
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")])
361
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")])
371
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")])
382
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")])
391
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")])
401
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")])
411
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")])
422
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")])
432
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")])
443
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")])
452
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")])
462
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")])
472
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")])
483
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")])
493
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")])
504
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")])
513
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")])
523
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")])
533
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")])
544
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")])
554
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")])
565
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")])
575
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")])
585
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")])
595
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")])
605
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")])
614
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")])
623
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")])
633
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")])
643
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")])
654
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")])
664
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")])
675
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")])
684
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")])
694
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")])
704
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")])
715
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")])
725
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")])
736
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")])
745
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")])
755
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")])
765
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")])
776
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")])
786
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")])
797
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")])
806
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")])
816
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")])
826
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")])
837
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")])
847
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")])
858
859