1;; e500 SPE description 2;; Copyright (C) 2002 Free Software Foundation, Inc. 3;; Contributed by Aldy Hernandez (aldy@quesejoda.com) 4 5;; This file is part of GNU CC. 6 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) 10;; any later version. 11 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. 16 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. 21 22(define_constants 23 [(SPE_ACC_REGNO 111) 24 (SPEFSCR_REGNO 112)]) 25 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" 30 "efsneg %0,%1" 31 [(set_attr "type" "fp")]) 32 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" 37 "efsabs %0,%1" 38 [(set_attr "type" "fp")]) 39 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" 45 "efsadd %0,%1,%2" 46 [(set_attr "type" "fp")]) 47 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" 53 "efssub %0,%1,%2" 54 [(set_attr "type" "fp")]) 55 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" 61 "efsmul %0,%1,%2" 62 [(set_attr "type" "fp")]) 63 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" 69 "efsdiv %0,%1,%2" 70 [(set_attr "type" "fp")]) 71 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" 76 "efsctuiz %0,%1" 77 [(set_attr "type" "fp")]) 78 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" 83 "efsctui %0,%1" 84 [(set_attr "type" "fp")]) 85 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" 90 "efsctsi %0,%1" 91 [(set_attr "type" "fp")]) 92 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" 97 "efscfui %0,%1" 98 [(set_attr "type" "fp")]) 99 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" 104 "efscfsi %0,%1" 105 [(set_attr "type" "fp")]) 106 107 108;; SPE SIMD instructions 109 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")))] 113 "TARGET_SPE" 114 "evabs %0,%1" 115 [(set_attr "type" "vecsimple") 116 (set_attr "length" "4")]) 117 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"))))] 122 "TARGET_SPE" 123 "evandc %0,%1,%2" 124 [(set_attr "type" "vecsimple") 125 (set_attr "length" "4")]) 126 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")))] 131 "TARGET_SPE" 132 "evand %0,%1,%2" 133 [(set_attr "type" "vecsimple") 134 (set_attr "length" "4")]) 135 136;; Vector compare instructions 137 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))] 142 "TARGET_SPE" 143 "evcmpeq %0,%1,%2" 144 [(set_attr "type" "veccmp") 145 (set_attr "length" "4")]) 146 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))] 151 "TARGET_SPE" 152 "evcmpgts %0,%1,%2" 153 [(set_attr "type" "veccmp") 154 (set_attr "length" "4")]) 155 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))] 160 "TARGET_SPE" 161 "evcmpgtu %0,%1,%2" 162 [(set_attr "type" "veccmp") 163 (set_attr "length" "4")]) 164 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))] 169 "TARGET_SPE" 170 "evcmplts %0,%1,%2" 171 [(set_attr "type" "veccmp") 172 (set_attr "length" "4")]) 173 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))] 178 "TARGET_SPE" 179 "evcmpltu %0,%1,%2" 180 [(set_attr "type" "veccmp") 181 (set_attr "length" "4")]) 182 183;; Floating point vector compare instructions 184 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))] 190 "TARGET_SPE" 191 "evfscmpeq %0,%1,%2" 192 [(set_attr "type" "veccmp") 193 (set_attr "length" "4")]) 194 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))] 200 "TARGET_SPE" 201 "evfscmpgt %0,%1,%2" 202 [(set_attr "type" "veccmp") 203 (set_attr "length" "4")]) 204 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))] 210 "TARGET_SPE" 211 "evfscmplt %0,%1,%2" 212 [(set_attr "type" "veccmp") 213 (set_attr "length" "4")]) 214 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))] 219 "TARGET_SPE" 220 "evfststeq %0,%1,%2" 221 [(set_attr "type" "veccmp") 222 (set_attr "length" "4")]) 223 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))] 228 "TARGET_SPE" 229 "evfststgt %0,%1,%2" 230 [(set_attr "type" "veccmp") 231 (set_attr "length" "4")]) 232 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))] 237 "TARGET_SPE" 238 "evfststlt %0,%1,%2" 239 [(set_attr "type" "veccmp") 240 (set_attr "length" "4")]) 241 242;; End of vector compare instructions 243 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))] 247 "TARGET_SPE" 248 "evcntlsw %0,%1" 249 [(set_attr "type" "vecsimple") 250 (set_attr "length" "4")]) 251 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))] 255 "TARGET_SPE" 256 "evcntlzw %0,%1" 257 [(set_attr "type" "vecsimple") 258 (set_attr "length" "4")]) 259 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"))))] 264 "TARGET_SPE" 265 "eveqv %0,%1,%2" 266 [(set_attr "type" "vecsimple") 267 (set_attr "length" "4")]) 268 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))] 272 "TARGET_SPE" 273 "evextsb %0,%1" 274 [(set_attr "type" "vecsimple") 275 (set_attr "length" "4")]) 276 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))] 280 "TARGET_SPE" 281 "evextsh %0,%1" 282 [(set_attr "type" "vecsimple") 283 (set_attr "length" "4")]) 284 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)] 290 "TARGET_SPE" 291 "evlhhesplat %0,%1,%2" 292 [(set_attr "type" "vecload") 293 (set_attr "length" "4")]) 294 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)] 300 "TARGET_SPE" 301 "evlhhesplatx %0,%1,%2" 302 [(set_attr "type" "vecload") 303 (set_attr "length" "4")]) 304 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)] 310 "TARGET_SPE" 311 "evlhhossplat %0,%1,%2" 312 [(set_attr "type" "vecload") 313 (set_attr "length" "4")]) 314 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)] 320 "TARGET_SPE" 321 "evlhhossplatx %0,%1,%2" 322 [(set_attr "type" "vecload") 323 (set_attr "length" "4")]) 324 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)] 330 "TARGET_SPE" 331 "evlhhousplat %0,%1,%2" 332 [(set_attr "type" "vecload") 333 (set_attr "length" "4")]) 334 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)] 340 "TARGET_SPE" 341 "evlhhousplatx %0,%1,%2" 342 [(set_attr "type" "vecload") 343 (set_attr "length" "4")]) 344 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)] 350 "TARGET_SPE" 351 "evlwhsplat %0,%1,%2" 352 [(set_attr "type" "vecload") 353 (set_attr "length" "4")]) 354 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)] 360 "TARGET_SPE" 361 "evlwhsplatx %0,%1,%2" 362 [(set_attr "type" "vecload") 363 (set_attr "length" "4")]) 364 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)] 370 "TARGET_SPE" 371 "evlwwsplat %0,%1,%2" 372 [(set_attr "type" "vecload") 373 (set_attr "length" "4")]) 374 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)] 380 "TARGET_SPE" 381 "evlwwsplatx %0,%1,%2" 382 [(set_attr "type" "vecload") 383 (set_attr "length" "4")]) 384 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") 388 (vec_select:V2SI 389 (match_operand:V2SI 2 "gpc_reg_operand" "r") 390 (parallel [(const_int 1) 391 (const_int 0)])) 392 (const_int 2)))] 393 "TARGET_SPE" 394 "evmergehi %0,%1,%2" 395 [(set_attr "type" "vecsimple") 396 (set_attr "length" "4")]) 397 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") 402 (const_int 2)))] 403 "TARGET_SPE" 404 "evmergehilo %0,%1,%2" 405 [(set_attr "type" "vecsimple") 406 (set_attr "length" "4")]) 407 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) 413 (const_int 0)])) 414 (match_operand:V2SI 2 "gpc_reg_operand" "r") 415 (const_int 2)))] 416 "TARGET_SPE" 417 "evmergelo %0,%1,%2" 418 [(set_attr "type" "vecsimple") 419 (set_attr "length" "4")]) 420 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) 426 (const_int 0)])) 427 (vec_select:V2SI 428 (match_operand:V2SI 2 "gpc_reg_operand" "r") 429 (parallel [(const_int 1) 430 (const_int 0)])) 431 (const_int 2)))] 432 "TARGET_SPE" 433 "evmergelohi %0,%1,%2" 434 [(set_attr "type" "vecsimple") 435 (set_attr "length" "4")]) 436 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"))))] 441 "TARGET_SPE" 442 "evnand %0,%1,%2" 443 [(set_attr "type" "vecsimple") 444 (set_attr "length" "4")]) 445 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")))] 449 "TARGET_SPE" 450 "evneg %0,%1" 451 [(set_attr "type" "vecsimple") 452 (set_attr "length" "4")]) 453 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"))))] 458 "TARGET_SPE" 459 "evnor %0,%1,%2" 460 [(set_attr "type" "vecsimple") 461 (set_attr "length" "4")]) 462 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"))))] 467 "TARGET_SPE" 468 "evorc %0,%1,%2" 469 [(set_attr "type" "vecsimple") 470 (set_attr "length" "4")]) 471 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")))] 476 "TARGET_SPE" 477 "evor %0,%1,%2" 478 [(set_attr "type" "vecsimple") 479 (set_attr "length" "4")]) 480 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))] 485 "TARGET_SPE" 486 "evrlwi %0,%1,%2" 487 [(set_attr "type" "vecsimple") 488 (set_attr "length" "4")]) 489 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))] 494 "TARGET_SPE" 495 "evrlw %0,%1,%2" 496 [(set_attr "type" "veccomplex") 497 (set_attr "length" "4")]) 498 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))] 502 "TARGET_SPE" 503 "evrndw %0,%1" 504 [(set_attr "type" "vecsimple") 505 (set_attr "length" "4")]) 506 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))] 512 "TARGET_SPE" 513 "evsel %0,%1,%2,%3" 514 [(set_attr "type" "veccmp") 515 (set_attr "length" "4")]) 516 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))] 522 "TARGET_SPE" 523 "evsel %0,%1,%2,%3" 524 [(set_attr "type" "veccmp") 525 (set_attr "length" "4")]) 526 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")] 531 523))] 532 "TARGET_SPE" 533 "evslwi %0,%1,%2" 534 [(set_attr "type" "vecsimple") 535 (set_attr "length" "4")]) 536 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))] 541 "TARGET_SPE" 542 "evslw %0,%1,%2" 543 [(set_attr "type" "vecsimple") 544 (set_attr "length" "4")]) 545 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")] 550 525))] 551 "TARGET_SPE" 552 "evsrwis %0,%1,%2" 553 [(set_attr "type" "vecsimple") 554 (set_attr "length" "4")]) 555 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")] 560 526))] 561 "TARGET_SPE" 562 "evsrwiu %0,%1,%2" 563 [(set_attr "type" "vecsimple") 564 (set_attr "length" "4")]) 565 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))] 570 "TARGET_SPE" 571 "evsrws %0,%1,%2" 572 [(set_attr "type" "vecsimple") 573 (set_attr "length" "4")]) 574 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))] 579 "TARGET_SPE" 580 "evsrwu %0,%1,%2" 581 [(set_attr "type" "vecsimple") 582 (set_attr "length" "4")]) 583 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")))] 588 "TARGET_SPE" 589 "evxor %0,%1,%2" 590 [(set_attr "type" "vecsimple") 591 (set_attr "length" "4")]) 592 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")))] 596 "TARGET_SPE" 597 "evfsabs %0,%1" 598 [(set_attr "type" "vecfloat") 599 (set_attr "length" "4")]) 600 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))] 606 "TARGET_SPE" 607 "evfsadd %0,%1,%2" 608 [(set_attr "type" "vecfloat") 609 (set_attr "length" "4")]) 610 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))] 614 "TARGET_SPE" 615 "evfscfsf %0,%1" 616 [(set_attr "type" "vecfloat") 617 (set_attr "length" "4")]) 618 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")))] 622 "TARGET_SPE" 623 "evfscfsi %0,%1" 624 [(set_attr "type" "vecfloat") 625 (set_attr "length" "4")]) 626 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))] 630 "TARGET_SPE" 631 "evfscfuf %0,%1" 632 [(set_attr "type" "vecfloat") 633 (set_attr "length" "4")]) 634 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))] 638 "TARGET_SPE" 639 "evfscfui %0,%1" 640 [(set_attr "type" "vecfloat") 641 (set_attr "length" "4")]) 642 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))] 646 "TARGET_SPE" 647 "evfsctsf %0,%1" 648 [(set_attr "type" "vecfloat") 649 (set_attr "length" "4")]) 650 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))] 654 "TARGET_SPE" 655 "evfsctsi %0,%1" 656 [(set_attr "type" "vecfloat") 657 (set_attr "length" "4")]) 658 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))] 662 "TARGET_SPE" 663 "evfsctsiz %0,%1" 664 [(set_attr "type" "vecfloat") 665 (set_attr "length" "4")]) 666 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))] 670 "TARGET_SPE" 671 "evfsctuf %0,%1" 672 [(set_attr "type" "vecfloat") 673 (set_attr "length" "4")]) 674 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))] 678 "TARGET_SPE" 679 "evfsctui %0,%1" 680 [(set_attr "type" "vecfloat") 681 (set_attr "length" "4")]) 682 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))] 686 "TARGET_SPE" 687 "evfsctuiz %0,%1" 688 [(set_attr "type" "vecfloat") 689 (set_attr "length" "4")]) 690 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))] 696 "TARGET_SPE" 697 "evfsdiv %0,%1,%2" 698 [(set_attr "type" "vecfloat") 699 (set_attr "length" "4")]) 700 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))] 706 "TARGET_SPE" 707 "evfsmul %0,%1,%2" 708 [(set_attr "type" "vecfloat") 709 (set_attr "length" "4")]) 710 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))] 714 "TARGET_SPE" 715 "evfsnabs %0,%1" 716 [(set_attr "type" "vecfloat") 717 (set_attr "length" "4")]) 718 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")))] 722 "TARGET_SPE" 723 "evfsneg %0,%1" 724 [(set_attr "type" "vecfloat") 725 (set_attr "length" "4")]) 726 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))] 732 "TARGET_SPE" 733 "evfssub %0,%1,%2" 734 [(set_attr "type" "vecfloat") 735 (set_attr "length" "4")]) 736 737;; SPE SIMD load instructions. 738 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. 743 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" 750 "evldd %0,%1,%2" 751 [(set_attr "type" "vecload") 752 (set_attr "length" "4")]) 753 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)] 759 "TARGET_SPE" 760 "evlddx %0,%1,%2" 761 [(set_attr "type" "vecload") 762 (set_attr "length" "4")]) 763 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" 770 "evldh %0,%1,%2" 771 [(set_attr "type" "vecload") 772 (set_attr "length" "4")]) 773 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)] 779 "TARGET_SPE" 780 "evldhx %0,%1,%2" 781 [(set_attr "type" "vecload") 782 (set_attr "length" "4")]) 783 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)] 789 "TARGET_SPE" 790 "evldw %0,%1,%2" 791 [(set_attr "type" "vecload") 792 (set_attr "length" "4")]) 793 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)] 799 "TARGET_SPE" 800 "evldwx %0,%1,%2" 801 [(set_attr "type" "vecload") 802 (set_attr "length" "4")]) 803 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)] 809 "TARGET_SPE" 810 "evlwhe %0,%1,%2" 811 [(set_attr "type" "vecload") 812 (set_attr "length" "4")]) 813 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)] 819 "TARGET_SPE" 820 "evlwhex %0,%1,%2" 821 [(set_attr "type" "vecload") 822 (set_attr "length" "4")]) 823 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)] 829 "TARGET_SPE" 830 "evlwhos %0,%1,%2" 831 [(set_attr "type" "vecload") 832 (set_attr "length" "4")]) 833 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)] 839 "TARGET_SPE" 840 "evlwhosx %0,%1,%2" 841 [(set_attr "type" "vecload") 842 (set_attr "length" "4")]) 843 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)] 849 "TARGET_SPE" 850 "evlwhou %0,%1,%2" 851 [(set_attr "type" "vecload") 852 (set_attr "length" "4")]) 853 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)] 859 "TARGET_SPE" 860 "evlwhoux %0,%1,%2" 861 [(set_attr "type" "vecload") 862 (set_attr "length" "4")]) 863 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))] 868 "TARGET_SPE" 869 "brinc %0,%1,%2" 870 [(set_attr "type" "veccomplex") 871 (set_attr "length" "4")]) 872 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))] 879 "TARGET_SPE" 880 "evmhegsmfaa %0,%1,%2" 881 [(set_attr "type" "veccomplex") 882 (set_attr "length" "4")]) 883 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))] 890 "TARGET_SPE" 891 "evmhegsmfan %0,%1,%2" 892 [(set_attr "type" "veccomplex") 893 (set_attr "length" "4")]) 894 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))] 901 "TARGET_SPE" 902 "evmhegsmiaa %0,%1,%2" 903 [(set_attr "type" "veccomplex") 904 (set_attr "length" "4")]) 905 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))] 912 "TARGET_SPE" 913 "evmhegsmian %0,%1,%2" 914 [(set_attr "type" "veccomplex") 915 (set_attr "length" "4")]) 916 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))] 923 "TARGET_SPE" 924 "evmhegumiaa %0,%1,%2" 925 [(set_attr "type" "veccomplex") 926 (set_attr "length" "4")]) 927 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))] 934 "TARGET_SPE" 935 "evmhegumian %0,%1,%2" 936 [(set_attr "type" "veccomplex") 937 (set_attr "length" "4")]) 938 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))] 945 "TARGET_SPE" 946 "evmhesmfaaw %0,%1,%2" 947 [(set_attr "type" "veccomplex") 948 (set_attr "length" "4")]) 949 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))] 956 "TARGET_SPE" 957 "evmhesmfanw %0,%1,%2" 958 [(set_attr "type" "veccomplex") 959 (set_attr "length" "4")]) 960 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))] 966 "TARGET_SPE" 967 "evmhesmfa %0,%1,%2" 968 [(set_attr "type" "veccomplex") 969 (set_attr "length" "4")]) 970 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))] 975 "TARGET_SPE" 976 "evmhesmf %0,%1,%2" 977 [(set_attr "type" "veccomplex") 978 (set_attr "length" "4")]) 979 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))] 986 "TARGET_SPE" 987 "evmhesmiaaw %0,%1,%2" 988 [(set_attr "type" "veccomplex") 989 (set_attr "length" "4")]) 990 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))] 997 "TARGET_SPE" 998 "evmhesmianw %0,%1,%2" 999 [(set_attr "type" "veccomplex") 1000 (set_attr "length" "4")]) 1001 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))] 1007 "TARGET_SPE" 1008 "evmhesmia %0,%1,%2" 1009 [(set_attr "type" "veccomplex") 1010 (set_attr "length" "4")]) 1011 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))] 1016 "TARGET_SPE" 1017 "evmhesmi %0,%1,%2" 1018 [(set_attr "type" "veccomplex") 1019 (set_attr "length" "4")]) 1020 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))] 1028 "TARGET_SPE" 1029 "evmhessfaaw %0,%1,%2" 1030 [(set_attr "type" "veccomplex") 1031 (set_attr "length" "4")]) 1032 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))] 1040 "TARGET_SPE" 1041 "evmhessfanw %0,%1,%2" 1042 [(set_attr "type" "veccomplex") 1043 (set_attr "length" "4")]) 1044 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))] 1051 "TARGET_SPE" 1052 "evmhessfa %0,%1,%2" 1053 [(set_attr "type" "veccomplex") 1054 (set_attr "length" "4")]) 1055 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))] 1061 "TARGET_SPE" 1062 "evmhessf %0,%1,%2" 1063 [(set_attr "type" "veccomplex") 1064 (set_attr "length" "4")]) 1065 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))] 1073 "TARGET_SPE" 1074 "evmhessiaaw %0,%1,%2" 1075 [(set_attr "type" "veccomplex") 1076 (set_attr "length" "4")]) 1077 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))] 1085 "TARGET_SPE" 1086 "evmhessianw %0,%1,%2" 1087 [(set_attr "type" "veccomplex") 1088 (set_attr "length" "4")]) 1089 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))] 1096 "TARGET_SPE" 1097 "evmheumiaaw %0,%1,%2" 1098 [(set_attr "type" "veccomplex") 1099 (set_attr "length" "4")]) 1100 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))] 1107 "TARGET_SPE" 1108 "evmheumianw %0,%1,%2" 1109 [(set_attr "type" "veccomplex") 1110 (set_attr "length" "4")]) 1111 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))] 1117 "TARGET_SPE" 1118 "evmheumia %0,%1,%2" 1119 [(set_attr "type" "veccomplex") 1120 (set_attr "length" "4")]) 1121 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))] 1126 "TARGET_SPE" 1127 "evmheumi %0,%1,%2" 1128 [(set_attr "type" "veccomplex") 1129 (set_attr "length" "4")]) 1130 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))] 1138 "TARGET_SPE" 1139 "evmheusiaaw %0,%1,%2" 1140 [(set_attr "type" "veccomplex") 1141 (set_attr "length" "4")]) 1142 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))] 1150 "TARGET_SPE" 1151 "evmheusianw %0,%1,%2" 1152 [(set_attr "type" "veccomplex") 1153 (set_attr "length" "4")]) 1154 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))] 1161 "TARGET_SPE" 1162 "evmhogsmfaa %0,%1,%2" 1163 [(set_attr "type" "veccomplex") 1164 (set_attr "length" "4")]) 1165 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))] 1172 "TARGET_SPE" 1173 "evmhogsmfan %0,%1,%2" 1174 [(set_attr "type" "veccomplex") 1175 (set_attr "length" "4")]) 1176 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))] 1183 "TARGET_SPE" 1184 "evmhogsmiaa %0,%1,%2" 1185 [(set_attr "type" "veccomplex") 1186 (set_attr "length" "4")]) 1187 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))] 1194 "TARGET_SPE" 1195 "evmhogsmian %0,%1,%2" 1196 [(set_attr "type" "veccomplex") 1197 (set_attr "length" "4")]) 1198 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))] 1205 "TARGET_SPE" 1206 "evmhogumiaa %0,%1,%2" 1207 [(set_attr "type" "veccomplex") 1208 (set_attr "length" "4")]) 1209 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))] 1216 "TARGET_SPE" 1217 "evmhogumian %0,%1,%2" 1218 [(set_attr "type" "veccomplex") 1219 (set_attr "length" "4")]) 1220 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))] 1227 "TARGET_SPE" 1228 "evmhosmfaaw %0,%1,%2" 1229 [(set_attr "type" "veccomplex") 1230 (set_attr "length" "4")]) 1231 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))] 1238 "TARGET_SPE" 1239 "evmhosmfanw %0,%1,%2" 1240 [(set_attr "type" "veccomplex") 1241 (set_attr "length" "4")]) 1242 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))] 1247 "TARGET_SPE" 1248 "evmhosmfa %0,%1,%2" 1249 [(set_attr "type" "veccomplex") 1250 (set_attr "length" "4")]) 1251 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))] 1257 "TARGET_SPE" 1258 "evmhosmf %0,%1,%2" 1259 [(set_attr "type" "veccomplex") 1260 (set_attr "length" "4")]) 1261 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))] 1268 "TARGET_SPE" 1269 "evmhosmiaaw %0,%1,%2" 1270 [(set_attr "type" "veccomplex") 1271 (set_attr "length" "4")]) 1272 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))] 1279 "TARGET_SPE" 1280 "evmhosmianw %0,%1,%2" 1281 [(set_attr "type" "veccomplex") 1282 (set_attr "length" "4")]) 1283 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))] 1289 "TARGET_SPE" 1290 "evmhosmia %0,%1,%2" 1291 [(set_attr "type" "veccomplex") 1292 (set_attr "length" "4")]) 1293 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))] 1298 "TARGET_SPE" 1299 "evmhosmi %0,%1,%2" 1300 [(set_attr "type" "veccomplex") 1301 (set_attr "length" "4")]) 1302 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))] 1310 "TARGET_SPE" 1311 "evmhossfaaw %0,%1,%2" 1312 [(set_attr "type" "veccomplex") 1313 (set_attr "length" "4")]) 1314 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))] 1322 "TARGET_SPE" 1323 "evmhossfanw %0,%1,%2" 1324 [(set_attr "type" "veccomplex") 1325 (set_attr "length" "4")]) 1326 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))] 1334 "TARGET_SPE" 1335 "evmhossfa %0,%1,%2" 1336 [(set_attr "type" "veccomplex") 1337 (set_attr "length" "4")]) 1338 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))] 1344 "TARGET_SPE" 1345 "evmhossf %0,%1,%2" 1346 [(set_attr "type" "veccomplex") 1347 (set_attr "length" "4")]) 1348 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))] 1356 "TARGET_SPE" 1357 "evmhossiaaw %0,%1,%2" 1358 [(set_attr "type" "veccomplex") 1359 (set_attr "length" "4")]) 1360 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))] 1368 "TARGET_SPE" 1369 "evmhossianw %0,%1,%2" 1370 [(set_attr "type" "veccomplex") 1371 (set_attr "length" "4")]) 1372 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))] 1379 "TARGET_SPE" 1380 "evmhoumiaaw %0,%1,%2" 1381 [(set_attr "type" "veccomplex") 1382 (set_attr "length" "4")]) 1383 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))] 1390 "TARGET_SPE" 1391 "evmhoumianw %0,%1,%2" 1392 [(set_attr "type" "veccomplex") 1393 (set_attr "length" "4")]) 1394 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))] 1400 "TARGET_SPE" 1401 "evmhoumia %0,%1,%2" 1402 [(set_attr "type" "veccomplex") 1403 (set_attr "length" "4")]) 1404 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))] 1409 "TARGET_SPE" 1410 "evmhoumi %0,%1,%2" 1411 [(set_attr "type" "veccomplex") 1412 (set_attr "length" "4")]) 1413 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))] 1421 "TARGET_SPE" 1422 "evmhousiaaw %0,%1,%2" 1423 [(set_attr "type" "veccomplex") 1424 (set_attr "length" "4")]) 1425 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))] 1433 "TARGET_SPE" 1434 "evmhousianw %0,%1,%2" 1435 [(set_attr "type" "veccomplex") 1436 (set_attr "length" "4")]) 1437 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))] 1442 "TARGET_SPE" 1443 "evmmlssfa %0,%1,%2" 1444 [(set_attr "type" "veccomplex") 1445 (set_attr "length" "4")]) 1446 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))] 1451 "TARGET_SPE" 1452 "evmmlssf %0,%1,%2" 1453 [(set_attr "type" "veccomplex") 1454 (set_attr "length" "4")]) 1455 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))] 1461 "TARGET_SPE" 1462 "evmwhsmfa %0,%1,%2" 1463 [(set_attr "type" "veccomplex") 1464 (set_attr "length" "4")]) 1465 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))] 1470 "TARGET_SPE" 1471 "evmwhsmf %0,%1,%2" 1472 [(set_attr "type" "veccomplex") 1473 (set_attr "length" "4")]) 1474 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))] 1480 "TARGET_SPE" 1481 "evmwhsmia %0,%1,%2" 1482 [(set_attr "type" "veccomplex") 1483 (set_attr "length" "4")]) 1484 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))] 1489 "TARGET_SPE" 1490 "evmwhsmi %0,%1,%2" 1491 [(set_attr "type" "veccomplex") 1492 (set_attr "length" "4")]) 1493 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))] 1500 "TARGET_SPE" 1501 "evmwhssfa %0,%1,%2" 1502 [(set_attr "type" "veccomplex") 1503 (set_attr "length" "4")]) 1504 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))] 1509 "TARGET_SPE" 1510 "evmwhusian %0,%1,%2" 1511 [(set_attr "type" "veccomplex") 1512 (set_attr "length" "4")]) 1513 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))] 1519 "TARGET_SPE" 1520 "evmwhssf %0,%1,%2" 1521 [(set_attr "type" "veccomplex") 1522 (set_attr "length" "4")]) 1523 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))] 1529 "TARGET_SPE" 1530 "evmwhumia %0,%1,%2" 1531 [(set_attr "type" "veccomplex") 1532 (set_attr "length" "4")]) 1533 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))] 1538 "TARGET_SPE" 1539 "evmwhumi %0,%1,%2" 1540 [(set_attr "type" "veccomplex") 1541 (set_attr "length" "4")]) 1542 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))] 1549 "TARGET_SPE" 1550 "evmwlsmiaaw %0,%1,%2" 1551 [(set_attr "type" "veccomplex") 1552 (set_attr "length" "4")]) 1553 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))] 1560 "TARGET_SPE" 1561 "evmwlsmianw %0,%1,%2" 1562 [(set_attr "type" "veccomplex") 1563 (set_attr "length" "4")]) 1564 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))] 1572 "TARGET_SPE" 1573 "evmwlssiaaw %0,%1,%2" 1574 [(set_attr "type" "veccomplex") 1575 (set_attr "length" "4")]) 1576 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))] 1584 "TARGET_SPE" 1585 "evmwlssianw %0,%1,%2" 1586 [(set_attr "type" "veccomplex") 1587 (set_attr "length" "4")]) 1588 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))] 1595 "TARGET_SPE" 1596 "evmwlumiaaw %0,%1,%2" 1597 [(set_attr "type" "veccomplex") 1598 (set_attr "length" "4")]) 1599 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))] 1606 "TARGET_SPE" 1607 "evmwlumianw %0,%1,%2" 1608 [(set_attr "type" "veccomplex") 1609 (set_attr "length" "4")]) 1610 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))] 1616 "TARGET_SPE" 1617 "evmwlumia %0,%1,%2" 1618 [(set_attr "type" "veccomplex") 1619 (set_attr "length" "4")]) 1620 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))] 1625 "TARGET_SPE" 1626 "evmwlumi %0,%1,%2" 1627 [(set_attr "type" "veccomplex") 1628 (set_attr "length" "4")]) 1629 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))] 1637 "TARGET_SPE" 1638 "evmwlusiaaw %0,%1,%2" 1639 [(set_attr "type" "veccomplex") 1640 (set_attr "length" "4")]) 1641 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))] 1649 "TARGET_SPE" 1650 "evmwlusianw %0,%1,%2" 1651 [(set_attr "type" "veccomplex") 1652 (set_attr "length" "4")]) 1653 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))] 1660 "TARGET_SPE" 1661 "evmwsmfaa %0,%1,%2" 1662 [(set_attr "type" "veccomplex") 1663 (set_attr "length" "4")]) 1664 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))] 1671 "TARGET_SPE" 1672 "evmwsmfan %0,%1,%2" 1673 [(set_attr "type" "veccomplex") 1674 (set_attr "length" "4")]) 1675 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))] 1681 "TARGET_SPE" 1682 "evmwsmfa %0,%1,%2" 1683 [(set_attr "type" "veccomplex") 1684 (set_attr "length" "4")]) 1685 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))] 1690 "TARGET_SPE" 1691 "evmwsmf %0,%1,%2" 1692 [(set_attr "type" "veccomplex") 1693 (set_attr "length" "4")]) 1694 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))] 1701 "TARGET_SPE" 1702 "evmwsmiaa %0,%1,%2" 1703 [(set_attr "type" "veccomplex") 1704 (set_attr "length" "4")]) 1705 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))] 1712 "TARGET_SPE" 1713 "evmwsmian %0,%1,%2" 1714 [(set_attr "type" "veccomplex") 1715 (set_attr "length" "4")]) 1716 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))] 1722 "TARGET_SPE" 1723 "evmwsmia %0,%1,%2" 1724 [(set_attr "type" "veccomplex") 1725 (set_attr "length" "4")]) 1726 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))] 1731 "TARGET_SPE" 1732 "evmwsmi %0,%1,%2" 1733 [(set_attr "type" "veccomplex") 1734 (set_attr "length" "4")]) 1735 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))] 1743 "TARGET_SPE" 1744 "evmwssfaa %0,%1,%2" 1745 [(set_attr "type" "veccomplex") 1746 (set_attr "length" "4")]) 1747 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))] 1755 "TARGET_SPE" 1756 "evmwssfan %0,%1,%2" 1757 [(set_attr "type" "veccomplex") 1758 (set_attr "length" "4")]) 1759 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))] 1766 "TARGET_SPE" 1767 "evmwssfa %0,%1,%2" 1768 [(set_attr "type" "veccomplex") 1769 (set_attr "length" "4")]) 1770 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))] 1776 "TARGET_SPE" 1777 "evmwssf %0,%1,%2" 1778 [(set_attr "type" "veccomplex") 1779 (set_attr "length" "4")]) 1780 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))] 1787 "TARGET_SPE" 1788 "evmwumiaa %0,%1,%2" 1789 [(set_attr "type" "veccomplex") 1790 (set_attr "length" "4")]) 1791 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))] 1798 "TARGET_SPE" 1799 "evmwumian %0,%1,%2" 1800 [(set_attr "type" "veccomplex") 1801 (set_attr "length" "4")]) 1802 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))] 1808 "TARGET_SPE" 1809 "evmwumia %0,%1,%2" 1810 [(set_attr "type" "veccomplex") 1811 (set_attr "length" "4")]) 1812 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))] 1817 "TARGET_SPE" 1818 "evmwumi %0,%1,%2" 1819 [(set_attr "type" "veccomplex") 1820 (set_attr "length" "4")]) 1821 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")))] 1826 "TARGET_SPE" 1827 "evaddw %0,%1,%2" 1828 [(set_attr "type" "veccomplex") 1829 (set_attr "length" "4")]) 1830 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))] 1837 "TARGET_SPE" 1838 "evaddusiaaw %0,%1" 1839 [(set_attr "type" "veccomplex") 1840 (set_attr "length" "4")]) 1841 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))] 1847 "TARGET_SPE" 1848 "evaddumiaaw %0,%1" 1849 [(set_attr "type" "veccomplex") 1850 (set_attr "length" "4")]) 1851 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))] 1858 "TARGET_SPE" 1859 "evaddssiaaw %0,%1" 1860 [(set_attr "type" "veccomplex") 1861 (set_attr "length" "4")]) 1862 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))] 1868 "TARGET_SPE" 1869 "evaddsmiaaw %0,%1" 1870 [(set_attr "type" "veccomplex") 1871 (set_attr "length" "4")]) 1872 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))] 1877 "TARGET_SPE" 1878 "evaddiw %0,%1,%2" 1879 [(set_attr "type" "veccomplex") 1880 (set_attr "length" "4")]) 1881 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))] 1886 "TARGET_SPE" 1887 "evsubifw %0,%2,%1" 1888 [(set_attr "type" "veccomplex") 1889 (set_attr "length" "4")]) 1890 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")))] 1895 "TARGET_SPE" 1896 "evsubfw %0,%1,%2" 1897 [(set_attr "type" "veccomplex") 1898 (set_attr "length" "4")]) 1899 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))] 1906 "TARGET_SPE" 1907 "evsubfusiaaw %0,%1" 1908 [(set_attr "type" "veccomplex") 1909 (set_attr "length" "4")]) 1910 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))] 1916 "TARGET_SPE" 1917 "evsubfumiaaw %0,%1" 1918 [(set_attr "type" "veccomplex") 1919 (set_attr "length" "4")]) 1920 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))] 1927 "TARGET_SPE" 1928 "evsubfssiaaw %0,%1" 1929 [(set_attr "type" "veccomplex") 1930 (set_attr "length" "4")]) 1931 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))] 1937 "TARGET_SPE" 1938 "evsubfsmiaaw %0,%1" 1939 [(set_attr "type" "veccomplex") 1940 (set_attr "length" "4")]) 1941 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))] 1947 "TARGET_SPE" 1948 "evmra %0,%1" 1949 [(set_attr "type" "veccomplex") 1950 (set_attr "length" "4")]) 1951 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))] 1957 "TARGET_SPE" 1958 "evdivws %0,%1,%2" 1959 [(set_attr "type" "veccomplex") 1960 (set_attr "length" "4")]) 1961 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))] 1967 "TARGET_SPE" 1968 "evdivwu %0,%1,%2" 1969 [(set_attr "type" "veccomplex") 1970 (set_attr "length" "4")]) 1971 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))] 1975 "TARGET_SPE" 1976 "evsplatfi %0,%1" 1977 [(set_attr "type" "vecperm") 1978 (set_attr "length" "4")]) 1979 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))] 1983 "TARGET_SPE" 1984 "evsplati %0,%1" 1985 [(set_attr "type" "vecperm") 1986 (set_attr "length" "4")]) 1987 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)] 1993 "TARGET_SPE" 1994 "evstdd %2,%0,%1" 1995 [(set_attr "type" "vecstore") 1996 (set_attr "length" "4")]) 1997 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)] 2003 "TARGET_SPE" 2004 "evstddx %2,%0,%1" 2005 [(set_attr "type" "vecstore") 2006 (set_attr "length" "4")]) 2007 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)] 2013 "TARGET_SPE" 2014 "evstdh %2,%0,%1" 2015 [(set_attr "type" "vecstore") 2016 (set_attr "length" "4")]) 2017 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)] 2023 "TARGET_SPE" 2024 "evstdhx %2,%0,%1" 2025 [(set_attr "type" "vecstore") 2026 (set_attr "length" "4")]) 2027 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)] 2033 "TARGET_SPE" 2034 "evstdw %2,%0,%1" 2035 [(set_attr "type" "vecstore") 2036 (set_attr "length" "4")]) 2037 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)] 2043 "TARGET_SPE" 2044 "evstdwx %2,%0,%1" 2045 [(set_attr "type" "vecstore") 2046 (set_attr "length" "4")]) 2047 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)] 2053 "TARGET_SPE" 2054 "evstwhe %2,%0,%1" 2055 [(set_attr "type" "vecstore") 2056 (set_attr "length" "4")]) 2057 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)] 2063 "TARGET_SPE" 2064 "evstwhex %2,%0,%1" 2065 [(set_attr "type" "vecstore") 2066 (set_attr "length" "4")]) 2067 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)] 2073 "TARGET_SPE" 2074 "evstwho %2,%0,%1" 2075 [(set_attr "type" "vecstore") 2076 (set_attr "length" "4")]) 2077 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)] 2083 "TARGET_SPE" 2084 "evstwhox %2,%0,%1" 2085 [(set_attr "type" "vecstore") 2086 (set_attr "length" "4")]) 2087 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)] 2093 "TARGET_SPE" 2094 "evstwwe %2,%0,%1" 2095 [(set_attr "type" "vecstore") 2096 (set_attr "length" "4")]) 2097 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)] 2103 "TARGET_SPE" 2104 "evstwwex %2,%0,%1" 2105 [(set_attr "type" "vecstore") 2106 (set_attr "length" "4")]) 2107 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)] 2113 "TARGET_SPE" 2114 "evstwwo %2,%0,%1" 2115 [(set_attr "type" "vecstore") 2116 (set_attr "length" "4")]) 2117 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)] 2123 "TARGET_SPE" 2124 "evstwwox %2,%0,%1" 2125 [(set_attr "type" "vecstore") 2126 (set_attr "length" "4")]) 2127 2128;; SPE vector clears 2129 2130(define_insn "*movv2si_const0" 2131 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2132 (match_operand:V2SI 1 "zero_constant" ""))] 2133 "TARGET_SPE" 2134 "evxor %0,%0,%0" 2135 [(set_attr "type" "vecsimple")]) 2136 2137(define_insn "*movv2sf_const0" 2138 [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 2139 (match_operand:V2SF 1 "zero_constant" ""))] 2140 "TARGET_SPE" 2141 "evxor %0,%0,%0" 2142 [(set_attr "type" "vecsimple")]) 2143 2144(define_insn "*movv4hi_const0" 2145 [(set (match_operand:V4HI 0 "gpc_reg_operand" "=r") 2146 (match_operand:V4HI 1 "zero_constant" ""))] 2147 "TARGET_SPE" 2148 "evxor %0,%0,%0" 2149 [(set_attr "type" "vecsimple")]) 2150 2151(define_insn "*movv1di_const0" 2152 [(set (match_operand:V1DI 0 "gpc_reg_operand" "=r") 2153 (match_operand:V1DI 1 "zero_constant" ""))] 2154 "TARGET_SPE" 2155 "evxor %0,%0,%0" 2156 [(set_attr "type" "vecsimple")]) 2157 2158;; Vector move instructions. 2159 2160(define_expand "movv2si" 2161 [(set (match_operand:V2SI 0 "nonimmediate_operand" "") 2162 (match_operand:V2SI 1 "any_operand" ""))] 2163 "TARGET_SPE" 2164 "{ rs6000_emit_move (operands[0], operands[1], V2SImode); DONE; }") 2165 2166 2167(define_insn "*movv2si_internal" 2168 [(set (match_operand:V2SI 0 "nonimmediate_operand" "=m,r,r") 2169 (match_operand:V2SI 1 "input_operand" "r,m,r"))] 2170 "TARGET_SPE" 2171 "@ 2172 evstdd%X0 %1,%y0 2173 evldd%X1 %0,%y1 2174 evor %0,%1,%1" 2175 [(set_attr "type" "vecload")]) 2176 2177(define_expand "movv1di" 2178 [(set (match_operand:V1DI 0 "nonimmediate_operand" "") 2179 (match_operand:V1DI 1 "any_operand" ""))] 2180 "TARGET_SPE" 2181 "{ rs6000_emit_move (operands[0], operands[1], V1DImode); DONE; }") 2182 2183(define_insn "*movv1di_internal" 2184 [(set (match_operand:V1DI 0 "nonimmediate_operand" "=m,r,r") 2185 (match_operand:V1DI 1 "input_operand" "r,m,r"))] 2186 "TARGET_SPE" 2187 "@ 2188 evstdd%X0 %1,%y0 2189 evldd%X1 %0,%y1 2190 evor %0,%1,%1" 2191 [(set_attr "type" "vecload")]) 2192 2193(define_expand "movv4hi" 2194 [(set (match_operand:V4HI 0 "nonimmediate_operand" "") 2195 (match_operand:V4HI 1 "any_operand" ""))] 2196 "TARGET_SPE" 2197 "{ rs6000_emit_move (operands[0], operands[1], V4HImode); DONE; }") 2198 2199(define_insn "*movv4hi_internal" 2200 [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r") 2201 (match_operand:V4HI 1 "input_operand" "r,m,r"))] 2202 "TARGET_SPE" 2203 "@ 2204 evstdd%X0 %1,%y0 2205 evldd%X1 %0,%y1 2206 evor %0,%1,%1" 2207 [(set_attr "type" "vecload")]) 2208 2209(define_expand "movv2sf" 2210 [(set (match_operand:V2SF 0 "nonimmediate_operand" "") 2211 (match_operand:V2SF 1 "any_operand" ""))] 2212 "TARGET_SPE" 2213 "{ rs6000_emit_move (operands[0], operands[1], V2SFmode); DONE; }") 2214 2215(define_insn "*movv2sf_internal" 2216 [(set (match_operand:V2SF 0 "nonimmediate_operand" "=m,r,r") 2217 (match_operand:V2SF 1 "input_operand" "r,m,r"))] 2218 "TARGET_SPE" 2219 "@ 2220 evstdd%X0 %1,%y0 2221 evldd%X1 %0,%y1 2222 evor %0,%1,%1" 2223 [(set_attr "type" "vecload")]) 2224 2225(define_insn "spe_evmwhssfaa" 2226 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2227 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2228 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 702)) 2229 (clobber (reg:SI SPEFSCR_REGNO)) 2230 (clobber (reg:V2SI SPE_ACC_REGNO))] 2231 "TARGET_SPE" 2232 "evmwhssfaa %0,%1,%2" 2233 [(set_attr "type" "veccomplex") 2234 (set_attr "length" "4")]) 2235 2236(define_insn "spe_evmwhssmaa" 2237 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2238 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2239 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 703)) 2240 (clobber (reg:SI SPEFSCR_REGNO)) 2241 (clobber (reg:V2SI SPE_ACC_REGNO))] 2242 "TARGET_SPE" 2243 "evmwhssmaa %0,%1,%2" 2244 [(set_attr "type" "veccomplex") 2245 (set_attr "length" "4")]) 2246 2247(define_insn "spe_evmwhsmfaa" 2248 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2249 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2250 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 704)) 2251 (clobber (reg:V2SI SPE_ACC_REGNO))] 2252 "TARGET_SPE" 2253 "evmwhsmfaa %0,%1,%2" 2254 [(set_attr "type" "veccomplex") 2255 (set_attr "length" "4")]) 2256 2257(define_insn "spe_evmwhsmiaa" 2258 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2259 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2260 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 705)) 2261 (clobber (reg:V2SI SPE_ACC_REGNO))] 2262 "TARGET_SPE" 2263 "evmwhsmiaa %0,%1,%2" 2264 [(set_attr "type" "veccomplex") 2265 (set_attr "length" "4")]) 2266 2267(define_insn "spe_evmwhusiaa" 2268 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2269 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2270 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 706)) 2271 (clobber (reg:SI SPEFSCR_REGNO)) 2272 (clobber (reg:V2SI SPE_ACC_REGNO))] 2273 "TARGET_SPE" 2274 "evmwhusiaa %0,%1,%2" 2275 [(set_attr "type" "veccomplex") 2276 (set_attr "length" "4")]) 2277 2278(define_insn "spe_evmwhumiaa" 2279 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2280 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2281 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 707)) 2282 (clobber (reg:V2SI SPE_ACC_REGNO))] 2283 "TARGET_SPE" 2284 "evmwhumiaa %0,%1,%2" 2285 [(set_attr "type" "veccomplex") 2286 (set_attr "length" "4")]) 2287 2288(define_insn "spe_evmwhssfan" 2289 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2290 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2291 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 708)) 2292 (clobber (reg:SI SPEFSCR_REGNO)) 2293 (clobber (reg:V2SI SPE_ACC_REGNO))] 2294 "TARGET_SPE" 2295 "evmwhssfan %0,%1,%2" 2296 [(set_attr "type" "veccomplex") 2297 (set_attr "length" "4")]) 2298 2299(define_insn "spe_evmwhssian" 2300 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2301 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2302 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 709)) 2303 (clobber (reg:SI SPEFSCR_REGNO)) 2304 (clobber (reg:V2SI SPE_ACC_REGNO))] 2305 "TARGET_SPE" 2306 "evmwhssian %0,%1,%2" 2307 [(set_attr "type" "veccomplex") 2308 (set_attr "length" "4")]) 2309 2310(define_insn "spe_evmwhsmfan" 2311 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2312 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2313 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 710)) 2314 (clobber (reg:V2SI SPE_ACC_REGNO))] 2315 "TARGET_SPE" 2316 "evmwhsmfan %0,%1,%2" 2317 [(set_attr "type" "veccomplex") 2318 (set_attr "length" "4")]) 2319 2320(define_insn "spe_evmwhsmian" 2321 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2322 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2323 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 711)) 2324 (clobber (reg:V2SI SPE_ACC_REGNO))] 2325 "TARGET_SPE" 2326 "evmwhsmian %0,%1,%2" 2327 [(set_attr "type" "veccomplex") 2328 (set_attr "length" "4")]) 2329 2330(define_insn "spe_evmwhumian" 2331 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2332 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2333 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 713)) 2334 (clobber (reg:V2SI SPE_ACC_REGNO))] 2335 "TARGET_SPE" 2336 "evmwhumian %0,%1,%2" 2337 [(set_attr "type" "veccomplex") 2338 (set_attr "length" "4")]) 2339 2340(define_insn "spe_evmwhgssfaa" 2341 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2342 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2343 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 714)) 2344 (clobber (reg:SI SPEFSCR_REGNO)) 2345 (clobber (reg:V2SI SPE_ACC_REGNO))] 2346 "TARGET_SPE" 2347 "evmwhgssfaa %0,%1,%2" 2348 [(set_attr "type" "veccomplex") 2349 (set_attr "length" "4")]) 2350 2351(define_insn "spe_evmwhgsmfaa" 2352 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2353 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2354 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 715)) 2355 (clobber (reg:V2SI SPE_ACC_REGNO))] 2356 "TARGET_SPE" 2357 "evmwhgsmfaa %0,%1,%2" 2358 [(set_attr "type" "veccomplex") 2359 (set_attr "length" "4")]) 2360 2361(define_insn "spe_evmwhgsmiaa" 2362 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2363 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2364 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 716)) 2365 (clobber (reg:V2SI SPE_ACC_REGNO))] 2366 "TARGET_SPE" 2367 "evmwhgsmiaa %0,%1,%2" 2368 [(set_attr "type" "veccomplex") 2369 (set_attr "length" "4")]) 2370 2371(define_insn "spe_evmwhgumiaa" 2372 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2373 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2374 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 717)) 2375 (clobber (reg:V2SI SPE_ACC_REGNO))] 2376 "TARGET_SPE" 2377 "evmwhgumiaa %0,%1,%2" 2378 [(set_attr "type" "veccomplex") 2379 (set_attr "length" "4")]) 2380 2381(define_insn "spe_evmwhgssfan" 2382 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2383 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2384 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 718)) 2385 (clobber (reg:SI SPEFSCR_REGNO)) 2386 (clobber (reg:V2SI SPE_ACC_REGNO))] 2387 "TARGET_SPE" 2388 "evmwhgssfan %0,%1,%2" 2389 [(set_attr "type" "veccomplex") 2390 (set_attr "length" "4")]) 2391 2392(define_insn "spe_evmwhgsmfan" 2393 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2394 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2395 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 719)) 2396 (clobber (reg:V2SI SPE_ACC_REGNO))] 2397 "TARGET_SPE" 2398 "evmwhgsmfan %0,%1,%2" 2399 [(set_attr "type" "veccomplex") 2400 (set_attr "length" "4")]) 2401 2402(define_insn "spe_evmwhgsmian" 2403 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2404 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2405 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 720)) 2406 (clobber (reg:V2SI SPE_ACC_REGNO))] 2407 "TARGET_SPE" 2408 "evmwhgsmian %0,%1,%2" 2409 [(set_attr "type" "veccomplex") 2410 (set_attr "length" "4")]) 2411 2412(define_insn "spe_evmwhgumian" 2413 [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2414 (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2415 (match_operand:V2SI 2 "gpc_reg_operand" "r")] 721)) 2416 (clobber (reg:V2SI SPE_ACC_REGNO))] 2417 "TARGET_SPE" 2418 "evmwhgumian %0,%1,%2" 2419 [(set_attr "type" "veccomplex") 2420 (set_attr "length" "4")]) 2421 2422(define_insn "spe_mtspefscr" 2423 [(set (reg:SI SPEFSCR_REGNO) 2424 (unspec_volatile:SI [(match_operand:SI 0 "register_operand" "r")] 2425 722))] 2426 "TARGET_SPE" 2427 "mtspefscr %0" 2428 [(set_attr "type" "vecsimple")]) 2429 2430(define_insn "spe_mfspefscr" 2431 [(set (match_operand:SI 0 "register_operand" "=r") 2432 (unspec_volatile:SI [(reg:SI SPEFSCR_REGNO)] 723))] 2433 "TARGET_SPE" 2434 "mfspefscr %0" 2435 [(set_attr "type" "vecsimple")]) 2436 2437;; MPC8540 single-precision FP instructions on GPRs. 2438;; We have 2 variants for each. One for IEEE compliant math and one 2439;; for non IEEE compliant math. 2440 2441(define_insn "cmpsfeq_gpr" 2442 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2443 (eq:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2444 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2445 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2446 "efscmpeq %0,%1,%2" 2447 [(set_attr "type" "fpcompare")]) 2448 2449(define_insn "tstsfeq_gpr" 2450 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2451 (eq:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2452 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2453 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2454 "efststeq %0,%1,%2" 2455 [(set_attr "type" "fpcompare")]) 2456 2457(define_insn "cmpsfgt_gpr" 2458 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2459 (gt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2460 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2461 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2462 "efscmpgt %0,%1,%2" 2463 [(set_attr "type" "fpcompare")]) 2464 2465(define_insn "tstsfgt_gpr" 2466 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2467 (gt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2468 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2469 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2470 "efststgt %0,%1,%2" 2471 [(set_attr "type" "fpcompare")]) 2472 2473(define_insn "cmpsflt_gpr" 2474 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2475 (lt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2476 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2477 "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2478 "efscmplt %0,%1,%2" 2479 [(set_attr "type" "fpcompare")]) 2480 2481(define_insn "tstsflt_gpr" 2482 [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2483 (lt:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2484 (match_operand:SF 2 "gpc_reg_operand" "r")))] 2485 "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2486 "efststlt %0,%1,%2" 2487 [(set_attr "type" "fpcompare")]) 2488 2489