spe.md revision 132718
1117395Skan;; e500 SPE description 2132718Skan;; Copyright (C) 2002, 2003 Free Software Foundation, Inc. 3117395Skan;; Contributed by Aldy Hernandez (aldy@quesejoda.com) 4117395Skan 5132718Skan;; This file is part of GCC. 6117395Skan 7132718Skan;; GCC is free software; you can redistribute it and/or modify it 8132718Skan;; under the terms of the GNU General Public License as published 9132718Skan;; by the Free Software Foundation; either version 2, or (at your 10132718Skan;; option) any later version. 11117395Skan 12132718Skan;; GCC is distributed in the hope that it will be useful, but WITHOUT 13132718Skan;; ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 14132718Skan;; or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 15132718Skan;; License for more details. 16117395Skan 17117395Skan;; You should have received a copy of the GNU General Public License 18132718Skan;; along with GCC; see the file COPYING. If not, write to the 19132718Skan;; Free Software Foundation, 59 Temple Place - Suite 330, Boston, 20132718Skan;; MA 02111-1307, USA. 21117395Skan 22117395Skan(define_constants 23117395Skan [(SPE_ACC_REGNO 111) 24117395Skan (SPEFSCR_REGNO 112)]) 25117395Skan 26117395Skan(define_insn "*negsf2_gpr" 27117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 28117395Skan (neg:SF (match_operand:SF 1 "gpc_reg_operand" "r")))] 29117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 30117395Skan "efsneg %0,%1" 31132718Skan [(set_attr "type" "fpsimple")]) 32117395Skan 33117395Skan(define_insn "*abssf2_gpr" 34117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 35117395Skan (abs:SF (match_operand:SF 1 "gpc_reg_operand" "r")))] 36117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 37117395Skan "efsabs %0,%1" 38132718Skan [(set_attr "type" "fpsimple")]) 39117395Skan 40132718Skan(define_insn "*nabssf2_gpr" 41132718Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 42132718Skan (neg:SF (abs:SF (match_operand:SF 1 "gpc_reg_operand" "r"))))] 43132718Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 44132718Skan "efsnabs %0,%1" 45132718Skan [(set_attr "type" "fpsimple")]) 46132718Skan 47117395Skan(define_insn "*addsf3_gpr" 48117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 49117395Skan (plus:SF (match_operand:SF 1 "gpc_reg_operand" "%r") 50117395Skan (match_operand:SF 2 "gpc_reg_operand" "r")))] 51117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 52117395Skan "efsadd %0,%1,%2" 53117395Skan [(set_attr "type" "fp")]) 54117395Skan 55117395Skan(define_insn "*subsf3_gpr" 56117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 57117395Skan (minus:SF (match_operand:SF 1 "gpc_reg_operand" "r") 58117395Skan (match_operand:SF 2 "gpc_reg_operand" "r")))] 59117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 60117395Skan "efssub %0,%1,%2" 61117395Skan [(set_attr "type" "fp")]) 62117395Skan 63117395Skan(define_insn "*mulsf3_gpr" 64117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 65117395Skan (mult:SF (match_operand:SF 1 "gpc_reg_operand" "%r") 66117395Skan (match_operand:SF 2 "gpc_reg_operand" "r")))] 67117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 68117395Skan "efsmul %0,%1,%2" 69117395Skan [(set_attr "type" "fp")]) 70117395Skan 71117395Skan(define_insn "*divsf3_gpr" 72117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 73117395Skan (div:SF (match_operand:SF 1 "gpc_reg_operand" "r") 74117395Skan (match_operand:SF 2 "gpc_reg_operand" "r")))] 75117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 76117395Skan "efsdiv %0,%1,%2" 77132718Skan [(set_attr "type" "vecfdiv")]) 78117395Skan 79132718Skan(define_insn "spe_fixuns_truncsfsi2" 80117395Skan [(set (match_operand:SI 0 "gpc_reg_operand" "=r") 81132718Skan (unsigned_fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))] 82117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 83117395Skan "efsctuiz %0,%1" 84117395Skan [(set_attr "type" "fp")]) 85117395Skan 86117395Skan(define_insn "spe_fix_truncsfsi2" 87117395Skan [(set (match_operand:SI 0 "gpc_reg_operand" "=r") 88117395Skan (fix:SI (match_operand:SF 1 "gpc_reg_operand" "r")))] 89117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 90132718Skan "efsctsiz %0,%1" 91117395Skan [(set_attr "type" "fp")]) 92117395Skan 93117395Skan(define_insn "spe_floatunssisf2" 94117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 95117395Skan (unsigned_float:SF (match_operand:SI 1 "gpc_reg_operand" "r")))] 96117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 97117395Skan "efscfui %0,%1" 98117395Skan [(set_attr "type" "fp")]) 99117395Skan 100117395Skan(define_insn "spe_floatsisf2" 101117395Skan [(set (match_operand:SF 0 "gpc_reg_operand" "=r") 102117395Skan (float:SF (match_operand:SI 1 "gpc_reg_operand" "r")))] 103117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS" 104117395Skan "efscfsi %0,%1" 105117395Skan [(set_attr "type" "fp")]) 106117395Skan 107117395Skan 108117395Skan;; SPE SIMD instructions 109117395Skan 110117395Skan(define_insn "spe_evabs" 111117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 112117395Skan (abs:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))] 113117395Skan "TARGET_SPE" 114117395Skan "evabs %0,%1" 115117395Skan [(set_attr "type" "vecsimple") 116117395Skan (set_attr "length" "4")]) 117117395Skan 118117395Skan(define_insn "spe_evandc" 119117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 120117395Skan (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 121117395Skan (not:V2SI (match_operand:V2SI 2 "gpc_reg_operand" "r"))))] 122117395Skan "TARGET_SPE" 123117395Skan "evandc %0,%1,%2" 124117395Skan [(set_attr "type" "vecsimple") 125117395Skan (set_attr "length" "4")]) 126117395Skan 127117395Skan(define_insn "spe_evand" 128117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 129117395Skan (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 130117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")))] 131117395Skan "TARGET_SPE" 132117395Skan "evand %0,%1,%2" 133117395Skan [(set_attr "type" "vecsimple") 134117395Skan (set_attr "length" "4")]) 135117395Skan 136117395Skan;; Vector compare instructions 137117395Skan 138117395Skan(define_insn "spe_evcmpeq" 139117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 140117395Skan (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r") 141117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 500))] 142117395Skan "TARGET_SPE" 143117395Skan "evcmpeq %0,%1,%2" 144117395Skan [(set_attr "type" "veccmp") 145117395Skan (set_attr "length" "4")]) 146117395Skan 147117395Skan(define_insn "spe_evcmpgts" 148117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 149117395Skan (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r") 150117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 501))] 151117395Skan "TARGET_SPE" 152117395Skan "evcmpgts %0,%1,%2" 153117395Skan [(set_attr "type" "veccmp") 154117395Skan (set_attr "length" "4")]) 155117395Skan 156117395Skan(define_insn "spe_evcmpgtu" 157117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 158117395Skan (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r") 159117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 502))] 160117395Skan "TARGET_SPE" 161117395Skan "evcmpgtu %0,%1,%2" 162117395Skan [(set_attr "type" "veccmp") 163117395Skan (set_attr "length" "4")]) 164117395Skan 165117395Skan(define_insn "spe_evcmplts" 166117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 167117395Skan (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r") 168117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 503))] 169117395Skan "TARGET_SPE" 170117395Skan "evcmplts %0,%1,%2" 171117395Skan [(set_attr "type" "veccmp") 172117395Skan (set_attr "length" "4")]) 173117395Skan 174117395Skan(define_insn "spe_evcmpltu" 175117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 176117395Skan (unspec:CC [(match_operand:V2SI 1 "gpc_reg_operand" "r") 177117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 504))] 178117395Skan "TARGET_SPE" 179117395Skan "evcmpltu %0,%1,%2" 180117395Skan [(set_attr "type" "veccmp") 181117395Skan (set_attr "length" "4")]) 182117395Skan 183117395Skan;; Floating point vector compare instructions 184117395Skan 185117395Skan(define_insn "spe_evfscmpeq" 186117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 187117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 188117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 538)) 189117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 190117395Skan "TARGET_SPE" 191117395Skan "evfscmpeq %0,%1,%2" 192117395Skan [(set_attr "type" "veccmp") 193117395Skan (set_attr "length" "4")]) 194117395Skan 195117395Skan(define_insn "spe_evfscmpgt" 196117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 197117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 198117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 539)) 199117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 200117395Skan "TARGET_SPE" 201117395Skan "evfscmpgt %0,%1,%2" 202117395Skan [(set_attr "type" "veccmp") 203117395Skan (set_attr "length" "4")]) 204117395Skan 205117395Skan(define_insn "spe_evfscmplt" 206117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 207117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 208117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 540)) 209117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 210117395Skan "TARGET_SPE" 211117395Skan "evfscmplt %0,%1,%2" 212117395Skan [(set_attr "type" "veccmp") 213117395Skan (set_attr "length" "4")]) 214117395Skan 215117395Skan(define_insn "spe_evfststeq" 216117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 217117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 218117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 541))] 219117395Skan "TARGET_SPE" 220117395Skan "evfststeq %0,%1,%2" 221117395Skan [(set_attr "type" "veccmp") 222117395Skan (set_attr "length" "4")]) 223117395Skan 224117395Skan(define_insn "spe_evfststgt" 225117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 226117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 227117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 542))] 228117395Skan "TARGET_SPE" 229117395Skan "evfststgt %0,%1,%2" 230117395Skan [(set_attr "type" "veccmp") 231117395Skan (set_attr "length" "4")]) 232117395Skan 233117395Skan(define_insn "spe_evfststlt" 234117395Skan [(set (match_operand:CC 0 "cc_reg_operand" "=y") 235117395Skan (unspec:CC [(match_operand:V2SF 1 "gpc_reg_operand" "r") 236117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r")] 543))] 237117395Skan "TARGET_SPE" 238117395Skan "evfststlt %0,%1,%2" 239117395Skan [(set_attr "type" "veccmp") 240117395Skan (set_attr "length" "4")]) 241117395Skan 242117395Skan;; End of vector compare instructions 243117395Skan 244117395Skan(define_insn "spe_evcntlsw" 245117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 246117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 505))] 247117395Skan "TARGET_SPE" 248117395Skan "evcntlsw %0,%1" 249117395Skan [(set_attr "type" "vecsimple") 250117395Skan (set_attr "length" "4")]) 251117395Skan 252117395Skan(define_insn "spe_evcntlzw" 253117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 254117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 506))] 255117395Skan "TARGET_SPE" 256117395Skan "evcntlzw %0,%1" 257117395Skan [(set_attr "type" "vecsimple") 258117395Skan (set_attr "length" "4")]) 259117395Skan 260117395Skan(define_insn "spe_eveqv" 261117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 262117395Skan (not:V2SI (xor:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 263117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r"))))] 264117395Skan "TARGET_SPE" 265117395Skan "eveqv %0,%1,%2" 266117395Skan [(set_attr "type" "vecsimple") 267117395Skan (set_attr "length" "4")]) 268117395Skan 269117395Skan(define_insn "spe_evextsb" 270117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 271117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 507))] 272117395Skan "TARGET_SPE" 273117395Skan "evextsb %0,%1" 274117395Skan [(set_attr "type" "vecsimple") 275117395Skan (set_attr "length" "4")]) 276117395Skan 277117395Skan(define_insn "spe_evextsh" 278117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 279117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 508))] 280117395Skan "TARGET_SPE" 281117395Skan "evextsh %0,%1" 282117395Skan [(set_attr "type" "vecsimple") 283117395Skan (set_attr "length" "4")]) 284117395Skan 285117395Skan(define_insn "spe_evlhhesplat" 286132718Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 287132718Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 288117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 289117395Skan (unspec [(const_int 0)] 509)] 290132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 291132718Skan "evlhhesplat %0,%2*2(%1)" 292117395Skan [(set_attr "type" "vecload") 293117395Skan (set_attr "length" "4")]) 294117395Skan 295117395Skan(define_insn "spe_evlhhesplatx" 296117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 297117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 298117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 299117395Skan (unspec [(const_int 0)] 510)] 300117395Skan "TARGET_SPE" 301117395Skan "evlhhesplatx %0,%1,%2" 302117395Skan [(set_attr "type" "vecload") 303117395Skan (set_attr "length" "4")]) 304117395Skan 305117395Skan(define_insn "spe_evlhhossplat" 306117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 307117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 308117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 309117395Skan (unspec [(const_int 0)] 511)] 310132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 311132718Skan "evlhhossplat %0,%2*2(%1)" 312117395Skan [(set_attr "type" "vecload") 313117395Skan (set_attr "length" "4")]) 314117395Skan 315117395Skan(define_insn "spe_evlhhossplatx" 316117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 317117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 318117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 319117395Skan (unspec [(const_int 0)] 512)] 320117395Skan "TARGET_SPE" 321117395Skan "evlhhossplatx %0,%1,%2" 322117395Skan [(set_attr "type" "vecload") 323117395Skan (set_attr "length" "4")]) 324117395Skan 325117395Skan(define_insn "spe_evlhhousplat" 326117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 327117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 328117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 329117395Skan (unspec [(const_int 0)] 513)] 330132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 331132718Skan "evlhhousplat %0,%2*2(%1)" 332117395Skan [(set_attr "type" "vecload") 333117395Skan (set_attr "length" "4")]) 334117395Skan 335117395Skan(define_insn "spe_evlhhousplatx" 336117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 337117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 338117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 339117395Skan (unspec [(const_int 0)] 514)] 340117395Skan "TARGET_SPE" 341117395Skan "evlhhousplatx %0,%1,%2" 342117395Skan [(set_attr "type" "vecload") 343117395Skan (set_attr "length" "4")]) 344117395Skan 345117395Skan(define_insn "spe_evlwhsplat" 346117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 347117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 348117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 349117395Skan (unspec [(const_int 0)] 515)] 350132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 351132718Skan "evlwhsplat %0,%2*4(%1)" 352117395Skan [(set_attr "type" "vecload") 353117395Skan (set_attr "length" "4")]) 354117395Skan 355117395Skan(define_insn "spe_evlwhsplatx" 356117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 357117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 358117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 359117395Skan (unspec [(const_int 0)] 516)] 360117395Skan "TARGET_SPE" 361117395Skan "evlwhsplatx %0,%1,%2" 362117395Skan [(set_attr "type" "vecload") 363117395Skan (set_attr "length" "4")]) 364117395Skan 365117395Skan(define_insn "spe_evlwwsplat" 366117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 367117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 368117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 369117395Skan (unspec [(const_int 0)] 517)] 370132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 371132718Skan "evlwwsplat %0,%2*4(%1)" 372117395Skan [(set_attr "type" "vecload") 373117395Skan (set_attr "length" "4")]) 374117395Skan 375117395Skan(define_insn "spe_evlwwsplatx" 376117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 377117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 378117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 379117395Skan (unspec [(const_int 0)] 518)] 380117395Skan "TARGET_SPE" 381117395Skan "evlwwsplatx %0,%1,%2" 382117395Skan [(set_attr "type" "vecload") 383117395Skan (set_attr "length" "4")]) 384117395Skan 385117395Skan(define_insn "spe_evmergehi" 386117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 387117395Skan (vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 388117395Skan (vec_select:V2SI 389117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 390117395Skan (parallel [(const_int 1) 391117395Skan (const_int 0)])) 392117395Skan (const_int 2)))] 393117395Skan "TARGET_SPE" 394117395Skan "evmergehi %0,%1,%2" 395117395Skan [(set_attr "type" "vecsimple") 396117395Skan (set_attr "length" "4")]) 397117395Skan 398117395Skan(define_insn "spe_evmergehilo" 399117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 400117395Skan (vec_merge:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 401117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 402117395Skan (const_int 2)))] 403117395Skan "TARGET_SPE" 404117395Skan "evmergehilo %0,%1,%2" 405117395Skan [(set_attr "type" "vecsimple") 406117395Skan (set_attr "length" "4")]) 407117395Skan 408117395Skan(define_insn "spe_evmergelo" 409117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 410117395Skan (vec_merge:V2SI (vec_select:V2SI 411117395Skan (match_operand:V2SI 1 "gpc_reg_operand" "r") 412117395Skan (parallel [(const_int 1) 413117395Skan (const_int 0)])) 414117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 415117395Skan (const_int 2)))] 416117395Skan "TARGET_SPE" 417117395Skan "evmergelo %0,%1,%2" 418117395Skan [(set_attr "type" "vecsimple") 419117395Skan (set_attr "length" "4")]) 420117395Skan 421117395Skan(define_insn "spe_evmergelohi" 422117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 423117395Skan (vec_merge:V2SI (vec_select:V2SI 424117395Skan (match_operand:V2SI 1 "gpc_reg_operand" "r") 425117395Skan (parallel [(const_int 1) 426117395Skan (const_int 0)])) 427117395Skan (vec_select:V2SI 428117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 429117395Skan (parallel [(const_int 1) 430117395Skan (const_int 0)])) 431117395Skan (const_int 2)))] 432117395Skan "TARGET_SPE" 433117395Skan "evmergelohi %0,%1,%2" 434117395Skan [(set_attr "type" "vecsimple") 435117395Skan (set_attr "length" "4")]) 436117395Skan 437117395Skan(define_insn "spe_evnand" 438117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 439117395Skan (not:V2SI (and:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 440117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r"))))] 441117395Skan "TARGET_SPE" 442117395Skan "evnand %0,%1,%2" 443117395Skan [(set_attr "type" "vecsimple") 444117395Skan (set_attr "length" "4")]) 445117395Skan 446132718Skan(define_insn "negv2si2" 447117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 448117395Skan (neg:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r")))] 449117395Skan "TARGET_SPE" 450117395Skan "evneg %0,%1" 451117395Skan [(set_attr "type" "vecsimple") 452117395Skan (set_attr "length" "4")]) 453117395Skan 454117395Skan(define_insn "spe_evnor" 455117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 456117395Skan (not:V2SI (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 457117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r"))))] 458117395Skan "TARGET_SPE" 459117395Skan "evnor %0,%1,%2" 460117395Skan [(set_attr "type" "vecsimple") 461117395Skan (set_attr "length" "4")]) 462117395Skan 463117395Skan(define_insn "spe_evorc" 464117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 465117395Skan (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 466117395Skan (not:V2SI (match_operand:V2SI 2 "gpc_reg_operand" "r"))))] 467117395Skan "TARGET_SPE" 468117395Skan "evorc %0,%1,%2" 469117395Skan [(set_attr "type" "vecsimple") 470117395Skan (set_attr "length" "4")]) 471117395Skan 472117395Skan(define_insn "spe_evor" 473117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 474117395Skan (ior:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 475117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")))] 476117395Skan "TARGET_SPE" 477117395Skan "evor %0,%1,%2" 478117395Skan [(set_attr "type" "vecsimple") 479117395Skan (set_attr "length" "4")]) 480117395Skan 481117395Skan(define_insn "spe_evrlwi" 482117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 483117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 484117395Skan (match_operand:QI 2 "immediate_operand" "i")] 519))] 485117395Skan "TARGET_SPE" 486117395Skan "evrlwi %0,%1,%2" 487117395Skan [(set_attr "type" "vecsimple") 488117395Skan (set_attr "length" "4")]) 489117395Skan 490117395Skan(define_insn "spe_evrlw" 491117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 492117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 493117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 520))] 494117395Skan "TARGET_SPE" 495117395Skan "evrlw %0,%1,%2" 496117395Skan [(set_attr "type" "veccomplex") 497117395Skan (set_attr "length" "4")]) 498117395Skan 499117395Skan(define_insn "spe_evrndw" 500117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 501117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 521))] 502117395Skan "TARGET_SPE" 503117395Skan "evrndw %0,%1" 504117395Skan [(set_attr "type" "vecsimple") 505117395Skan (set_attr "length" "4")]) 506117395Skan 507117395Skan(define_insn "spe_evsel" 508117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 509117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 510117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 511117395Skan (match_operand:CC 3 "cc_reg_operand" "y")] 522))] 512117395Skan "TARGET_SPE" 513117395Skan "evsel %0,%1,%2,%3" 514117395Skan [(set_attr "type" "veccmp") 515117395Skan (set_attr "length" "4")]) 516117395Skan 517117395Skan(define_insn "spe_evsel_fs" 518117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 519117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r") 520117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r") 521117395Skan (match_operand:CC 3 "cc_reg_operand" "y")] 725))] 522117395Skan "TARGET_SPE" 523117395Skan "evsel %0,%1,%2,%3" 524117395Skan [(set_attr "type" "veccmp") 525117395Skan (set_attr "length" "4")]) 526117395Skan 527117395Skan(define_insn "spe_evslwi" 528117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 529117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 530117395Skan (match_operand:QI 2 "immediate_operand" "i")] 531117395Skan 523))] 532117395Skan "TARGET_SPE" 533117395Skan "evslwi %0,%1,%2" 534117395Skan [(set_attr "type" "vecsimple") 535117395Skan (set_attr "length" "4")]) 536117395Skan 537117395Skan(define_insn "spe_evslw" 538117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 539117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 540117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 524))] 541117395Skan "TARGET_SPE" 542117395Skan "evslw %0,%1,%2" 543117395Skan [(set_attr "type" "vecsimple") 544117395Skan (set_attr "length" "4")]) 545117395Skan 546117395Skan(define_insn "spe_evsrwis" 547117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 548117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 549117395Skan (match_operand:QI 2 "immediate_operand" "i")] 550117395Skan 525))] 551117395Skan "TARGET_SPE" 552117395Skan "evsrwis %0,%1,%2" 553117395Skan [(set_attr "type" "vecsimple") 554117395Skan (set_attr "length" "4")]) 555117395Skan 556117395Skan(define_insn "spe_evsrwiu" 557117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 558117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 559117395Skan (match_operand:QI 2 "immediate_operand" "i")] 560117395Skan 526))] 561117395Skan "TARGET_SPE" 562117395Skan "evsrwiu %0,%1,%2" 563117395Skan [(set_attr "type" "vecsimple") 564117395Skan (set_attr "length" "4")]) 565117395Skan 566117395Skan(define_insn "spe_evsrws" 567117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 568117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 569117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 527))] 570117395Skan "TARGET_SPE" 571117395Skan "evsrws %0,%1,%2" 572117395Skan [(set_attr "type" "vecsimple") 573117395Skan (set_attr "length" "4")]) 574117395Skan 575117395Skan(define_insn "spe_evsrwu" 576117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 577117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 578117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 528))] 579117395Skan "TARGET_SPE" 580117395Skan "evsrwu %0,%1,%2" 581117395Skan [(set_attr "type" "vecsimple") 582117395Skan (set_attr "length" "4")]) 583117395Skan 584132718Skan;; vector xors 585132718Skan 586132718Skan(define_insn "xorv2si3" 587117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 588117395Skan (xor:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 589117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")))] 590117395Skan "TARGET_SPE" 591117395Skan "evxor %0,%1,%2" 592117395Skan [(set_attr "type" "vecsimple") 593117395Skan (set_attr "length" "4")]) 594117395Skan 595132718Skan(define_insn "xorv4hi3" 596132718Skan [(set (match_operand:V4HI 0 "gpc_reg_operand" "=r") 597132718Skan (xor:V4HI (match_operand:V4HI 1 "gpc_reg_operand" "r") 598132718Skan (match_operand:V4HI 2 "gpc_reg_operand" "r")))] 599132718Skan "TARGET_SPE" 600132718Skan "evxor %0,%1,%2" 601132718Skan [(set_attr "type" "vecsimple") 602132718Skan (set_attr "length" "4")]) 603132718Skan 604132718Skan(define_insn "xorv1di3" 605132718Skan [(set (match_operand:V1DI 0 "gpc_reg_operand" "=r") 606132718Skan (xor:V1DI (match_operand:V1DI 1 "gpc_reg_operand" "r") 607132718Skan (match_operand:V1DI 2 "gpc_reg_operand" "r")))] 608132718Skan "TARGET_SPE" 609132718Skan "evxor %0,%1,%2" 610132718Skan [(set_attr "type" "vecsimple") 611132718Skan (set_attr "length" "4")]) 612132718Skan 613132718Skan;; end of vector xors 614132718Skan 615117395Skan(define_insn "spe_evfsabs" 616117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 617117395Skan (abs:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))] 618117395Skan "TARGET_SPE" 619117395Skan "evfsabs %0,%1" 620132718Skan [(set_attr "type" "vecsimple") 621117395Skan (set_attr "length" "4")]) 622117395Skan 623117395Skan(define_insn "spe_evfsadd" 624117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 625117395Skan (plus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r") 626117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r"))) 627117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 628117395Skan "TARGET_SPE" 629117395Skan "evfsadd %0,%1,%2" 630117395Skan [(set_attr "type" "vecfloat") 631117395Skan (set_attr "length" "4")]) 632117395Skan 633117395Skan(define_insn "spe_evfscfsf" 634117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 635117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 529))] 636117395Skan "TARGET_SPE" 637117395Skan "evfscfsf %0,%1" 638117395Skan [(set_attr "type" "vecfloat") 639117395Skan (set_attr "length" "4")]) 640117395Skan 641117395Skan(define_insn "spe_evfscfsi" 642132718Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 643132718Skan (float:V2SF (match_operand:V2SI 1 "gpc_reg_operand" "r")))] 644117395Skan "TARGET_SPE" 645117395Skan "evfscfsi %0,%1" 646117395Skan [(set_attr "type" "vecfloat") 647117395Skan (set_attr "length" "4")]) 648117395Skan 649117395Skan(define_insn "spe_evfscfuf" 650117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 651117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 530))] 652117395Skan "TARGET_SPE" 653117395Skan "evfscfuf %0,%1" 654117395Skan [(set_attr "type" "vecfloat") 655117395Skan (set_attr "length" "4")]) 656117395Skan 657117395Skan(define_insn "spe_evfscfui" 658117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 659117395Skan (unspec:V2SF [(match_operand:V2SI 1 "gpc_reg_operand" "r")] 701))] 660117395Skan "TARGET_SPE" 661117395Skan "evfscfui %0,%1" 662117395Skan [(set_attr "type" "vecfloat") 663117395Skan (set_attr "length" "4")]) 664117395Skan 665117395Skan(define_insn "spe_evfsctsf" 666117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 667117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 531))] 668117395Skan "TARGET_SPE" 669117395Skan "evfsctsf %0,%1" 670117395Skan [(set_attr "type" "vecfloat") 671117395Skan (set_attr "length" "4")]) 672117395Skan 673117395Skan(define_insn "spe_evfsctsi" 674117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 675117395Skan (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 532))] 676117395Skan "TARGET_SPE" 677117395Skan "evfsctsi %0,%1" 678117395Skan [(set_attr "type" "vecfloat") 679117395Skan (set_attr "length" "4")]) 680117395Skan 681117395Skan(define_insn "spe_evfsctsiz" 682117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 683117395Skan (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 533))] 684117395Skan "TARGET_SPE" 685117395Skan "evfsctsiz %0,%1" 686117395Skan [(set_attr "type" "vecfloat") 687117395Skan (set_attr "length" "4")]) 688117395Skan 689117395Skan(define_insn "spe_evfsctuf" 690117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 691117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 534))] 692117395Skan "TARGET_SPE" 693117395Skan "evfsctuf %0,%1" 694117395Skan [(set_attr "type" "vecfloat") 695117395Skan (set_attr "length" "4")]) 696117395Skan 697117395Skan(define_insn "spe_evfsctui" 698117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 699117395Skan (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 535))] 700117395Skan "TARGET_SPE" 701117395Skan "evfsctui %0,%1" 702117395Skan [(set_attr "type" "vecfloat") 703117395Skan (set_attr "length" "4")]) 704117395Skan 705117395Skan(define_insn "spe_evfsctuiz" 706117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 707117395Skan (unspec:V2SI [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 536))] 708117395Skan "TARGET_SPE" 709117395Skan "evfsctuiz %0,%1" 710117395Skan [(set_attr "type" "vecfloat") 711117395Skan (set_attr "length" "4")]) 712117395Skan 713117395Skan(define_insn "spe_evfsdiv" 714117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 715117395Skan (div:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r") 716117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r"))) 717117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 718117395Skan "TARGET_SPE" 719117395Skan "evfsdiv %0,%1,%2" 720132718Skan [(set_attr "type" "vecfdiv") 721117395Skan (set_attr "length" "4")]) 722117395Skan 723117395Skan(define_insn "spe_evfsmul" 724117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 725117395Skan (mult:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r") 726117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r"))) 727117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 728117395Skan "TARGET_SPE" 729117395Skan "evfsmul %0,%1,%2" 730117395Skan [(set_attr "type" "vecfloat") 731117395Skan (set_attr "length" "4")]) 732117395Skan 733117395Skan(define_insn "spe_evfsnabs" 734117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 735117395Skan (unspec:V2SF [(match_operand:V2SF 1 "gpc_reg_operand" "r")] 537))] 736117395Skan "TARGET_SPE" 737117395Skan "evfsnabs %0,%1" 738132718Skan [(set_attr "type" "vecsimple") 739117395Skan (set_attr "length" "4")]) 740117395Skan 741117395Skan(define_insn "spe_evfsneg" 742117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 743117395Skan (neg:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r")))] 744117395Skan "TARGET_SPE" 745117395Skan "evfsneg %0,%1" 746132718Skan [(set_attr "type" "vecsimple") 747117395Skan (set_attr "length" "4")]) 748117395Skan 749117395Skan(define_insn "spe_evfssub" 750117395Skan [(set (match_operand:V2SF 0 "gpc_reg_operand" "=r") 751117395Skan (minus:V2SF (match_operand:V2SF 1 "gpc_reg_operand" "r") 752117395Skan (match_operand:V2SF 2 "gpc_reg_operand" "r"))) 753117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 754117395Skan "TARGET_SPE" 755117395Skan "evfssub %0,%1,%2" 756117395Skan [(set_attr "type" "vecfloat") 757117395Skan (set_attr "length" "4")]) 758117395Skan 759117395Skan;; SPE SIMD load instructions. 760117395Skan 761132718Skan;; Only the hardware engineer who designed the SPE understands the 762117395Skan;; plethora of load and store instructions ;-). We have no way of 763117395Skan;; differentiating between them with RTL so use an unspec of const_int 0 764117395Skan;; to avoid identical RTL. 765117395Skan 766117395Skan(define_insn "spe_evldd" 767117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 768117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 769117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 770117395Skan (unspec [(const_int 0)] 544)] 771117395Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 772132718Skan "evldd %0,%2*8(%1)" 773117395Skan [(set_attr "type" "vecload") 774117395Skan (set_attr "length" "4")]) 775117395Skan 776117395Skan(define_insn "spe_evlddx" 777117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 778117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 779117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 780117395Skan (unspec [(const_int 0)] 545)] 781117395Skan "TARGET_SPE" 782117395Skan "evlddx %0,%1,%2" 783117395Skan [(set_attr "type" "vecload") 784117395Skan (set_attr "length" "4")]) 785117395Skan 786117395Skan(define_insn "spe_evldh" 787117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 788117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 789117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 790117395Skan (unspec [(const_int 0)] 546)] 791117395Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 792132718Skan "evldh %0,%2*8(%1)" 793117395Skan [(set_attr "type" "vecload") 794117395Skan (set_attr "length" "4")]) 795117395Skan 796117395Skan(define_insn "spe_evldhx" 797117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 798117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 799117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 800117395Skan (unspec [(const_int 0)] 547)] 801117395Skan "TARGET_SPE" 802117395Skan "evldhx %0,%1,%2" 803117395Skan [(set_attr "type" "vecload") 804117395Skan (set_attr "length" "4")]) 805117395Skan 806117395Skan(define_insn "spe_evldw" 807117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 808117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 809117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 810117395Skan (unspec [(const_int 0)] 548)] 811132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 812132718Skan "evldw %0,%2*8(%1)" 813117395Skan [(set_attr "type" "vecload") 814117395Skan (set_attr "length" "4")]) 815117395Skan 816117395Skan(define_insn "spe_evldwx" 817117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 818117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 819117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 820117395Skan (unspec [(const_int 0)] 549)] 821117395Skan "TARGET_SPE" 822117395Skan "evldwx %0,%1,%2" 823117395Skan [(set_attr "type" "vecload") 824117395Skan (set_attr "length" "4")]) 825117395Skan 826117395Skan(define_insn "spe_evlwhe" 827117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 828117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 829117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 830117395Skan (unspec [(const_int 0)] 550)] 831132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 832132718Skan "evlwhe %0,%2*4(%1)" 833117395Skan [(set_attr "type" "vecload") 834117395Skan (set_attr "length" "4")]) 835117395Skan 836117395Skan(define_insn "spe_evlwhex" 837117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 838117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 839117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 840117395Skan (unspec [(const_int 0)] 551)] 841117395Skan "TARGET_SPE" 842117395Skan "evlwhex %0,%1,%2" 843117395Skan [(set_attr "type" "vecload") 844117395Skan (set_attr "length" "4")]) 845117395Skan 846117395Skan(define_insn "spe_evlwhos" 847117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 848117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 849117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 850117395Skan (unspec [(const_int 0)] 552)] 851132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 852132718Skan "evlwhos %0,%2*4(%1)" 853117395Skan [(set_attr "type" "vecload") 854117395Skan (set_attr "length" "4")]) 855117395Skan 856117395Skan(define_insn "spe_evlwhosx" 857117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 858117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 859117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 860117395Skan (unspec [(const_int 0)] 553)] 861117395Skan "TARGET_SPE" 862117395Skan "evlwhosx %0,%1,%2" 863117395Skan [(set_attr "type" "vecload") 864117395Skan (set_attr "length" "4")]) 865117395Skan 866117395Skan(define_insn "spe_evlwhou" 867117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 868117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 869117395Skan (match_operand:QI 2 "immediate_operand" "i")))) 870117395Skan (unspec [(const_int 0)] 554)] 871132718Skan "TARGET_SPE && INTVAL (operands[2]) >= 0 && INTVAL (operands[2]) <= 31" 872132718Skan "evlwhou %0,%2*4(%1)" 873117395Skan [(set_attr "type" "vecload") 874117395Skan (set_attr "length" "4")]) 875117395Skan 876117395Skan(define_insn "spe_evlwhoux" 877117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 878117395Skan (mem:V2SI (plus:SI (match_operand:SI 1 "gpc_reg_operand" "b") 879117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")))) 880117395Skan (unspec [(const_int 0)] 555)] 881117395Skan "TARGET_SPE" 882117395Skan "evlwhoux %0,%1,%2" 883117395Skan [(set_attr "type" "vecload") 884117395Skan (set_attr "length" "4")]) 885117395Skan 886117395Skan(define_insn "spe_brinc" 887117395Skan [(set (match_operand:SI 0 "gpc_reg_operand" "=r") 888117395Skan (unspec:SI [(match_operand:SI 1 "gpc_reg_operand" "r") 889117395Skan (match_operand:SI 2 "gpc_reg_operand" "r")] 556))] 890117395Skan "TARGET_SPE" 891117395Skan "brinc %0,%1,%2" 892132718Skan [(set_attr "type" "brinc") 893117395Skan (set_attr "length" "4")]) 894117395Skan 895117395Skan(define_insn "spe_evmhegsmfaa" 896117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 897117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 898117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 899117395Skan (reg:V2SI SPE_ACC_REGNO)] 557)) 900132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 901117395Skan "TARGET_SPE" 902117395Skan "evmhegsmfaa %0,%1,%2" 903117395Skan [(set_attr "type" "veccomplex") 904117395Skan (set_attr "length" "4")]) 905117395Skan 906117395Skan(define_insn "spe_evmhegsmfan" 907117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 908117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 909117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 910117395Skan (reg:V2SI SPE_ACC_REGNO)] 558)) 911132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 912117395Skan "TARGET_SPE" 913117395Skan "evmhegsmfan %0,%1,%2" 914117395Skan [(set_attr "type" "veccomplex") 915117395Skan (set_attr "length" "4")]) 916117395Skan 917117395Skan(define_insn "spe_evmhegsmiaa" 918117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 919117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 920117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 921117395Skan (reg:V2SI SPE_ACC_REGNO)] 559)) 922132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 923117395Skan "TARGET_SPE" 924117395Skan "evmhegsmiaa %0,%1,%2" 925117395Skan [(set_attr "type" "veccomplex") 926117395Skan (set_attr "length" "4")]) 927117395Skan 928117395Skan(define_insn "spe_evmhegsmian" 929117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 930117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 931117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 932117395Skan (reg:V2SI SPE_ACC_REGNO)] 560)) 933132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 934117395Skan "TARGET_SPE" 935117395Skan "evmhegsmian %0,%1,%2" 936117395Skan [(set_attr "type" "veccomplex") 937117395Skan (set_attr "length" "4")]) 938117395Skan 939117395Skan(define_insn "spe_evmhegumiaa" 940117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 941117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 942117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 943117395Skan (reg:V2SI SPE_ACC_REGNO)] 561)) 944132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 945117395Skan "TARGET_SPE" 946117395Skan "evmhegumiaa %0,%1,%2" 947117395Skan [(set_attr "type" "veccomplex") 948117395Skan (set_attr "length" "4")]) 949117395Skan 950117395Skan(define_insn "spe_evmhegumian" 951117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 952117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 953117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 954117395Skan (reg:V2SI SPE_ACC_REGNO)] 562)) 955132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 956117395Skan "TARGET_SPE" 957117395Skan "evmhegumian %0,%1,%2" 958117395Skan [(set_attr "type" "veccomplex") 959117395Skan (set_attr "length" "4")]) 960117395Skan 961117395Skan(define_insn "spe_evmhesmfaaw" 962117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 963117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 964117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 965117395Skan (reg:V2SI SPE_ACC_REGNO)] 563)) 966132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 967117395Skan "TARGET_SPE" 968117395Skan "evmhesmfaaw %0,%1,%2" 969117395Skan [(set_attr "type" "veccomplex") 970117395Skan (set_attr "length" "4")]) 971117395Skan 972117395Skan(define_insn "spe_evmhesmfanw" 973117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 974117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 975117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 976117395Skan (reg:V2SI SPE_ACC_REGNO)] 564)) 977132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 978117395Skan "TARGET_SPE" 979117395Skan "evmhesmfanw %0,%1,%2" 980117395Skan [(set_attr "type" "veccomplex") 981117395Skan (set_attr "length" "4")]) 982117395Skan 983117395Skan(define_insn "spe_evmhesmfa" 984117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 985117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 986117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 565)) 987132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 988117395Skan "TARGET_SPE" 989117395Skan "evmhesmfa %0,%1,%2" 990117395Skan [(set_attr "type" "veccomplex") 991117395Skan (set_attr "length" "4")]) 992117395Skan 993117395Skan(define_insn "spe_evmhesmf" 994117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 995117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 996117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 566))] 997117395Skan "TARGET_SPE" 998117395Skan "evmhesmf %0,%1,%2" 999117395Skan [(set_attr "type" "veccomplex") 1000117395Skan (set_attr "length" "4")]) 1001117395Skan 1002117395Skan(define_insn "spe_evmhesmiaaw" 1003117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1004117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1005117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1006117395Skan (reg:V2SI SPE_ACC_REGNO)] 567)) 1007132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1008117395Skan "TARGET_SPE" 1009117395Skan "evmhesmiaaw %0,%1,%2" 1010117395Skan [(set_attr "type" "veccomplex") 1011117395Skan (set_attr "length" "4")]) 1012117395Skan 1013117395Skan(define_insn "spe_evmhesmianw" 1014117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1015117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1016117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1017117395Skan (reg:V2SI SPE_ACC_REGNO)] 568)) 1018132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1019117395Skan "TARGET_SPE" 1020117395Skan "evmhesmianw %0,%1,%2" 1021117395Skan [(set_attr "type" "veccomplex") 1022117395Skan (set_attr "length" "4")]) 1023117395Skan 1024117395Skan(define_insn "spe_evmhesmia" 1025117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1026117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1027117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 569)) 1028132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1029117395Skan "TARGET_SPE" 1030117395Skan "evmhesmia %0,%1,%2" 1031117395Skan [(set_attr "type" "veccomplex") 1032117395Skan (set_attr "length" "4")]) 1033117395Skan 1034117395Skan(define_insn "spe_evmhesmi" 1035117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1036117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1037117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 570))] 1038117395Skan "TARGET_SPE" 1039117395Skan "evmhesmi %0,%1,%2" 1040117395Skan [(set_attr "type" "veccomplex") 1041117395Skan (set_attr "length" "4")]) 1042117395Skan 1043117395Skan(define_insn "spe_evmhessfaaw" 1044117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1045117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1046117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1047117395Skan (reg:V2SI SPE_ACC_REGNO)] 571)) 1048117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1049132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1050117395Skan "TARGET_SPE" 1051117395Skan "evmhessfaaw %0,%1,%2" 1052117395Skan [(set_attr "type" "veccomplex") 1053117395Skan (set_attr "length" "4")]) 1054117395Skan 1055117395Skan(define_insn "spe_evmhessfanw" 1056117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1057117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1058117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1059117395Skan (reg:V2SI SPE_ACC_REGNO)] 572)) 1060117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1061132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1062117395Skan "TARGET_SPE" 1063117395Skan "evmhessfanw %0,%1,%2" 1064117395Skan [(set_attr "type" "veccomplex") 1065117395Skan (set_attr "length" "4")]) 1066117395Skan 1067117395Skan(define_insn "spe_evmhessfa" 1068117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1069117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1070117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 573)) 1071117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1072132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1073117395Skan "TARGET_SPE" 1074117395Skan "evmhessfa %0,%1,%2" 1075117395Skan [(set_attr "type" "veccomplex") 1076117395Skan (set_attr "length" "4")]) 1077117395Skan 1078117395Skan(define_insn "spe_evmhessf" 1079117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1080117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1081117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 574)) 1082117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1083117395Skan "TARGET_SPE" 1084117395Skan "evmhessf %0,%1,%2" 1085117395Skan [(set_attr "type" "veccomplex") 1086117395Skan (set_attr "length" "4")]) 1087117395Skan 1088117395Skan(define_insn "spe_evmhessiaaw" 1089117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1090117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1091117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1092117395Skan (reg:V2SI SPE_ACC_REGNO)] 575)) 1093117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1094132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1095117395Skan "TARGET_SPE" 1096117395Skan "evmhessiaaw %0,%1,%2" 1097117395Skan [(set_attr "type" "veccomplex") 1098117395Skan (set_attr "length" "4")]) 1099117395Skan 1100117395Skan(define_insn "spe_evmhessianw" 1101117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1102117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1103117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1104117395Skan (reg:V2SI SPE_ACC_REGNO)] 576)) 1105117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1106132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1107117395Skan "TARGET_SPE" 1108117395Skan "evmhessianw %0,%1,%2" 1109117395Skan [(set_attr "type" "veccomplex") 1110117395Skan (set_attr "length" "4")]) 1111117395Skan 1112117395Skan(define_insn "spe_evmheumiaaw" 1113117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1114117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1115117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1116117395Skan (reg:V2SI SPE_ACC_REGNO)] 577)) 1117132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1118117395Skan "TARGET_SPE" 1119117395Skan "evmheumiaaw %0,%1,%2" 1120117395Skan [(set_attr "type" "veccomplex") 1121117395Skan (set_attr "length" "4")]) 1122117395Skan 1123117395Skan(define_insn "spe_evmheumianw" 1124117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1125117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1126117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1127117395Skan (reg:V2SI SPE_ACC_REGNO)] 578)) 1128132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1129117395Skan "TARGET_SPE" 1130117395Skan "evmheumianw %0,%1,%2" 1131117395Skan [(set_attr "type" "veccomplex") 1132117395Skan (set_attr "length" "4")]) 1133117395Skan 1134117395Skan(define_insn "spe_evmheumia" 1135117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1136117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1137117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 579)) 1138132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1139117395Skan "TARGET_SPE" 1140117395Skan "evmheumia %0,%1,%2" 1141117395Skan [(set_attr "type" "veccomplex") 1142117395Skan (set_attr "length" "4")]) 1143117395Skan 1144117395Skan(define_insn "spe_evmheumi" 1145117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1146117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1147117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 580))] 1148117395Skan "TARGET_SPE" 1149117395Skan "evmheumi %0,%1,%2" 1150117395Skan [(set_attr "type" "veccomplex") 1151117395Skan (set_attr "length" "4")]) 1152117395Skan 1153117395Skan(define_insn "spe_evmheusiaaw" 1154117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1155117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1156117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1157117395Skan (reg:V2SI SPE_ACC_REGNO)] 581)) 1158117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1159132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1160117395Skan "TARGET_SPE" 1161117395Skan "evmheusiaaw %0,%1,%2" 1162117395Skan [(set_attr "type" "veccomplex") 1163117395Skan (set_attr "length" "4")]) 1164117395Skan 1165117395Skan(define_insn "spe_evmheusianw" 1166117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1167117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1168117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1169117395Skan (reg:V2SI SPE_ACC_REGNO)] 582)) 1170117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1171132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1172117395Skan "TARGET_SPE" 1173117395Skan "evmheusianw %0,%1,%2" 1174117395Skan [(set_attr "type" "veccomplex") 1175117395Skan (set_attr "length" "4")]) 1176117395Skan 1177117395Skan(define_insn "spe_evmhogsmfaa" 1178117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1179117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1180117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1181117395Skan (reg:V2SI SPE_ACC_REGNO)] 583)) 1182132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1183117395Skan "TARGET_SPE" 1184117395Skan "evmhogsmfaa %0,%1,%2" 1185117395Skan [(set_attr "type" "veccomplex") 1186117395Skan (set_attr "length" "4")]) 1187117395Skan 1188117395Skan(define_insn "spe_evmhogsmfan" 1189117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1190117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1191117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1192117395Skan (reg:V2SI SPE_ACC_REGNO)] 584)) 1193132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1194117395Skan "TARGET_SPE" 1195117395Skan "evmhogsmfan %0,%1,%2" 1196117395Skan [(set_attr "type" "veccomplex") 1197117395Skan (set_attr "length" "4")]) 1198117395Skan 1199117395Skan(define_insn "spe_evmhogsmiaa" 1200117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1201117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1202117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1203117395Skan (reg:V2SI SPE_ACC_REGNO)] 585)) 1204132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1205117395Skan "TARGET_SPE" 1206117395Skan "evmhogsmiaa %0,%1,%2" 1207117395Skan [(set_attr "type" "veccomplex") 1208117395Skan (set_attr "length" "4")]) 1209117395Skan 1210117395Skan(define_insn "spe_evmhogsmian" 1211117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1212117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1213117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1214117395Skan (reg:V2SI SPE_ACC_REGNO)] 586)) 1215132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1216117395Skan "TARGET_SPE" 1217117395Skan "evmhogsmian %0,%1,%2" 1218117395Skan [(set_attr "type" "veccomplex") 1219117395Skan (set_attr "length" "4")]) 1220117395Skan 1221117395Skan(define_insn "spe_evmhogumiaa" 1222117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1223117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1224117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1225117395Skan (reg:V2SI SPE_ACC_REGNO)] 587)) 1226132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1227117395Skan "TARGET_SPE" 1228117395Skan "evmhogumiaa %0,%1,%2" 1229117395Skan [(set_attr "type" "veccomplex") 1230117395Skan (set_attr "length" "4")]) 1231117395Skan 1232117395Skan(define_insn "spe_evmhogumian" 1233117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1234117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1235117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1236117395Skan (reg:V2SI SPE_ACC_REGNO)] 588)) 1237132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1238117395Skan "TARGET_SPE" 1239117395Skan "evmhogumian %0,%1,%2" 1240117395Skan [(set_attr "type" "veccomplex") 1241117395Skan (set_attr "length" "4")]) 1242117395Skan 1243117395Skan(define_insn "spe_evmhosmfaaw" 1244117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1245117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1246117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1247117395Skan (reg:V2SI SPE_ACC_REGNO)] 589)) 1248132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1249117395Skan "TARGET_SPE" 1250117395Skan "evmhosmfaaw %0,%1,%2" 1251117395Skan [(set_attr "type" "veccomplex") 1252117395Skan (set_attr "length" "4")]) 1253117395Skan 1254117395Skan(define_insn "spe_evmhosmfanw" 1255117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1256117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1257117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1258117395Skan (reg:V2SI SPE_ACC_REGNO)] 590)) 1259132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1260117395Skan "TARGET_SPE" 1261117395Skan "evmhosmfanw %0,%1,%2" 1262117395Skan [(set_attr "type" "veccomplex") 1263117395Skan (set_attr "length" "4")]) 1264117395Skan 1265117395Skan(define_insn "spe_evmhosmfa" 1266117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1267117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1268117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 591))] 1269117395Skan "TARGET_SPE" 1270117395Skan "evmhosmfa %0,%1,%2" 1271117395Skan [(set_attr "type" "veccomplex") 1272117395Skan (set_attr "length" "4")]) 1273117395Skan 1274117395Skan(define_insn "spe_evmhosmf" 1275117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1276117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1277117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 592)) 1278132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1279117395Skan "TARGET_SPE" 1280117395Skan "evmhosmf %0,%1,%2" 1281117395Skan [(set_attr "type" "veccomplex") 1282117395Skan (set_attr "length" "4")]) 1283117395Skan 1284117395Skan(define_insn "spe_evmhosmiaaw" 1285117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1286117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1287117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1288117395Skan (reg:V2SI SPE_ACC_REGNO)] 593)) 1289132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1290117395Skan "TARGET_SPE" 1291117395Skan "evmhosmiaaw %0,%1,%2" 1292117395Skan [(set_attr "type" "veccomplex") 1293117395Skan (set_attr "length" "4")]) 1294117395Skan 1295117395Skan(define_insn "spe_evmhosmianw" 1296117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1297117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1298117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1299117395Skan (reg:V2SI SPE_ACC_REGNO)] 594)) 1300132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1301117395Skan "TARGET_SPE" 1302117395Skan "evmhosmianw %0,%1,%2" 1303117395Skan [(set_attr "type" "veccomplex") 1304117395Skan (set_attr "length" "4")]) 1305117395Skan 1306117395Skan(define_insn "spe_evmhosmia" 1307117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1308117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1309117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 595)) 1310132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1311117395Skan "TARGET_SPE" 1312117395Skan "evmhosmia %0,%1,%2" 1313117395Skan [(set_attr "type" "veccomplex") 1314117395Skan (set_attr "length" "4")]) 1315117395Skan 1316117395Skan(define_insn "spe_evmhosmi" 1317117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1318117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1319117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 596))] 1320117395Skan "TARGET_SPE" 1321117395Skan "evmhosmi %0,%1,%2" 1322117395Skan [(set_attr "type" "veccomplex") 1323117395Skan (set_attr "length" "4")]) 1324117395Skan 1325117395Skan(define_insn "spe_evmhossfaaw" 1326117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1327117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1328117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1329117395Skan (reg:V2SI SPE_ACC_REGNO)] 597)) 1330117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1331132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1332117395Skan "TARGET_SPE" 1333117395Skan "evmhossfaaw %0,%1,%2" 1334117395Skan [(set_attr "type" "veccomplex") 1335117395Skan (set_attr "length" "4")]) 1336117395Skan 1337117395Skan(define_insn "spe_evmhossfanw" 1338117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1339117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1340117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1341117395Skan (reg:V2SI SPE_ACC_REGNO)] 598)) 1342117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1343132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1344117395Skan "TARGET_SPE" 1345117395Skan "evmhossfanw %0,%1,%2" 1346117395Skan [(set_attr "type" "veccomplex") 1347117395Skan (set_attr "length" "4")]) 1348117395Skan 1349117395Skan(define_insn "spe_evmhossfa" 1350117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1351117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1352117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1353117395Skan (reg:V2SI SPE_ACC_REGNO)] 599)) 1354117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1355132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1356117395Skan "TARGET_SPE" 1357117395Skan "evmhossfa %0,%1,%2" 1358117395Skan [(set_attr "type" "veccomplex") 1359117395Skan (set_attr "length" "4")]) 1360117395Skan 1361117395Skan(define_insn "spe_evmhossf" 1362117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1363117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1364117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 600)) 1365117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1366117395Skan "TARGET_SPE" 1367117395Skan "evmhossf %0,%1,%2" 1368117395Skan [(set_attr "type" "veccomplex") 1369117395Skan (set_attr "length" "4")]) 1370117395Skan 1371117395Skan(define_insn "spe_evmhossiaaw" 1372117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1373117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1374117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1375117395Skan (reg:V2SI SPE_ACC_REGNO)] 601)) 1376117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1377132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1378117395Skan "TARGET_SPE" 1379117395Skan "evmhossiaaw %0,%1,%2" 1380117395Skan [(set_attr "type" "veccomplex") 1381117395Skan (set_attr "length" "4")]) 1382117395Skan 1383117395Skan(define_insn "spe_evmhossianw" 1384117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1385117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1386117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1387117395Skan (reg:V2SI SPE_ACC_REGNO)] 602)) 1388117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1389132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1390117395Skan "TARGET_SPE" 1391117395Skan "evmhossianw %0,%1,%2" 1392117395Skan [(set_attr "type" "veccomplex") 1393117395Skan (set_attr "length" "4")]) 1394117395Skan 1395117395Skan(define_insn "spe_evmhoumiaaw" 1396117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1397117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1398117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1399117395Skan (reg:V2SI SPE_ACC_REGNO)] 603)) 1400132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1401117395Skan "TARGET_SPE" 1402117395Skan "evmhoumiaaw %0,%1,%2" 1403117395Skan [(set_attr "type" "veccomplex") 1404117395Skan (set_attr "length" "4")]) 1405117395Skan 1406117395Skan(define_insn "spe_evmhoumianw" 1407117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1408117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1409117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1410117395Skan (reg:V2SI SPE_ACC_REGNO)] 604)) 1411132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1412117395Skan "TARGET_SPE" 1413117395Skan "evmhoumianw %0,%1,%2" 1414117395Skan [(set_attr "type" "veccomplex") 1415117395Skan (set_attr "length" "4")]) 1416117395Skan 1417117395Skan(define_insn "spe_evmhoumia" 1418117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1419117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1420117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 605)) 1421132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1422117395Skan "TARGET_SPE" 1423117395Skan "evmhoumia %0,%1,%2" 1424117395Skan [(set_attr "type" "veccomplex") 1425117395Skan (set_attr "length" "4")]) 1426117395Skan 1427117395Skan(define_insn "spe_evmhoumi" 1428117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1429117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1430117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 606))] 1431117395Skan "TARGET_SPE" 1432117395Skan "evmhoumi %0,%1,%2" 1433117395Skan [(set_attr "type" "veccomplex") 1434117395Skan (set_attr "length" "4")]) 1435117395Skan 1436117395Skan(define_insn "spe_evmhousiaaw" 1437117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1438117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1439117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1440117395Skan (reg:V2SI SPE_ACC_REGNO)] 607)) 1441117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1442132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1443117395Skan "TARGET_SPE" 1444117395Skan "evmhousiaaw %0,%1,%2" 1445117395Skan [(set_attr "type" "veccomplex") 1446117395Skan (set_attr "length" "4")]) 1447117395Skan 1448117395Skan(define_insn "spe_evmhousianw" 1449117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1450117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1451117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1452117395Skan (reg:V2SI SPE_ACC_REGNO)] 608)) 1453117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1454132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1455117395Skan "TARGET_SPE" 1456117395Skan "evmhousianw %0,%1,%2" 1457117395Skan [(set_attr "type" "veccomplex") 1458117395Skan (set_attr "length" "4")]) 1459117395Skan 1460117395Skan(define_insn "spe_evmmlssfa" 1461117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1462117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1463117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 609))] 1464117395Skan "TARGET_SPE" 1465117395Skan "evmmlssfa %0,%1,%2" 1466117395Skan [(set_attr "type" "veccomplex") 1467117395Skan (set_attr "length" "4")]) 1468117395Skan 1469117395Skan(define_insn "spe_evmmlssf" 1470117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1471117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1472117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 610))] 1473117395Skan "TARGET_SPE" 1474117395Skan "evmmlssf %0,%1,%2" 1475117395Skan [(set_attr "type" "veccomplex") 1476117395Skan (set_attr "length" "4")]) 1477117395Skan 1478117395Skan(define_insn "spe_evmwhsmfa" 1479117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1480117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1481117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 611)) 1482132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1483117395Skan "TARGET_SPE" 1484117395Skan "evmwhsmfa %0,%1,%2" 1485117395Skan [(set_attr "type" "veccomplex") 1486117395Skan (set_attr "length" "4")]) 1487117395Skan 1488117395Skan(define_insn "spe_evmwhsmf" 1489117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1490117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1491117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 612))] 1492117395Skan "TARGET_SPE" 1493117395Skan "evmwhsmf %0,%1,%2" 1494117395Skan [(set_attr "type" "veccomplex") 1495117395Skan (set_attr "length" "4")]) 1496117395Skan 1497117395Skan(define_insn "spe_evmwhsmia" 1498117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1499117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1500117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 613)) 1501132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1502117395Skan "TARGET_SPE" 1503117395Skan "evmwhsmia %0,%1,%2" 1504117395Skan [(set_attr "type" "veccomplex") 1505117395Skan (set_attr "length" "4")]) 1506117395Skan 1507117395Skan(define_insn "spe_evmwhsmi" 1508117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1509117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1510117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 614))] 1511117395Skan "TARGET_SPE" 1512117395Skan "evmwhsmi %0,%1,%2" 1513117395Skan [(set_attr "type" "veccomplex") 1514117395Skan (set_attr "length" "4")]) 1515117395Skan 1516117395Skan(define_insn "spe_evmwhssfa" 1517117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1518117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1519117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 615)) 1520117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1521132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1522117395Skan "TARGET_SPE" 1523117395Skan "evmwhssfa %0,%1,%2" 1524117395Skan [(set_attr "type" "veccomplex") 1525117395Skan (set_attr "length" "4")]) 1526117395Skan 1527117395Skan(define_insn "spe_evmwhusian" 1528117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1529117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1530117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 626))] 1531117395Skan "TARGET_SPE" 1532117395Skan "evmwhusian %0,%1,%2" 1533117395Skan [(set_attr "type" "veccomplex") 1534117395Skan (set_attr "length" "4")]) 1535117395Skan 1536117395Skan(define_insn "spe_evmwhssf" 1537117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1538117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1539117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 628)) 1540117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1541117395Skan "TARGET_SPE" 1542117395Skan "evmwhssf %0,%1,%2" 1543117395Skan [(set_attr "type" "veccomplex") 1544117395Skan (set_attr "length" "4")]) 1545117395Skan 1546117395Skan(define_insn "spe_evmwhumia" 1547117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1548117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1549117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 629)) 1550132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1551117395Skan "TARGET_SPE" 1552117395Skan "evmwhumia %0,%1,%2" 1553117395Skan [(set_attr "type" "veccomplex") 1554117395Skan (set_attr "length" "4")]) 1555117395Skan 1556117395Skan(define_insn "spe_evmwhumi" 1557117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1558117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1559117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 630))] 1560117395Skan "TARGET_SPE" 1561117395Skan "evmwhumi %0,%1,%2" 1562117395Skan [(set_attr "type" "veccomplex") 1563117395Skan (set_attr "length" "4")]) 1564117395Skan 1565117395Skan(define_insn "spe_evmwlsmiaaw" 1566117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1567117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1568117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1569117395Skan (reg:V2SI SPE_ACC_REGNO)] 635)) 1570132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1571117395Skan "TARGET_SPE" 1572117395Skan "evmwlsmiaaw %0,%1,%2" 1573117395Skan [(set_attr "type" "veccomplex") 1574117395Skan (set_attr "length" "4")]) 1575117395Skan 1576117395Skan(define_insn "spe_evmwlsmianw" 1577117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1578117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1579117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1580117395Skan (reg:V2SI SPE_ACC_REGNO)] 636)) 1581132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1582117395Skan "TARGET_SPE" 1583117395Skan "evmwlsmianw %0,%1,%2" 1584117395Skan [(set_attr "type" "veccomplex") 1585117395Skan (set_attr "length" "4")]) 1586117395Skan 1587117395Skan(define_insn "spe_evmwlssiaaw" 1588117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1589117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1590117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1591117395Skan (reg:V2SI SPE_ACC_REGNO)] 641)) 1592117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1593132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1594117395Skan "TARGET_SPE" 1595117395Skan "evmwlssiaaw %0,%1,%2" 1596117395Skan [(set_attr "type" "veccomplex") 1597117395Skan (set_attr "length" "4")]) 1598117395Skan 1599117395Skan(define_insn "spe_evmwlssianw" 1600117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1601117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1602117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1603117395Skan (reg:V2SI SPE_ACC_REGNO)] 642)) 1604117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1605132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1606117395Skan "TARGET_SPE" 1607117395Skan "evmwlssianw %0,%1,%2" 1608117395Skan [(set_attr "type" "veccomplex") 1609117395Skan (set_attr "length" "4")]) 1610117395Skan 1611117395Skan(define_insn "spe_evmwlumiaaw" 1612117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1613117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1614117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1615117395Skan (reg:V2SI SPE_ACC_REGNO)] 643)) 1616132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1617117395Skan "TARGET_SPE" 1618117395Skan "evmwlumiaaw %0,%1,%2" 1619117395Skan [(set_attr "type" "veccomplex") 1620117395Skan (set_attr "length" "4")]) 1621117395Skan 1622117395Skan(define_insn "spe_evmwlumianw" 1623117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1624117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1625117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1626117395Skan (reg:V2SI SPE_ACC_REGNO)] 644)) 1627132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1628117395Skan "TARGET_SPE" 1629117395Skan "evmwlumianw %0,%1,%2" 1630117395Skan [(set_attr "type" "veccomplex") 1631117395Skan (set_attr "length" "4")]) 1632117395Skan 1633117395Skan(define_insn "spe_evmwlumia" 1634117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1635117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1636117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 645)) 1637132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1638117395Skan "TARGET_SPE" 1639117395Skan "evmwlumia %0,%1,%2" 1640117395Skan [(set_attr "type" "veccomplex") 1641117395Skan (set_attr "length" "4")]) 1642117395Skan 1643117395Skan(define_insn "spe_evmwlumi" 1644117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1645117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1646117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 646))] 1647117395Skan "TARGET_SPE" 1648117395Skan "evmwlumi %0,%1,%2" 1649117395Skan [(set_attr "type" "veccomplex") 1650117395Skan (set_attr "length" "4")]) 1651117395Skan 1652117395Skan(define_insn "spe_evmwlusiaaw" 1653117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1654117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1655117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1656117395Skan (reg:V2SI SPE_ACC_REGNO)] 647)) 1657117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1658132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1659117395Skan "TARGET_SPE" 1660117395Skan "evmwlusiaaw %0,%1,%2" 1661117395Skan [(set_attr "type" "veccomplex") 1662117395Skan (set_attr "length" "4")]) 1663117395Skan 1664117395Skan(define_insn "spe_evmwlusianw" 1665117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1666117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1667117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1668117395Skan (reg:V2SI SPE_ACC_REGNO)] 648)) 1669117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1670132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1671117395Skan "TARGET_SPE" 1672117395Skan "evmwlusianw %0,%1,%2" 1673117395Skan [(set_attr "type" "veccomplex") 1674117395Skan (set_attr "length" "4")]) 1675117395Skan 1676117395Skan(define_insn "spe_evmwsmfaa" 1677117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1678117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1679117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1680117395Skan (reg:V2SI SPE_ACC_REGNO)] 649)) 1681132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1682117395Skan "TARGET_SPE" 1683117395Skan "evmwsmfaa %0,%1,%2" 1684117395Skan [(set_attr "type" "veccomplex") 1685117395Skan (set_attr "length" "4")]) 1686117395Skan 1687117395Skan(define_insn "spe_evmwsmfan" 1688117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1689117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1690117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1691117395Skan (reg:V2SI SPE_ACC_REGNO)] 650)) 1692132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1693117395Skan "TARGET_SPE" 1694117395Skan "evmwsmfan %0,%1,%2" 1695117395Skan [(set_attr "type" "veccomplex") 1696117395Skan (set_attr "length" "4")]) 1697117395Skan 1698117395Skan(define_insn "spe_evmwsmfa" 1699117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1700117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1701117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 651)) 1702132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1703117395Skan "TARGET_SPE" 1704117395Skan "evmwsmfa %0,%1,%2" 1705117395Skan [(set_attr "type" "veccomplex") 1706117395Skan (set_attr "length" "4")]) 1707117395Skan 1708117395Skan(define_insn "spe_evmwsmf" 1709117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1710117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1711117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 652))] 1712117395Skan "TARGET_SPE" 1713117395Skan "evmwsmf %0,%1,%2" 1714117395Skan [(set_attr "type" "veccomplex") 1715117395Skan (set_attr "length" "4")]) 1716117395Skan 1717117395Skan(define_insn "spe_evmwsmiaa" 1718117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1719117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1720117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1721117395Skan (reg:V2SI SPE_ACC_REGNO)] 653)) 1722132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1723117395Skan "TARGET_SPE" 1724117395Skan "evmwsmiaa %0,%1,%2" 1725117395Skan [(set_attr "type" "veccomplex") 1726117395Skan (set_attr "length" "4")]) 1727117395Skan 1728117395Skan(define_insn "spe_evmwsmian" 1729117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1730117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1731117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1732117395Skan (reg:V2SI SPE_ACC_REGNO)] 654)) 1733132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1734117395Skan "TARGET_SPE" 1735117395Skan "evmwsmian %0,%1,%2" 1736117395Skan [(set_attr "type" "veccomplex") 1737117395Skan (set_attr "length" "4")]) 1738117395Skan 1739117395Skan(define_insn "spe_evmwsmia" 1740117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1741117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1742117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 655)) 1743132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1744117395Skan "TARGET_SPE" 1745117395Skan "evmwsmia %0,%1,%2" 1746117395Skan [(set_attr "type" "veccomplex") 1747117395Skan (set_attr "length" "4")]) 1748117395Skan 1749117395Skan(define_insn "spe_evmwsmi" 1750117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1751117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1752117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 656))] 1753117395Skan "TARGET_SPE" 1754117395Skan "evmwsmi %0,%1,%2" 1755117395Skan [(set_attr "type" "veccomplex") 1756117395Skan (set_attr "length" "4")]) 1757117395Skan 1758117395Skan(define_insn "spe_evmwssfaa" 1759117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1760117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1761117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1762117395Skan (reg:V2SI SPE_ACC_REGNO)] 657)) 1763117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1764132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1765117395Skan "TARGET_SPE" 1766117395Skan "evmwssfaa %0,%1,%2" 1767117395Skan [(set_attr "type" "veccomplex") 1768117395Skan (set_attr "length" "4")]) 1769117395Skan 1770117395Skan(define_insn "spe_evmwssfan" 1771117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1772117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1773117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1774117395Skan (reg:V2SI SPE_ACC_REGNO)] 658)) 1775117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1776132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1777117395Skan "TARGET_SPE" 1778117395Skan "evmwssfan %0,%1,%2" 1779117395Skan [(set_attr "type" "veccomplex") 1780117395Skan (set_attr "length" "4")]) 1781117395Skan 1782117395Skan(define_insn "spe_evmwssfa" 1783117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1784117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1785117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 659)) 1786117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1787132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1788117395Skan "TARGET_SPE" 1789117395Skan "evmwssfa %0,%1,%2" 1790117395Skan [(set_attr "type" "veccomplex") 1791117395Skan (set_attr "length" "4")]) 1792117395Skan 1793117395Skan(define_insn "spe_evmwssf" 1794117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1795117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1796117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 660)) 1797117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1798117395Skan "TARGET_SPE" 1799117395Skan "evmwssf %0,%1,%2" 1800117395Skan [(set_attr "type" "veccomplex") 1801117395Skan (set_attr "length" "4")]) 1802117395Skan 1803117395Skan(define_insn "spe_evmwumiaa" 1804117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1805117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1806117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1807117395Skan (reg:V2SI SPE_ACC_REGNO)] 661)) 1808132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1809117395Skan "TARGET_SPE" 1810117395Skan "evmwumiaa %0,%1,%2" 1811117395Skan [(set_attr "type" "veccomplex") 1812117395Skan (set_attr "length" "4")]) 1813117395Skan 1814117395Skan(define_insn "spe_evmwumian" 1815117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1816117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1817117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r") 1818117395Skan (reg:V2SI SPE_ACC_REGNO)] 662)) 1819132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1820117395Skan "TARGET_SPE" 1821117395Skan "evmwumian %0,%1,%2" 1822117395Skan [(set_attr "type" "veccomplex") 1823117395Skan (set_attr "length" "4")]) 1824117395Skan 1825117395Skan(define_insn "spe_evmwumia" 1826117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1827117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1828117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 663)) 1829132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1830117395Skan "TARGET_SPE" 1831117395Skan "evmwumia %0,%1,%2" 1832117395Skan [(set_attr "type" "veccomplex") 1833117395Skan (set_attr "length" "4")]) 1834117395Skan 1835117395Skan(define_insn "spe_evmwumi" 1836117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1837117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1838117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 664))] 1839117395Skan "TARGET_SPE" 1840117395Skan "evmwumi %0,%1,%2" 1841117395Skan [(set_attr "type" "veccomplex") 1842117395Skan (set_attr "length" "4")]) 1843117395Skan 1844117395Skan(define_insn "spe_evaddw" 1845117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1846117395Skan (plus:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 1847117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")))] 1848117395Skan "TARGET_SPE" 1849117395Skan "evaddw %0,%1,%2" 1850132718Skan [(set_attr "type" "vecsimple") 1851117395Skan (set_attr "length" "4")]) 1852117395Skan 1853117395Skan(define_insn "spe_evaddusiaaw" 1854117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1855117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1856117395Skan (reg:V2SI SPE_ACC_REGNO)] 673)) 1857117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1858132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1859117395Skan "TARGET_SPE" 1860117395Skan "evaddusiaaw %0,%1" 1861117395Skan [(set_attr "type" "veccomplex") 1862117395Skan (set_attr "length" "4")]) 1863117395Skan 1864117395Skan(define_insn "spe_evaddumiaaw" 1865117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1866117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1867117395Skan (reg:V2SI SPE_ACC_REGNO)] 674)) 1868132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1869117395Skan "TARGET_SPE" 1870117395Skan "evaddumiaaw %0,%1" 1871117395Skan [(set_attr "type" "veccomplex") 1872117395Skan (set_attr "length" "4")]) 1873117395Skan 1874117395Skan(define_insn "spe_evaddssiaaw" 1875117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1876117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1877117395Skan (reg:V2SI SPE_ACC_REGNO)] 675)) 1878117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1879132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1880117395Skan "TARGET_SPE" 1881117395Skan "evaddssiaaw %0,%1" 1882117395Skan [(set_attr "type" "veccomplex") 1883117395Skan (set_attr "length" "4")]) 1884117395Skan 1885117395Skan(define_insn "spe_evaddsmiaaw" 1886117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1887117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1888117395Skan (reg:V2SI SPE_ACC_REGNO)] 676)) 1889132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1890117395Skan "TARGET_SPE" 1891117395Skan "evaddsmiaaw %0,%1" 1892117395Skan [(set_attr "type" "veccomplex") 1893117395Skan (set_attr "length" "4")]) 1894117395Skan 1895117395Skan(define_insn "spe_evaddiw" 1896117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1897117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1898117395Skan (match_operand:QI 2 "immediate_operand" "i")] 677))] 1899117395Skan "TARGET_SPE" 1900117395Skan "evaddiw %0,%1,%2" 1901132718Skan [(set_attr "type" "vecsimple") 1902117395Skan (set_attr "length" "4")]) 1903117395Skan 1904117395Skan(define_insn "spe_evsubifw" 1905117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1906117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1907117395Skan (match_operand:QI 2 "immediate_operand" "i")] 678))] 1908117395Skan "TARGET_SPE" 1909117395Skan "evsubifw %0,%2,%1" 1910117395Skan [(set_attr "type" "veccomplex") 1911117395Skan (set_attr "length" "4")]) 1912117395Skan 1913117395Skan(define_insn "spe_evsubfw" 1914117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1915117395Skan (minus:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 1916117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")))] 1917117395Skan "TARGET_SPE" 1918132718Skan "evsubfw %0,%2,%1" 1919117395Skan [(set_attr "type" "veccomplex") 1920117395Skan (set_attr "length" "4")]) 1921117395Skan 1922117395Skan(define_insn "spe_evsubfusiaaw" 1923117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1924117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1925117395Skan (reg:V2SI SPE_ACC_REGNO)] 679)) 1926117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1927132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1928117395Skan "TARGET_SPE" 1929117395Skan "evsubfusiaaw %0,%1" 1930117395Skan [(set_attr "type" "veccomplex") 1931117395Skan (set_attr "length" "4")]) 1932117395Skan 1933117395Skan(define_insn "spe_evsubfumiaaw" 1934117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1935117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1936117395Skan (reg:V2SI SPE_ACC_REGNO)] 680)) 1937132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1938117395Skan "TARGET_SPE" 1939117395Skan "evsubfumiaaw %0,%1" 1940117395Skan [(set_attr "type" "veccomplex") 1941117395Skan (set_attr "length" "4")]) 1942117395Skan 1943117395Skan(define_insn "spe_evsubfssiaaw" 1944117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1945117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1946117395Skan (reg:V2SI SPE_ACC_REGNO)] 681)) 1947117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 1948132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1949117395Skan "TARGET_SPE" 1950117395Skan "evsubfssiaaw %0,%1" 1951117395Skan [(set_attr "type" "veccomplex") 1952117395Skan (set_attr "length" "4")]) 1953117395Skan 1954117395Skan(define_insn "spe_evsubfsmiaaw" 1955117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1956117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 1957117395Skan (reg:V2SI SPE_ACC_REGNO)] 682)) 1958132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 1959117395Skan "TARGET_SPE" 1960117395Skan "evsubfsmiaaw %0,%1" 1961117395Skan [(set_attr "type" "veccomplex") 1962117395Skan (set_attr "length" "4")]) 1963117395Skan 1964117395Skan(define_insn "spe_evmra" 1965117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1966117395Skan (match_operand:V2SI 1 "gpc_reg_operand" "r")) 1967117395Skan (set (reg:V2SI SPE_ACC_REGNO) 1968117395Skan (unspec:V2SI [(match_dup 1)] 726))] 1969117395Skan "TARGET_SPE" 1970117395Skan "evmra %0,%1" 1971117395Skan [(set_attr "type" "veccomplex") 1972117395Skan (set_attr "length" "4")]) 1973117395Skan 1974117395Skan(define_insn "spe_evdivws" 1975117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1976117395Skan (div:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 1977117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r"))) 1978117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1979117395Skan "TARGET_SPE" 1980117395Skan "evdivws %0,%1,%2" 1981132718Skan [(set_attr "type" "vecdiv") 1982117395Skan (set_attr "length" "4")]) 1983117395Skan 1984117395Skan(define_insn "spe_evdivwu" 1985117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1986117395Skan (udiv:V2SI (match_operand:V2SI 1 "gpc_reg_operand" "r") 1987117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r"))) 1988117395Skan (clobber (reg:SI SPEFSCR_REGNO))] 1989117395Skan "TARGET_SPE" 1990117395Skan "evdivwu %0,%1,%2" 1991132718Skan [(set_attr "type" "vecdiv") 1992117395Skan (set_attr "length" "4")]) 1993117395Skan 1994117395Skan(define_insn "spe_evsplatfi" 1995117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 1996117395Skan (unspec:V2SI [(match_operand:QI 1 "immediate_operand" "i")] 684))] 1997117395Skan "TARGET_SPE" 1998117395Skan "evsplatfi %0,%1" 1999117395Skan [(set_attr "type" "vecperm") 2000117395Skan (set_attr "length" "4")]) 2001117395Skan 2002117395Skan(define_insn "spe_evsplati" 2003117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2004117395Skan (unspec:V2SI [(match_operand:QI 1 "immediate_operand" "i")] 685))] 2005117395Skan "TARGET_SPE" 2006117395Skan "evsplati %0,%1" 2007117395Skan [(set_attr "type" "vecperm") 2008117395Skan (set_attr "length" "4")]) 2009117395Skan 2010117395Skan(define_insn "spe_evstdd" 2011117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2012117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2013117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2014117395Skan (unspec [(const_int 0)] 686)] 2015132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2016132718Skan "evstdd %2,%1*8(%0)" 2017117395Skan [(set_attr "type" "vecstore") 2018117395Skan (set_attr "length" "4")]) 2019117395Skan 2020117395Skan(define_insn "spe_evstddx" 2021117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2022117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2023117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2024117395Skan (unspec [(const_int 0)] 687)] 2025117395Skan "TARGET_SPE" 2026117395Skan "evstddx %2,%0,%1" 2027117395Skan [(set_attr "type" "vecstore") 2028117395Skan (set_attr "length" "4")]) 2029117395Skan 2030117395Skan(define_insn "spe_evstdh" 2031117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2032117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2033117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2034117395Skan (unspec [(const_int 0)] 688)] 2035132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2036132718Skan "evstdh %2,%1*8(%0)" 2037117395Skan [(set_attr "type" "vecstore") 2038117395Skan (set_attr "length" "4")]) 2039117395Skan 2040117395Skan(define_insn "spe_evstdhx" 2041117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2042117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2043117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2044117395Skan (unspec [(const_int 0)] 689)] 2045117395Skan "TARGET_SPE" 2046117395Skan "evstdhx %2,%0,%1" 2047117395Skan [(set_attr "type" "vecstore") 2048117395Skan (set_attr "length" "4")]) 2049117395Skan 2050117395Skan(define_insn "spe_evstdw" 2051117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2052117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2053117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2054117395Skan (unspec [(const_int 0)] 690)] 2055132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2056132718Skan "evstdw %2,%1*8(%0)" 2057117395Skan [(set_attr "type" "vecstore") 2058117395Skan (set_attr "length" "4")]) 2059117395Skan 2060117395Skan(define_insn "spe_evstdwx" 2061117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2062117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2063117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2064117395Skan (unspec [(const_int 0)] 691)] 2065117395Skan "TARGET_SPE" 2066117395Skan "evstdwx %2,%0,%1" 2067117395Skan [(set_attr "type" "vecstore") 2068117395Skan (set_attr "length" "4")]) 2069117395Skan 2070117395Skan(define_insn "spe_evstwhe" 2071117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2072117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2073117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2074117395Skan (unspec [(const_int 0)] 692)] 2075132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2076132718Skan "evstwhe %2,%1*4(%0)" 2077117395Skan [(set_attr "type" "vecstore") 2078117395Skan (set_attr "length" "4")]) 2079117395Skan 2080117395Skan(define_insn "spe_evstwhex" 2081117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2082117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2083117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2084117395Skan (unspec [(const_int 0)] 693)] 2085117395Skan "TARGET_SPE" 2086117395Skan "evstwhex %2,%0,%1" 2087117395Skan [(set_attr "type" "vecstore") 2088117395Skan (set_attr "length" "4")]) 2089117395Skan 2090117395Skan(define_insn "spe_evstwho" 2091117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2092117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2093117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2094117395Skan (unspec [(const_int 0)] 694)] 2095132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2096132718Skan "evstwho %2,%1*4(%0)" 2097117395Skan [(set_attr "type" "vecstore") 2098117395Skan (set_attr "length" "4")]) 2099117395Skan 2100117395Skan(define_insn "spe_evstwhox" 2101117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2102117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2103117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2104117395Skan (unspec [(const_int 0)] 695)] 2105117395Skan "TARGET_SPE" 2106117395Skan "evstwhox %2,%0,%1" 2107117395Skan [(set_attr "type" "vecstore") 2108117395Skan (set_attr "length" "4")]) 2109117395Skan 2110117395Skan(define_insn "spe_evstwwe" 2111117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2112117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2113117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2114117395Skan (unspec [(const_int 0)] 696)] 2115132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2116132718Skan "evstwwe %2,%1*4(%0)" 2117117395Skan [(set_attr "type" "vecstore") 2118117395Skan (set_attr "length" "4")]) 2119117395Skan 2120117395Skan(define_insn "spe_evstwwex" 2121117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2122117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2123117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2124117395Skan (unspec [(const_int 0)] 697)] 2125117395Skan "TARGET_SPE" 2126117395Skan "evstwwex %2,%0,%1" 2127117395Skan [(set_attr "type" "vecstore") 2128117395Skan (set_attr "length" "4")]) 2129117395Skan 2130117395Skan(define_insn "spe_evstwwo" 2131117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2132117395Skan (match_operand:QI 1 "immediate_operand" "i"))) 2133117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2134117395Skan (unspec [(const_int 0)] 698)] 2135132718Skan "TARGET_SPE && INTVAL (operands[1]) >= 0 && INTVAL (operands[1]) <= 31" 2136132718Skan "evstwwo %2,%1*4(%0)" 2137117395Skan [(set_attr "type" "vecstore") 2138117395Skan (set_attr "length" "4")]) 2139117395Skan 2140117395Skan(define_insn "spe_evstwwox" 2141117395Skan [(set (mem:V2SI (plus:SI (match_operand:SI 0 "gpc_reg_operand" "b") 2142117395Skan (match_operand:SI 1 "gpc_reg_operand" "r"))) 2143117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")) 2144117395Skan (unspec [(const_int 0)] 699)] 2145117395Skan "TARGET_SPE" 2146117395Skan "evstwwox %2,%0,%1" 2147117395Skan [(set_attr "type" "vecstore") 2148117395Skan (set_attr "length" "4")]) 2149117395Skan 2150117395Skan;; Vector move instructions. 2151117395Skan 2152117395Skan(define_expand "movv2si" 2153117395Skan [(set (match_operand:V2SI 0 "nonimmediate_operand" "") 2154117395Skan (match_operand:V2SI 1 "any_operand" ""))] 2155117395Skan "TARGET_SPE" 2156117395Skan "{ rs6000_emit_move (operands[0], operands[1], V2SImode); DONE; }") 2157117395Skan 2158117395Skan(define_insn "*movv2si_internal" 2159132718Skan [(set (match_operand:V2SI 0 "nonimmediate_operand" "=m,r,r,r") 2160132718Skan (match_operand:V2SI 1 "input_operand" "r,m,r,W"))] 2161132718Skan "TARGET_SPE 2162132718Skan && (gpc_reg_operand (operands[0], V2SImode) 2163132718Skan || gpc_reg_operand (operands[1], V2SImode))" 2164132718Skan "* 2165132718Skan{ 2166132718Skan switch (which_alternative) 2167132718Skan { 2168132718Skan case 0: return \"evstdd%X0 %1,%y0\"; 2169132718Skan case 1: return \"evldd%X1 %0,%y1\"; 2170132718Skan case 2: return \"evor %0,%1,%1\"; 2171132718Skan case 3: return output_vec_const_move (operands); 2172132718Skan default: abort (); 2173132718Skan } 2174132718Skan}" 2175132718Skan [(set_attr "type" "vecload,vecstore,*,*") 2176132718Skan (set_attr "length" "*,*,*,12")]) 2177117395Skan 2178132718Skan(define_split 2179132718Skan [(set (match_operand:V2SI 0 "register_operand" "") 2180132718Skan (match_operand:V2SI 1 "zero_constant" ""))] 2181132718Skan "TARGET_SPE && reload_completed" 2182132718Skan [(set (match_dup 0) 2183132718Skan (xor:V2SI (match_dup 0) (match_dup 0)))] 2184132718Skan "") 2185132718Skan 2186117395Skan(define_expand "movv1di" 2187117395Skan [(set (match_operand:V1DI 0 "nonimmediate_operand" "") 2188117395Skan (match_operand:V1DI 1 "any_operand" ""))] 2189117395Skan "TARGET_SPE" 2190117395Skan "{ rs6000_emit_move (operands[0], operands[1], V1DImode); DONE; }") 2191117395Skan 2192117395Skan(define_insn "*movv1di_internal" 2193132718Skan [(set (match_operand:V1DI 0 "nonimmediate_operand" "=m,r,r,r") 2194132718Skan (match_operand:V1DI 1 "input_operand" "r,m,r,W"))] 2195132718Skan "TARGET_SPE 2196132718Skan && (gpc_reg_operand (operands[0], V1DImode) 2197132718Skan || gpc_reg_operand (operands[1], V1DImode))" 2198117395Skan "@ 2199117395Skan evstdd%X0 %1,%y0 2200117395Skan evldd%X1 %0,%y1 2201132718Skan evor %0,%1,%1 2202132718Skan evxor %0,%0,%0" 2203132718Skan [(set_attr "type" "vecload,vecstore,*,*") 2204132718Skan (set_attr "length" "*,*,*,*")]) 2205117395Skan 2206117395Skan(define_expand "movv4hi" 2207117395Skan [(set (match_operand:V4HI 0 "nonimmediate_operand" "") 2208117395Skan (match_operand:V4HI 1 "any_operand" ""))] 2209117395Skan "TARGET_SPE" 2210117395Skan "{ rs6000_emit_move (operands[0], operands[1], V4HImode); DONE; }") 2211117395Skan 2212117395Skan(define_insn "*movv4hi_internal" 2213117395Skan [(set (match_operand:V4HI 0 "nonimmediate_operand" "=m,r,r") 2214117395Skan (match_operand:V4HI 1 "input_operand" "r,m,r"))] 2215132718Skan "TARGET_SPE 2216132718Skan && (gpc_reg_operand (operands[0], V4HImode) 2217132718Skan || gpc_reg_operand (operands[1], V4HImode))" 2218117395Skan "@ 2219117395Skan evstdd%X0 %1,%y0 2220117395Skan evldd%X1 %0,%y1 2221117395Skan evor %0,%1,%1" 2222117395Skan [(set_attr "type" "vecload")]) 2223117395Skan 2224117395Skan(define_expand "movv2sf" 2225117395Skan [(set (match_operand:V2SF 0 "nonimmediate_operand" "") 2226117395Skan (match_operand:V2SF 1 "any_operand" ""))] 2227117395Skan "TARGET_SPE" 2228117395Skan "{ rs6000_emit_move (operands[0], operands[1], V2SFmode); DONE; }") 2229117395Skan 2230117395Skan(define_insn "*movv2sf_internal" 2231132718Skan [(set (match_operand:V2SF 0 "nonimmediate_operand" "=m,r,r,r") 2232132718Skan (match_operand:V2SF 1 "input_operand" "r,m,r,W"))] 2233132718Skan "TARGET_SPE 2234132718Skan && (gpc_reg_operand (operands[0], V2SFmode) 2235132718Skan || gpc_reg_operand (operands[1], V2SFmode))" 2236117395Skan "@ 2237117395Skan evstdd%X0 %1,%y0 2238117395Skan evldd%X1 %0,%y1 2239132718Skan evor %0,%1,%1 2240132718Skan evxor %0,%0,%0" 2241132718Skan [(set_attr "type" "vecload,vecstore,*,*") 2242132718Skan (set_attr "length" "*,*,*,*")]) 2243117395Skan 2244132718Skan;; End of vector move instructions. 2245132718Skan 2246117395Skan(define_insn "spe_evmwhssfaa" 2247117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2248117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2249117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 702)) 2250117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2251132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2252117395Skan "TARGET_SPE" 2253117395Skan "evmwhssfaa %0,%1,%2" 2254117395Skan [(set_attr "type" "veccomplex") 2255117395Skan (set_attr "length" "4")]) 2256117395Skan 2257117395Skan(define_insn "spe_evmwhssmaa" 2258117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2259117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2260117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 703)) 2261117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2262132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2263117395Skan "TARGET_SPE" 2264117395Skan "evmwhssmaa %0,%1,%2" 2265117395Skan [(set_attr "type" "veccomplex") 2266117395Skan (set_attr "length" "4")]) 2267117395Skan 2268117395Skan(define_insn "spe_evmwhsmfaa" 2269117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2270117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2271117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 704)) 2272132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2273117395Skan "TARGET_SPE" 2274117395Skan "evmwhsmfaa %0,%1,%2" 2275117395Skan [(set_attr "type" "veccomplex") 2276117395Skan (set_attr "length" "4")]) 2277117395Skan 2278117395Skan(define_insn "spe_evmwhsmiaa" 2279117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2280117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2281117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 705)) 2282132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2283117395Skan "TARGET_SPE" 2284117395Skan "evmwhsmiaa %0,%1,%2" 2285117395Skan [(set_attr "type" "veccomplex") 2286117395Skan (set_attr "length" "4")]) 2287117395Skan 2288117395Skan(define_insn "spe_evmwhusiaa" 2289117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2290117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2291117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 706)) 2292117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2293132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2294117395Skan "TARGET_SPE" 2295117395Skan "evmwhusiaa %0,%1,%2" 2296117395Skan [(set_attr "type" "veccomplex") 2297117395Skan (set_attr "length" "4")]) 2298117395Skan 2299117395Skan(define_insn "spe_evmwhumiaa" 2300117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2301117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2302117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 707)) 2303132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2304117395Skan "TARGET_SPE" 2305117395Skan "evmwhumiaa %0,%1,%2" 2306117395Skan [(set_attr "type" "veccomplex") 2307117395Skan (set_attr "length" "4")]) 2308117395Skan 2309117395Skan(define_insn "spe_evmwhssfan" 2310117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2311117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2312117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 708)) 2313117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2314132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2315117395Skan "TARGET_SPE" 2316117395Skan "evmwhssfan %0,%1,%2" 2317117395Skan [(set_attr "type" "veccomplex") 2318117395Skan (set_attr "length" "4")]) 2319117395Skan 2320117395Skan(define_insn "spe_evmwhssian" 2321117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2322117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2323117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 709)) 2324117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2325132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2326117395Skan "TARGET_SPE" 2327117395Skan "evmwhssian %0,%1,%2" 2328117395Skan [(set_attr "type" "veccomplex") 2329117395Skan (set_attr "length" "4")]) 2330117395Skan 2331117395Skan(define_insn "spe_evmwhsmfan" 2332117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2333117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2334117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 710)) 2335132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2336117395Skan "TARGET_SPE" 2337117395Skan "evmwhsmfan %0,%1,%2" 2338117395Skan [(set_attr "type" "veccomplex") 2339117395Skan (set_attr "length" "4")]) 2340117395Skan 2341117395Skan(define_insn "spe_evmwhsmian" 2342117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2343117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2344117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 711)) 2345132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2346117395Skan "TARGET_SPE" 2347117395Skan "evmwhsmian %0,%1,%2" 2348117395Skan [(set_attr "type" "veccomplex") 2349117395Skan (set_attr "length" "4")]) 2350117395Skan 2351117395Skan(define_insn "spe_evmwhumian" 2352117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2353117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2354117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 713)) 2355132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2356117395Skan "TARGET_SPE" 2357117395Skan "evmwhumian %0,%1,%2" 2358117395Skan [(set_attr "type" "veccomplex") 2359117395Skan (set_attr "length" "4")]) 2360117395Skan 2361117395Skan(define_insn "spe_evmwhgssfaa" 2362117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2363117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2364117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 714)) 2365117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2366132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2367117395Skan "TARGET_SPE" 2368117395Skan "evmwhgssfaa %0,%1,%2" 2369117395Skan [(set_attr "type" "veccomplex") 2370117395Skan (set_attr "length" "4")]) 2371117395Skan 2372117395Skan(define_insn "spe_evmwhgsmfaa" 2373117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2374117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2375117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 715)) 2376132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2377117395Skan "TARGET_SPE" 2378117395Skan "evmwhgsmfaa %0,%1,%2" 2379117395Skan [(set_attr "type" "veccomplex") 2380117395Skan (set_attr "length" "4")]) 2381117395Skan 2382117395Skan(define_insn "spe_evmwhgsmiaa" 2383117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2384117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2385117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 716)) 2386132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2387117395Skan "TARGET_SPE" 2388117395Skan "evmwhgsmiaa %0,%1,%2" 2389117395Skan [(set_attr "type" "veccomplex") 2390117395Skan (set_attr "length" "4")]) 2391117395Skan 2392117395Skan(define_insn "spe_evmwhgumiaa" 2393117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2394117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2395117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 717)) 2396132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2397117395Skan "TARGET_SPE" 2398117395Skan "evmwhgumiaa %0,%1,%2" 2399117395Skan [(set_attr "type" "veccomplex") 2400117395Skan (set_attr "length" "4")]) 2401117395Skan 2402117395Skan(define_insn "spe_evmwhgssfan" 2403117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2404117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2405117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 718)) 2406117395Skan (clobber (reg:SI SPEFSCR_REGNO)) 2407132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2408117395Skan "TARGET_SPE" 2409117395Skan "evmwhgssfan %0,%1,%2" 2410117395Skan [(set_attr "type" "veccomplex") 2411117395Skan (set_attr "length" "4")]) 2412117395Skan 2413117395Skan(define_insn "spe_evmwhgsmfan" 2414117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2415117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2416117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 719)) 2417132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2418117395Skan "TARGET_SPE" 2419117395Skan "evmwhgsmfan %0,%1,%2" 2420117395Skan [(set_attr "type" "veccomplex") 2421117395Skan (set_attr "length" "4")]) 2422117395Skan 2423117395Skan(define_insn "spe_evmwhgsmian" 2424117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2425117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2426117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 720)) 2427132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2428117395Skan "TARGET_SPE" 2429117395Skan "evmwhgsmian %0,%1,%2" 2430117395Skan [(set_attr "type" "veccomplex") 2431117395Skan (set_attr "length" "4")]) 2432117395Skan 2433117395Skan(define_insn "spe_evmwhgumian" 2434117395Skan [(set (match_operand:V2SI 0 "gpc_reg_operand" "=r") 2435117395Skan (unspec:V2SI [(match_operand:V2SI 1 "gpc_reg_operand" "r") 2436117395Skan (match_operand:V2SI 2 "gpc_reg_operand" "r")] 721)) 2437132718Skan (set (reg:V2SI SPE_ACC_REGNO) (unspec:V2SI [(const_int 0)] 0))] 2438117395Skan "TARGET_SPE" 2439117395Skan "evmwhgumian %0,%1,%2" 2440117395Skan [(set_attr "type" "veccomplex") 2441117395Skan (set_attr "length" "4")]) 2442117395Skan 2443117395Skan(define_insn "spe_mtspefscr" 2444117395Skan [(set (reg:SI SPEFSCR_REGNO) 2445117395Skan (unspec_volatile:SI [(match_operand:SI 0 "register_operand" "r")] 2446117395Skan 722))] 2447117395Skan "TARGET_SPE" 2448117395Skan "mtspefscr %0" 2449117395Skan [(set_attr "type" "vecsimple")]) 2450117395Skan 2451117395Skan(define_insn "spe_mfspefscr" 2452117395Skan [(set (match_operand:SI 0 "register_operand" "=r") 2453117395Skan (unspec_volatile:SI [(reg:SI SPEFSCR_REGNO)] 723))] 2454117395Skan "TARGET_SPE" 2455117395Skan "mfspefscr %0" 2456117395Skan [(set_attr "type" "vecsimple")]) 2457117395Skan 2458132718Skan;; FP comparison stuff. 2459132718Skan 2460132718Skan;; Flip the GT bit. 2461132718Skan(define_insn "e500_flip_gt_bit" 2462132718Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2463132718Skan (unspec:CCFP 2464132718Skan [(match_operand:CCFP 1 "cc_reg_operand" "y")] 999))] 2465132718Skan "!TARGET_FPRS && TARGET_HARD_FLOAT" 2466132718Skan "* 2467132718Skan{ 2468132718Skan return output_e500_flip_gt_bit (operands[0], operands[1]); 2469132718Skan}" 2470132718Skan [(set_attr "type" "cr_logical")]) 2471132718Skan 2472117395Skan;; MPC8540 single-precision FP instructions on GPRs. 2473117395Skan;; We have 2 variants for each. One for IEEE compliant math and one 2474117395Skan;; for non IEEE compliant math. 2475117395Skan 2476117395Skan(define_insn "cmpsfeq_gpr" 2477117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2478132718Skan (unspec:CCFP 2479132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2480132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2481132718Skan 1000))] 2482117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2483117395Skan "efscmpeq %0,%1,%2" 2484132718Skan [(set_attr "type" "veccmp")]) 2485117395Skan 2486117395Skan(define_insn "tstsfeq_gpr" 2487117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2488132718Skan (unspec:CCFP 2489132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2490132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2491132718Skan 1001))] 2492117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2493117395Skan "efststeq %0,%1,%2" 2494132718Skan [(set_attr "type" "veccmpsimple")]) 2495117395Skan 2496117395Skan(define_insn "cmpsfgt_gpr" 2497117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2498132718Skan (unspec:CCFP 2499132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2500132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2501132718Skan 1002))] 2502117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2503117395Skan "efscmpgt %0,%1,%2" 2504132718Skan [(set_attr "type" "veccmp")]) 2505117395Skan 2506117395Skan(define_insn "tstsfgt_gpr" 2507117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2508132718Skan (unspec:CCFP 2509132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2510132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2511132718Skan 1003))] 2512117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2513117395Skan "efststgt %0,%1,%2" 2514132718Skan [(set_attr "type" "veccmpsimple")]) 2515117395Skan 2516117395Skan(define_insn "cmpsflt_gpr" 2517117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2518132718Skan (unspec:CCFP 2519132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2520132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2521132718Skan 1004))] 2522117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && !flag_unsafe_math_optimizations" 2523117395Skan "efscmplt %0,%1,%2" 2524132718Skan [(set_attr "type" "veccmp")]) 2525117395Skan 2526117395Skan(define_insn "tstsflt_gpr" 2527117395Skan [(set (match_operand:CCFP 0 "cc_reg_operand" "=y") 2528132718Skan (unspec:CCFP 2529132718Skan [(compare:CCFP (match_operand:SF 1 "gpc_reg_operand" "r") 2530132718Skan (match_operand:SF 2 "gpc_reg_operand" "r"))] 2531132718Skan 1005))] 2532117395Skan "TARGET_HARD_FLOAT && !TARGET_FPRS && flag_unsafe_math_optimizations" 2533117395Skan "efststlt %0,%1,%2" 2534132718Skan [(set_attr "type" "veccmpsimple")]) 2535