1 //=======-- PPCInstrSPE.td - The PowerPC SPE Extension -*- tablegen -*-=======//
3 // The LLVM Compiler Infrastructure
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // This file describes the Signal Processing Engine extension to
11 // the PowerPC instruction set.
13 //===----------------------------------------------------------------------===//
15 class EVXForm_1<bits<11> xo, dag OOL, dag IOL, string asmstr,
16 InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
29 class EVXForm_2<bits<11> xo, dag OOL, dag IOL, string asmstr,
30 InstrItinClass itin> : EVXForm_1<xo, OOL, IOL, asmstr, itin> {
34 class EVXForm_3<bits<11> xo, dag OOL, dag IOL, string asmstr,
35 InstrItinClass itin> : I<4, OOL, IOL, asmstr, itin> {
49 let Predicates = [HasSPE], isAsmParserOnly = 1 in {
51 def EVMRA : EVXForm_1<1220, (outs gprc:$RT), (ins gprc:$RA),
52 "evmra $RT, $RA", IIC_VecFP> {
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>;
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>;
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>;
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>;
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>;
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>;
100 def EVEQV : EVXForm_1<537, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
101 "eveqv $RT, $RA, $RB", IIC_VecFP>;
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>;
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>;
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>;
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>;
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>;
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>;
317 def EVNAND : EVXForm_1<542, (outs gprc:$RT), (ins gprc:$RA, gprc:$RB),
318 "evnand $RT, $RA, $RB", IIC_VecFP>;
320 def EVNEG : EVXForm_2<521, (outs gprc:$RT), (ins gprc:$RA),
321 "evneg $RT, $RA", IIC_VecFP>;
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>;
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>;
335 def EVRNDW : EVXForm_2<524, (outs gprc:$RT), (ins gprc:$RA),
336 "evrndw $RT, $RA", IIC_VecFP>;
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>;
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>;
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>;
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>;
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>;