Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 54c340b | 2014-08-07 18:52:39 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 0013b92 | 2014-08-08 16:43:49 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 71 | let Predicates = [HasSPE], isAsmParserOnly = 1 in { |
| 72 | |
Joerg Sonnenberger | 0013b92 | 2014-08-08 16:43:49 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 111 | def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA), |
| 112 | "evmra $RT, $RA", IIC_VecFP> { |
| 113 | let RB = 0; |
| 114 | } |
| 115 | |
Joerg Sonnenberger | 54c340b | 2014-08-07 18:52:39 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 54c340b | 2014-08-07 18:52:39 +0000 | [diff] [blame] | 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 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 447 | } // HasSPE |