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