OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [c6x/] [c6x-mult.md.in] - Blame information for rev 758

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 709 jeremybenn
;; Multiplication patterns for TI C6X.
2
;; This file is processed by genmult.sh to produce two variants of each
3
;; pattern, a normal one and a real_mult variant for modulo scheduling.
4
;; Copyright (C) 2010, 2011 Free Software Foundation, Inc.
5
;; Contributed by Bernd Schmidt 
6
;; Contributed by CodeSourcery.
7
;;
8
;; This file is part of GCC.
9
;;
10
;; GCC is free software; you can redistribute it and/or modify
11
;; it under the terms of the GNU General Public License as published by
12
;; the Free Software Foundation; either version 3, or (at your option)
13
;; any later version.
14
;;
15
;; GCC is distributed in the hope that it will be useful,
16
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
17
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18
;; GNU General Public License for more details.
19
;;
20
;; You should have received a copy of the GNU General Public License
21
;; along with GCC; see the file COPYING3.  If not see
22
;; .
23
 
24
;; -------------------------------------------------------------------------
25
;; Miscellaneous insns that execute on the M units
26
;; -------------------------------------------------------------------------
27
 
28
(define_insn "rotlsi3_VARIANT_"
29
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
30
        (rotate:SI (match_operand:SI 1 "register_operand" "a,b,?b,?a")
31
                   (match_operand:SI 2 "reg_or_ucst5_operand" "aIu5,bIu5,aIu5,bIu5"))_CBRK_)]
32
  "TARGET_INSNS_64"
33
  "%|%.\\trotl\\t%$\\t%1, %2, %_MODk_0"
34
  [(set_attr "units" "m")
35
   (set_attr "type" "mpy2")
36
   (set_attr "cross" "n,n,y,y")])
37
 
38
(define_insn "bitrevsi2_VARIANT_"
39
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_A_,_B_,_B_")
40
        (unspec:SI [(match_operand:SI 1 "register_operand" "a,?b,b,?a")]
41
                   UNSPEC_BITREV)_CBRK_)]
42
  "TARGET_INSNS_64"
43
  "%|%.\\tbitr\\t%$\\t%1, %_MODk_0"
44
  [(set_attr "units" "m")
45
   (set_attr "type" "mpy2")
46
   (set_attr "cross" "n,y,n,y")])
47
 
48
;; Vector average.
49
 
50
(define_insn "avgv2hi3_VARIANT_"
51
  [(_SET_ _OBRK_(match_operand:_MV2HI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
52
        (unspec:V2HI [(match_operand:V2HI 1 "register_operand" "a,b,?b,?a")
53
                      (match_operand:V2HI 2 "register_operand" "a,b,a,b")] UNSPEC_AVG)_CBRK_)]
54
  "TARGET_INSNS_64"
55
  "%|%.\\tavg2\\t%$\\t%1, %2, %_MODk_0"
56
  [(set_attr "units" "m")
57
   (set_attr "type" "mpy2")
58
   (set_attr "cross" "n,n,y,y")])
59
 
60
(define_insn "uavgv4qi3_VARIANT_"
61
  [(_SET_ _OBRK_(match_operand:_MV4QI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
62
        (unspec:V4QI [(match_operand:V4QI 1 "register_operand" "a,b,?b,?a")
63
                      (match_operand:V4QI 2 "register_operand" "a,b,a,b")] UNSPEC_AVG)_CBRK_)]
64
  "TARGET_INSNS_64"
65
  "%|%.\\tavgu4\\t%$\\t%1, %2, %_MODk_0"
66
  [(set_attr "units" "m")
67
   (set_attr "type" "mpy2")
68
   (set_attr "cross" "n,n,y,y")])
69
 
70
;; -------------------------------------------------------------------------
71
;; Multiplication
72
;; -------------------------------------------------------------------------
73
 
74
(define_insn "mulhi3_VARIANT_"
75
  [(_SET_ _OBRK_(match_operand:HI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
76
        (mult:HI (match_operand:HI 1 "register_operand" "a,b,?b,?a")
77
                 (match_operand:HI 2 "reg_or_scst5_operand" "aIs5,bIs5,aIs5,bIs5"))_CBRK_)]
78
  ""
79
  "%|%.\\tmpy\\t%$\\t%2, %1, %_MODk_0"
80
  [(set_attr "type" "mpy2")
81
   (set_attr "units" "m")
82
   (set_attr "op_pattern" "sxs")
83
   (set_attr "cross" "n,n,y,y")])
84
 
85
(define_insn "mulhisi3_const_VARIANT_"
86
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A__B_")
87
        (mult:SI (sign_extend:SI
88
                  (match_operand:HI 1 "register_operand" "a,b,?ab"))
89
                 (match_operand:HI 2 "scst5_operand" "Is5,Is5,Is5"))_CBRK_)]
90
  ""
91
  "%|%.\\tmpy\\t%$\\t%2, %1, %_MODk_0"
92
  [(set_attr "type" "mpy2")
93
   (set_attr "units" "m")
94
   (set_attr "cross" "n,n,y")])
95
 
96
(define_insn "*mulhisi3_insn_VARIANT_"
97
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
98
        (mult:SI (sign_extend:SI
99
                  (match_operand:HI 1 "register_operand" "%a,b,?a,?b"))
100
                 (sign_extend:SI
101
                  (match_operand:HI 2 "reg_or_scst5_operand" "a,b,b,a")))_CBRK_)]
102
  ""
103
  "%|%.\\tmpy\\t%$\\t%1, %2, %_MODk_0"
104
  [(set_attr "type" "mpy2")
105
   (set_attr "units" "m")
106
   (set_attr "op_pattern" "ssx")
107
   (set_attr "cross" "n,n,y,y")])
108
 
109
(define_insn "mulhisi3_lh_VARIANT_"
110
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
111
        (mult:SI (sign_extend:SI
112
                  (match_operand:HI 1 "register_operand" "a,b,?a,?b"))
113
                 (ashiftrt:SI
114
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
115
                  (const_int 16)))_CBRK_)]
116
  ""
117
  "%|%.\\tmpylh\\t%$\\t%1, %2, %_MODk_0"
118
  [(set_attr "type" "mpy2")
119
   (set_attr "units" "m")
120
   (set_attr "cross" "n,n,y,y")])
121
 
122
(define_insn "mulhisi3_hl_VARIANT_"
123
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
124
        (mult:SI (ashiftrt:SI
125
                  (match_operand:SI 1 "register_operand" "a,b,?a,?b")
126
                  (const_int 16))
127
                 (sign_extend:SI
128
                  (match_operand:HI 2 "register_operand" "a,b,b,a")))_CBRK_)]
129
  ""
130
  "%|%.\\tmpyhl\\t%$\\t%1, %2, %_MODk_0"
131
  [(set_attr "type" "mpy2")
132
   (set_attr "units" "m")
133
   (set_attr "cross" "n,n,y,y")])
134
 
135
(define_insn "mulhisi3_hh_VARIANT_"
136
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
137
        (mult:SI (ashiftrt:SI
138
                  (match_operand:SI 1 "register_operand" "%a,b,?a,?b")
139
                  (const_int 16))
140
                 (ashiftrt:SI
141
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
142
                  (const_int 16)))_CBRK_)]
143
  ""
144
  "%|%.\\tmpyh\\t%$\\t%1, %2, %_MODk_0"
145
  [(set_attr "type" "mpy2")
146
   (set_attr "units" "m")
147
   (set_attr "cross" "n,n,y,y")])
148
 
149
(define_insn "umulhisi3_VARIANT_"
150
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
151
        (mult:SI (zero_extend:SI
152
                  (match_operand:HI 1 "register_operand" "%a,b,?a,?b"))
153
                 (zero_extend:SI
154
                  (match_operand:HI 2 "register_operand" "a,b,b,a")))_CBRK_)]
155
  ""
156
  "%|%.\\tmpyu\\t%$\\t%1, %2, %_MODk_0"
157
  [(set_attr "type" "mpy2")
158
   (set_attr "units" "m")
159
   (set_attr "cross" "n,n,y,y")])
160
 
161
(define_insn "umulhisi3_lh_VARIANT_"
162
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
163
        (mult:SI (zero_extend:SI
164
                  (match_operand:HI 1 "register_operand" "a,b,?a,?b"))
165
                 (lshiftrt:SI
166
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
167
                  (const_int 16)))_CBRK_)]
168
  ""
169
  "%|%.\\tmpylhu\\t%$\\t%1, %2, %_MODk_0"
170
  [(set_attr "type" "mpy2")
171
   (set_attr "units" "m")
172
   (set_attr "cross" "n,n,y,y")])
173
 
174
(define_insn "umulhisi3_hl_VARIANT_"
175
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
176
        (mult:SI (lshiftrt:SI
177
                  (match_operand:SI 1 "register_operand" "a,b,?a,?b")
178
                  (const_int 16))
179
                 (zero_extend:SI
180
                  (match_operand:HI 2 "register_operand" "a,b,b,a")))_CBRK_)]
181
  ""
182
  "%|%.\\tmpyhlu\\t%$\\t%1, %2, %_MODk_0"
183
  [(set_attr "type" "mpy2")
184
   (set_attr "units" "m")
185
   (set_attr "cross" "n,n,y,y")])
186
 
187
(define_insn "umulhisi3_hh_VARIANT_"
188
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
189
        (mult:SI (lshiftrt:SI
190
                  (match_operand:SI 1 "register_operand" "%a,b,?a,?b")
191
                  (const_int 16))
192
                 (lshiftrt:SI
193
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
194
                  (const_int 16)))_CBRK_)]
195
  ""
196
  "%|%.\\tmpyhu\\t%$\\t%1, %2, %_MODk_0"
197
  [(set_attr "type" "mpy2")
198
   (set_attr "units" "m")
199
   (set_attr "cross" "n,n,y,y")])
200
 
201
(define_insn "usmulhisi3_const_VARIANT_"
202
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A__B_")
203
        (mult:SI (zero_extend:SI
204
                  (match_operand:HI 1 "register_operand" "a,b,?ab"))
205
                 (match_operand:SI 2 "scst5_operand" "Is5,Is5,Is5"))_CBRK_)]
206
  ""
207
  "%|%.\\tmpysu\\t%$\\t%2, %1, %_MODk_0"
208
  [(set_attr "type" "mpy2")
209
   (set_attr "units" "m")
210
   (set_attr "cross" "n,n,y")])
211
 
212
(define_insn "*usmulhisi3_insn_VARIANT_"
213
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
214
        (mult:SI (zero_extend:SI
215
                  (match_operand:HI 1 "register_operand" "a,b,?a,?b"))
216
                 (sign_extend:SI
217
                  (match_operand:HI 2 "reg_or_scst5_operand" "aIs5,bIs5,bIs5,aIs5")))_CBRK_)]
218
  ""
219
  "%|%.\\tmpyus\\t%$\\t%1, %2, %_MODk_0"
220
  [(set_attr "type" "mpy2")
221
   (set_attr "units" "m")
222
   (set_attr "cross" "n,n,y,y")])
223
 
224
(define_insn "usmulhisi3_lh_VARIANT_"
225
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
226
        (mult:SI (zero_extend:SI
227
                  (match_operand:HI 1 "register_operand" "a,b,?a,?b"))
228
                 (ashiftrt:SI
229
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
230
                  (const_int 16)))_CBRK_)]
231
  ""
232
  "%|%.\\tmpyluhs\\t%$\\t%1, %2, %_MODk_0"
233
  [(set_attr "type" "mpy2")
234
   (set_attr "units" "m")
235
   (set_attr "cross" "n,n,y,y")])
236
 
237
(define_insn "usmulhisi3_hl_VARIANT_"
238
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
239
        (mult:SI (lshiftrt:SI
240
                  (match_operand:SI 1 "register_operand" "a,b,?a,?b")
241
                  (const_int 16))
242
                 (sign_extend:SI
243
                  (match_operand:HI 2 "register_operand" "a,b,b,a")))_CBRK_)]
244
  ""
245
  "%|%.\\tmpyhuls\\t%$\\t%1, %2, %_MODk_0"
246
  [(set_attr "type" "mpy2")
247
   (set_attr "units" "m")
248
   (set_attr "cross" "n,n,y,y")])
249
 
250
(define_insn "usmulhisi3_hh_VARIANT_"
251
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
252
        (mult:SI (lshiftrt:SI
253
                  (match_operand:SI 1 "register_operand" "a,b,?a,?b")
254
                  (const_int 16))
255
                 (ashiftrt:SI
256
                  (match_operand:SI 2 "register_operand" "a,b,b,a")
257
                  (const_int 16)))_CBRK_)]
258
  ""
259
  "%|%.\\tmpyhus\\t%$\\t%1, %2, %_MODk_0"
260
  [(set_attr "type" "mpy2")
261
   (set_attr "units" "m")
262
   (set_attr "cross" "n,n,y,y")])
263
 
264
(define_insn "mulsi3_insn_VARIANT_"
265
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
266
        (mult:SI (match_operand:SI 1 "register_operand" "%a,b,?a,?b")
267
                 (match_operand:SI 2 "register_operand" "a,b,b,a"))_CBRK_)]
268
  "TARGET_MPY32"
269
  "%|%.\\tmpy32\\t%$\\t%1, %2, %_MODk_0"
270
 [(set_attr "type" "mpy4")
271
  (set_attr "units" "m")
272
  (set_attr "cross" "n,n,y,y")])
273
 
274
(define_insn "mulsidi3_VARIANT_"
275
  [(_SET_ _OBRK_(match_operand:DI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
276
        (mult:DI (any_ext:DI
277
                  (match_operand:SI 1 "register_operand" "%a,b,?a,?b"))
278
                 (any_ext:DI
279
                  (match_operand:SI 2 "register_operand" "a,b,b,a")))_CBRK_)]
280
  "TARGET_MPY32"
281
  "%|%.\\tmpy32\\t%$\\t%1, %2, %_MODK_0"
282
  [(set_attr "type" "mpy4")
283
   (set_attr "units" "m")
284
   (set_attr "cross" "n,n,y,y")])
285
 
286
(define_insn "usmulsidi3_VARIANT_"
287
  [(_SET_ _OBRK_(match_operand:DI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
288
        (mult:DI (zero_extend:DI
289
                  (match_operand:SI 1 "register_operand" "a,b,?a,?b"))
290
                 (sign_extend:DI
291
                  (match_operand:SI 2 "register_operand" "a,b,b,a")))_CBRK_)]
292
  "TARGET_MPY32"
293
  "%|%.\\tmpy32us\\t%$\\t%1, %2, %_MODK_0"
294
  [(set_attr "type" "mpy4")
295
   (set_attr "units" "m")
296
   (set_attr "cross" "n,n,y,y")])
297
 
298
;; Widening vector multiply and dot product
299
 
300
(define_insn "mulv2hiv2si3_VARIANT_"
301
  [(_SET_ _OBRK_(match_operand:V2SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
302
        (mult:V2SI
303
         (sign_extend:V2SI (match_operand:V2HI 1 "register_operand" "a,b,a,b"))
304
         (sign_extend:V2SI (match_operand:V2HI 2 "register_operand" "a,b,?b,?a")))_CBRK_)]
305
  "TARGET_INSNS_64"
306
  "%|%.\\tmpy2\\t%$\\t%1, %2, %_MODk_0"
307
 [(set_attr "type" "mpy4")
308
  (set_attr "units" "m")
309
  (set_attr "cross" "n,n,y,y")])
310
 
311
(define_insn "umulv4qiv4hi3_VARIANT_"
312
  [(_SET_ _OBRK_(match_operand:V4HI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
313
        (mult:V4HI
314
         (zero_extend:V4HI (match_operand:V4QI 1 "register_operand" "a,b,a,b"))
315
         (zero_extend:V4HI (match_operand:V4QI 2 "register_operand" "a,b,?b,?a")))_CBRK_)]
316
  "TARGET_INSNS_64"
317
  "%|%.\\tmpyu4\\t%$\\t%1, %2, %_MODk_0"
318
  [(set_attr "type" "mpy4")
319
   (set_attr "units" "m")
320
   (set_attr "cross" "n,n,y,y")])
321
 
322
(define_insn "usmulv4qiv4hi3_VARIANT_"
323
  [(_SET_ _OBRK_(match_operand:V4HI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
324
        (mult:V4HI
325
         (zero_extend:V4HI (match_operand:V4QI 1 "register_operand" "a,b,?b,?a"))
326
         (sign_extend:V4HI (match_operand:V4QI 2 "register_operand" "a,b,a,b")))_CBRK_)]
327
  "TARGET_INSNS_64"
328
  "%|%.\\tmpyus4\\t%$\\t%1, %2, %_MODk_0"
329
  [(set_attr "type" "mpy4")
330
   (set_attr "units" "m")
331
   (set_attr "cross" "n,n,y,y")])
332
 
333
(define_insn "dotv2hi_VARIANT_"
334
  [(_SET_ _OBRK_(match_operand:SI 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
335
        (plus:SI
336
          (mult:SI
337
            (sign_extend:SI
338
              (vec_select:HI
339
                (match_operand:V2HI 1 "register_operand" "a,b,a,b")
340
                (parallel [(const_int 0)])))
341
            (sign_extend:SI
342
              (vec_select:HI
343
                (match_operand:V2HI 2 "register_operand" "a,b,?b,?a")
344
                (parallel [(const_int 0)]))))
345
          (mult:SI
346
            (sign_extend:SI
347
              (vec_select:HI (match_dup 1) (parallel [(const_int 1)])))
348
            (sign_extend:SI
349
              (vec_select:HI (match_dup 2) (parallel [(const_int 1)])))))_CBRK_)]
350
  "TARGET_INSNS_64"
351
  "%|%.\\tdotp2\\t%$\\t%1, %2, %_MODk_0"
352
  [(set_attr "type" "mpy4")
353
   (set_attr "units" "m")
354
   (set_attr "cross" "n,n,y,y")])
355
 
356
;; Fractional multiply
357
 
358
(define_insn "mulv2hqv2sq3_VARIANT_"
359
  [(_SET_ _OBRK_(match_operand:_MV2SQ 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
360
        (ss_mult:V2SQ
361
         (fract_convert:V2SQ
362
          (match_operand:V2HQ 1 "register_operand" "%a,b,?a,?b"))
363
         (fract_convert:V2SQ
364
          (match_operand:V2HQ 2 "register_operand" "a,b,b,a")))_CBRK_)]
365
  ""
366
  "%|%.\\tsmpy2\\t%$\\t%1, %2, %_MODk_0"
367
  [(set_attr "type" "mpy4")
368
   (set_attr "units" "m")
369
   (set_attr "cross" "n,n,y,y")])
370
 
371
(define_insn "mulhqsq3_VARIANT_"
372
  [(_SET_ _OBRK_(match_operand:_MSQ 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
373
        (ss_mult:SQ
374
         (fract_convert:SQ
375
          (match_operand:HQ 1 "register_operand" "%a,b,?a,?b"))
376
         (fract_convert:SQ
377
          (match_operand:HQ 2 "register_operand" "a,b,b,a")))_CBRK_)]
378
  ""
379
  "%|%.\\tsmpy\\t%$\\t%1, %2, %_MODk_0"
380
  [(set_attr "type" "mpy2")
381
   (set_attr "units" "m")
382
   (set_attr "cross" "n,n,y,y")])
383
 
384
(define_insn "mulhqsq3_lh_VARIANT_"
385
  [(_SET_ _OBRK_(match_operand:_MSQ 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
386
        (ss_mult:SQ
387
         (fract_convert:SQ
388
          (match_operand:HQ 1 "register_operand" "a,b,?a,?b"))
389
         (fract_convert:SQ
390
          (truncate:HQ (match_operand:SQ 2 "register_operand" "a,b,b,a"))))_CBRK_)]
391
  ""
392
  "%|%.\\tsmpylh\\t%$\\t%1, %2, %_MODk_0"
393
  [(set_attr "type" "mpy2")
394
   (set_attr "units" "m")
395
   (set_attr "cross" "n,n,y,y")])
396
 
397
(define_insn "mulhqsq3_hl_VARIANT_"
398
  [(_SET_ _OBRK_(match_operand:_MSQ 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
399
        (ss_mult:SQ
400
         (fract_convert:SQ
401
          (truncate:HQ (match_operand:SQ 1 "register_operand" "a,b,b,a")))
402
         (fract_convert:SQ
403
          (match_operand:HQ 2 "register_operand" "a,b,b,a")))_CBRK_)]
404
  ""
405
  "%|%.\\tsmpyhl\\t%$\\t%1, %2, %_MODk_0"
406
  [(set_attr "type" "mpy2")
407
   (set_attr "units" "m")
408
   (set_attr "cross" "n,n,y,y")])
409
 
410
(define_insn "mulhqsq3_hh_VARIANT_"
411
  [(_SET_ _OBRK_(match_operand:_MSQ 0 "_DESTOPERAND_" "=_A_,_B_,_A_,_B_")
412
        (ss_mult:SQ
413
         (fract_convert:SQ
414
          (truncate:HQ (match_operand:SQ 1 "register_operand" "a,b,b,a")))
415
         (fract_convert:SQ
416
          (truncate:HQ (match_operand:SQ 2 "register_operand" "a,b,b,a"))))_CBRK_)]
417
  ""
418
  "%|%.\\tsmpyh\\t%$\\t%1, %2, %_MODk_0"
419
  [(set_attr "type" "mpy2")
420
   (set_attr "units" "m")
421
   (set_attr "cross" "n,n,y,y")])

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.