Home | History | Annotate | Download | only in PowerPC
      1 //=======-- PPCInstrSPE.td - The PowerPC SPE Extension -*- tablegen -*-=======//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // This file describes the Signal Processing Engine extension to
     11 // the PowerPC instruction set.
     12 //
     13 //===----------------------------------------------------------------------===//
     14 
     15 class EVXForm_1<bits<11> xo, dag OOL, dag IOL, string asmstr,
     16                InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
     17   bits<5> RT;
     18   bits<5> RA;
     19   bits<5> RB;
     20 
     21   let Pattern = [];
     22   
     23   let Inst{6-10}  = RT;
     24   let Inst{11-15} = RA;
     25   let Inst{16-20} = RB;
     26   let Inst{21-31} = xo;
     27 }
     28 
     29 class EVXForm_2<bits<11> xo, dag OOL, dag IOL, string asmstr,
     30                InstrItinClass itin> : EVXForm_1<xo, OOL, IOL, asmstr, itin> {
     31   let RB = 0;
     32 }
     33 
     34 class EVXForm_3<bits<11> xo, dag OOL, dag IOL, string asmstr,
     35               InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
     36   bits<3> crD;
     37   bits<5> RA;
     38   bits<5> RB;
     39 
     40   let Pattern = [];
     41   
     42   let Inst{6-8}  = crD;
     43   let Inst{9-10}  = 0;
     44   let Inst{11-15} = RA;
     45   let Inst{16-20} = RB;
     46   let Inst{21-31} = xo;
     47 }
     48 
     49 class EVXForm_D<bits<11> xo, dag OOL, dag IOL, string asmstr,
     50                InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
     51   bits<5> RT;
     52   bits<21> D;
     53 
     54   let Pattern = [];
     55 
     56   let Inst{6-10}  = RT;
     57   let Inst{20} = D{0};
     58   let Inst{19} = D{1};
     59   let Inst{18} = D{2};
     60   let Inst{17} = D{3};
     61   let Inst{16} = D{4};
     62   let Inst{15} = D{5};
     63   let Inst{14} = D{6};
     64   let Inst{13} = D{7};
     65   let Inst{12} = D{8};
     66   let Inst{11} = D{9};
     67   let Inst{11-20} = D{0-9};
     68   let Inst{21-31} = xo;
     69 }
     70 
     71 let Predicates = [HasSPE], isAsmParserOnly = 1 in {
     72 
     73 def EVLDD          : EVXForm_D<769, (outs gprc:$RT), (ins spe8dis:$dst),
     74                                "evldd $RT, $dst", IIC_VecFP>;
     75 def EVLDW          : EVXForm_D<771, (outs gprc:$RT), (ins spe8dis:$dst),
     76                                "evldw $RT, $dst", IIC_VecFP>;
     77 def EVLDH          : EVXForm_D<773, (outs gprc:$RT), (ins spe8dis:$dst),
     78                                "evldh $RT, $dst", IIC_VecFP>;
     79 def EVLHHESPLAT    : EVXForm_D<777, (outs gprc:$RT), (ins spe2dis:$dst),
     80                                "evlhhesplat $RT, $dst", IIC_VecFP>;
     81 def EVLHHOUSPLAT   : EVXForm_D<781, (outs gprc:$RT), (ins spe2dis:$dst),
     82                                "evlhhousplat $RT, $dst", IIC_VecFP>;
     83 def EVLHHOSSPLAT   : EVXForm_D<783, (outs gprc:$RT), (ins spe2dis:$dst),
     84                                "evlhhossplat $RT, $dst", IIC_VecFP>;
     85 def EVLWHE         : EVXForm_D<785, (outs gprc:$RT), (ins spe4dis:$dst),
     86                                "evlwhe $RT, $dst", IIC_VecFP>;
     87 def EVLWHOU        : EVXForm_D<789, (outs gprc:$RT), (ins spe4dis:$dst),
     88                                "evlwhou $RT, $dst", IIC_VecFP>;
     89 def EVLWHOS        : EVXForm_D<791, (outs gprc:$RT), (ins spe4dis:$dst),
     90                                "evlwhos $RT, $dst", IIC_VecFP>;
     91 def EVLWWSPLAT     : EVXForm_D<793, (outs gprc:$RT), (ins spe4dis:$dst),
     92                                "evlwwsplat $RT, $dst", IIC_VecFP>;
     93 def EVLWHSPLAT     : EVXForm_D<797, (outs gprc:$RT), (ins spe4dis:$dst),
     94                                "evlwhsplat $RT, $dst", IIC_VecFP>;
     95 
     96 def EVSTDD         : EVXForm_D<801, (outs), (ins gprc:$RT, spe8dis:$dst),
     97                                "evstdd $RT, $dst", IIC_VecFP>;
     98 def EVSTDH         : EVXForm_D<805, (outs), (ins gprc:$RT, spe8dis:$dst),
     99                                "evstdh $RT, $dst", IIC_VecFP>;
    100 def EVSTDW         : EVXForm_D<803, (outs), (ins gprc:$RT, spe8dis:$dst),
    101                                "evstdw $RT, $dst", IIC_VecFP>;
    102 def EVSTWHE        : EVXForm_D<817, (outs), (ins gprc:$RT, spe4dis:$dst),
    103                                "evstwhe $RT, $dst", IIC_VecFP>;
    104 def EVSTWHO        : EVXForm_D<821, (outs), (ins gprc:$RT, spe4dis:$dst),
    105                                "evstwho $RT, $dst", IIC_VecFP>;
    106 def EVSTWWE        : EVXForm_D<825, (outs), (ins gprc:$RT, spe4dis:$dst),
    107                                "evstwwe $RT, $dst", IIC_VecFP>;
    108 def EVSTWWO        : EVXForm_D<829, (outs), (ins gprc:$RT, spe4dis:$dst),
    109                                "evstwwo $RT, $dst", IIC_VecFP>;
    110 
    111 def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA),
    112                       "evmra $RT, $RA", IIC_VecFP> {
    113   let RB = 0;
    114 }
    115 
    116 def BRINC          : EVXForm_1<527, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    117                                "brinc $RT, $RA, $RB", IIC_VecFP>;
    118 def EVABS          : EVXForm_2<520, (outs gprc:$RT), (ins gprc:$RA),
    119                                "evabs $RT, $RA", IIC_VecFP>;
    120 
    121 def EVADDIW        : EVXForm_1<514, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB),
    122                                "evaddiw $RT, $RB, $RA", IIC_VecFP>;
    123 def EVADDSMIAAW    : EVXForm_2<1225, (outs gprc:$RT), (ins gprc:$RA),
    124                                "evaddsmiaaw $RT, $RA", IIC_VecFP>;
    125 def EVADDSSIAAW    : EVXForm_2<1217, (outs gprc:$RT), (ins gprc:$RA),
    126                                "evaddssiaaw $RT, $RA", IIC_VecFP>;
    127 def EVADDUSIAAW    : EVXForm_2<1216, (outs gprc:$RT), (ins gprc:$RA),
    128                                "evaddusiaaw $RT, $RA", IIC_VecFP>;
    129 def EVADDUMIAAW    : EVXForm_2<1224, (outs gprc:$RT), (ins gprc:$RA),
    130                                "evaddumiaaw $RT, $RA", IIC_VecFP>;
    131 def EVADDW         : EVXForm_1<512, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    132                                "evaddw $RT, $RA, $RB", IIC_VecFP>;
    133 
    134 def EVAND          : EVXForm_1<529, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    135                                "evand $RT, $RA, $RB", IIC_VecFP>;
    136 def EVANDC         : EVXForm_1<530, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    137                                "evandc $RT, $RA, $RB", IIC_VecFP>;
    138 
    139 def EVCMPEQ        : EVXForm_3<564, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB),
    140                                "evcmpeq $crD, $RA, $RB", IIC_VecFP>;
    141 def EVCMPGTS       : EVXForm_3<561, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB),
    142                                "evcmpgts $crD, $RA, $RB", IIC_VecFP>;
    143 def EVCMPGTU       : EVXForm_3<560, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB),
    144                                "evcmpgtu $crD, $RA, $RB", IIC_VecFP>;
    145 def EVCMPLTS       : EVXForm_3<563, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB),
    146                                "evcmplts $crD, $RA, $RB", IIC_VecFP>;
    147 def EVCMPLTU       : EVXForm_3<562, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB),
    148                                "evcmpltu $crD, $RA, $RB", IIC_VecFP>;
    149 
    150 def EVCNTLSW       : EVXForm_2<526, (outs gprc:$RT), (ins gprc:$RA),
    151                                "evcntlsw $RT, $RA", IIC_VecFP>;
    152 def EVCNTLZW       : EVXForm_2<525, (outs gprc:$RT), (ins gprc:$RA),
    153                                "evcntlzw $RT, $RA", IIC_VecFP>;
    154 
    155 def EVDIVWS        : EVXForm_1<1222, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    156                                "evdivws $RT, $RA, $RB", IIC_VecFP>;
    157 def EVDIVWU        : EVXForm_1<1223, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    158                                "evdivwu $RT, $RA, $RB", IIC_VecFP>;
    159 
    160 def EVEQV          : EVXForm_1<537, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    161                                "eveqv $RT, $RA, $RB", IIC_VecFP>;
    162 
    163 def EVEXTSB        : EVXForm_2<522, (outs gprc:$RT), (ins gprc:$RA),
    164                                "evextsb $RT, $RA", IIC_VecFP>;
    165 def EVEXTSH        : EVXForm_2<523, (outs gprc:$RT), (ins gprc:$RA),
    166                                "evextsh $RT, $RA", IIC_VecFP>;
    167 
    168 def EVLDDX         : EVXForm_1<768, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    169                                "evlddx $RT, $RA, $RB", IIC_VecFP>;
    170 def EVLDWX         : EVXForm_1<770, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    171                                "evldwx $RT, $RA, $RB", IIC_VecFP>;
    172 def EVLDHX         : EVXForm_1<772, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    173                                "evldhx $RT, $RA, $RB", IIC_VecFP>;
    174 def EVLHHESPLATX   : EVXForm_1<776, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    175                                "evlhhesplatx $RT, $RA, $RB", IIC_VecFP>;
    176 def EVLHHOUSPLATX  : EVXForm_1<780, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    177                                "evlhhousplatx $RT, $RA, $RB", IIC_VecFP>;
    178 def EVLHHOSSPLATX  : EVXForm_1<782, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    179                                "evlhhossplatx $RT, $RA, $RB", IIC_VecFP>;
    180 def EVLWHEX        : EVXForm_1<784, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    181                                "evlwhex $RT, $RA, $RB", IIC_VecFP>;
    182 def EVLWHOUX       : EVXForm_1<788, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    183                                "evlwhoux $RT, $RA, $RB", IIC_VecFP>;
    184 def EVLWHOSX       : EVXForm_1<790, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    185                                "evlwhosx $RT, $RA, $RB", IIC_VecFP>;
    186 def EVLWWSPLATX    : EVXForm_1<792, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    187                                "evlwwsplatx $RT, $RA, $RB", IIC_VecFP>;
    188 def EVLWHSPLATX    : EVXForm_1<796, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    189                                "evlwhsplatx $RT, $RA, $RB", IIC_VecFP>;
    190 
    191 def EVMERGEHI      : EVXForm_1<556, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    192                                "evmergehi $RT, $RA, $RB", IIC_VecFP>;
    193 def EVMERGELO      : EVXForm_1<557, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    194                                "evmergelo $RT, $RA, $RB", IIC_VecFP>;
    195 def EVMERGEHILO    : EVXForm_1<558, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    196                                "evmergehilo $RT, $RA, $RB", IIC_VecFP>;
    197 def EVMERGELOHI    : EVXForm_1<559, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    198                                "evmergelohi $RT, $RA, $RB", IIC_VecFP>;
    199 
    200 def EVMHEGSMFAA    : EVXForm_1<1323, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    201                                "evmhegsmfaa $RT, $RA, $RB", IIC_VecFP>;
    202 def EVMHEGSMFAN    : EVXForm_1<1451, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    203                                "evmhegsmfan $RT, $RA, $RB", IIC_VecFP>;
    204 def EVMHEGSMIAA    : EVXForm_1<1321, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    205                                "evmhegsmiaa $RT, $RA, $RB", IIC_VecFP>;
    206 def EVMHEGSMIAN    : EVXForm_1<1449, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    207                                "evmhegsmian $RT, $RA, $RB", IIC_VecFP>;
    208 def EVMHEGUMIAA    : EVXForm_1<1320, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    209                                "evmhegumiaa $RT, $RA, $RB", IIC_VecFP>;
    210 def EVMHEGUMIAN    : EVXForm_1<1448, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    211                                "evmhegumian $RT, $RA, $RB", IIC_VecFP>;
    212 
    213 def EVMHESMF       : EVXForm_1<1035, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    214                                "evmhesmf $RT, $RA, $RB", IIC_VecFP>;
    215 def EVMHESMFA      : EVXForm_1<1067, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    216                                "evmhesmfa $RT, $RA, $RB", IIC_VecFP>;
    217 def EVMHESMFAAW    : EVXForm_1<1291, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    218                                "evmhesmfaaw $RT, $RA, $RB", IIC_VecFP>;
    219 def EVMHESMFANW    : EVXForm_1<1419, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    220                                "evmhesmfanw $RT, $RA, $RB", IIC_VecFP>;
    221 def EVMHESMI       : EVXForm_1<1033, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    222                                "evmhesmi $RT, $RA, $RB", IIC_VecFP>;
    223 def EVMHESMIA      : EVXForm_1<1065, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    224                                "evmhesmia $RT, $RA, $RB", IIC_VecFP>;
    225 def EVMHESMIAAW    : EVXForm_1<1289, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    226                                "evmhesmiaaw $RT, $RA, $RB", IIC_VecFP>;
    227 def EVMHESMIANW    : EVXForm_1<1417, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    228                                "evmhesmianw $RT, $RA, $RB", IIC_VecFP>;
    229 def EVMHESSF       : EVXForm_1<1027, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    230                                "evmhessf $RT, $RA, $RB", IIC_VecFP>;
    231 def EVMHESSFA      : EVXForm_1<1059, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    232                                "evmhessfa $RT, $RA, $RB", IIC_VecFP>;
    233 def EVMHESSFAAW    : EVXForm_1<1283, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    234                                "evmhessfaaw $RT, $RA, $RB", IIC_VecFP>;
    235 def EVMHESSFANW    : EVXForm_1<1411, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    236                                "evmhessfanw $RT, $RA, $RB", IIC_VecFP>;
    237 def EVMHESSIAAW    : EVXForm_1<1281, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    238                                "evmhessiaaw $RT, $RA, $RB", IIC_VecFP>;
    239 def EVMHESSIANW    : EVXForm_1<1409, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    240                                "evmhessianw $RT, $RA, $RB", IIC_VecFP>;
    241 def EVMHEUMI       : EVXForm_1<1032, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    242                                "evmheumi $RT, $RA, $RB", IIC_VecFP>;
    243 def EVMHEUMIA      : EVXForm_1<1064, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    244                                "evmheumia $RT, $RA, $RB", IIC_VecFP>;
    245 def EVMHEUMIAAW    : EVXForm_1<1288, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    246                                "evmheumiaaw $RT, $RA, $RB", IIC_VecFP>;
    247 def EVMHEUMIANW    : EVXForm_1<1416, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    248                                "evmheumianw $RT, $RA, $RB", IIC_VecFP>;
    249 def EVMHEUSIAAW    : EVXForm_1<1280, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    250                                "evmheusiaaw $RT, $RA, $RB", IIC_VecFP>;
    251 def EVMHEUSIANW    : EVXForm_1<1408, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    252                                "evmheusianw $RT, $RA, $RB", IIC_VecFP>;
    253 def EVMHOGSMFAA    : EVXForm_1<1327, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    254                                "evmhogsmfaa $RT, $RA, $RB", IIC_VecFP>;
    255 def EVMHOGSMFAN    : EVXForm_1<1455, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    256                                "evmhogsmfan $RT, $RA, $RB", IIC_VecFP>;
    257 def EVMHOGSMIAA    : EVXForm_1<1325, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    258                                "evmhogsmiaa $RT, $RA, $RB", IIC_VecFP>;
    259 def EVMHOGSMIAN    : EVXForm_1<1453, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    260                                "evmhogsmian $RT, $RA, $RB", IIC_VecFP>;
    261 def EVMHOGUMIAA    : EVXForm_1<1324, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    262                                "evmhogumiaa $RT, $RA, $RB", IIC_VecFP>;
    263 def EVMHOGUMIAN    : EVXForm_1<1452, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    264                                "evmhogumian $RT, $RA, $RB", IIC_VecFP>;
    265 def EVMHOSMF       : EVXForm_1<1039, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    266                                "evmhosmf $RT, $RA, $RB", IIC_VecFP>;
    267 def EVMHOSMFA      : EVXForm_1<1071, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    268                                "evmhosmfa $RT, $RA, $RB", IIC_VecFP>;
    269 def EVMHOSMFAAW    : EVXForm_1<1295, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    270                                "evmhosmfaaw $RT, $RA, $RB", IIC_VecFP>;
    271 def EVMHOSMFANW    : EVXForm_1<1423, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    272                                "evmhosmfanw $RT, $RA, $RB", IIC_VecFP>;
    273 def EVMHOSMI       : EVXForm_1<1037, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    274                                "evmhosmi $RT, $RA, $RB", IIC_VecFP>;
    275 def EVMHOSMIA      : EVXForm_1<1069, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    276                                "evmhosmia $RT, $RA, $RB", IIC_VecFP>;
    277 def EVMHOSMIAAW    : EVXForm_1<1293, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    278                                "evmhosmiaaw $RT, $RA, $RB", IIC_VecFP>;
    279 def EVMHOSMIANW    : EVXForm_1<1421, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    280                                "evmhosmianw $RT, $RA, $RB", IIC_VecFP>;
    281 def EVMHOSSF       : EVXForm_1<1031, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    282                                "evmhossf $RT, $RA, $RB", IIC_VecFP>;
    283 def EVMHOSSFA      : EVXForm_1<1063, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    284                                "evmhossfa $RT, $RA, $RB", IIC_VecFP>;
    285 def EVMHOSSFAAW    : EVXForm_1<1287, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    286                                "evmhossfaaw $RT, $RA, $RB", IIC_VecFP>;
    287 def EVMHOSSFANW    : EVXForm_1<1415, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    288                                "evmhossfanw $RT, $RA, $RB", IIC_VecFP>;
    289 def EVMHOSSIAAW    : EVXForm_1<1285, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    290                                "evmhossiaaw $RT, $RA, $RB", IIC_VecFP>;
    291 def EVMHOSSIANW    : EVXForm_1<1413, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    292                                "evmhossianw $RT, $RA, $RB", IIC_VecFP>;
    293 def EVMHOUMI       : EVXForm_1<1036, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    294                                "evmhoumi $RT, $RA, $RB", IIC_VecFP>;
    295 def EVMHOUMIA      : EVXForm_1<1068, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    296                                "evmhoumia $RT, $RA, $RB", IIC_VecFP>;
    297 def EVMHOUMIAAW    : EVXForm_1<1292, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    298                                "evmhoumiaaw $RT, $RA, $RB", IIC_VecFP>;
    299 def EVMHOUMIANW    : EVXForm_1<1420, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    300                                "evmhoumianw $RT, $RA, $RB", IIC_VecFP>;
    301 def EVMHOUSIAAW    : EVXForm_1<1284, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    302                                "evmhousiaaw $RT, $RA, $RB", IIC_VecFP>;
    303 def EVMHOUSIANW    : EVXForm_1<1412, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    304                                "evmhousianw $RT, $RA, $RB", IIC_VecFP>;
    305 
    306 
    307 def EVMWHSMF       : EVXForm_1<1103, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    308                                "evmwhsmf $RT, $RA, $RB", IIC_VecFP>;
    309 def EVMWHSMFA      : EVXForm_1<1135, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    310                                "evmwhsmfa $RT, $RA, $RB", IIC_VecFP>;
    311 def EVMWHSMI       : EVXForm_1<1101, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    312                                "evmwhsmi $RT, $RA, $RB", IIC_VecFP>;
    313 def EVMWHSMIA      : EVXForm_1<1133, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    314                                "evmwhsmia $RT, $RA, $RB", IIC_VecFP>;
    315 def EVMWHSSF       : EVXForm_1<1095, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    316                                "evmwhssf $RT, $RA, $RB", IIC_VecFP>;
    317 def EVMWHSSFA      : EVXForm_1<1127, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    318                                "evmwhssfa $RT, $RA, $RB", IIC_VecFP>;
    319 def EVMWHUMI       : EVXForm_1<1100, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    320                                "evmwhumi $RT, $RA, $RB", IIC_VecFP>;
    321 def EVMWHUMIA      : EVXForm_1<1132, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    322                                "evmwhumia $RT, $RA, $RB", IIC_VecFP>;
    323 def EVMWLSMIAAW    : EVXForm_1<1353, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    324                                "evmwlsmiaaw $RT, $RA, $RB", IIC_VecFP>;
    325 def EVMWLSMIANW    : EVXForm_1<1481, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    326                                "evmwlsmianw $RT, $RA, $RB", IIC_VecFP>;
    327 def EVMWLSSIAAW    : EVXForm_1<1345, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    328                                "evmwlssiaaw $RT, $RA, $RB", IIC_VecFP>;
    329 def EVMWLSSIANW    : EVXForm_1<1473, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    330                                "evmwlssianw $RT, $RA, $RB", IIC_VecFP>;
    331 def EVMWLUMI       : EVXForm_1<1096, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    332                                "evmwlumi $RT, $RA, $RB", IIC_VecFP>;
    333 def EVMWLUMIA      : EVXForm_1<1128, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    334                                "evmwlumia $RT, $RA, $RB", IIC_VecFP>;
    335 def EVMWLUMIAAW    : EVXForm_1<1352, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    336                                "evmwlumiaaw $RT, $RA, $RB", IIC_VecFP>;
    337 def EVMWLUMIANW    : EVXForm_1<1480, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    338                                "evmwlumianw $RT, $RA, $RB", IIC_VecFP>;
    339 def EVMWLUSIAAW    : EVXForm_1<1344, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    340                                "evmwlusiaaw $RT, $RA, $RB", IIC_VecFP>;
    341 def EVMWLUSIANW    : EVXForm_1<1472, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    342                                "evmwlusianw $RT, $RA, $RB", IIC_VecFP>;
    343 def EVMWSMF        : EVXForm_1<1115, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    344                                "evmwsmf $RT, $RA, $RB", IIC_VecFP>;
    345 def EVMWSMFA       : EVXForm_1<1147, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    346                                "evmwsmfa $RT, $RA, $RB", IIC_VecFP>;
    347 def EVMWSMFAA      : EVXForm_1<1371, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    348                                "evmwsmfaa $RT, $RA, $RB", IIC_VecFP>;
    349 def EVMWSMFAN      : EVXForm_1<1499, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    350                                "evmwsmfan $RT, $RA, $RB", IIC_VecFP>;
    351 def EVMWSMI        : EVXForm_1<1113, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    352                                "evmwsmi $RT, $RA, $RB", IIC_VecFP>;
    353 def EVMWSMIA       : EVXForm_1<1145, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    354                                "evmwsmia $RT, $RA, $RB", IIC_VecFP>;
    355 def EVMWSMIAA      : EVXForm_1<1369, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    356                                "evmwsmiaa $RT, $RA, $RB", IIC_VecFP>;
    357 def EVMWSMIAN      : EVXForm_1<1497, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    358                                "evmwsmian $RT, $RA, $RB", IIC_VecFP>;
    359 def EVMWSSF        : EVXForm_1<1107, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    360                                "evmwssf $RT, $RA, $RB", IIC_VecFP>;
    361 def EVMWSSFA       : EVXForm_1<1139, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    362                                "evmwssfa $RT, $RA, $RB", IIC_VecFP>;
    363 def EVMWSSFAA      : EVXForm_1<1363, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    364                                "evmwssfaa $RT, $RA, $RB", IIC_VecFP>;
    365 def EVMWSSFAN      : EVXForm_1<1491, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    366                                "evmwssfan $RT, $RA, $RB", IIC_VecFP>;
    367 def EVMWUMI        : EVXForm_1<1112, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    368                                "evmwumi $RT, $RA, $RB", IIC_VecFP>;
    369 def EVMWUMIA       : EVXForm_1<1144, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    370                                "evmwumia $RT, $RA, $RB", IIC_VecFP>;
    371 def EVMWUMIAA      : EVXForm_1<1368, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    372                                "evmwumiaa $RT, $RA, $RB", IIC_VecFP>;
    373 def EVMWUMIAN      : EVXForm_1<1496, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    374                                "evmwumian $RT, $RA, $RB", IIC_VecFP>;
    375 
    376 
    377 def EVNAND         : EVXForm_1<542, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    378                                "evnand $RT, $RA, $RB", IIC_VecFP>;
    379 
    380 def EVNEG          : EVXForm_2<521, (outs gprc:$RT), (ins gprc:$RA),
    381                                "evneg $RT, $RA", IIC_VecFP>;
    382 
    383 def EVNOR          : EVXForm_1<536, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    384                                "evnor $RT, $RA, $RB", IIC_VecFP>;
    385 def EVOR           : EVXForm_1<535, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    386                                "evor $RT, $RA, $RB", IIC_VecFP>;
    387 def EVORC          : EVXForm_1<539, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    388                                "evorc $RT, $RA, $RB", IIC_VecFP>;
    389 
    390 def EVRLWI         : EVXForm_1<554, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB),
    391                                "evrlwi $RT, $RA, $RB", IIC_VecFP>;
    392 def EVRLW          : EVXForm_1<552, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    393                                "evrlw $RT, $RA, $RB", IIC_VecFP>;
    394 
    395 def EVRNDW         : EVXForm_2<524, (outs gprc:$RT), (ins gprc:$RA),
    396                                "evrndw $RT, $RA", IIC_VecFP>;
    397 
    398 def EVSLWI         : EVXForm_1<550, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB),
    399                                "evslwi $RT, $RA, $RB", IIC_VecFP>;
    400 def EVSLW          : EVXForm_1<548, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    401                                "evslw $RT, $RA, $RB", IIC_VecFP>;
    402 
    403 def EVSPLATFI      : EVXForm_2<555, (outs gprc:$RT), (ins i32imm:$RA),
    404                                "evsplatfi $RT, $RA", IIC_VecFP>;
    405 def EVSPLATI       : EVXForm_2<553, (outs gprc:$RT), (ins i32imm:$RA),
    406                                "evsplati $RT, $RA", IIC_VecFP>;
    407 
    408 def EVSRWIS        : EVXForm_1<547, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB),
    409                                "evsrwis $RT, $RA, $RB", IIC_VecFP>;
    410 def EVSRWIU        : EVXForm_1<546, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB),
    411                                "evsrwiu $RT, $RA, $RB", IIC_VecFP>;
    412 def EVSRWS         : EVXForm_1<545, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    413                                "evsrws $RT, $RA, $RB", IIC_VecFP>;
    414 def EVSRWU         : EVXForm_1<544, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    415                                "evsrwu $RT, $RA, $RB", IIC_VecFP>;
    416 
    417 def EVSTDDX        : EVXForm_1<800, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    418                                "evstddx $RT, $RA, $RB", IIC_VecFP>;
    419 def EVSTDHX        : EVXForm_1<804, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    420                                "evstdhx $RT, $RA, $RB", IIC_VecFP>;
    421 def EVSTDWX        : EVXForm_1<802, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    422                                "evstdwx $RT, $RA, $RB", IIC_VecFP>;
    423 def EVSTWHEX       : EVXForm_1<816, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    424                                "evstwhex $RT, $RA, $RB", IIC_VecFP>;
    425 def EVSTWHOX       : EVXForm_1<820, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    426                                "evstwhox $RT, $RA, $RB", IIC_VecFP>;
    427 def EVSTWWEX       : EVXForm_1<824, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    428                                "evstwwex $RT, $RA, $RB", IIC_VecFP>;
    429 def EVSTWWOX       : EVXForm_1<828, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB),
    430                                "evstwwox $RT, $RA, $RB", IIC_VecFP>;
    431 
    432 def EVSUBFSSIAAW   : EVXForm_2<1219, (outs gprc:$RT), (ins gprc:$RA),
    433                                "evsubfssiaaw $RT, $RA", IIC_VecFP>;
    434 def EVSUBFSMIAAW   : EVXForm_2<1227, (outs gprc:$RT), (ins gprc:$RA),
    435                                "evsubfsmiaaw $RT, $RA", IIC_VecFP>;
    436 def EVSUBFUMIAAW   : EVXForm_2<1226, (outs gprc:$RT), (ins gprc:$RA),
    437                                "evsubfumiaaw $RT, $RA", IIC_VecFP>;
    438 def EVSUBFUSIAAW   : EVXForm_2<1218, (outs gprc:$RT), (ins gprc:$RA),
    439                                "evsubfusiaaw $RT, $RA", IIC_VecFP>;
    440 def EVSUBFW        : EVXForm_1<516, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    441                                "evsubfw $RT, $RA, $RB", IIC_VecFP>;
    442 def EVSUBIFW       : EVXForm_1<518, (outs gprc:$RT), (ins u5imm:$RA, gprc:$RB),
    443                                "evsubifw $RT, $RA, $RB", IIC_VecFP>;
    444 def EVXOR          : EVXForm_1<534, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
    445                                "evxor $RT, $RA, $RB", IIC_VecFP>;
    446 
    447 } // HasSPE
    448