1 ;; e500 SPE description
2 ;; Copyright (C) 2002 Free Software Foundation, Inc.
3 ;; Contributed by Aldy Hernandez (aldy@quesejoda.com)
5 ;; This file is part of GNU CC.
7 ;; GNU CC 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 2, or (at your option)
12 ;; GNU CC 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 GNU CC; see the file COPYING. If not, write to
19 ;; the Free Software Foundation, 59 Temple Place - Suite 330,
20 ;; Boston, MA 02111-1307, USA.
26 (define_insn "*negsf2_gpr"
27 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
28 (neg:SF (match_operand:SF 1 "gpc_reg_operand" "r")))]
29 "TARGET_HARD_FLOAT && !TARGET_FPRS"
31 [(set_attr "type" "fp")])
33 (define_insn "*abssf2_gpr"
34 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
35 (abs:SF (match_operand:SF 1 "gpc_reg_operand" "r")))]
36 "TARGET_HARD_FLOAT && !TARGET_FPRS"
38 [(set_attr "type" "fp")])
40 (define_insn "*addsf3_gpr"
41 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
42 (plus:SF (match_operand:SF 1 "gpc_reg_operand" "%r")
43 (match_operand:SF 2 "gpc_reg_operand" "r")))]
44 "TARGET_HARD_FLOAT && !TARGET_FPRS"
46 [(set_attr "type" "fp")])
48 (define_insn "*subsf3_gpr"
49 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
50 (minus:SF (match_operand:SF 1 "gpc_reg_operand" "r")
51 (match_operand:SF 2 "gpc_reg_operand" "r")))]
52 "TARGET_HARD_FLOAT && !TARGET_FPRS"
54 [(set_attr "type" "fp")])
56 (define_insn "*mulsf3_gpr"
57 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
58 (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%r")
59 (match_operand:SF 2 "gpc_reg_operand" "r")))]
60 "TARGET_HARD_FLOAT && !TARGET_FPRS"
62 [(set_attr "type" "fp")])
64 (define_insn "*divsf3_gpr"
65 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
66 (div:SF (match_operand:SF 1 "gpc_reg_operand" "r")
67 (match_operand:SF 2 "gpc_reg_operand" "r")))]
68 "TARGET_HARD_FLOAT && !TARGET_FPRS"
70 [(set_attr "type" "fp")])
72 (define_insn "spe_efsctuiz"
73 [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
74 (unspec:SI [(match_operand:SF 1 "gpc_reg_operand" "r")] 700))]
75 "TARGET_HARD_FLOAT && !TARGET_FPRS"
77 [(set_attr "type" "fp")])
79 (define_insn "spe_fixunssfsi2"
80 [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
81 (unsigned_fix:SI (fix:SF (match_operand:SF 1 "gpc_reg_operand" "r"))))]
82 "TARGET_HARD_FLOAT && !TARGET_FPRS"
84 [(set_attr "type" "fp")])
86 (define_insn "spe_fix_truncsfsi2"
87 [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
88 (fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))]
89 "TARGET_HARD_FLOAT && !TARGET_FPRS"
91 [(set_attr "type" "fp")])
93 (define_insn "spe_floatunssisf2"
94 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
95 (unsigned_float:SF (match_operand:SI 1 "gpc_reg_operand" "r")))]
96 "TARGET_HARD_FLOAT && !TARGET_FPRS"
98 [(set_attr "type" "fp")])
100 (define_insn "spe_floatsisf2"
101 [(set (match_operand:SF 0 "gpc_reg_operand" "=r")
102 (float:SF (match_operand:SI 1 "gpc_reg_operand" "r")))]
103 "TARGET_HARD_FLOAT && !TARGET_FPRS"
105 [(set_attr "type" "fp")])
108 ;; SPE SIMD instructions
110 (define_insn "spe_evabs"
111 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
112 (abs:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))]
115 [(set_attr "type" "vecsimple")
116 (set_attr "length" "4")])
118 (define_insn "spe_evandc"
119 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
120 (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
121 (not:V2SI (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]
124 [(set_attr "type" "vecsimple")
125 (set_attr "length" "4")])
127 (define_insn "spe_evand"
128 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
129 (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
130 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
133 [(set_attr "type" "vecsimple")
134 (set_attr "length" "4")])
136 ;; Vector compare instructions
138 (define_insn "spe_evcmpeq"
139 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
140 (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r")
141 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 500))]
144 [(set_attr "type" "veccmp")
145 (set_attr "length" "4")])
147 (define_insn "spe_evcmpgts"
148 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
149 (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r")
150 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 501))]
153 [(set_attr "type" "veccmp")
154 (set_attr "length" "4")])
156 (define_insn "spe_evcmpgtu"
157 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
158 (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r")
159 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 502))]
162 [(set_attr "type" "veccmp")
163 (set_attr "length" "4")])
165 (define_insn "spe_evcmplts"
166 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
167 (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r")
168 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 503))]
171 [(set_attr "type" "veccmp")
172 (set_attr "length" "4")])
174 (define_insn "spe_evcmpltu"
175 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
176 (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r")
177 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 504))]
180 [(set_attr "type" "veccmp")
181 (set_attr "length" "4")])
183 ;; Floating point vector compare instructions
185 (define_insn "spe_evfscmpeq"
186 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
187 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
188 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 538))
189 (clobber (reg:SI SPEFSCR_REGNO))]
192 [(set_attr "type" "veccmp")
193 (set_attr "length" "4")])
195 (define_insn "spe_evfscmpgt"
196 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
197 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
198 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 539))
199 (clobber (reg:SI SPEFSCR_REGNO))]
202 [(set_attr "type" "veccmp")
203 (set_attr "length" "4")])
205 (define_insn "spe_evfscmplt"
206 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
207 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
208 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 540))
209 (clobber (reg:SI SPEFSCR_REGNO))]
212 [(set_attr "type" "veccmp")
213 (set_attr "length" "4")])
215 (define_insn "spe_evfststeq"
216 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
217 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
218 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 541))]
221 [(set_attr "type" "veccmp")
222 (set_attr "length" "4")])
224 (define_insn "spe_evfststgt"
225 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
226 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
227 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 542))]
230 [(set_attr "type" "veccmp")
231 (set_attr "length" "4")])
233 (define_insn "spe_evfststlt"
234 [(set (match_operand:CC 0 "cc_reg_operand" "=y")
235 (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r")
236 (match_operand:V2SF 2 "gpc_reg_operand" "r")] 543))]
239 [(set_attr "type" "veccmp")
240 (set_attr "length" "4")])
242 ;; End of vector compare instructions
244 (define_insn "spe_evcntlsw"
245 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
246 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 505))]
249 [(set_attr "type" "vecsimple")
250 (set_attr "length" "4")])
252 (define_insn "spe_evcntlzw"
253 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
254 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 506))]
257 [(set_attr "type" "vecsimple")
258 (set_attr "length" "4")])
260 (define_insn "spe_eveqv"
261 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
262 (not:V2SI (xor:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
263 (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]
266 [(set_attr "type" "vecsimple")
267 (set_attr "length" "4")])
269 (define_insn "spe_evextsb"
270 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
271 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 507))]
274 [(set_attr "type" "vecsimple")
275 (set_attr "length" "4")])
277 (define_insn "spe_evextsh"
278 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
279 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 508))]
282 [(set_attr "type" "vecsimple")
283 (set_attr "length" "4")])
285 (define_insn "spe_evlhhesplat"
286 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
287 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
288 (match_operand:QI 2 "immediate_operand" "i"))))
289 (unspec [(const_int 0)] 509)]
291 "evlhhesplat %0,%1,%2"
292 [(set_attr "type" "vecload")
293 (set_attr "length" "4")])
295 (define_insn "spe_evlhhesplatx"
296 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
297 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
298 (match_operand:SI 2 "gpc_reg_operand" "r"))))
299 (unspec [(const_int 0)] 510)]
301 "evlhhesplatx %0,%1,%2"
302 [(set_attr "type" "vecload")
303 (set_attr "length" "4")])
305 (define_insn "spe_evlhhossplat"
306 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
307 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
308 (match_operand:QI 2 "immediate_operand" "i"))))
309 (unspec [(const_int 0)] 511)]
311 "evlhhossplat %0,%1,%2"
312 [(set_attr "type" "vecload")
313 (set_attr "length" "4")])
315 (define_insn "spe_evlhhossplatx"
316 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
317 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
318 (match_operand:SI 2 "gpc_reg_operand" "r"))))
319 (unspec [(const_int 0)] 512)]
321 "evlhhossplatx %0,%1,%2"
322 [(set_attr "type" "vecload")
323 (set_attr "length" "4")])
325 (define_insn "spe_evlhhousplat"
326 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
327 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
328 (match_operand:QI 2 "immediate_operand" "i"))))
329 (unspec [(const_int 0)] 513)]
331 "evlhhousplat %0,%1,%2"
332 [(set_attr "type" "vecload")
333 (set_attr "length" "4")])
335 (define_insn "spe_evlhhousplatx"
336 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
337 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
338 (match_operand:SI 2 "gpc_reg_operand" "r"))))
339 (unspec [(const_int 0)] 514)]
341 "evlhhousplatx %0,%1,%2"
342 [(set_attr "type" "vecload")
343 (set_attr "length" "4")])
345 (define_insn "spe_evlwhsplat"
346 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
347 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
348 (match_operand:QI 2 "immediate_operand" "i"))))
349 (unspec [(const_int 0)] 515)]
351 "evlwhsplat %0,%1,%2"
352 [(set_attr "type" "vecload")
353 (set_attr "length" "4")])
355 (define_insn "spe_evlwhsplatx"
356 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
357 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
358 (match_operand:SI 2 "gpc_reg_operand" "r"))))
359 (unspec [(const_int 0)] 516)]
361 "evlwhsplatx %0,%1,%2"
362 [(set_attr "type" "vecload")
363 (set_attr "length" "4")])
365 (define_insn "spe_evlwwsplat"
366 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
367 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
368 (match_operand:QI 2 "immediate_operand" "i"))))
369 (unspec [(const_int 0)] 517)]
371 "evlwwsplat %0,%1,%2"
372 [(set_attr "type" "vecload")
373 (set_attr "length" "4")])
375 (define_insn "spe_evlwwsplatx"
376 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
377 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
378 (match_operand:SI 2 "gpc_reg_operand" "r"))))
379 (unspec [(const_int 0)] 518)]
381 "evlwwsplatx %0,%1,%2"
382 [(set_attr "type" "vecload")
383 (set_attr "length" "4")])
385 (define_insn "spe_evmergehi"
386 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
387 (vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
389 (match_operand:V2SI 2 "gpc_reg_operand" "r")
390 (parallel [(const_int 1)
395 [(set_attr "type" "vecsimple")
396 (set_attr "length" "4")])
398 (define_insn "spe_evmergehilo"
399 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
400 (vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
401 (match_operand:V2SI 2 "gpc_reg_operand" "r")
404 "evmergehilo %0,%1,%2"
405 [(set_attr "type" "vecsimple")
406 (set_attr "length" "4")])
408 (define_insn "spe_evmergelo"
409 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
410 (vec_merge:V2SI (vec_select:V2SI
411 (match_operand:V2SI 1 "gpc_reg_operand" "r")
412 (parallel [(const_int 1)
414 (match_operand:V2SI 2 "gpc_reg_operand" "r")
418 [(set_attr "type" "vecsimple")
419 (set_attr "length" "4")])
421 (define_insn "spe_evmergelohi"
422 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
423 (vec_merge:V2SI (vec_select:V2SI
424 (match_operand:V2SI 1 "gpc_reg_operand" "r")
425 (parallel [(const_int 1)
428 (match_operand:V2SI 2 "gpc_reg_operand" "r")
429 (parallel [(const_int 1)
433 "evmergelohi %0,%1,%2"
434 [(set_attr "type" "vecsimple")
435 (set_attr "length" "4")])
437 (define_insn "spe_evnand"
438 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
439 (not:V2SI (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
440 (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]
443 [(set_attr "type" "vecsimple")
444 (set_attr "length" "4")])
446 (define_insn "spe_evneg"
447 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
448 (neg:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))]
451 [(set_attr "type" "vecsimple")
452 (set_attr "length" "4")])
454 (define_insn "spe_evnor"
455 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
456 (not:V2SI (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
457 (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]
460 [(set_attr "type" "vecsimple")
461 (set_attr "length" "4")])
463 (define_insn "spe_evorc"
464 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
465 (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
466 (not:V2SI (match_operand:V2SI 2 "gpc_reg_operand" "r"))))]
469 [(set_attr "type" "vecsimple")
470 (set_attr "length" "4")])
472 (define_insn "spe_evor"
473 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
474 (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
475 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
478 [(set_attr "type" "vecsimple")
479 (set_attr "length" "4")])
481 (define_insn "spe_evrlwi"
482 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
483 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
484 (match_operand:QI 2 "immediate_operand" "i")] 519))]
487 [(set_attr "type" "vecsimple")
488 (set_attr "length" "4")])
490 (define_insn "spe_evrlw"
491 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
492 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
493 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 520))]
496 [(set_attr "type" "veccomplex")
497 (set_attr "length" "4")])
499 (define_insn "spe_evrndw"
500 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
501 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 521))]
504 [(set_attr "type" "vecsimple")
505 (set_attr "length" "4")])
507 (define_insn "spe_evsel"
508 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
509 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
510 (match_operand:V2SI 2 "gpc_reg_operand" "r")
511 (match_operand:CC 3 "cc_reg_operand" "y")] 522))]
514 [(set_attr "type" "veccmp")
515 (set_attr "length" "4")])
517 (define_insn "spe_evsel_fs"
518 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
519 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")
520 (match_operand:V2SF 2 "gpc_reg_operand" "r")
521 (match_operand:CC 3 "cc_reg_operand" "y")] 725))]
524 [(set_attr "type" "veccmp")
525 (set_attr "length" "4")])
527 (define_insn "spe_evslwi"
528 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
529 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
530 (match_operand:QI 2 "immediate_operand" "i")]
534 [(set_attr "type" "vecsimple")
535 (set_attr "length" "4")])
537 (define_insn "spe_evslw"
538 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
539 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
540 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 524))]
543 [(set_attr "type" "vecsimple")
544 (set_attr "length" "4")])
546 (define_insn "spe_evsrwis"
547 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
548 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
549 (match_operand:QI 2 "immediate_operand" "i")]
553 [(set_attr "type" "vecsimple")
554 (set_attr "length" "4")])
556 (define_insn "spe_evsrwiu"
557 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
558 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
559 (match_operand:QI 2 "immediate_operand" "i")]
563 [(set_attr "type" "vecsimple")
564 (set_attr "length" "4")])
566 (define_insn "spe_evsrws"
567 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
568 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
569 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 527))]
572 [(set_attr "type" "vecsimple")
573 (set_attr "length" "4")])
575 (define_insn "spe_evsrwu"
576 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
577 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
578 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 528))]
581 [(set_attr "type" "vecsimple")
582 (set_attr "length" "4")])
584 (define_insn "spe_evxor"
585 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
586 (xor:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
587 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
590 [(set_attr "type" "vecsimple")
591 (set_attr "length" "4")])
593 (define_insn "spe_evfsabs"
594 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
595 (abs:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))]
598 [(set_attr "type" "vecfloat")
599 (set_attr "length" "4")])
601 (define_insn "spe_evfsadd"
602 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
603 (plus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")
604 (match_operand:V2SF 2 "gpc_reg_operand" "r")))
605 (clobber (reg:SI SPEFSCR_REGNO))]
608 [(set_attr "type" "vecfloat")
609 (set_attr "length" "4")])
611 (define_insn "spe_evfscfsf"
612 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
613 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 529))]
616 [(set_attr "type" "vecfloat")
617 (set_attr "length" "4")])
619 (define_insn "spe_evfscfsi"
620 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
621 (fix:V2SI (match_operand:V2SF 1 "gpc_reg_operand" "r")))]
624 [(set_attr "type" "vecfloat")
625 (set_attr "length" "4")])
627 (define_insn "spe_evfscfuf"
628 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
629 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 530))]
632 [(set_attr "type" "vecfloat")
633 (set_attr "length" "4")])
635 (define_insn "spe_evfscfui"
636 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
637 (unspec:V2SF [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 701))]
640 [(set_attr "type" "vecfloat")
641 (set_attr "length" "4")])
643 (define_insn "spe_evfsctsf"
644 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
645 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 531))]
648 [(set_attr "type" "vecfloat")
649 (set_attr "length" "4")])
651 (define_insn "spe_evfsctsi"
652 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
653 (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 532))]
656 [(set_attr "type" "vecfloat")
657 (set_attr "length" "4")])
659 (define_insn "spe_evfsctsiz"
660 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
661 (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 533))]
664 [(set_attr "type" "vecfloat")
665 (set_attr "length" "4")])
667 (define_insn "spe_evfsctuf"
668 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
669 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 534))]
672 [(set_attr "type" "vecfloat")
673 (set_attr "length" "4")])
675 (define_insn "spe_evfsctui"
676 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
677 (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 535))]
680 [(set_attr "type" "vecfloat")
681 (set_attr "length" "4")])
683 (define_insn "spe_evfsctuiz"
684 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
685 (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 536))]
688 [(set_attr "type" "vecfloat")
689 (set_attr "length" "4")])
691 (define_insn "spe_evfsdiv"
692 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
693 (div:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")
694 (match_operand:V2SF 2 "gpc_reg_operand" "r")))
695 (clobber (reg:SI SPEFSCR_REGNO))]
698 [(set_attr "type" "vecfloat")
699 (set_attr "length" "4")])
701 (define_insn "spe_evfsmul"
702 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
703 (mult:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")
704 (match_operand:V2SF 2 "gpc_reg_operand" "r")))
705 (clobber (reg:SI SPEFSCR_REGNO))]
708 [(set_attr "type" "vecfloat")
709 (set_attr "length" "4")])
711 (define_insn "spe_evfsnabs"
712 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
713 (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 537))]
716 [(set_attr "type" "vecfloat")
717 (set_attr "length" "4")])
719 (define_insn "spe_evfsneg"
720 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
721 (neg:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))]
724 [(set_attr "type" "vecfloat")
725 (set_attr "length" "4")])
727 (define_insn "spe_evfssub"
728 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
729 (minus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")
730 (match_operand:V2SF 2 "gpc_reg_operand" "r")))
731 (clobber (reg:SI SPEFSCR_REGNO))]
734 [(set_attr "type" "vecfloat")
735 (set_attr "length" "4")])
737 ;; SPE SIMD load instructions.
739 ;; Only the hardware engineer who designed the SPE inderstands the
740 ;; plethora of load and store instructions ;-). We have no way of
741 ;; differentiating between them with RTL so use an unspec of const_int 0
742 ;; to avoid identical RTL.
744 (define_insn "spe_evldd"
745 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
746 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
747 (match_operand:QI 2 "immediate_operand" "i"))))
748 (unspec [(const_int 0)] 544)]
749 "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"
751 [(set_attr "type" "vecload")
752 (set_attr "length" "4")])
754 (define_insn "spe_evlddx"
755 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
756 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
757 (match_operand:SI 2 "gpc_reg_operand" "r"))))
758 (unspec [(const_int 0)] 545)]
761 [(set_attr "type" "vecload")
762 (set_attr "length" "4")])
764 (define_insn "spe_evldh"
765 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
766 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
767 (match_operand:QI 2 "immediate_operand" "i"))))
768 (unspec [(const_int 0)] 546)]
769 "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31"
771 [(set_attr "type" "vecload")
772 (set_attr "length" "4")])
774 (define_insn "spe_evldhx"
775 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
776 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
777 (match_operand:SI 2 "gpc_reg_operand" "r"))))
778 (unspec [(const_int 0)] 547)]
781 [(set_attr "type" "vecload")
782 (set_attr "length" "4")])
784 (define_insn "spe_evldw"
785 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
786 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
787 (match_operand:QI 2 "immediate_operand" "i"))))
788 (unspec [(const_int 0)] 548)]
791 [(set_attr "type" "vecload")
792 (set_attr "length" "4")])
794 (define_insn "spe_evldwx"
795 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
796 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
797 (match_operand:SI 2 "gpc_reg_operand" "r"))))
798 (unspec [(const_int 0)] 549)]
801 [(set_attr "type" "vecload")
802 (set_attr "length" "4")])
804 (define_insn "spe_evlwhe"
805 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
806 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
807 (match_operand:QI 2 "immediate_operand" "i"))))
808 (unspec [(const_int 0)] 550)]
811 [(set_attr "type" "vecload")
812 (set_attr "length" "4")])
814 (define_insn "spe_evlwhex"
815 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
816 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
817 (match_operand:SI 2 "gpc_reg_operand" "r"))))
818 (unspec [(const_int 0)] 551)]
821 [(set_attr "type" "vecload")
822 (set_attr "length" "4")])
824 (define_insn "spe_evlwhos"
825 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
826 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
827 (match_operand:QI 2 "immediate_operand" "i"))))
828 (unspec [(const_int 0)] 552)]
831 [(set_attr "type" "vecload")
832 (set_attr "length" "4")])
834 (define_insn "spe_evlwhosx"
835 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
836 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
837 (match_operand:SI 2 "gpc_reg_operand" "r"))))
838 (unspec [(const_int 0)] 553)]
841 [(set_attr "type" "vecload")
842 (set_attr "length" "4")])
844 (define_insn "spe_evlwhou"
845 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
846 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
847 (match_operand:QI 2 "immediate_operand" "i"))))
848 (unspec [(const_int 0)] 554)]
851 [(set_attr "type" "vecload")
852 (set_attr "length" "4")])
854 (define_insn "spe_evlwhoux"
855 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
856 (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b")
857 (match_operand:SI 2 "gpc_reg_operand" "r"))))
858 (unspec [(const_int 0)] 555)]
861 [(set_attr "type" "vecload")
862 (set_attr "length" "4")])
864 (define_insn "spe_brinc"
865 [(set (match_operand:SI 0 "gpc_reg_operand" "=r")
866 (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "r")
867 (match_operand:SI 2 "gpc_reg_operand" "r")] 556))]
870 [(set_attr "type" "veccomplex")
871 (set_attr "length" "4")])
873 (define_insn "spe_evmhegsmfaa"
874 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
875 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
876 (match_operand:V2SI 2 "gpc_reg_operand" "r")
877 (reg:V2SI SPE_ACC_REGNO)] 557))
878 (clobber (reg:V2SI SPE_ACC_REGNO))]
880 "evmhegsmfaa %0,%1,%2"
881 [(set_attr "type" "veccomplex")
882 (set_attr "length" "4")])
884 (define_insn "spe_evmhegsmfan"
885 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
886 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
887 (match_operand:V2SI 2 "gpc_reg_operand" "r")
888 (reg:V2SI SPE_ACC_REGNO)] 558))
889 (clobber (reg:V2SI SPE_ACC_REGNO))]
891 "evmhegsmfan %0,%1,%2"
892 [(set_attr "type" "veccomplex")
893 (set_attr "length" "4")])
895 (define_insn "spe_evmhegsmiaa"
896 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
897 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
898 (match_operand:V2SI 2 "gpc_reg_operand" "r")
899 (reg:V2SI SPE_ACC_REGNO)] 559))
900 (clobber (reg:V2SI SPE_ACC_REGNO))]
902 "evmhegsmiaa %0,%1,%2"
903 [(set_attr "type" "veccomplex")
904 (set_attr "length" "4")])
906 (define_insn "spe_evmhegsmian"
907 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
908 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
909 (match_operand:V2SI 2 "gpc_reg_operand" "r")
910 (reg:V2SI SPE_ACC_REGNO)] 560))
911 (clobber (reg:V2SI SPE_ACC_REGNO))]
913 "evmhegsmian %0,%1,%2"
914 [(set_attr "type" "veccomplex")
915 (set_attr "length" "4")])
917 (define_insn "spe_evmhegumiaa"
918 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
919 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
920 (match_operand:V2SI 2 "gpc_reg_operand" "r")
921 (reg:V2SI SPE_ACC_REGNO)] 561))
922 (clobber (reg:V2SI SPE_ACC_REGNO))]
924 "evmhegumiaa %0,%1,%2"
925 [(set_attr "type" "veccomplex")
926 (set_attr "length" "4")])
928 (define_insn "spe_evmhegumian"
929 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
930 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
931 (match_operand:V2SI 2 "gpc_reg_operand" "r")
932 (reg:V2SI SPE_ACC_REGNO)] 562))
933 (clobber (reg:V2SI SPE_ACC_REGNO))]
935 "evmhegumian %0,%1,%2"
936 [(set_attr "type" "veccomplex")
937 (set_attr "length" "4")])
939 (define_insn "spe_evmhesmfaaw"
940 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
941 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
942 (match_operand:V2SI 2 "gpc_reg_operand" "r")
943 (reg:V2SI SPE_ACC_REGNO)] 563))
944 (clobber (reg:V2SI SPE_ACC_REGNO))]
946 "evmhesmfaaw %0,%1,%2"
947 [(set_attr "type" "veccomplex")
948 (set_attr "length" "4")])
950 (define_insn "spe_evmhesmfanw"
951 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
952 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
953 (match_operand:V2SI 2 "gpc_reg_operand" "r")
954 (reg:V2SI SPE_ACC_REGNO)] 564))
955 (clobber (reg:V2SI SPE_ACC_REGNO))]
957 "evmhesmfanw %0,%1,%2"
958 [(set_attr "type" "veccomplex")
959 (set_attr "length" "4")])
961 (define_insn "spe_evmhesmfa"
962 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
963 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
964 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 565))
965 (clobber (reg:V2SI SPE_ACC_REGNO))]
968 [(set_attr "type" "veccomplex")
969 (set_attr "length" "4")])
971 (define_insn "spe_evmhesmf"
972 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
973 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
974 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 566))]
977 [(set_attr "type" "veccomplex")
978 (set_attr "length" "4")])
980 (define_insn "spe_evmhesmiaaw"
981 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
982 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
983 (match_operand:V2SI 2 "gpc_reg_operand" "r")
984 (reg:V2SI SPE_ACC_REGNO)] 567))
985 (clobber (reg:V2SI SPE_ACC_REGNO))]
987 "evmhesmiaaw %0,%1,%2"
988 [(set_attr "type" "veccomplex")
989 (set_attr "length" "4")])
991 (define_insn "spe_evmhesmianw"
992 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
993 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
994 (match_operand:V2SI 2 "gpc_reg_operand" "r")
995 (reg:V2SI SPE_ACC_REGNO)] 568))
996 (clobber (reg:V2SI SPE_ACC_REGNO))]
998 "evmhesmianw %0,%1,%2"
999 [(set_attr "type" "veccomplex")
1000 (set_attr "length" "4")])
1002 (define_insn "spe_evmhesmia"
1003 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1004 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1005 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 569))
1006 (clobber (reg:V2SI SPE_ACC_REGNO))]
1008 "evmhesmia %0,%1,%2"
1009 [(set_attr "type" "veccomplex")
1010 (set_attr "length" "4")])
1012 (define_insn "spe_evmhesmi"
1013 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1014 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1015 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 570))]
1018 [(set_attr "type" "veccomplex")
1019 (set_attr "length" "4")])
1021 (define_insn "spe_evmhessfaaw"
1022 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1023 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1024 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1025 (reg:V2SI SPE_ACC_REGNO)] 571))
1026 (clobber (reg:SI SPEFSCR_REGNO))
1027 (clobber (reg:V2SI SPE_ACC_REGNO))]
1029 "evmhessfaaw %0,%1,%2"
1030 [(set_attr "type" "veccomplex")
1031 (set_attr "length" "4")])
1033 (define_insn "spe_evmhessfanw"
1034 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1035 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1036 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1037 (reg:V2SI SPE_ACC_REGNO)] 572))
1038 (clobber (reg:SI SPEFSCR_REGNO))
1039 (clobber (reg:V2SI SPE_ACC_REGNO))]
1041 "evmhessfanw %0,%1,%2"
1042 [(set_attr "type" "veccomplex")
1043 (set_attr "length" "4")])
1045 (define_insn "spe_evmhessfa"
1046 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1047 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1048 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 573))
1049 (clobber (reg:SI SPEFSCR_REGNO))
1050 (clobber (reg:V2SI SPE_ACC_REGNO))]
1052 "evmhessfa %0,%1,%2"
1053 [(set_attr "type" "veccomplex")
1054 (set_attr "length" "4")])
1056 (define_insn "spe_evmhessf"
1057 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1058 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1059 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 574))
1060 (clobber (reg:SI SPEFSCR_REGNO))]
1063 [(set_attr "type" "veccomplex")
1064 (set_attr "length" "4")])
1066 (define_insn "spe_evmhessiaaw"
1067 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1068 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1069 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1070 (reg:V2SI SPE_ACC_REGNO)] 575))
1071 (clobber (reg:SI SPEFSCR_REGNO))
1072 (clobber (reg:V2SI SPE_ACC_REGNO))]
1075 [(set_attr "type" "veccomplex")
1076 (set_attr "length" "4")])
1078 (define_insn "spe_evmhessianw"
1079 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1080 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1081 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1082 (reg:V2SI SPE_ACC_REGNO)] 576))
1083 (clobber (reg:SI SPEFSCR_REGNO))
1084 (clobber (reg:V2SI SPE_ACC_REGNO))]
1086 "evmhessianw %0,%1,%2"
1087 [(set_attr "type" "veccomplex")
1088 (set_attr "length" "4")])
1090 (define_insn "spe_evmheumiaaw"
1091 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1092 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1093 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1094 (reg:V2SI SPE_ACC_REGNO)] 577))
1095 (clobber (reg:V2SI SPE_ACC_REGNO))]
1097 "evmheumiaaw %0,%1,%2"
1098 [(set_attr "type" "veccomplex")
1099 (set_attr "length" "4")])
1101 (define_insn "spe_evmheumianw"
1102 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1103 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1104 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1105 (reg:V2SI SPE_ACC_REGNO)] 578))
1106 (clobber (reg:V2SI SPE_ACC_REGNO))]
1108 "evmheumianw %0,%1,%2"
1109 [(set_attr "type" "veccomplex")
1110 (set_attr "length" "4")])
1112 (define_insn "spe_evmheumia"
1113 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1114 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1115 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 579))
1116 (clobber (reg:V2SI SPE_ACC_REGNO))]
1118 "evmheumia %0,%1,%2"
1119 [(set_attr "type" "veccomplex")
1120 (set_attr "length" "4")])
1122 (define_insn "spe_evmheumi"
1123 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1124 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1125 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 580))]
1128 [(set_attr "type" "veccomplex")
1129 (set_attr "length" "4")])
1131 (define_insn "spe_evmheusiaaw"
1132 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1133 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1134 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1135 (reg:V2SI SPE_ACC_REGNO)] 581))
1136 (clobber (reg:SI SPEFSCR_REGNO))
1137 (clobber (reg:V2SI SPE_ACC_REGNO))]
1139 "evmheusiaaw %0,%1,%2"
1140 [(set_attr "type" "veccomplex")
1141 (set_attr "length" "4")])
1143 (define_insn "spe_evmheusianw"
1144 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1145 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1146 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1147 (reg:V2SI SPE_ACC_REGNO)] 582))
1148 (clobber (reg:SI SPEFSCR_REGNO))
1149 (clobber (reg:V2SI SPE_ACC_REGNO))]
1151 "evmheusianw %0,%1,%2"
1152 [(set_attr "type" "veccomplex")
1153 (set_attr "length" "4")])
1155 (define_insn "spe_evmhogsmfaa"
1156 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1157 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1158 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1159 (reg:V2SI SPE_ACC_REGNO)] 583))
1160 (clobber (reg:V2SI SPE_ACC_REGNO))]
1162 "evmhogsmfaa %0,%1,%2"
1163 [(set_attr "type" "veccomplex")
1164 (set_attr "length" "4")])
1166 (define_insn "spe_evmhogsmfan"
1167 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1168 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1169 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1170 (reg:V2SI SPE_ACC_REGNO)] 584))
1171 (clobber (reg:V2SI SPE_ACC_REGNO))]
1173 "evmhogsmfan %0,%1,%2"
1174 [(set_attr "type" "veccomplex")
1175 (set_attr "length" "4")])
1177 (define_insn "spe_evmhogsmiaa"
1178 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1179 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1180 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1181 (reg:V2SI SPE_ACC_REGNO)] 585))
1182 (clobber (reg:V2SI SPE_ACC_REGNO))]
1184 "evmhogsmiaa %0,%1,%2"
1185 [(set_attr "type" "veccomplex")
1186 (set_attr "length" "4")])
1188 (define_insn "spe_evmhogsmian"
1189 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1190 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1191 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1192 (reg:V2SI SPE_ACC_REGNO)] 586))
1193 (clobber (reg:V2SI SPE_ACC_REGNO))]
1195 "evmhogsmian %0,%1,%2"
1196 [(set_attr "type" "veccomplex")
1197 (set_attr "length" "4")])
1199 (define_insn "spe_evmhogumiaa"
1200 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1201 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1202 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1203 (reg:V2SI SPE_ACC_REGNO)] 587))
1204 (clobber (reg:V2SI SPE_ACC_REGNO))]
1206 "evmhogumiaa %0,%1,%2"
1207 [(set_attr "type" "veccomplex")
1208 (set_attr "length" "4")])
1210 (define_insn "spe_evmhogumian"
1211 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1212 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1213 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1214 (reg:V2SI SPE_ACC_REGNO)] 588))
1215 (clobber (reg:V2SI SPE_ACC_REGNO))]
1217 "evmhogumian %0,%1,%2"
1218 [(set_attr "type" "veccomplex")
1219 (set_attr "length" "4")])
1221 (define_insn "spe_evmhosmfaaw"
1222 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1223 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1224 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1225 (reg:V2SI SPE_ACC_REGNO)] 589))
1226 (clobber (reg:V2SI SPE_ACC_REGNO))]
1228 "evmhosmfaaw %0,%1,%2"
1229 [(set_attr "type" "veccomplex")
1230 (set_attr "length" "4")])
1232 (define_insn "spe_evmhosmfanw"
1233 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1234 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1235 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1236 (reg:V2SI SPE_ACC_REGNO)] 590))
1237 (clobber (reg:V2SI SPE_ACC_REGNO))]
1239 "evmhosmfanw %0,%1,%2"
1240 [(set_attr "type" "veccomplex")
1241 (set_attr "length" "4")])
1243 (define_insn "spe_evmhosmfa"
1244 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1245 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1246 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 591))]
1248 "evmhosmfa %0,%1,%2"
1249 [(set_attr "type" "veccomplex")
1250 (set_attr "length" "4")])
1252 (define_insn "spe_evmhosmf"
1253 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1254 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1255 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 592))
1256 (clobber (reg:V2SI SPE_ACC_REGNO))]
1259 [(set_attr "type" "veccomplex")
1260 (set_attr "length" "4")])
1262 (define_insn "spe_evmhosmiaaw"
1263 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1264 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1265 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1266 (reg:V2SI SPE_ACC_REGNO)] 593))
1267 (clobber (reg:V2SI SPE_ACC_REGNO))]
1269 "evmhosmiaaw %0,%1,%2"
1270 [(set_attr "type" "veccomplex")
1271 (set_attr "length" "4")])
1273 (define_insn "spe_evmhosmianw"
1274 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1275 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1276 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1277 (reg:V2SI SPE_ACC_REGNO)] 594))
1278 (clobber (reg:V2SI SPE_ACC_REGNO))]
1280 "evmhosmianw %0,%1,%2"
1281 [(set_attr "type" "veccomplex")
1282 (set_attr "length" "4")])
1284 (define_insn "spe_evmhosmia"
1285 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1286 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1287 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 595))
1288 (clobber (reg:V2SI SPE_ACC_REGNO))]
1290 "evmhosmia %0,%1,%2"
1291 [(set_attr "type" "veccomplex")
1292 (set_attr "length" "4")])
1294 (define_insn "spe_evmhosmi"
1295 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1296 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1297 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 596))]
1300 [(set_attr "type" "veccomplex")
1301 (set_attr "length" "4")])
1303 (define_insn "spe_evmhossfaaw"
1304 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1305 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1306 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1307 (reg:V2SI SPE_ACC_REGNO)] 597))
1308 (clobber (reg:SI SPEFSCR_REGNO))
1309 (clobber (reg:V2SI SPE_ACC_REGNO))]
1311 "evmhossfaaw %0,%1,%2"
1312 [(set_attr "type" "veccomplex")
1313 (set_attr "length" "4")])
1315 (define_insn "spe_evmhossfanw"
1316 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1317 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1318 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1319 (reg:V2SI SPE_ACC_REGNO)] 598))
1320 (clobber (reg:SI SPEFSCR_REGNO))
1321 (clobber (reg:V2SI SPE_ACC_REGNO))]
1323 "evmhossfanw %0,%1,%2"
1324 [(set_attr "type" "veccomplex")
1325 (set_attr "length" "4")])
1327 (define_insn "spe_evmhossfa"
1328 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1329 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1330 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1331 (reg:V2SI SPE_ACC_REGNO)] 599))
1332 (clobber (reg:SI SPEFSCR_REGNO))
1333 (clobber (reg:V2SI SPE_ACC_REGNO))]
1335 "evmhossfa %0,%1,%2"
1336 [(set_attr "type" "veccomplex")
1337 (set_attr "length" "4")])
1339 (define_insn "spe_evmhossf"
1340 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1341 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1342 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 600))
1343 (clobber (reg:SI SPEFSCR_REGNO))]
1346 [(set_attr "type" "veccomplex")
1347 (set_attr "length" "4")])
1349 (define_insn "spe_evmhossiaaw"
1350 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1351 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1352 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1353 (reg:V2SI SPE_ACC_REGNO)] 601))
1354 (clobber (reg:SI SPEFSCR_REGNO))
1355 (clobber (reg:V2SI SPE_ACC_REGNO))]
1357 "evmhossiaaw %0,%1,%2"
1358 [(set_attr "type" "veccomplex")
1359 (set_attr "length" "4")])
1361 (define_insn "spe_evmhossianw"
1362 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1363 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1364 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1365 (reg:V2SI SPE_ACC_REGNO)] 602))
1366 (clobber (reg:SI SPEFSCR_REGNO))
1367 (clobber (reg:V2SI SPE_ACC_REGNO))]
1369 "evmhossianw %0,%1,%2"
1370 [(set_attr "type" "veccomplex")
1371 (set_attr "length" "4")])
1373 (define_insn "spe_evmhoumiaaw"
1374 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1375 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1376 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1377 (reg:V2SI SPE_ACC_REGNO)] 603))
1378 (clobber (reg:V2SI SPE_ACC_REGNO))]
1380 "evmhoumiaaw %0,%1,%2"
1381 [(set_attr "type" "veccomplex")
1382 (set_attr "length" "4")])
1384 (define_insn "spe_evmhoumianw"
1385 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1386 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1387 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1388 (reg:V2SI SPE_ACC_REGNO)] 604))
1389 (clobber (reg:V2SI SPE_ACC_REGNO))]
1391 "evmhoumianw %0,%1,%2"
1392 [(set_attr "type" "veccomplex")
1393 (set_attr "length" "4")])
1395 (define_insn "spe_evmhoumia"
1396 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1397 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1398 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 605))
1399 (clobber (reg:V2SI SPE_ACC_REGNO))]
1401 "evmhoumia %0,%1,%2"
1402 [(set_attr "type" "veccomplex")
1403 (set_attr "length" "4")])
1405 (define_insn "spe_evmhoumi"
1406 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1407 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1408 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 606))]
1411 [(set_attr "type" "veccomplex")
1412 (set_attr "length" "4")])
1414 (define_insn "spe_evmhousiaaw"
1415 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1416 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1417 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1418 (reg:V2SI SPE_ACC_REGNO)] 607))
1419 (clobber (reg:SI SPEFSCR_REGNO))
1420 (clobber (reg:V2SI SPE_ACC_REGNO))]
1422 "evmhousiaaw %0,%1,%2"
1423 [(set_attr "type" "veccomplex")
1424 (set_attr "length" "4")])
1426 (define_insn "spe_evmhousianw"
1427 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1428 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1429 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1430 (reg:V2SI SPE_ACC_REGNO)] 608))
1431 (clobber (reg:SI SPEFSCR_REGNO))
1432 (clobber (reg:V2SI SPE_ACC_REGNO))]
1434 "evmhousianw %0,%1,%2"
1435 [(set_attr "type" "veccomplex")
1436 (set_attr "length" "4")])
1438 (define_insn "spe_evmmlssfa"
1439 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1440 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1441 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 609))]
1443 "evmmlssfa %0,%1,%2"
1444 [(set_attr "type" "veccomplex")
1445 (set_attr "length" "4")])
1447 (define_insn "spe_evmmlssf"
1448 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1449 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1450 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 610))]
1453 [(set_attr "type" "veccomplex")
1454 (set_attr "length" "4")])
1456 (define_insn "spe_evmwhsmfa"
1457 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1458 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1459 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 611))
1460 (clobber (reg:V2SI SPE_ACC_REGNO))]
1462 "evmwhsmfa %0,%1,%2"
1463 [(set_attr "type" "veccomplex")
1464 (set_attr "length" "4")])
1466 (define_insn "spe_evmwhsmf"
1467 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1468 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1469 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 612))]
1472 [(set_attr "type" "veccomplex")
1473 (set_attr "length" "4")])
1475 (define_insn "spe_evmwhsmia"
1476 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1477 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1478 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 613))
1479 (clobber (reg:V2SI SPE_ACC_REGNO))]
1481 "evmwhsmia %0,%1,%2"
1482 [(set_attr "type" "veccomplex")
1483 (set_attr "length" "4")])
1485 (define_insn "spe_evmwhsmi"
1486 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1487 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1488 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 614))]
1491 [(set_attr "type" "veccomplex")
1492 (set_attr "length" "4")])
1494 (define_insn "spe_evmwhssfa"
1495 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1496 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1497 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 615))
1498 (clobber (reg:SI SPEFSCR_REGNO))
1499 (clobber (reg:V2SI SPE_ACC_REGNO))]
1501 "evmwhssfa %0,%1,%2"
1502 [(set_attr "type" "veccomplex")
1503 (set_attr "length" "4")])
1505 (define_insn "spe_evmwhusian"
1506 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1507 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1508 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 626))]
1510 "evmwhusian %0,%1,%2"
1511 [(set_attr "type" "veccomplex")
1512 (set_attr "length" "4")])
1514 (define_insn "spe_evmwhssf"
1515 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1516 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1517 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 628))
1518 (clobber (reg:SI SPEFSCR_REGNO))]
1521 [(set_attr "type" "veccomplex")
1522 (set_attr "length" "4")])
1524 (define_insn "spe_evmwhumia"
1525 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1526 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1527 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 629))
1528 (clobber (reg:V2SI SPE_ACC_REGNO))]
1530 "evmwhumia %0,%1,%2"
1531 [(set_attr "type" "veccomplex")
1532 (set_attr "length" "4")])
1534 (define_insn "spe_evmwhumi"
1535 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1536 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1537 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 630))]
1540 [(set_attr "type" "veccomplex")
1541 (set_attr "length" "4")])
1543 (define_insn "spe_evmwlsmiaaw"
1544 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1545 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1546 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1547 (reg:V2SI SPE_ACC_REGNO)] 635))
1548 (clobber (reg:V2SI SPE_ACC_REGNO))]
1550 "evmwlsmiaaw %0,%1,%2"
1551 [(set_attr "type" "veccomplex")
1552 (set_attr "length" "4")])
1554 (define_insn "spe_evmwlsmianw"
1555 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1556 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1557 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1558 (reg:V2SI SPE_ACC_REGNO)] 636))
1559 (clobber (reg:V2SI SPE_ACC_REGNO))]
1561 "evmwlsmianw %0,%1,%2"
1562 [(set_attr "type" "veccomplex")
1563 (set_attr "length" "4")])
1565 (define_insn "spe_evmwlssiaaw"
1566 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1567 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1568 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1569 (reg:V2SI SPE_ACC_REGNO)] 641))
1570 (clobber (reg:SI SPEFSCR_REGNO))
1571 (clobber (reg:V2SI SPE_ACC_REGNO))]
1573 "evmwlssiaaw %0,%1,%2"
1574 [(set_attr "type" "veccomplex")
1575 (set_attr "length" "4")])
1577 (define_insn "spe_evmwlssianw"
1578 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1579 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1580 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1581 (reg:V2SI SPE_ACC_REGNO)] 642))
1582 (clobber (reg:SI SPEFSCR_REGNO))
1583 (clobber (reg:V2SI SPE_ACC_REGNO))]
1585 "evmwlssianw %0,%1,%2"
1586 [(set_attr "type" "veccomplex")
1587 (set_attr "length" "4")])
1589 (define_insn "spe_evmwlumiaaw"
1590 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1591 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1592 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1593 (reg:V2SI SPE_ACC_REGNO)] 643))
1594 (clobber (reg:V2SI SPE_ACC_REGNO))]
1596 "evmwlumiaaw %0,%1,%2"
1597 [(set_attr "type" "veccomplex")
1598 (set_attr "length" "4")])
1600 (define_insn "spe_evmwlumianw"
1601 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1602 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1603 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1604 (reg:V2SI SPE_ACC_REGNO)] 644))
1605 (clobber (reg:V2SI SPE_ACC_REGNO))]
1607 "evmwlumianw %0,%1,%2"
1608 [(set_attr "type" "veccomplex")
1609 (set_attr "length" "4")])
1611 (define_insn "spe_evmwlumia"
1612 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1613 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1614 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 645))
1615 (clobber (reg:V2SI SPE_ACC_REGNO))]
1617 "evmwlumia %0,%1,%2"
1618 [(set_attr "type" "veccomplex")
1619 (set_attr "length" "4")])
1621 (define_insn "spe_evmwlumi"
1622 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1623 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1624 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 646))]
1627 [(set_attr "type" "veccomplex")
1628 (set_attr "length" "4")])
1630 (define_insn "spe_evmwlusiaaw"
1631 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1632 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1633 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1634 (reg:V2SI SPE_ACC_REGNO)] 647))
1635 (clobber (reg:SI SPEFSCR_REGNO))
1636 (clobber (reg:V2SI SPE_ACC_REGNO))]
1638 "evmwlusiaaw %0,%1,%2"
1639 [(set_attr "type" "veccomplex")
1640 (set_attr "length" "4")])
1642 (define_insn "spe_evmwlusianw"
1643 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1644 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1645 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1646 (reg:V2SI SPE_ACC_REGNO)] 648))
1647 (clobber (reg:SI SPEFSCR_REGNO))
1648 (clobber (reg:V2SI SPE_ACC_REGNO))]
1650 "evmwlusianw %0,%1,%2"
1651 [(set_attr "type" "veccomplex")
1652 (set_attr "length" "4")])
1654 (define_insn "spe_evmwsmfaa"
1655 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1656 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1657 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1658 (reg:V2SI SPE_ACC_REGNO)] 649))
1659 (clobber (reg:V2SI SPE_ACC_REGNO))]
1661 "evmwsmfaa %0,%1,%2"
1662 [(set_attr "type" "veccomplex")
1663 (set_attr "length" "4")])
1665 (define_insn "spe_evmwsmfan"
1666 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1667 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1668 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1669 (reg:V2SI SPE_ACC_REGNO)] 650))
1670 (clobber (reg:V2SI SPE_ACC_REGNO))]
1672 "evmwsmfan %0,%1,%2"
1673 [(set_attr "type" "veccomplex")
1674 (set_attr "length" "4")])
1676 (define_insn "spe_evmwsmfa"
1677 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1678 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1679 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 651))
1680 (clobber (reg:V2SI SPE_ACC_REGNO))]
1683 [(set_attr "type" "veccomplex")
1684 (set_attr "length" "4")])
1686 (define_insn "spe_evmwsmf"
1687 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1688 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1689 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 652))]
1692 [(set_attr "type" "veccomplex")
1693 (set_attr "length" "4")])
1695 (define_insn "spe_evmwsmiaa"
1696 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1697 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1698 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1699 (reg:V2SI SPE_ACC_REGNO)] 653))
1700 (clobber (reg:V2SI SPE_ACC_REGNO))]
1702 "evmwsmiaa %0,%1,%2"
1703 [(set_attr "type" "veccomplex")
1704 (set_attr "length" "4")])
1706 (define_insn "spe_evmwsmian"
1707 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1708 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1709 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1710 (reg:V2SI SPE_ACC_REGNO)] 654))
1711 (clobber (reg:V2SI SPE_ACC_REGNO))]
1713 "evmwsmian %0,%1,%2"
1714 [(set_attr "type" "veccomplex")
1715 (set_attr "length" "4")])
1717 (define_insn "spe_evmwsmia"
1718 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1719 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1720 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 655))
1721 (clobber (reg:V2SI SPE_ACC_REGNO))]
1724 [(set_attr "type" "veccomplex")
1725 (set_attr "length" "4")])
1727 (define_insn "spe_evmwsmi"
1728 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1729 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1730 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 656))]
1733 [(set_attr "type" "veccomplex")
1734 (set_attr "length" "4")])
1736 (define_insn "spe_evmwssfaa"
1737 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1738 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1739 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1740 (reg:V2SI SPE_ACC_REGNO)] 657))
1741 (clobber (reg:SI SPEFSCR_REGNO))
1742 (clobber (reg:V2SI SPE_ACC_REGNO))]
1744 "evmwssfaa %0,%1,%2"
1745 [(set_attr "type" "veccomplex")
1746 (set_attr "length" "4")])
1748 (define_insn "spe_evmwssfan"
1749 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1750 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1751 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1752 (reg:V2SI SPE_ACC_REGNO)] 658))
1753 (clobber (reg:SI SPEFSCR_REGNO))
1754 (clobber (reg:V2SI SPE_ACC_REGNO))]
1756 "evmwssfan %0,%1,%2"
1757 [(set_attr "type" "veccomplex")
1758 (set_attr "length" "4")])
1760 (define_insn "spe_evmwssfa"
1761 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1762 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1763 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 659))
1764 (clobber (reg:SI SPEFSCR_REGNO))
1765 (clobber (reg:V2SI SPE_ACC_REGNO))]
1768 [(set_attr "type" "veccomplex")
1769 (set_attr "length" "4")])
1771 (define_insn "spe_evmwssf"
1772 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1773 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1774 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 660))
1775 (clobber (reg:SI SPEFSCR_REGNO))]
1778 [(set_attr "type" "veccomplex")
1779 (set_attr "length" "4")])
1781 (define_insn "spe_evmwumiaa"
1782 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1783 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1784 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1785 (reg:V2SI SPE_ACC_REGNO)] 661))
1786 (clobber (reg:V2SI SPE_ACC_REGNO))]
1788 "evmwumiaa %0,%1,%2"
1789 [(set_attr "type" "veccomplex")
1790 (set_attr "length" "4")])
1792 (define_insn "spe_evmwumian"
1793 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1794 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1795 (match_operand:V2SI 2 "gpc_reg_operand" "r")
1796 (reg:V2SI SPE_ACC_REGNO)] 662))
1797 (clobber (reg:V2SI SPE_ACC_REGNO))]
1799 "evmwumian %0,%1,%2"
1800 [(set_attr "type" "veccomplex")
1801 (set_attr "length" "4")])
1803 (define_insn "spe_evmwumia"
1804 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1805 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1806 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 663))
1807 (clobber (reg:V2SI SPE_ACC_REGNO))]
1810 [(set_attr "type" "veccomplex")
1811 (set_attr "length" "4")])
1813 (define_insn "spe_evmwumi"
1814 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1815 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1816 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 664))]
1819 [(set_attr "type" "veccomplex")
1820 (set_attr "length" "4")])
1822 (define_insn "spe_evaddw"
1823 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1824 (plus:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
1825 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
1828 [(set_attr "type" "veccomplex")
1829 (set_attr "length" "4")])
1831 (define_insn "spe_evaddusiaaw"
1832 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1833 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1834 (reg:V2SI SPE_ACC_REGNO)] 673))
1835 (clobber (reg:SI SPEFSCR_REGNO))
1836 (clobber (reg:V2SI SPE_ACC_REGNO))]
1839 [(set_attr "type" "veccomplex")
1840 (set_attr "length" "4")])
1842 (define_insn "spe_evaddumiaaw"
1843 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1844 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1845 (reg:V2SI SPE_ACC_REGNO)] 674))
1846 (clobber (reg:V2SI SPE_ACC_REGNO))]
1849 [(set_attr "type" "veccomplex")
1850 (set_attr "length" "4")])
1852 (define_insn "spe_evaddssiaaw"
1853 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1854 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1855 (reg:V2SI SPE_ACC_REGNO)] 675))
1856 (clobber (reg:SI SPEFSCR_REGNO))
1857 (clobber (reg:V2SI SPE_ACC_REGNO))]
1860 [(set_attr "type" "veccomplex")
1861 (set_attr "length" "4")])
1863 (define_insn "spe_evaddsmiaaw"
1864 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1865 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1866 (reg:V2SI SPE_ACC_REGNO)] 676))
1867 (clobber (reg:V2SI SPE_ACC_REGNO))]
1870 [(set_attr "type" "veccomplex")
1871 (set_attr "length" "4")])
1873 (define_insn "spe_evaddiw"
1874 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1875 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1876 (match_operand:QI 2 "immediate_operand" "i")] 677))]
1879 [(set_attr "type" "veccomplex")
1880 (set_attr "length" "4")])
1882 (define_insn "spe_evsubifw"
1883 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1884 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1885 (match_operand:QI 2 "immediate_operand" "i")] 678))]
1888 [(set_attr "type" "veccomplex")
1889 (set_attr "length" "4")])
1891 (define_insn "spe_evsubfw"
1892 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1893 (minus:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
1894 (match_operand:V2SI 2 "gpc_reg_operand" "r")))]
1897 [(set_attr "type" "veccomplex")
1898 (set_attr "length" "4")])
1900 (define_insn "spe_evsubfusiaaw"
1901 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1902 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1903 (reg:V2SI SPE_ACC_REGNO)] 679))
1904 (clobber (reg:SI SPEFSCR_REGNO))
1905 (clobber (reg:V2SI SPE_ACC_REGNO))]
1907 "evsubfusiaaw %0,%1"
1908 [(set_attr "type" "veccomplex")
1909 (set_attr "length" "4")])
1911 (define_insn "spe_evsubfumiaaw"
1912 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1913 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1914 (reg:V2SI SPE_ACC_REGNO)] 680))
1915 (clobber (reg:V2SI SPE_ACC_REGNO))]
1917 "evsubfumiaaw %0,%1"
1918 [(set_attr "type" "veccomplex")
1919 (set_attr "length" "4")])
1921 (define_insn "spe_evsubfssiaaw"
1922 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1923 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1924 (reg:V2SI SPE_ACC_REGNO)] 681))
1925 (clobber (reg:SI SPEFSCR_REGNO))
1926 (clobber (reg:V2SI SPE_ACC_REGNO))]
1928 "evsubfssiaaw %0,%1"
1929 [(set_attr "type" "veccomplex")
1930 (set_attr "length" "4")])
1932 (define_insn "spe_evsubfsmiaaw"
1933 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1934 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
1935 (reg:V2SI SPE_ACC_REGNO)] 682))
1936 (clobber (reg:V2SI SPE_ACC_REGNO))]
1938 "evsubfsmiaaw %0,%1"
1939 [(set_attr "type" "veccomplex")
1940 (set_attr "length" "4")])
1942 (define_insn "spe_evmra"
1943 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1944 (match_operand:V2SI 1 "gpc_reg_operand" "r"))
1945 (set (reg:V2SI SPE_ACC_REGNO)
1946 (unspec:V2SI [(match_dup 1)] 726))]
1949 [(set_attr "type" "veccomplex")
1950 (set_attr "length" "4")])
1952 (define_insn "spe_evdivws"
1953 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1954 (div:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
1955 (match_operand:V2SI 2 "gpc_reg_operand" "r")))
1956 (clobber (reg:SI SPEFSCR_REGNO))]
1959 [(set_attr "type" "veccomplex")
1960 (set_attr "length" "4")])
1962 (define_insn "spe_evdivwu"
1963 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1964 (udiv:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")
1965 (match_operand:V2SI 2 "gpc_reg_operand" "r")))
1966 (clobber (reg:SI SPEFSCR_REGNO))]
1969 [(set_attr "type" "veccomplex")
1970 (set_attr "length" "4")])
1972 (define_insn "spe_evsplatfi"
1973 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1974 (unspec:V2SI [(match_operand:QI 1 "immediate_operand" "i")] 684))]
1977 [(set_attr "type" "vecperm")
1978 (set_attr "length" "4")])
1980 (define_insn "spe_evsplati"
1981 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
1982 (unspec:V2SI [(match_operand:QI 1 "immediate_operand" "i")] 685))]
1985 [(set_attr "type" "vecperm")
1986 (set_attr "length" "4")])
1988 (define_insn "spe_evstdd"
1989 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
1990 (match_operand:QI 1 "immediate_operand" "i")))
1991 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
1992 (unspec [(const_int 0)] 686)]
1995 [(set_attr "type" "vecstore")
1996 (set_attr "length" "4")])
1998 (define_insn "spe_evstddx"
1999 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2000 (match_operand:SI 1 "gpc_reg_operand" "r")))
2001 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2002 (unspec [(const_int 0)] 687)]
2005 [(set_attr "type" "vecstore")
2006 (set_attr "length" "4")])
2008 (define_insn "spe_evstdh"
2009 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2010 (match_operand:QI 1 "immediate_operand" "i")))
2011 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2012 (unspec [(const_int 0)] 688)]
2015 [(set_attr "type" "vecstore")
2016 (set_attr "length" "4")])
2018 (define_insn "spe_evstdhx"
2019 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2020 (match_operand:SI 1 "gpc_reg_operand" "r")))
2021 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2022 (unspec [(const_int 0)] 689)]
2025 [(set_attr "type" "vecstore")
2026 (set_attr "length" "4")])
2028 (define_insn "spe_evstdw"
2029 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2030 (match_operand:QI 1 "immediate_operand" "i")))
2031 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2032 (unspec [(const_int 0)] 690)]
2035 [(set_attr "type" "vecstore")
2036 (set_attr "length" "4")])
2038 (define_insn "spe_evstdwx"
2039 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2040 (match_operand:SI 1 "gpc_reg_operand" "r")))
2041 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2042 (unspec [(const_int 0)] 691)]
2045 [(set_attr "type" "vecstore")
2046 (set_attr "length" "4")])
2048 (define_insn "spe_evstwhe"
2049 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2050 (match_operand:QI 1 "immediate_operand" "i")))
2051 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2052 (unspec [(const_int 0)] 692)]
2055 [(set_attr "type" "vecstore")
2056 (set_attr "length" "4")])
2058 (define_insn "spe_evstwhex"
2059 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2060 (match_operand:SI 1 "gpc_reg_operand" "r")))
2061 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2062 (unspec [(const_int 0)] 693)]
2065 [(set_attr "type" "vecstore")
2066 (set_attr "length" "4")])
2068 (define_insn "spe_evstwho"
2069 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2070 (match_operand:QI 1 "immediate_operand" "i")))
2071 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2072 (unspec [(const_int 0)] 694)]
2075 [(set_attr "type" "vecstore")
2076 (set_attr "length" "4")])
2078 (define_insn "spe_evstwhox"
2079 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2080 (match_operand:SI 1 "gpc_reg_operand" "r")))
2081 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2082 (unspec [(const_int 0)] 695)]
2085 [(set_attr "type" "vecstore")
2086 (set_attr "length" "4")])
2088 (define_insn "spe_evstwwe"
2089 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2090 (match_operand:QI 1 "immediate_operand" "i")))
2091 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2092 (unspec [(const_int 0)] 696)]
2095 [(set_attr "type" "vecstore")
2096 (set_attr "length" "4")])
2098 (define_insn "spe_evstwwex"
2099 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2100 (match_operand:SI 1 "gpc_reg_operand" "r")))
2101 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2102 (unspec [(const_int 0)] 697)]
2105 [(set_attr "type" "vecstore")
2106 (set_attr "length" "4")])
2108 (define_insn "spe_evstwwo"
2109 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2110 (match_operand:QI 1 "immediate_operand" "i")))
2111 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2112 (unspec [(const_int 0)] 698)]
2115 [(set_attr "type" "vecstore")
2116 (set_attr "length" "4")])
2118 (define_insn "spe_evstwwox"
2119 [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b")
2120 (match_operand:SI 1 "gpc_reg_operand" "r")))
2121 (match_operand:V2SI 2 "gpc_reg_operand" "r"))
2122 (unspec [(const_int 0)] 699)]
2125 [(set_attr "type" "vecstore")
2126 (set_attr "length" "4")])
2128 ;; SPE vector clears
2130 (define_insn "*movv2si_const0"
2131 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2132 (match_operand:V2SI 1 "zero_constant" ""))]
2135 [(set_attr "type" "vecsimple")])
2137 (define_insn "*movv2sf_const0"
2138 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r")
2139 (match_operand:V2SF 1 "zero_constant" ""))]
2142 [(set_attr "type" "vecsimple")])
2144 (define_insn "*movv4hi_const0"
2145 [(set (match_operand:V4HI 0 "gpc_reg_operand" "=r")
2146 (match_operand:V4HI 1 "zero_constant" ""))]
2149 [(set_attr "type" "vecsimple")])
2151 ;; Vector move instructions.
2153 (define_expand "movv2si"
2154 [(set (match_operand:V2SI 0 "nonimmediate_operand" "")
2155 (match_operand:V2SI 1 "any_operand" ""))]
2157 "{ rs6000_emit_move (operands[0], operands[1], V2SImode); DONE; }")
2160 (define_insn "*movv2si_internal"
2161 [(set (match_operand:V2SI 0 "nonimmediate_operand" "=m,r,r")
2162 (match_operand:V2SI 1 "input_operand" "r,m,r"))]
2168 [(set_attr "type" "vecload")])
2170 (define_expand "movv1di"
2171 [(set (match_operand:V1DI 0 "nonimmediate_operand" "")
2172 (match_operand:V1DI 1 "any_operand" ""))]
2174 "{ rs6000_emit_move (operands[0], operands[1], V1DImode); DONE; }")
2176 (define_insn "*movv1di_internal"
2177 [(set (match_operand:V1DI 0 "nonimmediate_operand" "=m,r,r")
2178 (match_operand:V1DI 1 "input_operand" "r,m,r"))]
2184 [(set_attr "type" "vecload")])
2186 (define_expand "movv4hi"
2187 [(set (match_operand:V4HI 0 "nonimmediate_operand" "")
2188 (match_operand:V4HI 1 "any_operand" ""))]
2190 "{ rs6000_emit_move (operands[0], operands[1], V4HImode); DONE; }")
2192 (define_insn "*movv4hi_internal"
2193 [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r")
2194 (match_operand:V4HI 1 "input_operand" "r,m,r"))]
2200 [(set_attr "type" "vecload")])
2202 (define_expand "movv2sf"
2203 [(set (match_operand:V2SF 0 "nonimmediate_operand" "")
2204 (match_operand:V2SF 1 "any_operand" ""))]
2206 "{ rs6000_emit_move (operands[0], operands[1], V2SFmode); DONE; }")
2208 (define_insn "*movv2sf_internal"
2209 [(set (match_operand:V2SF 0 "nonimmediate_operand" "=m,r,r")
2210 (match_operand:V2SF 1 "input_operand" "r,m,r"))]
2216 [(set_attr "type" "vecload")])
2218 (define_insn "spe_evmwhssfaa"
2219 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2220 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2221 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 702))
2222 (clobber (reg:SI SPEFSCR_REGNO))
2223 (clobber (reg:V2SI SPE_ACC_REGNO))]
2225 "evmwhssfaa %0,%1,%2"
2226 [(set_attr "type" "veccomplex")
2227 (set_attr "length" "4")])
2229 (define_insn "spe_evmwhssmaa"
2230 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2231 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2232 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 703))
2233 (clobber (reg:SI SPEFSCR_REGNO))
2234 (clobber (reg:V2SI SPE_ACC_REGNO))]
2236 "evmwhssmaa %0,%1,%2"
2237 [(set_attr "type" "veccomplex")
2238 (set_attr "length" "4")])
2240 (define_insn "spe_evmwhsmfaa"
2241 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2242 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2243 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 704))
2244 (clobber (reg:V2SI SPE_ACC_REGNO))]
2246 "evmwhsmfaa %0,%1,%2"
2247 [(set_attr "type" "veccomplex")
2248 (set_attr "length" "4")])
2250 (define_insn "spe_evmwhsmiaa"
2251 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2252 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2253 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 705))
2254 (clobber (reg:V2SI SPE_ACC_REGNO))]
2256 "evmwhsmiaa %0,%1,%2"
2257 [(set_attr "type" "veccomplex")
2258 (set_attr "length" "4")])
2260 (define_insn "spe_evmwhusiaa"
2261 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2262 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2263 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 706))
2264 (clobber (reg:SI SPEFSCR_REGNO))
2265 (clobber (reg:V2SI SPE_ACC_REGNO))]
2267 "evmwhusiaa %0,%1,%2"
2268 [(set_attr "type" "veccomplex")
2269 (set_attr "length" "4")])
2271 (define_insn "spe_evmwhumiaa"
2272 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2273 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2274 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 707))
2275 (clobber (reg:V2SI SPE_ACC_REGNO))]
2277 "evmwhumiaa %0,%1,%2"
2278 [(set_attr "type" "veccomplex")
2279 (set_attr "length" "4")])
2281 (define_insn "spe_evmwhssfan"
2282 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2283 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2284 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 708))
2285 (clobber (reg:SI SPEFSCR_REGNO))
2286 (clobber (reg:V2SI SPE_ACC_REGNO))]
2288 "evmwhssfan %0,%1,%2"
2289 [(set_attr "type" "veccomplex")
2290 (set_attr "length" "4")])
2292 (define_insn "spe_evmwhssian"
2293 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2294 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2295 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 709))
2296 (clobber (reg:SI SPEFSCR_REGNO))
2297 (clobber (reg:V2SI SPE_ACC_REGNO))]
2299 "evmwhssian %0,%1,%2"
2300 [(set_attr "type" "veccomplex")
2301 (set_attr "length" "4")])
2303 (define_insn "spe_evmwhsmfan"
2304 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2305 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2306 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 710))
2307 (clobber (reg:V2SI SPE_ACC_REGNO))]
2309 "evmwhsmfan %0,%1,%2"
2310 [(set_attr "type" "veccomplex")
2311 (set_attr "length" "4")])
2313 (define_insn "spe_evmwhsmian"
2314 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2315 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2316 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 711))
2317 (clobber (reg:V2SI SPE_ACC_REGNO))]
2319 "evmwhsmian %0,%1,%2"
2320 [(set_attr "type" "veccomplex")
2321 (set_attr "length" "4")])
2323 (define_insn "spe_evmwhumian"
2324 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2325 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2326 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 713))
2327 (clobber (reg:V2SI SPE_ACC_REGNO))]
2329 "evmwhumian %0,%1,%2"
2330 [(set_attr "type" "veccomplex")
2331 (set_attr "length" "4")])
2333 (define_insn "spe_evmwhgssfaa"
2334 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2335 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2336 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 714))
2337 (clobber (reg:SI SPEFSCR_REGNO))
2338 (clobber (reg:V2SI SPE_ACC_REGNO))]
2340 "evmwhgssfaa %0,%1,%2"
2341 [(set_attr "type" "veccomplex")
2342 (set_attr "length" "4")])
2344 (define_insn "spe_evmwhgsmfaa"
2345 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2346 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2347 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 715))
2348 (clobber (reg:V2SI SPE_ACC_REGNO))]
2350 "evmwhgsmfaa %0,%1,%2"
2351 [(set_attr "type" "veccomplex")
2352 (set_attr "length" "4")])
2354 (define_insn "spe_evmwhgsmiaa"
2355 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2356 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2357 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 716))
2358 (clobber (reg:V2SI SPE_ACC_REGNO))]
2360 "evmwhgsmiaa %0,%1,%2"
2361 [(set_attr "type" "veccomplex")
2362 (set_attr "length" "4")])
2364 (define_insn "spe_evmwhgumiaa"
2365 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2366 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2367 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 717))
2368 (clobber (reg:V2SI SPE_ACC_REGNO))]
2370 "evmwhgumiaa %0,%1,%2"
2371 [(set_attr "type" "veccomplex")
2372 (set_attr "length" "4")])
2374 (define_insn "spe_evmwhgssfan"
2375 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2376 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2377 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 718))
2378 (clobber (reg:SI SPEFSCR_REGNO))
2379 (clobber (reg:V2SI SPE_ACC_REGNO))]
2381 "evmwhgssfan %0,%1,%2"
2382 [(set_attr "type" "veccomplex")
2383 (set_attr "length" "4")])
2385 (define_insn "spe_evmwhgsmfan"
2386 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2387 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2388 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 719))
2389 (clobber (reg:V2SI SPE_ACC_REGNO))]
2391 "evmwhgsmfan %0,%1,%2"
2392 [(set_attr "type" "veccomplex")
2393 (set_attr "length" "4")])
2395 (define_insn "spe_evmwhgsmian"
2396 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2397 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2398 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 720))
2399 (clobber (reg:V2SI SPE_ACC_REGNO))]
2401 "evmwhgsmian %0,%1,%2"
2402 [(set_attr "type" "veccomplex")
2403 (set_attr "length" "4")])
2405 (define_insn "spe_evmwhgumian"
2406 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r")
2407 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")
2408 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 721))
2409 (clobber (reg:V2SI SPE_ACC_REGNO))]
2411 "evmwhgumian %0,%1,%2"
2412 [(set_attr "type" "veccomplex")
2413 (set_attr "length" "4")])
2415 (define_insn "spe_mtspefscr"
2416 [(set (reg:SI SPEFSCR_REGNO)
2417 (unspec_volatile:SI [(match_operand:SI 0 "register_operand" "r")]
2421 [(set_attr "type" "vecsimple")])
2423 (define_insn "spe_mfspefscr"
2424 [(set (match_operand:SI 0 "register_operand" "=r")
2425 (unspec_volatile:SI [(reg:SI SPEFSCR_REGNO)] 723))]
2428 [(set_attr "type" "vecsimple")])
2430 ;; MPC8540 single-precision FP instructions on GPRs.
2431 ;; We have 2 variants for each. One for IEEE compliant math and one
2432 ;; for non IEEE compliant math.
2434 (define_insn "cmpsfeq_gpr"
2435 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2436 (eq:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2437 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2438 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
2440 [(set_attr "type" "fpcompare")])
2442 (define_insn "tstsfeq_gpr"
2443 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2444 (eq:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2445 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2446 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
2448 [(set_attr "type" "fpcompare")])
2450 (define_insn "cmpsfgt_gpr"
2451 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2452 (gt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2453 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2454 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
2456 [(set_attr "type" "fpcompare")])
2458 (define_insn "tstsfgt_gpr"
2459 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2460 (gt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2461 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2462 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
2464 [(set_attr "type" "fpcompare")])
2466 (define_insn "cmpsflt_gpr"
2467 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2468 (lt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2469 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2470 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations"
2472 [(set_attr "type" "fpcompare")])
2474 (define_insn "tstsflt_gpr"
2475 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y")
2476 (lt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r")
2477 (match_operand:SF 2 "gpc_reg_operand" "r")))]
2478 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations"
2480 [(set_attr "type" "fpcompare")])