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