]>
Commit | Line | Data |
---|---|---|
1a4d82fc JJ |
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 |