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 | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 49 | let Predicates = [HasSPE], isAsmParserOnly = 1 in { |
| 50 | |
| 51 | def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA), |
| 52 | "evmra $RT, $RA", IIC_VecFP> { |
| 53 | let RB = 0; |
| 54 | } |
| 55 | |
Joerg Sonnenberger | 54c340b | 2014-08-07 18:52:39 +0000 | [diff] [blame] | 56 | def BRINC : EVXForm_1<527, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 57 | "brinc $RT, $RA, $RB", IIC_VecFP>; |
| 58 | def EVABS : EVXForm_2<520, (outs gprc:$RT), (ins gprc:$RA), |
| 59 | "evabs $RT, $RA", IIC_VecFP>; |
| 60 | |
| 61 | def EVADDIW : EVXForm_1<514, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| 62 | "evaddiw $RT, $RB, $RA", IIC_VecFP>; |
| 63 | def EVADDSMIAAW : EVXForm_2<1225, (outs gprc:$RT), (ins gprc:$RA), |
| 64 | "evaddsmiaaw $RT, $RA", IIC_VecFP>; |
| 65 | def EVADDSSIAAW : EVXForm_2<1217, (outs gprc:$RT), (ins gprc:$RA), |
| 66 | "evaddssiaaw $RT, $RA", IIC_VecFP>; |
| 67 | def EVADDUSIAAW : EVXForm_2<1216, (outs gprc:$RT), (ins gprc:$RA), |
| 68 | "evaddusiaaw $RT, $RA", IIC_VecFP>; |
| 69 | def EVADDUMIAAW : EVXForm_2<1224, (outs gprc:$RT), (ins gprc:$RA), |
| 70 | "evaddumiaaw $RT, $RA", IIC_VecFP>; |
| 71 | def EVADDW : EVXForm_1<512, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 72 | "evaddw $RT, $RA, $RB", IIC_VecFP>; |
| 73 | |
| 74 | def EVAND : EVXForm_1<529, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 75 | "evand $RT, $RA, $RB", IIC_VecFP>; |
| 76 | def EVANDC : EVXForm_1<530, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 77 | "evandc $RT, $RA, $RB", IIC_VecFP>; |
| 78 | |
| 79 | def EVCMPEQ : EVXForm_3<564, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| 80 | "evcmpeq $crD, $RA, $RB", IIC_VecFP>; |
| 81 | def EVCMPGTS : EVXForm_3<561, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| 82 | "evcmpgts $crD, $RA, $RB", IIC_VecFP>; |
| 83 | def EVCMPGTU : EVXForm_3<560, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| 84 | "evcmpgtu $crD, $RA, $RB", IIC_VecFP>; |
| 85 | def EVCMPLTS : EVXForm_3<563, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| 86 | "evcmplts $crD, $RA, $RB", IIC_VecFP>; |
| 87 | def EVCMPLTU : EVXForm_3<562, (outs crrc:$crD), (ins gprc:$RA, gprc:$RB), |
| 88 | "evcmpltu $crD, $RA, $RB", IIC_VecFP>; |
| 89 | |
| 90 | def EVCNTLSW : EVXForm_2<526, (outs gprc:$RT), (ins gprc:$RA), |
| 91 | "evcntlsw $RT, $RA", IIC_VecFP>; |
| 92 | def EVCNTLZW : EVXForm_2<525, (outs gprc:$RT), (ins gprc:$RA), |
| 93 | "evcntlzw $RT, $RA", IIC_VecFP>; |
| 94 | |
| 95 | def EVDIVWS : EVXForm_1<1222, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 96 | "evdivws $RT, $RA, $RB", IIC_VecFP>; |
| 97 | def EVDIVWU : EVXForm_1<1223, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 98 | "evdivwu $RT, $RA, $RB", IIC_VecFP>; |
| 99 | |
| 100 | def EVEQV : EVXForm_1<537, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 101 | "eveqv $RT, $RA, $RB", IIC_VecFP>; |
| 102 | |
| 103 | def EVEXTSB : EVXForm_2<522, (outs gprc:$RT), (ins gprc:$RA), |
| 104 | "evextsb $RT, $RA", IIC_VecFP>; |
| 105 | def EVEXTSH : EVXForm_2<523, (outs gprc:$RT), (ins gprc:$RA), |
| 106 | "evextsh $RT, $RA", IIC_VecFP>; |
| 107 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 108 | def EVLDDX : EVXForm_1<768, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 109 | "evlddx $RT, $RA, $RB", IIC_VecFP>; |
| 110 | def EVLDWX : EVXForm_1<770, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 111 | "evldwx $RT, $RA, $RB", IIC_VecFP>; |
| 112 | def EVLDHX : EVXForm_1<772, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 113 | "evldhx $RT, $RA, $RB", IIC_VecFP>; |
| 114 | def EVLHHESPLATX : EVXForm_1<776, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 115 | "evlhhesplatx $RT, $RA, $RB", IIC_VecFP>; |
| 116 | def EVLHHOUSPLATX : EVXForm_1<780, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 117 | "evlhhousplatx $RT, $RA, $RB", IIC_VecFP>; |
| 118 | def EVLHHOSSPLATX : EVXForm_1<782, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 119 | "evlhhossplatx $RT, $RA, $RB", IIC_VecFP>; |
| 120 | def EVLWHEX : EVXForm_1<784, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 121 | "evlwhex $RT, $RA, $RB", IIC_VecFP>; |
| 122 | def EVLWHOUX : EVXForm_1<788, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 123 | "evlwhoux $RT, $RA, $RB", IIC_VecFP>; |
| 124 | def EVLWHOSX : EVXForm_1<790, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 125 | "evlwhosx $RT, $RA, $RB", IIC_VecFP>; |
| 126 | def EVLWWSPLATX : EVXForm_1<792, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 127 | "evlwwsplatx $RT, $RA, $RB", IIC_VecFP>; |
| 128 | def EVLWHSPLATX : EVXForm_1<796, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 129 | "evlwhsplatx $RT, $RA, $RB", IIC_VecFP>; |
| 130 | |
| 131 | def EVMERGEHI : EVXForm_1<556, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 132 | "evmergehi $RT, $RA, $RB", IIC_VecFP>; |
| 133 | def EVMERGELO : EVXForm_1<557, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 134 | "evmergelo $RT, $RA, $RB", IIC_VecFP>; |
| 135 | def EVMERGEHILO : EVXForm_1<558, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 136 | "evmergehilo $RT, $RA, $RB", IIC_VecFP>; |
| 137 | def EVMERGELOHI : EVXForm_1<559, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 138 | "evmergelohi $RT, $RA, $RB", IIC_VecFP>; |
| 139 | |
Joerg Sonnenberger | 54c340b | 2014-08-07 18:52:39 +0000 | [diff] [blame] | 140 | def EVMHEGSMFAA : EVXForm_1<1323, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 141 | "evmhegsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| 142 | def EVMHEGSMFAN : EVXForm_1<1451, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 143 | "evmhegsmfan $RT, $RA, $RB", IIC_VecFP>; |
| 144 | def EVMHEGSMIAA : EVXForm_1<1321, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 145 | "evmhegsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| 146 | def EVMHEGSMIAN : EVXForm_1<1449, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 147 | "evmhegsmian $RT, $RA, $RB", IIC_VecFP>; |
| 148 | def EVMHEGUMIAA : EVXForm_1<1320, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 149 | "evmhegumiaa $RT, $RA, $RB", IIC_VecFP>; |
| 150 | def EVMHEGUMIAN : EVXForm_1<1448, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 151 | "evmhegumian $RT, $RA, $RB", IIC_VecFP>; |
| 152 | |
| 153 | def EVMHESMF : EVXForm_1<1035, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 154 | "evmhesmf $RT, $RA, $RB", IIC_VecFP>; |
| 155 | def EVMHESMFA : EVXForm_1<1067, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 156 | "evmhesmfa $RT, $RA, $RB", IIC_VecFP>; |
| 157 | def EVMHESMFAAW : EVXForm_1<1291, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 158 | "evmhesmfaaw $RT, $RA, $RB", IIC_VecFP>; |
| 159 | def EVMHESMFANW : EVXForm_1<1419, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 160 | "evmhesmfanw $RT, $RA, $RB", IIC_VecFP>; |
| 161 | def EVMHESMI : EVXForm_1<1033, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 162 | "evmhesmi $RT, $RA, $RB", IIC_VecFP>; |
| 163 | def EVMHESMIA : EVXForm_1<1065, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 164 | "evmhesmia $RT, $RA, $RB", IIC_VecFP>; |
| 165 | def EVMHESMIAAW : EVXForm_1<1289, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 166 | "evmhesmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 167 | def EVMHESMIANW : EVXForm_1<1417, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 168 | "evmhesmianw $RT, $RA, $RB", IIC_VecFP>; |
| 169 | def EVMHESSF : EVXForm_1<1027, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 170 | "evmhessf $RT, $RA, $RB", IIC_VecFP>; |
| 171 | def EVMHESSFA : EVXForm_1<1059, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 172 | "evmhessfa $RT, $RA, $RB", IIC_VecFP>; |
| 173 | def EVMHESSFAAW : EVXForm_1<1283, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 174 | "evmhessfaaw $RT, $RA, $RB", IIC_VecFP>; |
| 175 | def EVMHESSFANW : EVXForm_1<1411, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 176 | "evmhessfanw $RT, $RA, $RB", IIC_VecFP>; |
| 177 | def EVMHESSIAAW : EVXForm_1<1281, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 178 | "evmhessiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 179 | def EVMHESSIANW : EVXForm_1<1409, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 180 | "evmhessianw $RT, $RA, $RB", IIC_VecFP>; |
| 181 | def EVMHEUMI : EVXForm_1<1032, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 182 | "evmheumi $RT, $RA, $RB", IIC_VecFP>; |
| 183 | def EVMHEUMIA : EVXForm_1<1064, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 184 | "evmheumia $RT, $RA, $RB", IIC_VecFP>; |
| 185 | def EVMHEUMIAAW : EVXForm_1<1288, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 186 | "evmheumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 187 | def EVMHEUMIANW : EVXForm_1<1416, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 188 | "evmheumianw $RT, $RA, $RB", IIC_VecFP>; |
| 189 | def EVMHEUSIAAW : EVXForm_1<1280, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 190 | "evmheusiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 191 | def EVMHEUSIANW : EVXForm_1<1408, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 192 | "evmheusianw $RT, $RA, $RB", IIC_VecFP>; |
| 193 | def EVMHOGSMFAA : EVXForm_1<1327, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 194 | "evmhogsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| 195 | def EVMHOGSMFAN : EVXForm_1<1455, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 196 | "evmhogsmfan $RT, $RA, $RB", IIC_VecFP>; |
| 197 | def EVMHOGSMIAA : EVXForm_1<1325, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 198 | "evmhogsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| 199 | def EVMHOGSMIAN : EVXForm_1<1453, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 200 | "evmhogsmian $RT, $RA, $RB", IIC_VecFP>; |
| 201 | def EVMHOGUMIAA : EVXForm_1<1324, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 202 | "evmhogumiaa $RT, $RA, $RB", IIC_VecFP>; |
| 203 | def EVMHOGUMIAN : EVXForm_1<1452, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 204 | "evmhogumian $RT, $RA, $RB", IIC_VecFP>; |
| 205 | def EVMHOSMF : EVXForm_1<1039, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 206 | "evmhosmf $RT, $RA, $RB", IIC_VecFP>; |
| 207 | def EVMHOSMFA : EVXForm_1<1071, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 208 | "evmhosmfa $RT, $RA, $RB", IIC_VecFP>; |
| 209 | def EVMHOSMFAAW : EVXForm_1<1295, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 210 | "evmhosmfaaw $RT, $RA, $RB", IIC_VecFP>; |
| 211 | def EVMHOSMFANW : EVXForm_1<1423, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 212 | "evmhosmfanw $RT, $RA, $RB", IIC_VecFP>; |
| 213 | def EVMHOSMI : EVXForm_1<1037, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 214 | "evmhosmi $RT, $RA, $RB", IIC_VecFP>; |
| 215 | def EVMHOSMIA : EVXForm_1<1069, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 216 | "evmhosmia $RT, $RA, $RB", IIC_VecFP>; |
| 217 | def EVMHOSMIAAW : EVXForm_1<1293, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 218 | "evmhosmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 219 | def EVMHOSMIANW : EVXForm_1<1421, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 220 | "evmhosmianw $RT, $RA, $RB", IIC_VecFP>; |
| 221 | def EVMHOSSF : EVXForm_1<1031, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 222 | "evmhossf $RT, $RA, $RB", IIC_VecFP>; |
| 223 | def EVMHOSSFA : EVXForm_1<1063, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 224 | "evmhossfa $RT, $RA, $RB", IIC_VecFP>; |
| 225 | def EVMHOSSFAAW : EVXForm_1<1287, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 226 | "evmhossfaaw $RT, $RA, $RB", IIC_VecFP>; |
| 227 | def EVMHOSSFANW : EVXForm_1<1415, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 228 | "evmhossfanw $RT, $RA, $RB", IIC_VecFP>; |
| 229 | def EVMHOSSIAAW : EVXForm_1<1285, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 230 | "evmhossiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 231 | def EVMHOSSIANW : EVXForm_1<1413, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 232 | "evmhossianw $RT, $RA, $RB", IIC_VecFP>; |
| 233 | def EVMHOUMI : EVXForm_1<1036, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 234 | "evmhoumi $RT, $RA, $RB", IIC_VecFP>; |
| 235 | def EVMHOUMIA : EVXForm_1<1068, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 236 | "evmhoumia $RT, $RA, $RB", IIC_VecFP>; |
| 237 | def EVMHOUMIAAW : EVXForm_1<1292, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 238 | "evmhoumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 239 | def EVMHOUMIANW : EVXForm_1<1420, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 240 | "evmhoumianw $RT, $RA, $RB", IIC_VecFP>; |
| 241 | def EVMHOUSIAAW : EVXForm_1<1284, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 242 | "evmhousiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 243 | def EVMHOUSIANW : EVXForm_1<1412, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 244 | "evmhousianw $RT, $RA, $RB", IIC_VecFP>; |
| 245 | |
| 246 | |
| 247 | def EVMWHSMF : EVXForm_1<1103, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 248 | "evmwhsmf $RT, $RA, $RB", IIC_VecFP>; |
| 249 | def EVMWHSMFA : EVXForm_1<1135, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 250 | "evmwhsmfa $RT, $RA, $RB", IIC_VecFP>; |
| 251 | def EVMWHSMI : EVXForm_1<1101, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 252 | "evmwhsmi $RT, $RA, $RB", IIC_VecFP>; |
| 253 | def EVMWHSMIA : EVXForm_1<1133, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 254 | "evmwhsmia $RT, $RA, $RB", IIC_VecFP>; |
| 255 | def EVMWHSSF : EVXForm_1<1095, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 256 | "evmwhssf $RT, $RA, $RB", IIC_VecFP>; |
| 257 | def EVMWHSSFA : EVXForm_1<1127, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 258 | "evmwhssfa $RT, $RA, $RB", IIC_VecFP>; |
| 259 | def EVMWHUMI : EVXForm_1<1100, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 260 | "evmwhumi $RT, $RA, $RB", IIC_VecFP>; |
| 261 | def EVMWHUMIA : EVXForm_1<1132, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 262 | "evmwhumia $RT, $RA, $RB", IIC_VecFP>; |
| 263 | def EVMWLSMIAAW : EVXForm_1<1353, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 264 | "evmwlsmiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 265 | def EVMWLSMIANW : EVXForm_1<1481, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 266 | "evmwlsmianw $RT, $RA, $RB", IIC_VecFP>; |
| 267 | def EVMWLSSIAAW : EVXForm_1<1345, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 268 | "evmwlssiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 269 | def EVMWLSSIANW : EVXForm_1<1473, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 270 | "evmwlssianw $RT, $RA, $RB", IIC_VecFP>; |
| 271 | def EVMWLUMI : EVXForm_1<1096, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 272 | "evmwlumi $RT, $RA, $RB", IIC_VecFP>; |
| 273 | def EVMWLUMIA : EVXForm_1<1128, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 274 | "evmwlumia $RT, $RA, $RB", IIC_VecFP>; |
| 275 | def EVMWLUMIAAW : EVXForm_1<1352, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 276 | "evmwlumiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 277 | def EVMWLUMIANW : EVXForm_1<1480, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 278 | "evmwlumianw $RT, $RA, $RB", IIC_VecFP>; |
| 279 | def EVMWLUSIAAW : EVXForm_1<1344, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 280 | "evmwlusiaaw $RT, $RA, $RB", IIC_VecFP>; |
| 281 | def EVMWLUSIANW : EVXForm_1<1472, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 282 | "evmwlusianw $RT, $RA, $RB", IIC_VecFP>; |
| 283 | def EVMWSMF : EVXForm_1<1115, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 284 | "evmwsmf $RT, $RA, $RB", IIC_VecFP>; |
| 285 | def EVMWSMFA : EVXForm_1<1147, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 286 | "evmwsmfa $RT, $RA, $RB", IIC_VecFP>; |
| 287 | def EVMWSMFAA : EVXForm_1<1371, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 288 | "evmwsmfaa $RT, $RA, $RB", IIC_VecFP>; |
| 289 | def EVMWSMFAN : EVXForm_1<1499, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 290 | "evmwsmfan $RT, $RA, $RB", IIC_VecFP>; |
| 291 | def EVMWSMI : EVXForm_1<1113, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 292 | "evmwsmi $RT, $RA, $RB", IIC_VecFP>; |
| 293 | def EVMWSMIA : EVXForm_1<1145, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 294 | "evmwsmia $RT, $RA, $RB", IIC_VecFP>; |
| 295 | def EVMWSMIAA : EVXForm_1<1369, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 296 | "evmwsmiaa $RT, $RA, $RB", IIC_VecFP>; |
| 297 | def EVMWSMIAN : EVXForm_1<1497, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 298 | "evmwsmian $RT, $RA, $RB", IIC_VecFP>; |
| 299 | def EVMWSSF : EVXForm_1<1107, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 300 | "evmwssf $RT, $RA, $RB", IIC_VecFP>; |
| 301 | def EVMWSSFA : EVXForm_1<1139, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 302 | "evmwssfa $RT, $RA, $RB", IIC_VecFP>; |
| 303 | def EVMWSSFAA : EVXForm_1<1363, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 304 | "evmwssfaa $RT, $RA, $RB", IIC_VecFP>; |
| 305 | def EVMWSSFAN : EVXForm_1<1491, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 306 | "evmwssfan $RT, $RA, $RB", IIC_VecFP>; |
| 307 | def EVMWUMI : EVXForm_1<1112, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 308 | "evmwumi $RT, $RA, $RB", IIC_VecFP>; |
| 309 | def EVMWUMIA : EVXForm_1<1144, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 310 | "evmwumia $RT, $RA, $RB", IIC_VecFP>; |
| 311 | def EVMWUMIAA : EVXForm_1<1368, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 312 | "evmwumiaa $RT, $RA, $RB", IIC_VecFP>; |
| 313 | def EVMWUMIAN : EVXForm_1<1496, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 314 | "evmwumian $RT, $RA, $RB", IIC_VecFP>; |
| 315 | |
| 316 | |
| 317 | def EVNAND : EVXForm_1<542, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 318 | "evnand $RT, $RA, $RB", IIC_VecFP>; |
| 319 | |
| 320 | def EVNEG : EVXForm_2<521, (outs gprc:$RT), (ins gprc:$RA), |
| 321 | "evneg $RT, $RA", IIC_VecFP>; |
| 322 | |
| 323 | def EVNOR : EVXForm_1<536, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 324 | "evnor $RT, $RA, $RB", IIC_VecFP>; |
| 325 | def EVOR : EVXForm_1<535, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 326 | "evor $RT, $RA, $RB", IIC_VecFP>; |
| 327 | def EVORC : EVXForm_1<539, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 328 | "evorc $RT, $RA, $RB", IIC_VecFP>; |
| 329 | |
| 330 | def EVRLWI : EVXForm_1<554, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| 331 | "evrlwi $RT, $RA, $RB", IIC_VecFP>; |
| 332 | def EVRLW : EVXForm_1<552, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 333 | "evrlw $RT, $RA, $RB", IIC_VecFP>; |
| 334 | |
| 335 | def EVRNDW : EVXForm_2<524, (outs gprc:$RT), (ins gprc:$RA), |
| 336 | "evrndw $RT, $RA", IIC_VecFP>; |
| 337 | |
| 338 | def EVSLWI : EVXForm_1<550, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| 339 | "evslwi $RT, $RA, $RB", IIC_VecFP>; |
| 340 | def EVSLW : EVXForm_1<548, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 341 | "evslw $RT, $RA, $RB", IIC_VecFP>; |
| 342 | |
| 343 | def EVSPLATFI : EVXForm_2<555, (outs gprc:$RT), (ins i32imm:$RA), |
| 344 | "evsplatfi $RT, $RA", IIC_VecFP>; |
| 345 | def EVSPLATI : EVXForm_2<553, (outs gprc:$RT), (ins i32imm:$RA), |
| 346 | "evsplati $RT, $RA", IIC_VecFP>; |
| 347 | |
| 348 | def EVSRWIS : EVXForm_1<547, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| 349 | "evsrwis $RT, $RA, $RB", IIC_VecFP>; |
| 350 | def EVSRWIU : EVXForm_1<546, (outs gprc:$RT), (ins gprc:$RA, u5imm:$RB), |
| 351 | "evsrwiu $RT, $RA, $RB", IIC_VecFP>; |
| 352 | def EVSRWS : EVXForm_1<545, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 353 | "evsrws $RT, $RA, $RB", IIC_VecFP>; |
| 354 | def EVSRWU : EVXForm_1<544, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 355 | "evsrwu $RT, $RA, $RB", IIC_VecFP>; |
| 356 | |
| 357 | def EVSTDDX : EVXForm_1<800, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 358 | "evstddx $RT, $RA, $RB", IIC_VecFP>; |
| 359 | def EVSTDHX : EVXForm_1<804, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 360 | "evstdhx $RT, $RA, $RB", IIC_VecFP>; |
| 361 | def EVSTDWX : EVXForm_1<802, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 362 | "evstdwx $RT, $RA, $RB", IIC_VecFP>; |
| 363 | def EVSTWHEX : EVXForm_1<816, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 364 | "evstwhex $RT, $RA, $RB", IIC_VecFP>; |
| 365 | def EVSTWHOX : EVXForm_1<820, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 366 | "evstwhox $RT, $RA, $RB", IIC_VecFP>; |
| 367 | def EVSTWWEX : EVXForm_1<824, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 368 | "evstwwex $RT, $RA, $RB", IIC_VecFP>; |
| 369 | def EVSTWWOX : EVXForm_1<828, (outs), (ins gprc:$RT, gprc:$RA, gprc:$RB), |
| 370 | "evstwwox $RT, $RA, $RB", IIC_VecFP>; |
| 371 | |
| 372 | def EVSUBFSSIAAW : EVXForm_2<1219, (outs gprc:$RT), (ins gprc:$RA), |
| 373 | "evsubfssiaaw $RT, $RA", IIC_VecFP>; |
| 374 | def EVSUBFSMIAAW : EVXForm_2<1227, (outs gprc:$RT), (ins gprc:$RA), |
| 375 | "evsubfsmiaaw $RT, $RA", IIC_VecFP>; |
| 376 | def EVSUBFUMIAAW : EVXForm_2<1226, (outs gprc:$RT), (ins gprc:$RA), |
| 377 | "evsubfumiaaw $RT, $RA", IIC_VecFP>; |
| 378 | def EVSUBFUSIAAW : EVXForm_2<1218, (outs gprc:$RT), (ins gprc:$RA), |
| 379 | "evsubfusiaaw $RT, $RA", IIC_VecFP>; |
| 380 | def EVSUBFW : EVXForm_1<516, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 381 | "evsubfw $RT, $RA, $RB", IIC_VecFP>; |
| 382 | def EVSUBIFW : EVXForm_1<518, (outs gprc:$RT), (ins u5imm:$RA, gprc:$RB), |
| 383 | "evsubifw $RT, $RA, $RB", IIC_VecFP>; |
| 384 | def EVXOR : EVXForm_1<534, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB), |
| 385 | "evxor $RT, $RA, $RB", IIC_VecFP>; |
| 386 | |
Joerg Sonnenberger | 39f095a | 2014-08-07 12:18:21 +0000 | [diff] [blame] | 387 | } // HasSPE |