]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
Merge llvm, clang, lld, lldb, compiler-rt and libc++ r302418, and update
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / Hexagon / HexagonDepInstrInfo.td
1 //===--- HexagonDepInstrInfo.td -------------------------------------------===//
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 def A2_abs : HInst<
11 (outs IntRegs:$Rd32),
12 (ins IntRegs:$Rs32),
13 "$Rd32 = abs($Rs32)",
14 tc_94e6ffd9, TypeS_2op>, Enc_5e2823 {
15 let Inst{13-5} = 0b000000100;
16 let Inst{31-21} = 0b10001100100;
17 let hasNewValue = 1;
18 let opNewValue = 0;
19 let prefersSlot3 = 1;
20 }
21 def A2_absp : HInst<
22 (outs DoubleRegs:$Rdd32),
23 (ins DoubleRegs:$Rss32),
24 "$Rdd32 = abs($Rss32)",
25 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
26 let Inst{13-5} = 0b000000110;
27 let Inst{31-21} = 0b10000000100;
28 let prefersSlot3 = 1;
29 }
30 def A2_abssat : HInst<
31 (outs IntRegs:$Rd32),
32 (ins IntRegs:$Rs32),
33 "$Rd32 = abs($Rs32):sat",
34 tc_94e6ffd9, TypeS_2op>, Enc_5e2823 {
35 let Inst{13-5} = 0b000000101;
36 let Inst{31-21} = 0b10001100100;
37 let hasNewValue = 1;
38 let opNewValue = 0;
39 let prefersSlot3 = 1;
40 let Defs = [USR_OVF];
41 }
42 def A2_add : HInst<
43 (outs IntRegs:$Rd32),
44 (ins IntRegs:$Rs32, IntRegs:$Rt32),
45 "$Rd32 = add($Rs32,$Rt32)",
46 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
47 let Inst{7-5} = 0b000;
48 let Inst{13-13} = 0b0;
49 let Inst{31-21} = 0b11110011000;
50 let hasNewValue = 1;
51 let opNewValue = 0;
52 let CextOpcode = "A2_add";
53 let InputType = "reg";
54 let BaseOpcode = "A2_add";
55 let isCommutable = 1;
56 let isPredicable = 1;
57 }
58 def A2_addh_h16_hh : HInst<
59 (outs IntRegs:$Rd32),
60 (ins IntRegs:$Rt32, IntRegs:$Rs32),
61 "$Rd32 = add($Rt32.h,$Rs32.h):<<16",
62 tc_bd16579e, TypeALU64>, Enc_bd6011 {
63 let Inst{7-5} = 0b011;
64 let Inst{13-13} = 0b0;
65 let Inst{31-21} = 0b11010101010;
66 let hasNewValue = 1;
67 let opNewValue = 0;
68 let prefersSlot3 = 1;
69 }
70 def A2_addh_h16_hl : HInst<
71 (outs IntRegs:$Rd32),
72 (ins IntRegs:$Rt32, IntRegs:$Rs32),
73 "$Rd32 = add($Rt32.h,$Rs32.l):<<16",
74 tc_bd16579e, TypeALU64>, Enc_bd6011 {
75 let Inst{7-5} = 0b010;
76 let Inst{13-13} = 0b0;
77 let Inst{31-21} = 0b11010101010;
78 let hasNewValue = 1;
79 let opNewValue = 0;
80 let prefersSlot3 = 1;
81 }
82 def A2_addh_h16_lh : HInst<
83 (outs IntRegs:$Rd32),
84 (ins IntRegs:$Rt32, IntRegs:$Rs32),
85 "$Rd32 = add($Rt32.l,$Rs32.h):<<16",
86 tc_bd16579e, TypeALU64>, Enc_bd6011 {
87 let Inst{7-5} = 0b001;
88 let Inst{13-13} = 0b0;
89 let Inst{31-21} = 0b11010101010;
90 let hasNewValue = 1;
91 let opNewValue = 0;
92 let prefersSlot3 = 1;
93 }
94 def A2_addh_h16_ll : HInst<
95 (outs IntRegs:$Rd32),
96 (ins IntRegs:$Rt32, IntRegs:$Rs32),
97 "$Rd32 = add($Rt32.l,$Rs32.l):<<16",
98 tc_bd16579e, TypeALU64>, Enc_bd6011 {
99 let Inst{7-5} = 0b000;
100 let Inst{13-13} = 0b0;
101 let Inst{31-21} = 0b11010101010;
102 let hasNewValue = 1;
103 let opNewValue = 0;
104 let prefersSlot3 = 1;
105 }
106 def A2_addh_h16_sat_hh : HInst<
107 (outs IntRegs:$Rd32),
108 (ins IntRegs:$Rt32, IntRegs:$Rs32),
109 "$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16",
110 tc_47ab9233, TypeALU64>, Enc_bd6011 {
111 let Inst{7-5} = 0b111;
112 let Inst{13-13} = 0b0;
113 let Inst{31-21} = 0b11010101010;
114 let hasNewValue = 1;
115 let opNewValue = 0;
116 let prefersSlot3 = 1;
117 let Defs = [USR_OVF];
118 }
119 def A2_addh_h16_sat_hl : HInst<
120 (outs IntRegs:$Rd32),
121 (ins IntRegs:$Rt32, IntRegs:$Rs32),
122 "$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16",
123 tc_47ab9233, TypeALU64>, Enc_bd6011 {
124 let Inst{7-5} = 0b110;
125 let Inst{13-13} = 0b0;
126 let Inst{31-21} = 0b11010101010;
127 let hasNewValue = 1;
128 let opNewValue = 0;
129 let prefersSlot3 = 1;
130 let Defs = [USR_OVF];
131 }
132 def A2_addh_h16_sat_lh : HInst<
133 (outs IntRegs:$Rd32),
134 (ins IntRegs:$Rt32, IntRegs:$Rs32),
135 "$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16",
136 tc_47ab9233, TypeALU64>, Enc_bd6011 {
137 let Inst{7-5} = 0b101;
138 let Inst{13-13} = 0b0;
139 let Inst{31-21} = 0b11010101010;
140 let hasNewValue = 1;
141 let opNewValue = 0;
142 let prefersSlot3 = 1;
143 let Defs = [USR_OVF];
144 }
145 def A2_addh_h16_sat_ll : HInst<
146 (outs IntRegs:$Rd32),
147 (ins IntRegs:$Rt32, IntRegs:$Rs32),
148 "$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16",
149 tc_47ab9233, TypeALU64>, Enc_bd6011 {
150 let Inst{7-5} = 0b100;
151 let Inst{13-13} = 0b0;
152 let Inst{31-21} = 0b11010101010;
153 let hasNewValue = 1;
154 let opNewValue = 0;
155 let prefersSlot3 = 1;
156 let Defs = [USR_OVF];
157 }
158 def A2_addh_l16_hl : HInst<
159 (outs IntRegs:$Rd32),
160 (ins IntRegs:$Rt32, IntRegs:$Rs32),
161 "$Rd32 = add($Rt32.l,$Rs32.h)",
162 tc_7ca2ea10, TypeALU64>, Enc_bd6011 {
163 let Inst{7-5} = 0b010;
164 let Inst{13-13} = 0b0;
165 let Inst{31-21} = 0b11010101000;
166 let hasNewValue = 1;
167 let opNewValue = 0;
168 let prefersSlot3 = 1;
169 }
170 def A2_addh_l16_ll : HInst<
171 (outs IntRegs:$Rd32),
172 (ins IntRegs:$Rt32, IntRegs:$Rs32),
173 "$Rd32 = add($Rt32.l,$Rs32.l)",
174 tc_7ca2ea10, TypeALU64>, Enc_bd6011 {
175 let Inst{7-5} = 0b000;
176 let Inst{13-13} = 0b0;
177 let Inst{31-21} = 0b11010101000;
178 let hasNewValue = 1;
179 let opNewValue = 0;
180 let prefersSlot3 = 1;
181 }
182 def A2_addh_l16_sat_hl : HInst<
183 (outs IntRegs:$Rd32),
184 (ins IntRegs:$Rt32, IntRegs:$Rs32),
185 "$Rd32 = add($Rt32.l,$Rs32.h):sat",
186 tc_47ab9233, TypeALU64>, Enc_bd6011 {
187 let Inst{7-5} = 0b110;
188 let Inst{13-13} = 0b0;
189 let Inst{31-21} = 0b11010101000;
190 let hasNewValue = 1;
191 let opNewValue = 0;
192 let prefersSlot3 = 1;
193 let Defs = [USR_OVF];
194 }
195 def A2_addh_l16_sat_ll : HInst<
196 (outs IntRegs:$Rd32),
197 (ins IntRegs:$Rt32, IntRegs:$Rs32),
198 "$Rd32 = add($Rt32.l,$Rs32.l):sat",
199 tc_47ab9233, TypeALU64>, Enc_bd6011 {
200 let Inst{7-5} = 0b100;
201 let Inst{13-13} = 0b0;
202 let Inst{31-21} = 0b11010101000;
203 let hasNewValue = 1;
204 let opNewValue = 0;
205 let prefersSlot3 = 1;
206 let Defs = [USR_OVF];
207 }
208 def A2_addi : HInst<
209 (outs IntRegs:$Rd32),
210 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
211 "$Rd32 = add($Rs32,#$Ii)",
212 tc_548f402d, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel {
213 let Inst{31-28} = 0b1011;
214 let hasNewValue = 1;
215 let opNewValue = 0;
216 let CextOpcode = "A2_add";
217 let InputType = "imm";
218 let BaseOpcode = "A2_addi";
219 let isPredicable = 1;
220 let isAdd = 1;
221 let isExtendable = 1;
222 let opExtendable = 2;
223 let isExtentSigned = 1;
224 let opExtentBits = 16;
225 let opExtentAlign = 0;
226 }
227 def A2_addp : HInst<
228 (outs DoubleRegs:$Rdd32),
229 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
230 "$Rdd32 = add($Rss32,$Rtt32)",
231 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
232 let Inst{7-5} = 0b111;
233 let Inst{13-13} = 0b0;
234 let Inst{31-21} = 0b11010011000;
235 let isCommutable = 1;
236 let isAdd = 1;
237 }
238 def A2_addpsat : HInst<
239 (outs DoubleRegs:$Rdd32),
240 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
241 "$Rdd32 = add($Rss32,$Rtt32):sat",
242 tc_47ab9233, TypeALU64>, Enc_a56825 {
243 let Inst{7-5} = 0b101;
244 let Inst{13-13} = 0b0;
245 let Inst{31-21} = 0b11010011011;
246 let prefersSlot3 = 1;
247 let Defs = [USR_OVF];
248 let isCommutable = 1;
249 }
250 def A2_addsat : HInst<
251 (outs IntRegs:$Rd32),
252 (ins IntRegs:$Rs32, IntRegs:$Rt32),
253 "$Rd32 = add($Rs32,$Rt32):sat",
254 tc_b0f50e3c, TypeALU32_3op>, Enc_5ab2be {
255 let Inst{7-5} = 0b000;
256 let Inst{13-13} = 0b0;
257 let Inst{31-21} = 0b11110110010;
258 let hasNewValue = 1;
259 let opNewValue = 0;
260 let prefersSlot3 = 1;
261 let Defs = [USR_OVF];
262 let InputType = "reg";
263 let isCommutable = 1;
264 }
265 def A2_addsp : HInst<
266 (outs DoubleRegs:$Rdd32),
267 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
268 "$Rdd32 = add($Rs32,$Rtt32)",
269 tc_bd16579e, TypeALU64> {
270 let isPseudo = 1;
271 }
272 def A2_addsph : HInst<
273 (outs DoubleRegs:$Rdd32),
274 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
275 "$Rdd32 = add($Rss32,$Rtt32):raw:hi",
276 tc_bd16579e, TypeALU64>, Enc_a56825 {
277 let Inst{7-5} = 0b111;
278 let Inst{13-13} = 0b0;
279 let Inst{31-21} = 0b11010011011;
280 let prefersSlot3 = 1;
281 }
282 def A2_addspl : HInst<
283 (outs DoubleRegs:$Rdd32),
284 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
285 "$Rdd32 = add($Rss32,$Rtt32):raw:lo",
286 tc_bd16579e, TypeALU64>, Enc_a56825 {
287 let Inst{7-5} = 0b110;
288 let Inst{13-13} = 0b0;
289 let Inst{31-21} = 0b11010011011;
290 let prefersSlot3 = 1;
291 }
292 def A2_and : HInst<
293 (outs IntRegs:$Rd32),
294 (ins IntRegs:$Rs32, IntRegs:$Rt32),
295 "$Rd32 = and($Rs32,$Rt32)",
296 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
297 let Inst{7-5} = 0b000;
298 let Inst{13-13} = 0b0;
299 let Inst{31-21} = 0b11110001000;
300 let hasNewValue = 1;
301 let opNewValue = 0;
302 let CextOpcode = "A2_and";
303 let InputType = "reg";
304 let BaseOpcode = "A2_and";
305 let isCommutable = 1;
306 let isPredicable = 1;
307 }
308 def A2_andir : HInst<
309 (outs IntRegs:$Rd32),
310 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
311 "$Rd32 = and($Rs32,#$Ii)",
312 tc_548f402d, TypeALU32_2op>, Enc_140c83, ImmRegRel {
313 let Inst{31-22} = 0b0111011000;
314 let hasNewValue = 1;
315 let opNewValue = 0;
316 let CextOpcode = "A2_and";
317 let InputType = "imm";
318 let isExtendable = 1;
319 let opExtendable = 2;
320 let isExtentSigned = 1;
321 let opExtentBits = 10;
322 let opExtentAlign = 0;
323 }
324 def A2_andp : HInst<
325 (outs DoubleRegs:$Rdd32),
326 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
327 "$Rdd32 = and($Rss32,$Rtt32)",
328 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
329 let Inst{7-5} = 0b000;
330 let Inst{13-13} = 0b0;
331 let Inst{31-21} = 0b11010011111;
332 let isCommutable = 1;
333 }
334 def A2_aslh : HInst<
335 (outs IntRegs:$Rd32),
336 (ins IntRegs:$Rs32),
337 "$Rd32 = aslh($Rs32)",
338 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
339 let Inst{13-5} = 0b000000000;
340 let Inst{31-21} = 0b01110000000;
341 let hasNewValue = 1;
342 let opNewValue = 0;
343 let BaseOpcode = "A2_aslh";
344 let isPredicable = 1;
345 }
346 def A2_asrh : HInst<
347 (outs IntRegs:$Rd32),
348 (ins IntRegs:$Rs32),
349 "$Rd32 = asrh($Rs32)",
350 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
351 let Inst{13-5} = 0b000000000;
352 let Inst{31-21} = 0b01110000001;
353 let hasNewValue = 1;
354 let opNewValue = 0;
355 let BaseOpcode = "A2_asrh";
356 let isPredicable = 1;
357 }
358 def A2_combine_hh : HInst<
359 (outs IntRegs:$Rd32),
360 (ins IntRegs:$Rt32, IntRegs:$Rs32),
361 "$Rd32 = combine($Rt32.h,$Rs32.h)",
362 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
363 let Inst{7-5} = 0b000;
364 let Inst{13-13} = 0b0;
365 let Inst{31-21} = 0b11110011100;
366 let hasNewValue = 1;
367 let opNewValue = 0;
368 let InputType = "reg";
369 }
370 def A2_combine_hl : HInst<
371 (outs IntRegs:$Rd32),
372 (ins IntRegs:$Rt32, IntRegs:$Rs32),
373 "$Rd32 = combine($Rt32.h,$Rs32.l)",
374 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
375 let Inst{7-5} = 0b000;
376 let Inst{13-13} = 0b0;
377 let Inst{31-21} = 0b11110011101;
378 let hasNewValue = 1;
379 let opNewValue = 0;
380 let InputType = "reg";
381 }
382 def A2_combine_lh : HInst<
383 (outs IntRegs:$Rd32),
384 (ins IntRegs:$Rt32, IntRegs:$Rs32),
385 "$Rd32 = combine($Rt32.l,$Rs32.h)",
386 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
387 let Inst{7-5} = 0b000;
388 let Inst{13-13} = 0b0;
389 let Inst{31-21} = 0b11110011110;
390 let hasNewValue = 1;
391 let opNewValue = 0;
392 let InputType = "reg";
393 }
394 def A2_combine_ll : HInst<
395 (outs IntRegs:$Rd32),
396 (ins IntRegs:$Rt32, IntRegs:$Rs32),
397 "$Rd32 = combine($Rt32.l,$Rs32.l)",
398 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
399 let Inst{7-5} = 0b000;
400 let Inst{13-13} = 0b0;
401 let Inst{31-21} = 0b11110011111;
402 let hasNewValue = 1;
403 let opNewValue = 0;
404 let InputType = "reg";
405 }
406 def A2_combineii : HInst<
407 (outs DoubleRegs:$Rdd32),
408 (ins s32_0Imm:$Ii, s8_0Imm:$II),
409 "$Rdd32 = combine(#$Ii,#$II)",
410 tc_548f402d, TypeALU32_2op>, Enc_18c338 {
411 let Inst{31-23} = 0b011111000;
412 let isReMaterializable = 1;
413 let isAsCheapAsAMove = 1;
414 let isMoveImm = 1;
415 let isExtendable = 1;
416 let opExtendable = 1;
417 let isExtentSigned = 1;
418 let opExtentBits = 8;
419 let opExtentAlign = 0;
420 }
421 def A2_combinew : HInst<
422 (outs DoubleRegs:$Rdd32),
423 (ins IntRegs:$Rs32, IntRegs:$Rt32),
424 "$Rdd32 = combine($Rs32,$Rt32)",
425 tc_548f402d, TypeALU32_3op>, Enc_be32a5, PredNewRel {
426 let Inst{7-5} = 0b000;
427 let Inst{13-13} = 0b0;
428 let Inst{31-21} = 0b11110101000;
429 let InputType = "reg";
430 let BaseOpcode = "A2_combinew";
431 let isPredicable = 1;
432 }
433 def A2_max : HInst<
434 (outs IntRegs:$Rd32),
435 (ins IntRegs:$Rs32, IntRegs:$Rt32),
436 "$Rd32 = max($Rs32,$Rt32)",
437 tc_47ab9233, TypeALU64>, Enc_5ab2be {
438 let Inst{7-5} = 0b000;
439 let Inst{13-13} = 0b0;
440 let Inst{31-21} = 0b11010101110;
441 let hasNewValue = 1;
442 let opNewValue = 0;
443 let prefersSlot3 = 1;
444 }
445 def A2_maxp : HInst<
446 (outs DoubleRegs:$Rdd32),
447 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
448 "$Rdd32 = max($Rss32,$Rtt32)",
449 tc_47ab9233, TypeALU64>, Enc_a56825 {
450 let Inst{7-5} = 0b100;
451 let Inst{13-13} = 0b0;
452 let Inst{31-21} = 0b11010011110;
453 let prefersSlot3 = 1;
454 }
455 def A2_maxu : HInst<
456 (outs IntRegs:$Rd32),
457 (ins IntRegs:$Rs32, IntRegs:$Rt32),
458 "$Rd32 = maxu($Rs32,$Rt32)",
459 tc_47ab9233, TypeALU64>, Enc_5ab2be {
460 let Inst{7-5} = 0b100;
461 let Inst{13-13} = 0b0;
462 let Inst{31-21} = 0b11010101110;
463 let hasNewValue = 1;
464 let opNewValue = 0;
465 let prefersSlot3 = 1;
466 }
467 def A2_maxup : HInst<
468 (outs DoubleRegs:$Rdd32),
469 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
470 "$Rdd32 = maxu($Rss32,$Rtt32)",
471 tc_47ab9233, TypeALU64>, Enc_a56825 {
472 let Inst{7-5} = 0b101;
473 let Inst{13-13} = 0b0;
474 let Inst{31-21} = 0b11010011110;
475 let prefersSlot3 = 1;
476 }
477 def A2_min : HInst<
478 (outs IntRegs:$Rd32),
479 (ins IntRegs:$Rt32, IntRegs:$Rs32),
480 "$Rd32 = min($Rt32,$Rs32)",
481 tc_47ab9233, TypeALU64>, Enc_bd6011 {
482 let Inst{7-5} = 0b000;
483 let Inst{13-13} = 0b0;
484 let Inst{31-21} = 0b11010101101;
485 let hasNewValue = 1;
486 let opNewValue = 0;
487 let prefersSlot3 = 1;
488 }
489 def A2_minp : HInst<
490 (outs DoubleRegs:$Rdd32),
491 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
492 "$Rdd32 = min($Rtt32,$Rss32)",
493 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
494 let Inst{7-5} = 0b110;
495 let Inst{13-13} = 0b0;
496 let Inst{31-21} = 0b11010011101;
497 let prefersSlot3 = 1;
498 }
499 def A2_minu : HInst<
500 (outs IntRegs:$Rd32),
501 (ins IntRegs:$Rt32, IntRegs:$Rs32),
502 "$Rd32 = minu($Rt32,$Rs32)",
503 tc_47ab9233, TypeALU64>, Enc_bd6011 {
504 let Inst{7-5} = 0b100;
505 let Inst{13-13} = 0b0;
506 let Inst{31-21} = 0b11010101101;
507 let hasNewValue = 1;
508 let opNewValue = 0;
509 let prefersSlot3 = 1;
510 }
511 def A2_minup : HInst<
512 (outs DoubleRegs:$Rdd32),
513 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
514 "$Rdd32 = minu($Rtt32,$Rss32)",
515 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
516 let Inst{7-5} = 0b111;
517 let Inst{13-13} = 0b0;
518 let Inst{31-21} = 0b11010011101;
519 let prefersSlot3 = 1;
520 }
521 def A2_neg : HInst<
522 (outs IntRegs:$Rd32),
523 (ins IntRegs:$Rs32),
524 "$Rd32 = neg($Rs32)",
525 tc_f16d5b17, TypeALU32_2op> {
526 let hasNewValue = 1;
527 let opNewValue = 0;
528 let isPseudo = 1;
529 let isCodeGenOnly = 1;
530 }
531 def A2_negp : HInst<
532 (outs DoubleRegs:$Rdd32),
533 (ins DoubleRegs:$Rss32),
534 "$Rdd32 = neg($Rss32)",
535 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
536 let Inst{13-5} = 0b000000101;
537 let Inst{31-21} = 0b10000000100;
538 }
539 def A2_negsat : HInst<
540 (outs IntRegs:$Rd32),
541 (ins IntRegs:$Rs32),
542 "$Rd32 = neg($Rs32):sat",
543 tc_94e6ffd9, TypeS_2op>, Enc_5e2823 {
544 let Inst{13-5} = 0b000000110;
545 let Inst{31-21} = 0b10001100100;
546 let hasNewValue = 1;
547 let opNewValue = 0;
548 let prefersSlot3 = 1;
549 let Defs = [USR_OVF];
550 }
551 def A2_nop : HInst<
552 (outs),
553 (ins),
554 "nop",
555 tc_e2c31426, TypeALU32_2op>, Enc_e3b0c4 {
556 let Inst{13-0} = 0b00000000000000;
557 let Inst{31-16} = 0b0111111100000000;
558 }
559 def A2_not : HInst<
560 (outs IntRegs:$Rd32),
561 (ins IntRegs:$Rs32),
562 "$Rd32 = not($Rs32)",
563 tc_f16d5b17, TypeALU32_2op> {
564 let hasNewValue = 1;
565 let opNewValue = 0;
566 let isPseudo = 1;
567 let isCodeGenOnly = 1;
568 }
569 def A2_notp : HInst<
570 (outs DoubleRegs:$Rdd32),
571 (ins DoubleRegs:$Rss32),
572 "$Rdd32 = not($Rss32)",
573 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
574 let Inst{13-5} = 0b000000100;
575 let Inst{31-21} = 0b10000000100;
576 }
577 def A2_or : HInst<
578 (outs IntRegs:$Rd32),
579 (ins IntRegs:$Rs32, IntRegs:$Rt32),
580 "$Rd32 = or($Rs32,$Rt32)",
581 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
582 let Inst{7-5} = 0b000;
583 let Inst{13-13} = 0b0;
584 let Inst{31-21} = 0b11110001001;
585 let hasNewValue = 1;
586 let opNewValue = 0;
587 let CextOpcode = "A2_or";
588 let InputType = "reg";
589 let BaseOpcode = "A2_or";
590 let isCommutable = 1;
591 let isPredicable = 1;
592 }
593 def A2_orir : HInst<
594 (outs IntRegs:$Rd32),
595 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
596 "$Rd32 = or($Rs32,#$Ii)",
597 tc_548f402d, TypeALU32_2op>, Enc_140c83, ImmRegRel {
598 let Inst{31-22} = 0b0111011010;
599 let hasNewValue = 1;
600 let opNewValue = 0;
601 let CextOpcode = "A2_or";
602 let InputType = "imm";
603 let isExtendable = 1;
604 let opExtendable = 2;
605 let isExtentSigned = 1;
606 let opExtentBits = 10;
607 let opExtentAlign = 0;
608 }
609 def A2_orp : HInst<
610 (outs DoubleRegs:$Rdd32),
611 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
612 "$Rdd32 = or($Rss32,$Rtt32)",
613 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
614 let Inst{7-5} = 0b010;
615 let Inst{13-13} = 0b0;
616 let Inst{31-21} = 0b11010011111;
617 let isCommutable = 1;
618 }
619 def A2_paddf : HInst<
620 (outs IntRegs:$Rd32),
621 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
622 "if (!$Pu4) $Rd32 = add($Rs32,$Rt32)",
623 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
624 let Inst{7-7} = 0b1;
625 let Inst{13-13} = 0b0;
626 let Inst{31-21} = 0b11111011000;
627 let isPredicated = 1;
628 let isPredicatedFalse = 1;
629 let hasNewValue = 1;
630 let opNewValue = 0;
631 let CextOpcode = "A2_add";
632 let InputType = "reg";
633 let BaseOpcode = "A2_add";
634 }
635 def A2_paddfnew : HInst<
636 (outs IntRegs:$Rd32),
637 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
638 "if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)",
639 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
640 let Inst{7-7} = 0b1;
641 let Inst{13-13} = 0b1;
642 let Inst{31-21} = 0b11111011000;
643 let isPredicated = 1;
644 let isPredicatedFalse = 1;
645 let hasNewValue = 1;
646 let opNewValue = 0;
647 let isPredicatedNew = 1;
648 let CextOpcode = "A2_add";
649 let InputType = "reg";
650 let BaseOpcode = "A2_add";
651 }
652 def A2_paddif : HInst<
653 (outs IntRegs:$Rd32),
654 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
655 "if (!$Pu4) $Rd32 = add($Rs32,#$Ii)",
656 tc_1b6011fb, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
657 let Inst{13-13} = 0b0;
658 let Inst{31-23} = 0b011101001;
659 let isPredicated = 1;
660 let isPredicatedFalse = 1;
661 let hasNewValue = 1;
662 let opNewValue = 0;
663 let CextOpcode = "A2_add";
664 let InputType = "imm";
665 let BaseOpcode = "A2_addi";
666 let isExtendable = 1;
667 let opExtendable = 3;
668 let isExtentSigned = 1;
669 let opExtentBits = 8;
670 let opExtentAlign = 0;
671 }
672 def A2_paddifnew : HInst<
673 (outs IntRegs:$Rd32),
674 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
675 "if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)",
676 tc_28d296df, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
677 let Inst{13-13} = 0b1;
678 let Inst{31-23} = 0b011101001;
679 let isPredicated = 1;
680 let isPredicatedFalse = 1;
681 let hasNewValue = 1;
682 let opNewValue = 0;
683 let isPredicatedNew = 1;
684 let CextOpcode = "A2_add";
685 let InputType = "imm";
686 let BaseOpcode = "A2_addi";
687 let isExtendable = 1;
688 let opExtendable = 3;
689 let isExtentSigned = 1;
690 let opExtentBits = 8;
691 let opExtentAlign = 0;
692 }
693 def A2_paddit : HInst<
694 (outs IntRegs:$Rd32),
695 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
696 "if ($Pu4) $Rd32 = add($Rs32,#$Ii)",
697 tc_1b6011fb, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
698 let Inst{13-13} = 0b0;
699 let Inst{31-23} = 0b011101000;
700 let isPredicated = 1;
701 let hasNewValue = 1;
702 let opNewValue = 0;
703 let CextOpcode = "A2_add";
704 let InputType = "imm";
705 let BaseOpcode = "A2_addi";
706 let isExtendable = 1;
707 let opExtendable = 3;
708 let isExtentSigned = 1;
709 let opExtentBits = 8;
710 let opExtentAlign = 0;
711 }
712 def A2_padditnew : HInst<
713 (outs IntRegs:$Rd32),
714 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
715 "if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)",
716 tc_28d296df, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
717 let Inst{13-13} = 0b1;
718 let Inst{31-23} = 0b011101000;
719 let isPredicated = 1;
720 let hasNewValue = 1;
721 let opNewValue = 0;
722 let isPredicatedNew = 1;
723 let CextOpcode = "A2_add";
724 let InputType = "imm";
725 let BaseOpcode = "A2_addi";
726 let isExtendable = 1;
727 let opExtendable = 3;
728 let isExtentSigned = 1;
729 let opExtentBits = 8;
730 let opExtentAlign = 0;
731 }
732 def A2_paddt : HInst<
733 (outs IntRegs:$Rd32),
734 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
735 "if ($Pu4) $Rd32 = add($Rs32,$Rt32)",
736 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
737 let Inst{7-7} = 0b0;
738 let Inst{13-13} = 0b0;
739 let Inst{31-21} = 0b11111011000;
740 let isPredicated = 1;
741 let hasNewValue = 1;
742 let opNewValue = 0;
743 let CextOpcode = "A2_add";
744 let InputType = "reg";
745 let BaseOpcode = "A2_add";
746 }
747 def A2_paddtnew : HInst<
748 (outs IntRegs:$Rd32),
749 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
750 "if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)",
751 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
752 let Inst{7-7} = 0b0;
753 let Inst{13-13} = 0b1;
754 let Inst{31-21} = 0b11111011000;
755 let isPredicated = 1;
756 let hasNewValue = 1;
757 let opNewValue = 0;
758 let isPredicatedNew = 1;
759 let CextOpcode = "A2_add";
760 let InputType = "reg";
761 let BaseOpcode = "A2_add";
762 }
763 def A2_pandf : HInst<
764 (outs IntRegs:$Rd32),
765 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
766 "if (!$Pu4) $Rd32 = and($Rs32,$Rt32)",
767 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
768 let Inst{7-7} = 0b1;
769 let Inst{13-13} = 0b0;
770 let Inst{31-21} = 0b11111001000;
771 let isPredicated = 1;
772 let isPredicatedFalse = 1;
773 let hasNewValue = 1;
774 let opNewValue = 0;
775 let BaseOpcode = "A2_and";
776 }
777 def A2_pandfnew : HInst<
778 (outs IntRegs:$Rd32),
779 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
780 "if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)",
781 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
782 let Inst{7-7} = 0b1;
783 let Inst{13-13} = 0b1;
784 let Inst{31-21} = 0b11111001000;
785 let isPredicated = 1;
786 let isPredicatedFalse = 1;
787 let hasNewValue = 1;
788 let opNewValue = 0;
789 let isPredicatedNew = 1;
790 let BaseOpcode = "A2_and";
791 }
792 def A2_pandt : HInst<
793 (outs IntRegs:$Rd32),
794 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
795 "if ($Pu4) $Rd32 = and($Rs32,$Rt32)",
796 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
797 let Inst{7-7} = 0b0;
798 let Inst{13-13} = 0b0;
799 let Inst{31-21} = 0b11111001000;
800 let isPredicated = 1;
801 let hasNewValue = 1;
802 let opNewValue = 0;
803 let BaseOpcode = "A2_and";
804 }
805 def A2_pandtnew : HInst<
806 (outs IntRegs:$Rd32),
807 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
808 "if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)",
809 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
810 let Inst{7-7} = 0b0;
811 let Inst{13-13} = 0b1;
812 let Inst{31-21} = 0b11111001000;
813 let isPredicated = 1;
814 let hasNewValue = 1;
815 let opNewValue = 0;
816 let isPredicatedNew = 1;
817 let BaseOpcode = "A2_and";
818 }
819 def A2_porf : HInst<
820 (outs IntRegs:$Rd32),
821 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
822 "if (!$Pu4) $Rd32 = or($Rs32,$Rt32)",
823 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
824 let Inst{7-7} = 0b1;
825 let Inst{13-13} = 0b0;
826 let Inst{31-21} = 0b11111001001;
827 let isPredicated = 1;
828 let isPredicatedFalse = 1;
829 let hasNewValue = 1;
830 let opNewValue = 0;
831 let BaseOpcode = "A2_or";
832 }
833 def A2_porfnew : HInst<
834 (outs IntRegs:$Rd32),
835 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
836 "if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)",
837 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
838 let Inst{7-7} = 0b1;
839 let Inst{13-13} = 0b1;
840 let Inst{31-21} = 0b11111001001;
841 let isPredicated = 1;
842 let isPredicatedFalse = 1;
843 let hasNewValue = 1;
844 let opNewValue = 0;
845 let isPredicatedNew = 1;
846 let BaseOpcode = "A2_or";
847 }
848 def A2_port : HInst<
849 (outs IntRegs:$Rd32),
850 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
851 "if ($Pu4) $Rd32 = or($Rs32,$Rt32)",
852 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
853 let Inst{7-7} = 0b0;
854 let Inst{13-13} = 0b0;
855 let Inst{31-21} = 0b11111001001;
856 let isPredicated = 1;
857 let hasNewValue = 1;
858 let opNewValue = 0;
859 let BaseOpcode = "A2_or";
860 }
861 def A2_portnew : HInst<
862 (outs IntRegs:$Rd32),
863 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
864 "if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)",
865 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
866 let Inst{7-7} = 0b0;
867 let Inst{13-13} = 0b1;
868 let Inst{31-21} = 0b11111001001;
869 let isPredicated = 1;
870 let hasNewValue = 1;
871 let opNewValue = 0;
872 let isPredicatedNew = 1;
873 let BaseOpcode = "A2_or";
874 }
875 def A2_psubf : HInst<
876 (outs IntRegs:$Rd32),
877 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
878 "if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)",
879 tc_1b6011fb, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
880 let Inst{7-7} = 0b1;
881 let Inst{13-13} = 0b0;
882 let Inst{31-21} = 0b11111011001;
883 let isPredicated = 1;
884 let isPredicatedFalse = 1;
885 let hasNewValue = 1;
886 let opNewValue = 0;
887 let BaseOpcode = "A2_sub";
888 }
889 def A2_psubfnew : HInst<
890 (outs IntRegs:$Rd32),
891 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
892 "if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
893 tc_28d296df, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
894 let Inst{7-7} = 0b1;
895 let Inst{13-13} = 0b1;
896 let Inst{31-21} = 0b11111011001;
897 let isPredicated = 1;
898 let isPredicatedFalse = 1;
899 let hasNewValue = 1;
900 let opNewValue = 0;
901 let isPredicatedNew = 1;
902 let BaseOpcode = "A2_sub";
903 }
904 def A2_psubt : HInst<
905 (outs IntRegs:$Rd32),
906 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
907 "if ($Pu4) $Rd32 = sub($Rt32,$Rs32)",
908 tc_1b6011fb, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
909 let Inst{7-7} = 0b0;
910 let Inst{13-13} = 0b0;
911 let Inst{31-21} = 0b11111011001;
912 let isPredicated = 1;
913 let hasNewValue = 1;
914 let opNewValue = 0;
915 let BaseOpcode = "A2_sub";
916 }
917 def A2_psubtnew : HInst<
918 (outs IntRegs:$Rd32),
919 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
920 "if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
921 tc_28d296df, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
922 let Inst{7-7} = 0b0;
923 let Inst{13-13} = 0b1;
924 let Inst{31-21} = 0b11111011001;
925 let isPredicated = 1;
926 let hasNewValue = 1;
927 let opNewValue = 0;
928 let isPredicatedNew = 1;
929 let BaseOpcode = "A2_sub";
930 }
931 def A2_pxorf : HInst<
932 (outs IntRegs:$Rd32),
933 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
934 "if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)",
935 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
936 let Inst{7-7} = 0b1;
937 let Inst{13-13} = 0b0;
938 let Inst{31-21} = 0b11111001011;
939 let isPredicated = 1;
940 let isPredicatedFalse = 1;
941 let hasNewValue = 1;
942 let opNewValue = 0;
943 let BaseOpcode = "A2_xor";
944 }
945 def A2_pxorfnew : HInst<
946 (outs IntRegs:$Rd32),
947 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
948 "if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
949 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
950 let Inst{7-7} = 0b1;
951 let Inst{13-13} = 0b1;
952 let Inst{31-21} = 0b11111001011;
953 let isPredicated = 1;
954 let isPredicatedFalse = 1;
955 let hasNewValue = 1;
956 let opNewValue = 0;
957 let isPredicatedNew = 1;
958 let BaseOpcode = "A2_xor";
959 }
960 def A2_pxort : HInst<
961 (outs IntRegs:$Rd32),
962 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
963 "if ($Pu4) $Rd32 = xor($Rs32,$Rt32)",
964 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
965 let Inst{7-7} = 0b0;
966 let Inst{13-13} = 0b0;
967 let Inst{31-21} = 0b11111001011;
968 let isPredicated = 1;
969 let hasNewValue = 1;
970 let opNewValue = 0;
971 let BaseOpcode = "A2_xor";
972 }
973 def A2_pxortnew : HInst<
974 (outs IntRegs:$Rd32),
975 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
976 "if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
977 tc_28d296df, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
978 let Inst{7-7} = 0b0;
979 let Inst{13-13} = 0b1;
980 let Inst{31-21} = 0b11111001011;
981 let isPredicated = 1;
982 let hasNewValue = 1;
983 let opNewValue = 0;
984 let isPredicatedNew = 1;
985 let BaseOpcode = "A2_xor";
986 }
987 def A2_roundsat : HInst<
988 (outs IntRegs:$Rd32),
989 (ins DoubleRegs:$Rss32),
990 "$Rd32 = round($Rss32):sat",
991 tc_94e6ffd9, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
992 let Inst{13-5} = 0b000000001;
993 let Inst{31-21} = 0b10001000110;
994 let hasNewValue = 1;
995 let opNewValue = 0;
996 let prefersSlot3 = 1;
997 let Defs = [USR_OVF];
998 }
999 def A2_sat : HInst<
1000 (outs IntRegs:$Rd32),
1001 (ins DoubleRegs:$Rss32),
1002 "$Rd32 = sat($Rss32)",
1003 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
1004 let Inst{13-5} = 0b000000000;
1005 let Inst{31-21} = 0b10001000110;
1006 let hasNewValue = 1;
1007 let opNewValue = 0;
1008 let Defs = [USR_OVF];
1009 }
1010 def A2_satb : HInst<
1011 (outs IntRegs:$Rd32),
1012 (ins IntRegs:$Rs32),
1013 "$Rd32 = satb($Rs32)",
1014 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
1015 let Inst{13-5} = 0b000000111;
1016 let Inst{31-21} = 0b10001100110;
1017 let hasNewValue = 1;
1018 let opNewValue = 0;
1019 let Defs = [USR_OVF];
1020 }
1021 def A2_sath : HInst<
1022 (outs IntRegs:$Rd32),
1023 (ins IntRegs:$Rs32),
1024 "$Rd32 = sath($Rs32)",
1025 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
1026 let Inst{13-5} = 0b000000100;
1027 let Inst{31-21} = 0b10001100110;
1028 let hasNewValue = 1;
1029 let opNewValue = 0;
1030 let Defs = [USR_OVF];
1031 }
1032 def A2_satub : HInst<
1033 (outs IntRegs:$Rd32),
1034 (ins IntRegs:$Rs32),
1035 "$Rd32 = satub($Rs32)",
1036 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
1037 let Inst{13-5} = 0b000000110;
1038 let Inst{31-21} = 0b10001100110;
1039 let hasNewValue = 1;
1040 let opNewValue = 0;
1041 let Defs = [USR_OVF];
1042 }
1043 def A2_satuh : HInst<
1044 (outs IntRegs:$Rd32),
1045 (ins IntRegs:$Rs32),
1046 "$Rd32 = satuh($Rs32)",
1047 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
1048 let Inst{13-5} = 0b000000101;
1049 let Inst{31-21} = 0b10001100110;
1050 let hasNewValue = 1;
1051 let opNewValue = 0;
1052 let Defs = [USR_OVF];
1053 }
1054 def A2_sub : HInst<
1055 (outs IntRegs:$Rd32),
1056 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1057 "$Rd32 = sub($Rt32,$Rs32)",
1058 tc_548f402d, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel {
1059 let Inst{7-5} = 0b000;
1060 let Inst{13-13} = 0b0;
1061 let Inst{31-21} = 0b11110011001;
1062 let hasNewValue = 1;
1063 let opNewValue = 0;
1064 let CextOpcode = "A2_sub";
1065 let InputType = "reg";
1066 let BaseOpcode = "A2_sub";
1067 let isPredicable = 1;
1068 }
1069 def A2_subh_h16_hh : HInst<
1070 (outs IntRegs:$Rd32),
1071 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1072 "$Rd32 = sub($Rt32.h,$Rs32.h):<<16",
1073 tc_bd16579e, TypeALU64>, Enc_bd6011 {
1074 let Inst{7-5} = 0b011;
1075 let Inst{13-13} = 0b0;
1076 let Inst{31-21} = 0b11010101011;
1077 let hasNewValue = 1;
1078 let opNewValue = 0;
1079 let prefersSlot3 = 1;
1080 }
1081 def A2_subh_h16_hl : HInst<
1082 (outs IntRegs:$Rd32),
1083 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1084 "$Rd32 = sub($Rt32.h,$Rs32.l):<<16",
1085 tc_bd16579e, TypeALU64>, Enc_bd6011 {
1086 let Inst{7-5} = 0b010;
1087 let Inst{13-13} = 0b0;
1088 let Inst{31-21} = 0b11010101011;
1089 let hasNewValue = 1;
1090 let opNewValue = 0;
1091 let prefersSlot3 = 1;
1092 }
1093 def A2_subh_h16_lh : HInst<
1094 (outs IntRegs:$Rd32),
1095 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1096 "$Rd32 = sub($Rt32.l,$Rs32.h):<<16",
1097 tc_bd16579e, TypeALU64>, Enc_bd6011 {
1098 let Inst{7-5} = 0b001;
1099 let Inst{13-13} = 0b0;
1100 let Inst{31-21} = 0b11010101011;
1101 let hasNewValue = 1;
1102 let opNewValue = 0;
1103 let prefersSlot3 = 1;
1104 }
1105 def A2_subh_h16_ll : HInst<
1106 (outs IntRegs:$Rd32),
1107 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1108 "$Rd32 = sub($Rt32.l,$Rs32.l):<<16",
1109 tc_bd16579e, TypeALU64>, Enc_bd6011 {
1110 let Inst{7-5} = 0b000;
1111 let Inst{13-13} = 0b0;
1112 let Inst{31-21} = 0b11010101011;
1113 let hasNewValue = 1;
1114 let opNewValue = 0;
1115 let prefersSlot3 = 1;
1116 }
1117 def A2_subh_h16_sat_hh : HInst<
1118 (outs IntRegs:$Rd32),
1119 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1120 "$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16",
1121 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1122 let Inst{7-5} = 0b111;
1123 let Inst{13-13} = 0b0;
1124 let Inst{31-21} = 0b11010101011;
1125 let hasNewValue = 1;
1126 let opNewValue = 0;
1127 let prefersSlot3 = 1;
1128 let Defs = [USR_OVF];
1129 }
1130 def A2_subh_h16_sat_hl : HInst<
1131 (outs IntRegs:$Rd32),
1132 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1133 "$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16",
1134 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1135 let Inst{7-5} = 0b110;
1136 let Inst{13-13} = 0b0;
1137 let Inst{31-21} = 0b11010101011;
1138 let hasNewValue = 1;
1139 let opNewValue = 0;
1140 let prefersSlot3 = 1;
1141 let Defs = [USR_OVF];
1142 }
1143 def A2_subh_h16_sat_lh : HInst<
1144 (outs IntRegs:$Rd32),
1145 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1146 "$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16",
1147 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1148 let Inst{7-5} = 0b101;
1149 let Inst{13-13} = 0b0;
1150 let Inst{31-21} = 0b11010101011;
1151 let hasNewValue = 1;
1152 let opNewValue = 0;
1153 let prefersSlot3 = 1;
1154 let Defs = [USR_OVF];
1155 }
1156 def A2_subh_h16_sat_ll : HInst<
1157 (outs IntRegs:$Rd32),
1158 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1159 "$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16",
1160 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1161 let Inst{7-5} = 0b100;
1162 let Inst{13-13} = 0b0;
1163 let Inst{31-21} = 0b11010101011;
1164 let hasNewValue = 1;
1165 let opNewValue = 0;
1166 let prefersSlot3 = 1;
1167 let Defs = [USR_OVF];
1168 }
1169 def A2_subh_l16_hl : HInst<
1170 (outs IntRegs:$Rd32),
1171 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1172 "$Rd32 = sub($Rt32.l,$Rs32.h)",
1173 tc_7ca2ea10, TypeALU64>, Enc_bd6011 {
1174 let Inst{7-5} = 0b010;
1175 let Inst{13-13} = 0b0;
1176 let Inst{31-21} = 0b11010101001;
1177 let hasNewValue = 1;
1178 let opNewValue = 0;
1179 let prefersSlot3 = 1;
1180 }
1181 def A2_subh_l16_ll : HInst<
1182 (outs IntRegs:$Rd32),
1183 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1184 "$Rd32 = sub($Rt32.l,$Rs32.l)",
1185 tc_7ca2ea10, TypeALU64>, Enc_bd6011 {
1186 let Inst{7-5} = 0b000;
1187 let Inst{13-13} = 0b0;
1188 let Inst{31-21} = 0b11010101001;
1189 let hasNewValue = 1;
1190 let opNewValue = 0;
1191 let prefersSlot3 = 1;
1192 }
1193 def A2_subh_l16_sat_hl : HInst<
1194 (outs IntRegs:$Rd32),
1195 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1196 "$Rd32 = sub($Rt32.l,$Rs32.h):sat",
1197 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1198 let Inst{7-5} = 0b110;
1199 let Inst{13-13} = 0b0;
1200 let Inst{31-21} = 0b11010101001;
1201 let hasNewValue = 1;
1202 let opNewValue = 0;
1203 let prefersSlot3 = 1;
1204 let Defs = [USR_OVF];
1205 }
1206 def A2_subh_l16_sat_ll : HInst<
1207 (outs IntRegs:$Rd32),
1208 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1209 "$Rd32 = sub($Rt32.l,$Rs32.l):sat",
1210 tc_47ab9233, TypeALU64>, Enc_bd6011 {
1211 let Inst{7-5} = 0b100;
1212 let Inst{13-13} = 0b0;
1213 let Inst{31-21} = 0b11010101001;
1214 let hasNewValue = 1;
1215 let opNewValue = 0;
1216 let prefersSlot3 = 1;
1217 let Defs = [USR_OVF];
1218 }
1219 def A2_subp : HInst<
1220 (outs DoubleRegs:$Rdd32),
1221 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1222 "$Rdd32 = sub($Rtt32,$Rss32)",
1223 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
1224 let Inst{7-5} = 0b111;
1225 let Inst{13-13} = 0b0;
1226 let Inst{31-21} = 0b11010011001;
1227 }
1228 def A2_subri : HInst<
1229 (outs IntRegs:$Rd32),
1230 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
1231 "$Rd32 = sub(#$Ii,$Rs32)",
1232 tc_548f402d, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel {
1233 let Inst{31-22} = 0b0111011001;
1234 let hasNewValue = 1;
1235 let opNewValue = 0;
1236 let CextOpcode = "A2_sub";
1237 let InputType = "imm";
1238 let isExtendable = 1;
1239 let opExtendable = 1;
1240 let isExtentSigned = 1;
1241 let opExtentBits = 10;
1242 let opExtentAlign = 0;
1243 }
1244 def A2_subsat : HInst<
1245 (outs IntRegs:$Rd32),
1246 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1247 "$Rd32 = sub($Rt32,$Rs32):sat",
1248 tc_b0f50e3c, TypeALU32_3op>, Enc_bd6011 {
1249 let Inst{7-5} = 0b000;
1250 let Inst{13-13} = 0b0;
1251 let Inst{31-21} = 0b11110110110;
1252 let hasNewValue = 1;
1253 let opNewValue = 0;
1254 let prefersSlot3 = 1;
1255 let Defs = [USR_OVF];
1256 let InputType = "reg";
1257 }
1258 def A2_svaddh : HInst<
1259 (outs IntRegs:$Rd32),
1260 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1261 "$Rd32 = vaddh($Rs32,$Rt32)",
1262 tc_548f402d, TypeALU32_3op>, Enc_5ab2be {
1263 let Inst{7-5} = 0b000;
1264 let Inst{13-13} = 0b0;
1265 let Inst{31-21} = 0b11110110000;
1266 let hasNewValue = 1;
1267 let opNewValue = 0;
1268 let InputType = "reg";
1269 let isCommutable = 1;
1270 }
1271 def A2_svaddhs : HInst<
1272 (outs IntRegs:$Rd32),
1273 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1274 "$Rd32 = vaddh($Rs32,$Rt32):sat",
1275 tc_b0f50e3c, TypeALU32_3op>, Enc_5ab2be {
1276 let Inst{7-5} = 0b000;
1277 let Inst{13-13} = 0b0;
1278 let Inst{31-21} = 0b11110110001;
1279 let hasNewValue = 1;
1280 let opNewValue = 0;
1281 let prefersSlot3 = 1;
1282 let Defs = [USR_OVF];
1283 let InputType = "reg";
1284 let isCommutable = 1;
1285 }
1286 def A2_svadduhs : HInst<
1287 (outs IntRegs:$Rd32),
1288 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1289 "$Rd32 = vadduh($Rs32,$Rt32):sat",
1290 tc_b0f50e3c, TypeALU32_3op>, Enc_5ab2be {
1291 let Inst{7-5} = 0b000;
1292 let Inst{13-13} = 0b0;
1293 let Inst{31-21} = 0b11110110011;
1294 let hasNewValue = 1;
1295 let opNewValue = 0;
1296 let prefersSlot3 = 1;
1297 let Defs = [USR_OVF];
1298 let InputType = "reg";
1299 let isCommutable = 1;
1300 }
1301 def A2_svavgh : HInst<
1302 (outs IntRegs:$Rd32),
1303 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1304 "$Rd32 = vavgh($Rs32,$Rt32)",
1305 tc_511f28f6, TypeALU32_3op>, Enc_5ab2be {
1306 let Inst{7-5} = 0b000;
1307 let Inst{13-13} = 0b0;
1308 let Inst{31-21} = 0b11110111000;
1309 let hasNewValue = 1;
1310 let opNewValue = 0;
1311 let prefersSlot3 = 1;
1312 let InputType = "reg";
1313 let isCommutable = 1;
1314 }
1315 def A2_svavghs : HInst<
1316 (outs IntRegs:$Rd32),
1317 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1318 "$Rd32 = vavgh($Rs32,$Rt32):rnd",
1319 tc_76c4c5ef, TypeALU32_3op>, Enc_5ab2be {
1320 let Inst{7-5} = 0b000;
1321 let Inst{13-13} = 0b0;
1322 let Inst{31-21} = 0b11110111001;
1323 let hasNewValue = 1;
1324 let opNewValue = 0;
1325 let prefersSlot3 = 1;
1326 let InputType = "reg";
1327 let isCommutable = 1;
1328 }
1329 def A2_svnavgh : HInst<
1330 (outs IntRegs:$Rd32),
1331 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1332 "$Rd32 = vnavgh($Rt32,$Rs32)",
1333 tc_511f28f6, TypeALU32_3op>, Enc_bd6011 {
1334 let Inst{7-5} = 0b000;
1335 let Inst{13-13} = 0b0;
1336 let Inst{31-21} = 0b11110111011;
1337 let hasNewValue = 1;
1338 let opNewValue = 0;
1339 let prefersSlot3 = 1;
1340 let InputType = "reg";
1341 }
1342 def A2_svsubh : HInst<
1343 (outs IntRegs:$Rd32),
1344 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1345 "$Rd32 = vsubh($Rt32,$Rs32)",
1346 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
1347 let Inst{7-5} = 0b000;
1348 let Inst{13-13} = 0b0;
1349 let Inst{31-21} = 0b11110110100;
1350 let hasNewValue = 1;
1351 let opNewValue = 0;
1352 let InputType = "reg";
1353 }
1354 def A2_svsubhs : HInst<
1355 (outs IntRegs:$Rd32),
1356 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1357 "$Rd32 = vsubh($Rt32,$Rs32):sat",
1358 tc_b0f50e3c, TypeALU32_3op>, Enc_bd6011 {
1359 let Inst{7-5} = 0b000;
1360 let Inst{13-13} = 0b0;
1361 let Inst{31-21} = 0b11110110101;
1362 let hasNewValue = 1;
1363 let opNewValue = 0;
1364 let prefersSlot3 = 1;
1365 let Defs = [USR_OVF];
1366 let InputType = "reg";
1367 }
1368 def A2_svsubuhs : HInst<
1369 (outs IntRegs:$Rd32),
1370 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1371 "$Rd32 = vsubuh($Rt32,$Rs32):sat",
1372 tc_b0f50e3c, TypeALU32_3op>, Enc_bd6011 {
1373 let Inst{7-5} = 0b000;
1374 let Inst{13-13} = 0b0;
1375 let Inst{31-21} = 0b11110110111;
1376 let hasNewValue = 1;
1377 let opNewValue = 0;
1378 let prefersSlot3 = 1;
1379 let Defs = [USR_OVF];
1380 let InputType = "reg";
1381 }
1382 def A2_swiz : HInst<
1383 (outs IntRegs:$Rd32),
1384 (ins IntRegs:$Rs32),
1385 "$Rd32 = swiz($Rs32)",
1386 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
1387 let Inst{13-5} = 0b000000111;
1388 let Inst{31-21} = 0b10001100100;
1389 let hasNewValue = 1;
1390 let opNewValue = 0;
1391 }
1392 def A2_sxtb : HInst<
1393 (outs IntRegs:$Rd32),
1394 (ins IntRegs:$Rs32),
1395 "$Rd32 = sxtb($Rs32)",
1396 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1397 let Inst{13-5} = 0b000000000;
1398 let Inst{31-21} = 0b01110000101;
1399 let hasNewValue = 1;
1400 let opNewValue = 0;
1401 let BaseOpcode = "A2_sxtb";
1402 let isPredicable = 1;
1403 }
1404 def A2_sxth : HInst<
1405 (outs IntRegs:$Rd32),
1406 (ins IntRegs:$Rs32),
1407 "$Rd32 = sxth($Rs32)",
1408 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1409 let Inst{13-5} = 0b000000000;
1410 let Inst{31-21} = 0b01110000111;
1411 let hasNewValue = 1;
1412 let opNewValue = 0;
1413 let BaseOpcode = "A2_sxth";
1414 let isPredicable = 1;
1415 }
1416 def A2_sxtw : HInst<
1417 (outs DoubleRegs:$Rdd32),
1418 (ins IntRegs:$Rs32),
1419 "$Rdd32 = sxtw($Rs32)",
1420 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
1421 let Inst{13-5} = 0b000000000;
1422 let Inst{31-21} = 0b10000100010;
1423 }
1424 def A2_tfr : HInst<
1425 (outs IntRegs:$Rd32),
1426 (ins IntRegs:$Rs32),
1427 "$Rd32 = $Rs32",
1428 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1429 let Inst{13-5} = 0b000000000;
1430 let Inst{31-21} = 0b01110000011;
1431 let hasNewValue = 1;
1432 let opNewValue = 0;
1433 let InputType = "reg";
1434 let BaseOpcode = "A2_tfr";
1435 let isPredicable = 1;
1436 }
1437 def A2_tfrcrr : HInst<
1438 (outs IntRegs:$Rd32),
1439 (ins CtrRegs:$Cs32),
1440 "$Rd32 = $Cs32",
1441 tc_3b4892c6, TypeCR>, Enc_0cb018 {
1442 let Inst{13-5} = 0b000000000;
1443 let Inst{31-21} = 0b01101010000;
1444 let hasNewValue = 1;
1445 let opNewValue = 0;
1446 }
1447 def A2_tfrf : HInst<
1448 (outs IntRegs:$Rd32),
1449 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1450 "if (!$Pu4) $Rd32 = $Rs32",
1451 tc_1b6011fb, TypeALU32_2op>, PredNewRel, ImmRegRel {
1452 let isPredicated = 1;
1453 let isPredicatedFalse = 1;
1454 let hasNewValue = 1;
1455 let opNewValue = 0;
1456 let CextOpcode = "A2_tfr";
1457 let InputType = "reg";
1458 let BaseOpcode = "A2_tfr";
1459 let isPseudo = 1;
1460 let isCodeGenOnly = 1;
1461 }
1462 def A2_tfrfnew : HInst<
1463 (outs IntRegs:$Rd32),
1464 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1465 "if (!$Pu4.new) $Rd32 = $Rs32",
1466 tc_28d296df, TypeALU32_2op>, PredNewRel, ImmRegRel {
1467 let isPredicated = 1;
1468 let isPredicatedFalse = 1;
1469 let hasNewValue = 1;
1470 let opNewValue = 0;
1471 let isPredicatedNew = 1;
1472 let CextOpcode = "A2_tfr";
1473 let InputType = "reg";
1474 let BaseOpcode = "A2_tfr";
1475 let isPseudo = 1;
1476 let isCodeGenOnly = 1;
1477 }
1478 def A2_tfrih : HInst<
1479 (outs IntRegs:$Rx32),
1480 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1481 "$Rx32.h = #$Ii",
1482 tc_548f402d, TypeALU32_2op>, Enc_51436c {
1483 let Inst{21-21} = 0b1;
1484 let Inst{31-24} = 0b01110010;
1485 let hasNewValue = 1;
1486 let opNewValue = 0;
1487 let Constraints = "$Rx32 = $Rx32in";
1488 }
1489 def A2_tfril : HInst<
1490 (outs IntRegs:$Rx32),
1491 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1492 "$Rx32.l = #$Ii",
1493 tc_548f402d, TypeALU32_2op>, Enc_51436c {
1494 let Inst{21-21} = 0b1;
1495 let Inst{31-24} = 0b01110001;
1496 let hasNewValue = 1;
1497 let opNewValue = 0;
1498 let Constraints = "$Rx32 = $Rx32in";
1499 }
1500 def A2_tfrp : HInst<
1501 (outs DoubleRegs:$Rdd32),
1502 (ins DoubleRegs:$Rss32),
1503 "$Rdd32 = $Rss32",
1504 tc_548f402d, TypeALU32_2op>, PredNewRel {
1505 let BaseOpcode = "A2_tfrp";
1506 let isPredicable = 1;
1507 let isPseudo = 1;
1508 }
1509 def A2_tfrpf : HInst<
1510 (outs DoubleRegs:$Rdd32),
1511 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1512 "if (!$Pu4) $Rdd32 = $Rss32",
1513 tc_548f402d, TypeALU32_2op>, PredNewRel {
1514 let isPredicated = 1;
1515 let isPredicatedFalse = 1;
1516 let BaseOpcode = "A2_tfrp";
1517 let isPseudo = 1;
1518 }
1519 def A2_tfrpfnew : HInst<
1520 (outs DoubleRegs:$Rdd32),
1521 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1522 "if (!$Pu4.new) $Rdd32 = $Rss32",
1523 tc_b08be45e, TypeALU32_2op>, PredNewRel {
1524 let isPredicated = 1;
1525 let isPredicatedFalse = 1;
1526 let isPredicatedNew = 1;
1527 let BaseOpcode = "A2_tfrp";
1528 let isPseudo = 1;
1529 }
1530 def A2_tfrpi : HInst<
1531 (outs DoubleRegs:$Rdd32),
1532 (ins s8_0Imm:$Ii),
1533 "$Rdd32 = #$Ii",
1534 tc_548f402d, TypeALU64> {
1535 let isReMaterializable = 1;
1536 let isAsCheapAsAMove = 1;
1537 let isMoveImm = 1;
1538 let isPseudo = 1;
1539 }
1540 def A2_tfrpt : HInst<
1541 (outs DoubleRegs:$Rdd32),
1542 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1543 "if ($Pu4) $Rdd32 = $Rss32",
1544 tc_548f402d, TypeALU32_2op>, PredNewRel {
1545 let isPredicated = 1;
1546 let BaseOpcode = "A2_tfrp";
1547 let isPseudo = 1;
1548 }
1549 def A2_tfrptnew : HInst<
1550 (outs DoubleRegs:$Rdd32),
1551 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1552 "if ($Pu4.new) $Rdd32 = $Rss32",
1553 tc_b08be45e, TypeALU32_2op>, PredNewRel {
1554 let isPredicated = 1;
1555 let isPredicatedNew = 1;
1556 let BaseOpcode = "A2_tfrp";
1557 let isPseudo = 1;
1558 }
1559 def A2_tfrrcr : HInst<
1560 (outs CtrRegs:$Cd32),
1561 (ins IntRegs:$Rs32),
1562 "$Cd32 = $Rs32",
1563 tc_82f0f122, TypeCR>, Enc_bd811a {
1564 let Inst{13-5} = 0b000000000;
1565 let Inst{31-21} = 0b01100010001;
1566 let hasNewValue = 1;
1567 let opNewValue = 0;
1568 }
1569 def A2_tfrsi : HInst<
1570 (outs IntRegs:$Rd32),
1571 (ins s32_0Imm:$Ii),
1572 "$Rd32 = #$Ii",
1573 tc_f16d5b17, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel {
1574 let Inst{21-21} = 0b0;
1575 let Inst{31-24} = 0b01111000;
1576 let hasNewValue = 1;
1577 let opNewValue = 0;
1578 let CextOpcode = "A2_tfr";
1579 let InputType = "imm";
1580 let BaseOpcode = "A2_tfrsi";
1581 let isPredicable = 1;
1582 let isReMaterializable = 1;
1583 let isAsCheapAsAMove = 1;
1584 let isMoveImm = 1;
1585 let isExtendable = 1;
1586 let opExtendable = 1;
1587 let isExtentSigned = 1;
1588 let opExtentBits = 16;
1589 let opExtentAlign = 0;
1590 }
1591 def A2_tfrt : HInst<
1592 (outs IntRegs:$Rd32),
1593 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1594 "if ($Pu4) $Rd32 = $Rs32",
1595 tc_1b6011fb, TypeALU32_2op>, PredNewRel, ImmRegRel {
1596 let isPredicated = 1;
1597 let hasNewValue = 1;
1598 let opNewValue = 0;
1599 let CextOpcode = "A2_tfr";
1600 let InputType = "reg";
1601 let BaseOpcode = "A2_tfr";
1602 let isPseudo = 1;
1603 let isCodeGenOnly = 1;
1604 }
1605 def A2_tfrtnew : HInst<
1606 (outs IntRegs:$Rd32),
1607 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1608 "if ($Pu4.new) $Rd32 = $Rs32",
1609 tc_28d296df, TypeALU32_2op>, PredNewRel, ImmRegRel {
1610 let isPredicated = 1;
1611 let hasNewValue = 1;
1612 let opNewValue = 0;
1613 let isPredicatedNew = 1;
1614 let CextOpcode = "A2_tfr";
1615 let InputType = "reg";
1616 let BaseOpcode = "A2_tfr";
1617 let isPseudo = 1;
1618 let isCodeGenOnly = 1;
1619 }
1620 def A2_vabsh : HInst<
1621 (outs DoubleRegs:$Rdd32),
1622 (ins DoubleRegs:$Rss32),
1623 "$Rdd32 = vabsh($Rss32)",
1624 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
1625 let Inst{13-5} = 0b000000100;
1626 let Inst{31-21} = 0b10000000010;
1627 let prefersSlot3 = 1;
1628 }
1629 def A2_vabshsat : HInst<
1630 (outs DoubleRegs:$Rdd32),
1631 (ins DoubleRegs:$Rss32),
1632 "$Rdd32 = vabsh($Rss32):sat",
1633 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
1634 let Inst{13-5} = 0b000000101;
1635 let Inst{31-21} = 0b10000000010;
1636 let prefersSlot3 = 1;
1637 let Defs = [USR_OVF];
1638 }
1639 def A2_vabsw : HInst<
1640 (outs DoubleRegs:$Rdd32),
1641 (ins DoubleRegs:$Rss32),
1642 "$Rdd32 = vabsw($Rss32)",
1643 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
1644 let Inst{13-5} = 0b000000110;
1645 let Inst{31-21} = 0b10000000010;
1646 let prefersSlot3 = 1;
1647 }
1648 def A2_vabswsat : HInst<
1649 (outs DoubleRegs:$Rdd32),
1650 (ins DoubleRegs:$Rss32),
1651 "$Rdd32 = vabsw($Rss32):sat",
1652 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
1653 let Inst{13-5} = 0b000000111;
1654 let Inst{31-21} = 0b10000000010;
1655 let prefersSlot3 = 1;
1656 let Defs = [USR_OVF];
1657 }
1658 def A2_vaddb_map : HInst<
1659 (outs DoubleRegs:$Rdd32),
1660 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1661 "$Rdd32 = vaddb($Rss32,$Rtt32)",
1662 tc_9c18c9a5, TypeMAPPING> {
1663 let isPseudo = 1;
1664 let isCodeGenOnly = 1;
1665 }
1666 def A2_vaddh : HInst<
1667 (outs DoubleRegs:$Rdd32),
1668 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1669 "$Rdd32 = vaddh($Rss32,$Rtt32)",
1670 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
1671 let Inst{7-5} = 0b010;
1672 let Inst{13-13} = 0b0;
1673 let Inst{31-21} = 0b11010011000;
1674 }
1675 def A2_vaddhs : HInst<
1676 (outs DoubleRegs:$Rdd32),
1677 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1678 "$Rdd32 = vaddh($Rss32,$Rtt32):sat",
1679 tc_47ab9233, TypeALU64>, Enc_a56825 {
1680 let Inst{7-5} = 0b011;
1681 let Inst{13-13} = 0b0;
1682 let Inst{31-21} = 0b11010011000;
1683 let prefersSlot3 = 1;
1684 let Defs = [USR_OVF];
1685 }
1686 def A2_vaddub : HInst<
1687 (outs DoubleRegs:$Rdd32),
1688 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1689 "$Rdd32 = vaddub($Rss32,$Rtt32)",
1690 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
1691 let Inst{7-5} = 0b000;
1692 let Inst{13-13} = 0b0;
1693 let Inst{31-21} = 0b11010011000;
1694 }
1695 def A2_vaddubs : HInst<
1696 (outs DoubleRegs:$Rdd32),
1697 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1698 "$Rdd32 = vaddub($Rss32,$Rtt32):sat",
1699 tc_47ab9233, TypeALU64>, Enc_a56825 {
1700 let Inst{7-5} = 0b001;
1701 let Inst{13-13} = 0b0;
1702 let Inst{31-21} = 0b11010011000;
1703 let prefersSlot3 = 1;
1704 let Defs = [USR_OVF];
1705 }
1706 def A2_vadduhs : HInst<
1707 (outs DoubleRegs:$Rdd32),
1708 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1709 "$Rdd32 = vadduh($Rss32,$Rtt32):sat",
1710 tc_47ab9233, TypeALU64>, Enc_a56825 {
1711 let Inst{7-5} = 0b100;
1712 let Inst{13-13} = 0b0;
1713 let Inst{31-21} = 0b11010011000;
1714 let prefersSlot3 = 1;
1715 let Defs = [USR_OVF];
1716 }
1717 def A2_vaddw : HInst<
1718 (outs DoubleRegs:$Rdd32),
1719 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1720 "$Rdd32 = vaddw($Rss32,$Rtt32)",
1721 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
1722 let Inst{7-5} = 0b101;
1723 let Inst{13-13} = 0b0;
1724 let Inst{31-21} = 0b11010011000;
1725 }
1726 def A2_vaddws : HInst<
1727 (outs DoubleRegs:$Rdd32),
1728 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1729 "$Rdd32 = vaddw($Rss32,$Rtt32):sat",
1730 tc_47ab9233, TypeALU64>, Enc_a56825 {
1731 let Inst{7-5} = 0b110;
1732 let Inst{13-13} = 0b0;
1733 let Inst{31-21} = 0b11010011000;
1734 let prefersSlot3 = 1;
1735 let Defs = [USR_OVF];
1736 }
1737 def A2_vavgh : HInst<
1738 (outs DoubleRegs:$Rdd32),
1739 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1740 "$Rdd32 = vavgh($Rss32,$Rtt32)",
1741 tc_cd321066, TypeALU64>, Enc_a56825 {
1742 let Inst{7-5} = 0b010;
1743 let Inst{13-13} = 0b0;
1744 let Inst{31-21} = 0b11010011010;
1745 let prefersSlot3 = 1;
1746 }
1747 def A2_vavghcr : HInst<
1748 (outs DoubleRegs:$Rdd32),
1749 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1750 "$Rdd32 = vavgh($Rss32,$Rtt32):crnd",
1751 tc_63cd9d2d, TypeALU64>, Enc_a56825 {
1752 let Inst{7-5} = 0b100;
1753 let Inst{13-13} = 0b0;
1754 let Inst{31-21} = 0b11010011010;
1755 let prefersSlot3 = 1;
1756 }
1757 def A2_vavghr : HInst<
1758 (outs DoubleRegs:$Rdd32),
1759 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1760 "$Rdd32 = vavgh($Rss32,$Rtt32):rnd",
1761 tc_37326008, TypeALU64>, Enc_a56825 {
1762 let Inst{7-5} = 0b011;
1763 let Inst{13-13} = 0b0;
1764 let Inst{31-21} = 0b11010011010;
1765 let prefersSlot3 = 1;
1766 }
1767 def A2_vavgub : HInst<
1768 (outs DoubleRegs:$Rdd32),
1769 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1770 "$Rdd32 = vavgub($Rss32,$Rtt32)",
1771 tc_cd321066, TypeALU64>, Enc_a56825 {
1772 let Inst{7-5} = 0b000;
1773 let Inst{13-13} = 0b0;
1774 let Inst{31-21} = 0b11010011010;
1775 let prefersSlot3 = 1;
1776 }
1777 def A2_vavgubr : HInst<
1778 (outs DoubleRegs:$Rdd32),
1779 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1780 "$Rdd32 = vavgub($Rss32,$Rtt32):rnd",
1781 tc_37326008, TypeALU64>, Enc_a56825 {
1782 let Inst{7-5} = 0b001;
1783 let Inst{13-13} = 0b0;
1784 let Inst{31-21} = 0b11010011010;
1785 let prefersSlot3 = 1;
1786 }
1787 def A2_vavguh : HInst<
1788 (outs DoubleRegs:$Rdd32),
1789 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1790 "$Rdd32 = vavguh($Rss32,$Rtt32)",
1791 tc_cd321066, TypeALU64>, Enc_a56825 {
1792 let Inst{7-5} = 0b101;
1793 let Inst{13-13} = 0b0;
1794 let Inst{31-21} = 0b11010011010;
1795 let prefersSlot3 = 1;
1796 }
1797 def A2_vavguhr : HInst<
1798 (outs DoubleRegs:$Rdd32),
1799 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1800 "$Rdd32 = vavguh($Rss32,$Rtt32):rnd",
1801 tc_37326008, TypeALU64>, Enc_a56825 {
1802 let Inst{7-5} = 0b110;
1803 let Inst{13-13} = 0b0;
1804 let Inst{31-21} = 0b11010011010;
1805 let prefersSlot3 = 1;
1806 }
1807 def A2_vavguw : HInst<
1808 (outs DoubleRegs:$Rdd32),
1809 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1810 "$Rdd32 = vavguw($Rss32,$Rtt32)",
1811 tc_cd321066, TypeALU64>, Enc_a56825 {
1812 let Inst{7-5} = 0b011;
1813 let Inst{13-13} = 0b0;
1814 let Inst{31-21} = 0b11010011011;
1815 let prefersSlot3 = 1;
1816 }
1817 def A2_vavguwr : HInst<
1818 (outs DoubleRegs:$Rdd32),
1819 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1820 "$Rdd32 = vavguw($Rss32,$Rtt32):rnd",
1821 tc_37326008, TypeALU64>, Enc_a56825 {
1822 let Inst{7-5} = 0b100;
1823 let Inst{13-13} = 0b0;
1824 let Inst{31-21} = 0b11010011011;
1825 let prefersSlot3 = 1;
1826 }
1827 def A2_vavgw : HInst<
1828 (outs DoubleRegs:$Rdd32),
1829 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1830 "$Rdd32 = vavgw($Rss32,$Rtt32)",
1831 tc_cd321066, TypeALU64>, Enc_a56825 {
1832 let Inst{7-5} = 0b000;
1833 let Inst{13-13} = 0b0;
1834 let Inst{31-21} = 0b11010011011;
1835 let prefersSlot3 = 1;
1836 }
1837 def A2_vavgwcr : HInst<
1838 (outs DoubleRegs:$Rdd32),
1839 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1840 "$Rdd32 = vavgw($Rss32,$Rtt32):crnd",
1841 tc_63cd9d2d, TypeALU64>, Enc_a56825 {
1842 let Inst{7-5} = 0b010;
1843 let Inst{13-13} = 0b0;
1844 let Inst{31-21} = 0b11010011011;
1845 let prefersSlot3 = 1;
1846 }
1847 def A2_vavgwr : HInst<
1848 (outs DoubleRegs:$Rdd32),
1849 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1850 "$Rdd32 = vavgw($Rss32,$Rtt32):rnd",
1851 tc_37326008, TypeALU64>, Enc_a56825 {
1852 let Inst{7-5} = 0b001;
1853 let Inst{13-13} = 0b0;
1854 let Inst{31-21} = 0b11010011011;
1855 let prefersSlot3 = 1;
1856 }
1857 def A2_vcmpbeq : HInst<
1858 (outs PredRegs:$Pd4),
1859 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1860 "$Pd4 = vcmpb.eq($Rss32,$Rtt32)",
1861 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1862 let Inst{7-2} = 0b110000;
1863 let Inst{13-13} = 0b0;
1864 let Inst{31-21} = 0b11010010000;
1865 }
1866 def A2_vcmpbgtu : HInst<
1867 (outs PredRegs:$Pd4),
1868 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1869 "$Pd4 = vcmpb.gtu($Rss32,$Rtt32)",
1870 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1871 let Inst{7-2} = 0b111000;
1872 let Inst{13-13} = 0b0;
1873 let Inst{31-21} = 0b11010010000;
1874 }
1875 def A2_vcmpheq : HInst<
1876 (outs PredRegs:$Pd4),
1877 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1878 "$Pd4 = vcmph.eq($Rss32,$Rtt32)",
1879 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1880 let Inst{7-2} = 0b011000;
1881 let Inst{13-13} = 0b0;
1882 let Inst{31-21} = 0b11010010000;
1883 }
1884 def A2_vcmphgt : HInst<
1885 (outs PredRegs:$Pd4),
1886 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1887 "$Pd4 = vcmph.gt($Rss32,$Rtt32)",
1888 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1889 let Inst{7-2} = 0b100000;
1890 let Inst{13-13} = 0b0;
1891 let Inst{31-21} = 0b11010010000;
1892 }
1893 def A2_vcmphgtu : HInst<
1894 (outs PredRegs:$Pd4),
1895 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1896 "$Pd4 = vcmph.gtu($Rss32,$Rtt32)",
1897 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1898 let Inst{7-2} = 0b101000;
1899 let Inst{13-13} = 0b0;
1900 let Inst{31-21} = 0b11010010000;
1901 }
1902 def A2_vcmpweq : HInst<
1903 (outs PredRegs:$Pd4),
1904 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1905 "$Pd4 = vcmpw.eq($Rss32,$Rtt32)",
1906 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1907 let Inst{7-2} = 0b000000;
1908 let Inst{13-13} = 0b0;
1909 let Inst{31-21} = 0b11010010000;
1910 }
1911 def A2_vcmpwgt : HInst<
1912 (outs PredRegs:$Pd4),
1913 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1914 "$Pd4 = vcmpw.gt($Rss32,$Rtt32)",
1915 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1916 let Inst{7-2} = 0b001000;
1917 let Inst{13-13} = 0b0;
1918 let Inst{31-21} = 0b11010010000;
1919 }
1920 def A2_vcmpwgtu : HInst<
1921 (outs PredRegs:$Pd4),
1922 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1923 "$Pd4 = vcmpw.gtu($Rss32,$Rtt32)",
1924 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
1925 let Inst{7-2} = 0b010000;
1926 let Inst{13-13} = 0b0;
1927 let Inst{31-21} = 0b11010010000;
1928 }
1929 def A2_vconj : HInst<
1930 (outs DoubleRegs:$Rdd32),
1931 (ins DoubleRegs:$Rss32),
1932 "$Rdd32 = vconj($Rss32):sat",
1933 tc_94e6ffd9, TypeS_2op>, Enc_b9c5fb {
1934 let Inst{13-5} = 0b000000111;
1935 let Inst{31-21} = 0b10000000100;
1936 let prefersSlot3 = 1;
1937 let Defs = [USR_OVF];
1938 }
1939 def A2_vmaxb : HInst<
1940 (outs DoubleRegs:$Rdd32),
1941 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1942 "$Rdd32 = vmaxb($Rtt32,$Rss32)",
1943 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1944 let Inst{7-5} = 0b110;
1945 let Inst{13-13} = 0b0;
1946 let Inst{31-21} = 0b11010011110;
1947 let prefersSlot3 = 1;
1948 }
1949 def A2_vmaxh : HInst<
1950 (outs DoubleRegs:$Rdd32),
1951 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1952 "$Rdd32 = vmaxh($Rtt32,$Rss32)",
1953 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1954 let Inst{7-5} = 0b001;
1955 let Inst{13-13} = 0b0;
1956 let Inst{31-21} = 0b11010011110;
1957 let prefersSlot3 = 1;
1958 }
1959 def A2_vmaxub : HInst<
1960 (outs DoubleRegs:$Rdd32),
1961 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1962 "$Rdd32 = vmaxub($Rtt32,$Rss32)",
1963 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1964 let Inst{7-5} = 0b000;
1965 let Inst{13-13} = 0b0;
1966 let Inst{31-21} = 0b11010011110;
1967 let prefersSlot3 = 1;
1968 }
1969 def A2_vmaxuh : HInst<
1970 (outs DoubleRegs:$Rdd32),
1971 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1972 "$Rdd32 = vmaxuh($Rtt32,$Rss32)",
1973 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1974 let Inst{7-5} = 0b010;
1975 let Inst{13-13} = 0b0;
1976 let Inst{31-21} = 0b11010011110;
1977 let prefersSlot3 = 1;
1978 }
1979 def A2_vmaxuw : HInst<
1980 (outs DoubleRegs:$Rdd32),
1981 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1982 "$Rdd32 = vmaxuw($Rtt32,$Rss32)",
1983 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1984 let Inst{7-5} = 0b101;
1985 let Inst{13-13} = 0b0;
1986 let Inst{31-21} = 0b11010011101;
1987 let prefersSlot3 = 1;
1988 }
1989 def A2_vmaxw : HInst<
1990 (outs DoubleRegs:$Rdd32),
1991 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1992 "$Rdd32 = vmaxw($Rtt32,$Rss32)",
1993 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
1994 let Inst{7-5} = 0b011;
1995 let Inst{13-13} = 0b0;
1996 let Inst{31-21} = 0b11010011110;
1997 let prefersSlot3 = 1;
1998 }
1999 def A2_vminb : HInst<
2000 (outs DoubleRegs:$Rdd32),
2001 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2002 "$Rdd32 = vminb($Rtt32,$Rss32)",
2003 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2004 let Inst{7-5} = 0b111;
2005 let Inst{13-13} = 0b0;
2006 let Inst{31-21} = 0b11010011110;
2007 let prefersSlot3 = 1;
2008 }
2009 def A2_vminh : HInst<
2010 (outs DoubleRegs:$Rdd32),
2011 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2012 "$Rdd32 = vminh($Rtt32,$Rss32)",
2013 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2014 let Inst{7-5} = 0b001;
2015 let Inst{13-13} = 0b0;
2016 let Inst{31-21} = 0b11010011101;
2017 let prefersSlot3 = 1;
2018 }
2019 def A2_vminub : HInst<
2020 (outs DoubleRegs:$Rdd32),
2021 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2022 "$Rdd32 = vminub($Rtt32,$Rss32)",
2023 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2024 let Inst{7-5} = 0b000;
2025 let Inst{13-13} = 0b0;
2026 let Inst{31-21} = 0b11010011101;
2027 let prefersSlot3 = 1;
2028 }
2029 def A2_vminuh : HInst<
2030 (outs DoubleRegs:$Rdd32),
2031 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2032 "$Rdd32 = vminuh($Rtt32,$Rss32)",
2033 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2034 let Inst{7-5} = 0b010;
2035 let Inst{13-13} = 0b0;
2036 let Inst{31-21} = 0b11010011101;
2037 let prefersSlot3 = 1;
2038 }
2039 def A2_vminuw : HInst<
2040 (outs DoubleRegs:$Rdd32),
2041 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2042 "$Rdd32 = vminuw($Rtt32,$Rss32)",
2043 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2044 let Inst{7-5} = 0b100;
2045 let Inst{13-13} = 0b0;
2046 let Inst{31-21} = 0b11010011101;
2047 let prefersSlot3 = 1;
2048 }
2049 def A2_vminw : HInst<
2050 (outs DoubleRegs:$Rdd32),
2051 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2052 "$Rdd32 = vminw($Rtt32,$Rss32)",
2053 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2054 let Inst{7-5} = 0b011;
2055 let Inst{13-13} = 0b0;
2056 let Inst{31-21} = 0b11010011101;
2057 let prefersSlot3 = 1;
2058 }
2059 def A2_vnavgh : HInst<
2060 (outs DoubleRegs:$Rdd32),
2061 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2062 "$Rdd32 = vnavgh($Rtt32,$Rss32)",
2063 tc_cd321066, TypeALU64>, Enc_ea23e4 {
2064 let Inst{7-5} = 0b000;
2065 let Inst{13-13} = 0b0;
2066 let Inst{31-21} = 0b11010011100;
2067 let prefersSlot3 = 1;
2068 }
2069 def A2_vnavghcr : HInst<
2070 (outs DoubleRegs:$Rdd32),
2071 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2072 "$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat",
2073 tc_63cd9d2d, TypeALU64>, Enc_ea23e4 {
2074 let Inst{7-5} = 0b010;
2075 let Inst{13-13} = 0b0;
2076 let Inst{31-21} = 0b11010011100;
2077 let prefersSlot3 = 1;
2078 let Defs = [USR_OVF];
2079 }
2080 def A2_vnavghr : HInst<
2081 (outs DoubleRegs:$Rdd32),
2082 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2083 "$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat",
2084 tc_63cd9d2d, TypeALU64>, Enc_ea23e4 {
2085 let Inst{7-5} = 0b001;
2086 let Inst{13-13} = 0b0;
2087 let Inst{31-21} = 0b11010011100;
2088 let prefersSlot3 = 1;
2089 let Defs = [USR_OVF];
2090 }
2091 def A2_vnavgw : HInst<
2092 (outs DoubleRegs:$Rdd32),
2093 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2094 "$Rdd32 = vnavgw($Rtt32,$Rss32)",
2095 tc_cd321066, TypeALU64>, Enc_ea23e4 {
2096 let Inst{7-5} = 0b011;
2097 let Inst{13-13} = 0b0;
2098 let Inst{31-21} = 0b11010011100;
2099 let prefersSlot3 = 1;
2100 }
2101 def A2_vnavgwcr : HInst<
2102 (outs DoubleRegs:$Rdd32),
2103 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2104 "$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat",
2105 tc_63cd9d2d, TypeALU64>, Enc_ea23e4 {
2106 let Inst{7-5} = 0b110;
2107 let Inst{13-13} = 0b0;
2108 let Inst{31-21} = 0b11010011100;
2109 let prefersSlot3 = 1;
2110 let Defs = [USR_OVF];
2111 }
2112 def A2_vnavgwr : HInst<
2113 (outs DoubleRegs:$Rdd32),
2114 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2115 "$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat",
2116 tc_63cd9d2d, TypeALU64>, Enc_ea23e4 {
2117 let Inst{7-5} = 0b100;
2118 let Inst{13-13} = 0b0;
2119 let Inst{31-21} = 0b11010011100;
2120 let prefersSlot3 = 1;
2121 let Defs = [USR_OVF];
2122 }
2123 def A2_vraddub : HInst<
2124 (outs DoubleRegs:$Rdd32),
2125 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2126 "$Rdd32 = vraddub($Rss32,$Rtt32)",
2127 tc_8c8041e6, TypeM>, Enc_a56825 {
2128 let Inst{7-5} = 0b001;
2129 let Inst{13-13} = 0b0;
2130 let Inst{31-21} = 0b11101000010;
2131 let prefersSlot3 = 1;
2132 }
2133 def A2_vraddub_acc : HInst<
2134 (outs DoubleRegs:$Rxx32),
2135 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2136 "$Rxx32 += vraddub($Rss32,$Rtt32)",
2137 tc_8cb685d9, TypeM>, Enc_88c16c {
2138 let Inst{7-5} = 0b001;
2139 let Inst{13-13} = 0b0;
2140 let Inst{31-21} = 0b11101010010;
2141 let prefersSlot3 = 1;
2142 let Constraints = "$Rxx32 = $Rxx32in";
2143 }
2144 def A2_vrsadub : HInst<
2145 (outs DoubleRegs:$Rdd32),
2146 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2147 "$Rdd32 = vrsadub($Rss32,$Rtt32)",
2148 tc_8c8041e6, TypeM>, Enc_a56825 {
2149 let Inst{7-5} = 0b010;
2150 let Inst{13-13} = 0b0;
2151 let Inst{31-21} = 0b11101000010;
2152 let prefersSlot3 = 1;
2153 }
2154 def A2_vrsadub_acc : HInst<
2155 (outs DoubleRegs:$Rxx32),
2156 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2157 "$Rxx32 += vrsadub($Rss32,$Rtt32)",
2158 tc_8cb685d9, TypeM>, Enc_88c16c {
2159 let Inst{7-5} = 0b010;
2160 let Inst{13-13} = 0b0;
2161 let Inst{31-21} = 0b11101010010;
2162 let prefersSlot3 = 1;
2163 let Constraints = "$Rxx32 = $Rxx32in";
2164 }
2165 def A2_vsubb_map : HInst<
2166 (outs DoubleRegs:$Rdd32),
2167 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2168 "$Rdd32 = vsubb($Rss32,$Rtt32)",
2169 tc_9c18c9a5, TypeMAPPING> {
2170 let isPseudo = 1;
2171 let isCodeGenOnly = 1;
2172 }
2173 def A2_vsubh : HInst<
2174 (outs DoubleRegs:$Rdd32),
2175 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2176 "$Rdd32 = vsubh($Rtt32,$Rss32)",
2177 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
2178 let Inst{7-5} = 0b010;
2179 let Inst{13-13} = 0b0;
2180 let Inst{31-21} = 0b11010011001;
2181 }
2182 def A2_vsubhs : HInst<
2183 (outs DoubleRegs:$Rdd32),
2184 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2185 "$Rdd32 = vsubh($Rtt32,$Rss32):sat",
2186 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2187 let Inst{7-5} = 0b011;
2188 let Inst{13-13} = 0b0;
2189 let Inst{31-21} = 0b11010011001;
2190 let prefersSlot3 = 1;
2191 let Defs = [USR_OVF];
2192 }
2193 def A2_vsubub : HInst<
2194 (outs DoubleRegs:$Rdd32),
2195 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2196 "$Rdd32 = vsubub($Rtt32,$Rss32)",
2197 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
2198 let Inst{7-5} = 0b000;
2199 let Inst{13-13} = 0b0;
2200 let Inst{31-21} = 0b11010011001;
2201 }
2202 def A2_vsububs : HInst<
2203 (outs DoubleRegs:$Rdd32),
2204 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2205 "$Rdd32 = vsubub($Rtt32,$Rss32):sat",
2206 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2207 let Inst{7-5} = 0b001;
2208 let Inst{13-13} = 0b0;
2209 let Inst{31-21} = 0b11010011001;
2210 let prefersSlot3 = 1;
2211 let Defs = [USR_OVF];
2212 }
2213 def A2_vsubuhs : HInst<
2214 (outs DoubleRegs:$Rdd32),
2215 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2216 "$Rdd32 = vsubuh($Rtt32,$Rss32):sat",
2217 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2218 let Inst{7-5} = 0b100;
2219 let Inst{13-13} = 0b0;
2220 let Inst{31-21} = 0b11010011001;
2221 let prefersSlot3 = 1;
2222 let Defs = [USR_OVF];
2223 }
2224 def A2_vsubw : HInst<
2225 (outs DoubleRegs:$Rdd32),
2226 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2227 "$Rdd32 = vsubw($Rtt32,$Rss32)",
2228 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
2229 let Inst{7-5} = 0b101;
2230 let Inst{13-13} = 0b0;
2231 let Inst{31-21} = 0b11010011001;
2232 }
2233 def A2_vsubws : HInst<
2234 (outs DoubleRegs:$Rdd32),
2235 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2236 "$Rdd32 = vsubw($Rtt32,$Rss32):sat",
2237 tc_47ab9233, TypeALU64>, Enc_ea23e4 {
2238 let Inst{7-5} = 0b110;
2239 let Inst{13-13} = 0b0;
2240 let Inst{31-21} = 0b11010011001;
2241 let prefersSlot3 = 1;
2242 let Defs = [USR_OVF];
2243 }
2244 def A2_xor : HInst<
2245 (outs IntRegs:$Rd32),
2246 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2247 "$Rd32 = xor($Rs32,$Rt32)",
2248 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, PredNewRel {
2249 let Inst{7-5} = 0b000;
2250 let Inst{13-13} = 0b0;
2251 let Inst{31-21} = 0b11110001011;
2252 let hasNewValue = 1;
2253 let opNewValue = 0;
2254 let InputType = "reg";
2255 let BaseOpcode = "A2_xor";
2256 let isCommutable = 1;
2257 let isPredicable = 1;
2258 }
2259 def A2_xorp : HInst<
2260 (outs DoubleRegs:$Rdd32),
2261 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2262 "$Rdd32 = xor($Rss32,$Rtt32)",
2263 tc_9c18c9a5, TypeALU64>, Enc_a56825 {
2264 let Inst{7-5} = 0b100;
2265 let Inst{13-13} = 0b0;
2266 let Inst{31-21} = 0b11010011111;
2267 let isCommutable = 1;
2268 }
2269 def A2_zxtb : HInst<
2270 (outs IntRegs:$Rd32),
2271 (ins IntRegs:$Rs32),
2272 "$Rd32 = zxtb($Rs32)",
2273 tc_548f402d, TypeALU32_2op>, PredNewRel {
2274 let hasNewValue = 1;
2275 let opNewValue = 0;
2276 let BaseOpcode = "A2_zxtb";
2277 let isPredicable = 1;
2278 let isPseudo = 1;
2279 let isCodeGenOnly = 1;
2280 }
2281 def A2_zxth : HInst<
2282 (outs IntRegs:$Rd32),
2283 (ins IntRegs:$Rs32),
2284 "$Rd32 = zxth($Rs32)",
2285 tc_f16d5b17, TypeALU32_2op>, Enc_5e2823, PredNewRel {
2286 let Inst{13-5} = 0b000000000;
2287 let Inst{31-21} = 0b01110000110;
2288 let hasNewValue = 1;
2289 let opNewValue = 0;
2290 let BaseOpcode = "A2_zxth";
2291 let isPredicable = 1;
2292 }
2293 def A4_addp_c : HInst<
2294 (outs DoubleRegs:$Rdd32, PredRegs:$Px4),
2295 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
2296 "$Rdd32 = add($Rss32,$Rtt32,$Px4):carry",
2297 tc_a87879e8, TypeS_3op>, Enc_2b3f60 {
2298 let Inst{7-7} = 0b0;
2299 let Inst{13-13} = 0b0;
2300 let Inst{31-21} = 0b11000010110;
2301 let isPredicateLate = 1;
2302 let Constraints = "$Px4 = $Px4in";
2303 }
2304 def A4_andn : HInst<
2305 (outs IntRegs:$Rd32),
2306 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2307 "$Rd32 = and($Rt32,~$Rs32)",
2308 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
2309 let Inst{7-5} = 0b000;
2310 let Inst{13-13} = 0b0;
2311 let Inst{31-21} = 0b11110001100;
2312 let hasNewValue = 1;
2313 let opNewValue = 0;
2314 let InputType = "reg";
2315 }
2316 def A4_andnp : HInst<
2317 (outs DoubleRegs:$Rdd32),
2318 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2319 "$Rdd32 = and($Rtt32,~$Rss32)",
2320 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
2321 let Inst{7-5} = 0b001;
2322 let Inst{13-13} = 0b0;
2323 let Inst{31-21} = 0b11010011111;
2324 }
2325 def A4_bitsplit : HInst<
2326 (outs DoubleRegs:$Rdd32),
2327 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2328 "$Rdd32 = bitsplit($Rs32,$Rt32)",
2329 tc_7ca2ea10, TypeALU64>, Enc_be32a5 {
2330 let Inst{7-5} = 0b000;
2331 let Inst{13-13} = 0b0;
2332 let Inst{31-21} = 0b11010100001;
2333 let prefersSlot3 = 1;
2334 }
2335 def A4_bitspliti : HInst<
2336 (outs DoubleRegs:$Rdd32),
2337 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2338 "$Rdd32 = bitsplit($Rs32,#$Ii)",
2339 tc_7ca2ea10, TypeS_2op>, Enc_311abd {
2340 let Inst{7-5} = 0b100;
2341 let Inst{13-13} = 0b0;
2342 let Inst{31-21} = 0b10001000110;
2343 let prefersSlot3 = 1;
2344 }
2345 def A4_boundscheck : HInst<
2346 (outs PredRegs:$Pd4),
2347 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
2348 "$Pd4 = boundscheck($Rs32,$Rtt32)",
2349 tc_c58f771a, TypeALU64> {
2350 let isPseudo = 1;
2351 }
2352 def A4_boundscheck_hi : HInst<
2353 (outs PredRegs:$Pd4),
2354 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2355 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi",
2356 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
2357 let Inst{7-2} = 0b101000;
2358 let Inst{13-13} = 0b1;
2359 let Inst{31-21} = 0b11010010000;
2360 }
2361 def A4_boundscheck_lo : HInst<
2362 (outs PredRegs:$Pd4),
2363 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2364 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo",
2365 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
2366 let Inst{7-2} = 0b100000;
2367 let Inst{13-13} = 0b1;
2368 let Inst{31-21} = 0b11010010000;
2369 }
2370 def A4_cmpbeq : HInst<
2371 (outs PredRegs:$Pd4),
2372 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2373 "$Pd4 = cmpb.eq($Rs32,$Rt32)",
2374 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2375 let Inst{7-2} = 0b110000;
2376 let Inst{13-13} = 0b0;
2377 let Inst{31-21} = 0b11000111110;
2378 let CextOpcode = "A4_cmpbeq";
2379 let InputType = "reg";
2380 let isCommutable = 1;
2381 let isCompare = 1;
2382 }
2383 def A4_cmpbeqi : HInst<
2384 (outs PredRegs:$Pd4),
2385 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
2386 "$Pd4 = cmpb.eq($Rs32,#$Ii)",
2387 tc_5fa2857c, TypeALU64>, Enc_08d755, ImmRegRel {
2388 let Inst{4-2} = 0b000;
2389 let Inst{13-13} = 0b0;
2390 let Inst{31-21} = 0b11011101000;
2391 let CextOpcode = "A4_cmpbeq";
2392 let InputType = "imm";
2393 let isCommutable = 1;
2394 let isCompare = 1;
2395 }
2396 def A4_cmpbgt : HInst<
2397 (outs PredRegs:$Pd4),
2398 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2399 "$Pd4 = cmpb.gt($Rs32,$Rt32)",
2400 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2401 let Inst{7-2} = 0b010000;
2402 let Inst{13-13} = 0b0;
2403 let Inst{31-21} = 0b11000111110;
2404 let CextOpcode = "A4_cmpbgt";
2405 let InputType = "reg";
2406 let isCompare = 1;
2407 }
2408 def A4_cmpbgti : HInst<
2409 (outs PredRegs:$Pd4),
2410 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
2411 "$Pd4 = cmpb.gt($Rs32,#$Ii)",
2412 tc_5fa2857c, TypeALU64>, Enc_08d755, ImmRegRel {
2413 let Inst{4-2} = 0b000;
2414 let Inst{13-13} = 0b0;
2415 let Inst{31-21} = 0b11011101001;
2416 let CextOpcode = "A4_cmpbgt";
2417 let InputType = "imm";
2418 let isCompare = 1;
2419 }
2420 def A4_cmpbgtu : HInst<
2421 (outs PredRegs:$Pd4),
2422 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2423 "$Pd4 = cmpb.gtu($Rs32,$Rt32)",
2424 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2425 let Inst{7-2} = 0b111000;
2426 let Inst{13-13} = 0b0;
2427 let Inst{31-21} = 0b11000111110;
2428 let CextOpcode = "A4_cmpbgtu";
2429 let InputType = "reg";
2430 let isCompare = 1;
2431 }
2432 def A4_cmpbgtui : HInst<
2433 (outs PredRegs:$Pd4),
2434 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2435 "$Pd4 = cmpb.gtu($Rs32,#$Ii)",
2436 tc_5fa2857c, TypeALU64>, Enc_02553a, ImmRegRel {
2437 let Inst{4-2} = 0b000;
2438 let Inst{13-12} = 0b00;
2439 let Inst{31-21} = 0b11011101010;
2440 let CextOpcode = "A4_cmpbgtu";
2441 let InputType = "imm";
2442 let isCompare = 1;
2443 let isExtendable = 1;
2444 let opExtendable = 2;
2445 let isExtentSigned = 0;
2446 let opExtentBits = 7;
2447 let opExtentAlign = 0;
2448 }
2449 def A4_cmpheq : HInst<
2450 (outs PredRegs:$Pd4),
2451 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2452 "$Pd4 = cmph.eq($Rs32,$Rt32)",
2453 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2454 let Inst{7-2} = 0b011000;
2455 let Inst{13-13} = 0b0;
2456 let Inst{31-21} = 0b11000111110;
2457 let CextOpcode = "A4_cmpheq";
2458 let InputType = "reg";
2459 let isCommutable = 1;
2460 let isCompare = 1;
2461 }
2462 def A4_cmpheqi : HInst<
2463 (outs PredRegs:$Pd4),
2464 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2465 "$Pd4 = cmph.eq($Rs32,#$Ii)",
2466 tc_5fa2857c, TypeALU64>, Enc_08d755, ImmRegRel {
2467 let Inst{4-2} = 0b010;
2468 let Inst{13-13} = 0b0;
2469 let Inst{31-21} = 0b11011101000;
2470 let CextOpcode = "A4_cmpheq";
2471 let InputType = "imm";
2472 let isCommutable = 1;
2473 let isCompare = 1;
2474 let isExtendable = 1;
2475 let opExtendable = 2;
2476 let isExtentSigned = 1;
2477 let opExtentBits = 8;
2478 let opExtentAlign = 0;
2479 }
2480 def A4_cmphgt : HInst<
2481 (outs PredRegs:$Pd4),
2482 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2483 "$Pd4 = cmph.gt($Rs32,$Rt32)",
2484 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2485 let Inst{7-2} = 0b100000;
2486 let Inst{13-13} = 0b0;
2487 let Inst{31-21} = 0b11000111110;
2488 let CextOpcode = "A4_cmphgt";
2489 let InputType = "reg";
2490 let isCompare = 1;
2491 }
2492 def A4_cmphgti : HInst<
2493 (outs PredRegs:$Pd4),
2494 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2495 "$Pd4 = cmph.gt($Rs32,#$Ii)",
2496 tc_5fa2857c, TypeALU64>, Enc_08d755, ImmRegRel {
2497 let Inst{4-2} = 0b010;
2498 let Inst{13-13} = 0b0;
2499 let Inst{31-21} = 0b11011101001;
2500 let CextOpcode = "A4_cmphgt";
2501 let InputType = "imm";
2502 let isCompare = 1;
2503 let isExtendable = 1;
2504 let opExtendable = 2;
2505 let isExtentSigned = 1;
2506 let opExtentBits = 8;
2507 let opExtentAlign = 0;
2508 }
2509 def A4_cmphgtu : HInst<
2510 (outs PredRegs:$Pd4),
2511 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2512 "$Pd4 = cmph.gtu($Rs32,$Rt32)",
2513 tc_c58f771a, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2514 let Inst{7-2} = 0b101000;
2515 let Inst{13-13} = 0b0;
2516 let Inst{31-21} = 0b11000111110;
2517 let CextOpcode = "A4_cmphgtu";
2518 let InputType = "reg";
2519 let isCompare = 1;
2520 }
2521 def A4_cmphgtui : HInst<
2522 (outs PredRegs:$Pd4),
2523 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2524 "$Pd4 = cmph.gtu($Rs32,#$Ii)",
2525 tc_5fa2857c, TypeALU64>, Enc_02553a, ImmRegRel {
2526 let Inst{4-2} = 0b010;
2527 let Inst{13-12} = 0b00;
2528 let Inst{31-21} = 0b11011101010;
2529 let CextOpcode = "A4_cmphgtu";
2530 let InputType = "imm";
2531 let isCompare = 1;
2532 let isExtendable = 1;
2533 let opExtendable = 2;
2534 let isExtentSigned = 0;
2535 let opExtentBits = 7;
2536 let opExtentAlign = 0;
2537 }
2538 def A4_combineii : HInst<
2539 (outs DoubleRegs:$Rdd32),
2540 (ins s8_0Imm:$Ii, u32_0Imm:$II),
2541 "$Rdd32 = combine(#$Ii,#$II)",
2542 tc_548f402d, TypeALU32_2op>, Enc_f0cca7 {
2543 let Inst{31-21} = 0b01111100100;
2544 let isExtendable = 1;
2545 let opExtendable = 2;
2546 let isExtentSigned = 0;
2547 let opExtentBits = 6;
2548 let opExtentAlign = 0;
2549 }
2550 def A4_combineir : HInst<
2551 (outs DoubleRegs:$Rdd32),
2552 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
2553 "$Rdd32 = combine(#$Ii,$Rs32)",
2554 tc_548f402d, TypeALU32_2op>, Enc_9cdba7 {
2555 let Inst{13-13} = 0b1;
2556 let Inst{31-21} = 0b01110011001;
2557 let isExtendable = 1;
2558 let opExtendable = 1;
2559 let isExtentSigned = 1;
2560 let opExtentBits = 8;
2561 let opExtentAlign = 0;
2562 }
2563 def A4_combineri : HInst<
2564 (outs DoubleRegs:$Rdd32),
2565 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2566 "$Rdd32 = combine($Rs32,#$Ii)",
2567 tc_548f402d, TypeALU32_2op>, Enc_9cdba7 {
2568 let Inst{13-13} = 0b1;
2569 let Inst{31-21} = 0b01110011000;
2570 let isExtendable = 1;
2571 let opExtendable = 2;
2572 let isExtentSigned = 1;
2573 let opExtentBits = 8;
2574 let opExtentAlign = 0;
2575 }
2576 def A4_cround_ri : HInst<
2577 (outs IntRegs:$Rd32),
2578 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2579 "$Rd32 = cround($Rs32,#$Ii)",
2580 tc_63cd9d2d, TypeS_2op>, Enc_a05677 {
2581 let Inst{7-5} = 0b000;
2582 let Inst{13-13} = 0b0;
2583 let Inst{31-21} = 0b10001100111;
2584 let hasNewValue = 1;
2585 let opNewValue = 0;
2586 let prefersSlot3 = 1;
2587 }
2588 def A4_cround_rr : HInst<
2589 (outs IntRegs:$Rd32),
2590 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2591 "$Rd32 = cround($Rs32,$Rt32)",
2592 tc_63cd9d2d, TypeS_3op>, Enc_5ab2be {
2593 let Inst{7-5} = 0b000;
2594 let Inst{13-13} = 0b0;
2595 let Inst{31-21} = 0b11000110110;
2596 let hasNewValue = 1;
2597 let opNewValue = 0;
2598 let prefersSlot3 = 1;
2599 }
2600 def A4_ext : HInst<
2601 (outs),
2602 (ins u26_6Imm:$Ii),
2603 "immext(#$Ii)",
2604 tc_9a13af9d, TypeEXTENDER>, Enc_2b518f {
2605 let Inst{31-28} = 0b0000;
2606 }
2607 def A4_modwrapu : HInst<
2608 (outs IntRegs:$Rd32),
2609 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2610 "$Rd32 = modwrap($Rs32,$Rt32)",
2611 tc_47ab9233, TypeALU64>, Enc_5ab2be {
2612 let Inst{7-5} = 0b111;
2613 let Inst{13-13} = 0b0;
2614 let Inst{31-21} = 0b11010011111;
2615 let hasNewValue = 1;
2616 let opNewValue = 0;
2617 let prefersSlot3 = 1;
2618 }
2619 def A4_orn : HInst<
2620 (outs IntRegs:$Rd32),
2621 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2622 "$Rd32 = or($Rt32,~$Rs32)",
2623 tc_548f402d, TypeALU32_3op>, Enc_bd6011 {
2624 let Inst{7-5} = 0b000;
2625 let Inst{13-13} = 0b0;
2626 let Inst{31-21} = 0b11110001101;
2627 let hasNewValue = 1;
2628 let opNewValue = 0;
2629 let InputType = "reg";
2630 }
2631 def A4_ornp : HInst<
2632 (outs DoubleRegs:$Rdd32),
2633 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2634 "$Rdd32 = or($Rtt32,~$Rss32)",
2635 tc_9c18c9a5, TypeALU64>, Enc_ea23e4 {
2636 let Inst{7-5} = 0b011;
2637 let Inst{13-13} = 0b0;
2638 let Inst{31-21} = 0b11010011111;
2639 }
2640 def A4_paslhf : HInst<
2641 (outs IntRegs:$Rd32),
2642 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2643 "if (!$Pu4) $Rd32 = aslh($Rs32)",
2644 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2645 let Inst{7-5} = 0b000;
2646 let Inst{13-10} = 0b1010;
2647 let Inst{31-21} = 0b01110000000;
2648 let isPredicated = 1;
2649 let isPredicatedFalse = 1;
2650 let hasNewValue = 1;
2651 let opNewValue = 0;
2652 let BaseOpcode = "A2_aslh";
2653 }
2654 def A4_paslhfnew : HInst<
2655 (outs IntRegs:$Rd32),
2656 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2657 "if (!$Pu4.new) $Rd32 = aslh($Rs32)",
2658 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2659 let Inst{7-5} = 0b000;
2660 let Inst{13-10} = 0b1011;
2661 let Inst{31-21} = 0b01110000000;
2662 let isPredicated = 1;
2663 let isPredicatedFalse = 1;
2664 let hasNewValue = 1;
2665 let opNewValue = 0;
2666 let isPredicatedNew = 1;
2667 let BaseOpcode = "A2_aslh";
2668 }
2669 def A4_paslht : HInst<
2670 (outs IntRegs:$Rd32),
2671 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2672 "if ($Pu4) $Rd32 = aslh($Rs32)",
2673 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2674 let Inst{7-5} = 0b000;
2675 let Inst{13-10} = 0b1000;
2676 let Inst{31-21} = 0b01110000000;
2677 let isPredicated = 1;
2678 let hasNewValue = 1;
2679 let opNewValue = 0;
2680 let BaseOpcode = "A2_aslh";
2681 }
2682 def A4_paslhtnew : HInst<
2683 (outs IntRegs:$Rd32),
2684 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2685 "if ($Pu4.new) $Rd32 = aslh($Rs32)",
2686 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2687 let Inst{7-5} = 0b000;
2688 let Inst{13-10} = 0b1001;
2689 let Inst{31-21} = 0b01110000000;
2690 let isPredicated = 1;
2691 let hasNewValue = 1;
2692 let opNewValue = 0;
2693 let isPredicatedNew = 1;
2694 let BaseOpcode = "A2_aslh";
2695 }
2696 def A4_pasrhf : HInst<
2697 (outs IntRegs:$Rd32),
2698 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2699 "if (!$Pu4) $Rd32 = asrh($Rs32)",
2700 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2701 let Inst{7-5} = 0b000;
2702 let Inst{13-10} = 0b1010;
2703 let Inst{31-21} = 0b01110000001;
2704 let isPredicated = 1;
2705 let isPredicatedFalse = 1;
2706 let hasNewValue = 1;
2707 let opNewValue = 0;
2708 let BaseOpcode = "A2_asrh";
2709 }
2710 def A4_pasrhfnew : HInst<
2711 (outs IntRegs:$Rd32),
2712 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2713 "if (!$Pu4.new) $Rd32 = asrh($Rs32)",
2714 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2715 let Inst{7-5} = 0b000;
2716 let Inst{13-10} = 0b1011;
2717 let Inst{31-21} = 0b01110000001;
2718 let isPredicated = 1;
2719 let isPredicatedFalse = 1;
2720 let hasNewValue = 1;
2721 let opNewValue = 0;
2722 let isPredicatedNew = 1;
2723 let BaseOpcode = "A2_asrh";
2724 }
2725 def A4_pasrht : HInst<
2726 (outs IntRegs:$Rd32),
2727 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2728 "if ($Pu4) $Rd32 = asrh($Rs32)",
2729 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2730 let Inst{7-5} = 0b000;
2731 let Inst{13-10} = 0b1000;
2732 let Inst{31-21} = 0b01110000001;
2733 let isPredicated = 1;
2734 let hasNewValue = 1;
2735 let opNewValue = 0;
2736 let BaseOpcode = "A2_asrh";
2737 }
2738 def A4_pasrhtnew : HInst<
2739 (outs IntRegs:$Rd32),
2740 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2741 "if ($Pu4.new) $Rd32 = asrh($Rs32)",
2742 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2743 let Inst{7-5} = 0b000;
2744 let Inst{13-10} = 0b1001;
2745 let Inst{31-21} = 0b01110000001;
2746 let isPredicated = 1;
2747 let hasNewValue = 1;
2748 let opNewValue = 0;
2749 let isPredicatedNew = 1;
2750 let BaseOpcode = "A2_asrh";
2751 }
2752 def A4_psxtbf : HInst<
2753 (outs IntRegs:$Rd32),
2754 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2755 "if (!$Pu4) $Rd32 = sxtb($Rs32)",
2756 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2757 let Inst{7-5} = 0b000;
2758 let Inst{13-10} = 0b1010;
2759 let Inst{31-21} = 0b01110000101;
2760 let isPredicated = 1;
2761 let isPredicatedFalse = 1;
2762 let hasNewValue = 1;
2763 let opNewValue = 0;
2764 let BaseOpcode = "A2_sxtb";
2765 }
2766 def A4_psxtbfnew : HInst<
2767 (outs IntRegs:$Rd32),
2768 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2769 "if (!$Pu4.new) $Rd32 = sxtb($Rs32)",
2770 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2771 let Inst{7-5} = 0b000;
2772 let Inst{13-10} = 0b1011;
2773 let Inst{31-21} = 0b01110000101;
2774 let isPredicated = 1;
2775 let isPredicatedFalse = 1;
2776 let hasNewValue = 1;
2777 let opNewValue = 0;
2778 let isPredicatedNew = 1;
2779 let BaseOpcode = "A2_sxtb";
2780 }
2781 def A4_psxtbt : HInst<
2782 (outs IntRegs:$Rd32),
2783 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2784 "if ($Pu4) $Rd32 = sxtb($Rs32)",
2785 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2786 let Inst{7-5} = 0b000;
2787 let Inst{13-10} = 0b1000;
2788 let Inst{31-21} = 0b01110000101;
2789 let isPredicated = 1;
2790 let hasNewValue = 1;
2791 let opNewValue = 0;
2792 let BaseOpcode = "A2_sxtb";
2793 }
2794 def A4_psxtbtnew : HInst<
2795 (outs IntRegs:$Rd32),
2796 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2797 "if ($Pu4.new) $Rd32 = sxtb($Rs32)",
2798 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2799 let Inst{7-5} = 0b000;
2800 let Inst{13-10} = 0b1001;
2801 let Inst{31-21} = 0b01110000101;
2802 let isPredicated = 1;
2803 let hasNewValue = 1;
2804 let opNewValue = 0;
2805 let isPredicatedNew = 1;
2806 let BaseOpcode = "A2_sxtb";
2807 }
2808 def A4_psxthf : HInst<
2809 (outs IntRegs:$Rd32),
2810 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2811 "if (!$Pu4) $Rd32 = sxth($Rs32)",
2812 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2813 let Inst{7-5} = 0b000;
2814 let Inst{13-10} = 0b1010;
2815 let Inst{31-21} = 0b01110000111;
2816 let isPredicated = 1;
2817 let isPredicatedFalse = 1;
2818 let hasNewValue = 1;
2819 let opNewValue = 0;
2820 let BaseOpcode = "A2_sxth";
2821 }
2822 def A4_psxthfnew : HInst<
2823 (outs IntRegs:$Rd32),
2824 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2825 "if (!$Pu4.new) $Rd32 = sxth($Rs32)",
2826 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2827 let Inst{7-5} = 0b000;
2828 let Inst{13-10} = 0b1011;
2829 let Inst{31-21} = 0b01110000111;
2830 let isPredicated = 1;
2831 let isPredicatedFalse = 1;
2832 let hasNewValue = 1;
2833 let opNewValue = 0;
2834 let isPredicatedNew = 1;
2835 let BaseOpcode = "A2_sxth";
2836 }
2837 def A4_psxtht : HInst<
2838 (outs IntRegs:$Rd32),
2839 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2840 "if ($Pu4) $Rd32 = sxth($Rs32)",
2841 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2842 let Inst{7-5} = 0b000;
2843 let Inst{13-10} = 0b1000;
2844 let Inst{31-21} = 0b01110000111;
2845 let isPredicated = 1;
2846 let hasNewValue = 1;
2847 let opNewValue = 0;
2848 let BaseOpcode = "A2_sxth";
2849 }
2850 def A4_psxthtnew : HInst<
2851 (outs IntRegs:$Rd32),
2852 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2853 "if ($Pu4.new) $Rd32 = sxth($Rs32)",
2854 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2855 let Inst{7-5} = 0b000;
2856 let Inst{13-10} = 0b1001;
2857 let Inst{31-21} = 0b01110000111;
2858 let isPredicated = 1;
2859 let hasNewValue = 1;
2860 let opNewValue = 0;
2861 let isPredicatedNew = 1;
2862 let BaseOpcode = "A2_sxth";
2863 }
2864 def A4_pzxtbf : HInst<
2865 (outs IntRegs:$Rd32),
2866 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2867 "if (!$Pu4) $Rd32 = zxtb($Rs32)",
2868 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2869 let Inst{7-5} = 0b000;
2870 let Inst{13-10} = 0b1010;
2871 let Inst{31-21} = 0b01110000100;
2872 let isPredicated = 1;
2873 let isPredicatedFalse = 1;
2874 let hasNewValue = 1;
2875 let opNewValue = 0;
2876 let BaseOpcode = "A2_zxtb";
2877 }
2878 def A4_pzxtbfnew : HInst<
2879 (outs IntRegs:$Rd32),
2880 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2881 "if (!$Pu4.new) $Rd32 = zxtb($Rs32)",
2882 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2883 let Inst{7-5} = 0b000;
2884 let Inst{13-10} = 0b1011;
2885 let Inst{31-21} = 0b01110000100;
2886 let isPredicated = 1;
2887 let isPredicatedFalse = 1;
2888 let hasNewValue = 1;
2889 let opNewValue = 0;
2890 let isPredicatedNew = 1;
2891 let BaseOpcode = "A2_zxtb";
2892 }
2893 def A4_pzxtbt : HInst<
2894 (outs IntRegs:$Rd32),
2895 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2896 "if ($Pu4) $Rd32 = zxtb($Rs32)",
2897 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2898 let Inst{7-5} = 0b000;
2899 let Inst{13-10} = 0b1000;
2900 let Inst{31-21} = 0b01110000100;
2901 let isPredicated = 1;
2902 let hasNewValue = 1;
2903 let opNewValue = 0;
2904 let BaseOpcode = "A2_zxtb";
2905 }
2906 def A4_pzxtbtnew : HInst<
2907 (outs IntRegs:$Rd32),
2908 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2909 "if ($Pu4.new) $Rd32 = zxtb($Rs32)",
2910 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2911 let Inst{7-5} = 0b000;
2912 let Inst{13-10} = 0b1001;
2913 let Inst{31-21} = 0b01110000100;
2914 let isPredicated = 1;
2915 let hasNewValue = 1;
2916 let opNewValue = 0;
2917 let isPredicatedNew = 1;
2918 let BaseOpcode = "A2_zxtb";
2919 }
2920 def A4_pzxthf : HInst<
2921 (outs IntRegs:$Rd32),
2922 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2923 "if (!$Pu4) $Rd32 = zxth($Rs32)",
2924 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2925 let Inst{7-5} = 0b000;
2926 let Inst{13-10} = 0b1010;
2927 let Inst{31-21} = 0b01110000110;
2928 let isPredicated = 1;
2929 let isPredicatedFalse = 1;
2930 let hasNewValue = 1;
2931 let opNewValue = 0;
2932 let BaseOpcode = "A2_zxth";
2933 }
2934 def A4_pzxthfnew : HInst<
2935 (outs IntRegs:$Rd32),
2936 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2937 "if (!$Pu4.new) $Rd32 = zxth($Rs32)",
2938 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2939 let Inst{7-5} = 0b000;
2940 let Inst{13-10} = 0b1011;
2941 let Inst{31-21} = 0b01110000110;
2942 let isPredicated = 1;
2943 let isPredicatedFalse = 1;
2944 let hasNewValue = 1;
2945 let opNewValue = 0;
2946 let isPredicatedNew = 1;
2947 let BaseOpcode = "A2_zxth";
2948 }
2949 def A4_pzxtht : HInst<
2950 (outs IntRegs:$Rd32),
2951 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2952 "if ($Pu4) $Rd32 = zxth($Rs32)",
2953 tc_548f402d, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2954 let Inst{7-5} = 0b000;
2955 let Inst{13-10} = 0b1000;
2956 let Inst{31-21} = 0b01110000110;
2957 let isPredicated = 1;
2958 let hasNewValue = 1;
2959 let opNewValue = 0;
2960 let BaseOpcode = "A2_zxth";
2961 }
2962 def A4_pzxthtnew : HInst<
2963 (outs IntRegs:$Rd32),
2964 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2965 "if ($Pu4.new) $Rd32 = zxth($Rs32)",
2966 tc_b08be45e, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2967 let Inst{7-5} = 0b000;
2968 let Inst{13-10} = 0b1001;
2969 let Inst{31-21} = 0b01110000110;
2970 let isPredicated = 1;
2971 let hasNewValue = 1;
2972 let opNewValue = 0;
2973 let isPredicatedNew = 1;
2974 let BaseOpcode = "A2_zxth";
2975 }
2976 def A4_rcmpeq : HInst<
2977 (outs IntRegs:$Rd32),
2978 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2979 "$Rd32 = cmp.eq($Rs32,$Rt32)",
2980 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
2981 let Inst{7-5} = 0b000;
2982 let Inst{13-13} = 0b0;
2983 let Inst{31-21} = 0b11110011010;
2984 let hasNewValue = 1;
2985 let opNewValue = 0;
2986 let CextOpcode = "A4_rcmpeq";
2987 let InputType = "reg";
2988 let isCommutable = 1;
2989 }
2990 def A4_rcmpeqi : HInst<
2991 (outs IntRegs:$Rd32),
2992 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2993 "$Rd32 = cmp.eq($Rs32,#$Ii)",
2994 tc_548f402d, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
2995 let Inst{13-13} = 0b1;
2996 let Inst{31-21} = 0b01110011010;
2997 let hasNewValue = 1;
2998 let opNewValue = 0;
2999 let CextOpcode = "A4_rcmpeqi";
3000 let InputType = "imm";
3001 let isExtendable = 1;
3002 let opExtendable = 2;
3003 let isExtentSigned = 1;
3004 let opExtentBits = 8;
3005 let opExtentAlign = 0;
3006 }
3007 def A4_rcmpneq : HInst<
3008 (outs IntRegs:$Rd32),
3009 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3010 "$Rd32 = !cmp.eq($Rs32,$Rt32)",
3011 tc_548f402d, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
3012 let Inst{7-5} = 0b000;
3013 let Inst{13-13} = 0b0;
3014 let Inst{31-21} = 0b11110011011;
3015 let hasNewValue = 1;
3016 let opNewValue = 0;
3017 let CextOpcode = "A4_rcmpneq";
3018 let InputType = "reg";
3019 let isCommutable = 1;
3020 }
3021 def A4_rcmpneqi : HInst<
3022 (outs IntRegs:$Rd32),
3023 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3024 "$Rd32 = !cmp.eq($Rs32,#$Ii)",
3025 tc_548f402d, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
3026 let Inst{13-13} = 0b1;
3027 let Inst{31-21} = 0b01110011011;
3028 let hasNewValue = 1;
3029 let opNewValue = 0;
3030 let CextOpcode = "A4_rcmpeqi";
3031 let InputType = "imm";
3032 let isExtendable = 1;
3033 let opExtendable = 2;
3034 let isExtentSigned = 1;
3035 let opExtentBits = 8;
3036 let opExtentAlign = 0;
3037 }
3038 def A4_round_ri : HInst<
3039 (outs IntRegs:$Rd32),
3040 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3041 "$Rd32 = round($Rs32,#$Ii)",
3042 tc_63cd9d2d, TypeS_2op>, Enc_a05677 {
3043 let Inst{7-5} = 0b100;
3044 let Inst{13-13} = 0b0;
3045 let Inst{31-21} = 0b10001100111;
3046 let hasNewValue = 1;
3047 let opNewValue = 0;
3048 let prefersSlot3 = 1;
3049 }
3050 def A4_round_ri_sat : HInst<
3051 (outs IntRegs:$Rd32),
3052 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3053 "$Rd32 = round($Rs32,#$Ii):sat",
3054 tc_63cd9d2d, TypeS_2op>, Enc_a05677 {
3055 let Inst{7-5} = 0b110;
3056 let Inst{13-13} = 0b0;
3057 let Inst{31-21} = 0b10001100111;
3058 let hasNewValue = 1;
3059 let opNewValue = 0;
3060 let prefersSlot3 = 1;
3061 let Defs = [USR_OVF];
3062 }
3063 def A4_round_rr : HInst<
3064 (outs IntRegs:$Rd32),
3065 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3066 "$Rd32 = round($Rs32,$Rt32)",
3067 tc_63cd9d2d, TypeS_3op>, Enc_5ab2be {
3068 let Inst{7-5} = 0b100;
3069 let Inst{13-13} = 0b0;
3070 let Inst{31-21} = 0b11000110110;
3071 let hasNewValue = 1;
3072 let opNewValue = 0;
3073 let prefersSlot3 = 1;
3074 }
3075 def A4_round_rr_sat : HInst<
3076 (outs IntRegs:$Rd32),
3077 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3078 "$Rd32 = round($Rs32,$Rt32):sat",
3079 tc_63cd9d2d, TypeS_3op>, Enc_5ab2be {
3080 let Inst{7-5} = 0b110;
3081 let Inst{13-13} = 0b0;
3082 let Inst{31-21} = 0b11000110110;
3083 let hasNewValue = 1;
3084 let opNewValue = 0;
3085 let prefersSlot3 = 1;
3086 let Defs = [USR_OVF];
3087 }
3088 def A4_subp_c : HInst<
3089 (outs DoubleRegs:$Rdd32, PredRegs:$Px4),
3090 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
3091 "$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry",
3092 tc_a87879e8, TypeS_3op>, Enc_2b3f60 {
3093 let Inst{7-7} = 0b0;
3094 let Inst{13-13} = 0b0;
3095 let Inst{31-21} = 0b11000010111;
3096 let isPredicateLate = 1;
3097 let Constraints = "$Px4 = $Px4in";
3098 }
3099 def A4_tfrcpp : HInst<
3100 (outs DoubleRegs:$Rdd32),
3101 (ins CtrRegs64:$Css32),
3102 "$Rdd32 = $Css32",
3103 tc_3b4892c6, TypeCR>, Enc_667b39 {
3104 let Inst{13-5} = 0b000000000;
3105 let Inst{31-21} = 0b01101000000;
3106 }
3107 def A4_tfrpcp : HInst<
3108 (outs CtrRegs64:$Cdd32),
3109 (ins DoubleRegs:$Rss32),
3110 "$Cdd32 = $Rss32",
3111 tc_82f0f122, TypeCR>, Enc_0ed752 {
3112 let Inst{13-5} = 0b000000000;
3113 let Inst{31-21} = 0b01100011001;
3114 }
3115 def A4_tlbmatch : HInst<
3116 (outs PredRegs:$Pd4),
3117 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3118 "$Pd4 = tlbmatch($Rss32,$Rt32)",
3119 tc_e2c08bb4, TypeALU64>, Enc_03833b {
3120 let Inst{7-2} = 0b011000;
3121 let Inst{13-13} = 0b1;
3122 let Inst{31-21} = 0b11010010000;
3123 let isPredicateLate = 1;
3124 }
3125 def A4_vcmpbeq_any : HInst<
3126 (outs PredRegs:$Pd4),
3127 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3128 "$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))",
3129 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
3130 let Inst{7-2} = 0b000000;
3131 let Inst{13-13} = 0b1;
3132 let Inst{31-21} = 0b11010010000;
3133 }
3134 def A4_vcmpbeqi : HInst<
3135 (outs PredRegs:$Pd4),
3136 (ins DoubleRegs:$Rss32, u8_0Imm:$Ii),
3137 "$Pd4 = vcmpb.eq($Rss32,#$Ii)",
3138 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3139 let Inst{4-2} = 0b000;
3140 let Inst{13-13} = 0b0;
3141 let Inst{31-21} = 0b11011100000;
3142 }
3143 def A4_vcmpbgt : HInst<
3144 (outs PredRegs:$Pd4),
3145 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3146 "$Pd4 = vcmpb.gt($Rss32,$Rtt32)",
3147 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
3148 let Inst{7-2} = 0b010000;
3149 let Inst{13-13} = 0b1;
3150 let Inst{31-21} = 0b11010010000;
3151 }
3152 def A4_vcmpbgti : HInst<
3153 (outs PredRegs:$Pd4),
3154 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3155 "$Pd4 = vcmpb.gt($Rss32,#$Ii)",
3156 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3157 let Inst{4-2} = 0b000;
3158 let Inst{13-13} = 0b0;
3159 let Inst{31-21} = 0b11011100001;
3160 }
3161 def A4_vcmpbgtui : HInst<
3162 (outs PredRegs:$Pd4),
3163 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3164 "$Pd4 = vcmpb.gtu($Rss32,#$Ii)",
3165 tc_5fa2857c, TypeALU64>, Enc_3680c2 {
3166 let Inst{4-2} = 0b000;
3167 let Inst{13-12} = 0b00;
3168 let Inst{31-21} = 0b11011100010;
3169 }
3170 def A4_vcmpheqi : HInst<
3171 (outs PredRegs:$Pd4),
3172 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3173 "$Pd4 = vcmph.eq($Rss32,#$Ii)",
3174 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3175 let Inst{4-2} = 0b010;
3176 let Inst{13-13} = 0b0;
3177 let Inst{31-21} = 0b11011100000;
3178 }
3179 def A4_vcmphgti : HInst<
3180 (outs PredRegs:$Pd4),
3181 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3182 "$Pd4 = vcmph.gt($Rss32,#$Ii)",
3183 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3184 let Inst{4-2} = 0b010;
3185 let Inst{13-13} = 0b0;
3186 let Inst{31-21} = 0b11011100001;
3187 }
3188 def A4_vcmphgtui : HInst<
3189 (outs PredRegs:$Pd4),
3190 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3191 "$Pd4 = vcmph.gtu($Rss32,#$Ii)",
3192 tc_5fa2857c, TypeALU64>, Enc_3680c2 {
3193 let Inst{4-2} = 0b010;
3194 let Inst{13-12} = 0b00;
3195 let Inst{31-21} = 0b11011100010;
3196 }
3197 def A4_vcmpweqi : HInst<
3198 (outs PredRegs:$Pd4),
3199 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3200 "$Pd4 = vcmpw.eq($Rss32,#$Ii)",
3201 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3202 let Inst{4-2} = 0b100;
3203 let Inst{13-13} = 0b0;
3204 let Inst{31-21} = 0b11011100000;
3205 }
3206 def A4_vcmpwgti : HInst<
3207 (outs PredRegs:$Pd4),
3208 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3209 "$Pd4 = vcmpw.gt($Rss32,#$Ii)",
3210 tc_5fa2857c, TypeALU64>, Enc_0d8adb {
3211 let Inst{4-2} = 0b100;
3212 let Inst{13-13} = 0b0;
3213 let Inst{31-21} = 0b11011100001;
3214 }
3215 def A4_vcmpwgtui : HInst<
3216 (outs PredRegs:$Pd4),
3217 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3218 "$Pd4 = vcmpw.gtu($Rss32,#$Ii)",
3219 tc_5fa2857c, TypeALU64>, Enc_3680c2 {
3220 let Inst{4-2} = 0b100;
3221 let Inst{13-12} = 0b00;
3222 let Inst{31-21} = 0b11011100010;
3223 }
3224 def A4_vrmaxh : HInst<
3225 (outs DoubleRegs:$Rxx32),
3226 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3227 "$Rxx32 = vrmaxh($Rss32,$Ru32)",
3228 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3229 let Inst{7-5} = 0b001;
3230 let Inst{13-13} = 0b0;
3231 let Inst{31-21} = 0b11001011001;
3232 let prefersSlot3 = 1;
3233 let Constraints = "$Rxx32 = $Rxx32in";
3234 }
3235 def A4_vrmaxuh : HInst<
3236 (outs DoubleRegs:$Rxx32),
3237 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3238 "$Rxx32 = vrmaxuh($Rss32,$Ru32)",
3239 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3240 let Inst{7-5} = 0b001;
3241 let Inst{13-13} = 0b1;
3242 let Inst{31-21} = 0b11001011001;
3243 let prefersSlot3 = 1;
3244 let Constraints = "$Rxx32 = $Rxx32in";
3245 }
3246 def A4_vrmaxuw : HInst<
3247 (outs DoubleRegs:$Rxx32),
3248 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3249 "$Rxx32 = vrmaxuw($Rss32,$Ru32)",
3250 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3251 let Inst{7-5} = 0b010;
3252 let Inst{13-13} = 0b1;
3253 let Inst{31-21} = 0b11001011001;
3254 let prefersSlot3 = 1;
3255 let Constraints = "$Rxx32 = $Rxx32in";
3256 }
3257 def A4_vrmaxw : HInst<
3258 (outs DoubleRegs:$Rxx32),
3259 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3260 "$Rxx32 = vrmaxw($Rss32,$Ru32)",
3261 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3262 let Inst{7-5} = 0b010;
3263 let Inst{13-13} = 0b0;
3264 let Inst{31-21} = 0b11001011001;
3265 let prefersSlot3 = 1;
3266 let Constraints = "$Rxx32 = $Rxx32in";
3267 }
3268 def A4_vrminh : HInst<
3269 (outs DoubleRegs:$Rxx32),
3270 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3271 "$Rxx32 = vrminh($Rss32,$Ru32)",
3272 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3273 let Inst{7-5} = 0b101;
3274 let Inst{13-13} = 0b0;
3275 let Inst{31-21} = 0b11001011001;
3276 let prefersSlot3 = 1;
3277 let Constraints = "$Rxx32 = $Rxx32in";
3278 }
3279 def A4_vrminuh : HInst<
3280 (outs DoubleRegs:$Rxx32),
3281 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3282 "$Rxx32 = vrminuh($Rss32,$Ru32)",
3283 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3284 let Inst{7-5} = 0b101;
3285 let Inst{13-13} = 0b1;
3286 let Inst{31-21} = 0b11001011001;
3287 let prefersSlot3 = 1;
3288 let Constraints = "$Rxx32 = $Rxx32in";
3289 }
3290 def A4_vrminuw : HInst<
3291 (outs DoubleRegs:$Rxx32),
3292 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3293 "$Rxx32 = vrminuw($Rss32,$Ru32)",
3294 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3295 let Inst{7-5} = 0b110;
3296 let Inst{13-13} = 0b1;
3297 let Inst{31-21} = 0b11001011001;
3298 let prefersSlot3 = 1;
3299 let Constraints = "$Rxx32 = $Rxx32in";
3300 }
3301 def A4_vrminw : HInst<
3302 (outs DoubleRegs:$Rxx32),
3303 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3304 "$Rxx32 = vrminw($Rss32,$Ru32)",
3305 tc_2aaab1e0, TypeS_3op>, Enc_412ff0 {
3306 let Inst{7-5} = 0b110;
3307 let Inst{13-13} = 0b0;
3308 let Inst{31-21} = 0b11001011001;
3309 let prefersSlot3 = 1;
3310 let Constraints = "$Rxx32 = $Rxx32in";
3311 }
3312 def A5_ACS : HInst<
3313 (outs DoubleRegs:$Rxx32, PredRegs:$Pe4),
3314 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3315 "$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)",
3316 tc_ae0722f7, TypeM>, Enc_831a7d, Requires<[HasV55T]> {
3317 let Inst{7-7} = 0b0;
3318 let Inst{13-13} = 0b0;
3319 let Inst{31-21} = 0b11101010101;
3320 let isPredicateLate = 1;
3321 let prefersSlot3 = 1;
3322 let Defs = [USR_OVF];
3323 let Constraints = "$Rxx32 = $Rxx32in";
3324 }
3325 def A5_vaddhubs : HInst<
3326 (outs IntRegs:$Rd32),
3327 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3328 "$Rd32 = vaddhub($Rss32,$Rtt32):sat",
3329 tc_63cd9d2d, TypeS_3op>, Enc_d2216a, Requires<[HasV5T]> {
3330 let Inst{7-5} = 0b001;
3331 let Inst{13-13} = 0b0;
3332 let Inst{31-21} = 0b11000001010;
3333 let hasNewValue = 1;
3334 let opNewValue = 0;
3335 let prefersSlot3 = 1;
3336 let Defs = [USR_OVF];
3337 }
3338 def A6_vminub_RdP : HInst<
3339 (outs DoubleRegs:$Rdd32, PredRegs:$Pe4),
3340 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
3341 "$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)",
3342 tc_583510c7, TypeM>, Enc_d2c7f1, Requires<[HasV62T]> {
3343 let Inst{7-7} = 0b0;
3344 let Inst{13-13} = 0b0;
3345 let Inst{31-21} = 0b11101010111;
3346 let isPredicateLate = 1;
3347 let prefersSlot3 = 1;
3348 }
3349 def C2_all8 : HInst<
3350 (outs PredRegs:$Pd4),
3351 (ins PredRegs:$Ps4),
3352 "$Pd4 = all8($Ps4)",
3353 tc_81a23d44, TypeCR>, Enc_65d691 {
3354 let Inst{13-2} = 0b000000000000;
3355 let Inst{31-18} = 0b01101011101000;
3356 }
3357 def C2_and : HInst<
3358 (outs PredRegs:$Pd4),
3359 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3360 "$Pd4 = and($Pt4,$Ps4)",
3361 tc_d63b71d1, TypeCR>, Enc_454a26 {
3362 let Inst{7-2} = 0b000000;
3363 let Inst{13-10} = 0b0000;
3364 let Inst{31-18} = 0b01101011000000;
3365 }
3366 def C2_andn : HInst<
3367 (outs PredRegs:$Pd4),
3368 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3369 "$Pd4 = and($Pt4,!$Ps4)",
3370 tc_d63b71d1, TypeCR>, Enc_454a26 {
3371 let Inst{7-2} = 0b000000;
3372 let Inst{13-10} = 0b0000;
3373 let Inst{31-18} = 0b01101011011000;
3374 }
3375 def C2_any8 : HInst<
3376 (outs PredRegs:$Pd4),
3377 (ins PredRegs:$Ps4),
3378 "$Pd4 = any8($Ps4)",
3379 tc_81a23d44, TypeCR>, Enc_65d691 {
3380 let Inst{13-2} = 0b000000000000;
3381 let Inst{31-18} = 0b01101011100000;
3382 }
3383 def C2_bitsclr : HInst<
3384 (outs PredRegs:$Pd4),
3385 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3386 "$Pd4 = bitsclr($Rs32,$Rt32)",
3387 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
3388 let Inst{7-2} = 0b000000;
3389 let Inst{13-13} = 0b0;
3390 let Inst{31-21} = 0b11000111100;
3391 }
3392 def C2_bitsclri : HInst<
3393 (outs PredRegs:$Pd4),
3394 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
3395 "$Pd4 = bitsclr($Rs32,#$Ii)",
3396 tc_5fa2857c, TypeS_2op>, Enc_5d6c34 {
3397 let Inst{7-2} = 0b000000;
3398 let Inst{31-21} = 0b10000101100;
3399 }
3400 def C2_bitsset : HInst<
3401 (outs PredRegs:$Pd4),
3402 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3403 "$Pd4 = bitsset($Rs32,$Rt32)",
3404 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
3405 let Inst{7-2} = 0b000000;
3406 let Inst{13-13} = 0b0;
3407 let Inst{31-21} = 0b11000111010;
3408 }
3409 def C2_ccombinewf : HInst<
3410 (outs DoubleRegs:$Rdd32),
3411 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3412 "if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3413 tc_1b6011fb, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3414 let Inst{7-7} = 0b1;
3415 let Inst{13-13} = 0b0;
3416 let Inst{31-21} = 0b11111101000;
3417 let isPredicated = 1;
3418 let isPredicatedFalse = 1;
3419 let BaseOpcode = "A2_combinew";
3420 }
3421 def C2_ccombinewnewf : HInst<
3422 (outs DoubleRegs:$Rdd32),
3423 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3424 "if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3425 tc_28d296df, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3426 let Inst{7-7} = 0b1;
3427 let Inst{13-13} = 0b1;
3428 let Inst{31-21} = 0b11111101000;
3429 let isPredicated = 1;
3430 let isPredicatedFalse = 1;
3431 let isPredicatedNew = 1;
3432 let BaseOpcode = "A2_combinew";
3433 }
3434 def C2_ccombinewnewt : HInst<
3435 (outs DoubleRegs:$Rdd32),
3436 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3437 "if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3438 tc_28d296df, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3439 let Inst{7-7} = 0b0;
3440 let Inst{13-13} = 0b1;
3441 let Inst{31-21} = 0b11111101000;
3442 let isPredicated = 1;
3443 let isPredicatedNew = 1;
3444 let BaseOpcode = "A2_combinew";
3445 }
3446 def C2_ccombinewt : HInst<
3447 (outs DoubleRegs:$Rdd32),
3448 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3449 "if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3450 tc_1b6011fb, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3451 let Inst{7-7} = 0b0;
3452 let Inst{13-13} = 0b0;
3453 let Inst{31-21} = 0b11111101000;
3454 let isPredicated = 1;
3455 let BaseOpcode = "A2_combinew";
3456 }
3457 def C2_cmoveif : HInst<
3458 (outs IntRegs:$Rd32),
3459 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3460 "if (!$Pu4) $Rd32 = #$Ii",
3461 tc_548f402d, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3462 let Inst{13-13} = 0b0;
3463 let Inst{20-20} = 0b0;
3464 let Inst{31-23} = 0b011111101;
3465 let isPredicated = 1;
3466 let isPredicatedFalse = 1;
3467 let hasNewValue = 1;
3468 let opNewValue = 0;
3469 let CextOpcode = "A2_tfr";
3470 let InputType = "imm";
3471 let BaseOpcode = "A2_tfrsi";
3472 let isMoveImm = 1;
3473 let isExtendable = 1;
3474 let opExtendable = 2;
3475 let isExtentSigned = 1;
3476 let opExtentBits = 12;
3477 let opExtentAlign = 0;
3478 }
3479 def C2_cmoveit : HInst<
3480 (outs IntRegs:$Rd32),
3481 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3482 "if ($Pu4) $Rd32 = #$Ii",
3483 tc_548f402d, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3484 let Inst{13-13} = 0b0;
3485 let Inst{20-20} = 0b0;
3486 let Inst{31-23} = 0b011111100;
3487 let isPredicated = 1;
3488 let hasNewValue = 1;
3489 let opNewValue = 0;
3490 let CextOpcode = "A2_tfr";
3491 let InputType = "imm";
3492 let BaseOpcode = "A2_tfrsi";
3493 let isMoveImm = 1;
3494 let isExtendable = 1;
3495 let opExtendable = 2;
3496 let isExtentSigned = 1;
3497 let opExtentBits = 12;
3498 let opExtentAlign = 0;
3499 }
3500 def C2_cmovenewif : HInst<
3501 (outs IntRegs:$Rd32),
3502 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3503 "if (!$Pu4.new) $Rd32 = #$Ii",
3504 tc_b08be45e, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3505 let Inst{13-13} = 0b1;
3506 let Inst{20-20} = 0b0;
3507 let Inst{31-23} = 0b011111101;
3508 let isPredicated = 1;
3509 let isPredicatedFalse = 1;
3510 let hasNewValue = 1;
3511 let opNewValue = 0;
3512 let isPredicatedNew = 1;
3513 let CextOpcode = "A2_tfr";
3514 let InputType = "imm";
3515 let BaseOpcode = "A2_tfrsi";
3516 let isMoveImm = 1;
3517 let isExtendable = 1;
3518 let opExtendable = 2;
3519 let isExtentSigned = 1;
3520 let opExtentBits = 12;
3521 let opExtentAlign = 0;
3522 }
3523 def C2_cmovenewit : HInst<
3524 (outs IntRegs:$Rd32),
3525 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3526 "if ($Pu4.new) $Rd32 = #$Ii",
3527 tc_b08be45e, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3528 let Inst{13-13} = 0b1;
3529 let Inst{20-20} = 0b0;
3530 let Inst{31-23} = 0b011111100;
3531 let isPredicated = 1;
3532 let hasNewValue = 1;
3533 let opNewValue = 0;
3534 let isPredicatedNew = 1;
3535 let CextOpcode = "A2_tfr";
3536 let InputType = "imm";
3537 let BaseOpcode = "A2_tfrsi";
3538 let isMoveImm = 1;
3539 let isExtendable = 1;
3540 let opExtendable = 2;
3541 let isExtentSigned = 1;
3542 let opExtentBits = 12;
3543 let opExtentAlign = 0;
3544 }
3545 def C2_cmpeq : HInst<
3546 (outs PredRegs:$Pd4),
3547 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3548 "$Pd4 = cmp.eq($Rs32,$Rt32)",
3549 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3550 let Inst{7-2} = 0b000000;
3551 let Inst{13-13} = 0b0;
3552 let Inst{31-21} = 0b11110010000;
3553 let CextOpcode = "C2_cmpeq";
3554 let InputType = "reg";
3555 let isCommutable = 1;
3556 let isCompare = 1;
3557 }
3558 def C2_cmpeqi : HInst<
3559 (outs PredRegs:$Pd4),
3560 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3561 "$Pd4 = cmp.eq($Rs32,#$Ii)",
3562 tc_9df8b0dc, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3563 let Inst{4-2} = 0b000;
3564 let Inst{31-22} = 0b0111010100;
3565 let CextOpcode = "C2_cmpeq";
3566 let InputType = "imm";
3567 let isCompare = 1;
3568 let isExtendable = 1;
3569 let opExtendable = 2;
3570 let isExtentSigned = 1;
3571 let opExtentBits = 10;
3572 let opExtentAlign = 0;
3573 }
3574 def C2_cmpeqp : HInst<
3575 (outs PredRegs:$Pd4),
3576 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3577 "$Pd4 = cmp.eq($Rss32,$Rtt32)",
3578 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
3579 let Inst{7-2} = 0b000000;
3580 let Inst{13-13} = 0b0;
3581 let Inst{31-21} = 0b11010010100;
3582 let isCommutable = 1;
3583 let isCompare = 1;
3584 }
3585 def C2_cmpgei : HInst<
3586 (outs PredRegs:$Pd4),
3587 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
3588 "$Pd4 = cmp.ge($Rs32,#$Ii)",
3589 tc_9df8b0dc, TypeALU32_2op> {
3590 let isCompare = 1;
3591 let isPseudo = 1;
3592 }
3593 def C2_cmpgeui : HInst<
3594 (outs PredRegs:$Pd4),
3595 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
3596 "$Pd4 = cmp.geu($Rs32,#$Ii)",
3597 tc_9df8b0dc, TypeALU32_2op> {
3598 let isCompare = 1;
3599 let isPseudo = 1;
3600 }
3601 def C2_cmpgt : HInst<
3602 (outs PredRegs:$Pd4),
3603 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3604 "$Pd4 = cmp.gt($Rs32,$Rt32)",
3605 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3606 let Inst{7-2} = 0b000000;
3607 let Inst{13-13} = 0b0;
3608 let Inst{31-21} = 0b11110010010;
3609 let CextOpcode = "C2_cmpgt";
3610 let InputType = "reg";
3611 let isCompare = 1;
3612 }
3613 def C2_cmpgti : HInst<
3614 (outs PredRegs:$Pd4),
3615 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3616 "$Pd4 = cmp.gt($Rs32,#$Ii)",
3617 tc_9df8b0dc, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3618 let Inst{4-2} = 0b000;
3619 let Inst{31-22} = 0b0111010101;
3620 let CextOpcode = "C2_cmpgt";
3621 let InputType = "imm";
3622 let isCompare = 1;
3623 let isExtendable = 1;
3624 let opExtendable = 2;
3625 let isExtentSigned = 1;
3626 let opExtentBits = 10;
3627 let opExtentAlign = 0;
3628 }
3629 def C2_cmpgtp : HInst<
3630 (outs PredRegs:$Pd4),
3631 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3632 "$Pd4 = cmp.gt($Rss32,$Rtt32)",
3633 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
3634 let Inst{7-2} = 0b010000;
3635 let Inst{13-13} = 0b0;
3636 let Inst{31-21} = 0b11010010100;
3637 let isCompare = 1;
3638 }
3639 def C2_cmpgtu : HInst<
3640 (outs PredRegs:$Pd4),
3641 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3642 "$Pd4 = cmp.gtu($Rs32,$Rt32)",
3643 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3644 let Inst{7-2} = 0b000000;
3645 let Inst{13-13} = 0b0;
3646 let Inst{31-21} = 0b11110010011;
3647 let CextOpcode = "C2_cmpgtu";
3648 let InputType = "reg";
3649 let isCompare = 1;
3650 }
3651 def C2_cmpgtui : HInst<
3652 (outs PredRegs:$Pd4),
3653 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3654 "$Pd4 = cmp.gtu($Rs32,#$Ii)",
3655 tc_9df8b0dc, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3656 let Inst{4-2} = 0b000;
3657 let Inst{31-21} = 0b01110101100;
3658 let CextOpcode = "C2_cmpgtu";
3659 let InputType = "imm";
3660 let isCompare = 1;
3661 let isExtendable = 1;
3662 let opExtendable = 2;
3663 let isExtentSigned = 0;
3664 let opExtentBits = 9;
3665 let opExtentAlign = 0;
3666 }
3667 def C2_cmpgtup : HInst<
3668 (outs PredRegs:$Pd4),
3669 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3670 "$Pd4 = cmp.gtu($Rss32,$Rtt32)",
3671 tc_c58f771a, TypeALU64>, Enc_fcf7a7 {
3672 let Inst{7-2} = 0b100000;
3673 let Inst{13-13} = 0b0;
3674 let Inst{31-21} = 0b11010010100;
3675 let isCompare = 1;
3676 }
3677 def C2_cmplt : HInst<
3678 (outs PredRegs:$Pd4),
3679 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3680 "$Pd4 = cmp.lt($Rs32,$Rt32)",
3681 tc_9df8b0dc, TypeALU32_3op> {
3682 let isCompare = 1;
3683 let isPseudo = 1;
3684 let isCodeGenOnly = 1;
3685 }
3686 def C2_cmpltu : HInst<
3687 (outs PredRegs:$Pd4),
3688 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3689 "$Pd4 = cmp.ltu($Rs32,$Rt32)",
3690 tc_9df8b0dc, TypeALU32_3op> {
3691 let isCompare = 1;
3692 let isPseudo = 1;
3693 let isCodeGenOnly = 1;
3694 }
3695 def C2_mask : HInst<
3696 (outs DoubleRegs:$Rdd32),
3697 (ins PredRegs:$Pt4),
3698 "$Rdd32 = mask($Pt4)",
3699 tc_b86c7e8b, TypeS_2op>, Enc_78e566 {
3700 let Inst{7-5} = 0b000;
3701 let Inst{13-10} = 0b0000;
3702 let Inst{31-16} = 0b1000011000000000;
3703 }
3704 def C2_mux : HInst<
3705 (outs IntRegs:$Rd32),
3706 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3707 "$Rd32 = mux($Pu4,$Rs32,$Rt32)",
3708 tc_1b6011fb, TypeALU32_3op>, Enc_ea4c54 {
3709 let Inst{7-7} = 0b0;
3710 let Inst{13-13} = 0b0;
3711 let Inst{31-21} = 0b11110100000;
3712 let hasNewValue = 1;
3713 let opNewValue = 0;
3714 let InputType = "reg";
3715 }
3716 def C2_muxii : HInst<
3717 (outs IntRegs:$Rd32),
3718 (ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II),
3719 "$Rd32 = mux($Pu4,#$Ii,#$II)",
3720 tc_1b6011fb, TypeALU32_2op>, Enc_830e5d {
3721 let Inst{31-25} = 0b0111101;
3722 let hasNewValue = 1;
3723 let opNewValue = 0;
3724 let isExtendable = 1;
3725 let opExtendable = 2;
3726 let isExtentSigned = 1;
3727 let opExtentBits = 8;
3728 let opExtentAlign = 0;
3729 }
3730 def C2_muxir : HInst<
3731 (outs IntRegs:$Rd32),
3732 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
3733 "$Rd32 = mux($Pu4,$Rs32,#$Ii)",
3734 tc_1b6011fb, TypeALU32_2op>, Enc_e38e1f {
3735 let Inst{13-13} = 0b0;
3736 let Inst{31-23} = 0b011100110;
3737 let hasNewValue = 1;
3738 let opNewValue = 0;
3739 let InputType = "imm";
3740 let isExtendable = 1;
3741 let opExtendable = 3;
3742 let isExtentSigned = 1;
3743 let opExtentBits = 8;
3744 let opExtentAlign = 0;
3745 }
3746 def C2_muxri : HInst<
3747 (outs IntRegs:$Rd32),
3748 (ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32),
3749 "$Rd32 = mux($Pu4,#$Ii,$Rs32)",
3750 tc_1b6011fb, TypeALU32_2op>, Enc_e38e1f {
3751 let Inst{13-13} = 0b0;
3752 let Inst{31-23} = 0b011100111;
3753 let hasNewValue = 1;
3754 let opNewValue = 0;
3755 let InputType = "imm";
3756 let isExtendable = 1;
3757 let opExtendable = 2;
3758 let isExtentSigned = 1;
3759 let opExtentBits = 8;
3760 let opExtentAlign = 0;
3761 }
3762 def C2_not : HInst<
3763 (outs PredRegs:$Pd4),
3764 (ins PredRegs:$Ps4),
3765 "$Pd4 = not($Ps4)",
3766 tc_81a23d44, TypeCR>, Enc_65d691 {
3767 let Inst{13-2} = 0b000000000000;
3768 let Inst{31-18} = 0b01101011110000;
3769 }
3770 def C2_or : HInst<
3771 (outs PredRegs:$Pd4),
3772 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3773 "$Pd4 = or($Pt4,$Ps4)",
3774 tc_d63b71d1, TypeCR>, Enc_454a26 {
3775 let Inst{7-2} = 0b000000;
3776 let Inst{13-10} = 0b0000;
3777 let Inst{31-18} = 0b01101011001000;
3778 }
3779 def C2_orn : HInst<
3780 (outs PredRegs:$Pd4),
3781 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3782 "$Pd4 = or($Pt4,!$Ps4)",
3783 tc_d63b71d1, TypeCR>, Enc_454a26 {
3784 let Inst{7-2} = 0b000000;
3785 let Inst{13-10} = 0b0000;
3786 let Inst{31-18} = 0b01101011111000;
3787 }
3788 def C2_pxfer_map : HInst<
3789 (outs PredRegs:$Pd4),
3790 (ins PredRegs:$Ps4),
3791 "$Pd4 = $Ps4",
3792 tc_d63b71d1, TypeMAPPING> {
3793 let isPseudo = 1;
3794 let isCodeGenOnly = 1;
3795 }
3796 def C2_tfrpr : HInst<
3797 (outs IntRegs:$Rd32),
3798 (ins PredRegs:$Ps4),
3799 "$Rd32 = $Ps4",
3800 tc_b86c7e8b, TypeS_2op>, Enc_f5e933 {
3801 let Inst{13-5} = 0b000000000;
3802 let Inst{31-18} = 0b10001001010000;
3803 let hasNewValue = 1;
3804 let opNewValue = 0;
3805 }
3806 def C2_tfrrp : HInst<
3807 (outs PredRegs:$Pd4),
3808 (ins IntRegs:$Rs32),
3809 "$Pd4 = $Rs32",
3810 tc_47f0b7ad, TypeS_2op>, Enc_48b75f {
3811 let Inst{13-2} = 0b000000000000;
3812 let Inst{31-21} = 0b10000101010;
3813 }
3814 def C2_vitpack : HInst<
3815 (outs IntRegs:$Rd32),
3816 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3817 "$Rd32 = vitpack($Ps4,$Pt4)",
3818 tc_7ca2ea10, TypeS_2op>, Enc_527412 {
3819 let Inst{7-5} = 0b000;
3820 let Inst{13-10} = 0b0000;
3821 let Inst{31-18} = 0b10001001000000;
3822 let hasNewValue = 1;
3823 let opNewValue = 0;
3824 let prefersSlot3 = 1;
3825 }
3826 def C2_vmux : HInst<
3827 (outs DoubleRegs:$Rdd32),
3828 (ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3829 "$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)",
3830 tc_d1b5a4b6, TypeALU64>, Enc_329361 {
3831 let Inst{7-7} = 0b0;
3832 let Inst{13-13} = 0b0;
3833 let Inst{31-21} = 0b11010001000;
3834 }
3835 def C2_xor : HInst<
3836 (outs PredRegs:$Pd4),
3837 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3838 "$Pd4 = xor($Ps4,$Pt4)",
3839 tc_d63b71d1, TypeCR>, Enc_284ebb {
3840 let Inst{7-2} = 0b000000;
3841 let Inst{13-10} = 0b0000;
3842 let Inst{31-18} = 0b01101011010000;
3843 }
3844 def C4_addipc : HInst<
3845 (outs IntRegs:$Rd32),
3846 (ins u32_0Imm:$Ii),
3847 "$Rd32 = add(pc,#$Ii)",
3848 tc_1fe8323c, TypeCR>, Enc_607661 {
3849 let Inst{6-5} = 0b00;
3850 let Inst{13-13} = 0b0;
3851 let Inst{31-16} = 0b0110101001001001;
3852 let hasNewValue = 1;
3853 let opNewValue = 0;
3854 let isExtendable = 1;
3855 let opExtendable = 1;
3856 let isExtentSigned = 0;
3857 let opExtentBits = 6;
3858 let opExtentAlign = 0;
3859 }
3860 def C4_and_and : HInst<
3861 (outs PredRegs:$Pd4),
3862 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3863 "$Pd4 = and($Ps4,and($Pt4,$Pu4))",
3864 tc_43068634, TypeCR>, Enc_9ac432 {
3865 let Inst{5-2} = 0b0000;
3866 let Inst{13-10} = 0b0000;
3867 let Inst{31-18} = 0b01101011000100;
3868 }
3869 def C4_and_andn : HInst<
3870 (outs PredRegs:$Pd4),
3871 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3872 "$Pd4 = and($Ps4,and($Pt4,!$Pu4))",
3873 tc_43068634, TypeCR>, Enc_9ac432 {
3874 let Inst{5-2} = 0b0000;
3875 let Inst{13-10} = 0b0000;
3876 let Inst{31-18} = 0b01101011100100;
3877 }
3878 def C4_and_or : HInst<
3879 (outs PredRegs:$Pd4),
3880 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3881 "$Pd4 = and($Ps4,or($Pt4,$Pu4))",
3882 tc_43068634, TypeCR>, Enc_9ac432 {
3883 let Inst{5-2} = 0b0000;
3884 let Inst{13-10} = 0b0000;
3885 let Inst{31-18} = 0b01101011001100;
3886 }
3887 def C4_and_orn : HInst<
3888 (outs PredRegs:$Pd4),
3889 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3890 "$Pd4 = and($Ps4,or($Pt4,!$Pu4))",
3891 tc_43068634, TypeCR>, Enc_9ac432 {
3892 let Inst{5-2} = 0b0000;
3893 let Inst{13-10} = 0b0000;
3894 let Inst{31-18} = 0b01101011101100;
3895 }
3896 def C4_cmplte : HInst<
3897 (outs PredRegs:$Pd4),
3898 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3899 "$Pd4 = !cmp.gt($Rs32,$Rt32)",
3900 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3901 let Inst{7-2} = 0b000100;
3902 let Inst{13-13} = 0b0;
3903 let Inst{31-21} = 0b11110010010;
3904 let CextOpcode = "C4_cmplte";
3905 let InputType = "reg";
3906 let isCompare = 1;
3907 }
3908 def C4_cmpltei : HInst<
3909 (outs PredRegs:$Pd4),
3910 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3911 "$Pd4 = !cmp.gt($Rs32,#$Ii)",
3912 tc_9df8b0dc, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3913 let Inst{4-2} = 0b100;
3914 let Inst{31-22} = 0b0111010101;
3915 let CextOpcode = "C4_cmplte";
3916 let InputType = "imm";
3917 let isCompare = 1;
3918 let isExtendable = 1;
3919 let opExtendable = 2;
3920 let isExtentSigned = 1;
3921 let opExtentBits = 10;
3922 let opExtentAlign = 0;
3923 }
3924 def C4_cmplteu : HInst<
3925 (outs PredRegs:$Pd4),
3926 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3927 "$Pd4 = !cmp.gtu($Rs32,$Rt32)",
3928 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3929 let Inst{7-2} = 0b000100;
3930 let Inst{13-13} = 0b0;
3931 let Inst{31-21} = 0b11110010011;
3932 let CextOpcode = "C4_cmplteu";
3933 let InputType = "reg";
3934 let isCompare = 1;
3935 }
3936 def C4_cmplteui : HInst<
3937 (outs PredRegs:$Pd4),
3938 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3939 "$Pd4 = !cmp.gtu($Rs32,#$Ii)",
3940 tc_9df8b0dc, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3941 let Inst{4-2} = 0b100;
3942 let Inst{31-21} = 0b01110101100;
3943 let CextOpcode = "C4_cmplteu";
3944 let InputType = "imm";
3945 let isCompare = 1;
3946 let isExtendable = 1;
3947 let opExtendable = 2;
3948 let isExtentSigned = 0;
3949 let opExtentBits = 9;
3950 let opExtentAlign = 0;
3951 }
3952 def C4_cmpneq : HInst<
3953 (outs PredRegs:$Pd4),
3954 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3955 "$Pd4 = !cmp.eq($Rs32,$Rt32)",
3956 tc_5fe9fcd0, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3957 let Inst{7-2} = 0b000100;
3958 let Inst{13-13} = 0b0;
3959 let Inst{31-21} = 0b11110010000;
3960 let CextOpcode = "C4_cmpneq";
3961 let InputType = "reg";
3962 let isCommutable = 1;
3963 let isCompare = 1;
3964 }
3965 def C4_cmpneqi : HInst<
3966 (outs PredRegs:$Pd4),
3967 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3968 "$Pd4 = !cmp.eq($Rs32,#$Ii)",
3969 tc_9df8b0dc, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3970 let Inst{4-2} = 0b100;
3971 let Inst{31-22} = 0b0111010100;
3972 let CextOpcode = "C4_cmpneq";
3973 let InputType = "imm";
3974 let isCompare = 1;
3975 let isExtendable = 1;
3976 let opExtendable = 2;
3977 let isExtentSigned = 1;
3978 let opExtentBits = 10;
3979 let opExtentAlign = 0;
3980 }
3981 def C4_fastcorner9 : HInst<
3982 (outs PredRegs:$Pd4),
3983 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3984 "$Pd4 = fastcorner9($Ps4,$Pt4)",
3985 tc_d63b71d1, TypeCR>, Enc_284ebb {
3986 let Inst{7-2} = 0b100100;
3987 let Inst{13-10} = 0b1000;
3988 let Inst{31-18} = 0b01101011000000;
3989 }
3990 def C4_fastcorner9_not : HInst<
3991 (outs PredRegs:$Pd4),
3992 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3993 "$Pd4 = !fastcorner9($Ps4,$Pt4)",
3994 tc_d63b71d1, TypeCR>, Enc_284ebb {
3995 let Inst{7-2} = 0b100100;
3996 let Inst{13-10} = 0b1000;
3997 let Inst{31-18} = 0b01101011000100;
3998 }
3999 def C4_nbitsclr : HInst<
4000 (outs PredRegs:$Pd4),
4001 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4002 "$Pd4 = !bitsclr($Rs32,$Rt32)",
4003 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
4004 let Inst{7-2} = 0b000000;
4005 let Inst{13-13} = 0b0;
4006 let Inst{31-21} = 0b11000111101;
4007 }
4008 def C4_nbitsclri : HInst<
4009 (outs PredRegs:$Pd4),
4010 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
4011 "$Pd4 = !bitsclr($Rs32,#$Ii)",
4012 tc_5fa2857c, TypeS_2op>, Enc_5d6c34 {
4013 let Inst{7-2} = 0b000000;
4014 let Inst{31-21} = 0b10000101101;
4015 }
4016 def C4_nbitsset : HInst<
4017 (outs PredRegs:$Pd4),
4018 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4019 "$Pd4 = !bitsset($Rs32,$Rt32)",
4020 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
4021 let Inst{7-2} = 0b000000;
4022 let Inst{13-13} = 0b0;
4023 let Inst{31-21} = 0b11000111011;
4024 }
4025 def C4_or_and : HInst<
4026 (outs PredRegs:$Pd4),
4027 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4028 "$Pd4 = or($Ps4,and($Pt4,$Pu4))",
4029 tc_43068634, TypeCR>, Enc_9ac432 {
4030 let Inst{5-2} = 0b0000;
4031 let Inst{13-10} = 0b0000;
4032 let Inst{31-18} = 0b01101011010100;
4033 }
4034 def C4_or_andn : HInst<
4035 (outs PredRegs:$Pd4),
4036 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4037 "$Pd4 = or($Ps4,and($Pt4,!$Pu4))",
4038 tc_43068634, TypeCR>, Enc_9ac432 {
4039 let Inst{5-2} = 0b0000;
4040 let Inst{13-10} = 0b0000;
4041 let Inst{31-18} = 0b01101011110100;
4042 }
4043 def C4_or_or : HInst<
4044 (outs PredRegs:$Pd4),
4045 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4046 "$Pd4 = or($Ps4,or($Pt4,$Pu4))",
4047 tc_43068634, TypeCR>, Enc_9ac432 {
4048 let Inst{5-2} = 0b0000;
4049 let Inst{13-10} = 0b0000;
4050 let Inst{31-18} = 0b01101011011100;
4051 }
4052 def C4_or_orn : HInst<
4053 (outs PredRegs:$Pd4),
4054 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4055 "$Pd4 = or($Ps4,or($Pt4,!$Pu4))",
4056 tc_43068634, TypeCR>, Enc_9ac432 {
4057 let Inst{5-2} = 0b0000;
4058 let Inst{13-10} = 0b0000;
4059 let Inst{31-18} = 0b01101011111100;
4060 }
4061 def F2_conv_d2df : HInst<
4062 (outs DoubleRegs:$Rdd32),
4063 (ins DoubleRegs:$Rss32),
4064 "$Rdd32 = convert_d2df($Rss32)",
4065 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4066 let Inst{13-5} = 0b000000011;
4067 let Inst{31-21} = 0b10000000111;
4068 let isFP = 1;
4069 let Uses = [USR];
4070 }
4071 def F2_conv_d2sf : HInst<
4072 (outs IntRegs:$Rd32),
4073 (ins DoubleRegs:$Rss32),
4074 "$Rd32 = convert_d2sf($Rss32)",
4075 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4076 let Inst{13-5} = 0b000000001;
4077 let Inst{31-21} = 0b10001000010;
4078 let hasNewValue = 1;
4079 let opNewValue = 0;
4080 let isFP = 1;
4081 let Uses = [USR];
4082 }
4083 def F2_conv_df2d : HInst<
4084 (outs DoubleRegs:$Rdd32),
4085 (ins DoubleRegs:$Rss32),
4086 "$Rdd32 = convert_df2d($Rss32)",
4087 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4088 let Inst{13-5} = 0b000000000;
4089 let Inst{31-21} = 0b10000000111;
4090 let isFP = 1;
4091 let Uses = [USR];
4092 }
4093 def F2_conv_df2d_chop : HInst<
4094 (outs DoubleRegs:$Rdd32),
4095 (ins DoubleRegs:$Rss32),
4096 "$Rdd32 = convert_df2d($Rss32):chop",
4097 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4098 let Inst{13-5} = 0b000000110;
4099 let Inst{31-21} = 0b10000000111;
4100 let isFP = 1;
4101 let Uses = [USR];
4102 }
4103 def F2_conv_df2sf : HInst<
4104 (outs IntRegs:$Rd32),
4105 (ins DoubleRegs:$Rss32),
4106 "$Rd32 = convert_df2sf($Rss32)",
4107 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4108 let Inst{13-5} = 0b000000001;
4109 let Inst{31-21} = 0b10001000000;
4110 let hasNewValue = 1;
4111 let opNewValue = 0;
4112 let isFP = 1;
4113 let Uses = [USR];
4114 }
4115 def F2_conv_df2ud : HInst<
4116 (outs DoubleRegs:$Rdd32),
4117 (ins DoubleRegs:$Rss32),
4118 "$Rdd32 = convert_df2ud($Rss32)",
4119 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4120 let Inst{13-5} = 0b000000001;
4121 let Inst{31-21} = 0b10000000111;
4122 let isFP = 1;
4123 let Uses = [USR];
4124 }
4125 def F2_conv_df2ud_chop : HInst<
4126 (outs DoubleRegs:$Rdd32),
4127 (ins DoubleRegs:$Rss32),
4128 "$Rdd32 = convert_df2ud($Rss32):chop",
4129 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4130 let Inst{13-5} = 0b000000111;
4131 let Inst{31-21} = 0b10000000111;
4132 let isFP = 1;
4133 let Uses = [USR];
4134 }
4135 def F2_conv_df2uw : HInst<
4136 (outs IntRegs:$Rd32),
4137 (ins DoubleRegs:$Rss32),
4138 "$Rd32 = convert_df2uw($Rss32)",
4139 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4140 let Inst{13-5} = 0b000000001;
4141 let Inst{31-21} = 0b10001000011;
4142 let hasNewValue = 1;
4143 let opNewValue = 0;
4144 let isFP = 1;
4145 let Uses = [USR];
4146 }
4147 def F2_conv_df2uw_chop : HInst<
4148 (outs IntRegs:$Rd32),
4149 (ins DoubleRegs:$Rss32),
4150 "$Rd32 = convert_df2uw($Rss32):chop",
4151 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4152 let Inst{13-5} = 0b000000001;
4153 let Inst{31-21} = 0b10001000101;
4154 let hasNewValue = 1;
4155 let opNewValue = 0;
4156 let isFP = 1;
4157 let Uses = [USR];
4158 }
4159 def F2_conv_df2w : HInst<
4160 (outs IntRegs:$Rd32),
4161 (ins DoubleRegs:$Rss32),
4162 "$Rd32 = convert_df2w($Rss32)",
4163 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4164 let Inst{13-5} = 0b000000001;
4165 let Inst{31-21} = 0b10001000100;
4166 let hasNewValue = 1;
4167 let opNewValue = 0;
4168 let isFP = 1;
4169 let Uses = [USR];
4170 }
4171 def F2_conv_df2w_chop : HInst<
4172 (outs IntRegs:$Rd32),
4173 (ins DoubleRegs:$Rss32),
4174 "$Rd32 = convert_df2w($Rss32):chop",
4175 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4176 let Inst{13-5} = 0b000000001;
4177 let Inst{31-21} = 0b10001000111;
4178 let hasNewValue = 1;
4179 let opNewValue = 0;
4180 let isFP = 1;
4181 let Uses = [USR];
4182 }
4183 def F2_conv_sf2d : HInst<
4184 (outs DoubleRegs:$Rdd32),
4185 (ins IntRegs:$Rs32),
4186 "$Rdd32 = convert_sf2d($Rs32)",
4187 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4188 let Inst{13-5} = 0b000000100;
4189 let Inst{31-21} = 0b10000100100;
4190 let isFP = 1;
4191 let Uses = [USR];
4192 }
4193 def F2_conv_sf2d_chop : HInst<
4194 (outs DoubleRegs:$Rdd32),
4195 (ins IntRegs:$Rs32),
4196 "$Rdd32 = convert_sf2d($Rs32):chop",
4197 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4198 let Inst{13-5} = 0b000000110;
4199 let Inst{31-21} = 0b10000100100;
4200 let isFP = 1;
4201 let Uses = [USR];
4202 }
4203 def F2_conv_sf2df : HInst<
4204 (outs DoubleRegs:$Rdd32),
4205 (ins IntRegs:$Rs32),
4206 "$Rdd32 = convert_sf2df($Rs32)",
4207 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4208 let Inst{13-5} = 0b000000000;
4209 let Inst{31-21} = 0b10000100100;
4210 let isFP = 1;
4211 let Uses = [USR];
4212 }
4213 def F2_conv_sf2ud : HInst<
4214 (outs DoubleRegs:$Rdd32),
4215 (ins IntRegs:$Rs32),
4216 "$Rdd32 = convert_sf2ud($Rs32)",
4217 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4218 let Inst{13-5} = 0b000000011;
4219 let Inst{31-21} = 0b10000100100;
4220 let isFP = 1;
4221 let Uses = [USR];
4222 }
4223 def F2_conv_sf2ud_chop : HInst<
4224 (outs DoubleRegs:$Rdd32),
4225 (ins IntRegs:$Rs32),
4226 "$Rdd32 = convert_sf2ud($Rs32):chop",
4227 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4228 let Inst{13-5} = 0b000000101;
4229 let Inst{31-21} = 0b10000100100;
4230 let isFP = 1;
4231 let Uses = [USR];
4232 }
4233 def F2_conv_sf2uw : HInst<
4234 (outs IntRegs:$Rd32),
4235 (ins IntRegs:$Rs32),
4236 "$Rd32 = convert_sf2uw($Rs32)",
4237 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4238 let Inst{13-5} = 0b000000000;
4239 let Inst{31-21} = 0b10001011011;
4240 let hasNewValue = 1;
4241 let opNewValue = 0;
4242 let isFP = 1;
4243 let Uses = [USR];
4244 }
4245 def F2_conv_sf2uw_chop : HInst<
4246 (outs IntRegs:$Rd32),
4247 (ins IntRegs:$Rs32),
4248 "$Rd32 = convert_sf2uw($Rs32):chop",
4249 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4250 let Inst{13-5} = 0b000000001;
4251 let Inst{31-21} = 0b10001011011;
4252 let hasNewValue = 1;
4253 let opNewValue = 0;
4254 let isFP = 1;
4255 let Uses = [USR];
4256 }
4257 def F2_conv_sf2w : HInst<
4258 (outs IntRegs:$Rd32),
4259 (ins IntRegs:$Rs32),
4260 "$Rd32 = convert_sf2w($Rs32)",
4261 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4262 let Inst{13-5} = 0b000000000;
4263 let Inst{31-21} = 0b10001011100;
4264 let hasNewValue = 1;
4265 let opNewValue = 0;
4266 let isFP = 1;
4267 let Uses = [USR];
4268 }
4269 def F2_conv_sf2w_chop : HInst<
4270 (outs IntRegs:$Rd32),
4271 (ins IntRegs:$Rs32),
4272 "$Rd32 = convert_sf2w($Rs32):chop",
4273 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4274 let Inst{13-5} = 0b000000001;
4275 let Inst{31-21} = 0b10001011100;
4276 let hasNewValue = 1;
4277 let opNewValue = 0;
4278 let isFP = 1;
4279 let Uses = [USR];
4280 }
4281 def F2_conv_ud2df : HInst<
4282 (outs DoubleRegs:$Rdd32),
4283 (ins DoubleRegs:$Rss32),
4284 "$Rdd32 = convert_ud2df($Rss32)",
4285 tc_e836c161, TypeS_2op>, Enc_b9c5fb, Requires<[HasV5T]> {
4286 let Inst{13-5} = 0b000000010;
4287 let Inst{31-21} = 0b10000000111;
4288 let isFP = 1;
4289 let Uses = [USR];
4290 }
4291 def F2_conv_ud2sf : HInst<
4292 (outs IntRegs:$Rd32),
4293 (ins DoubleRegs:$Rss32),
4294 "$Rd32 = convert_ud2sf($Rss32)",
4295 tc_e836c161, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
4296 let Inst{13-5} = 0b000000001;
4297 let Inst{31-21} = 0b10001000001;
4298 let hasNewValue = 1;
4299 let opNewValue = 0;
4300 let isFP = 1;
4301 let Uses = [USR];
4302 }
4303 def F2_conv_uw2df : HInst<
4304 (outs DoubleRegs:$Rdd32),
4305 (ins IntRegs:$Rs32),
4306 "$Rdd32 = convert_uw2df($Rs32)",
4307 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4308 let Inst{13-5} = 0b000000001;
4309 let Inst{31-21} = 0b10000100100;
4310 let isFP = 1;
4311 let Uses = [USR];
4312 }
4313 def F2_conv_uw2sf : HInst<
4314 (outs IntRegs:$Rd32),
4315 (ins IntRegs:$Rs32),
4316 "$Rd32 = convert_uw2sf($Rs32)",
4317 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4318 let Inst{13-5} = 0b000000000;
4319 let Inst{31-21} = 0b10001011001;
4320 let hasNewValue = 1;
4321 let opNewValue = 0;
4322 let isFP = 1;
4323 let Uses = [USR];
4324 }
4325 def F2_conv_w2df : HInst<
4326 (outs DoubleRegs:$Rdd32),
4327 (ins IntRegs:$Rs32),
4328 "$Rdd32 = convert_w2df($Rs32)",
4329 tc_e836c161, TypeS_2op>, Enc_3a3d62, Requires<[HasV5T]> {
4330 let Inst{13-5} = 0b000000010;
4331 let Inst{31-21} = 0b10000100100;
4332 let isFP = 1;
4333 let Uses = [USR];
4334 }
4335 def F2_conv_w2sf : HInst<
4336 (outs IntRegs:$Rd32),
4337 (ins IntRegs:$Rs32),
4338 "$Rd32 = convert_w2sf($Rs32)",
4339 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4340 let Inst{13-5} = 0b000000000;
4341 let Inst{31-21} = 0b10001011010;
4342 let hasNewValue = 1;
4343 let opNewValue = 0;
4344 let isFP = 1;
4345 let Uses = [USR];
4346 }
4347 def F2_dfclass : HInst<
4348 (outs PredRegs:$Pd4),
4349 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
4350 "$Pd4 = dfclass($Rss32,#$Ii)",
4351 tc_5fa2857c, TypeALU64>, Enc_1f19b5, Requires<[HasV5T]> {
4352 let Inst{4-2} = 0b100;
4353 let Inst{13-10} = 0b0000;
4354 let Inst{31-21} = 0b11011100100;
4355 let isFP = 1;
4356 let Uses = [USR];
4357 }
4358 def F2_dfcmpeq : HInst<
4359 (outs PredRegs:$Pd4),
4360 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4361 "$Pd4 = dfcmp.eq($Rss32,$Rtt32)",
4362 tc_c58f771a, TypeALU64>, Enc_fcf7a7, Requires<[HasV5T]> {
4363 let Inst{7-2} = 0b000000;
4364 let Inst{13-13} = 0b0;
4365 let Inst{31-21} = 0b11010010111;
4366 let isFP = 1;
4367 let Uses = [USR];
4368 let isCompare = 1;
4369 }
4370 def F2_dfcmpge : HInst<
4371 (outs PredRegs:$Pd4),
4372 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4373 "$Pd4 = dfcmp.ge($Rss32,$Rtt32)",
4374 tc_c58f771a, TypeALU64>, Enc_fcf7a7, Requires<[HasV5T]> {
4375 let Inst{7-2} = 0b010000;
4376 let Inst{13-13} = 0b0;
4377 let Inst{31-21} = 0b11010010111;
4378 let isFP = 1;
4379 let Uses = [USR];
4380 let isCompare = 1;
4381 }
4382 def F2_dfcmpgt : HInst<
4383 (outs PredRegs:$Pd4),
4384 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4385 "$Pd4 = dfcmp.gt($Rss32,$Rtt32)",
4386 tc_c58f771a, TypeALU64>, Enc_fcf7a7, Requires<[HasV5T]> {
4387 let Inst{7-2} = 0b001000;
4388 let Inst{13-13} = 0b0;
4389 let Inst{31-21} = 0b11010010111;
4390 let isFP = 1;
4391 let Uses = [USR];
4392 let isCompare = 1;
4393 }
4394 def F2_dfcmpuo : HInst<
4395 (outs PredRegs:$Pd4),
4396 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4397 "$Pd4 = dfcmp.uo($Rss32,$Rtt32)",
4398 tc_c58f771a, TypeALU64>, Enc_fcf7a7, Requires<[HasV5T]> {
4399 let Inst{7-2} = 0b011000;
4400 let Inst{13-13} = 0b0;
4401 let Inst{31-21} = 0b11010010111;
4402 let isFP = 1;
4403 let Uses = [USR];
4404 let isCompare = 1;
4405 }
4406 def F2_dfimm_n : HInst<
4407 (outs DoubleRegs:$Rdd32),
4408 (ins u10_0Imm:$Ii),
4409 "$Rdd32 = dfmake(#$Ii):neg",
4410 tc_485bb57c, TypeALU64>, Enc_e6c957, Requires<[HasV5T]> {
4411 let Inst{20-16} = 0b00000;
4412 let Inst{31-22} = 0b1101100101;
4413 let prefersSlot3 = 1;
4414 }
4415 def F2_dfimm_p : HInst<
4416 (outs DoubleRegs:$Rdd32),
4417 (ins u10_0Imm:$Ii),
4418 "$Rdd32 = dfmake(#$Ii):pos",
4419 tc_485bb57c, TypeALU64>, Enc_e6c957, Requires<[HasV5T]> {
4420 let Inst{20-16} = 0b00000;
4421 let Inst{31-22} = 0b1101100100;
4422 let prefersSlot3 = 1;
4423 }
4424 def F2_sfadd : HInst<
4425 (outs IntRegs:$Rd32),
4426 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4427 "$Rd32 = sfadd($Rs32,$Rt32)",
4428 tc_3bea1824, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4429 let Inst{7-5} = 0b000;
4430 let Inst{13-13} = 0b0;
4431 let Inst{31-21} = 0b11101011000;
4432 let hasNewValue = 1;
4433 let opNewValue = 0;
4434 let isFP = 1;
4435 let Uses = [USR];
4436 let isCommutable = 1;
4437 }
4438 def F2_sfclass : HInst<
4439 (outs PredRegs:$Pd4),
4440 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
4441 "$Pd4 = sfclass($Rs32,#$Ii)",
4442 tc_5fa2857c, TypeS_2op>, Enc_83ee64, Requires<[HasV5T]> {
4443 let Inst{7-2} = 0b000000;
4444 let Inst{13-13} = 0b0;
4445 let Inst{31-21} = 0b10000101111;
4446 let isFP = 1;
4447 let Uses = [USR];
4448 }
4449 def F2_sfcmpeq : HInst<
4450 (outs PredRegs:$Pd4),
4451 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4452 "$Pd4 = sfcmp.eq($Rs32,$Rt32)",
4453 tc_c58f771a, TypeS_3op>, Enc_c2b48e, Requires<[HasV5T]> {
4454 let Inst{7-2} = 0b011000;
4455 let Inst{13-13} = 0b0;
4456 let Inst{31-21} = 0b11000111111;
4457 let isFP = 1;
4458 let Uses = [USR];
4459 let isCompare = 1;
4460 }
4461 def F2_sfcmpge : HInst<
4462 (outs PredRegs:$Pd4),
4463 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4464 "$Pd4 = sfcmp.ge($Rs32,$Rt32)",
4465 tc_c58f771a, TypeS_3op>, Enc_c2b48e, Requires<[HasV5T]> {
4466 let Inst{7-2} = 0b000000;
4467 let Inst{13-13} = 0b0;
4468 let Inst{31-21} = 0b11000111111;
4469 let isFP = 1;
4470 let Uses = [USR];
4471 let isCompare = 1;
4472 }
4473 def F2_sfcmpgt : HInst<
4474 (outs PredRegs:$Pd4),
4475 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4476 "$Pd4 = sfcmp.gt($Rs32,$Rt32)",
4477 tc_c58f771a, TypeS_3op>, Enc_c2b48e, Requires<[HasV5T]> {
4478 let Inst{7-2} = 0b100000;
4479 let Inst{13-13} = 0b0;
4480 let Inst{31-21} = 0b11000111111;
4481 let isFP = 1;
4482 let Uses = [USR];
4483 let isCompare = 1;
4484 }
4485 def F2_sfcmpuo : HInst<
4486 (outs PredRegs:$Pd4),
4487 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4488 "$Pd4 = sfcmp.uo($Rs32,$Rt32)",
4489 tc_c58f771a, TypeS_3op>, Enc_c2b48e, Requires<[HasV5T]> {
4490 let Inst{7-2} = 0b001000;
4491 let Inst{13-13} = 0b0;
4492 let Inst{31-21} = 0b11000111111;
4493 let isFP = 1;
4494 let Uses = [USR];
4495 let isCompare = 1;
4496 }
4497 def F2_sffixupd : HInst<
4498 (outs IntRegs:$Rd32),
4499 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4500 "$Rd32 = sffixupd($Rs32,$Rt32)",
4501 tc_3bea1824, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4502 let Inst{7-5} = 0b001;
4503 let Inst{13-13} = 0b0;
4504 let Inst{31-21} = 0b11101011110;
4505 let hasNewValue = 1;
4506 let opNewValue = 0;
4507 let isFP = 1;
4508 }
4509 def F2_sffixupn : HInst<
4510 (outs IntRegs:$Rd32),
4511 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4512 "$Rd32 = sffixupn($Rs32,$Rt32)",
4513 tc_3bea1824, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4514 let Inst{7-5} = 0b000;
4515 let Inst{13-13} = 0b0;
4516 let Inst{31-21} = 0b11101011110;
4517 let hasNewValue = 1;
4518 let opNewValue = 0;
4519 let isFP = 1;
4520 }
4521 def F2_sffixupr : HInst<
4522 (outs IntRegs:$Rd32),
4523 (ins IntRegs:$Rs32),
4524 "$Rd32 = sffixupr($Rs32)",
4525 tc_e836c161, TypeS_2op>, Enc_5e2823, Requires<[HasV5T]> {
4526 let Inst{13-5} = 0b000000000;
4527 let Inst{31-21} = 0b10001011101;
4528 let hasNewValue = 1;
4529 let opNewValue = 0;
4530 let isFP = 1;
4531 }
4532 def F2_sffma : HInst<
4533 (outs IntRegs:$Rx32),
4534 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4535 "$Rx32 += sfmpy($Rs32,$Rt32)",
4536 tc_2d1e6f5c, TypeM>, Enc_2ae154, Requires<[HasV5T]> {
4537 let Inst{7-5} = 0b100;
4538 let Inst{13-13} = 0b0;
4539 let Inst{31-21} = 0b11101111000;
4540 let hasNewValue = 1;
4541 let opNewValue = 0;
4542 let isFP = 1;
4543 let Uses = [USR];
4544 let Constraints = "$Rx32 = $Rx32in";
4545 }
4546 def F2_sffma_lib : HInst<
4547 (outs IntRegs:$Rx32),
4548 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4549 "$Rx32 += sfmpy($Rs32,$Rt32):lib",
4550 tc_2d1e6f5c, TypeM>, Enc_2ae154, Requires<[HasV5T]> {
4551 let Inst{7-5} = 0b110;
4552 let Inst{13-13} = 0b0;
4553 let Inst{31-21} = 0b11101111000;
4554 let hasNewValue = 1;
4555 let opNewValue = 0;
4556 let isFP = 1;
4557 let Uses = [USR];
4558 let Constraints = "$Rx32 = $Rx32in";
4559 }
4560 def F2_sffma_sc : HInst<
4561 (outs IntRegs:$Rx32),
4562 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4),
4563 "$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale",
4564 tc_2e55aa16, TypeM>, Enc_437f33, Requires<[HasV5T]> {
4565 let Inst{7-7} = 0b1;
4566 let Inst{13-13} = 0b0;
4567 let Inst{31-21} = 0b11101111011;
4568 let hasNewValue = 1;
4569 let opNewValue = 0;
4570 let isFP = 1;
4571 let Uses = [USR];
4572 let Constraints = "$Rx32 = $Rx32in";
4573 }
4574 def F2_sffms : HInst<
4575 (outs IntRegs:$Rx32),
4576 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4577 "$Rx32 -= sfmpy($Rs32,$Rt32)",
4578 tc_2d1e6f5c, TypeM>, Enc_2ae154, Requires<[HasV5T]> {
4579 let Inst{7-5} = 0b101;
4580 let Inst{13-13} = 0b0;
4581 let Inst{31-21} = 0b11101111000;
4582 let hasNewValue = 1;
4583 let opNewValue = 0;
4584 let isFP = 1;
4585 let Uses = [USR];
4586 let Constraints = "$Rx32 = $Rx32in";
4587 }
4588 def F2_sffms_lib : HInst<
4589 (outs IntRegs:$Rx32),
4590 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4591 "$Rx32 -= sfmpy($Rs32,$Rt32):lib",
4592 tc_2d1e6f5c, TypeM>, Enc_2ae154, Requires<[HasV5T]> {
4593 let Inst{7-5} = 0b111;
4594 let Inst{13-13} = 0b0;
4595 let Inst{31-21} = 0b11101111000;
4596 let hasNewValue = 1;
4597 let opNewValue = 0;
4598 let isFP = 1;
4599 let Uses = [USR];
4600 let Constraints = "$Rx32 = $Rx32in";
4601 }
4602 def F2_sfimm_n : HInst<
4603 (outs IntRegs:$Rd32),
4604 (ins u10_0Imm:$Ii),
4605 "$Rd32 = sfmake(#$Ii):neg",
4606 tc_485bb57c, TypeALU64>, Enc_6c9440, Requires<[HasV5T]> {
4607 let Inst{20-16} = 0b00000;
4608 let Inst{31-22} = 0b1101011001;
4609 let hasNewValue = 1;
4610 let opNewValue = 0;
4611 let prefersSlot3 = 1;
4612 }
4613 def F2_sfimm_p : HInst<
4614 (outs IntRegs:$Rd32),
4615 (ins u10_0Imm:$Ii),
4616 "$Rd32 = sfmake(#$Ii):pos",
4617 tc_485bb57c, TypeALU64>, Enc_6c9440, Requires<[HasV5T]> {
4618 let Inst{20-16} = 0b00000;
4619 let Inst{31-22} = 0b1101011000;
4620 let hasNewValue = 1;
4621 let opNewValue = 0;
4622 let prefersSlot3 = 1;
4623 }
4624 def F2_sfinvsqrta : HInst<
4625 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4626 (ins IntRegs:$Rs32),
4627 "$Rd32,$Pe4 = sfinvsqrta($Rs32)",
4628 tc_f1aa2cdb, TypeS_2op>, Enc_890909, Requires<[HasV5T]> {
4629 let Inst{13-7} = 0b0000000;
4630 let Inst{31-21} = 0b10001011111;
4631 let hasNewValue = 1;
4632 let opNewValue = 0;
4633 let isFP = 1;
4634 let isPredicateLate = 1;
4635 }
4636 def F2_sfmax : HInst<
4637 (outs IntRegs:$Rd32),
4638 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4639 "$Rd32 = sfmax($Rs32,$Rt32)",
4640 tc_f1240c08, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4641 let Inst{7-5} = 0b000;
4642 let Inst{13-13} = 0b0;
4643 let Inst{31-21} = 0b11101011100;
4644 let hasNewValue = 1;
4645 let opNewValue = 0;
4646 let isFP = 1;
4647 let prefersSlot3 = 1;
4648 let Uses = [USR];
4649 }
4650 def F2_sfmin : HInst<
4651 (outs IntRegs:$Rd32),
4652 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4653 "$Rd32 = sfmin($Rs32,$Rt32)",
4654 tc_f1240c08, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4655 let Inst{7-5} = 0b001;
4656 let Inst{13-13} = 0b0;
4657 let Inst{31-21} = 0b11101011100;
4658 let hasNewValue = 1;
4659 let opNewValue = 0;
4660 let isFP = 1;
4661 let prefersSlot3 = 1;
4662 let Uses = [USR];
4663 }
4664 def F2_sfmpy : HInst<
4665 (outs IntRegs:$Rd32),
4666 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4667 "$Rd32 = sfmpy($Rs32,$Rt32)",
4668 tc_3bea1824, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4669 let Inst{7-5} = 0b000;
4670 let Inst{13-13} = 0b0;
4671 let Inst{31-21} = 0b11101011010;
4672 let hasNewValue = 1;
4673 let opNewValue = 0;
4674 let isFP = 1;
4675 let Uses = [USR];
4676 let isCommutable = 1;
4677 }
4678 def F2_sfrecipa : HInst<
4679 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4680 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4681 "$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)",
4682 tc_09c86199, TypeM>, Enc_a94f3b, Requires<[HasV5T]> {
4683 let Inst{7-7} = 0b1;
4684 let Inst{13-13} = 0b0;
4685 let Inst{31-21} = 0b11101011111;
4686 let hasNewValue = 1;
4687 let opNewValue = 0;
4688 let isFP = 1;
4689 let isPredicateLate = 1;
4690 }
4691 def F2_sfsub : HInst<
4692 (outs IntRegs:$Rd32),
4693 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4694 "$Rd32 = sfsub($Rs32,$Rt32)",
4695 tc_3bea1824, TypeM>, Enc_5ab2be, Requires<[HasV5T]> {
4696 let Inst{7-5} = 0b001;
4697 let Inst{13-13} = 0b0;
4698 let Inst{31-21} = 0b11101011000;
4699 let hasNewValue = 1;
4700 let opNewValue = 0;
4701 let isFP = 1;
4702 let Uses = [USR];
4703 }
4704 def J2_call : HInst<
4705 (outs),
4706 (ins a30_2Imm:$Ii),
4707 "call $Ii",
4708 tc_639d93ee, TypeJ>, Enc_81ac1d, PredRel {
4709 let Inst{0-0} = 0b0;
4710 let Inst{31-25} = 0b0101101;
4711 let isCall = 1;
4712 let prefersSlot3 = 1;
4713 let Uses = [R29];
4714 let Defs = [PC, R31];
4715 let BaseOpcode = "J2_call";
4716 let isPredicable = 1;
4717 let hasSideEffects = 1;
4718 let isExtendable = 1;
4719 let opExtendable = 0;
4720 let isExtentSigned = 1;
4721 let opExtentBits = 24;
4722 let opExtentAlign = 2;
4723 }
4724 def J2_callf : HInst<
4725 (outs),
4726 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4727 "if (!$Pu4) call $Ii",
4728 tc_0767081f, TypeJ>, Enc_daea09, PredRel {
4729 let Inst{0-0} = 0b0;
4730 let Inst{12-10} = 0b000;
4731 let Inst{21-21} = 0b1;
4732 let Inst{31-24} = 0b01011101;
4733 let isPredicated = 1;
4734 let isPredicatedFalse = 1;
4735 let isCall = 1;
4736 let prefersSlot3 = 1;
4737 let Uses = [R29];
4738 let Defs = [PC, R31];
4739 let BaseOpcode = "J2_call";
4740 let hasSideEffects = 1;
4741 let isTaken = Inst{12};
4742 let isExtendable = 1;
4743 let opExtendable = 1;
4744 let isExtentSigned = 1;
4745 let opExtentBits = 17;
4746 let opExtentAlign = 2;
4747 }
4748 def J2_callr : HInst<
4749 (outs),
4750 (ins IntRegs:$Rs32),
4751 "callr $Rs32",
4752 tc_ecfaae86, TypeJ>, Enc_ecbcc8 {
4753 let Inst{13-0} = 0b00000000000000;
4754 let Inst{31-21} = 0b01010000101;
4755 let cofMax1 = 1;
4756 let isCall = 1;
4757 let prefersSlot3 = 1;
4758 let Uses = [R29];
4759 let Defs = [PC, R31];
4760 let hasSideEffects = 1;
4761 }
4762 def J2_callrf : HInst<
4763 (outs),
4764 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4765 "if (!$Pu4) callr $Rs32",
4766 tc_84630363, TypeJ>, Enc_88d4d9 {
4767 let Inst{7-0} = 0b00000000;
4768 let Inst{13-10} = 0b0000;
4769 let Inst{31-21} = 0b01010001001;
4770 let isPredicated = 1;
4771 let isPredicatedFalse = 1;
4772 let cofMax1 = 1;
4773 let isCall = 1;
4774 let prefersSlot3 = 1;
4775 let Uses = [R29];
4776 let Defs = [PC, R31];
4777 let hasSideEffects = 1;
4778 let isTaken = Inst{12};
4779 }
4780 def J2_callrt : HInst<
4781 (outs),
4782 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4783 "if ($Pu4) callr $Rs32",
4784 tc_84630363, TypeJ>, Enc_88d4d9 {
4785 let Inst{7-0} = 0b00000000;
4786 let Inst{13-10} = 0b0000;
4787 let Inst{31-21} = 0b01010001000;
4788 let isPredicated = 1;
4789 let cofMax1 = 1;
4790 let isCall = 1;
4791 let prefersSlot3 = 1;
4792 let Uses = [R29];
4793 let Defs = [PC, R31];
4794 let hasSideEffects = 1;
4795 let isTaken = Inst{12};
4796 }
4797 def J2_callt : HInst<
4798 (outs),
4799 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4800 "if ($Pu4) call $Ii",
4801 tc_0767081f, TypeJ>, Enc_daea09, PredRel {
4802 let Inst{0-0} = 0b0;
4803 let Inst{12-10} = 0b000;
4804 let Inst{21-21} = 0b0;
4805 let Inst{31-24} = 0b01011101;
4806 let isPredicated = 1;
4807 let isCall = 1;
4808 let prefersSlot3 = 1;
4809 let Uses = [R29];
4810 let Defs = [PC, R31];
4811 let BaseOpcode = "J2_call";
4812 let hasSideEffects = 1;
4813 let isTaken = Inst{12};
4814 let isExtendable = 1;
4815 let opExtendable = 1;
4816 let isExtentSigned = 1;
4817 let opExtentBits = 17;
4818 let opExtentAlign = 2;
4819 }
4820 def J2_endloop0 : HInst<
4821 (outs),
4822 (ins),
4823 "endloop0",
4824 tc_aad55963, TypeJ> {
4825 let Uses = [LC0, SA0];
4826 let Defs = [LC0, P3, PC, USR];
4827 let isBranch = 1;
4828 let isTerminator = 1;
4829 let isPseudo = 1;
4830 }
4831 def J2_endloop01 : HInst<
4832 (outs),
4833 (ins),
4834 "endloop01",
4835 tc_aad55963, TypeJ> {
4836 let Uses = [LC0, LC1, SA0, SA1];
4837 let Defs = [LC0, LC1, P3, PC, USR];
4838 let isPseudo = 1;
4839 }
4840 def J2_endloop1 : HInst<
4841 (outs),
4842 (ins),
4843 "endloop1",
4844 tc_aad55963, TypeJ> {
4845 let Uses = [LC1, SA1];
4846 let Defs = [LC1, PC];
4847 let isBranch = 1;
4848 let isTerminator = 1;
4849 let isPseudo = 1;
4850 }
4851 def J2_jump : HInst<
4852 (outs),
4853 (ins b30_2Imm:$Ii),
4854 "jump $Ii",
4855 tc_a333d2a9, TypeJ>, Enc_81ac1d, PredNewRel {
4856 let Inst{0-0} = 0b0;
4857 let Inst{31-25} = 0b0101100;
4858 let isTerminator = 1;
4859 let isBranch = 1;
4860 let Defs = [PC];
4861 let InputType = "imm";
4862 let BaseOpcode = "J2_jump";
4863 let isBarrier = 1;
4864 let isPredicable = 1;
4865 let isExtendable = 1;
4866 let opExtendable = 0;
4867 let isExtentSigned = 1;
4868 let opExtentBits = 24;
4869 let opExtentAlign = 2;
4870 }
4871 def J2_jumpf : HInst<
4872 (outs),
4873 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4874 "if (!$Pu4) jump:nt $Ii",
4875 tc_1b834fe7, TypeJ>, Enc_daea09, PredNewRel {
4876 let Inst{0-0} = 0b0;
4877 let Inst{12-10} = 0b000;
4878 let Inst{21-21} = 0b1;
4879 let Inst{31-24} = 0b01011100;
4880 let isPredicated = 1;
4881 let isPredicatedFalse = 1;
4882 let isTerminator = 1;
4883 let isBranch = 1;
4884 let Defs = [PC];
4885 let InputType = "imm";
4886 let BaseOpcode = "J2_jump";
4887 let isTaken = Inst{12};
4888 let isExtendable = 1;
4889 let opExtendable = 1;
4890 let isExtentSigned = 1;
4891 let opExtentBits = 17;
4892 let opExtentAlign = 2;
4893 }
4894 def J2_jumpf_nopred_map : HInst<
4895 (outs),
4896 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
4897 "if (!$Pu4) jump $Ii",
4898 tc_1b834fe7, TypeMAPPING>, Requires<[HasV60T]> {
4899 let isPseudo = 1;
4900 let isCodeGenOnly = 1;
4901 }
4902 def J2_jumpfnew : HInst<
4903 (outs),
4904 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4905 "if (!$Pu4.new) jump:nt $Ii",
4906 tc_537e2013, TypeJ>, Enc_daea09, PredNewRel {
4907 let Inst{0-0} = 0b0;
4908 let Inst{12-10} = 0b010;
4909 let Inst{21-21} = 0b1;
4910 let Inst{31-24} = 0b01011100;
4911 let isPredicated = 1;
4912 let isPredicatedFalse = 1;
4913 let isTerminator = 1;
4914 let isBranch = 1;
4915 let isPredicatedNew = 1;
4916 let Defs = [PC];
4917 let InputType = "imm";
4918 let BaseOpcode = "J2_jump";
4919 let isTaken = Inst{12};
4920 let isExtendable = 1;
4921 let opExtendable = 1;
4922 let isExtentSigned = 1;
4923 let opExtentBits = 17;
4924 let opExtentAlign = 2;
4925 }
4926 def J2_jumpfnewpt : HInst<
4927 (outs),
4928 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4929 "if (!$Pu4.new) jump:t $Ii",
4930 tc_537e2013, TypeJ>, Enc_daea09, PredNewRel {
4931 let Inst{0-0} = 0b0;
4932 let Inst{12-10} = 0b110;
4933 let Inst{21-21} = 0b1;
4934 let Inst{31-24} = 0b01011100;
4935 let isPredicated = 1;
4936 let isPredicatedFalse = 1;
4937 let isTerminator = 1;
4938 let isBranch = 1;
4939 let isPredicatedNew = 1;
4940 let Defs = [PC];
4941 let InputType = "imm";
4942 let BaseOpcode = "J2_jump";
4943 let isTaken = Inst{12};
4944 let isExtendable = 1;
4945 let opExtendable = 1;
4946 let isExtentSigned = 1;
4947 let opExtentBits = 17;
4948 let opExtentAlign = 2;
4949 }
4950 def J2_jumpfpt : HInst<
4951 (outs),
4952 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4953 "if (!$Pu4) jump:t $Ii",
4954 tc_b5bfaa60, TypeJ>, Enc_daea09, Requires<[HasV60T]>, PredNewRel {
4955 let Inst{0-0} = 0b0;
4956 let Inst{12-10} = 0b100;
4957 let Inst{21-21} = 0b1;
4958 let Inst{31-24} = 0b01011100;
4959 let isPredicated = 1;
4960 let isPredicatedFalse = 1;
4961 let isTerminator = 1;
4962 let isBranch = 1;
4963 let Defs = [PC];
4964 let InputType = "imm";
4965 let BaseOpcode = "J2_jump";
4966 let isTaken = Inst{12};
4967 let isExtendable = 1;
4968 let opExtendable = 1;
4969 let isExtentSigned = 1;
4970 let opExtentBits = 17;
4971 let opExtentAlign = 2;
4972 }
4973 def J2_jumpr : HInst<
4974 (outs),
4975 (ins IntRegs:$Rs32),
4976 "jumpr $Rs32",
4977 tc_b08b653e, TypeJ>, Enc_ecbcc8, PredNewRel {
4978 let Inst{13-0} = 0b00000000000000;
4979 let Inst{31-21} = 0b01010010100;
4980 let isTerminator = 1;
4981 let isIndirectBranch = 1;
4982 let isBranch = 1;
4983 let cofMax1 = 1;
4984 let Defs = [PC];
4985 let InputType = "reg";
4986 let BaseOpcode = "J2_jumpr";
4987 let isBarrier = 1;
4988 let isPredicable = 1;
4989 }
4990 def J2_jumprf : HInst<
4991 (outs),
4992 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4993 "if (!$Pu4) jumpr:nt $Rs32",
4994 tc_07ac815d, TypeJ>, Enc_88d4d9, PredNewRel {
4995 let Inst{7-0} = 0b00000000;
4996 let Inst{13-10} = 0b0000;
4997 let Inst{31-21} = 0b01010011011;
4998 let isPredicated = 1;
4999 let isPredicatedFalse = 1;
5000 let isTerminator = 1;
5001 let isIndirectBranch = 1;
5002 let isBranch = 1;
5003 let cofMax1 = 1;
5004 let Defs = [PC];
5005 let InputType = "reg";
5006 let BaseOpcode = "J2_jumpr";
5007 let isTaken = Inst{12};
5008 }
5009 def J2_jumprf_nopred_map : HInst<
5010 (outs),
5011 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5012 "if (!$Pu4) jumpr $Rs32",
5013 tc_07ac815d, TypeMAPPING>, Requires<[HasV60T]> {
5014 let isPseudo = 1;
5015 let isCodeGenOnly = 1;
5016 }
5017 def J2_jumprfnew : HInst<
5018 (outs),
5019 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5020 "if (!$Pu4.new) jumpr:nt $Rs32",
5021 tc_1f9668cc, TypeJ>, Enc_88d4d9, PredNewRel {
5022 let Inst{7-0} = 0b00000000;
5023 let Inst{13-10} = 0b0010;
5024 let Inst{31-21} = 0b01010011011;
5025 let isPredicated = 1;
5026 let isPredicatedFalse = 1;
5027 let isTerminator = 1;
5028 let isIndirectBranch = 1;
5029 let isBranch = 1;
5030 let cofMax1 = 1;
5031 let isPredicatedNew = 1;
5032 let Defs = [PC];
5033 let InputType = "reg";
5034 let BaseOpcode = "J2_jumpr";
5035 let isTaken = Inst{12};
5036 }
5037 def J2_jumprfnewpt : HInst<
5038 (outs),
5039 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5040 "if (!$Pu4.new) jumpr:t $Rs32",
5041 tc_1f9668cc, TypeJ>, Enc_88d4d9, PredNewRel {
5042 let Inst{7-0} = 0b00000000;
5043 let Inst{13-10} = 0b0110;
5044 let Inst{31-21} = 0b01010011011;
5045 let isPredicated = 1;
5046 let isPredicatedFalse = 1;
5047 let isTerminator = 1;
5048 let isIndirectBranch = 1;
5049 let isBranch = 1;
5050 let cofMax1 = 1;
5051 let isPredicatedNew = 1;
5052 let Defs = [PC];
5053 let InputType = "reg";
5054 let BaseOpcode = "J2_jumpr";
5055 let isTaken = Inst{12};
5056 }
5057 def J2_jumprfpt : HInst<
5058 (outs),
5059 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5060 "if (!$Pu4) jumpr:t $Rs32",
5061 tc_a1fb80e1, TypeJ>, Enc_88d4d9, Requires<[HasV60T]>, PredNewRel {
5062 let Inst{7-0} = 0b00000000;
5063 let Inst{13-10} = 0b0100;
5064 let Inst{31-21} = 0b01010011011;
5065 let isPredicated = 1;
5066 let isPredicatedFalse = 1;
5067 let isTerminator = 1;
5068 let isIndirectBranch = 1;
5069 let isBranch = 1;
5070 let cofMax1 = 1;
5071 let Defs = [PC];
5072 let InputType = "reg";
5073 let BaseOpcode = "J2_jumpr";
5074 let isTaken = Inst{12};
5075 }
5076 def J2_jumprgtez : HInst<
5077 (outs),
5078 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5079 "if ($Rs32>=#0) jump:nt $Ii",
5080 tc_b324366f, TypeCR>, Enc_0fa531 {
5081 let Inst{0-0} = 0b0;
5082 let Inst{12-12} = 0b0;
5083 let Inst{31-22} = 0b0110000101;
5084 let isPredicated = 1;
5085 let isTerminator = 1;
5086 let isBranch = 1;
5087 let isPredicatedNew = 1;
5088 let Defs = [PC];
5089 let isTaken = Inst{12};
5090 }
5091 def J2_jumprgtezpt : HInst<
5092 (outs),
5093 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5094 "if ($Rs32>=#0) jump:t $Ii",
5095 tc_b324366f, TypeCR>, Enc_0fa531 {
5096 let Inst{0-0} = 0b0;
5097 let Inst{12-12} = 0b1;
5098 let Inst{31-22} = 0b0110000101;
5099 let isPredicated = 1;
5100 let isTerminator = 1;
5101 let isBranch = 1;
5102 let isPredicatedNew = 1;
5103 let Defs = [PC];
5104 let isTaken = Inst{12};
5105 }
5106 def J2_jumprltez : HInst<
5107 (outs),
5108 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5109 "if ($Rs32<=#0) jump:nt $Ii",
5110 tc_b324366f, TypeCR>, Enc_0fa531 {
5111 let Inst{0-0} = 0b0;
5112 let Inst{12-12} = 0b0;
5113 let Inst{31-22} = 0b0110000111;
5114 let isPredicated = 1;
5115 let isTerminator = 1;
5116 let isBranch = 1;
5117 let isPredicatedNew = 1;
5118 let Defs = [PC];
5119 let isTaken = Inst{12};
5120 }
5121 def J2_jumprltezpt : HInst<
5122 (outs),
5123 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5124 "if ($Rs32<=#0) jump:t $Ii",
5125 tc_b324366f, TypeCR>, Enc_0fa531 {
5126 let Inst{0-0} = 0b0;
5127 let Inst{12-12} = 0b1;
5128 let Inst{31-22} = 0b0110000111;
5129 let isPredicated = 1;
5130 let isTerminator = 1;
5131 let isBranch = 1;
5132 let isPredicatedNew = 1;
5133 let Defs = [PC];
5134 let isTaken = Inst{12};
5135 }
5136 def J2_jumprnz : HInst<
5137 (outs),
5138 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5139 "if ($Rs32==#0) jump:nt $Ii",
5140 tc_b324366f, TypeCR>, Enc_0fa531 {
5141 let Inst{0-0} = 0b0;
5142 let Inst{12-12} = 0b0;
5143 let Inst{31-22} = 0b0110000110;
5144 let isPredicated = 1;
5145 let isTerminator = 1;
5146 let isBranch = 1;
5147 let isPredicatedNew = 1;
5148 let Defs = [PC];
5149 let isTaken = Inst{12};
5150 }
5151 def J2_jumprnzpt : HInst<
5152 (outs),
5153 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5154 "if ($Rs32==#0) jump:t $Ii",
5155 tc_b324366f, TypeCR>, Enc_0fa531 {
5156 let Inst{0-0} = 0b0;
5157 let Inst{12-12} = 0b1;
5158 let Inst{31-22} = 0b0110000110;
5159 let isPredicated = 1;
5160 let isTerminator = 1;
5161 let isBranch = 1;
5162 let isPredicatedNew = 1;
5163 let Defs = [PC];
5164 let isTaken = Inst{12};
5165 }
5166 def J2_jumprt : HInst<
5167 (outs),
5168 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5169 "if ($Pu4) jumpr:nt $Rs32",
5170 tc_07ac815d, TypeJ>, Enc_88d4d9, PredNewRel {
5171 let Inst{7-0} = 0b00000000;
5172 let Inst{13-10} = 0b0000;
5173 let Inst{31-21} = 0b01010011010;
5174 let isPredicated = 1;
5175 let isTerminator = 1;
5176 let isIndirectBranch = 1;
5177 let isBranch = 1;
5178 let cofMax1 = 1;
5179 let Defs = [PC];
5180 let InputType = "reg";
5181 let BaseOpcode = "J2_jumpr";
5182 let isTaken = Inst{12};
5183 }
5184 def J2_jumprt_nopred_map : HInst<
5185 (outs),
5186 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5187 "if ($Pu4) jumpr $Rs32",
5188 tc_07ac815d, TypeMAPPING>, Requires<[HasV60T]> {
5189 let isPseudo = 1;
5190 let isCodeGenOnly = 1;
5191 }
5192 def J2_jumprtnew : HInst<
5193 (outs),
5194 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5195 "if ($Pu4.new) jumpr:nt $Rs32",
5196 tc_1f9668cc, TypeJ>, Enc_88d4d9, PredNewRel {
5197 let Inst{7-0} = 0b00000000;
5198 let Inst{13-10} = 0b0010;
5199 let Inst{31-21} = 0b01010011010;
5200 let isPredicated = 1;
5201 let isTerminator = 1;
5202 let isIndirectBranch = 1;
5203 let isBranch = 1;
5204 let cofMax1 = 1;
5205 let isPredicatedNew = 1;
5206 let Defs = [PC];
5207 let InputType = "reg";
5208 let BaseOpcode = "J2_jumpr";
5209 let isTaken = Inst{12};
5210 }
5211 def J2_jumprtnewpt : HInst<
5212 (outs),
5213 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5214 "if ($Pu4.new) jumpr:t $Rs32",
5215 tc_1f9668cc, TypeJ>, Enc_88d4d9, PredNewRel {
5216 let Inst{7-0} = 0b00000000;
5217 let Inst{13-10} = 0b0110;
5218 let Inst{31-21} = 0b01010011010;
5219 let isPredicated = 1;
5220 let isTerminator = 1;
5221 let isIndirectBranch = 1;
5222 let isBranch = 1;
5223 let cofMax1 = 1;
5224 let isPredicatedNew = 1;
5225 let Defs = [PC];
5226 let InputType = "reg";
5227 let BaseOpcode = "J2_jumpr";
5228 let isTaken = Inst{12};
5229 }
5230 def J2_jumprtpt : HInst<
5231 (outs),
5232 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5233 "if ($Pu4) jumpr:t $Rs32",
5234 tc_a1fb80e1, TypeJ>, Enc_88d4d9, Requires<[HasV60T]>, PredNewRel {
5235 let Inst{7-0} = 0b00000000;
5236 let Inst{13-10} = 0b0100;
5237 let Inst{31-21} = 0b01010011010;
5238 let isPredicated = 1;
5239 let isTerminator = 1;
5240 let isIndirectBranch = 1;
5241 let isBranch = 1;
5242 let cofMax1 = 1;
5243 let Defs = [PC];
5244 let InputType = "reg";
5245 let BaseOpcode = "J2_jumpr";
5246 let isTaken = Inst{12};
5247 }
5248 def J2_jumprz : HInst<
5249 (outs),
5250 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5251 "if ($Rs32!=#0) jump:nt $Ii",
5252 tc_b324366f, TypeCR>, Enc_0fa531 {
5253 let Inst{0-0} = 0b0;
5254 let Inst{12-12} = 0b0;
5255 let Inst{31-22} = 0b0110000100;
5256 let isPredicated = 1;
5257 let isTerminator = 1;
5258 let isBranch = 1;
5259 let isPredicatedNew = 1;
5260 let Defs = [PC];
5261 let isTaken = Inst{12};
5262 }
5263 def J2_jumprzpt : HInst<
5264 (outs),
5265 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5266 "if ($Rs32!=#0) jump:t $Ii",
5267 tc_b324366f, TypeCR>, Enc_0fa531 {
5268 let Inst{0-0} = 0b0;
5269 let Inst{12-12} = 0b1;
5270 let Inst{31-22} = 0b0110000100;
5271 let isPredicated = 1;
5272 let isTerminator = 1;
5273 let isBranch = 1;
5274 let isPredicatedNew = 1;
5275 let Defs = [PC];
5276 let isTaken = Inst{12};
5277 }
5278 def J2_jumpt : HInst<
5279 (outs),
5280 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5281 "if ($Pu4) jump:nt $Ii",
5282 tc_1b834fe7, TypeJ>, Enc_daea09, PredNewRel {
5283 let Inst{0-0} = 0b0;
5284 let Inst{12-10} = 0b000;
5285 let Inst{21-21} = 0b0;
5286 let Inst{31-24} = 0b01011100;
5287 let isPredicated = 1;
5288 let isTerminator = 1;
5289 let isBranch = 1;
5290 let Defs = [PC];
5291 let InputType = "imm";
5292 let BaseOpcode = "J2_jump";
5293 let isTaken = Inst{12};
5294 let isExtendable = 1;
5295 let opExtendable = 1;
5296 let isExtentSigned = 1;
5297 let opExtentBits = 17;
5298 let opExtentAlign = 2;
5299 }
5300 def J2_jumpt_nopred_map : HInst<
5301 (outs),
5302 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5303 "if ($Pu4) jump $Ii",
5304 tc_1b834fe7, TypeMAPPING>, Requires<[HasV60T]> {
5305 let isPseudo = 1;
5306 let isCodeGenOnly = 1;
5307 }
5308 def J2_jumptnew : HInst<
5309 (outs),
5310 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5311 "if ($Pu4.new) jump:nt $Ii",
5312 tc_537e2013, TypeJ>, Enc_daea09, PredNewRel {
5313 let Inst{0-0} = 0b0;
5314 let Inst{12-10} = 0b010;
5315 let Inst{21-21} = 0b0;
5316 let Inst{31-24} = 0b01011100;
5317 let isPredicated = 1;
5318 let isTerminator = 1;
5319 let isBranch = 1;
5320 let isPredicatedNew = 1;
5321 let Defs = [PC];
5322 let InputType = "imm";
5323 let BaseOpcode = "J2_jump";
5324 let isTaken = Inst{12};
5325 let isExtendable = 1;
5326 let opExtendable = 1;
5327 let isExtentSigned = 1;
5328 let opExtentBits = 17;
5329 let opExtentAlign = 2;
5330 }
5331 def J2_jumptnewpt : HInst<
5332 (outs),
5333 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5334 "if ($Pu4.new) jump:t $Ii",
5335 tc_537e2013, TypeJ>, Enc_daea09, PredNewRel {
5336 let Inst{0-0} = 0b0;
5337 let Inst{12-10} = 0b110;
5338 let Inst{21-21} = 0b0;
5339 let Inst{31-24} = 0b01011100;
5340 let isPredicated = 1;
5341 let isTerminator = 1;
5342 let isBranch = 1;
5343 let isPredicatedNew = 1;
5344 let Defs = [PC];
5345 let InputType = "imm";
5346 let BaseOpcode = "J2_jump";
5347 let isTaken = Inst{12};
5348 let isExtendable = 1;
5349 let opExtendable = 1;
5350 let isExtentSigned = 1;
5351 let opExtentBits = 17;
5352 let opExtentAlign = 2;
5353 }
5354 def J2_jumptpt : HInst<
5355 (outs),
5356 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5357 "if ($Pu4) jump:t $Ii",
5358 tc_b5bfaa60, TypeJ>, Enc_daea09, Requires<[HasV60T]>, PredNewRel {
5359 let Inst{0-0} = 0b0;
5360 let Inst{12-10} = 0b100;
5361 let Inst{21-21} = 0b0;
5362 let Inst{31-24} = 0b01011100;
5363 let isPredicated = 1;
5364 let isTerminator = 1;
5365 let isBranch = 1;
5366 let Defs = [PC];
5367 let InputType = "imm";
5368 let BaseOpcode = "J2_jump";
5369 let isTaken = Inst{12};
5370 let isExtendable = 1;
5371 let opExtendable = 1;
5372 let isExtentSigned = 1;
5373 let opExtentBits = 17;
5374 let opExtentAlign = 2;
5375 }
5376 def J2_loop0i : HInst<
5377 (outs),
5378 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5379 "loop0($Ii,#$II)",
5380 tc_1000eb10, TypeCR>, Enc_4dc228 {
5381 let Inst{2-2} = 0b0;
5382 let Inst{13-13} = 0b0;
5383 let Inst{31-21} = 0b01101001000;
5384 let Defs = [LC0, SA0, USR];
5385 let isExtendable = 1;
5386 let opExtendable = 0;
5387 let isExtentSigned = 1;
5388 let opExtentBits = 9;
5389 let opExtentAlign = 2;
5390 }
5391 def J2_loop0r : HInst<
5392 (outs),
5393 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5394 "loop0($Ii,$Rs32)",
5395 tc_f055fbb6, TypeCR>, Enc_864a5a {
5396 let Inst{2-0} = 0b000;
5397 let Inst{7-5} = 0b000;
5398 let Inst{13-13} = 0b0;
5399 let Inst{31-21} = 0b01100000000;
5400 let Defs = [LC0, SA0, USR];
5401 let isExtendable = 1;
5402 let opExtendable = 0;
5403 let isExtentSigned = 1;
5404 let opExtentBits = 9;
5405 let opExtentAlign = 2;
5406 }
5407 def J2_loop1i : HInst<
5408 (outs),
5409 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5410 "loop1($Ii,#$II)",
5411 tc_1000eb10, TypeCR>, Enc_4dc228 {
5412 let Inst{2-2} = 0b0;
5413 let Inst{13-13} = 0b0;
5414 let Inst{31-21} = 0b01101001001;
5415 let Defs = [LC1, SA1];
5416 let isExtendable = 1;
5417 let opExtendable = 0;
5418 let isExtentSigned = 1;
5419 let opExtentBits = 9;
5420 let opExtentAlign = 2;
5421 }
5422 def J2_loop1r : HInst<
5423 (outs),
5424 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5425 "loop1($Ii,$Rs32)",
5426 tc_f055fbb6, TypeCR>, Enc_864a5a {
5427 let Inst{2-0} = 0b000;
5428 let Inst{7-5} = 0b000;
5429 let Inst{13-13} = 0b0;
5430 let Inst{31-21} = 0b01100000001;
5431 let Defs = [LC1, SA1];
5432 let isExtendable = 1;
5433 let opExtendable = 0;
5434 let isExtentSigned = 1;
5435 let opExtentBits = 9;
5436 let opExtentAlign = 2;
5437 }
5438 def J2_pause : HInst<
5439 (outs),
5440 (ins u8_0Imm:$Ii),
5441 "pause(#$Ii)",
5442 tc_b189ad4c, TypeJ>, Enc_a51a9a {
5443 let Inst{1-0} = 0b00;
5444 let Inst{7-5} = 0b000;
5445 let Inst{13-13} = 0b0;
5446 let Inst{31-16} = 0b0101010001000000;
5447 let isSolo = 1;
5448 }
5449 def J2_ploop1si : HInst<
5450 (outs),
5451 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5452 "p3 = sp1loop0($Ii,#$II)",
5453 tc_feb4974b, TypeCR>, Enc_4dc228 {
5454 let Inst{2-2} = 0b0;
5455 let Inst{13-13} = 0b0;
5456 let Inst{31-21} = 0b01101001101;
5457 let isPredicateLate = 1;
5458 let Defs = [LC0, P3, SA0, USR];
5459 let isExtendable = 1;
5460 let opExtendable = 0;
5461 let isExtentSigned = 1;
5462 let opExtentBits = 9;
5463 let opExtentAlign = 2;
5464 }
5465 def J2_ploop1sr : HInst<
5466 (outs),
5467 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5468 "p3 = sp1loop0($Ii,$Rs32)",
5469 tc_d6a805a8, TypeCR>, Enc_864a5a {
5470 let Inst{2-0} = 0b000;
5471 let Inst{7-5} = 0b000;
5472 let Inst{13-13} = 0b0;
5473 let Inst{31-21} = 0b01100000101;
5474 let isPredicateLate = 1;
5475 let Defs = [LC0, P3, SA0, USR];
5476 let isExtendable = 1;
5477 let opExtendable = 0;
5478 let isExtentSigned = 1;
5479 let opExtentBits = 9;
5480 let opExtentAlign = 2;
5481 }
5482 def J2_ploop2si : HInst<
5483 (outs),
5484 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5485 "p3 = sp2loop0($Ii,#$II)",
5486 tc_feb4974b, TypeCR>, Enc_4dc228 {
5487 let Inst{2-2} = 0b0;
5488 let Inst{13-13} = 0b0;
5489 let Inst{31-21} = 0b01101001110;
5490 let isPredicateLate = 1;
5491 let Defs = [LC0, P3, SA0, USR];
5492 let isExtendable = 1;
5493 let opExtendable = 0;
5494 let isExtentSigned = 1;
5495 let opExtentBits = 9;
5496 let opExtentAlign = 2;
5497 }
5498 def J2_ploop2sr : HInst<
5499 (outs),
5500 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5501 "p3 = sp2loop0($Ii,$Rs32)",
5502 tc_d6a805a8, TypeCR>, Enc_864a5a {
5503 let Inst{2-0} = 0b000;
5504 let Inst{7-5} = 0b000;
5505 let Inst{13-13} = 0b0;
5506 let Inst{31-21} = 0b01100000110;
5507 let isPredicateLate = 1;
5508 let Defs = [LC0, P3, SA0, USR];
5509 let isExtendable = 1;
5510 let opExtendable = 0;
5511 let isExtentSigned = 1;
5512 let opExtentBits = 9;
5513 let opExtentAlign = 2;
5514 }
5515 def J2_ploop3si : HInst<
5516 (outs),
5517 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5518 "p3 = sp3loop0($Ii,#$II)",
5519 tc_feb4974b, TypeCR>, Enc_4dc228 {
5520 let Inst{2-2} = 0b0;
5521 let Inst{13-13} = 0b0;
5522 let Inst{31-21} = 0b01101001111;
5523 let isPredicateLate = 1;
5524 let Defs = [LC0, P3, SA0, USR];
5525 let isExtendable = 1;
5526 let opExtendable = 0;
5527 let isExtentSigned = 1;
5528 let opExtentBits = 9;
5529 let opExtentAlign = 2;
5530 }
5531 def J2_ploop3sr : HInst<
5532 (outs),
5533 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5534 "p3 = sp3loop0($Ii,$Rs32)",
5535 tc_d6a805a8, TypeCR>, Enc_864a5a {
5536 let Inst{2-0} = 0b000;
5537 let Inst{7-5} = 0b000;
5538 let Inst{13-13} = 0b0;
5539 let Inst{31-21} = 0b01100000111;
5540 let isPredicateLate = 1;
5541 let Defs = [LC0, P3, SA0, USR];
5542 let isExtendable = 1;
5543 let opExtendable = 0;
5544 let isExtentSigned = 1;
5545 let opExtentBits = 9;
5546 let opExtentAlign = 2;
5547 }
5548 def J2_trap0 : HInst<
5549 (outs),
5550 (ins u8_0Imm:$Ii),
5551 "trap0(#$Ii)",
5552 tc_cbe45117, TypeJ>, Enc_a51a9a {
5553 let Inst{1-0} = 0b00;
5554 let Inst{7-5} = 0b000;
5555 let Inst{13-13} = 0b0;
5556 let Inst{31-16} = 0b0101010000000000;
5557 let isSolo = 1;
5558 }
5559 def J4_cmpeq_f_jumpnv_nt : HInst<
5560 (outs),
5561 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5562 "if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5563 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
5564 let Inst{0-0} = 0b0;
5565 let Inst{13-13} = 0b0;
5566 let Inst{19-19} = 0b0;
5567 let Inst{31-22} = 0b0010000001;
5568 let isPredicated = 1;
5569 let isPredicatedFalse = 1;
5570 let isTerminator = 1;
5571 let isBranch = 1;
5572 let cofMax1 = 1;
5573 let isNewValue = 1;
5574 let Defs = [PC];
5575 let BaseOpcode = "J4_cmpeqr";
5576 let isTaken = Inst{13};
5577 let isExtendable = 1;
5578 let opExtendable = 2;
5579 let isExtentSigned = 1;
5580 let opExtentBits = 11;
5581 let opExtentAlign = 2;
5582 let opNewValue = 0;
5583 }
5584 def J4_cmpeq_f_jumpnv_t : HInst<
5585 (outs),
5586 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5587 "if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5588 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
5589 let Inst{0-0} = 0b0;
5590 let Inst{13-13} = 0b1;
5591 let Inst{19-19} = 0b0;
5592 let Inst{31-22} = 0b0010000001;
5593 let isPredicated = 1;
5594 let isPredicatedFalse = 1;
5595 let isTerminator = 1;
5596 let isBranch = 1;
5597 let cofMax1 = 1;
5598 let isNewValue = 1;
5599 let Defs = [PC];
5600 let BaseOpcode = "J4_cmpeqr";
5601 let isTaken = Inst{13};
5602 let isExtendable = 1;
5603 let opExtendable = 2;
5604 let isExtentSigned = 1;
5605 let opExtentBits = 11;
5606 let opExtentAlign = 2;
5607 let opNewValue = 0;
5608 }
5609 def J4_cmpeq_fp0_jump_nt : HInst<
5610 (outs),
5611 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5612 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5613 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5614 let Inst{0-0} = 0b0;
5615 let Inst{13-12} = 0b00;
5616 let Inst{31-22} = 0b0001010001;
5617 let isPredicated = 1;
5618 let isPredicatedFalse = 1;
5619 let isTerminator = 1;
5620 let isBranch = 1;
5621 let isPredicatedNew = 1;
5622 let Uses = [P0];
5623 let Defs = [P0, PC];
5624 let BaseOpcode = "J4_cmpeqp0";
5625 let isTaken = Inst{13};
5626 let isExtendable = 1;
5627 let opExtendable = 2;
5628 let isExtentSigned = 1;
5629 let opExtentBits = 11;
5630 let opExtentAlign = 2;
5631 }
5632 def J4_cmpeq_fp0_jump_t : HInst<
5633 (outs),
5634 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5635 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5636 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5637 let Inst{0-0} = 0b0;
5638 let Inst{13-12} = 0b10;
5639 let Inst{31-22} = 0b0001010001;
5640 let isPredicated = 1;
5641 let isPredicatedFalse = 1;
5642 let isTerminator = 1;
5643 let isBranch = 1;
5644 let isPredicatedNew = 1;
5645 let Uses = [P0];
5646 let Defs = [P0, PC];
5647 let BaseOpcode = "J4_cmpeqp0";
5648 let isTaken = Inst{13};
5649 let isExtendable = 1;
5650 let opExtendable = 2;
5651 let isExtentSigned = 1;
5652 let opExtentBits = 11;
5653 let opExtentAlign = 2;
5654 }
5655 def J4_cmpeq_fp1_jump_nt : HInst<
5656 (outs),
5657 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5658 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5659 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5660 let Inst{0-0} = 0b0;
5661 let Inst{13-12} = 0b01;
5662 let Inst{31-22} = 0b0001010001;
5663 let isPredicated = 1;
5664 let isPredicatedFalse = 1;
5665 let isTerminator = 1;
5666 let isBranch = 1;
5667 let isPredicatedNew = 1;
5668 let Uses = [P1];
5669 let Defs = [P1, PC];
5670 let BaseOpcode = "J4_cmpeqp1";
5671 let isTaken = Inst{13};
5672 let isExtendable = 1;
5673 let opExtendable = 2;
5674 let isExtentSigned = 1;
5675 let opExtentBits = 11;
5676 let opExtentAlign = 2;
5677 }
5678 def J4_cmpeq_fp1_jump_t : HInst<
5679 (outs),
5680 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5681 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
5682 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5683 let Inst{0-0} = 0b0;
5684 let Inst{13-12} = 0b11;
5685 let Inst{31-22} = 0b0001010001;
5686 let isPredicated = 1;
5687 let isPredicatedFalse = 1;
5688 let isTerminator = 1;
5689 let isBranch = 1;
5690 let isPredicatedNew = 1;
5691 let Uses = [P1];
5692 let Defs = [P1, PC];
5693 let BaseOpcode = "J4_cmpeqp1";
5694 let isTaken = Inst{13};
5695 let isExtendable = 1;
5696 let opExtendable = 2;
5697 let isExtentSigned = 1;
5698 let opExtentBits = 11;
5699 let opExtentAlign = 2;
5700 }
5701 def J4_cmpeq_t_jumpnv_nt : HInst<
5702 (outs),
5703 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5704 "if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5705 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
5706 let Inst{0-0} = 0b0;
5707 let Inst{13-13} = 0b0;
5708 let Inst{19-19} = 0b0;
5709 let Inst{31-22} = 0b0010000000;
5710 let isPredicated = 1;
5711 let isTerminator = 1;
5712 let isBranch = 1;
5713 let cofMax1 = 1;
5714 let isNewValue = 1;
5715 let Defs = [PC];
5716 let BaseOpcode = "J4_cmpeqr";
5717 let isTaken = Inst{13};
5718 let isExtendable = 1;
5719 let opExtendable = 2;
5720 let isExtentSigned = 1;
5721 let opExtentBits = 11;
5722 let opExtentAlign = 2;
5723 let opNewValue = 0;
5724 }
5725 def J4_cmpeq_t_jumpnv_t : HInst<
5726 (outs),
5727 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5728 "if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5729 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
5730 let Inst{0-0} = 0b0;
5731 let Inst{13-13} = 0b1;
5732 let Inst{19-19} = 0b0;
5733 let Inst{31-22} = 0b0010000000;
5734 let isPredicated = 1;
5735 let isTerminator = 1;
5736 let isBranch = 1;
5737 let cofMax1 = 1;
5738 let isNewValue = 1;
5739 let Defs = [PC];
5740 let BaseOpcode = "J4_cmpeqr";
5741 let isTaken = Inst{13};
5742 let isExtendable = 1;
5743 let opExtendable = 2;
5744 let isExtentSigned = 1;
5745 let opExtentBits = 11;
5746 let opExtentAlign = 2;
5747 let opNewValue = 0;
5748 }
5749 def J4_cmpeq_tp0_jump_nt : HInst<
5750 (outs),
5751 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5752 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
5753 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5754 let Inst{0-0} = 0b0;
5755 let Inst{13-12} = 0b00;
5756 let Inst{31-22} = 0b0001010000;
5757 let isPredicated = 1;
5758 let isTerminator = 1;
5759 let isBranch = 1;
5760 let isPredicatedNew = 1;
5761 let Uses = [P0];
5762 let Defs = [P0, PC];
5763 let BaseOpcode = "J4_cmpeqp0";
5764 let isTaken = Inst{13};
5765 let isExtendable = 1;
5766 let opExtendable = 2;
5767 let isExtentSigned = 1;
5768 let opExtentBits = 11;
5769 let opExtentAlign = 2;
5770 }
5771 def J4_cmpeq_tp0_jump_t : HInst<
5772 (outs),
5773 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5774 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
5775 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5776 let Inst{0-0} = 0b0;
5777 let Inst{13-12} = 0b10;
5778 let Inst{31-22} = 0b0001010000;
5779 let isPredicated = 1;
5780 let isTerminator = 1;
5781 let isBranch = 1;
5782 let isPredicatedNew = 1;
5783 let Uses = [P0];
5784 let Defs = [P0, PC];
5785 let BaseOpcode = "J4_cmpeqp0";
5786 let isTaken = Inst{13};
5787 let isExtendable = 1;
5788 let opExtendable = 2;
5789 let isExtentSigned = 1;
5790 let opExtentBits = 11;
5791 let opExtentAlign = 2;
5792 }
5793 def J4_cmpeq_tp1_jump_nt : HInst<
5794 (outs),
5795 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5796 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
5797 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5798 let Inst{0-0} = 0b0;
5799 let Inst{13-12} = 0b01;
5800 let Inst{31-22} = 0b0001010000;
5801 let isPredicated = 1;
5802 let isTerminator = 1;
5803 let isBranch = 1;
5804 let isPredicatedNew = 1;
5805 let Uses = [P1];
5806 let Defs = [P1, PC];
5807 let BaseOpcode = "J4_cmpeqp1";
5808 let isTaken = Inst{13};
5809 let isExtendable = 1;
5810 let opExtendable = 2;
5811 let isExtentSigned = 1;
5812 let opExtentBits = 11;
5813 let opExtentAlign = 2;
5814 }
5815 def J4_cmpeq_tp1_jump_t : HInst<
5816 (outs),
5817 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5818 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
5819 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
5820 let Inst{0-0} = 0b0;
5821 let Inst{13-12} = 0b11;
5822 let Inst{31-22} = 0b0001010000;
5823 let isPredicated = 1;
5824 let isTerminator = 1;
5825 let isBranch = 1;
5826 let isPredicatedNew = 1;
5827 let Uses = [P1];
5828 let Defs = [P1, PC];
5829 let BaseOpcode = "J4_cmpeqp1";
5830 let isTaken = Inst{13};
5831 let isExtendable = 1;
5832 let opExtendable = 2;
5833 let isExtentSigned = 1;
5834 let opExtentBits = 11;
5835 let opExtentAlign = 2;
5836 }
5837 def J4_cmpeqi_f_jumpnv_nt : HInst<
5838 (outs),
5839 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
5840 "if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
5841 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
5842 let Inst{0-0} = 0b0;
5843 let Inst{13-13} = 0b0;
5844 let Inst{19-19} = 0b0;
5845 let Inst{31-22} = 0b0010010001;
5846 let isPredicated = 1;
5847 let isPredicatedFalse = 1;
5848 let isTerminator = 1;
5849 let isBranch = 1;
5850 let cofMax1 = 1;
5851 let isNewValue = 1;
5852 let Defs = [PC];
5853 let BaseOpcode = "J4_cmpeqi";
5854 let isTaken = Inst{13};
5855 let isExtendable = 1;
5856 let opExtendable = 2;
5857 let isExtentSigned = 1;
5858 let opExtentBits = 11;
5859 let opExtentAlign = 2;
5860 let opNewValue = 0;
5861 }
5862 def J4_cmpeqi_f_jumpnv_t : HInst<
5863 (outs),
5864 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
5865 "if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
5866 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
5867 let Inst{0-0} = 0b0;
5868 let Inst{13-13} = 0b1;
5869 let Inst{19-19} = 0b0;
5870 let Inst{31-22} = 0b0010010001;
5871 let isPredicated = 1;
5872 let isPredicatedFalse = 1;
5873 let isTerminator = 1;
5874 let isBranch = 1;
5875 let cofMax1 = 1;
5876 let isNewValue = 1;
5877 let Defs = [PC];
5878 let BaseOpcode = "J4_cmpeqi";
5879 let isTaken = Inst{13};
5880 let isExtendable = 1;
5881 let opExtendable = 2;
5882 let isExtentSigned = 1;
5883 let opExtentBits = 11;
5884 let opExtentAlign = 2;
5885 let opNewValue = 0;
5886 }
5887 def J4_cmpeqi_fp0_jump_nt : HInst<
5888 (outs),
5889 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
5890 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
5891 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
5892 let Inst{0-0} = 0b0;
5893 let Inst{13-13} = 0b0;
5894 let Inst{31-22} = 0b0001000001;
5895 let isPredicated = 1;
5896 let isPredicatedFalse = 1;
5897 let isTerminator = 1;
5898 let isBranch = 1;
5899 let isPredicatedNew = 1;
5900 let Uses = [P0];
5901 let Defs = [P0, PC];
5902 let BaseOpcode = "J4_cmpeqip0";
5903 let isTaken = Inst{13};
5904 let isExtendable = 1;
5905 let opExtendable = 2;
5906 let isExtentSigned = 1;
5907 let opExtentBits = 11;
5908 let opExtentAlign = 2;
5909 }
5910 def J4_cmpeqi_fp0_jump_t : HInst<
5911 (outs),
5912 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
5913 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
5914 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
5915 let Inst{0-0} = 0b0;
5916 let Inst{13-13} = 0b1;
5917 let Inst{31-22} = 0b0001000001;
5918 let isPredicated = 1;
5919 let isPredicatedFalse = 1;
5920 let isTerminator = 1;
5921 let isBranch = 1;
5922 let isPredicatedNew = 1;
5923 let Uses = [P0];
5924 let Defs = [P0, PC];
5925 let BaseOpcode = "J4_cmpeqip0";
5926 let isTaken = Inst{13};
5927 let isExtendable = 1;
5928 let opExtendable = 2;
5929 let isExtentSigned = 1;
5930 let opExtentBits = 11;
5931 let opExtentAlign = 2;
5932 }
5933 def J4_cmpeqi_fp1_jump_nt : HInst<
5934 (outs),
5935 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
5936 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
5937 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
5938 let Inst{0-0} = 0b0;
5939 let Inst{13-13} = 0b0;
5940 let Inst{31-22} = 0b0001001001;
5941 let isPredicated = 1;
5942 let isPredicatedFalse = 1;
5943 let isTerminator = 1;
5944 let isBranch = 1;
5945 let isPredicatedNew = 1;
5946 let Uses = [P1];
5947 let Defs = [P1, PC];
5948 let BaseOpcode = "J4_cmpeqip1";
5949 let isTaken = Inst{13};
5950 let isExtendable = 1;
5951 let opExtendable = 2;
5952 let isExtentSigned = 1;
5953 let opExtentBits = 11;
5954 let opExtentAlign = 2;
5955 }
5956 def J4_cmpeqi_fp1_jump_t : HInst<
5957 (outs),
5958 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
5959 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
5960 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
5961 let Inst{0-0} = 0b0;
5962 let Inst{13-13} = 0b1;
5963 let Inst{31-22} = 0b0001001001;
5964 let isPredicated = 1;
5965 let isPredicatedFalse = 1;
5966 let isTerminator = 1;
5967 let isBranch = 1;
5968 let isPredicatedNew = 1;
5969 let Uses = [P1];
5970 let Defs = [P1, PC];
5971 let BaseOpcode = "J4_cmpeqip1";
5972 let isTaken = Inst{13};
5973 let isExtendable = 1;
5974 let opExtendable = 2;
5975 let isExtentSigned = 1;
5976 let opExtentBits = 11;
5977 let opExtentAlign = 2;
5978 }
5979 def J4_cmpeqi_t_jumpnv_nt : HInst<
5980 (outs),
5981 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
5982 "if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
5983 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
5984 let Inst{0-0} = 0b0;
5985 let Inst{13-13} = 0b0;
5986 let Inst{19-19} = 0b0;
5987 let Inst{31-22} = 0b0010010000;
5988 let isPredicated = 1;
5989 let isTerminator = 1;
5990 let isBranch = 1;
5991 let cofMax1 = 1;
5992 let isNewValue = 1;
5993 let Defs = [PC];
5994 let BaseOpcode = "J4_cmpeqi";
5995 let isTaken = Inst{13};
5996 let isExtendable = 1;
5997 let opExtendable = 2;
5998 let isExtentSigned = 1;
5999 let opExtentBits = 11;
6000 let opExtentAlign = 2;
6001 let opNewValue = 0;
6002 }
6003 def J4_cmpeqi_t_jumpnv_t : HInst<
6004 (outs),
6005 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6006 "if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6007 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
6008 let Inst{0-0} = 0b0;
6009 let Inst{13-13} = 0b1;
6010 let Inst{19-19} = 0b0;
6011 let Inst{31-22} = 0b0010010000;
6012 let isPredicated = 1;
6013 let isTerminator = 1;
6014 let isBranch = 1;
6015 let cofMax1 = 1;
6016 let isNewValue = 1;
6017 let Defs = [PC];
6018 let BaseOpcode = "J4_cmpeqi";
6019 let isTaken = Inst{13};
6020 let isExtendable = 1;
6021 let opExtendable = 2;
6022 let isExtentSigned = 1;
6023 let opExtentBits = 11;
6024 let opExtentAlign = 2;
6025 let opNewValue = 0;
6026 }
6027 def J4_cmpeqi_tp0_jump_nt : HInst<
6028 (outs),
6029 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6030 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6031 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6032 let Inst{0-0} = 0b0;
6033 let Inst{13-13} = 0b0;
6034 let Inst{31-22} = 0b0001000000;
6035 let isPredicated = 1;
6036 let isTerminator = 1;
6037 let isBranch = 1;
6038 let isPredicatedNew = 1;
6039 let Uses = [P0];
6040 let Defs = [P0, PC];
6041 let BaseOpcode = "J4_cmpeqip0";
6042 let isTaken = Inst{13};
6043 let isExtendable = 1;
6044 let opExtendable = 2;
6045 let isExtentSigned = 1;
6046 let opExtentBits = 11;
6047 let opExtentAlign = 2;
6048 }
6049 def J4_cmpeqi_tp0_jump_t : HInst<
6050 (outs),
6051 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6052 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6053 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6054 let Inst{0-0} = 0b0;
6055 let Inst{13-13} = 0b1;
6056 let Inst{31-22} = 0b0001000000;
6057 let isPredicated = 1;
6058 let isTerminator = 1;
6059 let isBranch = 1;
6060 let isPredicatedNew = 1;
6061 let Uses = [P0];
6062 let Defs = [P0, PC];
6063 let BaseOpcode = "J4_cmpeqip0";
6064 let isTaken = Inst{13};
6065 let isExtendable = 1;
6066 let opExtendable = 2;
6067 let isExtentSigned = 1;
6068 let opExtentBits = 11;
6069 let opExtentAlign = 2;
6070 }
6071 def J4_cmpeqi_tp1_jump_nt : HInst<
6072 (outs),
6073 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6074 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6075 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6076 let Inst{0-0} = 0b0;
6077 let Inst{13-13} = 0b0;
6078 let Inst{31-22} = 0b0001001000;
6079 let isPredicated = 1;
6080 let isTerminator = 1;
6081 let isBranch = 1;
6082 let isPredicatedNew = 1;
6083 let Uses = [P1];
6084 let Defs = [P1, PC];
6085 let BaseOpcode = "J4_cmpeqip1";
6086 let isTaken = Inst{13};
6087 let isExtendable = 1;
6088 let opExtendable = 2;
6089 let isExtentSigned = 1;
6090 let opExtentBits = 11;
6091 let opExtentAlign = 2;
6092 }
6093 def J4_cmpeqi_tp1_jump_t : HInst<
6094 (outs),
6095 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6096 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6097 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6098 let Inst{0-0} = 0b0;
6099 let Inst{13-13} = 0b1;
6100 let Inst{31-22} = 0b0001001000;
6101 let isPredicated = 1;
6102 let isTerminator = 1;
6103 let isBranch = 1;
6104 let isPredicatedNew = 1;
6105 let Uses = [P1];
6106 let Defs = [P1, PC];
6107 let BaseOpcode = "J4_cmpeqip1";
6108 let isTaken = Inst{13};
6109 let isExtendable = 1;
6110 let opExtendable = 2;
6111 let isExtentSigned = 1;
6112 let opExtentBits = 11;
6113 let opExtentAlign = 2;
6114 }
6115 def J4_cmpeqn1_f_jumpnv_nt : HInst<
6116 (outs),
6117 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6118 "if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6119 tc_09faec3b, TypeNCJ>, Enc_e90a15, PredRel {
6120 let Inst{0-0} = 0b0;
6121 let Inst{13-8} = 0b000000;
6122 let Inst{19-19} = 0b0;
6123 let Inst{31-22} = 0b0010011001;
6124 let isPredicated = 1;
6125 let isPredicatedFalse = 1;
6126 let isTerminator = 1;
6127 let isBranch = 1;
6128 let cofMax1 = 1;
6129 let isNewValue = 1;
6130 let Defs = [PC];
6131 let BaseOpcode = "J4_cmpeqn1r";
6132 let isTaken = Inst{13};
6133 let isExtendable = 1;
6134 let opExtendable = 2;
6135 let isExtentSigned = 1;
6136 let opExtentBits = 11;
6137 let opExtentAlign = 2;
6138 let opNewValue = 0;
6139 }
6140 def J4_cmpeqn1_f_jumpnv_t : HInst<
6141 (outs),
6142 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6143 "if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6144 tc_09faec3b, TypeNCJ>, Enc_5a18b3, PredRel {
6145 let Inst{0-0} = 0b0;
6146 let Inst{13-8} = 0b100000;
6147 let Inst{19-19} = 0b0;
6148 let Inst{31-22} = 0b0010011001;
6149 let isPredicated = 1;
6150 let isPredicatedFalse = 1;
6151 let isTerminator = 1;
6152 let isBranch = 1;
6153 let cofMax1 = 1;
6154 let isNewValue = 1;
6155 let Defs = [PC];
6156 let BaseOpcode = "J4_cmpeqn1r";
6157 let isTaken = Inst{13};
6158 let isExtendable = 1;
6159 let opExtendable = 2;
6160 let isExtentSigned = 1;
6161 let opExtentBits = 11;
6162 let opExtentAlign = 2;
6163 let opNewValue = 0;
6164 }
6165 def J4_cmpeqn1_fp0_jump_nt : HInst<
6166 (outs),
6167 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6168 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6169 tc_d108a090, TypeCJ>, Enc_1de724, PredRel {
6170 let Inst{0-0} = 0b0;
6171 let Inst{13-8} = 0b000000;
6172 let Inst{31-22} = 0b0001000111;
6173 let isPredicated = 1;
6174 let isPredicatedFalse = 1;
6175 let isTerminator = 1;
6176 let isBranch = 1;
6177 let isPredicatedNew = 1;
6178 let Uses = [P0];
6179 let Defs = [P0, PC];
6180 let BaseOpcode = "J4_cmpeqn1p0";
6181 let isTaken = Inst{13};
6182 let isExtendable = 1;
6183 let opExtendable = 2;
6184 let isExtentSigned = 1;
6185 let opExtentBits = 11;
6186 let opExtentAlign = 2;
6187 }
6188 def J4_cmpeqn1_fp0_jump_t : HInst<
6189 (outs),
6190 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6191 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6192 tc_d108a090, TypeCJ>, Enc_14640c, PredRel {
6193 let Inst{0-0} = 0b0;
6194 let Inst{13-8} = 0b100000;
6195 let Inst{31-22} = 0b0001000111;
6196 let isPredicated = 1;
6197 let isPredicatedFalse = 1;
6198 let isTerminator = 1;
6199 let isBranch = 1;
6200 let isPredicatedNew = 1;
6201 let Uses = [P0];
6202 let Defs = [P0, PC];
6203 let BaseOpcode = "J4_cmpeqn1p0";
6204 let isTaken = Inst{13};
6205 let isExtendable = 1;
6206 let opExtendable = 2;
6207 let isExtentSigned = 1;
6208 let opExtentBits = 11;
6209 let opExtentAlign = 2;
6210 }
6211 def J4_cmpeqn1_fp1_jump_nt : HInst<
6212 (outs),
6213 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6214 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6215 tc_d108a090, TypeCJ>, Enc_668704, PredRel {
6216 let Inst{0-0} = 0b0;
6217 let Inst{13-8} = 0b000000;
6218 let Inst{31-22} = 0b0001001111;
6219 let isPredicated = 1;
6220 let isPredicatedFalse = 1;
6221 let isTerminator = 1;
6222 let isBranch = 1;
6223 let isPredicatedNew = 1;
6224 let Uses = [P1];
6225 let Defs = [P1, PC];
6226 let BaseOpcode = "J4_cmpeqn1p1";
6227 let isTaken = Inst{13};
6228 let isExtendable = 1;
6229 let opExtendable = 2;
6230 let isExtentSigned = 1;
6231 let opExtentBits = 11;
6232 let opExtentAlign = 2;
6233 }
6234 def J4_cmpeqn1_fp1_jump_t : HInst<
6235 (outs),
6236 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6237 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6238 tc_d108a090, TypeCJ>, Enc_800e04, PredRel {
6239 let Inst{0-0} = 0b0;
6240 let Inst{13-8} = 0b100000;
6241 let Inst{31-22} = 0b0001001111;
6242 let isPredicated = 1;
6243 let isPredicatedFalse = 1;
6244 let isTerminator = 1;
6245 let isBranch = 1;
6246 let isPredicatedNew = 1;
6247 let Uses = [P1];
6248 let Defs = [P1, PC];
6249 let BaseOpcode = "J4_cmpeqn1p1";
6250 let isTaken = Inst{13};
6251 let isExtendable = 1;
6252 let opExtendable = 2;
6253 let isExtentSigned = 1;
6254 let opExtentBits = 11;
6255 let opExtentAlign = 2;
6256 }
6257 def J4_cmpeqn1_t_jumpnv_nt : HInst<
6258 (outs),
6259 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6260 "if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6261 tc_09faec3b, TypeNCJ>, Enc_4aca3a, PredRel {
6262 let Inst{0-0} = 0b0;
6263 let Inst{13-8} = 0b000000;
6264 let Inst{19-19} = 0b0;
6265 let Inst{31-22} = 0b0010011000;
6266 let isPredicated = 1;
6267 let isTerminator = 1;
6268 let isBranch = 1;
6269 let cofMax1 = 1;
6270 let isNewValue = 1;
6271 let Defs = [PC];
6272 let BaseOpcode = "J4_cmpeqn1r";
6273 let isTaken = Inst{13};
6274 let isExtendable = 1;
6275 let opExtendable = 2;
6276 let isExtentSigned = 1;
6277 let opExtentBits = 11;
6278 let opExtentAlign = 2;
6279 let opNewValue = 0;
6280 }
6281 def J4_cmpeqn1_t_jumpnv_t : HInst<
6282 (outs),
6283 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6284 "if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6285 tc_09faec3b, TypeNCJ>, Enc_f7ea77, PredRel {
6286 let Inst{0-0} = 0b0;
6287 let Inst{13-8} = 0b100000;
6288 let Inst{19-19} = 0b0;
6289 let Inst{31-22} = 0b0010011000;
6290 let isPredicated = 1;
6291 let isTerminator = 1;
6292 let isBranch = 1;
6293 let cofMax1 = 1;
6294 let isNewValue = 1;
6295 let Defs = [PC];
6296 let BaseOpcode = "J4_cmpeqn1r";
6297 let isTaken = Inst{13};
6298 let isExtendable = 1;
6299 let opExtendable = 2;
6300 let isExtentSigned = 1;
6301 let opExtentBits = 11;
6302 let opExtentAlign = 2;
6303 let opNewValue = 0;
6304 }
6305 def J4_cmpeqn1_tp0_jump_nt : HInst<
6306 (outs),
6307 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6308 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6309 tc_d108a090, TypeCJ>, Enc_405228, PredRel {
6310 let Inst{0-0} = 0b0;
6311 let Inst{13-8} = 0b000000;
6312 let Inst{31-22} = 0b0001000110;
6313 let isPredicated = 1;
6314 let isTerminator = 1;
6315 let isBranch = 1;
6316 let isPredicatedNew = 1;
6317 let Uses = [P0];
6318 let Defs = [P0, PC];
6319 let BaseOpcode = "J4_cmpeqn1p0";
6320 let isTaken = Inst{13};
6321 let isExtendable = 1;
6322 let opExtendable = 2;
6323 let isExtentSigned = 1;
6324 let opExtentBits = 11;
6325 let opExtentAlign = 2;
6326 }
6327 def J4_cmpeqn1_tp0_jump_t : HInst<
6328 (outs),
6329 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6330 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6331 tc_d108a090, TypeCJ>, Enc_3a2484, PredRel {
6332 let Inst{0-0} = 0b0;
6333 let Inst{13-8} = 0b100000;
6334 let Inst{31-22} = 0b0001000110;
6335 let isPredicated = 1;
6336 let isTerminator = 1;
6337 let isBranch = 1;
6338 let isPredicatedNew = 1;
6339 let Uses = [P0];
6340 let Defs = [P0, PC];
6341 let BaseOpcode = "J4_cmpeqn1p0";
6342 let isTaken = Inst{13};
6343 let isExtendable = 1;
6344 let opExtendable = 2;
6345 let isExtentSigned = 1;
6346 let opExtentBits = 11;
6347 let opExtentAlign = 2;
6348 }
6349 def J4_cmpeqn1_tp1_jump_nt : HInst<
6350 (outs),
6351 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6352 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6353 tc_d108a090, TypeCJ>, Enc_736575, PredRel {
6354 let Inst{0-0} = 0b0;
6355 let Inst{13-8} = 0b000000;
6356 let Inst{31-22} = 0b0001001110;
6357 let isPredicated = 1;
6358 let isTerminator = 1;
6359 let isBranch = 1;
6360 let isPredicatedNew = 1;
6361 let Uses = [P1];
6362 let Defs = [P1, PC];
6363 let BaseOpcode = "J4_cmpeqn1p1";
6364 let isTaken = Inst{13};
6365 let isExtendable = 1;
6366 let opExtendable = 2;
6367 let isExtentSigned = 1;
6368 let opExtentBits = 11;
6369 let opExtentAlign = 2;
6370 }
6371 def J4_cmpeqn1_tp1_jump_t : HInst<
6372 (outs),
6373 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6374 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6375 tc_d108a090, TypeCJ>, Enc_8e583a, PredRel {
6376 let Inst{0-0} = 0b0;
6377 let Inst{13-8} = 0b100000;
6378 let Inst{31-22} = 0b0001001110;
6379 let isPredicated = 1;
6380 let isTerminator = 1;
6381 let isBranch = 1;
6382 let isPredicatedNew = 1;
6383 let Uses = [P1];
6384 let Defs = [P1, PC];
6385 let BaseOpcode = "J4_cmpeqn1p1";
6386 let isTaken = Inst{13};
6387 let isExtendable = 1;
6388 let opExtendable = 2;
6389 let isExtentSigned = 1;
6390 let opExtentBits = 11;
6391 let opExtentAlign = 2;
6392 }
6393 def J4_cmpgt_f_jumpnv_nt : HInst<
6394 (outs),
6395 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6396 "if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6397 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
6398 let Inst{0-0} = 0b0;
6399 let Inst{13-13} = 0b0;
6400 let Inst{19-19} = 0b0;
6401 let Inst{31-22} = 0b0010000011;
6402 let isPredicated = 1;
6403 let isPredicatedFalse = 1;
6404 let isTerminator = 1;
6405 let isBranch = 1;
6406 let cofMax1 = 1;
6407 let isNewValue = 1;
6408 let Defs = [PC];
6409 let BaseOpcode = "J4_cmpgtr";
6410 let isTaken = Inst{13};
6411 let isExtendable = 1;
6412 let opExtendable = 2;
6413 let isExtentSigned = 1;
6414 let opExtentBits = 11;
6415 let opExtentAlign = 2;
6416 let opNewValue = 0;
6417 }
6418 def J4_cmpgt_f_jumpnv_t : HInst<
6419 (outs),
6420 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6421 "if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6422 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
6423 let Inst{0-0} = 0b0;
6424 let Inst{13-13} = 0b1;
6425 let Inst{19-19} = 0b0;
6426 let Inst{31-22} = 0b0010000011;
6427 let isPredicated = 1;
6428 let isPredicatedFalse = 1;
6429 let isTerminator = 1;
6430 let isBranch = 1;
6431 let cofMax1 = 1;
6432 let isNewValue = 1;
6433 let Defs = [PC];
6434 let BaseOpcode = "J4_cmpgtr";
6435 let isTaken = Inst{13};
6436 let isExtendable = 1;
6437 let opExtendable = 2;
6438 let isExtentSigned = 1;
6439 let opExtentBits = 11;
6440 let opExtentAlign = 2;
6441 let opNewValue = 0;
6442 }
6443 def J4_cmpgt_fp0_jump_nt : HInst<
6444 (outs),
6445 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6446 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6447 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6448 let Inst{0-0} = 0b0;
6449 let Inst{13-12} = 0b00;
6450 let Inst{31-22} = 0b0001010011;
6451 let isPredicated = 1;
6452 let isPredicatedFalse = 1;
6453 let isTerminator = 1;
6454 let isBranch = 1;
6455 let isPredicatedNew = 1;
6456 let Uses = [P0];
6457 let Defs = [P0, PC];
6458 let BaseOpcode = "J4_cmpgtp0";
6459 let isTaken = Inst{13};
6460 let isExtendable = 1;
6461 let opExtendable = 2;
6462 let isExtentSigned = 1;
6463 let opExtentBits = 11;
6464 let opExtentAlign = 2;
6465 }
6466 def J4_cmpgt_fp0_jump_t : HInst<
6467 (outs),
6468 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6469 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6470 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6471 let Inst{0-0} = 0b0;
6472 let Inst{13-12} = 0b10;
6473 let Inst{31-22} = 0b0001010011;
6474 let isPredicated = 1;
6475 let isPredicatedFalse = 1;
6476 let isTerminator = 1;
6477 let isBranch = 1;
6478 let isPredicatedNew = 1;
6479 let Uses = [P0];
6480 let Defs = [P0, PC];
6481 let BaseOpcode = "J4_cmpgtp0";
6482 let isTaken = Inst{13};
6483 let isExtendable = 1;
6484 let opExtendable = 2;
6485 let isExtentSigned = 1;
6486 let opExtentBits = 11;
6487 let opExtentAlign = 2;
6488 }
6489 def J4_cmpgt_fp1_jump_nt : HInst<
6490 (outs),
6491 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6492 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6493 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6494 let Inst{0-0} = 0b0;
6495 let Inst{13-12} = 0b01;
6496 let Inst{31-22} = 0b0001010011;
6497 let isPredicated = 1;
6498 let isPredicatedFalse = 1;
6499 let isTerminator = 1;
6500 let isBranch = 1;
6501 let isPredicatedNew = 1;
6502 let Uses = [P1];
6503 let Defs = [P1, PC];
6504 let BaseOpcode = "J4_cmpgtp1";
6505 let isTaken = Inst{13};
6506 let isExtendable = 1;
6507 let opExtendable = 2;
6508 let isExtentSigned = 1;
6509 let opExtentBits = 11;
6510 let opExtentAlign = 2;
6511 }
6512 def J4_cmpgt_fp1_jump_t : HInst<
6513 (outs),
6514 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6515 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6516 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6517 let Inst{0-0} = 0b0;
6518 let Inst{13-12} = 0b11;
6519 let Inst{31-22} = 0b0001010011;
6520 let isPredicated = 1;
6521 let isPredicatedFalse = 1;
6522 let isTerminator = 1;
6523 let isBranch = 1;
6524 let isPredicatedNew = 1;
6525 let Uses = [P1];
6526 let Defs = [P1, PC];
6527 let BaseOpcode = "J4_cmpgtp1";
6528 let isTaken = Inst{13};
6529 let isExtendable = 1;
6530 let opExtendable = 2;
6531 let isExtentSigned = 1;
6532 let opExtentBits = 11;
6533 let opExtentAlign = 2;
6534 }
6535 def J4_cmpgt_t_jumpnv_nt : HInst<
6536 (outs),
6537 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6538 "if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6539 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
6540 let Inst{0-0} = 0b0;
6541 let Inst{13-13} = 0b0;
6542 let Inst{19-19} = 0b0;
6543 let Inst{31-22} = 0b0010000010;
6544 let isPredicated = 1;
6545 let isTerminator = 1;
6546 let isBranch = 1;
6547 let cofMax1 = 1;
6548 let isNewValue = 1;
6549 let Defs = [PC];
6550 let BaseOpcode = "J4_cmpgtr";
6551 let isTaken = Inst{13};
6552 let isExtendable = 1;
6553 let opExtendable = 2;
6554 let isExtentSigned = 1;
6555 let opExtentBits = 11;
6556 let opExtentAlign = 2;
6557 let opNewValue = 0;
6558 }
6559 def J4_cmpgt_t_jumpnv_t : HInst<
6560 (outs),
6561 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6562 "if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6563 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
6564 let Inst{0-0} = 0b0;
6565 let Inst{13-13} = 0b1;
6566 let Inst{19-19} = 0b0;
6567 let Inst{31-22} = 0b0010000010;
6568 let isPredicated = 1;
6569 let isTerminator = 1;
6570 let isBranch = 1;
6571 let cofMax1 = 1;
6572 let isNewValue = 1;
6573 let Defs = [PC];
6574 let BaseOpcode = "J4_cmpgtr";
6575 let isTaken = Inst{13};
6576 let isExtendable = 1;
6577 let opExtendable = 2;
6578 let isExtentSigned = 1;
6579 let opExtentBits = 11;
6580 let opExtentAlign = 2;
6581 let opNewValue = 0;
6582 }
6583 def J4_cmpgt_tp0_jump_nt : HInst<
6584 (outs),
6585 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6586 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6587 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6588 let Inst{0-0} = 0b0;
6589 let Inst{13-12} = 0b00;
6590 let Inst{31-22} = 0b0001010010;
6591 let isPredicated = 1;
6592 let isTerminator = 1;
6593 let isBranch = 1;
6594 let isPredicatedNew = 1;
6595 let Uses = [P0];
6596 let Defs = [P0, PC];
6597 let BaseOpcode = "J4_cmpgtp0";
6598 let isTaken = Inst{13};
6599 let isExtendable = 1;
6600 let opExtendable = 2;
6601 let isExtentSigned = 1;
6602 let opExtentBits = 11;
6603 let opExtentAlign = 2;
6604 }
6605 def J4_cmpgt_tp0_jump_t : HInst<
6606 (outs),
6607 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6608 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6609 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6610 let Inst{0-0} = 0b0;
6611 let Inst{13-12} = 0b10;
6612 let Inst{31-22} = 0b0001010010;
6613 let isPredicated = 1;
6614 let isTerminator = 1;
6615 let isBranch = 1;
6616 let isPredicatedNew = 1;
6617 let Uses = [P0];
6618 let Defs = [P0, PC];
6619 let BaseOpcode = "J4_cmpgtp0";
6620 let isTaken = Inst{13};
6621 let isExtendable = 1;
6622 let opExtendable = 2;
6623 let isExtentSigned = 1;
6624 let opExtentBits = 11;
6625 let opExtentAlign = 2;
6626 }
6627 def J4_cmpgt_tp1_jump_nt : HInst<
6628 (outs),
6629 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6630 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6631 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6632 let Inst{0-0} = 0b0;
6633 let Inst{13-12} = 0b01;
6634 let Inst{31-22} = 0b0001010010;
6635 let isPredicated = 1;
6636 let isTerminator = 1;
6637 let isBranch = 1;
6638 let isPredicatedNew = 1;
6639 let Uses = [P1];
6640 let Defs = [P1, PC];
6641 let BaseOpcode = "J4_cmpgtp1";
6642 let isTaken = Inst{13};
6643 let isExtendable = 1;
6644 let opExtendable = 2;
6645 let isExtentSigned = 1;
6646 let opExtentBits = 11;
6647 let opExtentAlign = 2;
6648 }
6649 def J4_cmpgt_tp1_jump_t : HInst<
6650 (outs),
6651 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6652 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6653 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
6654 let Inst{0-0} = 0b0;
6655 let Inst{13-12} = 0b11;
6656 let Inst{31-22} = 0b0001010010;
6657 let isPredicated = 1;
6658 let isTerminator = 1;
6659 let isBranch = 1;
6660 let isPredicatedNew = 1;
6661 let Uses = [P1];
6662 let Defs = [P1, PC];
6663 let BaseOpcode = "J4_cmpgtp1";
6664 let isTaken = Inst{13};
6665 let isExtendable = 1;
6666 let opExtendable = 2;
6667 let isExtentSigned = 1;
6668 let opExtentBits = 11;
6669 let opExtentAlign = 2;
6670 }
6671 def J4_cmpgti_f_jumpnv_nt : HInst<
6672 (outs),
6673 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6674 "if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
6675 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
6676 let Inst{0-0} = 0b0;
6677 let Inst{13-13} = 0b0;
6678 let Inst{19-19} = 0b0;
6679 let Inst{31-22} = 0b0010010011;
6680 let isPredicated = 1;
6681 let isPredicatedFalse = 1;
6682 let isTerminator = 1;
6683 let isBranch = 1;
6684 let cofMax1 = 1;
6685 let isNewValue = 1;
6686 let Defs = [PC];
6687 let BaseOpcode = "J4_cmpgtir";
6688 let isTaken = Inst{13};
6689 let isExtendable = 1;
6690 let opExtendable = 2;
6691 let isExtentSigned = 1;
6692 let opExtentBits = 11;
6693 let opExtentAlign = 2;
6694 let opNewValue = 0;
6695 }
6696 def J4_cmpgti_f_jumpnv_t : HInst<
6697 (outs),
6698 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6699 "if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
6700 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
6701 let Inst{0-0} = 0b0;
6702 let Inst{13-13} = 0b1;
6703 let Inst{19-19} = 0b0;
6704 let Inst{31-22} = 0b0010010011;
6705 let isPredicated = 1;
6706 let isPredicatedFalse = 1;
6707 let isTerminator = 1;
6708 let isBranch = 1;
6709 let cofMax1 = 1;
6710 let isNewValue = 1;
6711 let Defs = [PC];
6712 let BaseOpcode = "J4_cmpgtir";
6713 let isTaken = Inst{13};
6714 let isExtendable = 1;
6715 let opExtendable = 2;
6716 let isExtentSigned = 1;
6717 let opExtentBits = 11;
6718 let opExtentAlign = 2;
6719 let opNewValue = 0;
6720 }
6721 def J4_cmpgti_fp0_jump_nt : HInst<
6722 (outs),
6723 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6724 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6725 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6726 let Inst{0-0} = 0b0;
6727 let Inst{13-13} = 0b0;
6728 let Inst{31-22} = 0b0001000011;
6729 let isPredicated = 1;
6730 let isPredicatedFalse = 1;
6731 let isTerminator = 1;
6732 let isBranch = 1;
6733 let isPredicatedNew = 1;
6734 let Uses = [P0];
6735 let Defs = [P0, PC];
6736 let BaseOpcode = "J4_cmpgtip0";
6737 let isTaken = Inst{13};
6738 let isExtendable = 1;
6739 let opExtendable = 2;
6740 let isExtentSigned = 1;
6741 let opExtentBits = 11;
6742 let opExtentAlign = 2;
6743 }
6744 def J4_cmpgti_fp0_jump_t : HInst<
6745 (outs),
6746 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6747 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
6748 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6749 let Inst{0-0} = 0b0;
6750 let Inst{13-13} = 0b1;
6751 let Inst{31-22} = 0b0001000011;
6752 let isPredicated = 1;
6753 let isPredicatedFalse = 1;
6754 let isTerminator = 1;
6755 let isBranch = 1;
6756 let isPredicatedNew = 1;
6757 let Uses = [P0];
6758 let Defs = [P0, PC];
6759 let BaseOpcode = "J4_cmpgtip0";
6760 let isTaken = Inst{13};
6761 let isExtendable = 1;
6762 let opExtendable = 2;
6763 let isExtentSigned = 1;
6764 let opExtentBits = 11;
6765 let opExtentAlign = 2;
6766 }
6767 def J4_cmpgti_fp1_jump_nt : HInst<
6768 (outs),
6769 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6770 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6771 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6772 let Inst{0-0} = 0b0;
6773 let Inst{13-13} = 0b0;
6774 let Inst{31-22} = 0b0001001011;
6775 let isPredicated = 1;
6776 let isPredicatedFalse = 1;
6777 let isTerminator = 1;
6778 let isBranch = 1;
6779 let isPredicatedNew = 1;
6780 let Uses = [P1];
6781 let Defs = [P1, PC];
6782 let BaseOpcode = "J4_cmpgtip1";
6783 let isTaken = Inst{13};
6784 let isExtendable = 1;
6785 let opExtendable = 2;
6786 let isExtentSigned = 1;
6787 let opExtentBits = 11;
6788 let opExtentAlign = 2;
6789 }
6790 def J4_cmpgti_fp1_jump_t : HInst<
6791 (outs),
6792 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6793 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
6794 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6795 let Inst{0-0} = 0b0;
6796 let Inst{13-13} = 0b1;
6797 let Inst{31-22} = 0b0001001011;
6798 let isPredicated = 1;
6799 let isPredicatedFalse = 1;
6800 let isTerminator = 1;
6801 let isBranch = 1;
6802 let isPredicatedNew = 1;
6803 let Uses = [P1];
6804 let Defs = [P1, PC];
6805 let BaseOpcode = "J4_cmpgtip1";
6806 let isTaken = Inst{13};
6807 let isExtendable = 1;
6808 let opExtendable = 2;
6809 let isExtentSigned = 1;
6810 let opExtentBits = 11;
6811 let opExtentAlign = 2;
6812 }
6813 def J4_cmpgti_t_jumpnv_nt : HInst<
6814 (outs),
6815 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6816 "if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
6817 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
6818 let Inst{0-0} = 0b0;
6819 let Inst{13-13} = 0b0;
6820 let Inst{19-19} = 0b0;
6821 let Inst{31-22} = 0b0010010010;
6822 let isPredicated = 1;
6823 let isTerminator = 1;
6824 let isBranch = 1;
6825 let cofMax1 = 1;
6826 let isNewValue = 1;
6827 let Defs = [PC];
6828 let BaseOpcode = "J4_cmpgtir";
6829 let isTaken = Inst{13};
6830 let isExtendable = 1;
6831 let opExtendable = 2;
6832 let isExtentSigned = 1;
6833 let opExtentBits = 11;
6834 let opExtentAlign = 2;
6835 let opNewValue = 0;
6836 }
6837 def J4_cmpgti_t_jumpnv_t : HInst<
6838 (outs),
6839 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6840 "if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
6841 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
6842 let Inst{0-0} = 0b0;
6843 let Inst{13-13} = 0b1;
6844 let Inst{19-19} = 0b0;
6845 let Inst{31-22} = 0b0010010010;
6846 let isPredicated = 1;
6847 let isTerminator = 1;
6848 let isBranch = 1;
6849 let cofMax1 = 1;
6850 let isNewValue = 1;
6851 let Defs = [PC];
6852 let BaseOpcode = "J4_cmpgtir";
6853 let isTaken = Inst{13};
6854 let isExtendable = 1;
6855 let opExtendable = 2;
6856 let isExtentSigned = 1;
6857 let opExtentBits = 11;
6858 let opExtentAlign = 2;
6859 let opNewValue = 0;
6860 }
6861 def J4_cmpgti_tp0_jump_nt : HInst<
6862 (outs),
6863 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6864 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
6865 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6866 let Inst{0-0} = 0b0;
6867 let Inst{13-13} = 0b0;
6868 let Inst{31-22} = 0b0001000010;
6869 let isPredicated = 1;
6870 let isTerminator = 1;
6871 let isBranch = 1;
6872 let isPredicatedNew = 1;
6873 let Uses = [P0];
6874 let Defs = [P0, PC];
6875 let BaseOpcode = "J4_cmpgtip0";
6876 let isTaken = Inst{13};
6877 let isExtendable = 1;
6878 let opExtendable = 2;
6879 let isExtentSigned = 1;
6880 let opExtentBits = 11;
6881 let opExtentAlign = 2;
6882 }
6883 def J4_cmpgti_tp0_jump_t : HInst<
6884 (outs),
6885 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6886 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
6887 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6888 let Inst{0-0} = 0b0;
6889 let Inst{13-13} = 0b1;
6890 let Inst{31-22} = 0b0001000010;
6891 let isPredicated = 1;
6892 let isTerminator = 1;
6893 let isBranch = 1;
6894 let isPredicatedNew = 1;
6895 let Uses = [P0];
6896 let Defs = [P0, PC];
6897 let BaseOpcode = "J4_cmpgtip0";
6898 let isTaken = Inst{13};
6899 let isExtendable = 1;
6900 let opExtendable = 2;
6901 let isExtentSigned = 1;
6902 let opExtentBits = 11;
6903 let opExtentAlign = 2;
6904 }
6905 def J4_cmpgti_tp1_jump_nt : HInst<
6906 (outs),
6907 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6908 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
6909 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6910 let Inst{0-0} = 0b0;
6911 let Inst{13-13} = 0b0;
6912 let Inst{31-22} = 0b0001001010;
6913 let isPredicated = 1;
6914 let isTerminator = 1;
6915 let isBranch = 1;
6916 let isPredicatedNew = 1;
6917 let Uses = [P1];
6918 let Defs = [P1, PC];
6919 let BaseOpcode = "J4_cmpgtip1";
6920 let isTaken = Inst{13};
6921 let isExtendable = 1;
6922 let opExtendable = 2;
6923 let isExtentSigned = 1;
6924 let opExtentBits = 11;
6925 let opExtentAlign = 2;
6926 }
6927 def J4_cmpgti_tp1_jump_t : HInst<
6928 (outs),
6929 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6930 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
6931 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
6932 let Inst{0-0} = 0b0;
6933 let Inst{13-13} = 0b1;
6934 let Inst{31-22} = 0b0001001010;
6935 let isPredicated = 1;
6936 let isTerminator = 1;
6937 let isBranch = 1;
6938 let isPredicatedNew = 1;
6939 let Uses = [P1];
6940 let Defs = [P1, PC];
6941 let BaseOpcode = "J4_cmpgtip1";
6942 let isTaken = Inst{13};
6943 let isExtendable = 1;
6944 let opExtendable = 2;
6945 let isExtentSigned = 1;
6946 let opExtentBits = 11;
6947 let opExtentAlign = 2;
6948 }
6949 def J4_cmpgtn1_f_jumpnv_nt : HInst<
6950 (outs),
6951 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6952 "if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
6953 tc_09faec3b, TypeNCJ>, Enc_3694bd, PredRel {
6954 let Inst{0-0} = 0b0;
6955 let Inst{13-8} = 0b000000;
6956 let Inst{19-19} = 0b0;
6957 let Inst{31-22} = 0b0010011011;
6958 let isPredicated = 1;
6959 let isPredicatedFalse = 1;
6960 let isTerminator = 1;
6961 let isBranch = 1;
6962 let cofMax1 = 1;
6963 let isNewValue = 1;
6964 let Defs = [PC];
6965 let BaseOpcode = "J4_cmpgtn1r";
6966 let isTaken = Inst{13};
6967 let isExtendable = 1;
6968 let opExtendable = 2;
6969 let isExtentSigned = 1;
6970 let opExtentBits = 11;
6971 let opExtentAlign = 2;
6972 let opNewValue = 0;
6973 }
6974 def J4_cmpgtn1_f_jumpnv_t : HInst<
6975 (outs),
6976 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6977 "if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
6978 tc_09faec3b, TypeNCJ>, Enc_a6853f, PredRel {
6979 let Inst{0-0} = 0b0;
6980 let Inst{13-8} = 0b100000;
6981 let Inst{19-19} = 0b0;
6982 let Inst{31-22} = 0b0010011011;
6983 let isPredicated = 1;
6984 let isPredicatedFalse = 1;
6985 let isTerminator = 1;
6986 let isBranch = 1;
6987 let cofMax1 = 1;
6988 let isNewValue = 1;
6989 let Defs = [PC];
6990 let BaseOpcode = "J4_cmpgtn1r";
6991 let isTaken = Inst{13};
6992 let isExtendable = 1;
6993 let opExtendable = 2;
6994 let isExtentSigned = 1;
6995 let opExtentBits = 11;
6996 let opExtentAlign = 2;
6997 let opNewValue = 0;
6998 }
6999 def J4_cmpgtn1_fp0_jump_nt : HInst<
7000 (outs),
7001 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7002 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7003 tc_d108a090, TypeCJ>, Enc_a42857, PredRel {
7004 let Inst{0-0} = 0b0;
7005 let Inst{13-8} = 0b000001;
7006 let Inst{31-22} = 0b0001000111;
7007 let isPredicated = 1;
7008 let isPredicatedFalse = 1;
7009 let isTerminator = 1;
7010 let isBranch = 1;
7011 let isPredicatedNew = 1;
7012 let Uses = [P0];
7013 let Defs = [P0, PC];
7014 let BaseOpcode = "J4_cmpgtn1p0";
7015 let isTaken = Inst{13};
7016 let isExtendable = 1;
7017 let opExtendable = 2;
7018 let isExtentSigned = 1;
7019 let opExtentBits = 11;
7020 let opExtentAlign = 2;
7021 }
7022 def J4_cmpgtn1_fp0_jump_t : HInst<
7023 (outs),
7024 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7025 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7026 tc_d108a090, TypeCJ>, Enc_f6fe0b, PredRel {
7027 let Inst{0-0} = 0b0;
7028 let Inst{13-8} = 0b100001;
7029 let Inst{31-22} = 0b0001000111;
7030 let isPredicated = 1;
7031 let isPredicatedFalse = 1;
7032 let isTerminator = 1;
7033 let isBranch = 1;
7034 let isPredicatedNew = 1;
7035 let Uses = [P0];
7036 let Defs = [P0, PC];
7037 let BaseOpcode = "J4_cmpgtn1p0";
7038 let isTaken = Inst{13};
7039 let isExtendable = 1;
7040 let opExtendable = 2;
7041 let isExtentSigned = 1;
7042 let opExtentBits = 11;
7043 let opExtentAlign = 2;
7044 }
7045 def J4_cmpgtn1_fp1_jump_nt : HInst<
7046 (outs),
7047 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7048 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7049 tc_d108a090, TypeCJ>, Enc_3e3989, PredRel {
7050 let Inst{0-0} = 0b0;
7051 let Inst{13-8} = 0b000001;
7052 let Inst{31-22} = 0b0001001111;
7053 let isPredicated = 1;
7054 let isPredicatedFalse = 1;
7055 let isTerminator = 1;
7056 let isBranch = 1;
7057 let isPredicatedNew = 1;
7058 let Uses = [P1];
7059 let Defs = [P1, PC];
7060 let BaseOpcode = "J4_cmpgtn1p1";
7061 let isTaken = Inst{13};
7062 let isExtendable = 1;
7063 let opExtendable = 2;
7064 let isExtentSigned = 1;
7065 let opExtentBits = 11;
7066 let opExtentAlign = 2;
7067 }
7068 def J4_cmpgtn1_fp1_jump_t : HInst<
7069 (outs),
7070 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7071 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7072 tc_d108a090, TypeCJ>, Enc_b909d2, PredRel {
7073 let Inst{0-0} = 0b0;
7074 let Inst{13-8} = 0b100001;
7075 let Inst{31-22} = 0b0001001111;
7076 let isPredicated = 1;
7077 let isPredicatedFalse = 1;
7078 let isTerminator = 1;
7079 let isBranch = 1;
7080 let isPredicatedNew = 1;
7081 let Uses = [P1];
7082 let Defs = [P1, PC];
7083 let BaseOpcode = "J4_cmpgtn1p1";
7084 let isTaken = Inst{13};
7085 let isExtendable = 1;
7086 let opExtendable = 2;
7087 let isExtentSigned = 1;
7088 let opExtentBits = 11;
7089 let opExtentAlign = 2;
7090 }
7091 def J4_cmpgtn1_t_jumpnv_nt : HInst<
7092 (outs),
7093 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7094 "if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7095 tc_09faec3b, TypeNCJ>, Enc_f82302, PredRel {
7096 let Inst{0-0} = 0b0;
7097 let Inst{13-8} = 0b000000;
7098 let Inst{19-19} = 0b0;
7099 let Inst{31-22} = 0b0010011010;
7100 let isPredicated = 1;
7101 let isTerminator = 1;
7102 let isBranch = 1;
7103 let cofMax1 = 1;
7104 let isNewValue = 1;
7105 let Defs = [PC];
7106 let BaseOpcode = "J4_cmpgtn1r";
7107 let isTaken = Inst{13};
7108 let isExtendable = 1;
7109 let opExtendable = 2;
7110 let isExtentSigned = 1;
7111 let opExtentBits = 11;
7112 let opExtentAlign = 2;
7113 let opNewValue = 0;
7114 }
7115 def J4_cmpgtn1_t_jumpnv_t : HInst<
7116 (outs),
7117 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7118 "if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7119 tc_09faec3b, TypeNCJ>, Enc_6413b6, PredRel {
7120 let Inst{0-0} = 0b0;
7121 let Inst{13-8} = 0b100000;
7122 let Inst{19-19} = 0b0;
7123 let Inst{31-22} = 0b0010011010;
7124 let isPredicated = 1;
7125 let isTerminator = 1;
7126 let isBranch = 1;
7127 let cofMax1 = 1;
7128 let isNewValue = 1;
7129 let Defs = [PC];
7130 let BaseOpcode = "J4_cmpgtn1r";
7131 let isTaken = Inst{13};
7132 let isExtendable = 1;
7133 let opExtendable = 2;
7134 let isExtentSigned = 1;
7135 let opExtentBits = 11;
7136 let opExtentAlign = 2;
7137 let opNewValue = 0;
7138 }
7139 def J4_cmpgtn1_tp0_jump_nt : HInst<
7140 (outs),
7141 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7142 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7143 tc_d108a090, TypeCJ>, Enc_b78edd, PredRel {
7144 let Inst{0-0} = 0b0;
7145 let Inst{13-8} = 0b000001;
7146 let Inst{31-22} = 0b0001000110;
7147 let isPredicated = 1;
7148 let isTerminator = 1;
7149 let isBranch = 1;
7150 let isPredicatedNew = 1;
7151 let Uses = [P0];
7152 let Defs = [P0, PC];
7153 let BaseOpcode = "J4_cmpgtn1p0";
7154 let isTaken = Inst{13};
7155 let isExtendable = 1;
7156 let opExtendable = 2;
7157 let isExtentSigned = 1;
7158 let opExtentBits = 11;
7159 let opExtentAlign = 2;
7160 }
7161 def J4_cmpgtn1_tp0_jump_t : HInst<
7162 (outs),
7163 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7164 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7165 tc_d108a090, TypeCJ>, Enc_041d7b, PredRel {
7166 let Inst{0-0} = 0b0;
7167 let Inst{13-8} = 0b100001;
7168 let Inst{31-22} = 0b0001000110;
7169 let isPredicated = 1;
7170 let isTerminator = 1;
7171 let isBranch = 1;
7172 let isPredicatedNew = 1;
7173 let Uses = [P0];
7174 let Defs = [P0, PC];
7175 let BaseOpcode = "J4_cmpgtn1p0";
7176 let isTaken = Inst{13};
7177 let isExtendable = 1;
7178 let opExtendable = 2;
7179 let isExtentSigned = 1;
7180 let opExtentBits = 11;
7181 let opExtentAlign = 2;
7182 }
7183 def J4_cmpgtn1_tp1_jump_nt : HInst<
7184 (outs),
7185 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7186 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7187 tc_d108a090, TypeCJ>, Enc_b1e1fb, PredRel {
7188 let Inst{0-0} = 0b0;
7189 let Inst{13-8} = 0b000001;
7190 let Inst{31-22} = 0b0001001110;
7191 let isPredicated = 1;
7192 let isTerminator = 1;
7193 let isBranch = 1;
7194 let isPredicatedNew = 1;
7195 let Uses = [P1];
7196 let Defs = [P1, PC];
7197 let BaseOpcode = "J4_cmpgtn1p1";
7198 let isTaken = Inst{13};
7199 let isExtendable = 1;
7200 let opExtendable = 2;
7201 let isExtentSigned = 1;
7202 let opExtentBits = 11;
7203 let opExtentAlign = 2;
7204 }
7205 def J4_cmpgtn1_tp1_jump_t : HInst<
7206 (outs),
7207 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7208 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7209 tc_d108a090, TypeCJ>, Enc_178717, PredRel {
7210 let Inst{0-0} = 0b0;
7211 let Inst{13-8} = 0b100001;
7212 let Inst{31-22} = 0b0001001110;
7213 let isPredicated = 1;
7214 let isTerminator = 1;
7215 let isBranch = 1;
7216 let isPredicatedNew = 1;
7217 let Uses = [P1];
7218 let Defs = [P1, PC];
7219 let BaseOpcode = "J4_cmpgtn1p1";
7220 let isTaken = Inst{13};
7221 let isExtendable = 1;
7222 let opExtendable = 2;
7223 let isExtentSigned = 1;
7224 let opExtentBits = 11;
7225 let opExtentAlign = 2;
7226 }
7227 def J4_cmpgtu_f_jumpnv_nt : HInst<
7228 (outs),
7229 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7230 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7231 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
7232 let Inst{0-0} = 0b0;
7233 let Inst{13-13} = 0b0;
7234 let Inst{19-19} = 0b0;
7235 let Inst{31-22} = 0b0010000101;
7236 let isPredicated = 1;
7237 let isPredicatedFalse = 1;
7238 let isTerminator = 1;
7239 let isBranch = 1;
7240 let cofMax1 = 1;
7241 let isNewValue = 1;
7242 let Defs = [PC];
7243 let BaseOpcode = "J4_cmpgtur";
7244 let isTaken = Inst{13};
7245 let isExtendable = 1;
7246 let opExtendable = 2;
7247 let isExtentSigned = 1;
7248 let opExtentBits = 11;
7249 let opExtentAlign = 2;
7250 let opNewValue = 0;
7251 }
7252 def J4_cmpgtu_f_jumpnv_t : HInst<
7253 (outs),
7254 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7255 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7256 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
7257 let Inst{0-0} = 0b0;
7258 let Inst{13-13} = 0b1;
7259 let Inst{19-19} = 0b0;
7260 let Inst{31-22} = 0b0010000101;
7261 let isPredicated = 1;
7262 let isPredicatedFalse = 1;
7263 let isTerminator = 1;
7264 let isBranch = 1;
7265 let cofMax1 = 1;
7266 let isNewValue = 1;
7267 let Defs = [PC];
7268 let BaseOpcode = "J4_cmpgtur";
7269 let isTaken = Inst{13};
7270 let isExtendable = 1;
7271 let opExtendable = 2;
7272 let isExtentSigned = 1;
7273 let opExtentBits = 11;
7274 let opExtentAlign = 2;
7275 let opNewValue = 0;
7276 }
7277 def J4_cmpgtu_fp0_jump_nt : HInst<
7278 (outs),
7279 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7280 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7281 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7282 let Inst{0-0} = 0b0;
7283 let Inst{13-12} = 0b00;
7284 let Inst{31-22} = 0b0001010101;
7285 let isPredicated = 1;
7286 let isPredicatedFalse = 1;
7287 let isTerminator = 1;
7288 let isBranch = 1;
7289 let isPredicatedNew = 1;
7290 let Uses = [P0];
7291 let Defs = [P0, PC];
7292 let BaseOpcode = "J4_cmpgtup0";
7293 let isTaken = Inst{13};
7294 let isExtendable = 1;
7295 let opExtendable = 2;
7296 let isExtentSigned = 1;
7297 let opExtentBits = 11;
7298 let opExtentAlign = 2;
7299 }
7300 def J4_cmpgtu_fp0_jump_t : HInst<
7301 (outs),
7302 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7303 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7304 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7305 let Inst{0-0} = 0b0;
7306 let Inst{13-12} = 0b10;
7307 let Inst{31-22} = 0b0001010101;
7308 let isPredicated = 1;
7309 let isPredicatedFalse = 1;
7310 let isTerminator = 1;
7311 let isBranch = 1;
7312 let isPredicatedNew = 1;
7313 let Uses = [P0];
7314 let Defs = [P0, PC];
7315 let BaseOpcode = "J4_cmpgtup0";
7316 let isTaken = Inst{13};
7317 let isExtendable = 1;
7318 let opExtendable = 2;
7319 let isExtentSigned = 1;
7320 let opExtentBits = 11;
7321 let opExtentAlign = 2;
7322 }
7323 def J4_cmpgtu_fp1_jump_nt : HInst<
7324 (outs),
7325 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7326 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7327 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7328 let Inst{0-0} = 0b0;
7329 let Inst{13-12} = 0b01;
7330 let Inst{31-22} = 0b0001010101;
7331 let isPredicated = 1;
7332 let isPredicatedFalse = 1;
7333 let isTerminator = 1;
7334 let isBranch = 1;
7335 let isPredicatedNew = 1;
7336 let Uses = [P1];
7337 let Defs = [P1, PC];
7338 let BaseOpcode = "J4_cmpgtup1";
7339 let isTaken = Inst{13};
7340 let isExtendable = 1;
7341 let opExtendable = 2;
7342 let isExtentSigned = 1;
7343 let opExtentBits = 11;
7344 let opExtentAlign = 2;
7345 }
7346 def J4_cmpgtu_fp1_jump_t : HInst<
7347 (outs),
7348 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7349 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7350 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7351 let Inst{0-0} = 0b0;
7352 let Inst{13-12} = 0b11;
7353 let Inst{31-22} = 0b0001010101;
7354 let isPredicated = 1;
7355 let isPredicatedFalse = 1;
7356 let isTerminator = 1;
7357 let isBranch = 1;
7358 let isPredicatedNew = 1;
7359 let Uses = [P1];
7360 let Defs = [P1, PC];
7361 let BaseOpcode = "J4_cmpgtup1";
7362 let isTaken = Inst{13};
7363 let isExtendable = 1;
7364 let opExtendable = 2;
7365 let isExtentSigned = 1;
7366 let opExtentBits = 11;
7367 let opExtentAlign = 2;
7368 }
7369 def J4_cmpgtu_t_jumpnv_nt : HInst<
7370 (outs),
7371 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7372 "if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7373 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
7374 let Inst{0-0} = 0b0;
7375 let Inst{13-13} = 0b0;
7376 let Inst{19-19} = 0b0;
7377 let Inst{31-22} = 0b0010000100;
7378 let isPredicated = 1;
7379 let isTerminator = 1;
7380 let isBranch = 1;
7381 let cofMax1 = 1;
7382 let isNewValue = 1;
7383 let Defs = [PC];
7384 let BaseOpcode = "J4_cmpgtur";
7385 let isTaken = Inst{13};
7386 let isExtendable = 1;
7387 let opExtendable = 2;
7388 let isExtentSigned = 1;
7389 let opExtentBits = 11;
7390 let opExtentAlign = 2;
7391 let opNewValue = 0;
7392 }
7393 def J4_cmpgtu_t_jumpnv_t : HInst<
7394 (outs),
7395 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7396 "if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7397 tc_580a779c, TypeNCJ>, Enc_c9a18e, PredRel {
7398 let Inst{0-0} = 0b0;
7399 let Inst{13-13} = 0b1;
7400 let Inst{19-19} = 0b0;
7401 let Inst{31-22} = 0b0010000100;
7402 let isPredicated = 1;
7403 let isTerminator = 1;
7404 let isBranch = 1;
7405 let cofMax1 = 1;
7406 let isNewValue = 1;
7407 let Defs = [PC];
7408 let BaseOpcode = "J4_cmpgtur";
7409 let isTaken = Inst{13};
7410 let isExtendable = 1;
7411 let opExtendable = 2;
7412 let isExtentSigned = 1;
7413 let opExtentBits = 11;
7414 let opExtentAlign = 2;
7415 let opNewValue = 0;
7416 }
7417 def J4_cmpgtu_tp0_jump_nt : HInst<
7418 (outs),
7419 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7420 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7421 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7422 let Inst{0-0} = 0b0;
7423 let Inst{13-12} = 0b00;
7424 let Inst{31-22} = 0b0001010100;
7425 let isPredicated = 1;
7426 let isTerminator = 1;
7427 let isBranch = 1;
7428 let isPredicatedNew = 1;
7429 let Uses = [P0];
7430 let Defs = [P0, PC];
7431 let BaseOpcode = "J4_cmpgtup0";
7432 let isTaken = Inst{13};
7433 let isExtendable = 1;
7434 let opExtendable = 2;
7435 let isExtentSigned = 1;
7436 let opExtentBits = 11;
7437 let opExtentAlign = 2;
7438 }
7439 def J4_cmpgtu_tp0_jump_t : HInst<
7440 (outs),
7441 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7442 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7443 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7444 let Inst{0-0} = 0b0;
7445 let Inst{13-12} = 0b10;
7446 let Inst{31-22} = 0b0001010100;
7447 let isPredicated = 1;
7448 let isTerminator = 1;
7449 let isBranch = 1;
7450 let isPredicatedNew = 1;
7451 let Uses = [P0];
7452 let Defs = [P0, PC];
7453 let BaseOpcode = "J4_cmpgtup0";
7454 let isTaken = Inst{13};
7455 let isExtendable = 1;
7456 let opExtendable = 2;
7457 let isExtentSigned = 1;
7458 let opExtentBits = 11;
7459 let opExtentAlign = 2;
7460 }
7461 def J4_cmpgtu_tp1_jump_nt : HInst<
7462 (outs),
7463 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7464 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7465 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7466 let Inst{0-0} = 0b0;
7467 let Inst{13-12} = 0b01;
7468 let Inst{31-22} = 0b0001010100;
7469 let isPredicated = 1;
7470 let isTerminator = 1;
7471 let isBranch = 1;
7472 let isPredicatedNew = 1;
7473 let Uses = [P1];
7474 let Defs = [P1, PC];
7475 let BaseOpcode = "J4_cmpgtup1";
7476 let isTaken = Inst{13};
7477 let isExtendable = 1;
7478 let opExtendable = 2;
7479 let isExtentSigned = 1;
7480 let opExtentBits = 11;
7481 let opExtentAlign = 2;
7482 }
7483 def J4_cmpgtu_tp1_jump_t : HInst<
7484 (outs),
7485 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7486 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7487 tc_92d1833c, TypeCJ>, Enc_6a5972, PredRel {
7488 let Inst{0-0} = 0b0;
7489 let Inst{13-12} = 0b11;
7490 let Inst{31-22} = 0b0001010100;
7491 let isPredicated = 1;
7492 let isTerminator = 1;
7493 let isBranch = 1;
7494 let isPredicatedNew = 1;
7495 let Uses = [P1];
7496 let Defs = [P1, PC];
7497 let BaseOpcode = "J4_cmpgtup1";
7498 let isTaken = Inst{13};
7499 let isExtendable = 1;
7500 let opExtendable = 2;
7501 let isExtentSigned = 1;
7502 let opExtentBits = 11;
7503 let opExtentAlign = 2;
7504 }
7505 def J4_cmpgtui_f_jumpnv_nt : HInst<
7506 (outs),
7507 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7508 "if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
7509 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
7510 let Inst{0-0} = 0b0;
7511 let Inst{13-13} = 0b0;
7512 let Inst{19-19} = 0b0;
7513 let Inst{31-22} = 0b0010010101;
7514 let isPredicated = 1;
7515 let isPredicatedFalse = 1;
7516 let isTerminator = 1;
7517 let isBranch = 1;
7518 let cofMax1 = 1;
7519 let isNewValue = 1;
7520 let Defs = [PC];
7521 let BaseOpcode = "J4_cmpgtuir";
7522 let isTaken = Inst{13};
7523 let isExtendable = 1;
7524 let opExtendable = 2;
7525 let isExtentSigned = 1;
7526 let opExtentBits = 11;
7527 let opExtentAlign = 2;
7528 let opNewValue = 0;
7529 }
7530 def J4_cmpgtui_f_jumpnv_t : HInst<
7531 (outs),
7532 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7533 "if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
7534 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
7535 let Inst{0-0} = 0b0;
7536 let Inst{13-13} = 0b1;
7537 let Inst{19-19} = 0b0;
7538 let Inst{31-22} = 0b0010010101;
7539 let isPredicated = 1;
7540 let isPredicatedFalse = 1;
7541 let isTerminator = 1;
7542 let isBranch = 1;
7543 let cofMax1 = 1;
7544 let isNewValue = 1;
7545 let Defs = [PC];
7546 let BaseOpcode = "J4_cmpgtuir";
7547 let isTaken = Inst{13};
7548 let isExtendable = 1;
7549 let opExtendable = 2;
7550 let isExtentSigned = 1;
7551 let opExtentBits = 11;
7552 let opExtentAlign = 2;
7553 let opNewValue = 0;
7554 }
7555 def J4_cmpgtui_fp0_jump_nt : HInst<
7556 (outs),
7557 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7558 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7559 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7560 let Inst{0-0} = 0b0;
7561 let Inst{13-13} = 0b0;
7562 let Inst{31-22} = 0b0001000101;
7563 let isPredicated = 1;
7564 let isPredicatedFalse = 1;
7565 let isTerminator = 1;
7566 let isBranch = 1;
7567 let isPredicatedNew = 1;
7568 let Uses = [P0];
7569 let Defs = [P0, PC];
7570 let BaseOpcode = "J4_cmpgtuip0";
7571 let isTaken = Inst{13};
7572 let isExtendable = 1;
7573 let opExtendable = 2;
7574 let isExtentSigned = 1;
7575 let opExtentBits = 11;
7576 let opExtentAlign = 2;
7577 }
7578 def J4_cmpgtui_fp0_jump_t : HInst<
7579 (outs),
7580 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7581 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
7582 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7583 let Inst{0-0} = 0b0;
7584 let Inst{13-13} = 0b1;
7585 let Inst{31-22} = 0b0001000101;
7586 let isPredicated = 1;
7587 let isPredicatedFalse = 1;
7588 let isTerminator = 1;
7589 let isBranch = 1;
7590 let isPredicatedNew = 1;
7591 let Uses = [P0];
7592 let Defs = [P0, PC];
7593 let BaseOpcode = "J4_cmpgtuip0";
7594 let isTaken = Inst{13};
7595 let isExtendable = 1;
7596 let opExtendable = 2;
7597 let isExtentSigned = 1;
7598 let opExtentBits = 11;
7599 let opExtentAlign = 2;
7600 }
7601 def J4_cmpgtui_fp1_jump_nt : HInst<
7602 (outs),
7603 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7604 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7605 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7606 let Inst{0-0} = 0b0;
7607 let Inst{13-13} = 0b0;
7608 let Inst{31-22} = 0b0001001101;
7609 let isPredicated = 1;
7610 let isPredicatedFalse = 1;
7611 let isTerminator = 1;
7612 let isBranch = 1;
7613 let isPredicatedNew = 1;
7614 let Uses = [P1];
7615 let Defs = [P1, PC];
7616 let BaseOpcode = "J4_cmpgtuip1";
7617 let isTaken = Inst{13};
7618 let isExtendable = 1;
7619 let opExtendable = 2;
7620 let isExtentSigned = 1;
7621 let opExtentBits = 11;
7622 let opExtentAlign = 2;
7623 }
7624 def J4_cmpgtui_fp1_jump_t : HInst<
7625 (outs),
7626 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7627 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
7628 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7629 let Inst{0-0} = 0b0;
7630 let Inst{13-13} = 0b1;
7631 let Inst{31-22} = 0b0001001101;
7632 let isPredicated = 1;
7633 let isPredicatedFalse = 1;
7634 let isTerminator = 1;
7635 let isBranch = 1;
7636 let isPredicatedNew = 1;
7637 let Uses = [P1];
7638 let Defs = [P1, PC];
7639 let BaseOpcode = "J4_cmpgtuip1";
7640 let isTaken = Inst{13};
7641 let isExtendable = 1;
7642 let opExtendable = 2;
7643 let isExtentSigned = 1;
7644 let opExtentBits = 11;
7645 let opExtentAlign = 2;
7646 }
7647 def J4_cmpgtui_t_jumpnv_nt : HInst<
7648 (outs),
7649 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7650 "if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
7651 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
7652 let Inst{0-0} = 0b0;
7653 let Inst{13-13} = 0b0;
7654 let Inst{19-19} = 0b0;
7655 let Inst{31-22} = 0b0010010100;
7656 let isPredicated = 1;
7657 let isTerminator = 1;
7658 let isBranch = 1;
7659 let cofMax1 = 1;
7660 let isNewValue = 1;
7661 let Defs = [PC];
7662 let BaseOpcode = "J4_cmpgtuir";
7663 let isTaken = Inst{13};
7664 let isExtendable = 1;
7665 let opExtendable = 2;
7666 let isExtentSigned = 1;
7667 let opExtentBits = 11;
7668 let opExtentAlign = 2;
7669 let opNewValue = 0;
7670 }
7671 def J4_cmpgtui_t_jumpnv_t : HInst<
7672 (outs),
7673 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7674 "if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
7675 tc_09faec3b, TypeNCJ>, Enc_eafd18, PredRel {
7676 let Inst{0-0} = 0b0;
7677 let Inst{13-13} = 0b1;
7678 let Inst{19-19} = 0b0;
7679 let Inst{31-22} = 0b0010010100;
7680 let isPredicated = 1;
7681 let isTerminator = 1;
7682 let isBranch = 1;
7683 let cofMax1 = 1;
7684 let isNewValue = 1;
7685 let Defs = [PC];
7686 let BaseOpcode = "J4_cmpgtuir";
7687 let isTaken = Inst{13};
7688 let isExtendable = 1;
7689 let opExtendable = 2;
7690 let isExtentSigned = 1;
7691 let opExtentBits = 11;
7692 let opExtentAlign = 2;
7693 let opNewValue = 0;
7694 }
7695 def J4_cmpgtui_tp0_jump_nt : HInst<
7696 (outs),
7697 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7698 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
7699 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7700 let Inst{0-0} = 0b0;
7701 let Inst{13-13} = 0b0;
7702 let Inst{31-22} = 0b0001000100;
7703 let isPredicated = 1;
7704 let isTerminator = 1;
7705 let isBranch = 1;
7706 let isPredicatedNew = 1;
7707 let Uses = [P0];
7708 let Defs = [P0, PC];
7709 let BaseOpcode = "J4_cmpgtuip0";
7710 let isTaken = Inst{13};
7711 let isExtendable = 1;
7712 let opExtendable = 2;
7713 let isExtentSigned = 1;
7714 let opExtentBits = 11;
7715 let opExtentAlign = 2;
7716 }
7717 def J4_cmpgtui_tp0_jump_t : HInst<
7718 (outs),
7719 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7720 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
7721 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7722 let Inst{0-0} = 0b0;
7723 let Inst{13-13} = 0b1;
7724 let Inst{31-22} = 0b0001000100;
7725 let isPredicated = 1;
7726 let isTerminator = 1;
7727 let isBranch = 1;
7728 let isPredicatedNew = 1;
7729 let Uses = [P0];
7730 let Defs = [P0, PC];
7731 let BaseOpcode = "J4_cmpgtuip0";
7732 let isTaken = Inst{13};
7733 let isExtendable = 1;
7734 let opExtendable = 2;
7735 let isExtentSigned = 1;
7736 let opExtentBits = 11;
7737 let opExtentAlign = 2;
7738 }
7739 def J4_cmpgtui_tp1_jump_nt : HInst<
7740 (outs),
7741 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7742 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
7743 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7744 let Inst{0-0} = 0b0;
7745 let Inst{13-13} = 0b0;
7746 let Inst{31-22} = 0b0001001100;
7747 let isPredicated = 1;
7748 let isTerminator = 1;
7749 let isBranch = 1;
7750 let isPredicatedNew = 1;
7751 let Uses = [P1];
7752 let Defs = [P1, PC];
7753 let BaseOpcode = "J4_cmpgtuip1";
7754 let isTaken = Inst{13};
7755 let isExtendable = 1;
7756 let opExtendable = 2;
7757 let isExtentSigned = 1;
7758 let opExtentBits = 11;
7759 let opExtentAlign = 2;
7760 }
7761 def J4_cmpgtui_tp1_jump_t : HInst<
7762 (outs),
7763 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7764 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
7765 tc_d108a090, TypeCJ>, Enc_14d27a, PredRel {
7766 let Inst{0-0} = 0b0;
7767 let Inst{13-13} = 0b1;
7768 let Inst{31-22} = 0b0001001100;
7769 let isPredicated = 1;
7770 let isTerminator = 1;
7771 let isBranch = 1;
7772 let isPredicatedNew = 1;
7773 let Uses = [P1];
7774 let Defs = [P1, PC];
7775 let BaseOpcode = "J4_cmpgtuip1";
7776 let isTaken = Inst{13};
7777 let isExtendable = 1;
7778 let opExtendable = 2;
7779 let isExtentSigned = 1;
7780 let opExtentBits = 11;
7781 let opExtentAlign = 2;
7782 }
7783 def J4_cmplt_f_jumpnv_nt : HInst<
7784 (outs),
7785 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7786 "if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
7787 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7788 let Inst{0-0} = 0b0;
7789 let Inst{13-13} = 0b0;
7790 let Inst{19-19} = 0b0;
7791 let Inst{31-22} = 0b0010000111;
7792 let isPredicated = 1;
7793 let isPredicatedFalse = 1;
7794 let isTerminator = 1;
7795 let isBranch = 1;
7796 let cofMax1 = 1;
7797 let isNewValue = 1;
7798 let Defs = [PC];
7799 let BaseOpcode = "J4_cmpltr";
7800 let isTaken = Inst{13};
7801 let isExtendable = 1;
7802 let opExtendable = 2;
7803 let isExtentSigned = 1;
7804 let opExtentBits = 11;
7805 let opExtentAlign = 2;
7806 let opNewValue = 1;
7807 }
7808 def J4_cmplt_f_jumpnv_t : HInst<
7809 (outs),
7810 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7811 "if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
7812 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7813 let Inst{0-0} = 0b0;
7814 let Inst{13-13} = 0b1;
7815 let Inst{19-19} = 0b0;
7816 let Inst{31-22} = 0b0010000111;
7817 let isPredicated = 1;
7818 let isPredicatedFalse = 1;
7819 let isTerminator = 1;
7820 let isBranch = 1;
7821 let cofMax1 = 1;
7822 let isNewValue = 1;
7823 let Defs = [PC];
7824 let BaseOpcode = "J4_cmpltr";
7825 let isTaken = Inst{13};
7826 let isExtendable = 1;
7827 let opExtendable = 2;
7828 let isExtentSigned = 1;
7829 let opExtentBits = 11;
7830 let opExtentAlign = 2;
7831 let opNewValue = 1;
7832 }
7833 def J4_cmplt_t_jumpnv_nt : HInst<
7834 (outs),
7835 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7836 "if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
7837 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7838 let Inst{0-0} = 0b0;
7839 let Inst{13-13} = 0b0;
7840 let Inst{19-19} = 0b0;
7841 let Inst{31-22} = 0b0010000110;
7842 let isPredicated = 1;
7843 let isTerminator = 1;
7844 let isBranch = 1;
7845 let cofMax1 = 1;
7846 let isNewValue = 1;
7847 let Defs = [PC];
7848 let BaseOpcode = "J4_cmpltr";
7849 let isTaken = Inst{13};
7850 let isExtendable = 1;
7851 let opExtendable = 2;
7852 let isExtentSigned = 1;
7853 let opExtentBits = 11;
7854 let opExtentAlign = 2;
7855 let opNewValue = 1;
7856 }
7857 def J4_cmplt_t_jumpnv_t : HInst<
7858 (outs),
7859 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7860 "if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
7861 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7862 let Inst{0-0} = 0b0;
7863 let Inst{13-13} = 0b1;
7864 let Inst{19-19} = 0b0;
7865 let Inst{31-22} = 0b0010000110;
7866 let isPredicated = 1;
7867 let isTerminator = 1;
7868 let isBranch = 1;
7869 let cofMax1 = 1;
7870 let isNewValue = 1;
7871 let Defs = [PC];
7872 let BaseOpcode = "J4_cmpltr";
7873 let isTaken = Inst{13};
7874 let isExtendable = 1;
7875 let opExtendable = 2;
7876 let isExtentSigned = 1;
7877 let opExtentBits = 11;
7878 let opExtentAlign = 2;
7879 let opNewValue = 1;
7880 }
7881 def J4_cmpltu_f_jumpnv_nt : HInst<
7882 (outs),
7883 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7884 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
7885 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7886 let Inst{0-0} = 0b0;
7887 let Inst{13-13} = 0b0;
7888 let Inst{19-19} = 0b0;
7889 let Inst{31-22} = 0b0010001001;
7890 let isPredicated = 1;
7891 let isPredicatedFalse = 1;
7892 let isTerminator = 1;
7893 let isBranch = 1;
7894 let cofMax1 = 1;
7895 let isNewValue = 1;
7896 let Defs = [PC];
7897 let BaseOpcode = "J4_cmpltur";
7898 let isTaken = Inst{13};
7899 let isExtendable = 1;
7900 let opExtendable = 2;
7901 let isExtentSigned = 1;
7902 let opExtentBits = 11;
7903 let opExtentAlign = 2;
7904 let opNewValue = 1;
7905 }
7906 def J4_cmpltu_f_jumpnv_t : HInst<
7907 (outs),
7908 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7909 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
7910 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7911 let Inst{0-0} = 0b0;
7912 let Inst{13-13} = 0b1;
7913 let Inst{19-19} = 0b0;
7914 let Inst{31-22} = 0b0010001001;
7915 let isPredicated = 1;
7916 let isPredicatedFalse = 1;
7917 let isTerminator = 1;
7918 let isBranch = 1;
7919 let cofMax1 = 1;
7920 let isNewValue = 1;
7921 let Defs = [PC];
7922 let BaseOpcode = "J4_cmpltur";
7923 let isTaken = Inst{13};
7924 let isExtendable = 1;
7925 let opExtendable = 2;
7926 let isExtentSigned = 1;
7927 let opExtentBits = 11;
7928 let opExtentAlign = 2;
7929 let opNewValue = 1;
7930 }
7931 def J4_cmpltu_t_jumpnv_nt : HInst<
7932 (outs),
7933 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7934 "if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
7935 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7936 let Inst{0-0} = 0b0;
7937 let Inst{13-13} = 0b0;
7938 let Inst{19-19} = 0b0;
7939 let Inst{31-22} = 0b0010001000;
7940 let isPredicated = 1;
7941 let isTerminator = 1;
7942 let isBranch = 1;
7943 let cofMax1 = 1;
7944 let isNewValue = 1;
7945 let Defs = [PC];
7946 let BaseOpcode = "J4_cmpltur";
7947 let isTaken = Inst{13};
7948 let isExtendable = 1;
7949 let opExtendable = 2;
7950 let isExtentSigned = 1;
7951 let opExtentBits = 11;
7952 let opExtentAlign = 2;
7953 let opNewValue = 1;
7954 }
7955 def J4_cmpltu_t_jumpnv_t : HInst<
7956 (outs),
7957 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
7958 "if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
7959 tc_3e61d314, TypeNCJ>, Enc_5de85f, PredRel {
7960 let Inst{0-0} = 0b0;
7961 let Inst{13-13} = 0b1;
7962 let Inst{19-19} = 0b0;
7963 let Inst{31-22} = 0b0010001000;
7964 let isPredicated = 1;
7965 let isTerminator = 1;
7966 let isBranch = 1;
7967 let cofMax1 = 1;
7968 let isNewValue = 1;
7969 let Defs = [PC];
7970 let BaseOpcode = "J4_cmpltur";
7971 let isTaken = Inst{13};
7972 let isExtendable = 1;
7973 let opExtendable = 2;
7974 let isExtentSigned = 1;
7975 let opExtentBits = 11;
7976 let opExtentAlign = 2;
7977 let opNewValue = 1;
7978 }
7979 def J4_hintjumpr : HInst<
7980 (outs),
7981 (ins IntRegs:$Rs32),
7982 "hintjr($Rs32)",
7983 tc_b08b653e, TypeJ>, Enc_ecbcc8 {
7984 let Inst{13-0} = 0b00000000000000;
7985 let Inst{31-21} = 0b01010010101;
7986 let isTerminator = 1;
7987 let isIndirectBranch = 1;
7988 let isBranch = 1;
7989 let cofMax1 = 1;
7990 }
7991 def J4_jumpseti : HInst<
7992 (outs GeneralSubRegs:$Rd16),
7993 (ins u6_0Imm:$II, b30_2Imm:$Ii),
7994 "$Rd16 = #$II ; jump $Ii",
7995 tc_1e062b18, TypeCJ>, Enc_9e4c3f {
7996 let Inst{0-0} = 0b0;
7997 let Inst{31-22} = 0b0001011000;
7998 let hasNewValue = 1;
7999 let opNewValue = 0;
8000 let isTerminator = 1;
8001 let isBranch = 1;
8002 let Defs = [PC];
8003 let isExtendable = 1;
8004 let opExtendable = 2;
8005 let isExtentSigned = 1;
8006 let opExtentBits = 11;
8007 let opExtentAlign = 2;
8008 }
8009 def J4_jumpsetr : HInst<
8010 (outs GeneralSubRegs:$Rd16),
8011 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8012 "$Rd16 = $Rs16 ; jump $Ii",
8013 tc_1e062b18, TypeCJ>, Enc_66bce1 {
8014 let Inst{0-0} = 0b0;
8015 let Inst{13-12} = 0b00;
8016 let Inst{31-22} = 0b0001011100;
8017 let hasNewValue = 1;
8018 let opNewValue = 0;
8019 let isTerminator = 1;
8020 let isBranch = 1;
8021 let Defs = [PC];
8022 let isExtendable = 1;
8023 let opExtendable = 2;
8024 let isExtentSigned = 1;
8025 let opExtentBits = 11;
8026 let opExtentAlign = 2;
8027 }
8028 def J4_tstbit0_f_jumpnv_nt : HInst<
8029 (outs),
8030 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8031 "if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8032 tc_dbe218dd, TypeNCJ>, Enc_69d63b {
8033 let Inst{0-0} = 0b0;
8034 let Inst{13-8} = 0b000000;
8035 let Inst{19-19} = 0b0;
8036 let Inst{31-22} = 0b0010010111;
8037 let isPredicated = 1;
8038 let isPredicatedFalse = 1;
8039 let isTerminator = 1;
8040 let isBranch = 1;
8041 let cofMax1 = 1;
8042 let isNewValue = 1;
8043 let Defs = [PC];
8044 let isTaken = Inst{13};
8045 let isExtendable = 1;
8046 let opExtendable = 1;
8047 let isExtentSigned = 1;
8048 let opExtentBits = 11;
8049 let opExtentAlign = 2;
8050 let opNewValue = 0;
8051 }
8052 def J4_tstbit0_f_jumpnv_t : HInst<
8053 (outs),
8054 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8055 "if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8056 tc_dbe218dd, TypeNCJ>, Enc_69d63b {
8057 let Inst{0-0} = 0b0;
8058 let Inst{13-8} = 0b100000;
8059 let Inst{19-19} = 0b0;
8060 let Inst{31-22} = 0b0010010111;
8061 let isPredicated = 1;
8062 let isPredicatedFalse = 1;
8063 let isTerminator = 1;
8064 let isBranch = 1;
8065 let cofMax1 = 1;
8066 let isNewValue = 1;
8067 let Defs = [PC];
8068 let isTaken = Inst{13};
8069 let isExtendable = 1;
8070 let opExtendable = 1;
8071 let isExtentSigned = 1;
8072 let opExtentBits = 11;
8073 let opExtentAlign = 2;
8074 let opNewValue = 0;
8075 }
8076 def J4_tstbit0_fp0_jump_nt : HInst<
8077 (outs),
8078 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8079 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8080 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8081 let Inst{0-0} = 0b0;
8082 let Inst{13-8} = 0b000011;
8083 let Inst{31-22} = 0b0001000111;
8084 let isPredicated = 1;
8085 let isPredicatedFalse = 1;
8086 let isTerminator = 1;
8087 let isBranch = 1;
8088 let isPredicatedNew = 1;
8089 let Uses = [P0];
8090 let Defs = [P0, PC];
8091 let isTaken = Inst{13};
8092 let isExtendable = 1;
8093 let opExtendable = 1;
8094 let isExtentSigned = 1;
8095 let opExtentBits = 11;
8096 let opExtentAlign = 2;
8097 }
8098 def J4_tstbit0_fp0_jump_t : HInst<
8099 (outs),
8100 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8101 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8102 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8103 let Inst{0-0} = 0b0;
8104 let Inst{13-8} = 0b100011;
8105 let Inst{31-22} = 0b0001000111;
8106 let isPredicated = 1;
8107 let isPredicatedFalse = 1;
8108 let isTerminator = 1;
8109 let isBranch = 1;
8110 let isPredicatedNew = 1;
8111 let Uses = [P0];
8112 let Defs = [P0, PC];
8113 let isTaken = Inst{13};
8114 let isExtendable = 1;
8115 let opExtendable = 1;
8116 let isExtentSigned = 1;
8117 let opExtentBits = 11;
8118 let opExtentAlign = 2;
8119 }
8120 def J4_tstbit0_fp1_jump_nt : HInst<
8121 (outs),
8122 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8123 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8124 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8125 let Inst{0-0} = 0b0;
8126 let Inst{13-8} = 0b000011;
8127 let Inst{31-22} = 0b0001001111;
8128 let isPredicated = 1;
8129 let isPredicatedFalse = 1;
8130 let isTerminator = 1;
8131 let isBranch = 1;
8132 let isPredicatedNew = 1;
8133 let Uses = [P1];
8134 let Defs = [P1, PC];
8135 let isTaken = Inst{13};
8136 let isExtendable = 1;
8137 let opExtendable = 1;
8138 let isExtentSigned = 1;
8139 let opExtentBits = 11;
8140 let opExtentAlign = 2;
8141 }
8142 def J4_tstbit0_fp1_jump_t : HInst<
8143 (outs),
8144 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8145 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8146 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8147 let Inst{0-0} = 0b0;
8148 let Inst{13-8} = 0b100011;
8149 let Inst{31-22} = 0b0001001111;
8150 let isPredicated = 1;
8151 let isPredicatedFalse = 1;
8152 let isTerminator = 1;
8153 let isBranch = 1;
8154 let isPredicatedNew = 1;
8155 let Uses = [P1];
8156 let Defs = [P1, PC];
8157 let isTaken = Inst{13};
8158 let isExtendable = 1;
8159 let opExtendable = 1;
8160 let isExtentSigned = 1;
8161 let opExtentBits = 11;
8162 let opExtentAlign = 2;
8163 }
8164 def J4_tstbit0_t_jumpnv_nt : HInst<
8165 (outs),
8166 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8167 "if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8168 tc_dbe218dd, TypeNCJ>, Enc_69d63b {
8169 let Inst{0-0} = 0b0;
8170 let Inst{13-8} = 0b000000;
8171 let Inst{19-19} = 0b0;
8172 let Inst{31-22} = 0b0010010110;
8173 let isPredicated = 1;
8174 let isTerminator = 1;
8175 let isBranch = 1;
8176 let cofMax1 = 1;
8177 let isNewValue = 1;
8178 let Defs = [PC];
8179 let isTaken = Inst{13};
8180 let isExtendable = 1;
8181 let opExtendable = 1;
8182 let isExtentSigned = 1;
8183 let opExtentBits = 11;
8184 let opExtentAlign = 2;
8185 let opNewValue = 0;
8186 }
8187 def J4_tstbit0_t_jumpnv_t : HInst<
8188 (outs),
8189 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8190 "if (tstbit($Ns8.new,#0)) jump:t $Ii",
8191 tc_dbe218dd, TypeNCJ>, Enc_69d63b {
8192 let Inst{0-0} = 0b0;
8193 let Inst{13-8} = 0b100000;
8194 let Inst{19-19} = 0b0;
8195 let Inst{31-22} = 0b0010010110;
8196 let isPredicated = 1;
8197 let isTerminator = 1;
8198 let isBranch = 1;
8199 let cofMax1 = 1;
8200 let isNewValue = 1;
8201 let Defs = [PC];
8202 let isTaken = Inst{13};
8203 let isExtendable = 1;
8204 let opExtendable = 1;
8205 let isExtentSigned = 1;
8206 let opExtentBits = 11;
8207 let opExtentAlign = 2;
8208 let opNewValue = 0;
8209 }
8210 def J4_tstbit0_tp0_jump_nt : HInst<
8211 (outs),
8212 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8213 "p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8214 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8215 let Inst{0-0} = 0b0;
8216 let Inst{13-8} = 0b000011;
8217 let Inst{31-22} = 0b0001000110;
8218 let isPredicated = 1;
8219 let isTerminator = 1;
8220 let isBranch = 1;
8221 let isPredicatedNew = 1;
8222 let Uses = [P0];
8223 let Defs = [P0, PC];
8224 let isTaken = Inst{13};
8225 let isExtendable = 1;
8226 let opExtendable = 1;
8227 let isExtentSigned = 1;
8228 let opExtentBits = 11;
8229 let opExtentAlign = 2;
8230 }
8231 def J4_tstbit0_tp0_jump_t : HInst<
8232 (outs),
8233 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8234 "p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8235 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8236 let Inst{0-0} = 0b0;
8237 let Inst{13-8} = 0b100011;
8238 let Inst{31-22} = 0b0001000110;
8239 let isPredicated = 1;
8240 let isTerminator = 1;
8241 let isBranch = 1;
8242 let isPredicatedNew = 1;
8243 let Uses = [P0];
8244 let Defs = [P0, PC];
8245 let isTaken = Inst{13};
8246 let isExtendable = 1;
8247 let opExtendable = 1;
8248 let isExtentSigned = 1;
8249 let opExtentBits = 11;
8250 let opExtentAlign = 2;
8251 }
8252 def J4_tstbit0_tp1_jump_nt : HInst<
8253 (outs),
8254 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8255 "p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8256 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8257 let Inst{0-0} = 0b0;
8258 let Inst{13-8} = 0b000011;
8259 let Inst{31-22} = 0b0001001110;
8260 let isPredicated = 1;
8261 let isTerminator = 1;
8262 let isBranch = 1;
8263 let isPredicatedNew = 1;
8264 let Uses = [P1];
8265 let Defs = [P1, PC];
8266 let isTaken = Inst{13};
8267 let isExtendable = 1;
8268 let opExtendable = 1;
8269 let isExtentSigned = 1;
8270 let opExtentBits = 11;
8271 let opExtentAlign = 2;
8272 }
8273 def J4_tstbit0_tp1_jump_t : HInst<
8274 (outs),
8275 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8276 "p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8277 tc_eb07ef6f, TypeCJ>, Enc_ad1c74 {
8278 let Inst{0-0} = 0b0;
8279 let Inst{13-8} = 0b100011;
8280 let Inst{31-22} = 0b0001001110;
8281 let isPredicated = 1;
8282 let isTerminator = 1;
8283 let isBranch = 1;
8284 let isPredicatedNew = 1;
8285 let Uses = [P1];
8286 let Defs = [P1, PC];
8287 let isTaken = Inst{13};
8288 let isExtendable = 1;
8289 let opExtendable = 1;
8290 let isExtentSigned = 1;
8291 let opExtentBits = 11;
8292 let opExtentAlign = 2;
8293 }
8294 def L2_deallocframe : HInst<
8295 (outs),
8296 (ins),
8297 "deallocframe",
8298 tc_c1dbc916, TypeLD>, Enc_3a3d62 {
8299 let Inst{4-0} = 0b11110;
8300 let Inst{13-5} = 0b000000000;
8301 let Inst{31-21} = 0b10010000000;
8302 let Inst{20-16} = 0b11110;
8303 let accessSize = DoubleWordAccess;
8304 let mayLoad = 1;
8305 let Uses = [R30];
8306 let Defs = [R29, R30, R31];
8307 }
8308 def L2_loadalignb_io : HInst<
8309 (outs DoubleRegs:$Ryy32),
8310 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8311 "$Ryy32 = memb_fifo($Rs32+#$Ii)",
8312 tc_14da557c, TypeLD>, Enc_a27588 {
8313 let Inst{24-21} = 0b0100;
8314 let Inst{31-27} = 0b10010;
8315 let addrMode = BaseImmOffset;
8316 let accessSize = ByteAccess;
8317 let mayLoad = 1;
8318 let isExtendable = 1;
8319 let opExtendable = 3;
8320 let isExtentSigned = 1;
8321 let opExtentBits = 11;
8322 let opExtentAlign = 0;
8323 let Constraints = "$Ryy32 = $Ryy32in";
8324 }
8325 def L2_loadalignb_pbr : HInst<
8326 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8327 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8328 "$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8329 tc_ae762521, TypeLD>, Enc_1f5d8f {
8330 let Inst{12-5} = 0b00000000;
8331 let Inst{31-21} = 0b10011110100;
8332 let accessSize = ByteAccess;
8333 let mayLoad = 1;
8334 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8335 }
8336 def L2_loadalignb_pci : HInst<
8337 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8338 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8339 "$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8340 tc_d2a33af5, TypeLD>, Enc_74aef2 {
8341 let Inst{12-9} = 0b0000;
8342 let Inst{31-21} = 0b10011000100;
8343 let addrMode = PostInc;
8344 let accessSize = ByteAccess;
8345 let mayLoad = 1;
8346 let Uses = [CS];
8347 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8348 }
8349 def L2_loadalignb_pcr : HInst<
8350 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8351 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8352 "$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8353 tc_ae762521, TypeLD>, Enc_1f5d8f {
8354 let Inst{12-5} = 0b00010000;
8355 let Inst{31-21} = 0b10011000100;
8356 let addrMode = PostInc;
8357 let accessSize = ByteAccess;
8358 let mayLoad = 1;
8359 let Uses = [CS];
8360 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8361 }
8362 def L2_loadalignb_pi : HInst<
8363 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8364 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8365 "$Ryy32 = memb_fifo($Rx32++#$Ii)",
8366 tc_ae762521, TypeLD>, Enc_6b197f {
8367 let Inst{13-9} = 0b00000;
8368 let Inst{31-21} = 0b10011010100;
8369 let addrMode = PostInc;
8370 let accessSize = ByteAccess;
8371 let mayLoad = 1;
8372 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8373 }
8374 def L2_loadalignb_pr : HInst<
8375 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8376 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8377 "$Ryy32 = memb_fifo($Rx32++$Mu2)",
8378 tc_ae762521, TypeLD>, Enc_1f5d8f {
8379 let Inst{12-5} = 0b00000000;
8380 let Inst{31-21} = 0b10011100100;
8381 let addrMode = PostInc;
8382 let accessSize = ByteAccess;
8383 let mayLoad = 1;
8384 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8385 }
8386 def L2_loadalignb_zomap : HInst<
8387 (outs DoubleRegs:$Ryy32),
8388 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8389 "$Ryy32 = memb_fifo($Rs32)",
8390 tc_14da557c, TypeMAPPING> {
8391 let isPseudo = 1;
8392 let isCodeGenOnly = 1;
8393 let Constraints = "$Ryy32 = $Ryy32in";
8394 }
8395 def L2_loadalignh_io : HInst<
8396 (outs DoubleRegs:$Ryy32),
8397 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8398 "$Ryy32 = memh_fifo($Rs32+#$Ii)",
8399 tc_14da557c, TypeLD>, Enc_5cd7e9 {
8400 let Inst{24-21} = 0b0010;
8401 let Inst{31-27} = 0b10010;
8402 let addrMode = BaseImmOffset;
8403 let accessSize = HalfWordAccess;
8404 let mayLoad = 1;
8405 let isExtendable = 1;
8406 let opExtendable = 3;
8407 let isExtentSigned = 1;
8408 let opExtentBits = 12;
8409 let opExtentAlign = 1;
8410 let Constraints = "$Ryy32 = $Ryy32in";
8411 }
8412 def L2_loadalignh_pbr : HInst<
8413 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8414 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8415 "$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8416 tc_ae762521, TypeLD>, Enc_1f5d8f {
8417 let Inst{12-5} = 0b00000000;
8418 let Inst{31-21} = 0b10011110010;
8419 let accessSize = HalfWordAccess;
8420 let mayLoad = 1;
8421 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8422 }
8423 def L2_loadalignh_pci : HInst<
8424 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8425 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8426 "$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
8427 tc_d2a33af5, TypeLD>, Enc_9e2e1c {
8428 let Inst{12-9} = 0b0000;
8429 let Inst{31-21} = 0b10011000010;
8430 let addrMode = PostInc;
8431 let accessSize = HalfWordAccess;
8432 let mayLoad = 1;
8433 let Uses = [CS];
8434 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8435 }
8436 def L2_loadalignh_pcr : HInst<
8437 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8438 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8439 "$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
8440 tc_ae762521, TypeLD>, Enc_1f5d8f {
8441 let Inst{12-5} = 0b00010000;
8442 let Inst{31-21} = 0b10011000010;
8443 let addrMode = PostInc;
8444 let accessSize = HalfWordAccess;
8445 let mayLoad = 1;
8446 let Uses = [CS];
8447 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8448 }
8449 def L2_loadalignh_pi : HInst<
8450 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8451 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
8452 "$Ryy32 = memh_fifo($Rx32++#$Ii)",
8453 tc_ae762521, TypeLD>, Enc_bd1cbc {
8454 let Inst{13-9} = 0b00000;
8455 let Inst{31-21} = 0b10011010010;
8456 let addrMode = PostInc;
8457 let accessSize = HalfWordAccess;
8458 let mayLoad = 1;
8459 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8460 }
8461 def L2_loadalignh_pr : HInst<
8462 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8463 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8464 "$Ryy32 = memh_fifo($Rx32++$Mu2)",
8465 tc_ae762521, TypeLD>, Enc_1f5d8f {
8466 let Inst{12-5} = 0b00000000;
8467 let Inst{31-21} = 0b10011100010;
8468 let addrMode = PostInc;
8469 let accessSize = HalfWordAccess;
8470 let mayLoad = 1;
8471 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8472 }
8473 def L2_loadalignh_zomap : HInst<
8474 (outs DoubleRegs:$Ryy32),
8475 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8476 "$Ryy32 = memh_fifo($Rs32)",
8477 tc_14da557c, TypeMAPPING> {
8478 let isPseudo = 1;
8479 let isCodeGenOnly = 1;
8480 let Constraints = "$Ryy32 = $Ryy32in";
8481 }
8482 def L2_loadbsw2_io : HInst<
8483 (outs IntRegs:$Rd32),
8484 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
8485 "$Rd32 = membh($Rs32+#$Ii)",
8486 tc_bf6fa601, TypeLD>, Enc_de0214 {
8487 let Inst{24-21} = 0b0001;
8488 let Inst{31-27} = 0b10010;
8489 let hasNewValue = 1;
8490 let opNewValue = 0;
8491 let addrMode = BaseImmOffset;
8492 let accessSize = HalfWordAccess;
8493 let mayLoad = 1;
8494 let isExtendable = 1;
8495 let opExtendable = 2;
8496 let isExtentSigned = 1;
8497 let opExtentBits = 12;
8498 let opExtentAlign = 1;
8499 }
8500 def L2_loadbsw2_pbr : HInst<
8501 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8502 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8503 "$Rd32 = membh($Rx32++$Mu2:brev)",
8504 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8505 let Inst{12-5} = 0b00000000;
8506 let Inst{31-21} = 0b10011110001;
8507 let hasNewValue = 1;
8508 let opNewValue = 0;
8509 let accessSize = HalfWordAccess;
8510 let mayLoad = 1;
8511 let Constraints = "$Rx32 = $Rx32in";
8512 }
8513 def L2_loadbsw2_pci : HInst<
8514 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8515 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8516 "$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
8517 tc_3eab77bd, TypeLD>, Enc_e83554 {
8518 let Inst{12-9} = 0b0000;
8519 let Inst{31-21} = 0b10011000001;
8520 let hasNewValue = 1;
8521 let opNewValue = 0;
8522 let addrMode = PostInc;
8523 let accessSize = HalfWordAccess;
8524 let mayLoad = 1;
8525 let Uses = [CS];
8526 let Constraints = "$Rx32 = $Rx32in";
8527 }
8528 def L2_loadbsw2_pcr : HInst<
8529 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8530 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8531 "$Rd32 = membh($Rx32++I:circ($Mu2))",
8532 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8533 let Inst{12-5} = 0b00010000;
8534 let Inst{31-21} = 0b10011000001;
8535 let hasNewValue = 1;
8536 let opNewValue = 0;
8537 let addrMode = PostInc;
8538 let accessSize = HalfWordAccess;
8539 let mayLoad = 1;
8540 let Uses = [CS];
8541 let Constraints = "$Rx32 = $Rx32in";
8542 }
8543 def L2_loadbsw2_pi : HInst<
8544 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8545 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
8546 "$Rd32 = membh($Rx32++#$Ii)",
8547 tc_65dc7cc4, TypeLD>, Enc_152467 {
8548 let Inst{13-9} = 0b00000;
8549 let Inst{31-21} = 0b10011010001;
8550 let hasNewValue = 1;
8551 let opNewValue = 0;
8552 let addrMode = PostInc;
8553 let accessSize = HalfWordAccess;
8554 let mayLoad = 1;
8555 let Constraints = "$Rx32 = $Rx32in";
8556 }
8557 def L2_loadbsw2_pr : HInst<
8558 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8559 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8560 "$Rd32 = membh($Rx32++$Mu2)",
8561 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8562 let Inst{12-5} = 0b00000000;
8563 let Inst{31-21} = 0b10011100001;
8564 let hasNewValue = 1;
8565 let opNewValue = 0;
8566 let addrMode = PostInc;
8567 let accessSize = HalfWordAccess;
8568 let mayLoad = 1;
8569 let Constraints = "$Rx32 = $Rx32in";
8570 }
8571 def L2_loadbsw2_zomap : HInst<
8572 (outs IntRegs:$Rd32),
8573 (ins IntRegs:$Rs32),
8574 "$Rd32 = membh($Rs32)",
8575 tc_bf6fa601, TypeMAPPING> {
8576 let hasNewValue = 1;
8577 let opNewValue = 0;
8578 let isPseudo = 1;
8579 let isCodeGenOnly = 1;
8580 }
8581 def L2_loadbsw4_io : HInst<
8582 (outs DoubleRegs:$Rdd32),
8583 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
8584 "$Rdd32 = membh($Rs32+#$Ii)",
8585 tc_bf6fa601, TypeLD>, Enc_2d7491 {
8586 let Inst{24-21} = 0b0111;
8587 let Inst{31-27} = 0b10010;
8588 let addrMode = BaseImmOffset;
8589 let accessSize = WordAccess;
8590 let mayLoad = 1;
8591 let isExtendable = 1;
8592 let opExtendable = 2;
8593 let isExtentSigned = 1;
8594 let opExtentBits = 13;
8595 let opExtentAlign = 2;
8596 }
8597 def L2_loadbsw4_pbr : HInst<
8598 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8599 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8600 "$Rdd32 = membh($Rx32++$Mu2:brev)",
8601 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8602 let Inst{12-5} = 0b00000000;
8603 let Inst{31-21} = 0b10011110111;
8604 let accessSize = WordAccess;
8605 let mayLoad = 1;
8606 let Constraints = "$Rx32 = $Rx32in";
8607 }
8608 def L2_loadbsw4_pci : HInst<
8609 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8610 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
8611 "$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
8612 tc_3eab77bd, TypeLD>, Enc_70b24b {
8613 let Inst{12-9} = 0b0000;
8614 let Inst{31-21} = 0b10011000111;
8615 let addrMode = PostInc;
8616 let accessSize = WordAccess;
8617 let mayLoad = 1;
8618 let Uses = [CS];
8619 let Constraints = "$Rx32 = $Rx32in";
8620 }
8621 def L2_loadbsw4_pcr : HInst<
8622 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8623 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8624 "$Rdd32 = membh($Rx32++I:circ($Mu2))",
8625 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8626 let Inst{12-5} = 0b00010000;
8627 let Inst{31-21} = 0b10011000111;
8628 let addrMode = PostInc;
8629 let accessSize = WordAccess;
8630 let mayLoad = 1;
8631 let Uses = [CS];
8632 let Constraints = "$Rx32 = $Rx32in";
8633 }
8634 def L2_loadbsw4_pi : HInst<
8635 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8636 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
8637 "$Rdd32 = membh($Rx32++#$Ii)",
8638 tc_65dc7cc4, TypeLD>, Enc_71f1b4 {
8639 let Inst{13-9} = 0b00000;
8640 let Inst{31-21} = 0b10011010111;
8641 let addrMode = PostInc;
8642 let accessSize = WordAccess;
8643 let mayLoad = 1;
8644 let Constraints = "$Rx32 = $Rx32in";
8645 }
8646 def L2_loadbsw4_pr : HInst<
8647 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8648 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8649 "$Rdd32 = membh($Rx32++$Mu2)",
8650 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8651 let Inst{12-5} = 0b00000000;
8652 let Inst{31-21} = 0b10011100111;
8653 let addrMode = PostInc;
8654 let accessSize = WordAccess;
8655 let mayLoad = 1;
8656 let Constraints = "$Rx32 = $Rx32in";
8657 }
8658 def L2_loadbsw4_zomap : HInst<
8659 (outs DoubleRegs:$Rdd32),
8660 (ins IntRegs:$Rs32),
8661 "$Rdd32 = membh($Rs32)",
8662 tc_bf6fa601, TypeMAPPING> {
8663 let isPseudo = 1;
8664 let isCodeGenOnly = 1;
8665 }
8666 def L2_loadbzw2_io : HInst<
8667 (outs IntRegs:$Rd32),
8668 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
8669 "$Rd32 = memubh($Rs32+#$Ii)",
8670 tc_bf6fa601, TypeLD>, Enc_de0214 {
8671 let Inst{24-21} = 0b0011;
8672 let Inst{31-27} = 0b10010;
8673 let hasNewValue = 1;
8674 let opNewValue = 0;
8675 let addrMode = BaseImmOffset;
8676 let accessSize = HalfWordAccess;
8677 let mayLoad = 1;
8678 let isExtendable = 1;
8679 let opExtendable = 2;
8680 let isExtentSigned = 1;
8681 let opExtentBits = 12;
8682 let opExtentAlign = 1;
8683 }
8684 def L2_loadbzw2_pbr : HInst<
8685 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8686 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8687 "$Rd32 = memubh($Rx32++$Mu2:brev)",
8688 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8689 let Inst{12-5} = 0b00000000;
8690 let Inst{31-21} = 0b10011110011;
8691 let hasNewValue = 1;
8692 let opNewValue = 0;
8693 let accessSize = HalfWordAccess;
8694 let mayLoad = 1;
8695 let Constraints = "$Rx32 = $Rx32in";
8696 }
8697 def L2_loadbzw2_pci : HInst<
8698 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8699 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8700 "$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
8701 tc_3eab77bd, TypeLD>, Enc_e83554 {
8702 let Inst{12-9} = 0b0000;
8703 let Inst{31-21} = 0b10011000011;
8704 let hasNewValue = 1;
8705 let opNewValue = 0;
8706 let addrMode = PostInc;
8707 let accessSize = HalfWordAccess;
8708 let mayLoad = 1;
8709 let Uses = [CS];
8710 let Constraints = "$Rx32 = $Rx32in";
8711 }
8712 def L2_loadbzw2_pcr : HInst<
8713 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8714 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8715 "$Rd32 = memubh($Rx32++I:circ($Mu2))",
8716 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8717 let Inst{12-5} = 0b00010000;
8718 let Inst{31-21} = 0b10011000011;
8719 let hasNewValue = 1;
8720 let opNewValue = 0;
8721 let addrMode = PostInc;
8722 let accessSize = HalfWordAccess;
8723 let mayLoad = 1;
8724 let Uses = [CS];
8725 let Constraints = "$Rx32 = $Rx32in";
8726 }
8727 def L2_loadbzw2_pi : HInst<
8728 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8729 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
8730 "$Rd32 = memubh($Rx32++#$Ii)",
8731 tc_65dc7cc4, TypeLD>, Enc_152467 {
8732 let Inst{13-9} = 0b00000;
8733 let Inst{31-21} = 0b10011010011;
8734 let hasNewValue = 1;
8735 let opNewValue = 0;
8736 let addrMode = PostInc;
8737 let accessSize = HalfWordAccess;
8738 let mayLoad = 1;
8739 let Constraints = "$Rx32 = $Rx32in";
8740 }
8741 def L2_loadbzw2_pr : HInst<
8742 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8743 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8744 "$Rd32 = memubh($Rx32++$Mu2)",
8745 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8746 let Inst{12-5} = 0b00000000;
8747 let Inst{31-21} = 0b10011100011;
8748 let hasNewValue = 1;
8749 let opNewValue = 0;
8750 let addrMode = PostInc;
8751 let accessSize = HalfWordAccess;
8752 let mayLoad = 1;
8753 let Constraints = "$Rx32 = $Rx32in";
8754 }
8755 def L2_loadbzw2_zomap : HInst<
8756 (outs IntRegs:$Rd32),
8757 (ins IntRegs:$Rs32),
8758 "$Rd32 = memubh($Rs32)",
8759 tc_bf6fa601, TypeMAPPING> {
8760 let hasNewValue = 1;
8761 let opNewValue = 0;
8762 let isPseudo = 1;
8763 let isCodeGenOnly = 1;
8764 }
8765 def L2_loadbzw4_io : HInst<
8766 (outs DoubleRegs:$Rdd32),
8767 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
8768 "$Rdd32 = memubh($Rs32+#$Ii)",
8769 tc_bf6fa601, TypeLD>, Enc_2d7491 {
8770 let Inst{24-21} = 0b0101;
8771 let Inst{31-27} = 0b10010;
8772 let addrMode = BaseImmOffset;
8773 let accessSize = WordAccess;
8774 let mayLoad = 1;
8775 let isExtendable = 1;
8776 let opExtendable = 2;
8777 let isExtentSigned = 1;
8778 let opExtentBits = 13;
8779 let opExtentAlign = 2;
8780 }
8781 def L2_loadbzw4_pbr : HInst<
8782 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8783 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8784 "$Rdd32 = memubh($Rx32++$Mu2:brev)",
8785 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8786 let Inst{12-5} = 0b00000000;
8787 let Inst{31-21} = 0b10011110101;
8788 let accessSize = WordAccess;
8789 let mayLoad = 1;
8790 let Constraints = "$Rx32 = $Rx32in";
8791 }
8792 def L2_loadbzw4_pci : HInst<
8793 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8794 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
8795 "$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
8796 tc_3eab77bd, TypeLD>, Enc_70b24b {
8797 let Inst{12-9} = 0b0000;
8798 let Inst{31-21} = 0b10011000101;
8799 let addrMode = PostInc;
8800 let accessSize = WordAccess;
8801 let mayLoad = 1;
8802 let Uses = [CS];
8803 let Constraints = "$Rx32 = $Rx32in";
8804 }
8805 def L2_loadbzw4_pcr : HInst<
8806 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8807 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8808 "$Rdd32 = memubh($Rx32++I:circ($Mu2))",
8809 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8810 let Inst{12-5} = 0b00010000;
8811 let Inst{31-21} = 0b10011000101;
8812 let addrMode = PostInc;
8813 let accessSize = WordAccess;
8814 let mayLoad = 1;
8815 let Uses = [CS];
8816 let Constraints = "$Rx32 = $Rx32in";
8817 }
8818 def L2_loadbzw4_pi : HInst<
8819 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8820 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
8821 "$Rdd32 = memubh($Rx32++#$Ii)",
8822 tc_65dc7cc4, TypeLD>, Enc_71f1b4 {
8823 let Inst{13-9} = 0b00000;
8824 let Inst{31-21} = 0b10011010101;
8825 let addrMode = PostInc;
8826 let accessSize = WordAccess;
8827 let mayLoad = 1;
8828 let Constraints = "$Rx32 = $Rx32in";
8829 }
8830 def L2_loadbzw4_pr : HInst<
8831 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8832 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8833 "$Rdd32 = memubh($Rx32++$Mu2)",
8834 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8835 let Inst{12-5} = 0b00000000;
8836 let Inst{31-21} = 0b10011100101;
8837 let addrMode = PostInc;
8838 let accessSize = WordAccess;
8839 let mayLoad = 1;
8840 let Constraints = "$Rx32 = $Rx32in";
8841 }
8842 def L2_loadbzw4_zomap : HInst<
8843 (outs DoubleRegs:$Rdd32),
8844 (ins IntRegs:$Rs32),
8845 "$Rdd32 = memubh($Rs32)",
8846 tc_bf6fa601, TypeMAPPING> {
8847 let isPseudo = 1;
8848 let isCodeGenOnly = 1;
8849 }
8850 def L2_loadrb_io : HInst<
8851 (outs IntRegs:$Rd32),
8852 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
8853 "$Rd32 = memb($Rs32+#$Ii)",
8854 tc_bf6fa601, TypeLD>, Enc_211aaa, AddrModeRel {
8855 let Inst{24-21} = 0b1000;
8856 let Inst{31-27} = 0b10010;
8857 let hasNewValue = 1;
8858 let opNewValue = 0;
8859 let addrMode = BaseImmOffset;
8860 let accessSize = ByteAccess;
8861 let mayLoad = 1;
8862 let CextOpcode = "L2_loadrb";
8863 let BaseOpcode = "L2_loadrb_io";
8864 let isPredicable = 1;
8865 let isExtendable = 1;
8866 let opExtendable = 2;
8867 let isExtentSigned = 1;
8868 let opExtentBits = 11;
8869 let opExtentAlign = 0;
8870 }
8871 def L2_loadrb_pbr : HInst<
8872 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8873 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8874 "$Rd32 = memb($Rx32++$Mu2:brev)",
8875 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8876 let Inst{12-5} = 0b00000000;
8877 let Inst{31-21} = 0b10011111000;
8878 let hasNewValue = 1;
8879 let opNewValue = 0;
8880 let accessSize = ByteAccess;
8881 let mayLoad = 1;
8882 let Constraints = "$Rx32 = $Rx32in";
8883 }
8884 def L2_loadrb_pci : HInst<
8885 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8886 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8887 "$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
8888 tc_3eab77bd, TypeLD>, Enc_e0a47a {
8889 let Inst{12-9} = 0b0000;
8890 let Inst{31-21} = 0b10011001000;
8891 let hasNewValue = 1;
8892 let opNewValue = 0;
8893 let addrMode = PostInc;
8894 let accessSize = ByteAccess;
8895 let mayLoad = 1;
8896 let Uses = [CS];
8897 let Constraints = "$Rx32 = $Rx32in";
8898 }
8899 def L2_loadrb_pcr : HInst<
8900 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8901 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8902 "$Rd32 = memb($Rx32++I:circ($Mu2))",
8903 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8904 let Inst{12-5} = 0b00010000;
8905 let Inst{31-21} = 0b10011001000;
8906 let hasNewValue = 1;
8907 let opNewValue = 0;
8908 let addrMode = PostInc;
8909 let accessSize = ByteAccess;
8910 let mayLoad = 1;
8911 let Uses = [CS];
8912 let Constraints = "$Rx32 = $Rx32in";
8913 }
8914 def L2_loadrb_pi : HInst<
8915 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8916 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
8917 "$Rd32 = memb($Rx32++#$Ii)",
8918 tc_65dc7cc4, TypeLD>, Enc_222336, PredNewRel {
8919 let Inst{13-9} = 0b00000;
8920 let Inst{31-21} = 0b10011011000;
8921 let hasNewValue = 1;
8922 let opNewValue = 0;
8923 let addrMode = PostInc;
8924 let accessSize = ByteAccess;
8925 let mayLoad = 1;
8926 let BaseOpcode = "L2_loadrb_pi";
8927 let isPredicable = 1;
8928 let Constraints = "$Rx32 = $Rx32in";
8929 }
8930 def L2_loadrb_pr : HInst<
8931 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8932 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8933 "$Rd32 = memb($Rx32++$Mu2)",
8934 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
8935 let Inst{12-5} = 0b00000000;
8936 let Inst{31-21} = 0b10011101000;
8937 let hasNewValue = 1;
8938 let opNewValue = 0;
8939 let addrMode = PostInc;
8940 let accessSize = ByteAccess;
8941 let mayLoad = 1;
8942 let Constraints = "$Rx32 = $Rx32in";
8943 }
8944 def L2_loadrb_zomap : HInst<
8945 (outs IntRegs:$Rd32),
8946 (ins IntRegs:$Rs32),
8947 "$Rd32 = memb($Rs32)",
8948 tc_bf6fa601, TypeMAPPING> {
8949 let hasNewValue = 1;
8950 let opNewValue = 0;
8951 let isPseudo = 1;
8952 let isCodeGenOnly = 1;
8953 }
8954 def L2_loadrbgp : HInst<
8955 (outs IntRegs:$Rd32),
8956 (ins u32_0Imm:$Ii),
8957 "$Rd32 = memb(gp+#$Ii)",
8958 tc_70cabf66, TypeV2LDST>, Enc_25bef0, AddrModeRel {
8959 let Inst{24-21} = 0b1000;
8960 let Inst{31-27} = 0b01001;
8961 let hasNewValue = 1;
8962 let opNewValue = 0;
8963 let accessSize = ByteAccess;
8964 let mayLoad = 1;
8965 let Uses = [GP];
8966 let BaseOpcode = "L4_loadrb_abs";
8967 let isPredicable = 1;
8968 let opExtendable = 1;
8969 let isExtentSigned = 0;
8970 let opExtentBits = 16;
8971 let opExtentAlign = 0;
8972 }
8973 def L2_loadrd_io : HInst<
8974 (outs DoubleRegs:$Rdd32),
8975 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
8976 "$Rdd32 = memd($Rs32+#$Ii)",
8977 tc_bf6fa601, TypeLD>, Enc_fa3ba4, AddrModeRel {
8978 let Inst{24-21} = 0b1110;
8979 let Inst{31-27} = 0b10010;
8980 let addrMode = BaseImmOffset;
8981 let accessSize = DoubleWordAccess;
8982 let mayLoad = 1;
8983 let CextOpcode = "L2_loadrd";
8984 let BaseOpcode = "L2_loadrd_io";
8985 let isPredicable = 1;
8986 let isExtendable = 1;
8987 let opExtendable = 2;
8988 let isExtentSigned = 1;
8989 let opExtentBits = 14;
8990 let opExtentAlign = 3;
8991 }
8992 def L2_loadrd_pbr : HInst<
8993 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
8994 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8995 "$Rdd32 = memd($Rx32++$Mu2:brev)",
8996 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
8997 let Inst{12-5} = 0b00000000;
8998 let Inst{31-21} = 0b10011111110;
8999 let accessSize = DoubleWordAccess;
9000 let mayLoad = 1;
9001 let Constraints = "$Rx32 = $Rx32in";
9002 }
9003 def L2_loadrd_pci : HInst<
9004 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9005 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9006 "$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9007 tc_3eab77bd, TypeLD>, Enc_b05839 {
9008 let Inst{12-9} = 0b0000;
9009 let Inst{31-21} = 0b10011001110;
9010 let addrMode = PostInc;
9011 let accessSize = DoubleWordAccess;
9012 let mayLoad = 1;
9013 let Uses = [CS];
9014 let Constraints = "$Rx32 = $Rx32in";
9015 }
9016 def L2_loadrd_pcr : HInst<
9017 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9018 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9019 "$Rdd32 = memd($Rx32++I:circ($Mu2))",
9020 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
9021 let Inst{12-5} = 0b00010000;
9022 let Inst{31-21} = 0b10011001110;
9023 let addrMode = PostInc;
9024 let accessSize = DoubleWordAccess;
9025 let mayLoad = 1;
9026 let Uses = [CS];
9027 let Constraints = "$Rx32 = $Rx32in";
9028 }
9029 def L2_loadrd_pi : HInst<
9030 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9031 (ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9032 "$Rdd32 = memd($Rx32++#$Ii)",
9033 tc_65dc7cc4, TypeLD>, Enc_5bdd42, PredNewRel {
9034 let Inst{13-9} = 0b00000;
9035 let Inst{31-21} = 0b10011011110;
9036 let addrMode = PostInc;
9037 let accessSize = DoubleWordAccess;
9038 let mayLoad = 1;
9039 let BaseOpcode = "L2_loadrd_pi";
9040 let isPredicable = 1;
9041 let Constraints = "$Rx32 = $Rx32in";
9042 }
9043 def L2_loadrd_pr : HInst<
9044 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9045 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9046 "$Rdd32 = memd($Rx32++$Mu2)",
9047 tc_65dc7cc4, TypeLD>, Enc_7eee72 {
9048 let Inst{12-5} = 0b00000000;
9049 let Inst{31-21} = 0b10011101110;
9050 let addrMode = PostInc;
9051 let accessSize = DoubleWordAccess;
9052 let mayLoad = 1;
9053 let Constraints = "$Rx32 = $Rx32in";
9054 }
9055 def L2_loadrd_zomap : HInst<
9056 (outs DoubleRegs:$Rdd32),
9057 (ins IntRegs:$Rs32),
9058 "$Rdd32 = memd($Rs32)",
9059 tc_bf6fa601, TypeMAPPING> {
9060 let isPseudo = 1;
9061 let isCodeGenOnly = 1;
9062 }
9063 def L2_loadrdgp : HInst<
9064 (outs DoubleRegs:$Rdd32),
9065 (ins u29_3Imm:$Ii),
9066 "$Rdd32 = memd(gp+#$Ii)",
9067 tc_70cabf66, TypeV2LDST>, Enc_509701, AddrModeRel {
9068 let Inst{24-21} = 0b1110;
9069 let Inst{31-27} = 0b01001;
9070 let accessSize = DoubleWordAccess;
9071 let mayLoad = 1;
9072 let Uses = [GP];
9073 let BaseOpcode = "L4_loadrd_abs";
9074 let isPredicable = 1;
9075 let opExtendable = 1;
9076 let isExtentSigned = 0;
9077 let opExtentBits = 19;
9078 let opExtentAlign = 3;
9079 }
9080 def L2_loadrh_io : HInst<
9081 (outs IntRegs:$Rd32),
9082 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9083 "$Rd32 = memh($Rs32+#$Ii)",
9084 tc_bf6fa601, TypeLD>, Enc_de0214, AddrModeRel {
9085 let Inst{24-21} = 0b1010;
9086 let Inst{31-27} = 0b10010;
9087 let hasNewValue = 1;
9088 let opNewValue = 0;
9089 let addrMode = BaseImmOffset;
9090 let accessSize = HalfWordAccess;
9091 let mayLoad = 1;
9092 let CextOpcode = "L2_loadrh";
9093 let BaseOpcode = "L2_loadrh_io";
9094 let isPredicable = 1;
9095 let isExtendable = 1;
9096 let opExtendable = 2;
9097 let isExtentSigned = 1;
9098 let opExtentBits = 12;
9099 let opExtentAlign = 1;
9100 }
9101 def L2_loadrh_pbr : HInst<
9102 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9103 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9104 "$Rd32 = memh($Rx32++$Mu2:brev)",
9105 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9106 let Inst{12-5} = 0b00000000;
9107 let Inst{31-21} = 0b10011111010;
9108 let hasNewValue = 1;
9109 let opNewValue = 0;
9110 let accessSize = HalfWordAccess;
9111 let mayLoad = 1;
9112 let Constraints = "$Rx32 = $Rx32in";
9113 }
9114 def L2_loadrh_pci : HInst<
9115 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9116 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9117 "$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9118 tc_3eab77bd, TypeLD>, Enc_e83554 {
9119 let Inst{12-9} = 0b0000;
9120 let Inst{31-21} = 0b10011001010;
9121 let hasNewValue = 1;
9122 let opNewValue = 0;
9123 let addrMode = PostInc;
9124 let accessSize = HalfWordAccess;
9125 let mayLoad = 1;
9126 let Uses = [CS];
9127 let Constraints = "$Rx32 = $Rx32in";
9128 }
9129 def L2_loadrh_pcr : HInst<
9130 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9131 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9132 "$Rd32 = memh($Rx32++I:circ($Mu2))",
9133 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9134 let Inst{12-5} = 0b00010000;
9135 let Inst{31-21} = 0b10011001010;
9136 let hasNewValue = 1;
9137 let opNewValue = 0;
9138 let addrMode = PostInc;
9139 let accessSize = HalfWordAccess;
9140 let mayLoad = 1;
9141 let Uses = [CS];
9142 let Constraints = "$Rx32 = $Rx32in";
9143 }
9144 def L2_loadrh_pi : HInst<
9145 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9146 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9147 "$Rd32 = memh($Rx32++#$Ii)",
9148 tc_65dc7cc4, TypeLD>, Enc_152467, PredNewRel {
9149 let Inst{13-9} = 0b00000;
9150 let Inst{31-21} = 0b10011011010;
9151 let hasNewValue = 1;
9152 let opNewValue = 0;
9153 let addrMode = PostInc;
9154 let accessSize = HalfWordAccess;
9155 let mayLoad = 1;
9156 let BaseOpcode = "L2_loadrh_pi";
9157 let isPredicable = 1;
9158 let Constraints = "$Rx32 = $Rx32in";
9159 }
9160 def L2_loadrh_pr : HInst<
9161 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9162 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9163 "$Rd32 = memh($Rx32++$Mu2)",
9164 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9165 let Inst{12-5} = 0b00000000;
9166 let Inst{31-21} = 0b10011101010;
9167 let hasNewValue = 1;
9168 let opNewValue = 0;
9169 let addrMode = PostInc;
9170 let accessSize = HalfWordAccess;
9171 let mayLoad = 1;
9172 let Constraints = "$Rx32 = $Rx32in";
9173 }
9174 def L2_loadrh_zomap : HInst<
9175 (outs IntRegs:$Rd32),
9176 (ins IntRegs:$Rs32),
9177 "$Rd32 = memh($Rs32)",
9178 tc_bf6fa601, TypeMAPPING> {
9179 let hasNewValue = 1;
9180 let opNewValue = 0;
9181 let isPseudo = 1;
9182 let isCodeGenOnly = 1;
9183 }
9184 def L2_loadrhgp : HInst<
9185 (outs IntRegs:$Rd32),
9186 (ins u31_1Imm:$Ii),
9187 "$Rd32 = memh(gp+#$Ii)",
9188 tc_70cabf66, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9189 let Inst{24-21} = 0b1010;
9190 let Inst{31-27} = 0b01001;
9191 let hasNewValue = 1;
9192 let opNewValue = 0;
9193 let accessSize = HalfWordAccess;
9194 let mayLoad = 1;
9195 let Uses = [GP];
9196 let BaseOpcode = "L4_loadrh_abs";
9197 let isPredicable = 1;
9198 let opExtendable = 1;
9199 let isExtentSigned = 0;
9200 let opExtentBits = 17;
9201 let opExtentAlign = 1;
9202 }
9203 def L2_loadri_io : HInst<
9204 (outs IntRegs:$Rd32),
9205 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9206 "$Rd32 = memw($Rs32+#$Ii)",
9207 tc_bf6fa601, TypeLD>, Enc_2a3787, AddrModeRel {
9208 let Inst{24-21} = 0b1100;
9209 let Inst{31-27} = 0b10010;
9210 let hasNewValue = 1;
9211 let opNewValue = 0;
9212 let addrMode = BaseImmOffset;
9213 let accessSize = WordAccess;
9214 let mayLoad = 1;
9215 let CextOpcode = "L2_loadri";
9216 let BaseOpcode = "L2_loadri_io";
9217 let isPredicable = 1;
9218 let isExtendable = 1;
9219 let opExtendable = 2;
9220 let isExtentSigned = 1;
9221 let opExtentBits = 13;
9222 let opExtentAlign = 2;
9223 }
9224 def L2_loadri_pbr : HInst<
9225 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9226 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9227 "$Rd32 = memw($Rx32++$Mu2:brev)",
9228 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9229 let Inst{12-5} = 0b00000000;
9230 let Inst{31-21} = 0b10011111100;
9231 let hasNewValue = 1;
9232 let opNewValue = 0;
9233 let accessSize = WordAccess;
9234 let mayLoad = 1;
9235 let Constraints = "$Rx32 = $Rx32in";
9236 }
9237 def L2_loadri_pci : HInst<
9238 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9239 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9240 "$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9241 tc_3eab77bd, TypeLD>, Enc_27fd0e {
9242 let Inst{12-9} = 0b0000;
9243 let Inst{31-21} = 0b10011001100;
9244 let hasNewValue = 1;
9245 let opNewValue = 0;
9246 let addrMode = PostInc;
9247 let accessSize = WordAccess;
9248 let mayLoad = 1;
9249 let Uses = [CS];
9250 let Constraints = "$Rx32 = $Rx32in";
9251 }
9252 def L2_loadri_pcr : HInst<
9253 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9254 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9255 "$Rd32 = memw($Rx32++I:circ($Mu2))",
9256 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9257 let Inst{12-5} = 0b00010000;
9258 let Inst{31-21} = 0b10011001100;
9259 let hasNewValue = 1;
9260 let opNewValue = 0;
9261 let addrMode = PostInc;
9262 let accessSize = WordAccess;
9263 let mayLoad = 1;
9264 let Uses = [CS];
9265 let Constraints = "$Rx32 = $Rx32in";
9266 }
9267 def L2_loadri_pi : HInst<
9268 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9269 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9270 "$Rd32 = memw($Rx32++#$Ii)",
9271 tc_65dc7cc4, TypeLD>, Enc_3d920a, PredNewRel {
9272 let Inst{13-9} = 0b00000;
9273 let Inst{31-21} = 0b10011011100;
9274 let hasNewValue = 1;
9275 let opNewValue = 0;
9276 let addrMode = PostInc;
9277 let accessSize = WordAccess;
9278 let mayLoad = 1;
9279 let BaseOpcode = "L2_loadri_pi";
9280 let isPredicable = 1;
9281 let Constraints = "$Rx32 = $Rx32in";
9282 }
9283 def L2_loadri_pr : HInst<
9284 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9285 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9286 "$Rd32 = memw($Rx32++$Mu2)",
9287 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9288 let Inst{12-5} = 0b00000000;
9289 let Inst{31-21} = 0b10011101100;
9290 let hasNewValue = 1;
9291 let opNewValue = 0;
9292 let addrMode = PostInc;
9293 let accessSize = WordAccess;
9294 let mayLoad = 1;
9295 let Constraints = "$Rx32 = $Rx32in";
9296 }
9297 def L2_loadri_zomap : HInst<
9298 (outs IntRegs:$Rd32),
9299 (ins IntRegs:$Rs32),
9300 "$Rd32 = memw($Rs32)",
9301 tc_bf6fa601, TypeMAPPING> {
9302 let hasNewValue = 1;
9303 let opNewValue = 0;
9304 let isPseudo = 1;
9305 let isCodeGenOnly = 1;
9306 }
9307 def L2_loadrigp : HInst<
9308 (outs IntRegs:$Rd32),
9309 (ins u30_2Imm:$Ii),
9310 "$Rd32 = memw(gp+#$Ii)",
9311 tc_70cabf66, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9312 let Inst{24-21} = 0b1100;
9313 let Inst{31-27} = 0b01001;
9314 let hasNewValue = 1;
9315 let opNewValue = 0;
9316 let accessSize = WordAccess;
9317 let mayLoad = 1;
9318 let Uses = [GP];
9319 let BaseOpcode = "L4_loadri_abs";
9320 let isPredicable = 1;
9321 let opExtendable = 1;
9322 let isExtentSigned = 0;
9323 let opExtentBits = 18;
9324 let opExtentAlign = 2;
9325 }
9326 def L2_loadrub_io : HInst<
9327 (outs IntRegs:$Rd32),
9328 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9329 "$Rd32 = memub($Rs32+#$Ii)",
9330 tc_bf6fa601, TypeLD>, Enc_211aaa, AddrModeRel {
9331 let Inst{24-21} = 0b1001;
9332 let Inst{31-27} = 0b10010;
9333 let hasNewValue = 1;
9334 let opNewValue = 0;
9335 let addrMode = BaseImmOffset;
9336 let accessSize = ByteAccess;
9337 let mayLoad = 1;
9338 let CextOpcode = "L2_loadrub";
9339 let BaseOpcode = "L2_loadrub_io";
9340 let isPredicable = 1;
9341 let isExtendable = 1;
9342 let opExtendable = 2;
9343 let isExtentSigned = 1;
9344 let opExtentBits = 11;
9345 let opExtentAlign = 0;
9346 }
9347 def L2_loadrub_pbr : HInst<
9348 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9349 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9350 "$Rd32 = memub($Rx32++$Mu2:brev)",
9351 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9352 let Inst{12-5} = 0b00000000;
9353 let Inst{31-21} = 0b10011111001;
9354 let hasNewValue = 1;
9355 let opNewValue = 0;
9356 let accessSize = ByteAccess;
9357 let mayLoad = 1;
9358 let Constraints = "$Rx32 = $Rx32in";
9359 }
9360 def L2_loadrub_pci : HInst<
9361 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9362 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9363 "$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9364 tc_3eab77bd, TypeLD>, Enc_e0a47a {
9365 let Inst{12-9} = 0b0000;
9366 let Inst{31-21} = 0b10011001001;
9367 let hasNewValue = 1;
9368 let opNewValue = 0;
9369 let addrMode = PostInc;
9370 let accessSize = ByteAccess;
9371 let mayLoad = 1;
9372 let Uses = [CS];
9373 let Constraints = "$Rx32 = $Rx32in";
9374 }
9375 def L2_loadrub_pcr : HInst<
9376 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9377 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9378 "$Rd32 = memub($Rx32++I:circ($Mu2))",
9379 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9380 let Inst{12-5} = 0b00010000;
9381 let Inst{31-21} = 0b10011001001;
9382 let hasNewValue = 1;
9383 let opNewValue = 0;
9384 let addrMode = PostInc;
9385 let accessSize = ByteAccess;
9386 let mayLoad = 1;
9387 let Uses = [CS];
9388 let Constraints = "$Rx32 = $Rx32in";
9389 }
9390 def L2_loadrub_pi : HInst<
9391 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9392 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9393 "$Rd32 = memub($Rx32++#$Ii)",
9394 tc_65dc7cc4, TypeLD>, Enc_222336, PredNewRel {
9395 let Inst{13-9} = 0b00000;
9396 let Inst{31-21} = 0b10011011001;
9397 let hasNewValue = 1;
9398 let opNewValue = 0;
9399 let addrMode = PostInc;
9400 let accessSize = ByteAccess;
9401 let mayLoad = 1;
9402 let BaseOpcode = "L2_loadrub_pi";
9403 let isPredicable = 1;
9404 let Constraints = "$Rx32 = $Rx32in";
9405 }
9406 def L2_loadrub_pr : HInst<
9407 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9408 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9409 "$Rd32 = memub($Rx32++$Mu2)",
9410 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9411 let Inst{12-5} = 0b00000000;
9412 let Inst{31-21} = 0b10011101001;
9413 let hasNewValue = 1;
9414 let opNewValue = 0;
9415 let addrMode = PostInc;
9416 let accessSize = ByteAccess;
9417 let mayLoad = 1;
9418 let Constraints = "$Rx32 = $Rx32in";
9419 }
9420 def L2_loadrub_zomap : HInst<
9421 (outs IntRegs:$Rd32),
9422 (ins IntRegs:$Rs32),
9423 "$Rd32 = memub($Rs32)",
9424 tc_bf6fa601, TypeMAPPING> {
9425 let hasNewValue = 1;
9426 let opNewValue = 0;
9427 let isPseudo = 1;
9428 let isCodeGenOnly = 1;
9429 }
9430 def L2_loadrubgp : HInst<
9431 (outs IntRegs:$Rd32),
9432 (ins u32_0Imm:$Ii),
9433 "$Rd32 = memub(gp+#$Ii)",
9434 tc_70cabf66, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9435 let Inst{24-21} = 0b1001;
9436 let Inst{31-27} = 0b01001;
9437 let hasNewValue = 1;
9438 let opNewValue = 0;
9439 let accessSize = ByteAccess;
9440 let mayLoad = 1;
9441 let Uses = [GP];
9442 let BaseOpcode = "L4_loadrub_abs";
9443 let isPredicable = 1;
9444 let opExtendable = 1;
9445 let isExtentSigned = 0;
9446 let opExtentBits = 16;
9447 let opExtentAlign = 0;
9448 }
9449 def L2_loadruh_io : HInst<
9450 (outs IntRegs:$Rd32),
9451 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9452 "$Rd32 = memuh($Rs32+#$Ii)",
9453 tc_bf6fa601, TypeLD>, Enc_de0214, AddrModeRel {
9454 let Inst{24-21} = 0b1011;
9455 let Inst{31-27} = 0b10010;
9456 let hasNewValue = 1;
9457 let opNewValue = 0;
9458 let addrMode = BaseImmOffset;
9459 let accessSize = HalfWordAccess;
9460 let mayLoad = 1;
9461 let CextOpcode = "L2_loadruh";
9462 let BaseOpcode = "L2_loadruh_io";
9463 let isPredicable = 1;
9464 let isExtendable = 1;
9465 let opExtendable = 2;
9466 let isExtentSigned = 1;
9467 let opExtentBits = 12;
9468 let opExtentAlign = 1;
9469 }
9470 def L2_loadruh_pbr : HInst<
9471 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9472 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9473 "$Rd32 = memuh($Rx32++$Mu2:brev)",
9474 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9475 let Inst{12-5} = 0b00000000;
9476 let Inst{31-21} = 0b10011111011;
9477 let hasNewValue = 1;
9478 let opNewValue = 0;
9479 let accessSize = HalfWordAccess;
9480 let mayLoad = 1;
9481 let Constraints = "$Rx32 = $Rx32in";
9482 }
9483 def L2_loadruh_pci : HInst<
9484 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9485 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9486 "$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
9487 tc_3eab77bd, TypeLD>, Enc_e83554 {
9488 let Inst{12-9} = 0b0000;
9489 let Inst{31-21} = 0b10011001011;
9490 let hasNewValue = 1;
9491 let opNewValue = 0;
9492 let addrMode = PostInc;
9493 let accessSize = HalfWordAccess;
9494 let mayLoad = 1;
9495 let Uses = [CS];
9496 let Constraints = "$Rx32 = $Rx32in";
9497 }
9498 def L2_loadruh_pcr : HInst<
9499 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9500 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9501 "$Rd32 = memuh($Rx32++I:circ($Mu2))",
9502 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9503 let Inst{12-5} = 0b00010000;
9504 let Inst{31-21} = 0b10011001011;
9505 let hasNewValue = 1;
9506 let opNewValue = 0;
9507 let addrMode = PostInc;
9508 let accessSize = HalfWordAccess;
9509 let mayLoad = 1;
9510 let Uses = [CS];
9511 let Constraints = "$Rx32 = $Rx32in";
9512 }
9513 def L2_loadruh_pi : HInst<
9514 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9515 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9516 "$Rd32 = memuh($Rx32++#$Ii)",
9517 tc_65dc7cc4, TypeLD>, Enc_152467, PredNewRel {
9518 let Inst{13-9} = 0b00000;
9519 let Inst{31-21} = 0b10011011011;
9520 let hasNewValue = 1;
9521 let opNewValue = 0;
9522 let addrMode = PostInc;
9523 let accessSize = HalfWordAccess;
9524 let mayLoad = 1;
9525 let BaseOpcode = "L2_loadruh_pi";
9526 let isPredicable = 1;
9527 let Constraints = "$Rx32 = $Rx32in";
9528 }
9529 def L2_loadruh_pr : HInst<
9530 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9531 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9532 "$Rd32 = memuh($Rx32++$Mu2)",
9533 tc_65dc7cc4, TypeLD>, Enc_74d4e5 {
9534 let Inst{12-5} = 0b00000000;
9535 let Inst{31-21} = 0b10011101011;
9536 let hasNewValue = 1;
9537 let opNewValue = 0;
9538 let addrMode = PostInc;
9539 let accessSize = HalfWordAccess;
9540 let mayLoad = 1;
9541 let Constraints = "$Rx32 = $Rx32in";
9542 }
9543 def L2_loadruh_zomap : HInst<
9544 (outs IntRegs:$Rd32),
9545 (ins IntRegs:$Rs32),
9546 "$Rd32 = memuh($Rs32)",
9547 tc_bf6fa601, TypeMAPPING> {
9548 let hasNewValue = 1;
9549 let opNewValue = 0;
9550 let isPseudo = 1;
9551 let isCodeGenOnly = 1;
9552 }
9553 def L2_loadruhgp : HInst<
9554 (outs IntRegs:$Rd32),
9555 (ins u31_1Imm:$Ii),
9556 "$Rd32 = memuh(gp+#$Ii)",
9557 tc_70cabf66, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9558 let Inst{24-21} = 0b1011;
9559 let Inst{31-27} = 0b01001;
9560 let hasNewValue = 1;
9561 let opNewValue = 0;
9562 let accessSize = HalfWordAccess;
9563 let mayLoad = 1;
9564 let Uses = [GP];
9565 let BaseOpcode = "L4_loadruh_abs";
9566 let isPredicable = 1;
9567 let opExtendable = 1;
9568 let isExtentSigned = 0;
9569 let opExtentBits = 17;
9570 let opExtentAlign = 1;
9571 }
9572 def L2_loadw_locked : HInst<
9573 (outs IntRegs:$Rd32),
9574 (ins IntRegs:$Rs32),
9575 "$Rd32 = memw_locked($Rs32)",
9576 tc_29c14515, TypeLD>, Enc_5e2823 {
9577 let Inst{13-5} = 0b000000000;
9578 let Inst{31-21} = 0b10010010000;
9579 let hasNewValue = 1;
9580 let opNewValue = 0;
9581 let accessSize = WordAccess;
9582 let mayLoad = 1;
9583 let isSoloAX = 1;
9584 }
9585 def L2_ploadrbf_io : HInst<
9586 (outs IntRegs:$Rd32),
9587 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
9588 "if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
9589 tc_14da557c, TypeV2LDST>, Enc_a21d47, AddrModeRel {
9590 let Inst{13-13} = 0b0;
9591 let Inst{31-21} = 0b01000101000;
9592 let isPredicated = 1;
9593 let isPredicatedFalse = 1;
9594 let hasNewValue = 1;
9595 let opNewValue = 0;
9596 let addrMode = BaseImmOffset;
9597 let accessSize = ByteAccess;
9598 let mayLoad = 1;
9599 let CextOpcode = "L2_loadrb";
9600 let BaseOpcode = "L2_loadrb_io";
9601 let isExtendable = 1;
9602 let opExtendable = 3;
9603 let isExtentSigned = 0;
9604 let opExtentBits = 6;
9605 let opExtentAlign = 0;
9606 }
9607 def L2_ploadrbf_pi : HInst<
9608 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9609 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
9610 "if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
9611 tc_ae762521, TypeLD>, Enc_f4413a, PredNewRel {
9612 let Inst{13-11} = 0b101;
9613 let Inst{31-21} = 0b10011011000;
9614 let isPredicated = 1;
9615 let isPredicatedFalse = 1;
9616 let hasNewValue = 1;
9617 let opNewValue = 0;
9618 let addrMode = PostInc;
9619 let accessSize = ByteAccess;
9620 let mayLoad = 1;
9621 let BaseOpcode = "L2_loadrb_pi";
9622 let Constraints = "$Rx32 = $Rx32in";
9623 }
9624 def L2_ploadrbf_zomap : HInst<
9625 (outs IntRegs:$Rd32),
9626 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9627 "if (!$Pt4) $Rd32 = memb($Rs32)",
9628 tc_14da557c, TypeMAPPING> {
9629 let hasNewValue = 1;
9630 let opNewValue = 0;
9631 let isPseudo = 1;
9632 let isCodeGenOnly = 1;
9633 }
9634 def L2_ploadrbfnew_io : HInst<
9635 (outs IntRegs:$Rd32),
9636 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
9637 "if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
9638 tc_65dc7cc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
9639 let Inst{13-13} = 0b0;
9640 let Inst{31-21} = 0b01000111000;
9641 let isPredicated = 1;
9642 let isPredicatedFalse = 1;
9643 let hasNewValue = 1;
9644 let opNewValue = 0;
9645 let addrMode = BaseImmOffset;
9646 let accessSize = ByteAccess;
9647 let isPredicatedNew = 1;
9648 let mayLoad = 1;
9649 let CextOpcode = "L2_loadrb";
9650 let BaseOpcode = "L2_loadrb_io";
9651 let isExtendable = 1;
9652 let opExtendable = 3;
9653 let isExtentSigned = 0;
9654 let opExtentBits = 6;
9655 let opExtentAlign = 0;
9656 }
9657 def L2_ploadrbfnew_pi : HInst<
9658 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9659 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
9660 "if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
9661 tc_e578178f, TypeLD>, Enc_f4413a, PredNewRel {
9662 let Inst{13-11} = 0b111;
9663 let Inst{31-21} = 0b10011011000;
9664 let isPredicated = 1;
9665 let isPredicatedFalse = 1;
9666 let hasNewValue = 1;
9667 let opNewValue = 0;
9668 let addrMode = PostInc;
9669 let accessSize = ByteAccess;
9670 let isPredicatedNew = 1;
9671 let mayLoad = 1;
9672 let BaseOpcode = "L2_loadrb_pi";
9673 let Constraints = "$Rx32 = $Rx32in";
9674 }
9675 def L2_ploadrbfnew_zomap : HInst<
9676 (outs IntRegs:$Rd32),
9677 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9678 "if (!$Pt4.new) $Rd32 = memb($Rs32)",
9679 tc_65dc7cc4, TypeMAPPING> {
9680 let hasNewValue = 1;
9681 let opNewValue = 0;
9682 let isPseudo = 1;
9683 let isCodeGenOnly = 1;
9684 }
9685 def L2_ploadrbt_io : HInst<
9686 (outs IntRegs:$Rd32),
9687 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
9688 "if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
9689 tc_14da557c, TypeV2LDST>, Enc_a21d47, AddrModeRel {
9690 let Inst{13-13} = 0b0;
9691 let Inst{31-21} = 0b01000001000;
9692 let isPredicated = 1;
9693 let hasNewValue = 1;
9694 let opNewValue = 0;
9695 let addrMode = BaseImmOffset;
9696 let accessSize = ByteAccess;
9697 let mayLoad = 1;
9698 let CextOpcode = "L2_loadrb";
9699 let BaseOpcode = "L2_loadrb_io";
9700 let isExtendable = 1;
9701 let opExtendable = 3;
9702 let isExtentSigned = 0;
9703 let opExtentBits = 6;
9704 let opExtentAlign = 0;
9705 }
9706 def L2_ploadrbt_pi : HInst<
9707 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9708 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
9709 "if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
9710 tc_ae762521, TypeLD>, Enc_f4413a, PredNewRel {
9711 let Inst{13-11} = 0b100;
9712 let Inst{31-21} = 0b10011011000;
9713 let isPredicated = 1;
9714 let hasNewValue = 1;
9715 let opNewValue = 0;
9716 let addrMode = PostInc;
9717 let accessSize = ByteAccess;
9718 let mayLoad = 1;
9719 let BaseOpcode = "L2_loadrb_pi";
9720 let Constraints = "$Rx32 = $Rx32in";
9721 }
9722 def L2_ploadrbt_zomap : HInst<
9723 (outs IntRegs:$Rd32),
9724 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9725 "if ($Pt4) $Rd32 = memb($Rs32)",
9726 tc_14da557c, TypeMAPPING> {
9727 let hasNewValue = 1;
9728 let opNewValue = 0;
9729 let isPseudo = 1;
9730 let isCodeGenOnly = 1;
9731 }
9732 def L2_ploadrbtnew_io : HInst<
9733 (outs IntRegs:$Rd32),
9734 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
9735 "if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
9736 tc_65dc7cc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
9737 let Inst{13-13} = 0b0;
9738 let Inst{31-21} = 0b01000011000;
9739 let isPredicated = 1;
9740 let hasNewValue = 1;
9741 let opNewValue = 0;
9742 let addrMode = BaseImmOffset;
9743 let accessSize = ByteAccess;
9744 let isPredicatedNew = 1;
9745 let mayLoad = 1;
9746 let CextOpcode = "L2_loadrb";
9747 let BaseOpcode = "L2_loadrb_io";
9748 let isExtendable = 1;
9749 let opExtendable = 3;
9750 let isExtentSigned = 0;
9751 let opExtentBits = 6;
9752 let opExtentAlign = 0;
9753 }
9754 def L2_ploadrbtnew_pi : HInst<
9755 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9756 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
9757 "if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
9758 tc_e578178f, TypeLD>, Enc_f4413a, PredNewRel {
9759 let Inst{13-11} = 0b110;
9760 let Inst{31-21} = 0b10011011000;
9761 let isPredicated = 1;
9762 let hasNewValue = 1;
9763 let opNewValue = 0;
9764 let addrMode = PostInc;
9765 let accessSize = ByteAccess;
9766 let isPredicatedNew = 1;
9767 let mayLoad = 1;
9768 let BaseOpcode = "L2_loadrb_pi";
9769 let Constraints = "$Rx32 = $Rx32in";
9770 }
9771 def L2_ploadrbtnew_zomap : HInst<
9772 (outs IntRegs:$Rd32),
9773 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9774 "if ($Pt4.new) $Rd32 = memb($Rs32)",
9775 tc_65dc7cc4, TypeMAPPING> {
9776 let hasNewValue = 1;
9777 let opNewValue = 0;
9778 let isPseudo = 1;
9779 let isCodeGenOnly = 1;
9780 }
9781 def L2_ploadrdf_io : HInst<
9782 (outs DoubleRegs:$Rdd32),
9783 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
9784 "if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
9785 tc_14da557c, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
9786 let Inst{13-13} = 0b0;
9787 let Inst{31-21} = 0b01000101110;
9788 let isPredicated = 1;
9789 let isPredicatedFalse = 1;
9790 let addrMode = BaseImmOffset;
9791 let accessSize = DoubleWordAccess;
9792 let mayLoad = 1;
9793 let CextOpcode = "L2_loadrd";
9794 let BaseOpcode = "L2_loadrd_io";
9795 let isExtendable = 1;
9796 let opExtendable = 3;
9797 let isExtentSigned = 0;
9798 let opExtentBits = 9;
9799 let opExtentAlign = 3;
9800 }
9801 def L2_ploadrdf_pi : HInst<
9802 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9803 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
9804 "if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
9805 tc_ae762521, TypeLD>, Enc_9d1247, PredNewRel {
9806 let Inst{13-11} = 0b101;
9807 let Inst{31-21} = 0b10011011110;
9808 let isPredicated = 1;
9809 let isPredicatedFalse = 1;
9810 let addrMode = PostInc;
9811 let accessSize = DoubleWordAccess;
9812 let mayLoad = 1;
9813 let BaseOpcode = "L2_loadrd_pi";
9814 let Constraints = "$Rx32 = $Rx32in";
9815 }
9816 def L2_ploadrdf_zomap : HInst<
9817 (outs DoubleRegs:$Rdd32),
9818 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9819 "if (!$Pt4) $Rdd32 = memd($Rs32)",
9820 tc_14da557c, TypeMAPPING> {
9821 let isPseudo = 1;
9822 let isCodeGenOnly = 1;
9823 }
9824 def L2_ploadrdfnew_io : HInst<
9825 (outs DoubleRegs:$Rdd32),
9826 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
9827 "if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
9828 tc_65dc7cc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
9829 let Inst{13-13} = 0b0;
9830 let Inst{31-21} = 0b01000111110;
9831 let isPredicated = 1;
9832 let isPredicatedFalse = 1;
9833 let addrMode = BaseImmOffset;
9834 let accessSize = DoubleWordAccess;
9835 let isPredicatedNew = 1;
9836 let mayLoad = 1;
9837 let CextOpcode = "L2_loadrd";
9838 let BaseOpcode = "L2_loadrd_io";
9839 let isExtendable = 1;
9840 let opExtendable = 3;
9841 let isExtentSigned = 0;
9842 let opExtentBits = 9;
9843 let opExtentAlign = 3;
9844 }
9845 def L2_ploadrdfnew_pi : HInst<
9846 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9847 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
9848 "if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
9849 tc_e578178f, TypeLD>, Enc_9d1247, PredNewRel {
9850 let Inst{13-11} = 0b111;
9851 let Inst{31-21} = 0b10011011110;
9852 let isPredicated = 1;
9853 let isPredicatedFalse = 1;
9854 let addrMode = PostInc;
9855 let accessSize = DoubleWordAccess;
9856 let isPredicatedNew = 1;
9857 let mayLoad = 1;
9858 let BaseOpcode = "L2_loadrd_pi";
9859 let Constraints = "$Rx32 = $Rx32in";
9860 }
9861 def L2_ploadrdfnew_zomap : HInst<
9862 (outs DoubleRegs:$Rdd32),
9863 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9864 "if (!$Pt4.new) $Rdd32 = memd($Rs32)",
9865 tc_65dc7cc4, TypeMAPPING> {
9866 let isPseudo = 1;
9867 let isCodeGenOnly = 1;
9868 }
9869 def L2_ploadrdt_io : HInst<
9870 (outs DoubleRegs:$Rdd32),
9871 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
9872 "if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
9873 tc_14da557c, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
9874 let Inst{13-13} = 0b0;
9875 let Inst{31-21} = 0b01000001110;
9876 let isPredicated = 1;
9877 let addrMode = BaseImmOffset;
9878 let accessSize = DoubleWordAccess;
9879 let mayLoad = 1;
9880 let CextOpcode = "L2_loadrd";
9881 let BaseOpcode = "L2_loadrd_io";
9882 let isExtendable = 1;
9883 let opExtendable = 3;
9884 let isExtentSigned = 0;
9885 let opExtentBits = 9;
9886 let opExtentAlign = 3;
9887 }
9888 def L2_ploadrdt_pi : HInst<
9889 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9890 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
9891 "if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
9892 tc_ae762521, TypeLD>, Enc_9d1247, PredNewRel {
9893 let Inst{13-11} = 0b100;
9894 let Inst{31-21} = 0b10011011110;
9895 let isPredicated = 1;
9896 let addrMode = PostInc;
9897 let accessSize = DoubleWordAccess;
9898 let mayLoad = 1;
9899 let BaseOpcode = "L2_loadrd_pi";
9900 let Constraints = "$Rx32 = $Rx32in";
9901 }
9902 def L2_ploadrdt_zomap : HInst<
9903 (outs DoubleRegs:$Rdd32),
9904 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9905 "if ($Pt4) $Rdd32 = memd($Rs32)",
9906 tc_14da557c, TypeMAPPING> {
9907 let isPseudo = 1;
9908 let isCodeGenOnly = 1;
9909 }
9910 def L2_ploadrdtnew_io : HInst<
9911 (outs DoubleRegs:$Rdd32),
9912 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
9913 "if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
9914 tc_65dc7cc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
9915 let Inst{13-13} = 0b0;
9916 let Inst{31-21} = 0b01000011110;
9917 let isPredicated = 1;
9918 let addrMode = BaseImmOffset;
9919 let accessSize = DoubleWordAccess;
9920 let isPredicatedNew = 1;
9921 let mayLoad = 1;
9922 let CextOpcode = "L2_loadrd";
9923 let BaseOpcode = "L2_loadrd_io";
9924 let isExtendable = 1;
9925 let opExtendable = 3;
9926 let isExtentSigned = 0;
9927 let opExtentBits = 9;
9928 let opExtentAlign = 3;
9929 }
9930 def L2_ploadrdtnew_pi : HInst<
9931 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9932 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
9933 "if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
9934 tc_e578178f, TypeLD>, Enc_9d1247, PredNewRel {
9935 let Inst{13-11} = 0b110;
9936 let Inst{31-21} = 0b10011011110;
9937 let isPredicated = 1;
9938 let addrMode = PostInc;
9939 let accessSize = DoubleWordAccess;
9940 let isPredicatedNew = 1;
9941 let mayLoad = 1;
9942 let BaseOpcode = "L2_loadrd_pi";
9943 let Constraints = "$Rx32 = $Rx32in";
9944 }
9945 def L2_ploadrdtnew_zomap : HInst<
9946 (outs DoubleRegs:$Rdd32),
9947 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9948 "if ($Pt4.new) $Rdd32 = memd($Rs32)",
9949 tc_65dc7cc4, TypeMAPPING> {
9950 let isPseudo = 1;
9951 let isCodeGenOnly = 1;
9952 }
9953 def L2_ploadrhf_io : HInst<
9954 (outs IntRegs:$Rd32),
9955 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
9956 "if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
9957 tc_14da557c, TypeV2LDST>, Enc_a198f6, AddrModeRel {
9958 let Inst{13-13} = 0b0;
9959 let Inst{31-21} = 0b01000101010;
9960 let isPredicated = 1;
9961 let isPredicatedFalse = 1;
9962 let hasNewValue = 1;
9963 let opNewValue = 0;
9964 let addrMode = BaseImmOffset;
9965 let accessSize = HalfWordAccess;
9966 let mayLoad = 1;
9967 let CextOpcode = "L2_loadrh";
9968 let BaseOpcode = "L2_loadrh_io";
9969 let isExtendable = 1;
9970 let opExtendable = 3;
9971 let isExtentSigned = 0;
9972 let opExtentBits = 7;
9973 let opExtentAlign = 1;
9974 }
9975 def L2_ploadrhf_pi : HInst<
9976 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9977 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
9978 "if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
9979 tc_ae762521, TypeLD>, Enc_733b27, PredNewRel {
9980 let Inst{13-11} = 0b101;
9981 let Inst{31-21} = 0b10011011010;
9982 let isPredicated = 1;
9983 let isPredicatedFalse = 1;
9984 let hasNewValue = 1;
9985 let opNewValue = 0;
9986 let addrMode = PostInc;
9987 let accessSize = HalfWordAccess;
9988 let mayLoad = 1;
9989 let BaseOpcode = "L2_loadrh_pi";
9990 let Constraints = "$Rx32 = $Rx32in";
9991 }
9992 def L2_ploadrhf_zomap : HInst<
9993 (outs IntRegs:$Rd32),
9994 (ins PredRegs:$Pt4, IntRegs:$Rs32),
9995 "if (!$Pt4) $Rd32 = memh($Rs32)",
9996 tc_14da557c, TypeMAPPING> {
9997 let hasNewValue = 1;
9998 let opNewValue = 0;
9999 let isPseudo = 1;
10000 let isCodeGenOnly = 1;
10001 }
10002 def L2_ploadrhfnew_io : HInst<
10003 (outs IntRegs:$Rd32),
10004 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10005 "if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10006 tc_65dc7cc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10007 let Inst{13-13} = 0b0;
10008 let Inst{31-21} = 0b01000111010;
10009 let isPredicated = 1;
10010 let isPredicatedFalse = 1;
10011 let hasNewValue = 1;
10012 let opNewValue = 0;
10013 let addrMode = BaseImmOffset;
10014 let accessSize = HalfWordAccess;
10015 let isPredicatedNew = 1;
10016 let mayLoad = 1;
10017 let CextOpcode = "L2_loadrh";
10018 let BaseOpcode = "L2_loadrh_io";
10019 let isExtendable = 1;
10020 let opExtendable = 3;
10021 let isExtentSigned = 0;
10022 let opExtentBits = 7;
10023 let opExtentAlign = 1;
10024 }
10025 def L2_ploadrhfnew_pi : HInst<
10026 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10027 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10028 "if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10029 tc_e578178f, TypeLD>, Enc_733b27, PredNewRel {
10030 let Inst{13-11} = 0b111;
10031 let Inst{31-21} = 0b10011011010;
10032 let isPredicated = 1;
10033 let isPredicatedFalse = 1;
10034 let hasNewValue = 1;
10035 let opNewValue = 0;
10036 let addrMode = PostInc;
10037 let accessSize = HalfWordAccess;
10038 let isPredicatedNew = 1;
10039 let mayLoad = 1;
10040 let BaseOpcode = "L2_loadrh_pi";
10041 let Constraints = "$Rx32 = $Rx32in";
10042 }
10043 def L2_ploadrhfnew_zomap : HInst<
10044 (outs IntRegs:$Rd32),
10045 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10046 "if (!$Pt4.new) $Rd32 = memh($Rs32)",
10047 tc_65dc7cc4, TypeMAPPING> {
10048 let hasNewValue = 1;
10049 let opNewValue = 0;
10050 let isPseudo = 1;
10051 let isCodeGenOnly = 1;
10052 }
10053 def L2_ploadrht_io : HInst<
10054 (outs IntRegs:$Rd32),
10055 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10056 "if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10057 tc_14da557c, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10058 let Inst{13-13} = 0b0;
10059 let Inst{31-21} = 0b01000001010;
10060 let isPredicated = 1;
10061 let hasNewValue = 1;
10062 let opNewValue = 0;
10063 let addrMode = BaseImmOffset;
10064 let accessSize = HalfWordAccess;
10065 let mayLoad = 1;
10066 let CextOpcode = "L2_loadrh";
10067 let BaseOpcode = "L2_loadrh_io";
10068 let isExtendable = 1;
10069 let opExtendable = 3;
10070 let isExtentSigned = 0;
10071 let opExtentBits = 7;
10072 let opExtentAlign = 1;
10073 }
10074 def L2_ploadrht_pi : HInst<
10075 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10076 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10077 "if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10078 tc_ae762521, TypeLD>, Enc_733b27, PredNewRel {
10079 let Inst{13-11} = 0b100;
10080 let Inst{31-21} = 0b10011011010;
10081 let isPredicated = 1;
10082 let hasNewValue = 1;
10083 let opNewValue = 0;
10084 let addrMode = PostInc;
10085 let accessSize = HalfWordAccess;
10086 let mayLoad = 1;
10087 let BaseOpcode = "L2_loadrh_pi";
10088 let Constraints = "$Rx32 = $Rx32in";
10089 }
10090 def L2_ploadrht_zomap : HInst<
10091 (outs IntRegs:$Rd32),
10092 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10093 "if ($Pt4) $Rd32 = memh($Rs32)",
10094 tc_14da557c, TypeMAPPING> {
10095 let hasNewValue = 1;
10096 let opNewValue = 0;
10097 let isPseudo = 1;
10098 let isCodeGenOnly = 1;
10099 }
10100 def L2_ploadrhtnew_io : HInst<
10101 (outs IntRegs:$Rd32),
10102 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10103 "if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10104 tc_65dc7cc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10105 let Inst{13-13} = 0b0;
10106 let Inst{31-21} = 0b01000011010;
10107 let isPredicated = 1;
10108 let hasNewValue = 1;
10109 let opNewValue = 0;
10110 let addrMode = BaseImmOffset;
10111 let accessSize = HalfWordAccess;
10112 let isPredicatedNew = 1;
10113 let mayLoad = 1;
10114 let CextOpcode = "L2_loadrh";
10115 let BaseOpcode = "L2_loadrh_io";
10116 let isExtendable = 1;
10117 let opExtendable = 3;
10118 let isExtentSigned = 0;
10119 let opExtentBits = 7;
10120 let opExtentAlign = 1;
10121 }
10122 def L2_ploadrhtnew_pi : HInst<
10123 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10124 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10125 "if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10126 tc_e578178f, TypeLD>, Enc_733b27, PredNewRel {
10127 let Inst{13-11} = 0b110;
10128 let Inst{31-21} = 0b10011011010;
10129 let isPredicated = 1;
10130 let hasNewValue = 1;
10131 let opNewValue = 0;
10132 let addrMode = PostInc;
10133 let accessSize = HalfWordAccess;
10134 let isPredicatedNew = 1;
10135 let mayLoad = 1;
10136 let BaseOpcode = "L2_loadrh_pi";
10137 let Constraints = "$Rx32 = $Rx32in";
10138 }
10139 def L2_ploadrhtnew_zomap : HInst<
10140 (outs IntRegs:$Rd32),
10141 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10142 "if ($Pt4.new) $Rd32 = memh($Rs32)",
10143 tc_65dc7cc4, TypeMAPPING> {
10144 let hasNewValue = 1;
10145 let opNewValue = 0;
10146 let isPseudo = 1;
10147 let isCodeGenOnly = 1;
10148 }
10149 def L2_ploadrif_io : HInst<
10150 (outs IntRegs:$Rd32),
10151 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10152 "if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10153 tc_14da557c, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10154 let Inst{13-13} = 0b0;
10155 let Inst{31-21} = 0b01000101100;
10156 let isPredicated = 1;
10157 let isPredicatedFalse = 1;
10158 let hasNewValue = 1;
10159 let opNewValue = 0;
10160 let addrMode = BaseImmOffset;
10161 let accessSize = WordAccess;
10162 let mayLoad = 1;
10163 let CextOpcode = "L2_loadri";
10164 let BaseOpcode = "L2_loadri_io";
10165 let isExtendable = 1;
10166 let opExtendable = 3;
10167 let isExtentSigned = 0;
10168 let opExtentBits = 8;
10169 let opExtentAlign = 2;
10170 }
10171 def L2_ploadrif_pi : HInst<
10172 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10173 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10174 "if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10175 tc_ae762521, TypeLD>, Enc_b97f71, PredNewRel {
10176 let Inst{13-11} = 0b101;
10177 let Inst{31-21} = 0b10011011100;
10178 let isPredicated = 1;
10179 let isPredicatedFalse = 1;
10180 let hasNewValue = 1;
10181 let opNewValue = 0;
10182 let addrMode = PostInc;
10183 let accessSize = WordAccess;
10184 let mayLoad = 1;
10185 let BaseOpcode = "L2_loadri_pi";
10186 let Constraints = "$Rx32 = $Rx32in";
10187 }
10188 def L2_ploadrif_zomap : HInst<
10189 (outs IntRegs:$Rd32),
10190 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10191 "if (!$Pt4) $Rd32 = memw($Rs32)",
10192 tc_14da557c, TypeMAPPING> {
10193 let hasNewValue = 1;
10194 let opNewValue = 0;
10195 let isPseudo = 1;
10196 let isCodeGenOnly = 1;
10197 }
10198 def L2_ploadrifnew_io : HInst<
10199 (outs IntRegs:$Rd32),
10200 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10201 "if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10202 tc_65dc7cc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10203 let Inst{13-13} = 0b0;
10204 let Inst{31-21} = 0b01000111100;
10205 let isPredicated = 1;
10206 let isPredicatedFalse = 1;
10207 let hasNewValue = 1;
10208 let opNewValue = 0;
10209 let addrMode = BaseImmOffset;
10210 let accessSize = WordAccess;
10211 let isPredicatedNew = 1;
10212 let mayLoad = 1;
10213 let CextOpcode = "L2_loadri";
10214 let BaseOpcode = "L2_loadri_io";
10215 let isExtendable = 1;
10216 let opExtendable = 3;
10217 let isExtentSigned = 0;
10218 let opExtentBits = 8;
10219 let opExtentAlign = 2;
10220 }
10221 def L2_ploadrifnew_pi : HInst<
10222 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10223 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10224 "if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10225 tc_e578178f, TypeLD>, Enc_b97f71, PredNewRel {
10226 let Inst{13-11} = 0b111;
10227 let Inst{31-21} = 0b10011011100;
10228 let isPredicated = 1;
10229 let isPredicatedFalse = 1;
10230 let hasNewValue = 1;
10231 let opNewValue = 0;
10232 let addrMode = PostInc;
10233 let accessSize = WordAccess;
10234 let isPredicatedNew = 1;
10235 let mayLoad = 1;
10236 let BaseOpcode = "L2_loadri_pi";
10237 let Constraints = "$Rx32 = $Rx32in";
10238 }
10239 def L2_ploadrifnew_zomap : HInst<
10240 (outs IntRegs:$Rd32),
10241 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10242 "if (!$Pt4.new) $Rd32 = memw($Rs32)",
10243 tc_65dc7cc4, TypeMAPPING> {
10244 let hasNewValue = 1;
10245 let opNewValue = 0;
10246 let isPseudo = 1;
10247 let isCodeGenOnly = 1;
10248 }
10249 def L2_ploadrit_io : HInst<
10250 (outs IntRegs:$Rd32),
10251 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10252 "if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10253 tc_14da557c, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10254 let Inst{13-13} = 0b0;
10255 let Inst{31-21} = 0b01000001100;
10256 let isPredicated = 1;
10257 let hasNewValue = 1;
10258 let opNewValue = 0;
10259 let addrMode = BaseImmOffset;
10260 let accessSize = WordAccess;
10261 let mayLoad = 1;
10262 let CextOpcode = "L2_loadri";
10263 let BaseOpcode = "L2_loadri_io";
10264 let isExtendable = 1;
10265 let opExtendable = 3;
10266 let isExtentSigned = 0;
10267 let opExtentBits = 8;
10268 let opExtentAlign = 2;
10269 }
10270 def L2_ploadrit_pi : HInst<
10271 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10272 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10273 "if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10274 tc_ae762521, TypeLD>, Enc_b97f71, PredNewRel {
10275 let Inst{13-11} = 0b100;
10276 let Inst{31-21} = 0b10011011100;
10277 let isPredicated = 1;
10278 let hasNewValue = 1;
10279 let opNewValue = 0;
10280 let addrMode = PostInc;
10281 let accessSize = WordAccess;
10282 let mayLoad = 1;
10283 let BaseOpcode = "L2_loadri_pi";
10284 let Constraints = "$Rx32 = $Rx32in";
10285 }
10286 def L2_ploadrit_zomap : HInst<
10287 (outs IntRegs:$Rd32),
10288 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10289 "if ($Pt4) $Rd32 = memw($Rs32)",
10290 tc_14da557c, TypeMAPPING> {
10291 let hasNewValue = 1;
10292 let opNewValue = 0;
10293 let isPseudo = 1;
10294 let isCodeGenOnly = 1;
10295 }
10296 def L2_ploadritnew_io : HInst<
10297 (outs IntRegs:$Rd32),
10298 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10299 "if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10300 tc_65dc7cc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10301 let Inst{13-13} = 0b0;
10302 let Inst{31-21} = 0b01000011100;
10303 let isPredicated = 1;
10304 let hasNewValue = 1;
10305 let opNewValue = 0;
10306 let addrMode = BaseImmOffset;
10307 let accessSize = WordAccess;
10308 let isPredicatedNew = 1;
10309 let mayLoad = 1;
10310 let CextOpcode = "L2_loadri";
10311 let BaseOpcode = "L2_loadri_io";
10312 let isExtendable = 1;
10313 let opExtendable = 3;
10314 let isExtentSigned = 0;
10315 let opExtentBits = 8;
10316 let opExtentAlign = 2;
10317 }
10318 def L2_ploadritnew_pi : HInst<
10319 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10320 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10321 "if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10322 tc_e578178f, TypeLD>, Enc_b97f71, PredNewRel {
10323 let Inst{13-11} = 0b110;
10324 let Inst{31-21} = 0b10011011100;
10325 let isPredicated = 1;
10326 let hasNewValue = 1;
10327 let opNewValue = 0;
10328 let addrMode = PostInc;
10329 let accessSize = WordAccess;
10330 let isPredicatedNew = 1;
10331 let mayLoad = 1;
10332 let BaseOpcode = "L2_loadri_pi";
10333 let Constraints = "$Rx32 = $Rx32in";
10334 }
10335 def L2_ploadritnew_zomap : HInst<
10336 (outs IntRegs:$Rd32),
10337 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10338 "if ($Pt4.new) $Rd32 = memw($Rs32)",
10339 tc_65dc7cc4, TypeMAPPING> {
10340 let hasNewValue = 1;
10341 let opNewValue = 0;
10342 let isPseudo = 1;
10343 let isCodeGenOnly = 1;
10344 }
10345 def L2_ploadrubf_io : HInst<
10346 (outs IntRegs:$Rd32),
10347 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10348 "if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10349 tc_14da557c, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10350 let Inst{13-13} = 0b0;
10351 let Inst{31-21} = 0b01000101001;
10352 let isPredicated = 1;
10353 let isPredicatedFalse = 1;
10354 let hasNewValue = 1;
10355 let opNewValue = 0;
10356 let addrMode = BaseImmOffset;
10357 let accessSize = ByteAccess;
10358 let mayLoad = 1;
10359 let CextOpcode = "L2_loadrub";
10360 let BaseOpcode = "L2_loadrub_io";
10361 let isExtendable = 1;
10362 let opExtendable = 3;
10363 let isExtentSigned = 0;
10364 let opExtentBits = 6;
10365 let opExtentAlign = 0;
10366 }
10367 def L2_ploadrubf_pi : HInst<
10368 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10369 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10370 "if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10371 tc_ae762521, TypeLD>, Enc_f4413a, PredNewRel {
10372 let Inst{13-11} = 0b101;
10373 let Inst{31-21} = 0b10011011001;
10374 let isPredicated = 1;
10375 let isPredicatedFalse = 1;
10376 let hasNewValue = 1;
10377 let opNewValue = 0;
10378 let addrMode = PostInc;
10379 let accessSize = ByteAccess;
10380 let mayLoad = 1;
10381 let BaseOpcode = "L2_loadrub_pi";
10382 let Constraints = "$Rx32 = $Rx32in";
10383 }
10384 def L2_ploadrubf_zomap : HInst<
10385 (outs IntRegs:$Rd32),
10386 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10387 "if (!$Pt4) $Rd32 = memub($Rs32)",
10388 tc_14da557c, TypeMAPPING> {
10389 let hasNewValue = 1;
10390 let opNewValue = 0;
10391 let isPseudo = 1;
10392 let isCodeGenOnly = 1;
10393 }
10394 def L2_ploadrubfnew_io : HInst<
10395 (outs IntRegs:$Rd32),
10396 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10397 "if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10398 tc_65dc7cc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10399 let Inst{13-13} = 0b0;
10400 let Inst{31-21} = 0b01000111001;
10401 let isPredicated = 1;
10402 let isPredicatedFalse = 1;
10403 let hasNewValue = 1;
10404 let opNewValue = 0;
10405 let addrMode = BaseImmOffset;
10406 let accessSize = ByteAccess;
10407 let isPredicatedNew = 1;
10408 let mayLoad = 1;
10409 let CextOpcode = "L2_loadrub";
10410 let BaseOpcode = "L2_loadrub_io";
10411 let isExtendable = 1;
10412 let opExtendable = 3;
10413 let isExtentSigned = 0;
10414 let opExtentBits = 6;
10415 let opExtentAlign = 0;
10416 }
10417 def L2_ploadrubfnew_pi : HInst<
10418 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10419 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10420 "if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10421 tc_e578178f, TypeLD>, Enc_f4413a, PredNewRel {
10422 let Inst{13-11} = 0b111;
10423 let Inst{31-21} = 0b10011011001;
10424 let isPredicated = 1;
10425 let isPredicatedFalse = 1;
10426 let hasNewValue = 1;
10427 let opNewValue = 0;
10428 let addrMode = PostInc;
10429 let accessSize = ByteAccess;
10430 let isPredicatedNew = 1;
10431 let mayLoad = 1;
10432 let BaseOpcode = "L2_loadrub_pi";
10433 let Constraints = "$Rx32 = $Rx32in";
10434 }
10435 def L2_ploadrubfnew_zomap : HInst<
10436 (outs IntRegs:$Rd32),
10437 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10438 "if (!$Pt4.new) $Rd32 = memub($Rs32)",
10439 tc_65dc7cc4, TypeMAPPING> {
10440 let hasNewValue = 1;
10441 let opNewValue = 0;
10442 let isPseudo = 1;
10443 let isCodeGenOnly = 1;
10444 }
10445 def L2_ploadrubt_io : HInst<
10446 (outs IntRegs:$Rd32),
10447 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10448 "if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
10449 tc_14da557c, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10450 let Inst{13-13} = 0b0;
10451 let Inst{31-21} = 0b01000001001;
10452 let isPredicated = 1;
10453 let hasNewValue = 1;
10454 let opNewValue = 0;
10455 let addrMode = BaseImmOffset;
10456 let accessSize = ByteAccess;
10457 let mayLoad = 1;
10458 let CextOpcode = "L2_loadrub";
10459 let BaseOpcode = "L2_loadrub_io";
10460 let isExtendable = 1;
10461 let opExtendable = 3;
10462 let isExtentSigned = 0;
10463 let opExtentBits = 6;
10464 let opExtentAlign = 0;
10465 }
10466 def L2_ploadrubt_pi : HInst<
10467 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10468 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10469 "if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
10470 tc_ae762521, TypeLD>, Enc_f4413a, PredNewRel {
10471 let Inst{13-11} = 0b100;
10472 let Inst{31-21} = 0b10011011001;
10473 let isPredicated = 1;
10474 let hasNewValue = 1;
10475 let opNewValue = 0;
10476 let addrMode = PostInc;
10477 let accessSize = ByteAccess;
10478 let mayLoad = 1;
10479 let BaseOpcode = "L2_loadrub_pi";
10480 let Constraints = "$Rx32 = $Rx32in";
10481 }
10482 def L2_ploadrubt_zomap : HInst<
10483 (outs IntRegs:$Rd32),
10484 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10485 "if ($Pt4) $Rd32 = memub($Rs32)",
10486 tc_14da557c, TypeMAPPING> {
10487 let hasNewValue = 1;
10488 let opNewValue = 0;
10489 let isPseudo = 1;
10490 let isCodeGenOnly = 1;
10491 }
10492 def L2_ploadrubtnew_io : HInst<
10493 (outs IntRegs:$Rd32),
10494 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10495 "if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10496 tc_65dc7cc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10497 let Inst{13-13} = 0b0;
10498 let Inst{31-21} = 0b01000011001;
10499 let isPredicated = 1;
10500 let hasNewValue = 1;
10501 let opNewValue = 0;
10502 let addrMode = BaseImmOffset;
10503 let accessSize = ByteAccess;
10504 let isPredicatedNew = 1;
10505 let mayLoad = 1;
10506 let CextOpcode = "L2_loadrub";
10507 let BaseOpcode = "L2_loadrub_io";
10508 let isExtendable = 1;
10509 let opExtendable = 3;
10510 let isExtentSigned = 0;
10511 let opExtentBits = 6;
10512 let opExtentAlign = 0;
10513 }
10514 def L2_ploadrubtnew_pi : HInst<
10515 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10516 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10517 "if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10518 tc_e578178f, TypeLD>, Enc_f4413a, PredNewRel {
10519 let Inst{13-11} = 0b110;
10520 let Inst{31-21} = 0b10011011001;
10521 let isPredicated = 1;
10522 let hasNewValue = 1;
10523 let opNewValue = 0;
10524 let addrMode = PostInc;
10525 let accessSize = ByteAccess;
10526 let isPredicatedNew = 1;
10527 let mayLoad = 1;
10528 let BaseOpcode = "L2_loadrub_pi";
10529 let Constraints = "$Rx32 = $Rx32in";
10530 }
10531 def L2_ploadrubtnew_zomap : HInst<
10532 (outs IntRegs:$Rd32),
10533 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10534 "if ($Pt4.new) $Rd32 = memub($Rs32)",
10535 tc_65dc7cc4, TypeMAPPING> {
10536 let hasNewValue = 1;
10537 let opNewValue = 0;
10538 let isPseudo = 1;
10539 let isCodeGenOnly = 1;
10540 }
10541 def L2_ploadruhf_io : HInst<
10542 (outs IntRegs:$Rd32),
10543 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10544 "if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
10545 tc_14da557c, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10546 let Inst{13-13} = 0b0;
10547 let Inst{31-21} = 0b01000101011;
10548 let isPredicated = 1;
10549 let isPredicatedFalse = 1;
10550 let hasNewValue = 1;
10551 let opNewValue = 0;
10552 let addrMode = BaseImmOffset;
10553 let accessSize = HalfWordAccess;
10554 let mayLoad = 1;
10555 let CextOpcode = "L2_loadruh";
10556 let BaseOpcode = "L2_loadruh_io";
10557 let isExtendable = 1;
10558 let opExtendable = 3;
10559 let isExtentSigned = 0;
10560 let opExtentBits = 7;
10561 let opExtentAlign = 1;
10562 }
10563 def L2_ploadruhf_pi : HInst<
10564 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10565 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10566 "if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
10567 tc_ae762521, TypeLD>, Enc_733b27, PredNewRel {
10568 let Inst{13-11} = 0b101;
10569 let Inst{31-21} = 0b10011011011;
10570 let isPredicated = 1;
10571 let isPredicatedFalse = 1;
10572 let hasNewValue = 1;
10573 let opNewValue = 0;
10574 let addrMode = PostInc;
10575 let accessSize = HalfWordAccess;
10576 let mayLoad = 1;
10577 let BaseOpcode = "L2_loadruh_pi";
10578 let Constraints = "$Rx32 = $Rx32in";
10579 }
10580 def L2_ploadruhf_zomap : HInst<
10581 (outs IntRegs:$Rd32),
10582 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10583 "if (!$Pt4) $Rd32 = memuh($Rs32)",
10584 tc_14da557c, TypeMAPPING> {
10585 let hasNewValue = 1;
10586 let opNewValue = 0;
10587 let isPseudo = 1;
10588 let isCodeGenOnly = 1;
10589 }
10590 def L2_ploadruhfnew_io : HInst<
10591 (outs IntRegs:$Rd32),
10592 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10593 "if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
10594 tc_65dc7cc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10595 let Inst{13-13} = 0b0;
10596 let Inst{31-21} = 0b01000111011;
10597 let isPredicated = 1;
10598 let isPredicatedFalse = 1;
10599 let hasNewValue = 1;
10600 let opNewValue = 0;
10601 let addrMode = BaseImmOffset;
10602 let accessSize = HalfWordAccess;
10603 let isPredicatedNew = 1;
10604 let mayLoad = 1;
10605 let CextOpcode = "L2_loadruh";
10606 let BaseOpcode = "L2_loadruh_io";
10607 let isExtendable = 1;
10608 let opExtendable = 3;
10609 let isExtentSigned = 0;
10610 let opExtentBits = 7;
10611 let opExtentAlign = 1;
10612 }
10613 def L2_ploadruhfnew_pi : HInst<
10614 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10615 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10616 "if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
10617 tc_e578178f, TypeLD>, Enc_733b27, PredNewRel {
10618 let Inst{13-11} = 0b111;
10619 let Inst{31-21} = 0b10011011011;
10620 let isPredicated = 1;
10621 let isPredicatedFalse = 1;
10622 let hasNewValue = 1;
10623 let opNewValue = 0;
10624 let addrMode = PostInc;
10625 let accessSize = HalfWordAccess;
10626 let isPredicatedNew = 1;
10627 let mayLoad = 1;
10628 let BaseOpcode = "L2_loadruh_pi";
10629 let Constraints = "$Rx32 = $Rx32in";
10630 }
10631 def L2_ploadruhfnew_zomap : HInst<
10632 (outs IntRegs:$Rd32),
10633 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10634 "if (!$Pt4.new) $Rd32 = memuh($Rs32)",
10635 tc_65dc7cc4, TypeMAPPING> {
10636 let hasNewValue = 1;
10637 let opNewValue = 0;
10638 let isPseudo = 1;
10639 let isCodeGenOnly = 1;
10640 }
10641 def L2_ploadruht_io : HInst<
10642 (outs IntRegs:$Rd32),
10643 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10644 "if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
10645 tc_14da557c, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10646 let Inst{13-13} = 0b0;
10647 let Inst{31-21} = 0b01000001011;
10648 let isPredicated = 1;
10649 let hasNewValue = 1;
10650 let opNewValue = 0;
10651 let addrMode = BaseImmOffset;
10652 let accessSize = HalfWordAccess;
10653 let mayLoad = 1;
10654 let CextOpcode = "L2_loadruh";
10655 let BaseOpcode = "L2_loadruh_io";
10656 let isExtendable = 1;
10657 let opExtendable = 3;
10658 let isExtentSigned = 0;
10659 let opExtentBits = 7;
10660 let opExtentAlign = 1;
10661 }
10662 def L2_ploadruht_pi : HInst<
10663 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10664 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10665 "if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
10666 tc_ae762521, TypeLD>, Enc_733b27, PredNewRel {
10667 let Inst{13-11} = 0b100;
10668 let Inst{31-21} = 0b10011011011;
10669 let isPredicated = 1;
10670 let hasNewValue = 1;
10671 let opNewValue = 0;
10672 let addrMode = PostInc;
10673 let accessSize = HalfWordAccess;
10674 let mayLoad = 1;
10675 let BaseOpcode = "L2_loadruh_pi";
10676 let Constraints = "$Rx32 = $Rx32in";
10677 }
10678 def L2_ploadruht_zomap : HInst<
10679 (outs IntRegs:$Rd32),
10680 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10681 "if ($Pt4) $Rd32 = memuh($Rs32)",
10682 tc_14da557c, TypeMAPPING> {
10683 let hasNewValue = 1;
10684 let opNewValue = 0;
10685 let isPseudo = 1;
10686 let isCodeGenOnly = 1;
10687 }
10688 def L2_ploadruhtnew_io : HInst<
10689 (outs IntRegs:$Rd32),
10690 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10691 "if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
10692 tc_65dc7cc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10693 let Inst{13-13} = 0b0;
10694 let Inst{31-21} = 0b01000011011;
10695 let isPredicated = 1;
10696 let hasNewValue = 1;
10697 let opNewValue = 0;
10698 let addrMode = BaseImmOffset;
10699 let accessSize = HalfWordAccess;
10700 let isPredicatedNew = 1;
10701 let mayLoad = 1;
10702 let CextOpcode = "L2_loadruh";
10703 let BaseOpcode = "L2_loadruh_io";
10704 let isExtendable = 1;
10705 let opExtendable = 3;
10706 let isExtentSigned = 0;
10707 let opExtentBits = 7;
10708 let opExtentAlign = 1;
10709 }
10710 def L2_ploadruhtnew_pi : HInst<
10711 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10712 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10713 "if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
10714 tc_e578178f, TypeLD>, Enc_733b27, PredNewRel {
10715 let Inst{13-11} = 0b110;
10716 let Inst{31-21} = 0b10011011011;
10717 let isPredicated = 1;
10718 let hasNewValue = 1;
10719 let opNewValue = 0;
10720 let addrMode = PostInc;
10721 let accessSize = HalfWordAccess;
10722 let isPredicatedNew = 1;
10723 let mayLoad = 1;
10724 let BaseOpcode = "L2_loadruh_pi";
10725 let Constraints = "$Rx32 = $Rx32in";
10726 }
10727 def L2_ploadruhtnew_zomap : HInst<
10728 (outs IntRegs:$Rd32),
10729 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10730 "if ($Pt4.new) $Rd32 = memuh($Rs32)",
10731 tc_65dc7cc4, TypeMAPPING> {
10732 let hasNewValue = 1;
10733 let opNewValue = 0;
10734 let isPseudo = 1;
10735 let isCodeGenOnly = 1;
10736 }
10737 def L4_add_memopb_io : HInst<
10738 (outs),
10739 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
10740 "memb($Rs32+#$Ii) += $Rt32",
10741 tc_a9c993d9, TypeV4LDST>, Enc_d44e31 {
10742 let Inst{6-5} = 0b00;
10743 let Inst{13-13} = 0b0;
10744 let Inst{31-21} = 0b00111110000;
10745 let addrMode = BaseImmOffset;
10746 let accessSize = ByteAccess;
10747 let mayLoad = 1;
10748 let mayStore = 1;
10749 let isExtendable = 1;
10750 let opExtendable = 1;
10751 let isExtentSigned = 0;
10752 let opExtentBits = 6;
10753 let opExtentAlign = 0;
10754 }
10755 def L4_add_memopb_zomap : HInst<
10756 (outs),
10757 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10758 "memb($Rs32) += $Rt32",
10759 tc_a9c993d9, TypeMAPPING> {
10760 let isPseudo = 1;
10761 let isCodeGenOnly = 1;
10762 }
10763 def L4_add_memoph_io : HInst<
10764 (outs),
10765 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
10766 "memh($Rs32+#$Ii) += $Rt32",
10767 tc_a9c993d9, TypeV4LDST>, Enc_163a3c {
10768 let Inst{6-5} = 0b00;
10769 let Inst{13-13} = 0b0;
10770 let Inst{31-21} = 0b00111110001;
10771 let addrMode = BaseImmOffset;
10772 let accessSize = HalfWordAccess;
10773 let mayLoad = 1;
10774 let mayStore = 1;
10775 let isExtendable = 1;
10776 let opExtendable = 1;
10777 let isExtentSigned = 0;
10778 let opExtentBits = 7;
10779 let opExtentAlign = 1;
10780 }
10781 def L4_add_memoph_zomap : HInst<
10782 (outs),
10783 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10784 "memh($Rs32) += $Rt32",
10785 tc_a9c993d9, TypeMAPPING> {
10786 let isPseudo = 1;
10787 let isCodeGenOnly = 1;
10788 }
10789 def L4_add_memopw_io : HInst<
10790 (outs),
10791 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
10792 "memw($Rs32+#$Ii) += $Rt32",
10793 tc_a9c993d9, TypeV4LDST>, Enc_226535 {
10794 let Inst{6-5} = 0b00;
10795 let Inst{13-13} = 0b0;
10796 let Inst{31-21} = 0b00111110010;
10797 let addrMode = BaseImmOffset;
10798 let accessSize = WordAccess;
10799 let mayLoad = 1;
10800 let mayStore = 1;
10801 let isExtendable = 1;
10802 let opExtendable = 1;
10803 let isExtentSigned = 0;
10804 let opExtentBits = 8;
10805 let opExtentAlign = 2;
10806 }
10807 def L4_add_memopw_zomap : HInst<
10808 (outs),
10809 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10810 "memw($Rs32) += $Rt32",
10811 tc_a9c993d9, TypeMAPPING> {
10812 let isPseudo = 1;
10813 let isCodeGenOnly = 1;
10814 }
10815 def L4_and_memopb_io : HInst<
10816 (outs),
10817 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
10818 "memb($Rs32+#$Ii) &= $Rt32",
10819 tc_a9c993d9, TypeV4LDST>, Enc_d44e31 {
10820 let Inst{6-5} = 0b10;
10821 let Inst{13-13} = 0b0;
10822 let Inst{31-21} = 0b00111110000;
10823 let addrMode = BaseImmOffset;
10824 let accessSize = ByteAccess;
10825 let mayLoad = 1;
10826 let mayStore = 1;
10827 let isExtendable = 1;
10828 let opExtendable = 1;
10829 let isExtentSigned = 0;
10830 let opExtentBits = 6;
10831 let opExtentAlign = 0;
10832 }
10833 def L4_and_memopb_zomap : HInst<
10834 (outs),
10835 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10836 "memb($Rs32) &= $Rt32",
10837 tc_a9c993d9, TypeMAPPING> {
10838 let isPseudo = 1;
10839 let isCodeGenOnly = 1;
10840 }
10841 def L4_and_memoph_io : HInst<
10842 (outs),
10843 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
10844 "memh($Rs32+#$Ii) &= $Rt32",
10845 tc_a9c993d9, TypeV4LDST>, Enc_163a3c {
10846 let Inst{6-5} = 0b10;
10847 let Inst{13-13} = 0b0;
10848 let Inst{31-21} = 0b00111110001;
10849 let addrMode = BaseImmOffset;
10850 let accessSize = HalfWordAccess;
10851 let mayLoad = 1;
10852 let mayStore = 1;
10853 let isExtendable = 1;
10854 let opExtendable = 1;
10855 let isExtentSigned = 0;
10856 let opExtentBits = 7;
10857 let opExtentAlign = 1;
10858 }
10859 def L4_and_memoph_zomap : HInst<
10860 (outs),
10861 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10862 "memh($Rs32) &= $Rt32",
10863 tc_a9c993d9, TypeMAPPING> {
10864 let isPseudo = 1;
10865 let isCodeGenOnly = 1;
10866 }
10867 def L4_and_memopw_io : HInst<
10868 (outs),
10869 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
10870 "memw($Rs32+#$Ii) &= $Rt32",
10871 tc_a9c993d9, TypeV4LDST>, Enc_226535 {
10872 let Inst{6-5} = 0b10;
10873 let Inst{13-13} = 0b0;
10874 let Inst{31-21} = 0b00111110010;
10875 let addrMode = BaseImmOffset;
10876 let accessSize = WordAccess;
10877 let mayLoad = 1;
10878 let mayStore = 1;
10879 let isExtendable = 1;
10880 let opExtendable = 1;
10881 let isExtentSigned = 0;
10882 let opExtentBits = 8;
10883 let opExtentAlign = 2;
10884 }
10885 def L4_and_memopw_zomap : HInst<
10886 (outs),
10887 (ins IntRegs:$Rs32, IntRegs:$Rt32),
10888 "memw($Rs32) &= $Rt32",
10889 tc_a9c993d9, TypeMAPPING> {
10890 let isPseudo = 1;
10891 let isCodeGenOnly = 1;
10892 }
10893 def L4_iadd_memopb_io : HInst<
10894 (outs),
10895 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
10896 "memb($Rs32+#$Ii) += #$II",
10897 tc_da79106e, TypeV4LDST>, Enc_46c951 {
10898 let Inst{6-5} = 0b00;
10899 let Inst{13-13} = 0b0;
10900 let Inst{31-21} = 0b00111111000;
10901 let addrMode = BaseImmOffset;
10902 let accessSize = ByteAccess;
10903 let mayLoad = 1;
10904 let mayStore = 1;
10905 let isExtendable = 1;
10906 let opExtendable = 1;
10907 let isExtentSigned = 0;
10908 let opExtentBits = 6;
10909 let opExtentAlign = 0;
10910 }
10911 def L4_iadd_memopb_zomap : HInst<
10912 (outs),
10913 (ins IntRegs:$Rs32, u5_0Imm:$II),
10914 "memb($Rs32) += #$II",
10915 tc_da79106e, TypeMAPPING> {
10916 let isPseudo = 1;
10917 let isCodeGenOnly = 1;
10918 }
10919 def L4_iadd_memoph_io : HInst<
10920 (outs),
10921 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
10922 "memh($Rs32+#$Ii) += #$II",
10923 tc_da79106e, TypeV4LDST>, Enc_e66a97 {
10924 let Inst{6-5} = 0b00;
10925 let Inst{13-13} = 0b0;
10926 let Inst{31-21} = 0b00111111001;
10927 let addrMode = BaseImmOffset;
10928 let accessSize = HalfWordAccess;
10929 let mayLoad = 1;
10930 let mayStore = 1;
10931 let isExtendable = 1;
10932 let opExtendable = 1;
10933 let isExtentSigned = 0;
10934 let opExtentBits = 7;
10935 let opExtentAlign = 1;
10936 }
10937 def L4_iadd_memoph_zomap : HInst<
10938 (outs),
10939 (ins IntRegs:$Rs32, u5_0Imm:$II),
10940 "memh($Rs32) += #$II",
10941 tc_da79106e, TypeMAPPING> {
10942 let isPseudo = 1;
10943 let isCodeGenOnly = 1;
10944 }
10945 def L4_iadd_memopw_io : HInst<
10946 (outs),
10947 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
10948 "memw($Rs32+#$Ii) += #$II",
10949 tc_da79106e, TypeV4LDST>, Enc_84b2cd {
10950 let Inst{6-5} = 0b00;
10951 let Inst{13-13} = 0b0;
10952 let Inst{31-21} = 0b00111111010;
10953 let addrMode = BaseImmOffset;
10954 let accessSize = WordAccess;
10955 let mayLoad = 1;
10956 let mayStore = 1;
10957 let isExtendable = 1;
10958 let opExtendable = 1;
10959 let isExtentSigned = 0;
10960 let opExtentBits = 8;
10961 let opExtentAlign = 2;
10962 }
10963 def L4_iadd_memopw_zomap : HInst<
10964 (outs),
10965 (ins IntRegs:$Rs32, u5_0Imm:$II),
10966 "memw($Rs32) += #$II",
10967 tc_da79106e, TypeMAPPING> {
10968 let isPseudo = 1;
10969 let isCodeGenOnly = 1;
10970 }
10971 def L4_iand_memopb_io : HInst<
10972 (outs),
10973 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
10974 "memb($Rs32+#$Ii) = clrbit(#$II)",
10975 tc_da79106e, TypeV4LDST>, Enc_46c951 {
10976 let Inst{6-5} = 0b10;
10977 let Inst{13-13} = 0b0;
10978 let Inst{31-21} = 0b00111111000;
10979 let addrMode = BaseImmOffset;
10980 let accessSize = ByteAccess;
10981 let mayLoad = 1;
10982 let mayStore = 1;
10983 let isExtendable = 1;
10984 let opExtendable = 1;
10985 let isExtentSigned = 0;
10986 let opExtentBits = 6;
10987 let opExtentAlign = 0;
10988 }
10989 def L4_iand_memopb_zomap : HInst<
10990 (outs),
10991 (ins IntRegs:$Rs32, u5_0Imm:$II),
10992 "memb($Rs32) = clrbit(#$II)",
10993 tc_da79106e, TypeMAPPING> {
10994 let isPseudo = 1;
10995 let isCodeGenOnly = 1;
10996 }
10997 def L4_iand_memoph_io : HInst<
10998 (outs),
10999 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11000 "memh($Rs32+#$Ii) = clrbit(#$II)",
11001 tc_da79106e, TypeV4LDST>, Enc_e66a97 {
11002 let Inst{6-5} = 0b10;
11003 let Inst{13-13} = 0b0;
11004 let Inst{31-21} = 0b00111111001;
11005 let addrMode = BaseImmOffset;
11006 let accessSize = HalfWordAccess;
11007 let mayLoad = 1;
11008 let mayStore = 1;
11009 let isExtendable = 1;
11010 let opExtendable = 1;
11011 let isExtentSigned = 0;
11012 let opExtentBits = 7;
11013 let opExtentAlign = 1;
11014 }
11015 def L4_iand_memoph_zomap : HInst<
11016 (outs),
11017 (ins IntRegs:$Rs32, u5_0Imm:$II),
11018 "memh($Rs32) = clrbit(#$II)",
11019 tc_da79106e, TypeMAPPING> {
11020 let isPseudo = 1;
11021 let isCodeGenOnly = 1;
11022 }
11023 def L4_iand_memopw_io : HInst<
11024 (outs),
11025 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11026 "memw($Rs32+#$Ii) = clrbit(#$II)",
11027 tc_da79106e, TypeV4LDST>, Enc_84b2cd {
11028 let Inst{6-5} = 0b10;
11029 let Inst{13-13} = 0b0;
11030 let Inst{31-21} = 0b00111111010;
11031 let addrMode = BaseImmOffset;
11032 let accessSize = WordAccess;
11033 let mayLoad = 1;
11034 let mayStore = 1;
11035 let isExtendable = 1;
11036 let opExtendable = 1;
11037 let isExtentSigned = 0;
11038 let opExtentBits = 8;
11039 let opExtentAlign = 2;
11040 }
11041 def L4_iand_memopw_zomap : HInst<
11042 (outs),
11043 (ins IntRegs:$Rs32, u5_0Imm:$II),
11044 "memw($Rs32) = clrbit(#$II)",
11045 tc_da79106e, TypeMAPPING> {
11046 let isPseudo = 1;
11047 let isCodeGenOnly = 1;
11048 }
11049 def L4_ior_memopb_io : HInst<
11050 (outs),
11051 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11052 "memb($Rs32+#$Ii) = setbit(#$II)",
11053 tc_da79106e, TypeV4LDST>, Enc_46c951 {
11054 let Inst{6-5} = 0b11;
11055 let Inst{13-13} = 0b0;
11056 let Inst{31-21} = 0b00111111000;
11057 let addrMode = BaseImmOffset;
11058 let accessSize = ByteAccess;
11059 let mayLoad = 1;
11060 let mayStore = 1;
11061 let isExtendable = 1;
11062 let opExtendable = 1;
11063 let isExtentSigned = 0;
11064 let opExtentBits = 6;
11065 let opExtentAlign = 0;
11066 }
11067 def L4_ior_memopb_zomap : HInst<
11068 (outs),
11069 (ins IntRegs:$Rs32, u5_0Imm:$II),
11070 "memb($Rs32) = setbit(#$II)",
11071 tc_da79106e, TypeMAPPING> {
11072 let isPseudo = 1;
11073 let isCodeGenOnly = 1;
11074 }
11075 def L4_ior_memoph_io : HInst<
11076 (outs),
11077 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11078 "memh($Rs32+#$Ii) = setbit(#$II)",
11079 tc_da79106e, TypeV4LDST>, Enc_e66a97 {
11080 let Inst{6-5} = 0b11;
11081 let Inst{13-13} = 0b0;
11082 let Inst{31-21} = 0b00111111001;
11083 let addrMode = BaseImmOffset;
11084 let accessSize = HalfWordAccess;
11085 let mayLoad = 1;
11086 let mayStore = 1;
11087 let isExtendable = 1;
11088 let opExtendable = 1;
11089 let isExtentSigned = 0;
11090 let opExtentBits = 7;
11091 let opExtentAlign = 1;
11092 }
11093 def L4_ior_memoph_zomap : HInst<
11094 (outs),
11095 (ins IntRegs:$Rs32, u5_0Imm:$II),
11096 "memh($Rs32) = setbit(#$II)",
11097 tc_da79106e, TypeMAPPING> {
11098 let isPseudo = 1;
11099 let isCodeGenOnly = 1;
11100 }
11101 def L4_ior_memopw_io : HInst<
11102 (outs),
11103 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11104 "memw($Rs32+#$Ii) = setbit(#$II)",
11105 tc_da79106e, TypeV4LDST>, Enc_84b2cd {
11106 let Inst{6-5} = 0b11;
11107 let Inst{13-13} = 0b0;
11108 let Inst{31-21} = 0b00111111010;
11109 let addrMode = BaseImmOffset;
11110 let accessSize = WordAccess;
11111 let mayLoad = 1;
11112 let mayStore = 1;
11113 let isExtendable = 1;
11114 let opExtendable = 1;
11115 let isExtentSigned = 0;
11116 let opExtentBits = 8;
11117 let opExtentAlign = 2;
11118 }
11119 def L4_ior_memopw_zomap : HInst<
11120 (outs),
11121 (ins IntRegs:$Rs32, u5_0Imm:$II),
11122 "memw($Rs32) = setbit(#$II)",
11123 tc_da79106e, TypeMAPPING> {
11124 let isPseudo = 1;
11125 let isCodeGenOnly = 1;
11126 }
11127 def L4_isub_memopb_io : HInst<
11128 (outs),
11129 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11130 "memb($Rs32+#$Ii) -= #$II",
11131 tc_da79106e, TypeV4LDST>, Enc_46c951 {
11132 let Inst{6-5} = 0b01;
11133 let Inst{13-13} = 0b0;
11134 let Inst{31-21} = 0b00111111000;
11135 let addrMode = BaseImmOffset;
11136 let accessSize = ByteAccess;
11137 let mayLoad = 1;
11138 let mayStore = 1;
11139 let isExtendable = 1;
11140 let opExtendable = 1;
11141 let isExtentSigned = 0;
11142 let opExtentBits = 6;
11143 let opExtentAlign = 0;
11144 }
11145 def L4_isub_memopb_zomap : HInst<
11146 (outs),
11147 (ins IntRegs:$Rs32, u5_0Imm:$II),
11148 "memb($Rs32) -= #$II",
11149 tc_da79106e, TypeMAPPING> {
11150 let isPseudo = 1;
11151 let isCodeGenOnly = 1;
11152 }
11153 def L4_isub_memoph_io : HInst<
11154 (outs),
11155 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11156 "memh($Rs32+#$Ii) -= #$II",
11157 tc_da79106e, TypeV4LDST>, Enc_e66a97 {
11158 let Inst{6-5} = 0b01;
11159 let Inst{13-13} = 0b0;
11160 let Inst{31-21} = 0b00111111001;
11161 let addrMode = BaseImmOffset;
11162 let accessSize = HalfWordAccess;
11163 let mayLoad = 1;
11164 let mayStore = 1;
11165 let isExtendable = 1;
11166 let opExtendable = 1;
11167 let isExtentSigned = 0;
11168 let opExtentBits = 7;
11169 let opExtentAlign = 1;
11170 }
11171 def L4_isub_memoph_zomap : HInst<
11172 (outs),
11173 (ins IntRegs:$Rs32, u5_0Imm:$II),
11174 "memh($Rs32) -= #$II",
11175 tc_da79106e, TypeMAPPING> {
11176 let isPseudo = 1;
11177 let isCodeGenOnly = 1;
11178 }
11179 def L4_isub_memopw_io : HInst<
11180 (outs),
11181 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11182 "memw($Rs32+#$Ii) -= #$II",
11183 tc_da79106e, TypeV4LDST>, Enc_84b2cd {
11184 let Inst{6-5} = 0b01;
11185 let Inst{13-13} = 0b0;
11186 let Inst{31-21} = 0b00111111010;
11187 let addrMode = BaseImmOffset;
11188 let accessSize = WordAccess;
11189 let mayLoad = 1;
11190 let mayStore = 1;
11191 let isExtendable = 1;
11192 let opExtendable = 1;
11193 let isExtentSigned = 0;
11194 let opExtentBits = 8;
11195 let opExtentAlign = 2;
11196 }
11197 def L4_isub_memopw_zomap : HInst<
11198 (outs),
11199 (ins IntRegs:$Rs32, u5_0Imm:$II),
11200 "memw($Rs32) -= #$II",
11201 tc_da79106e, TypeMAPPING> {
11202 let isPseudo = 1;
11203 let isCodeGenOnly = 1;
11204 }
11205 def L4_loadalignb_ap : HInst<
11206 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11207 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11208 "$Ryy32 = memb_fifo($Re32=#$II)",
11209 tc_261d9b78, TypeLD>, Enc_f394d3 {
11210 let Inst{7-7} = 0b0;
11211 let Inst{13-12} = 0b01;
11212 let Inst{31-21} = 0b10011010100;
11213 let hasNewValue = 1;
11214 let opNewValue = 1;
11215 let addrMode = AbsoluteSet;
11216 let accessSize = ByteAccess;
11217 let mayLoad = 1;
11218 let isExtended = 1;
11219 let DecoderNamespace = "MustExtend";
11220 let isExtendable = 1;
11221 let opExtendable = 3;
11222 let isExtentSigned = 0;
11223 let opExtentBits = 6;
11224 let opExtentAlign = 0;
11225 let Constraints = "$Ryy32 = $Ryy32in";
11226 }
11227 def L4_loadalignb_ur : HInst<
11228 (outs DoubleRegs:$Ryy32),
11229 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11230 "$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11231 tc_baccf077, TypeLD>, Enc_04c959 {
11232 let Inst{12-12} = 0b1;
11233 let Inst{31-21} = 0b10011100100;
11234 let addrMode = BaseLongOffset;
11235 let accessSize = ByteAccess;
11236 let mayLoad = 1;
11237 let isExtended = 1;
11238 let InputType = "imm";
11239 let DecoderNamespace = "MustExtend";
11240 let isExtendable = 1;
11241 let opExtendable = 4;
11242 let isExtentSigned = 0;
11243 let opExtentBits = 6;
11244 let opExtentAlign = 0;
11245 let Constraints = "$Ryy32 = $Ryy32in";
11246 }
11247 def L4_loadalignh_ap : HInst<
11248 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11249 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11250 "$Ryy32 = memh_fifo($Re32=#$II)",
11251 tc_261d9b78, TypeLD>, Enc_f394d3 {
11252 let Inst{7-7} = 0b0;
11253 let Inst{13-12} = 0b01;
11254 let Inst{31-21} = 0b10011010010;
11255 let hasNewValue = 1;
11256 let opNewValue = 1;
11257 let addrMode = AbsoluteSet;
11258 let accessSize = HalfWordAccess;
11259 let mayLoad = 1;
11260 let isExtended = 1;
11261 let DecoderNamespace = "MustExtend";
11262 let isExtendable = 1;
11263 let opExtendable = 3;
11264 let isExtentSigned = 0;
11265 let opExtentBits = 6;
11266 let opExtentAlign = 0;
11267 let Constraints = "$Ryy32 = $Ryy32in";
11268 }
11269 def L4_loadalignh_ur : HInst<
11270 (outs DoubleRegs:$Ryy32),
11271 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11272 "$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11273 tc_baccf077, TypeLD>, Enc_04c959 {
11274 let Inst{12-12} = 0b1;
11275 let Inst{31-21} = 0b10011100010;
11276 let addrMode = BaseLongOffset;
11277 let accessSize = HalfWordAccess;
11278 let mayLoad = 1;
11279 let isExtended = 1;
11280 let InputType = "imm";
11281 let DecoderNamespace = "MustExtend";
11282 let isExtendable = 1;
11283 let opExtendable = 4;
11284 let isExtentSigned = 0;
11285 let opExtentBits = 6;
11286 let opExtentAlign = 0;
11287 let Constraints = "$Ryy32 = $Ryy32in";
11288 }
11289 def L4_loadbsw2_ap : HInst<
11290 (outs IntRegs:$Rd32, IntRegs:$Re32),
11291 (ins u32_0Imm:$II),
11292 "$Rd32 = membh($Re32=#$II)",
11293 tc_b5f5a094, TypeLD>, Enc_323f2d {
11294 let Inst{7-7} = 0b0;
11295 let Inst{13-12} = 0b01;
11296 let Inst{31-21} = 0b10011010001;
11297 let hasNewValue = 1;
11298 let opNewValue = 0;
11299 let hasNewValue2 = 1;
11300 let opNewValue2 = 1;
11301 let addrMode = AbsoluteSet;
11302 let accessSize = HalfWordAccess;
11303 let mayLoad = 1;
11304 let isExtended = 1;
11305 let DecoderNamespace = "MustExtend";
11306 let isExtendable = 1;
11307 let opExtendable = 2;
11308 let isExtentSigned = 0;
11309 let opExtentBits = 6;
11310 let opExtentAlign = 0;
11311 }
11312 def L4_loadbsw2_ur : HInst<
11313 (outs IntRegs:$Rd32),
11314 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11315 "$Rd32 = membh($Rt32<<#$Ii+#$II)",
11316 tc_7d9a56cd, TypeLD>, Enc_4f677b {
11317 let Inst{12-12} = 0b1;
11318 let Inst{31-21} = 0b10011100001;
11319 let hasNewValue = 1;
11320 let opNewValue = 0;
11321 let addrMode = BaseLongOffset;
11322 let accessSize = HalfWordAccess;
11323 let mayLoad = 1;
11324 let isExtended = 1;
11325 let InputType = "imm";
11326 let DecoderNamespace = "MustExtend";
11327 let isExtendable = 1;
11328 let opExtendable = 3;
11329 let isExtentSigned = 0;
11330 let opExtentBits = 6;
11331 let opExtentAlign = 0;
11332 }
11333 def L4_loadbsw4_ap : HInst<
11334 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11335 (ins u32_0Imm:$II),
11336 "$Rdd32 = membh($Re32=#$II)",
11337 tc_b5f5a094, TypeLD>, Enc_7fa7f6 {
11338 let Inst{7-7} = 0b0;
11339 let Inst{13-12} = 0b01;
11340 let Inst{31-21} = 0b10011010111;
11341 let hasNewValue = 1;
11342 let opNewValue = 1;
11343 let addrMode = AbsoluteSet;
11344 let accessSize = WordAccess;
11345 let mayLoad = 1;
11346 let isExtended = 1;
11347 let DecoderNamespace = "MustExtend";
11348 let isExtendable = 1;
11349 let opExtendable = 2;
11350 let isExtentSigned = 0;
11351 let opExtentBits = 6;
11352 let opExtentAlign = 0;
11353 }
11354 def L4_loadbsw4_ur : HInst<
11355 (outs DoubleRegs:$Rdd32),
11356 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11357 "$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11358 tc_7d9a56cd, TypeLD>, Enc_6185fe {
11359 let Inst{12-12} = 0b1;
11360 let Inst{31-21} = 0b10011100111;
11361 let addrMode = BaseLongOffset;
11362 let accessSize = WordAccess;
11363 let mayLoad = 1;
11364 let isExtended = 1;
11365 let InputType = "imm";
11366 let DecoderNamespace = "MustExtend";
11367 let isExtendable = 1;
11368 let opExtendable = 3;
11369 let isExtentSigned = 0;
11370 let opExtentBits = 6;
11371 let opExtentAlign = 0;
11372 }
11373 def L4_loadbzw2_ap : HInst<
11374 (outs IntRegs:$Rd32, IntRegs:$Re32),
11375 (ins u32_0Imm:$II),
11376 "$Rd32 = memubh($Re32=#$II)",
11377 tc_b5f5a094, TypeLD>, Enc_323f2d {
11378 let Inst{7-7} = 0b0;
11379 let Inst{13-12} = 0b01;
11380 let Inst{31-21} = 0b10011010011;
11381 let hasNewValue = 1;
11382 let opNewValue = 0;
11383 let hasNewValue2 = 1;
11384 let opNewValue2 = 1;
11385 let addrMode = AbsoluteSet;
11386 let accessSize = HalfWordAccess;
11387 let mayLoad = 1;
11388 let isExtended = 1;
11389 let DecoderNamespace = "MustExtend";
11390 let isExtendable = 1;
11391 let opExtendable = 2;
11392 let isExtentSigned = 0;
11393 let opExtentBits = 6;
11394 let opExtentAlign = 0;
11395 }
11396 def L4_loadbzw2_ur : HInst<
11397 (outs IntRegs:$Rd32),
11398 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11399 "$Rd32 = memubh($Rt32<<#$Ii+#$II)",
11400 tc_7d9a56cd, TypeLD>, Enc_4f677b {
11401 let Inst{12-12} = 0b1;
11402 let Inst{31-21} = 0b10011100011;
11403 let hasNewValue = 1;
11404 let opNewValue = 0;
11405 let addrMode = BaseLongOffset;
11406 let accessSize = HalfWordAccess;
11407 let mayLoad = 1;
11408 let isExtended = 1;
11409 let InputType = "imm";
11410 let DecoderNamespace = "MustExtend";
11411 let isExtendable = 1;
11412 let opExtendable = 3;
11413 let isExtentSigned = 0;
11414 let opExtentBits = 6;
11415 let opExtentAlign = 0;
11416 }
11417 def L4_loadbzw4_ap : HInst<
11418 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11419 (ins u32_0Imm:$II),
11420 "$Rdd32 = memubh($Re32=#$II)",
11421 tc_b5f5a094, TypeLD>, Enc_7fa7f6 {
11422 let Inst{7-7} = 0b0;
11423 let Inst{13-12} = 0b01;
11424 let Inst{31-21} = 0b10011010101;
11425 let hasNewValue = 1;
11426 let opNewValue = 1;
11427 let addrMode = AbsoluteSet;
11428 let accessSize = WordAccess;
11429 let mayLoad = 1;
11430 let isExtended = 1;
11431 let DecoderNamespace = "MustExtend";
11432 let isExtendable = 1;
11433 let opExtendable = 2;
11434 let isExtentSigned = 0;
11435 let opExtentBits = 6;
11436 let opExtentAlign = 0;
11437 }
11438 def L4_loadbzw4_ur : HInst<
11439 (outs DoubleRegs:$Rdd32),
11440 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11441 "$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
11442 tc_7d9a56cd, TypeLD>, Enc_6185fe {
11443 let Inst{12-12} = 0b1;
11444 let Inst{31-21} = 0b10011100101;
11445 let addrMode = BaseLongOffset;
11446 let accessSize = WordAccess;
11447 let mayLoad = 1;
11448 let isExtended = 1;
11449 let InputType = "imm";
11450 let DecoderNamespace = "MustExtend";
11451 let isExtendable = 1;
11452 let opExtendable = 3;
11453 let isExtentSigned = 0;
11454 let opExtentBits = 6;
11455 let opExtentAlign = 0;
11456 }
11457 def L4_loadd_locked : HInst<
11458 (outs DoubleRegs:$Rdd32),
11459 (ins IntRegs:$Rs32),
11460 "$Rdd32 = memd_locked($Rs32)",
11461 tc_29c14515, TypeLD>, Enc_3a3d62 {
11462 let Inst{13-5} = 0b010000000;
11463 let Inst{31-21} = 0b10010010000;
11464 let accessSize = DoubleWordAccess;
11465 let mayLoad = 1;
11466 let isSoloAX = 1;
11467 }
11468 def L4_loadrb_ap : HInst<
11469 (outs IntRegs:$Rd32, IntRegs:$Re32),
11470 (ins u32_0Imm:$II),
11471 "$Rd32 = memb($Re32=#$II)",
11472 tc_b5f5a094, TypeLD>, Enc_323f2d {
11473 let Inst{7-7} = 0b0;
11474 let Inst{13-12} = 0b01;
11475 let Inst{31-21} = 0b10011011000;
11476 let hasNewValue = 1;
11477 let opNewValue = 0;
11478 let hasNewValue2 = 1;
11479 let opNewValue2 = 1;
11480 let addrMode = AbsoluteSet;
11481 let accessSize = ByteAccess;
11482 let mayLoad = 1;
11483 let isExtended = 1;
11484 let DecoderNamespace = "MustExtend";
11485 let isExtendable = 1;
11486 let opExtendable = 2;
11487 let isExtentSigned = 0;
11488 let opExtentBits = 6;
11489 let opExtentAlign = 0;
11490 }
11491 def L4_loadrb_rr : HInst<
11492 (outs IntRegs:$Rd32),
11493 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11494 "$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
11495 tc_5625c6c1, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11496 let Inst{6-5} = 0b00;
11497 let Inst{31-21} = 0b00111010000;
11498 let hasNewValue = 1;
11499 let opNewValue = 0;
11500 let addrMode = BaseRegOffset;
11501 let accessSize = ByteAccess;
11502 let mayLoad = 1;
11503 let CextOpcode = "L2_loadrb";
11504 let InputType = "reg";
11505 let BaseOpcode = "L4_loadrb_rr";
11506 let isPredicable = 1;
11507 }
11508 def L4_loadrb_ur : HInst<
11509 (outs IntRegs:$Rd32),
11510 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11511 "$Rd32 = memb($Rt32<<#$Ii+#$II)",
11512 tc_7d9a56cd, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11513 let Inst{12-12} = 0b1;
11514 let Inst{31-21} = 0b10011101000;
11515 let hasNewValue = 1;
11516 let opNewValue = 0;
11517 let addrMode = BaseLongOffset;
11518 let accessSize = ByteAccess;
11519 let mayLoad = 1;
11520 let isExtended = 1;
11521 let CextOpcode = "L2_loadrb";
11522 let InputType = "imm";
11523 let DecoderNamespace = "MustExtend";
11524 let isExtendable = 1;
11525 let opExtendable = 3;
11526 let isExtentSigned = 0;
11527 let opExtentBits = 6;
11528 let opExtentAlign = 0;
11529 }
11530 def L4_loadrd_ap : HInst<
11531 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11532 (ins u32_0Imm:$II),
11533 "$Rdd32 = memd($Re32=#$II)",
11534 tc_b5f5a094, TypeLD>, Enc_7fa7f6 {
11535 let Inst{7-7} = 0b0;
11536 let Inst{13-12} = 0b01;
11537 let Inst{31-21} = 0b10011011110;
11538 let hasNewValue = 1;
11539 let opNewValue = 1;
11540 let addrMode = AbsoluteSet;
11541 let accessSize = DoubleWordAccess;
11542 let mayLoad = 1;
11543 let isExtended = 1;
11544 let DecoderNamespace = "MustExtend";
11545 let isExtendable = 1;
11546 let opExtendable = 2;
11547 let isExtentSigned = 0;
11548 let opExtentBits = 6;
11549 let opExtentAlign = 0;
11550 }
11551 def L4_loadrd_rr : HInst<
11552 (outs DoubleRegs:$Rdd32),
11553 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11554 "$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
11555 tc_5625c6c1, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
11556 let Inst{6-5} = 0b00;
11557 let Inst{31-21} = 0b00111010110;
11558 let addrMode = BaseRegOffset;
11559 let accessSize = DoubleWordAccess;
11560 let mayLoad = 1;
11561 let CextOpcode = "L2_loadrd";
11562 let InputType = "reg";
11563 let BaseOpcode = "L4_loadrd_rr";
11564 let isPredicable = 1;
11565 }
11566 def L4_loadrd_ur : HInst<
11567 (outs DoubleRegs:$Rdd32),
11568 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11569 "$Rdd32 = memd($Rt32<<#$Ii+#$II)",
11570 tc_7d9a56cd, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
11571 let Inst{12-12} = 0b1;
11572 let Inst{31-21} = 0b10011101110;
11573 let addrMode = BaseLongOffset;
11574 let accessSize = DoubleWordAccess;
11575 let mayLoad = 1;
11576 let isExtended = 1;
11577 let CextOpcode = "L2_loadrd";
11578 let InputType = "imm";
11579 let DecoderNamespace = "MustExtend";
11580 let isExtendable = 1;
11581 let opExtendable = 3;
11582 let isExtentSigned = 0;
11583 let opExtentBits = 6;
11584 let opExtentAlign = 0;
11585 }
11586 def L4_loadrh_ap : HInst<
11587 (outs IntRegs:$Rd32, IntRegs:$Re32),
11588 (ins u32_0Imm:$II),
11589 "$Rd32 = memh($Re32=#$II)",
11590 tc_b5f5a094, TypeLD>, Enc_323f2d {
11591 let Inst{7-7} = 0b0;
11592 let Inst{13-12} = 0b01;
11593 let Inst{31-21} = 0b10011011010;
11594 let hasNewValue = 1;
11595 let opNewValue = 0;
11596 let hasNewValue2 = 1;
11597 let opNewValue2 = 1;
11598 let addrMode = AbsoluteSet;
11599 let accessSize = HalfWordAccess;
11600 let mayLoad = 1;
11601 let isExtended = 1;
11602 let DecoderNamespace = "MustExtend";
11603 let isExtendable = 1;
11604 let opExtendable = 2;
11605 let isExtentSigned = 0;
11606 let opExtentBits = 6;
11607 let opExtentAlign = 0;
11608 }
11609 def L4_loadrh_rr : HInst<
11610 (outs IntRegs:$Rd32),
11611 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11612 "$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
11613 tc_5625c6c1, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11614 let Inst{6-5} = 0b00;
11615 let Inst{31-21} = 0b00111010010;
11616 let hasNewValue = 1;
11617 let opNewValue = 0;
11618 let addrMode = BaseRegOffset;
11619 let accessSize = HalfWordAccess;
11620 let mayLoad = 1;
11621 let CextOpcode = "L2_loadrh";
11622 let InputType = "reg";
11623 let BaseOpcode = "L4_loadrh_rr";
11624 let isPredicable = 1;
11625 }
11626 def L4_loadrh_ur : HInst<
11627 (outs IntRegs:$Rd32),
11628 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11629 "$Rd32 = memh($Rt32<<#$Ii+#$II)",
11630 tc_7d9a56cd, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11631 let Inst{12-12} = 0b1;
11632 let Inst{31-21} = 0b10011101010;
11633 let hasNewValue = 1;
11634 let opNewValue = 0;
11635 let addrMode = BaseLongOffset;
11636 let accessSize = HalfWordAccess;
11637 let mayLoad = 1;
11638 let isExtended = 1;
11639 let CextOpcode = "L2_loadrh";
11640 let InputType = "imm";
11641 let DecoderNamespace = "MustExtend";
11642 let isExtendable = 1;
11643 let opExtendable = 3;
11644 let isExtentSigned = 0;
11645 let opExtentBits = 6;
11646 let opExtentAlign = 0;
11647 }
11648 def L4_loadri_ap : HInst<
11649 (outs IntRegs:$Rd32, IntRegs:$Re32),
11650 (ins u32_0Imm:$II),
11651 "$Rd32 = memw($Re32=#$II)",
11652 tc_b5f5a094, TypeLD>, Enc_323f2d {
11653 let Inst{7-7} = 0b0;
11654 let Inst{13-12} = 0b01;
11655 let Inst{31-21} = 0b10011011100;
11656 let hasNewValue = 1;
11657 let opNewValue = 0;
11658 let hasNewValue2 = 1;
11659 let opNewValue2 = 1;
11660 let addrMode = AbsoluteSet;
11661 let accessSize = WordAccess;
11662 let mayLoad = 1;
11663 let isExtended = 1;
11664 let DecoderNamespace = "MustExtend";
11665 let isExtendable = 1;
11666 let opExtendable = 2;
11667 let isExtentSigned = 0;
11668 let opExtentBits = 6;
11669 let opExtentAlign = 0;
11670 }
11671 def L4_loadri_rr : HInst<
11672 (outs IntRegs:$Rd32),
11673 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11674 "$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
11675 tc_5625c6c1, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11676 let Inst{6-5} = 0b00;
11677 let Inst{31-21} = 0b00111010100;
11678 let hasNewValue = 1;
11679 let opNewValue = 0;
11680 let addrMode = BaseRegOffset;
11681 let accessSize = WordAccess;
11682 let mayLoad = 1;
11683 let CextOpcode = "L2_loadri";
11684 let InputType = "reg";
11685 let BaseOpcode = "L4_loadri_rr";
11686 let isPredicable = 1;
11687 }
11688 def L4_loadri_ur : HInst<
11689 (outs IntRegs:$Rd32),
11690 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11691 "$Rd32 = memw($Rt32<<#$Ii+#$II)",
11692 tc_7d9a56cd, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11693 let Inst{12-12} = 0b1;
11694 let Inst{31-21} = 0b10011101100;
11695 let hasNewValue = 1;
11696 let opNewValue = 0;
11697 let addrMode = BaseLongOffset;
11698 let accessSize = WordAccess;
11699 let mayLoad = 1;
11700 let isExtended = 1;
11701 let CextOpcode = "L2_loadri";
11702 let InputType = "imm";
11703 let DecoderNamespace = "MustExtend";
11704 let isExtendable = 1;
11705 let opExtendable = 3;
11706 let isExtentSigned = 0;
11707 let opExtentBits = 6;
11708 let opExtentAlign = 0;
11709 }
11710 def L4_loadrub_ap : HInst<
11711 (outs IntRegs:$Rd32, IntRegs:$Re32),
11712 (ins u32_0Imm:$II),
11713 "$Rd32 = memub($Re32=#$II)",
11714 tc_b5f5a094, TypeLD>, Enc_323f2d {
11715 let Inst{7-7} = 0b0;
11716 let Inst{13-12} = 0b01;
11717 let Inst{31-21} = 0b10011011001;
11718 let hasNewValue = 1;
11719 let opNewValue = 0;
11720 let hasNewValue2 = 1;
11721 let opNewValue2 = 1;
11722 let addrMode = AbsoluteSet;
11723 let accessSize = ByteAccess;
11724 let mayLoad = 1;
11725 let isExtended = 1;
11726 let DecoderNamespace = "MustExtend";
11727 let isExtendable = 1;
11728 let opExtendable = 2;
11729 let isExtentSigned = 0;
11730 let opExtentBits = 6;
11731 let opExtentAlign = 0;
11732 }
11733 def L4_loadrub_rr : HInst<
11734 (outs IntRegs:$Rd32),
11735 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11736 "$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
11737 tc_5625c6c1, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11738 let Inst{6-5} = 0b00;
11739 let Inst{31-21} = 0b00111010001;
11740 let hasNewValue = 1;
11741 let opNewValue = 0;
11742 let addrMode = BaseRegOffset;
11743 let accessSize = ByteAccess;
11744 let mayLoad = 1;
11745 let CextOpcode = "L2_loadrub";
11746 let InputType = "reg";
11747 let BaseOpcode = "L4_loadrub_rr";
11748 let isPredicable = 1;
11749 }
11750 def L4_loadrub_ur : HInst<
11751 (outs IntRegs:$Rd32),
11752 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11753 "$Rd32 = memub($Rt32<<#$Ii+#$II)",
11754 tc_7d9a56cd, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11755 let Inst{12-12} = 0b1;
11756 let Inst{31-21} = 0b10011101001;
11757 let hasNewValue = 1;
11758 let opNewValue = 0;
11759 let addrMode = BaseLongOffset;
11760 let accessSize = ByteAccess;
11761 let mayLoad = 1;
11762 let isExtended = 1;
11763 let CextOpcode = "L2_loadrub";
11764 let InputType = "imm";
11765 let DecoderNamespace = "MustExtend";
11766 let isExtendable = 1;
11767 let opExtendable = 3;
11768 let isExtentSigned = 0;
11769 let opExtentBits = 6;
11770 let opExtentAlign = 0;
11771 }
11772 def L4_loadruh_ap : HInst<
11773 (outs IntRegs:$Rd32, IntRegs:$Re32),
11774 (ins u32_0Imm:$II),
11775 "$Rd32 = memuh($Re32=#$II)",
11776 tc_b5f5a094, TypeLD>, Enc_323f2d {
11777 let Inst{7-7} = 0b0;
11778 let Inst{13-12} = 0b01;
11779 let Inst{31-21} = 0b10011011011;
11780 let hasNewValue = 1;
11781 let opNewValue = 0;
11782 let hasNewValue2 = 1;
11783 let opNewValue2 = 1;
11784 let addrMode = AbsoluteSet;
11785 let accessSize = HalfWordAccess;
11786 let mayLoad = 1;
11787 let isExtended = 1;
11788 let DecoderNamespace = "MustExtend";
11789 let isExtendable = 1;
11790 let opExtendable = 2;
11791 let isExtentSigned = 0;
11792 let opExtentBits = 6;
11793 let opExtentAlign = 0;
11794 }
11795 def L4_loadruh_rr : HInst<
11796 (outs IntRegs:$Rd32),
11797 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11798 "$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
11799 tc_5625c6c1, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11800 let Inst{6-5} = 0b00;
11801 let Inst{31-21} = 0b00111010011;
11802 let hasNewValue = 1;
11803 let opNewValue = 0;
11804 let addrMode = BaseRegOffset;
11805 let accessSize = HalfWordAccess;
11806 let mayLoad = 1;
11807 let CextOpcode = "L2_loadruh";
11808 let InputType = "reg";
11809 let BaseOpcode = "L4_loadruh_rr";
11810 let isPredicable = 1;
11811 }
11812 def L4_loadruh_ur : HInst<
11813 (outs IntRegs:$Rd32),
11814 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11815 "$Rd32 = memuh($Rt32<<#$Ii+#$II)",
11816 tc_7d9a56cd, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11817 let Inst{12-12} = 0b1;
11818 let Inst{31-21} = 0b10011101011;
11819 let hasNewValue = 1;
11820 let opNewValue = 0;
11821 let addrMode = BaseLongOffset;
11822 let accessSize = HalfWordAccess;
11823 let mayLoad = 1;
11824 let isExtended = 1;
11825 let CextOpcode = "L2_loadruh";
11826 let InputType = "imm";
11827 let DecoderNamespace = "MustExtend";
11828 let isExtendable = 1;
11829 let opExtendable = 3;
11830 let isExtentSigned = 0;
11831 let opExtentBits = 6;
11832 let opExtentAlign = 0;
11833 }
11834 def L4_or_memopb_io : HInst<
11835 (outs),
11836 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11837 "memb($Rs32+#$Ii) |= $Rt32",
11838 tc_a9c993d9, TypeV4LDST>, Enc_d44e31 {
11839 let Inst{6-5} = 0b11;
11840 let Inst{13-13} = 0b0;
11841 let Inst{31-21} = 0b00111110000;
11842 let addrMode = BaseImmOffset;
11843 let accessSize = ByteAccess;
11844 let mayLoad = 1;
11845 let mayStore = 1;
11846 let isExtendable = 1;
11847 let opExtendable = 1;
11848 let isExtentSigned = 0;
11849 let opExtentBits = 6;
11850 let opExtentAlign = 0;
11851 }
11852 def L4_or_memopb_zomap : HInst<
11853 (outs),
11854 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11855 "memb($Rs32) |= $Rt32",
11856 tc_a9c993d9, TypeMAPPING> {
11857 let isPseudo = 1;
11858 let isCodeGenOnly = 1;
11859 }
11860 def L4_or_memoph_io : HInst<
11861 (outs),
11862 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11863 "memh($Rs32+#$Ii) |= $Rt32",
11864 tc_a9c993d9, TypeV4LDST>, Enc_163a3c {
11865 let Inst{6-5} = 0b11;
11866 let Inst{13-13} = 0b0;
11867 let Inst{31-21} = 0b00111110001;
11868 let addrMode = BaseImmOffset;
11869 let accessSize = HalfWordAccess;
11870 let mayLoad = 1;
11871 let mayStore = 1;
11872 let isExtendable = 1;
11873 let opExtendable = 1;
11874 let isExtentSigned = 0;
11875 let opExtentBits = 7;
11876 let opExtentAlign = 1;
11877 }
11878 def L4_or_memoph_zomap : HInst<
11879 (outs),
11880 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11881 "memh($Rs32) |= $Rt32",
11882 tc_a9c993d9, TypeMAPPING> {
11883 let isPseudo = 1;
11884 let isCodeGenOnly = 1;
11885 }
11886 def L4_or_memopw_io : HInst<
11887 (outs),
11888 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11889 "memw($Rs32+#$Ii) |= $Rt32",
11890 tc_a9c993d9, TypeV4LDST>, Enc_226535 {
11891 let Inst{6-5} = 0b11;
11892 let Inst{13-13} = 0b0;
11893 let Inst{31-21} = 0b00111110010;
11894 let addrMode = BaseImmOffset;
11895 let accessSize = WordAccess;
11896 let mayLoad = 1;
11897 let mayStore = 1;
11898 let isExtendable = 1;
11899 let opExtendable = 1;
11900 let isExtentSigned = 0;
11901 let opExtentBits = 8;
11902 let opExtentAlign = 2;
11903 }
11904 def L4_or_memopw_zomap : HInst<
11905 (outs),
11906 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11907 "memw($Rs32) |= $Rt32",
11908 tc_a9c993d9, TypeMAPPING> {
11909 let isPseudo = 1;
11910 let isCodeGenOnly = 1;
11911 }
11912 def L4_ploadrbf_abs : HInst<
11913 (outs IntRegs:$Rd32),
11914 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
11915 "if (!$Pt4) $Rd32 = memb(#$Ii)",
11916 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
11917 let Inst{7-5} = 0b100;
11918 let Inst{13-11} = 0b101;
11919 let Inst{31-21} = 0b10011111000;
11920 let isPredicated = 1;
11921 let isPredicatedFalse = 1;
11922 let hasNewValue = 1;
11923 let opNewValue = 0;
11924 let addrMode = Absolute;
11925 let accessSize = ByteAccess;
11926 let mayLoad = 1;
11927 let isExtended = 1;
11928 let CextOpcode = "L2_loadrb";
11929 let BaseOpcode = "L4_loadrb_abs";
11930 let DecoderNamespace = "MustExtend";
11931 let isExtendable = 1;
11932 let opExtendable = 2;
11933 let isExtentSigned = 0;
11934 let opExtentBits = 6;
11935 let opExtentAlign = 0;
11936 }
11937 def L4_ploadrbf_rr : HInst<
11938 (outs IntRegs:$Rd32),
11939 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11940 "if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
11941 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
11942 let Inst{31-21} = 0b00110001000;
11943 let isPredicated = 1;
11944 let isPredicatedFalse = 1;
11945 let hasNewValue = 1;
11946 let opNewValue = 0;
11947 let addrMode = BaseRegOffset;
11948 let accessSize = ByteAccess;
11949 let mayLoad = 1;
11950 let CextOpcode = "L2_loadrb";
11951 let InputType = "reg";
11952 let BaseOpcode = "L4_loadrb_rr";
11953 }
11954 def L4_ploadrbfnew_abs : HInst<
11955 (outs IntRegs:$Rd32),
11956 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
11957 "if (!$Pt4.new) $Rd32 = memb(#$Ii)",
11958 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
11959 let Inst{7-5} = 0b100;
11960 let Inst{13-11} = 0b111;
11961 let Inst{31-21} = 0b10011111000;
11962 let isPredicated = 1;
11963 let isPredicatedFalse = 1;
11964 let hasNewValue = 1;
11965 let opNewValue = 0;
11966 let addrMode = Absolute;
11967 let accessSize = ByteAccess;
11968 let isPredicatedNew = 1;
11969 let mayLoad = 1;
11970 let isExtended = 1;
11971 let CextOpcode = "L2_loadrb";
11972 let BaseOpcode = "L4_loadrb_abs";
11973 let DecoderNamespace = "MustExtend";
11974 let isExtendable = 1;
11975 let opExtendable = 2;
11976 let isExtentSigned = 0;
11977 let opExtentBits = 6;
11978 let opExtentAlign = 0;
11979 }
11980 def L4_ploadrbfnew_rr : HInst<
11981 (outs IntRegs:$Rd32),
11982 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11983 "if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
11984 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
11985 let Inst{31-21} = 0b00110011000;
11986 let isPredicated = 1;
11987 let isPredicatedFalse = 1;
11988 let hasNewValue = 1;
11989 let opNewValue = 0;
11990 let addrMode = BaseRegOffset;
11991 let accessSize = ByteAccess;
11992 let isPredicatedNew = 1;
11993 let mayLoad = 1;
11994 let CextOpcode = "L2_loadrb";
11995 let InputType = "reg";
11996 let BaseOpcode = "L4_loadrb_rr";
11997 }
11998 def L4_ploadrbt_abs : HInst<
11999 (outs IntRegs:$Rd32),
12000 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12001 "if ($Pt4) $Rd32 = memb(#$Ii)",
12002 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12003 let Inst{7-5} = 0b100;
12004 let Inst{13-11} = 0b100;
12005 let Inst{31-21} = 0b10011111000;
12006 let isPredicated = 1;
12007 let hasNewValue = 1;
12008 let opNewValue = 0;
12009 let addrMode = Absolute;
12010 let accessSize = ByteAccess;
12011 let mayLoad = 1;
12012 let isExtended = 1;
12013 let CextOpcode = "L2_loadrb";
12014 let BaseOpcode = "L4_loadrb_abs";
12015 let DecoderNamespace = "MustExtend";
12016 let isExtendable = 1;
12017 let opExtendable = 2;
12018 let isExtentSigned = 0;
12019 let opExtentBits = 6;
12020 let opExtentAlign = 0;
12021 }
12022 def L4_ploadrbt_rr : HInst<
12023 (outs IntRegs:$Rd32),
12024 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12025 "if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12026 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12027 let Inst{31-21} = 0b00110000000;
12028 let isPredicated = 1;
12029 let hasNewValue = 1;
12030 let opNewValue = 0;
12031 let addrMode = BaseRegOffset;
12032 let accessSize = ByteAccess;
12033 let mayLoad = 1;
12034 let CextOpcode = "L2_loadrb";
12035 let InputType = "reg";
12036 let BaseOpcode = "L4_loadrb_rr";
12037 }
12038 def L4_ploadrbtnew_abs : HInst<
12039 (outs IntRegs:$Rd32),
12040 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12041 "if ($Pt4.new) $Rd32 = memb(#$Ii)",
12042 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12043 let Inst{7-5} = 0b100;
12044 let Inst{13-11} = 0b110;
12045 let Inst{31-21} = 0b10011111000;
12046 let isPredicated = 1;
12047 let hasNewValue = 1;
12048 let opNewValue = 0;
12049 let addrMode = Absolute;
12050 let accessSize = ByteAccess;
12051 let isPredicatedNew = 1;
12052 let mayLoad = 1;
12053 let isExtended = 1;
12054 let CextOpcode = "L2_loadrb";
12055 let BaseOpcode = "L4_loadrb_abs";
12056 let DecoderNamespace = "MustExtend";
12057 let isExtendable = 1;
12058 let opExtendable = 2;
12059 let isExtentSigned = 0;
12060 let opExtentBits = 6;
12061 let opExtentAlign = 0;
12062 }
12063 def L4_ploadrbtnew_rr : HInst<
12064 (outs IntRegs:$Rd32),
12065 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12066 "if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12067 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12068 let Inst{31-21} = 0b00110010000;
12069 let isPredicated = 1;
12070 let hasNewValue = 1;
12071 let opNewValue = 0;
12072 let addrMode = BaseRegOffset;
12073 let accessSize = ByteAccess;
12074 let isPredicatedNew = 1;
12075 let mayLoad = 1;
12076 let CextOpcode = "L2_loadrb";
12077 let InputType = "reg";
12078 let BaseOpcode = "L4_loadrb_rr";
12079 }
12080 def L4_ploadrdf_abs : HInst<
12081 (outs DoubleRegs:$Rdd32),
12082 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12083 "if (!$Pt4) $Rdd32 = memd(#$Ii)",
12084 tc_136c4786, TypeLD>, Enc_2a7b91, AddrModeRel {
12085 let Inst{7-5} = 0b100;
12086 let Inst{13-11} = 0b101;
12087 let Inst{31-21} = 0b10011111110;
12088 let isPredicated = 1;
12089 let isPredicatedFalse = 1;
12090 let addrMode = Absolute;
12091 let accessSize = DoubleWordAccess;
12092 let mayLoad = 1;
12093 let isExtended = 1;
12094 let CextOpcode = "L2_loadrd";
12095 let BaseOpcode = "L4_loadrd_abs";
12096 let DecoderNamespace = "MustExtend";
12097 let isExtendable = 1;
12098 let opExtendable = 2;
12099 let isExtentSigned = 0;
12100 let opExtentBits = 6;
12101 let opExtentAlign = 0;
12102 }
12103 def L4_ploadrdf_rr : HInst<
12104 (outs DoubleRegs:$Rdd32),
12105 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12106 "if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12107 tc_9dafb7d3, TypeLD>, Enc_98c0b8, AddrModeRel {
12108 let Inst{31-21} = 0b00110001110;
12109 let isPredicated = 1;
12110 let isPredicatedFalse = 1;
12111 let addrMode = BaseRegOffset;
12112 let accessSize = DoubleWordAccess;
12113 let mayLoad = 1;
12114 let CextOpcode = "L2_loadrd";
12115 let InputType = "reg";
12116 let BaseOpcode = "L4_loadrd_rr";
12117 }
12118 def L4_ploadrdfnew_abs : HInst<
12119 (outs DoubleRegs:$Rdd32),
12120 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12121 "if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12122 tc_b5f5a094, TypeLD>, Enc_2a7b91, AddrModeRel {
12123 let Inst{7-5} = 0b100;
12124 let Inst{13-11} = 0b111;
12125 let Inst{31-21} = 0b10011111110;
12126 let isPredicated = 1;
12127 let isPredicatedFalse = 1;
12128 let addrMode = Absolute;
12129 let accessSize = DoubleWordAccess;
12130 let isPredicatedNew = 1;
12131 let mayLoad = 1;
12132 let isExtended = 1;
12133 let CextOpcode = "L2_loadrd";
12134 let BaseOpcode = "L4_loadrd_abs";
12135 let DecoderNamespace = "MustExtend";
12136 let isExtendable = 1;
12137 let opExtendable = 2;
12138 let isExtentSigned = 0;
12139 let opExtentBits = 6;
12140 let opExtentAlign = 0;
12141 }
12142 def L4_ploadrdfnew_rr : HInst<
12143 (outs DoubleRegs:$Rdd32),
12144 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12145 "if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12146 tc_128719e8, TypeLD>, Enc_98c0b8, AddrModeRel {
12147 let Inst{31-21} = 0b00110011110;
12148 let isPredicated = 1;
12149 let isPredicatedFalse = 1;
12150 let addrMode = BaseRegOffset;
12151 let accessSize = DoubleWordAccess;
12152 let isPredicatedNew = 1;
12153 let mayLoad = 1;
12154 let CextOpcode = "L2_loadrd";
12155 let InputType = "reg";
12156 let BaseOpcode = "L4_loadrd_rr";
12157 }
12158 def L4_ploadrdt_abs : HInst<
12159 (outs DoubleRegs:$Rdd32),
12160 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12161 "if ($Pt4) $Rdd32 = memd(#$Ii)",
12162 tc_136c4786, TypeLD>, Enc_2a7b91, AddrModeRel {
12163 let Inst{7-5} = 0b100;
12164 let Inst{13-11} = 0b100;
12165 let Inst{31-21} = 0b10011111110;
12166 let isPredicated = 1;
12167 let addrMode = Absolute;
12168 let accessSize = DoubleWordAccess;
12169 let mayLoad = 1;
12170 let isExtended = 1;
12171 let CextOpcode = "L2_loadrd";
12172 let BaseOpcode = "L4_loadrd_abs";
12173 let DecoderNamespace = "MustExtend";
12174 let isExtendable = 1;
12175 let opExtendable = 2;
12176 let isExtentSigned = 0;
12177 let opExtentBits = 6;
12178 let opExtentAlign = 0;
12179 }
12180 def L4_ploadrdt_rr : HInst<
12181 (outs DoubleRegs:$Rdd32),
12182 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12183 "if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12184 tc_9dafb7d3, TypeLD>, Enc_98c0b8, AddrModeRel {
12185 let Inst{31-21} = 0b00110000110;
12186 let isPredicated = 1;
12187 let addrMode = BaseRegOffset;
12188 let accessSize = DoubleWordAccess;
12189 let mayLoad = 1;
12190 let CextOpcode = "L2_loadrd";
12191 let InputType = "reg";
12192 let BaseOpcode = "L4_loadrd_rr";
12193 }
12194 def L4_ploadrdtnew_abs : HInst<
12195 (outs DoubleRegs:$Rdd32),
12196 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12197 "if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12198 tc_b5f5a094, TypeLD>, Enc_2a7b91, AddrModeRel {
12199 let Inst{7-5} = 0b100;
12200 let Inst{13-11} = 0b110;
12201 let Inst{31-21} = 0b10011111110;
12202 let isPredicated = 1;
12203 let addrMode = Absolute;
12204 let accessSize = DoubleWordAccess;
12205 let isPredicatedNew = 1;
12206 let mayLoad = 1;
12207 let isExtended = 1;
12208 let CextOpcode = "L2_loadrd";
12209 let BaseOpcode = "L4_loadrd_abs";
12210 let DecoderNamespace = "MustExtend";
12211 let isExtendable = 1;
12212 let opExtendable = 2;
12213 let isExtentSigned = 0;
12214 let opExtentBits = 6;
12215 let opExtentAlign = 0;
12216 }
12217 def L4_ploadrdtnew_rr : HInst<
12218 (outs DoubleRegs:$Rdd32),
12219 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12220 "if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12221 tc_128719e8, TypeLD>, Enc_98c0b8, AddrModeRel {
12222 let Inst{31-21} = 0b00110010110;
12223 let isPredicated = 1;
12224 let addrMode = BaseRegOffset;
12225 let accessSize = DoubleWordAccess;
12226 let isPredicatedNew = 1;
12227 let mayLoad = 1;
12228 let CextOpcode = "L2_loadrd";
12229 let InputType = "reg";
12230 let BaseOpcode = "L4_loadrd_rr";
12231 }
12232 def L4_ploadrhf_abs : HInst<
12233 (outs IntRegs:$Rd32),
12234 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12235 "if (!$Pt4) $Rd32 = memh(#$Ii)",
12236 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12237 let Inst{7-5} = 0b100;
12238 let Inst{13-11} = 0b101;
12239 let Inst{31-21} = 0b10011111010;
12240 let isPredicated = 1;
12241 let isPredicatedFalse = 1;
12242 let hasNewValue = 1;
12243 let opNewValue = 0;
12244 let addrMode = Absolute;
12245 let accessSize = HalfWordAccess;
12246 let mayLoad = 1;
12247 let isExtended = 1;
12248 let CextOpcode = "L2_loadrh";
12249 let BaseOpcode = "L4_loadrh_abs";
12250 let DecoderNamespace = "MustExtend";
12251 let isExtendable = 1;
12252 let opExtendable = 2;
12253 let isExtentSigned = 0;
12254 let opExtentBits = 6;
12255 let opExtentAlign = 0;
12256 }
12257 def L4_ploadrhf_rr : HInst<
12258 (outs IntRegs:$Rd32),
12259 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12260 "if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12261 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12262 let Inst{31-21} = 0b00110001010;
12263 let isPredicated = 1;
12264 let isPredicatedFalse = 1;
12265 let hasNewValue = 1;
12266 let opNewValue = 0;
12267 let addrMode = BaseRegOffset;
12268 let accessSize = HalfWordAccess;
12269 let mayLoad = 1;
12270 let CextOpcode = "L2_loadrh";
12271 let InputType = "reg";
12272 let BaseOpcode = "L4_loadrh_rr";
12273 }
12274 def L4_ploadrhfnew_abs : HInst<
12275 (outs IntRegs:$Rd32),
12276 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12277 "if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12278 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12279 let Inst{7-5} = 0b100;
12280 let Inst{13-11} = 0b111;
12281 let Inst{31-21} = 0b10011111010;
12282 let isPredicated = 1;
12283 let isPredicatedFalse = 1;
12284 let hasNewValue = 1;
12285 let opNewValue = 0;
12286 let addrMode = Absolute;
12287 let accessSize = HalfWordAccess;
12288 let isPredicatedNew = 1;
12289 let mayLoad = 1;
12290 let isExtended = 1;
12291 let CextOpcode = "L2_loadrh";
12292 let BaseOpcode = "L4_loadrh_abs";
12293 let DecoderNamespace = "MustExtend";
12294 let isExtendable = 1;
12295 let opExtendable = 2;
12296 let isExtentSigned = 0;
12297 let opExtentBits = 6;
12298 let opExtentAlign = 0;
12299 }
12300 def L4_ploadrhfnew_rr : HInst<
12301 (outs IntRegs:$Rd32),
12302 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12303 "if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12304 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12305 let Inst{31-21} = 0b00110011010;
12306 let isPredicated = 1;
12307 let isPredicatedFalse = 1;
12308 let hasNewValue = 1;
12309 let opNewValue = 0;
12310 let addrMode = BaseRegOffset;
12311 let accessSize = HalfWordAccess;
12312 let isPredicatedNew = 1;
12313 let mayLoad = 1;
12314 let CextOpcode = "L2_loadrh";
12315 let InputType = "reg";
12316 let BaseOpcode = "L4_loadrh_rr";
12317 }
12318 def L4_ploadrht_abs : HInst<
12319 (outs IntRegs:$Rd32),
12320 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12321 "if ($Pt4) $Rd32 = memh(#$Ii)",
12322 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12323 let Inst{7-5} = 0b100;
12324 let Inst{13-11} = 0b100;
12325 let Inst{31-21} = 0b10011111010;
12326 let isPredicated = 1;
12327 let hasNewValue = 1;
12328 let opNewValue = 0;
12329 let addrMode = Absolute;
12330 let accessSize = HalfWordAccess;
12331 let mayLoad = 1;
12332 let isExtended = 1;
12333 let CextOpcode = "L2_loadrh";
12334 let BaseOpcode = "L4_loadrh_abs";
12335 let DecoderNamespace = "MustExtend";
12336 let isExtendable = 1;
12337 let opExtendable = 2;
12338 let isExtentSigned = 0;
12339 let opExtentBits = 6;
12340 let opExtentAlign = 0;
12341 }
12342 def L4_ploadrht_rr : HInst<
12343 (outs IntRegs:$Rd32),
12344 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12345 "if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12346 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12347 let Inst{31-21} = 0b00110000010;
12348 let isPredicated = 1;
12349 let hasNewValue = 1;
12350 let opNewValue = 0;
12351 let addrMode = BaseRegOffset;
12352 let accessSize = HalfWordAccess;
12353 let mayLoad = 1;
12354 let CextOpcode = "L2_loadrh";
12355 let InputType = "reg";
12356 let BaseOpcode = "L4_loadrh_rr";
12357 }
12358 def L4_ploadrhtnew_abs : HInst<
12359 (outs IntRegs:$Rd32),
12360 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12361 "if ($Pt4.new) $Rd32 = memh(#$Ii)",
12362 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12363 let Inst{7-5} = 0b100;
12364 let Inst{13-11} = 0b110;
12365 let Inst{31-21} = 0b10011111010;
12366 let isPredicated = 1;
12367 let hasNewValue = 1;
12368 let opNewValue = 0;
12369 let addrMode = Absolute;
12370 let accessSize = HalfWordAccess;
12371 let isPredicatedNew = 1;
12372 let mayLoad = 1;
12373 let isExtended = 1;
12374 let CextOpcode = "L2_loadrh";
12375 let BaseOpcode = "L4_loadrh_abs";
12376 let DecoderNamespace = "MustExtend";
12377 let isExtendable = 1;
12378 let opExtendable = 2;
12379 let isExtentSigned = 0;
12380 let opExtentBits = 6;
12381 let opExtentAlign = 0;
12382 }
12383 def L4_ploadrhtnew_rr : HInst<
12384 (outs IntRegs:$Rd32),
12385 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12386 "if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12387 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12388 let Inst{31-21} = 0b00110010010;
12389 let isPredicated = 1;
12390 let hasNewValue = 1;
12391 let opNewValue = 0;
12392 let addrMode = BaseRegOffset;
12393 let accessSize = HalfWordAccess;
12394 let isPredicatedNew = 1;
12395 let mayLoad = 1;
12396 let CextOpcode = "L2_loadrh";
12397 let InputType = "reg";
12398 let BaseOpcode = "L4_loadrh_rr";
12399 }
12400 def L4_ploadrif_abs : HInst<
12401 (outs IntRegs:$Rd32),
12402 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12403 "if (!$Pt4) $Rd32 = memw(#$Ii)",
12404 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12405 let Inst{7-5} = 0b100;
12406 let Inst{13-11} = 0b101;
12407 let Inst{31-21} = 0b10011111100;
12408 let isPredicated = 1;
12409 let isPredicatedFalse = 1;
12410 let hasNewValue = 1;
12411 let opNewValue = 0;
12412 let addrMode = Absolute;
12413 let accessSize = WordAccess;
12414 let mayLoad = 1;
12415 let isExtended = 1;
12416 let CextOpcode = "L2_loadri";
12417 let BaseOpcode = "L4_loadri_abs";
12418 let DecoderNamespace = "MustExtend";
12419 let isExtendable = 1;
12420 let opExtendable = 2;
12421 let isExtentSigned = 0;
12422 let opExtentBits = 6;
12423 let opExtentAlign = 0;
12424 }
12425 def L4_ploadrif_rr : HInst<
12426 (outs IntRegs:$Rd32),
12427 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12428 "if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12429 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12430 let Inst{31-21} = 0b00110001100;
12431 let isPredicated = 1;
12432 let isPredicatedFalse = 1;
12433 let hasNewValue = 1;
12434 let opNewValue = 0;
12435 let addrMode = BaseRegOffset;
12436 let accessSize = WordAccess;
12437 let mayLoad = 1;
12438 let CextOpcode = "L2_loadri";
12439 let InputType = "reg";
12440 let BaseOpcode = "L4_loadri_rr";
12441 }
12442 def L4_ploadrifnew_abs : HInst<
12443 (outs IntRegs:$Rd32),
12444 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12445 "if (!$Pt4.new) $Rd32 = memw(#$Ii)",
12446 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12447 let Inst{7-5} = 0b100;
12448 let Inst{13-11} = 0b111;
12449 let Inst{31-21} = 0b10011111100;
12450 let isPredicated = 1;
12451 let isPredicatedFalse = 1;
12452 let hasNewValue = 1;
12453 let opNewValue = 0;
12454 let addrMode = Absolute;
12455 let accessSize = WordAccess;
12456 let isPredicatedNew = 1;
12457 let mayLoad = 1;
12458 let isExtended = 1;
12459 let CextOpcode = "L2_loadri";
12460 let BaseOpcode = "L4_loadri_abs";
12461 let DecoderNamespace = "MustExtend";
12462 let isExtendable = 1;
12463 let opExtendable = 2;
12464 let isExtentSigned = 0;
12465 let opExtentBits = 6;
12466 let opExtentAlign = 0;
12467 }
12468 def L4_ploadrifnew_rr : HInst<
12469 (outs IntRegs:$Rd32),
12470 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12471 "if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12472 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12473 let Inst{31-21} = 0b00110011100;
12474 let isPredicated = 1;
12475 let isPredicatedFalse = 1;
12476 let hasNewValue = 1;
12477 let opNewValue = 0;
12478 let addrMode = BaseRegOffset;
12479 let accessSize = WordAccess;
12480 let isPredicatedNew = 1;
12481 let mayLoad = 1;
12482 let CextOpcode = "L2_loadri";
12483 let InputType = "reg";
12484 let BaseOpcode = "L4_loadri_rr";
12485 }
12486 def L4_ploadrit_abs : HInst<
12487 (outs IntRegs:$Rd32),
12488 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12489 "if ($Pt4) $Rd32 = memw(#$Ii)",
12490 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12491 let Inst{7-5} = 0b100;
12492 let Inst{13-11} = 0b100;
12493 let Inst{31-21} = 0b10011111100;
12494 let isPredicated = 1;
12495 let hasNewValue = 1;
12496 let opNewValue = 0;
12497 let addrMode = Absolute;
12498 let accessSize = WordAccess;
12499 let mayLoad = 1;
12500 let isExtended = 1;
12501 let CextOpcode = "L2_loadri";
12502 let BaseOpcode = "L4_loadri_abs";
12503 let DecoderNamespace = "MustExtend";
12504 let isExtendable = 1;
12505 let opExtendable = 2;
12506 let isExtentSigned = 0;
12507 let opExtentBits = 6;
12508 let opExtentAlign = 0;
12509 }
12510 def L4_ploadrit_rr : HInst<
12511 (outs IntRegs:$Rd32),
12512 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12513 "if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12514 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12515 let Inst{31-21} = 0b00110000100;
12516 let isPredicated = 1;
12517 let hasNewValue = 1;
12518 let opNewValue = 0;
12519 let addrMode = BaseRegOffset;
12520 let accessSize = WordAccess;
12521 let mayLoad = 1;
12522 let CextOpcode = "L2_loadri";
12523 let InputType = "reg";
12524 let BaseOpcode = "L4_loadri_rr";
12525 }
12526 def L4_ploadritnew_abs : HInst<
12527 (outs IntRegs:$Rd32),
12528 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12529 "if ($Pt4.new) $Rd32 = memw(#$Ii)",
12530 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12531 let Inst{7-5} = 0b100;
12532 let Inst{13-11} = 0b110;
12533 let Inst{31-21} = 0b10011111100;
12534 let isPredicated = 1;
12535 let hasNewValue = 1;
12536 let opNewValue = 0;
12537 let addrMode = Absolute;
12538 let accessSize = WordAccess;
12539 let isPredicatedNew = 1;
12540 let mayLoad = 1;
12541 let isExtended = 1;
12542 let CextOpcode = "L2_loadri";
12543 let BaseOpcode = "L4_loadri_abs";
12544 let DecoderNamespace = "MustExtend";
12545 let isExtendable = 1;
12546 let opExtendable = 2;
12547 let isExtentSigned = 0;
12548 let opExtentBits = 6;
12549 let opExtentAlign = 0;
12550 }
12551 def L4_ploadritnew_rr : HInst<
12552 (outs IntRegs:$Rd32),
12553 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12554 "if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12555 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12556 let Inst{31-21} = 0b00110010100;
12557 let isPredicated = 1;
12558 let hasNewValue = 1;
12559 let opNewValue = 0;
12560 let addrMode = BaseRegOffset;
12561 let accessSize = WordAccess;
12562 let isPredicatedNew = 1;
12563 let mayLoad = 1;
12564 let CextOpcode = "L2_loadri";
12565 let InputType = "reg";
12566 let BaseOpcode = "L4_loadri_rr";
12567 }
12568 def L4_ploadrubf_abs : HInst<
12569 (outs IntRegs:$Rd32),
12570 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12571 "if (!$Pt4) $Rd32 = memub(#$Ii)",
12572 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12573 let Inst{7-5} = 0b100;
12574 let Inst{13-11} = 0b101;
12575 let Inst{31-21} = 0b10011111001;
12576 let isPredicated = 1;
12577 let isPredicatedFalse = 1;
12578 let hasNewValue = 1;
12579 let opNewValue = 0;
12580 let addrMode = Absolute;
12581 let accessSize = ByteAccess;
12582 let mayLoad = 1;
12583 let isExtended = 1;
12584 let CextOpcode = "L2_loadrub";
12585 let BaseOpcode = "L4_loadrub_abs";
12586 let DecoderNamespace = "MustExtend";
12587 let isExtendable = 1;
12588 let opExtendable = 2;
12589 let isExtentSigned = 0;
12590 let opExtentBits = 6;
12591 let opExtentAlign = 0;
12592 }
12593 def L4_ploadrubf_rr : HInst<
12594 (outs IntRegs:$Rd32),
12595 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12596 "if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12597 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12598 let Inst{31-21} = 0b00110001001;
12599 let isPredicated = 1;
12600 let isPredicatedFalse = 1;
12601 let hasNewValue = 1;
12602 let opNewValue = 0;
12603 let addrMode = BaseRegOffset;
12604 let accessSize = ByteAccess;
12605 let mayLoad = 1;
12606 let CextOpcode = "L2_loadrub";
12607 let InputType = "reg";
12608 let BaseOpcode = "L4_loadrub_rr";
12609 }
12610 def L4_ploadrubfnew_abs : HInst<
12611 (outs IntRegs:$Rd32),
12612 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12613 "if (!$Pt4.new) $Rd32 = memub(#$Ii)",
12614 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12615 let Inst{7-5} = 0b100;
12616 let Inst{13-11} = 0b111;
12617 let Inst{31-21} = 0b10011111001;
12618 let isPredicated = 1;
12619 let isPredicatedFalse = 1;
12620 let hasNewValue = 1;
12621 let opNewValue = 0;
12622 let addrMode = Absolute;
12623 let accessSize = ByteAccess;
12624 let isPredicatedNew = 1;
12625 let mayLoad = 1;
12626 let isExtended = 1;
12627 let CextOpcode = "L2_loadrub";
12628 let BaseOpcode = "L4_loadrub_abs";
12629 let DecoderNamespace = "MustExtend";
12630 let isExtendable = 1;
12631 let opExtendable = 2;
12632 let isExtentSigned = 0;
12633 let opExtentBits = 6;
12634 let opExtentAlign = 0;
12635 }
12636 def L4_ploadrubfnew_rr : HInst<
12637 (outs IntRegs:$Rd32),
12638 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12639 "if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12640 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12641 let Inst{31-21} = 0b00110011001;
12642 let isPredicated = 1;
12643 let isPredicatedFalse = 1;
12644 let hasNewValue = 1;
12645 let opNewValue = 0;
12646 let addrMode = BaseRegOffset;
12647 let accessSize = ByteAccess;
12648 let isPredicatedNew = 1;
12649 let mayLoad = 1;
12650 let CextOpcode = "L2_loadrub";
12651 let InputType = "reg";
12652 let BaseOpcode = "L4_loadrub_rr";
12653 }
12654 def L4_ploadrubt_abs : HInst<
12655 (outs IntRegs:$Rd32),
12656 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12657 "if ($Pt4) $Rd32 = memub(#$Ii)",
12658 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12659 let Inst{7-5} = 0b100;
12660 let Inst{13-11} = 0b100;
12661 let Inst{31-21} = 0b10011111001;
12662 let isPredicated = 1;
12663 let hasNewValue = 1;
12664 let opNewValue = 0;
12665 let addrMode = Absolute;
12666 let accessSize = ByteAccess;
12667 let mayLoad = 1;
12668 let isExtended = 1;
12669 let CextOpcode = "L2_loadrub";
12670 let BaseOpcode = "L4_loadrub_abs";
12671 let DecoderNamespace = "MustExtend";
12672 let isExtendable = 1;
12673 let opExtendable = 2;
12674 let isExtentSigned = 0;
12675 let opExtentBits = 6;
12676 let opExtentAlign = 0;
12677 }
12678 def L4_ploadrubt_rr : HInst<
12679 (outs IntRegs:$Rd32),
12680 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12681 "if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12682 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12683 let Inst{31-21} = 0b00110000001;
12684 let isPredicated = 1;
12685 let hasNewValue = 1;
12686 let opNewValue = 0;
12687 let addrMode = BaseRegOffset;
12688 let accessSize = ByteAccess;
12689 let mayLoad = 1;
12690 let CextOpcode = "L2_loadrub";
12691 let InputType = "reg";
12692 let BaseOpcode = "L4_loadrub_rr";
12693 }
12694 def L4_ploadrubtnew_abs : HInst<
12695 (outs IntRegs:$Rd32),
12696 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12697 "if ($Pt4.new) $Rd32 = memub(#$Ii)",
12698 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12699 let Inst{7-5} = 0b100;
12700 let Inst{13-11} = 0b110;
12701 let Inst{31-21} = 0b10011111001;
12702 let isPredicated = 1;
12703 let hasNewValue = 1;
12704 let opNewValue = 0;
12705 let addrMode = Absolute;
12706 let accessSize = ByteAccess;
12707 let isPredicatedNew = 1;
12708 let mayLoad = 1;
12709 let isExtended = 1;
12710 let CextOpcode = "L2_loadrub";
12711 let BaseOpcode = "L4_loadrub_abs";
12712 let DecoderNamespace = "MustExtend";
12713 let isExtendable = 1;
12714 let opExtendable = 2;
12715 let isExtentSigned = 0;
12716 let opExtentBits = 6;
12717 let opExtentAlign = 0;
12718 }
12719 def L4_ploadrubtnew_rr : HInst<
12720 (outs IntRegs:$Rd32),
12721 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12722 "if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12723 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12724 let Inst{31-21} = 0b00110010001;
12725 let isPredicated = 1;
12726 let hasNewValue = 1;
12727 let opNewValue = 0;
12728 let addrMode = BaseRegOffset;
12729 let accessSize = ByteAccess;
12730 let isPredicatedNew = 1;
12731 let mayLoad = 1;
12732 let CextOpcode = "L2_loadrub";
12733 let InputType = "reg";
12734 let BaseOpcode = "L4_loadrub_rr";
12735 }
12736 def L4_ploadruhf_abs : HInst<
12737 (outs IntRegs:$Rd32),
12738 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12739 "if (!$Pt4) $Rd32 = memuh(#$Ii)",
12740 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12741 let Inst{7-5} = 0b100;
12742 let Inst{13-11} = 0b101;
12743 let Inst{31-21} = 0b10011111011;
12744 let isPredicated = 1;
12745 let isPredicatedFalse = 1;
12746 let hasNewValue = 1;
12747 let opNewValue = 0;
12748 let addrMode = Absolute;
12749 let accessSize = HalfWordAccess;
12750 let mayLoad = 1;
12751 let isExtended = 1;
12752 let CextOpcode = "L2_loadruh";
12753 let BaseOpcode = "L4_loadruh_abs";
12754 let DecoderNamespace = "MustExtend";
12755 let isExtendable = 1;
12756 let opExtendable = 2;
12757 let isExtentSigned = 0;
12758 let opExtentBits = 6;
12759 let opExtentAlign = 0;
12760 }
12761 def L4_ploadruhf_rr : HInst<
12762 (outs IntRegs:$Rd32),
12763 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12764 "if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12765 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12766 let Inst{31-21} = 0b00110001011;
12767 let isPredicated = 1;
12768 let isPredicatedFalse = 1;
12769 let hasNewValue = 1;
12770 let opNewValue = 0;
12771 let addrMode = BaseRegOffset;
12772 let accessSize = HalfWordAccess;
12773 let mayLoad = 1;
12774 let CextOpcode = "L2_loadruh";
12775 let InputType = "reg";
12776 let BaseOpcode = "L4_loadruh_rr";
12777 }
12778 def L4_ploadruhfnew_abs : HInst<
12779 (outs IntRegs:$Rd32),
12780 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12781 "if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
12782 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12783 let Inst{7-5} = 0b100;
12784 let Inst{13-11} = 0b111;
12785 let Inst{31-21} = 0b10011111011;
12786 let isPredicated = 1;
12787 let isPredicatedFalse = 1;
12788 let hasNewValue = 1;
12789 let opNewValue = 0;
12790 let addrMode = Absolute;
12791 let accessSize = HalfWordAccess;
12792 let isPredicatedNew = 1;
12793 let mayLoad = 1;
12794 let isExtended = 1;
12795 let CextOpcode = "L2_loadruh";
12796 let BaseOpcode = "L4_loadruh_abs";
12797 let DecoderNamespace = "MustExtend";
12798 let isExtendable = 1;
12799 let opExtendable = 2;
12800 let isExtentSigned = 0;
12801 let opExtentBits = 6;
12802 let opExtentAlign = 0;
12803 }
12804 def L4_ploadruhfnew_rr : HInst<
12805 (outs IntRegs:$Rd32),
12806 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12807 "if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12808 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12809 let Inst{31-21} = 0b00110011011;
12810 let isPredicated = 1;
12811 let isPredicatedFalse = 1;
12812 let hasNewValue = 1;
12813 let opNewValue = 0;
12814 let addrMode = BaseRegOffset;
12815 let accessSize = HalfWordAccess;
12816 let isPredicatedNew = 1;
12817 let mayLoad = 1;
12818 let CextOpcode = "L2_loadruh";
12819 let InputType = "reg";
12820 let BaseOpcode = "L4_loadruh_rr";
12821 }
12822 def L4_ploadruht_abs : HInst<
12823 (outs IntRegs:$Rd32),
12824 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12825 "if ($Pt4) $Rd32 = memuh(#$Ii)",
12826 tc_136c4786, TypeLD>, Enc_2301d6, AddrModeRel {
12827 let Inst{7-5} = 0b100;
12828 let Inst{13-11} = 0b100;
12829 let Inst{31-21} = 0b10011111011;
12830 let isPredicated = 1;
12831 let hasNewValue = 1;
12832 let opNewValue = 0;
12833 let addrMode = Absolute;
12834 let accessSize = HalfWordAccess;
12835 let mayLoad = 1;
12836 let isExtended = 1;
12837 let CextOpcode = "L2_loadruh";
12838 let BaseOpcode = "L4_loadruh_abs";
12839 let DecoderNamespace = "MustExtend";
12840 let isExtendable = 1;
12841 let opExtendable = 2;
12842 let isExtentSigned = 0;
12843 let opExtentBits = 6;
12844 let opExtentAlign = 0;
12845 }
12846 def L4_ploadruht_rr : HInst<
12847 (outs IntRegs:$Rd32),
12848 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12849 "if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12850 tc_9dafb7d3, TypeLD>, Enc_2e1979, AddrModeRel {
12851 let Inst{31-21} = 0b00110000011;
12852 let isPredicated = 1;
12853 let hasNewValue = 1;
12854 let opNewValue = 0;
12855 let addrMode = BaseRegOffset;
12856 let accessSize = HalfWordAccess;
12857 let mayLoad = 1;
12858 let CextOpcode = "L2_loadruh";
12859 let InputType = "reg";
12860 let BaseOpcode = "L4_loadruh_rr";
12861 }
12862 def L4_ploadruhtnew_abs : HInst<
12863 (outs IntRegs:$Rd32),
12864 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12865 "if ($Pt4.new) $Rd32 = memuh(#$Ii)",
12866 tc_b5f5a094, TypeLD>, Enc_2301d6, AddrModeRel {
12867 let Inst{7-5} = 0b100;
12868 let Inst{13-11} = 0b110;
12869 let Inst{31-21} = 0b10011111011;
12870 let isPredicated = 1;
12871 let hasNewValue = 1;
12872 let opNewValue = 0;
12873 let addrMode = Absolute;
12874 let accessSize = HalfWordAccess;
12875 let isPredicatedNew = 1;
12876 let mayLoad = 1;
12877 let isExtended = 1;
12878 let CextOpcode = "L2_loadruh";
12879 let BaseOpcode = "L4_loadruh_abs";
12880 let DecoderNamespace = "MustExtend";
12881 let isExtendable = 1;
12882 let opExtendable = 2;
12883 let isExtentSigned = 0;
12884 let opExtentBits = 6;
12885 let opExtentAlign = 0;
12886 }
12887 def L4_ploadruhtnew_rr : HInst<
12888 (outs IntRegs:$Rd32),
12889 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12890 "if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12891 tc_128719e8, TypeLD>, Enc_2e1979, AddrModeRel {
12892 let Inst{31-21} = 0b00110010011;
12893 let isPredicated = 1;
12894 let hasNewValue = 1;
12895 let opNewValue = 0;
12896 let addrMode = BaseRegOffset;
12897 let accessSize = HalfWordAccess;
12898 let isPredicatedNew = 1;
12899 let mayLoad = 1;
12900 let CextOpcode = "L2_loadruh";
12901 let InputType = "reg";
12902 let BaseOpcode = "L4_loadruh_rr";
12903 }
12904 def L4_return : HInst<
12905 (outs),
12906 (ins),
12907 "dealloc_return",
12908 tc_dcfee7ae, TypeLD>, Enc_3a3d62, PredNewRel {
12909 let Inst{4-0} = 0b11110;
12910 let Inst{13-5} = 0b000000000;
12911 let Inst{31-21} = 0b10010110000;
12912 let Inst{20-16} = 0b11110;
12913 let isTerminator = 1;
12914 let isIndirectBranch = 1;
12915 let accessSize = DoubleWordAccess;
12916 let cofMax1 = 1;
12917 let isReturn = 1;
12918 let mayLoad = 1;
12919 let Uses = [R30];
12920 let Defs = [PC, R29, R30, R31];
12921 let BaseOpcode = "L4_return";
12922 let isBarrier = 1;
12923 let isPredicable = 1;
12924 let isTaken = 1;
12925 }
12926 def L4_return_f : HInst<
12927 (outs),
12928 (ins PredRegs:$Pv4),
12929 "if (!$Pv4) dealloc_return",
12930 tc_9ce7a5ab, TypeLD>, Enc_b7fad3, PredNewRel {
12931 let Inst{4-0} = 0b11110;
12932 let Inst{7-5} = 0b000;
12933 let Inst{13-10} = 0b1100;
12934 let Inst{31-21} = 0b10010110000;
12935 let Inst{20-16} = 0b11110;
12936 let isPredicated = 1;
12937 let isPredicatedFalse = 1;
12938 let isTerminator = 1;
12939 let isIndirectBranch = 1;
12940 let accessSize = DoubleWordAccess;
12941 let cofMax1 = 1;
12942 let mayLoad = 1;
12943 let isReturn = 1;
12944 let Uses = [R30];
12945 let Defs = [PC, R29, R30, R31];
12946 let BaseOpcode = "L4_return";
12947 let isTaken = Inst{12};
12948 }
12949 def L4_return_fnew_pnt : HInst<
12950 (outs),
12951 (ins PredRegs:$Pv4),
12952 "if (!$Pv4.new) dealloc_return:nt",
12953 tc_3993c58b, TypeLD>, Enc_b7fad3, PredNewRel {
12954 let Inst{4-0} = 0b11110;
12955 let Inst{7-5} = 0b000;
12956 let Inst{13-10} = 0b1010;
12957 let Inst{31-21} = 0b10010110000;
12958 let Inst{20-16} = 0b11110;
12959 let isPredicated = 1;
12960 let isPredicatedFalse = 1;
12961 let isTerminator = 1;
12962 let isIndirectBranch = 1;
12963 let accessSize = DoubleWordAccess;
12964 let cofMax1 = 1;
12965 let isPredicatedNew = 1;
12966 let mayLoad = 1;
12967 let isReturn = 1;
12968 let Uses = [R30];
12969 let Defs = [PC, R29, R30, R31];
12970 let BaseOpcode = "L4_return";
12971 let isTaken = Inst{12};
12972 }
12973 def L4_return_fnew_pt : HInst<
12974 (outs),
12975 (ins PredRegs:$Pv4),
12976 "if (!$Pv4.new) dealloc_return:t",
12977 tc_3993c58b, TypeLD>, Enc_b7fad3, PredNewRel {
12978 let Inst{4-0} = 0b11110;
12979 let Inst{7-5} = 0b000;
12980 let Inst{13-10} = 0b1110;
12981 let Inst{31-21} = 0b10010110000;
12982 let Inst{20-16} = 0b11110;
12983 let isPredicated = 1;
12984 let isPredicatedFalse = 1;
12985 let isTerminator = 1;
12986 let isIndirectBranch = 1;
12987 let accessSize = DoubleWordAccess;
12988 let cofMax1 = 1;
12989 let isPredicatedNew = 1;
12990 let mayLoad = 1;
12991 let isReturn = 1;
12992 let Uses = [R30];
12993 let Defs = [PC, R29, R30, R31];
12994 let BaseOpcode = "L4_return";
12995 let isTaken = Inst{12};
12996 }
12997 def L4_return_t : HInst<
12998 (outs),
12999 (ins PredRegs:$Pv4),
13000 "if ($Pv4) dealloc_return",
13001 tc_9ce7a5ab, TypeLD>, Enc_b7fad3, PredNewRel {
13002 let Inst{4-0} = 0b11110;
13003 let Inst{7-5} = 0b000;
13004 let Inst{13-10} = 0b0100;
13005 let Inst{31-21} = 0b10010110000;
13006 let Inst{20-16} = 0b11110;
13007 let isPredicated = 1;
13008 let isTerminator = 1;
13009 let isIndirectBranch = 1;
13010 let accessSize = DoubleWordAccess;
13011 let cofMax1 = 1;
13012 let mayLoad = 1;
13013 let isReturn = 1;
13014 let Uses = [R30];
13015 let Defs = [PC, R29, R30, R31];
13016 let BaseOpcode = "L4_return";
13017 let isTaken = Inst{12};
13018 }
13019 def L4_return_tnew_pnt : HInst<
13020 (outs),
13021 (ins PredRegs:$Pv4),
13022 "if ($Pv4.new) dealloc_return:nt",
13023 tc_3993c58b, TypeLD>, Enc_b7fad3, PredNewRel {
13024 let Inst{4-0} = 0b11110;
13025 let Inst{7-5} = 0b000;
13026 let Inst{13-10} = 0b0010;
13027 let Inst{31-21} = 0b10010110000;
13028 let Inst{20-16} = 0b11110;
13029 let isPredicated = 1;
13030 let isTerminator = 1;
13031 let isIndirectBranch = 1;
13032 let accessSize = DoubleWordAccess;
13033 let cofMax1 = 1;
13034 let isPredicatedNew = 1;
13035 let mayLoad = 1;
13036 let isReturn = 1;
13037 let Uses = [R30];
13038 let Defs = [PC, R29, R30, R31];
13039 let BaseOpcode = "L4_return";
13040 let isTaken = Inst{12};
13041 }
13042 def L4_return_tnew_pt : HInst<
13043 (outs),
13044 (ins PredRegs:$Pv4),
13045 "if ($Pv4.new) dealloc_return:t",
13046 tc_3993c58b, TypeLD>, Enc_b7fad3, PredNewRel {
13047 let Inst{4-0} = 0b11110;
13048 let Inst{7-5} = 0b000;
13049 let Inst{13-10} = 0b0110;
13050 let Inst{31-21} = 0b10010110000;
13051 let Inst{20-16} = 0b11110;
13052 let isPredicated = 1;
13053 let isTerminator = 1;
13054 let isIndirectBranch = 1;
13055 let accessSize = DoubleWordAccess;
13056 let cofMax1 = 1;
13057 let isPredicatedNew = 1;
13058 let mayLoad = 1;
13059 let isReturn = 1;
13060 let Uses = [R30];
13061 let Defs = [PC, R29, R30, R31];
13062 let BaseOpcode = "L4_return";
13063 let isTaken = Inst{12};
13064 }
13065 def L4_sub_memopb_io : HInst<
13066 (outs),
13067 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13068 "memb($Rs32+#$Ii) -= $Rt32",
13069 tc_a9c993d9, TypeV4LDST>, Enc_d44e31 {
13070 let Inst{6-5} = 0b01;
13071 let Inst{13-13} = 0b0;
13072 let Inst{31-21} = 0b00111110000;
13073 let addrMode = BaseImmOffset;
13074 let accessSize = ByteAccess;
13075 let mayLoad = 1;
13076 let mayStore = 1;
13077 let isExtendable = 1;
13078 let opExtendable = 1;
13079 let isExtentSigned = 0;
13080 let opExtentBits = 6;
13081 let opExtentAlign = 0;
13082 }
13083 def L4_sub_memopb_zomap : HInst<
13084 (outs),
13085 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13086 "memb($Rs32) -= $Rt32",
13087 tc_a9c993d9, TypeMAPPING> {
13088 let isPseudo = 1;
13089 let isCodeGenOnly = 1;
13090 }
13091 def L4_sub_memoph_io : HInst<
13092 (outs),
13093 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13094 "memh($Rs32+#$Ii) -= $Rt32",
13095 tc_a9c993d9, TypeV4LDST>, Enc_163a3c {
13096 let Inst{6-5} = 0b01;
13097 let Inst{13-13} = 0b0;
13098 let Inst{31-21} = 0b00111110001;
13099 let addrMode = BaseImmOffset;
13100 let accessSize = HalfWordAccess;
13101 let mayLoad = 1;
13102 let mayStore = 1;
13103 let isExtendable = 1;
13104 let opExtendable = 1;
13105 let isExtentSigned = 0;
13106 let opExtentBits = 7;
13107 let opExtentAlign = 1;
13108 }
13109 def L4_sub_memoph_zomap : HInst<
13110 (outs),
13111 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13112 "memh($Rs32) -= $Rt32",
13113 tc_a9c993d9, TypeMAPPING> {
13114 let isPseudo = 1;
13115 let isCodeGenOnly = 1;
13116 }
13117 def L4_sub_memopw_io : HInst<
13118 (outs),
13119 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13120 "memw($Rs32+#$Ii) -= $Rt32",
13121 tc_a9c993d9, TypeV4LDST>, Enc_226535 {
13122 let Inst{6-5} = 0b01;
13123 let Inst{13-13} = 0b0;
13124 let Inst{31-21} = 0b00111110010;
13125 let addrMode = BaseImmOffset;
13126 let accessSize = WordAccess;
13127 let mayLoad = 1;
13128 let mayStore = 1;
13129 let isExtendable = 1;
13130 let opExtendable = 1;
13131 let isExtentSigned = 0;
13132 let opExtentBits = 8;
13133 let opExtentAlign = 2;
13134 }
13135 def L4_sub_memopw_zomap : HInst<
13136 (outs),
13137 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13138 "memw($Rs32) -= $Rt32",
13139 tc_a9c993d9, TypeMAPPING> {
13140 let isPseudo = 1;
13141 let isCodeGenOnly = 1;
13142 }
13143 def M2_acci : HInst<
13144 (outs IntRegs:$Rx32),
13145 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13146 "$Rx32 += add($Rs32,$Rt32)",
13147 tc_c0cd91a8, TypeM>, Enc_2ae154, ImmRegRel {
13148 let Inst{7-5} = 0b001;
13149 let Inst{13-13} = 0b0;
13150 let Inst{31-21} = 0b11101111000;
13151 let hasNewValue = 1;
13152 let opNewValue = 0;
13153 let prefersSlot3 = 1;
13154 let CextOpcode = "M2_acci";
13155 let InputType = "reg";
13156 let Constraints = "$Rx32 = $Rx32in";
13157 }
13158 def M2_accii : HInst<
13159 (outs IntRegs:$Rx32),
13160 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13161 "$Rx32 += add($Rs32,#$Ii)",
13162 tc_c0cd91a8, TypeM>, Enc_c90aca, ImmRegRel {
13163 let Inst{13-13} = 0b0;
13164 let Inst{31-21} = 0b11100010000;
13165 let hasNewValue = 1;
13166 let opNewValue = 0;
13167 let prefersSlot3 = 1;
13168 let CextOpcode = "M2_acci";
13169 let InputType = "imm";
13170 let isExtendable = 1;
13171 let opExtendable = 3;
13172 let isExtentSigned = 1;
13173 let opExtentBits = 8;
13174 let opExtentAlign = 0;
13175 let Constraints = "$Rx32 = $Rx32in";
13176 }
13177 def M2_cmaci_s0 : HInst<
13178 (outs DoubleRegs:$Rxx32),
13179 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13180 "$Rxx32 += cmpyi($Rs32,$Rt32)",
13181 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13182 let Inst{7-5} = 0b001;
13183 let Inst{13-13} = 0b0;
13184 let Inst{31-21} = 0b11100111000;
13185 let prefersSlot3 = 1;
13186 let Constraints = "$Rxx32 = $Rxx32in";
13187 }
13188 def M2_cmacr_s0 : HInst<
13189 (outs DoubleRegs:$Rxx32),
13190 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13191 "$Rxx32 += cmpyr($Rs32,$Rt32)",
13192 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13193 let Inst{7-5} = 0b010;
13194 let Inst{13-13} = 0b0;
13195 let Inst{31-21} = 0b11100111000;
13196 let prefersSlot3 = 1;
13197 let Constraints = "$Rxx32 = $Rxx32in";
13198 }
13199 def M2_cmacs_s0 : HInst<
13200 (outs DoubleRegs:$Rxx32),
13201 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13202 "$Rxx32 += cmpy($Rs32,$Rt32):sat",
13203 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13204 let Inst{7-5} = 0b110;
13205 let Inst{13-13} = 0b0;
13206 let Inst{31-21} = 0b11100111000;
13207 let prefersSlot3 = 1;
13208 let Defs = [USR_OVF];
13209 let Constraints = "$Rxx32 = $Rxx32in";
13210 }
13211 def M2_cmacs_s1 : HInst<
13212 (outs DoubleRegs:$Rxx32),
13213 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13214 "$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13215 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13216 let Inst{7-5} = 0b110;
13217 let Inst{13-13} = 0b0;
13218 let Inst{31-21} = 0b11100111100;
13219 let prefersSlot3 = 1;
13220 let Defs = [USR_OVF];
13221 let Constraints = "$Rxx32 = $Rxx32in";
13222 }
13223 def M2_cmacsc_s0 : HInst<
13224 (outs DoubleRegs:$Rxx32),
13225 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13226 "$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13227 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13228 let Inst{7-5} = 0b110;
13229 let Inst{13-13} = 0b0;
13230 let Inst{31-21} = 0b11100111010;
13231 let prefersSlot3 = 1;
13232 let Defs = [USR_OVF];
13233 let Constraints = "$Rxx32 = $Rxx32in";
13234 }
13235 def M2_cmacsc_s1 : HInst<
13236 (outs DoubleRegs:$Rxx32),
13237 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13238 "$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13239 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13240 let Inst{7-5} = 0b110;
13241 let Inst{13-13} = 0b0;
13242 let Inst{31-21} = 0b11100111110;
13243 let prefersSlot3 = 1;
13244 let Defs = [USR_OVF];
13245 let Constraints = "$Rxx32 = $Rxx32in";
13246 }
13247 def M2_cmpyi_s0 : HInst<
13248 (outs DoubleRegs:$Rdd32),
13249 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13250 "$Rdd32 = cmpyi($Rs32,$Rt32)",
13251 tc_8c8041e6, TypeM>, Enc_be32a5 {
13252 let Inst{7-5} = 0b001;
13253 let Inst{13-13} = 0b0;
13254 let Inst{31-21} = 0b11100101000;
13255 let prefersSlot3 = 1;
13256 }
13257 def M2_cmpyr_s0 : HInst<
13258 (outs DoubleRegs:$Rdd32),
13259 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13260 "$Rdd32 = cmpyr($Rs32,$Rt32)",
13261 tc_8c8041e6, TypeM>, Enc_be32a5 {
13262 let Inst{7-5} = 0b010;
13263 let Inst{13-13} = 0b0;
13264 let Inst{31-21} = 0b11100101000;
13265 let prefersSlot3 = 1;
13266 }
13267 def M2_cmpyrs_s0 : HInst<
13268 (outs IntRegs:$Rd32),
13269 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13270 "$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13271 tc_8c8041e6, TypeM>, Enc_5ab2be {
13272 let Inst{7-5} = 0b110;
13273 let Inst{13-13} = 0b0;
13274 let Inst{31-21} = 0b11101101001;
13275 let hasNewValue = 1;
13276 let opNewValue = 0;
13277 let prefersSlot3 = 1;
13278 let Defs = [USR_OVF];
13279 }
13280 def M2_cmpyrs_s1 : HInst<
13281 (outs IntRegs:$Rd32),
13282 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13283 "$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13284 tc_8c8041e6, TypeM>, Enc_5ab2be {
13285 let Inst{7-5} = 0b110;
13286 let Inst{13-13} = 0b0;
13287 let Inst{31-21} = 0b11101101101;
13288 let hasNewValue = 1;
13289 let opNewValue = 0;
13290 let prefersSlot3 = 1;
13291 let Defs = [USR_OVF];
13292 }
13293 def M2_cmpyrsc_s0 : HInst<
13294 (outs IntRegs:$Rd32),
13295 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13296 "$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13297 tc_8c8041e6, TypeM>, Enc_5ab2be {
13298 let Inst{7-5} = 0b110;
13299 let Inst{13-13} = 0b0;
13300 let Inst{31-21} = 0b11101101011;
13301 let hasNewValue = 1;
13302 let opNewValue = 0;
13303 let prefersSlot3 = 1;
13304 let Defs = [USR_OVF];
13305 }
13306 def M2_cmpyrsc_s1 : HInst<
13307 (outs IntRegs:$Rd32),
13308 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13309 "$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13310 tc_8c8041e6, TypeM>, Enc_5ab2be {
13311 let Inst{7-5} = 0b110;
13312 let Inst{13-13} = 0b0;
13313 let Inst{31-21} = 0b11101101111;
13314 let hasNewValue = 1;
13315 let opNewValue = 0;
13316 let prefersSlot3 = 1;
13317 let Defs = [USR_OVF];
13318 }
13319 def M2_cmpys_s0 : HInst<
13320 (outs DoubleRegs:$Rdd32),
13321 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13322 "$Rdd32 = cmpy($Rs32,$Rt32):sat",
13323 tc_8c8041e6, TypeM>, Enc_be32a5 {
13324 let Inst{7-5} = 0b110;
13325 let Inst{13-13} = 0b0;
13326 let Inst{31-21} = 0b11100101000;
13327 let prefersSlot3 = 1;
13328 let Defs = [USR_OVF];
13329 }
13330 def M2_cmpys_s1 : HInst<
13331 (outs DoubleRegs:$Rdd32),
13332 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13333 "$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
13334 tc_8c8041e6, TypeM>, Enc_be32a5 {
13335 let Inst{7-5} = 0b110;
13336 let Inst{13-13} = 0b0;
13337 let Inst{31-21} = 0b11100101100;
13338 let prefersSlot3 = 1;
13339 let Defs = [USR_OVF];
13340 }
13341 def M2_cmpysc_s0 : HInst<
13342 (outs DoubleRegs:$Rdd32),
13343 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13344 "$Rdd32 = cmpy($Rs32,$Rt32*):sat",
13345 tc_8c8041e6, TypeM>, Enc_be32a5 {
13346 let Inst{7-5} = 0b110;
13347 let Inst{13-13} = 0b0;
13348 let Inst{31-21} = 0b11100101010;
13349 let prefersSlot3 = 1;
13350 let Defs = [USR_OVF];
13351 }
13352 def M2_cmpysc_s1 : HInst<
13353 (outs DoubleRegs:$Rdd32),
13354 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13355 "$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
13356 tc_8c8041e6, TypeM>, Enc_be32a5 {
13357 let Inst{7-5} = 0b110;
13358 let Inst{13-13} = 0b0;
13359 let Inst{31-21} = 0b11100101110;
13360 let prefersSlot3 = 1;
13361 let Defs = [USR_OVF];
13362 }
13363 def M2_cnacs_s0 : HInst<
13364 (outs DoubleRegs:$Rxx32),
13365 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13366 "$Rxx32 -= cmpy($Rs32,$Rt32):sat",
13367 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13368 let Inst{7-5} = 0b111;
13369 let Inst{13-13} = 0b0;
13370 let Inst{31-21} = 0b11100111000;
13371 let prefersSlot3 = 1;
13372 let Defs = [USR_OVF];
13373 let Constraints = "$Rxx32 = $Rxx32in";
13374 }
13375 def M2_cnacs_s1 : HInst<
13376 (outs DoubleRegs:$Rxx32),
13377 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13378 "$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
13379 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13380 let Inst{7-5} = 0b111;
13381 let Inst{13-13} = 0b0;
13382 let Inst{31-21} = 0b11100111100;
13383 let prefersSlot3 = 1;
13384 let Defs = [USR_OVF];
13385 let Constraints = "$Rxx32 = $Rxx32in";
13386 }
13387 def M2_cnacsc_s0 : HInst<
13388 (outs DoubleRegs:$Rxx32),
13389 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13390 "$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
13391 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13392 let Inst{7-5} = 0b111;
13393 let Inst{13-13} = 0b0;
13394 let Inst{31-21} = 0b11100111010;
13395 let prefersSlot3 = 1;
13396 let Defs = [USR_OVF];
13397 let Constraints = "$Rxx32 = $Rxx32in";
13398 }
13399 def M2_cnacsc_s1 : HInst<
13400 (outs DoubleRegs:$Rxx32),
13401 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13402 "$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
13403 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13404 let Inst{7-5} = 0b111;
13405 let Inst{13-13} = 0b0;
13406 let Inst{31-21} = 0b11100111110;
13407 let prefersSlot3 = 1;
13408 let Defs = [USR_OVF];
13409 let Constraints = "$Rxx32 = $Rxx32in";
13410 }
13411 def M2_dpmpyss_acc_s0 : HInst<
13412 (outs DoubleRegs:$Rxx32),
13413 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13414 "$Rxx32 += mpy($Rs32,$Rt32)",
13415 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13416 let Inst{7-5} = 0b000;
13417 let Inst{13-13} = 0b0;
13418 let Inst{31-21} = 0b11100111000;
13419 let prefersSlot3 = 1;
13420 let Constraints = "$Rxx32 = $Rxx32in";
13421 }
13422 def M2_dpmpyss_nac_s0 : HInst<
13423 (outs DoubleRegs:$Rxx32),
13424 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13425 "$Rxx32 -= mpy($Rs32,$Rt32)",
13426 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13427 let Inst{7-5} = 0b000;
13428 let Inst{13-13} = 0b0;
13429 let Inst{31-21} = 0b11100111001;
13430 let prefersSlot3 = 1;
13431 let Constraints = "$Rxx32 = $Rxx32in";
13432 }
13433 def M2_dpmpyss_rnd_s0 : HInst<
13434 (outs IntRegs:$Rd32),
13435 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13436 "$Rd32 = mpy($Rs32,$Rt32):rnd",
13437 tc_8c8041e6, TypeM>, Enc_5ab2be {
13438 let Inst{7-5} = 0b001;
13439 let Inst{13-13} = 0b0;
13440 let Inst{31-21} = 0b11101101001;
13441 let hasNewValue = 1;
13442 let opNewValue = 0;
13443 let prefersSlot3 = 1;
13444 }
13445 def M2_dpmpyss_s0 : HInst<
13446 (outs DoubleRegs:$Rdd32),
13447 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13448 "$Rdd32 = mpy($Rs32,$Rt32)",
13449 tc_8c8041e6, TypeM>, Enc_be32a5 {
13450 let Inst{7-5} = 0b000;
13451 let Inst{13-13} = 0b0;
13452 let Inst{31-21} = 0b11100101000;
13453 let prefersSlot3 = 1;
13454 }
13455 def M2_dpmpyuu_acc_s0 : HInst<
13456 (outs DoubleRegs:$Rxx32),
13457 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13458 "$Rxx32 += mpyu($Rs32,$Rt32)",
13459 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13460 let Inst{7-5} = 0b000;
13461 let Inst{13-13} = 0b0;
13462 let Inst{31-21} = 0b11100111010;
13463 let prefersSlot3 = 1;
13464 let Constraints = "$Rxx32 = $Rxx32in";
13465 }
13466 def M2_dpmpyuu_nac_s0 : HInst<
13467 (outs DoubleRegs:$Rxx32),
13468 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13469 "$Rxx32 -= mpyu($Rs32,$Rt32)",
13470 tc_8cb685d9, TypeM>, Enc_61f0b0 {
13471 let Inst{7-5} = 0b000;
13472 let Inst{13-13} = 0b0;
13473 let Inst{31-21} = 0b11100111011;
13474 let prefersSlot3 = 1;
13475 let Constraints = "$Rxx32 = $Rxx32in";
13476 }
13477 def M2_dpmpyuu_s0 : HInst<
13478 (outs DoubleRegs:$Rdd32),
13479 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13480 "$Rdd32 = mpyu($Rs32,$Rt32)",
13481 tc_8c8041e6, TypeM>, Enc_be32a5 {
13482 let Inst{7-5} = 0b000;
13483 let Inst{13-13} = 0b0;
13484 let Inst{31-21} = 0b11100101010;
13485 let prefersSlot3 = 1;
13486 }
13487 def M2_hmmpyh_rs1 : HInst<
13488 (outs IntRegs:$Rd32),
13489 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13490 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
13491 tc_8c8041e6, TypeM>, Enc_5ab2be {
13492 let Inst{7-5} = 0b100;
13493 let Inst{13-13} = 0b0;
13494 let Inst{31-21} = 0b11101101101;
13495 let hasNewValue = 1;
13496 let opNewValue = 0;
13497 let prefersSlot3 = 1;
13498 let Defs = [USR_OVF];
13499 }
13500 def M2_hmmpyh_s1 : HInst<
13501 (outs IntRegs:$Rd32),
13502 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13503 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
13504 tc_8c8041e6, TypeM>, Enc_5ab2be {
13505 let Inst{7-5} = 0b000;
13506 let Inst{13-13} = 0b0;
13507 let Inst{31-21} = 0b11101101101;
13508 let hasNewValue = 1;
13509 let opNewValue = 0;
13510 let prefersSlot3 = 1;
13511 let Defs = [USR_OVF];
13512 }
13513 def M2_hmmpyl_rs1 : HInst<
13514 (outs IntRegs:$Rd32),
13515 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13516 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
13517 tc_8c8041e6, TypeM>, Enc_5ab2be {
13518 let Inst{7-5} = 0b100;
13519 let Inst{13-13} = 0b0;
13520 let Inst{31-21} = 0b11101101111;
13521 let hasNewValue = 1;
13522 let opNewValue = 0;
13523 let prefersSlot3 = 1;
13524 let Defs = [USR_OVF];
13525 }
13526 def M2_hmmpyl_s1 : HInst<
13527 (outs IntRegs:$Rd32),
13528 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13529 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
13530 tc_8c8041e6, TypeM>, Enc_5ab2be {
13531 let Inst{7-5} = 0b001;
13532 let Inst{13-13} = 0b0;
13533 let Inst{31-21} = 0b11101101101;
13534 let hasNewValue = 1;
13535 let opNewValue = 0;
13536 let prefersSlot3 = 1;
13537 let Defs = [USR_OVF];
13538 }
13539 def M2_maci : HInst<
13540 (outs IntRegs:$Rx32),
13541 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13542 "$Rx32 += mpyi($Rs32,$Rt32)",
13543 tc_8cb685d9, TypeM>, Enc_2ae154, ImmRegRel {
13544 let Inst{7-5} = 0b000;
13545 let Inst{13-13} = 0b0;
13546 let Inst{31-21} = 0b11101111000;
13547 let hasNewValue = 1;
13548 let opNewValue = 0;
13549 let prefersSlot3 = 1;
13550 let CextOpcode = "M2_maci";
13551 let InputType = "reg";
13552 let Constraints = "$Rx32 = $Rx32in";
13553 }
13554 def M2_macsin : HInst<
13555 (outs IntRegs:$Rx32),
13556 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
13557 "$Rx32 -= mpyi($Rs32,#$Ii)",
13558 tc_a12a5971, TypeM>, Enc_c90aca {
13559 let Inst{13-13} = 0b0;
13560 let Inst{31-21} = 0b11100001100;
13561 let hasNewValue = 1;
13562 let opNewValue = 0;
13563 let prefersSlot3 = 1;
13564 let InputType = "imm";
13565 let isExtendable = 1;
13566 let opExtendable = 3;
13567 let isExtentSigned = 0;
13568 let opExtentBits = 8;
13569 let opExtentAlign = 0;
13570 let Constraints = "$Rx32 = $Rx32in";
13571 }
13572 def M2_macsip : HInst<
13573 (outs IntRegs:$Rx32),
13574 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
13575 "$Rx32 += mpyi($Rs32,#$Ii)",
13576 tc_a12a5971, TypeM>, Enc_c90aca, ImmRegRel {
13577 let Inst{13-13} = 0b0;
13578 let Inst{31-21} = 0b11100001000;
13579 let hasNewValue = 1;
13580 let opNewValue = 0;
13581 let prefersSlot3 = 1;
13582 let CextOpcode = "M2_maci";
13583 let InputType = "imm";
13584 let isExtendable = 1;
13585 let opExtendable = 3;
13586 let isExtentSigned = 0;
13587 let opExtentBits = 8;
13588 let opExtentAlign = 0;
13589 let Constraints = "$Rx32 = $Rx32in";
13590 }
13591 def M2_mmachs_rs0 : HInst<
13592 (outs DoubleRegs:$Rxx32),
13593 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13594 "$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
13595 tc_8cb685d9, TypeM>, Enc_88c16c {
13596 let Inst{7-5} = 0b111;
13597 let Inst{13-13} = 0b0;
13598 let Inst{31-21} = 0b11101010001;
13599 let prefersSlot3 = 1;
13600 let Defs = [USR_OVF];
13601 let Constraints = "$Rxx32 = $Rxx32in";
13602 }
13603 def M2_mmachs_rs1 : HInst<
13604 (outs DoubleRegs:$Rxx32),
13605 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13606 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
13607 tc_8cb685d9, TypeM>, Enc_88c16c {
13608 let Inst{7-5} = 0b111;
13609 let Inst{13-13} = 0b0;
13610 let Inst{31-21} = 0b11101010101;
13611 let prefersSlot3 = 1;
13612 let Defs = [USR_OVF];
13613 let Constraints = "$Rxx32 = $Rxx32in";
13614 }
13615 def M2_mmachs_s0 : HInst<
13616 (outs DoubleRegs:$Rxx32),
13617 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13618 "$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
13619 tc_8cb685d9, TypeM>, Enc_88c16c {
13620 let Inst{7-5} = 0b111;
13621 let Inst{13-13} = 0b0;
13622 let Inst{31-21} = 0b11101010000;
13623 let prefersSlot3 = 1;
13624 let Defs = [USR_OVF];
13625 let Constraints = "$Rxx32 = $Rxx32in";
13626 }
13627 def M2_mmachs_s1 : HInst<
13628 (outs DoubleRegs:$Rxx32),
13629 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13630 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
13631 tc_8cb685d9, TypeM>, Enc_88c16c {
13632 let Inst{7-5} = 0b111;
13633 let Inst{13-13} = 0b0;
13634 let Inst{31-21} = 0b11101010100;
13635 let prefersSlot3 = 1;
13636 let Defs = [USR_OVF];
13637 let Constraints = "$Rxx32 = $Rxx32in";
13638 }
13639 def M2_mmacls_rs0 : HInst<
13640 (outs DoubleRegs:$Rxx32),
13641 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13642 "$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
13643 tc_8cb685d9, TypeM>, Enc_88c16c {
13644 let Inst{7-5} = 0b101;
13645 let Inst{13-13} = 0b0;
13646 let Inst{31-21} = 0b11101010001;
13647 let prefersSlot3 = 1;
13648 let Defs = [USR_OVF];
13649 let Constraints = "$Rxx32 = $Rxx32in";
13650 }
13651 def M2_mmacls_rs1 : HInst<
13652 (outs DoubleRegs:$Rxx32),
13653 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13654 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
13655 tc_8cb685d9, TypeM>, Enc_88c16c {
13656 let Inst{7-5} = 0b101;
13657 let Inst{13-13} = 0b0;
13658 let Inst{31-21} = 0b11101010101;
13659 let prefersSlot3 = 1;
13660 let Defs = [USR_OVF];
13661 let Constraints = "$Rxx32 = $Rxx32in";
13662 }
13663 def M2_mmacls_s0 : HInst<
13664 (outs DoubleRegs:$Rxx32),
13665 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13666 "$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
13667 tc_8cb685d9, TypeM>, Enc_88c16c {
13668 let Inst{7-5} = 0b101;
13669 let Inst{13-13} = 0b0;
13670 let Inst{31-21} = 0b11101010000;
13671 let prefersSlot3 = 1;
13672 let Defs = [USR_OVF];
13673 let Constraints = "$Rxx32 = $Rxx32in";
13674 }
13675 def M2_mmacls_s1 : HInst<
13676 (outs DoubleRegs:$Rxx32),
13677 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13678 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
13679 tc_8cb685d9, TypeM>, Enc_88c16c {
13680 let Inst{7-5} = 0b101;
13681 let Inst{13-13} = 0b0;
13682 let Inst{31-21} = 0b11101010100;
13683 let prefersSlot3 = 1;
13684 let Defs = [USR_OVF];
13685 let Constraints = "$Rxx32 = $Rxx32in";
13686 }
13687 def M2_mmacuhs_rs0 : HInst<
13688 (outs DoubleRegs:$Rxx32),
13689 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13690 "$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
13691 tc_8cb685d9, TypeM>, Enc_88c16c {
13692 let Inst{7-5} = 0b111;
13693 let Inst{13-13} = 0b0;
13694 let Inst{31-21} = 0b11101010011;
13695 let prefersSlot3 = 1;
13696 let Defs = [USR_OVF];
13697 let Constraints = "$Rxx32 = $Rxx32in";
13698 }
13699 def M2_mmacuhs_rs1 : HInst<
13700 (outs DoubleRegs:$Rxx32),
13701 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13702 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
13703 tc_8cb685d9, TypeM>, Enc_88c16c {
13704 let Inst{7-5} = 0b111;
13705 let Inst{13-13} = 0b0;
13706 let Inst{31-21} = 0b11101010111;
13707 let prefersSlot3 = 1;
13708 let Defs = [USR_OVF];
13709 let Constraints = "$Rxx32 = $Rxx32in";
13710 }
13711 def M2_mmacuhs_s0 : HInst<
13712 (outs DoubleRegs:$Rxx32),
13713 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13714 "$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
13715 tc_8cb685d9, TypeM>, Enc_88c16c {
13716 let Inst{7-5} = 0b111;
13717 let Inst{13-13} = 0b0;
13718 let Inst{31-21} = 0b11101010010;
13719 let prefersSlot3 = 1;
13720 let Defs = [USR_OVF];
13721 let Constraints = "$Rxx32 = $Rxx32in";
13722 }
13723 def M2_mmacuhs_s1 : HInst<
13724 (outs DoubleRegs:$Rxx32),
13725 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13726 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
13727 tc_8cb685d9, TypeM>, Enc_88c16c {
13728 let Inst{7-5} = 0b111;
13729 let Inst{13-13} = 0b0;
13730 let Inst{31-21} = 0b11101010110;
13731 let prefersSlot3 = 1;
13732 let Defs = [USR_OVF];
13733 let Constraints = "$Rxx32 = $Rxx32in";
13734 }
13735 def M2_mmaculs_rs0 : HInst<
13736 (outs DoubleRegs:$Rxx32),
13737 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13738 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
13739 tc_8cb685d9, TypeM>, Enc_88c16c {
13740 let Inst{7-5} = 0b101;
13741 let Inst{13-13} = 0b0;
13742 let Inst{31-21} = 0b11101010011;
13743 let prefersSlot3 = 1;
13744 let Defs = [USR_OVF];
13745 let Constraints = "$Rxx32 = $Rxx32in";
13746 }
13747 def M2_mmaculs_rs1 : HInst<
13748 (outs DoubleRegs:$Rxx32),
13749 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13750 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
13751 tc_8cb685d9, TypeM>, Enc_88c16c {
13752 let Inst{7-5} = 0b101;
13753 let Inst{13-13} = 0b0;
13754 let Inst{31-21} = 0b11101010111;
13755 let prefersSlot3 = 1;
13756 let Defs = [USR_OVF];
13757 let Constraints = "$Rxx32 = $Rxx32in";
13758 }
13759 def M2_mmaculs_s0 : HInst<
13760 (outs DoubleRegs:$Rxx32),
13761 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13762 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
13763 tc_8cb685d9, TypeM>, Enc_88c16c {
13764 let Inst{7-5} = 0b101;
13765 let Inst{13-13} = 0b0;
13766 let Inst{31-21} = 0b11101010010;
13767 let prefersSlot3 = 1;
13768 let Defs = [USR_OVF];
13769 let Constraints = "$Rxx32 = $Rxx32in";
13770 }
13771 def M2_mmaculs_s1 : HInst<
13772 (outs DoubleRegs:$Rxx32),
13773 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13774 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
13775 tc_8cb685d9, TypeM>, Enc_88c16c {
13776 let Inst{7-5} = 0b101;
13777 let Inst{13-13} = 0b0;
13778 let Inst{31-21} = 0b11101010110;
13779 let prefersSlot3 = 1;
13780 let Defs = [USR_OVF];
13781 let Constraints = "$Rxx32 = $Rxx32in";
13782 }
13783 def M2_mmpyh_rs0 : HInst<
13784 (outs DoubleRegs:$Rdd32),
13785 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13786 "$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
13787 tc_8c8041e6, TypeM>, Enc_a56825 {
13788 let Inst{7-5} = 0b111;
13789 let Inst{13-13} = 0b0;
13790 let Inst{31-21} = 0b11101000001;
13791 let prefersSlot3 = 1;
13792 let Defs = [USR_OVF];
13793 }
13794 def M2_mmpyh_rs1 : HInst<
13795 (outs DoubleRegs:$Rdd32),
13796 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13797 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
13798 tc_8c8041e6, TypeM>, Enc_a56825 {
13799 let Inst{7-5} = 0b111;
13800 let Inst{13-13} = 0b0;
13801 let Inst{31-21} = 0b11101000101;
13802 let prefersSlot3 = 1;
13803 let Defs = [USR_OVF];
13804 }
13805 def M2_mmpyh_s0 : HInst<
13806 (outs DoubleRegs:$Rdd32),
13807 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13808 "$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
13809 tc_8c8041e6, TypeM>, Enc_a56825 {
13810 let Inst{7-5} = 0b111;
13811 let Inst{13-13} = 0b0;
13812 let Inst{31-21} = 0b11101000000;
13813 let prefersSlot3 = 1;
13814 let Defs = [USR_OVF];
13815 }
13816 def M2_mmpyh_s1 : HInst<
13817 (outs DoubleRegs:$Rdd32),
13818 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13819 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
13820 tc_8c8041e6, TypeM>, Enc_a56825 {
13821 let Inst{7-5} = 0b111;
13822 let Inst{13-13} = 0b0;
13823 let Inst{31-21} = 0b11101000100;
13824 let prefersSlot3 = 1;
13825 let Defs = [USR_OVF];
13826 }
13827 def M2_mmpyl_rs0 : HInst<
13828 (outs DoubleRegs:$Rdd32),
13829 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13830 "$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
13831 tc_8c8041e6, TypeM>, Enc_a56825 {
13832 let Inst{7-5} = 0b101;
13833 let Inst{13-13} = 0b0;
13834 let Inst{31-21} = 0b11101000001;
13835 let prefersSlot3 = 1;
13836 let Defs = [USR_OVF];
13837 }
13838 def M2_mmpyl_rs1 : HInst<
13839 (outs DoubleRegs:$Rdd32),
13840 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13841 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
13842 tc_8c8041e6, TypeM>, Enc_a56825 {
13843 let Inst{7-5} = 0b101;
13844 let Inst{13-13} = 0b0;
13845 let Inst{31-21} = 0b11101000101;
13846 let prefersSlot3 = 1;
13847 let Defs = [USR_OVF];
13848 }
13849 def M2_mmpyl_s0 : HInst<
13850 (outs DoubleRegs:$Rdd32),
13851 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13852 "$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
13853 tc_8c8041e6, TypeM>, Enc_a56825 {
13854 let Inst{7-5} = 0b101;
13855 let Inst{13-13} = 0b0;
13856 let Inst{31-21} = 0b11101000000;
13857 let prefersSlot3 = 1;
13858 let Defs = [USR_OVF];
13859 }
13860 def M2_mmpyl_s1 : HInst<
13861 (outs DoubleRegs:$Rdd32),
13862 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13863 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
13864 tc_8c8041e6, TypeM>, Enc_a56825 {
13865 let Inst{7-5} = 0b101;
13866 let Inst{13-13} = 0b0;
13867 let Inst{31-21} = 0b11101000100;
13868 let prefersSlot3 = 1;
13869 let Defs = [USR_OVF];
13870 }
13871 def M2_mmpyuh_rs0 : HInst<
13872 (outs DoubleRegs:$Rdd32),
13873 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13874 "$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
13875 tc_8c8041e6, TypeM>, Enc_a56825 {
13876 let Inst{7-5} = 0b111;
13877 let Inst{13-13} = 0b0;
13878 let Inst{31-21} = 0b11101000011;
13879 let prefersSlot3 = 1;
13880 let Defs = [USR_OVF];
13881 }
13882 def M2_mmpyuh_rs1 : HInst<
13883 (outs DoubleRegs:$Rdd32),
13884 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13885 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
13886 tc_8c8041e6, TypeM>, Enc_a56825 {
13887 let Inst{7-5} = 0b111;
13888 let Inst{13-13} = 0b0;
13889 let Inst{31-21} = 0b11101000111;
13890 let prefersSlot3 = 1;
13891 let Defs = [USR_OVF];
13892 }
13893 def M2_mmpyuh_s0 : HInst<
13894 (outs DoubleRegs:$Rdd32),
13895 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13896 "$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
13897 tc_8c8041e6, TypeM>, Enc_a56825 {
13898 let Inst{7-5} = 0b111;
13899 let Inst{13-13} = 0b0;
13900 let Inst{31-21} = 0b11101000010;
13901 let prefersSlot3 = 1;
13902 let Defs = [USR_OVF];
13903 }
13904 def M2_mmpyuh_s1 : HInst<
13905 (outs DoubleRegs:$Rdd32),
13906 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13907 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
13908 tc_8c8041e6, TypeM>, Enc_a56825 {
13909 let Inst{7-5} = 0b111;
13910 let Inst{13-13} = 0b0;
13911 let Inst{31-21} = 0b11101000110;
13912 let prefersSlot3 = 1;
13913 let Defs = [USR_OVF];
13914 }
13915 def M2_mmpyul_rs0 : HInst<
13916 (outs DoubleRegs:$Rdd32),
13917 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13918 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
13919 tc_8c8041e6, TypeM>, Enc_a56825 {
13920 let Inst{7-5} = 0b101;
13921 let Inst{13-13} = 0b0;
13922 let Inst{31-21} = 0b11101000011;
13923 let prefersSlot3 = 1;
13924 let Defs = [USR_OVF];
13925 }
13926 def M2_mmpyul_rs1 : HInst<
13927 (outs DoubleRegs:$Rdd32),
13928 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13929 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
13930 tc_8c8041e6, TypeM>, Enc_a56825 {
13931 let Inst{7-5} = 0b101;
13932 let Inst{13-13} = 0b0;
13933 let Inst{31-21} = 0b11101000111;
13934 let prefersSlot3 = 1;
13935 let Defs = [USR_OVF];
13936 }
13937 def M2_mmpyul_s0 : HInst<
13938 (outs DoubleRegs:$Rdd32),
13939 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13940 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
13941 tc_8c8041e6, TypeM>, Enc_a56825 {
13942 let Inst{7-5} = 0b101;
13943 let Inst{13-13} = 0b0;
13944 let Inst{31-21} = 0b11101000010;
13945 let prefersSlot3 = 1;
13946 let Defs = [USR_OVF];
13947 }
13948 def M2_mmpyul_s1 : HInst<
13949 (outs DoubleRegs:$Rdd32),
13950 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
13951 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
13952 tc_8c8041e6, TypeM>, Enc_a56825 {
13953 let Inst{7-5} = 0b101;
13954 let Inst{13-13} = 0b0;
13955 let Inst{31-21} = 0b11101000110;
13956 let prefersSlot3 = 1;
13957 let Defs = [USR_OVF];
13958 }
13959 def M2_mpy_acc_hh_s0 : HInst<
13960 (outs IntRegs:$Rx32),
13961 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13962 "$Rx32 += mpy($Rs32.h,$Rt32.h)",
13963 tc_8cb685d9, TypeM>, Enc_2ae154 {
13964 let Inst{7-5} = 0b011;
13965 let Inst{13-13} = 0b0;
13966 let Inst{31-21} = 0b11101110000;
13967 let hasNewValue = 1;
13968 let opNewValue = 0;
13969 let prefersSlot3 = 1;
13970 let Constraints = "$Rx32 = $Rx32in";
13971 }
13972 def M2_mpy_acc_hh_s1 : HInst<
13973 (outs IntRegs:$Rx32),
13974 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13975 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
13976 tc_8cb685d9, TypeM>, Enc_2ae154 {
13977 let Inst{7-5} = 0b011;
13978 let Inst{13-13} = 0b0;
13979 let Inst{31-21} = 0b11101110100;
13980 let hasNewValue = 1;
13981 let opNewValue = 0;
13982 let prefersSlot3 = 1;
13983 let Constraints = "$Rx32 = $Rx32in";
13984 }
13985 def M2_mpy_acc_hl_s0 : HInst<
13986 (outs IntRegs:$Rx32),
13987 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13988 "$Rx32 += mpy($Rs32.h,$Rt32.l)",
13989 tc_8cb685d9, TypeM>, Enc_2ae154 {
13990 let Inst{7-5} = 0b010;
13991 let Inst{13-13} = 0b0;
13992 let Inst{31-21} = 0b11101110000;
13993 let hasNewValue = 1;
13994 let opNewValue = 0;
13995 let prefersSlot3 = 1;
13996 let Constraints = "$Rx32 = $Rx32in";
13997 }
13998 def M2_mpy_acc_hl_s1 : HInst<
13999 (outs IntRegs:$Rx32),
14000 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14001 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14002 tc_8cb685d9, TypeM>, Enc_2ae154 {
14003 let Inst{7-5} = 0b010;
14004 let Inst{13-13} = 0b0;
14005 let Inst{31-21} = 0b11101110100;
14006 let hasNewValue = 1;
14007 let opNewValue = 0;
14008 let prefersSlot3 = 1;
14009 let Constraints = "$Rx32 = $Rx32in";
14010 }
14011 def M2_mpy_acc_lh_s0 : HInst<
14012 (outs IntRegs:$Rx32),
14013 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14014 "$Rx32 += mpy($Rs32.l,$Rt32.h)",
14015 tc_8cb685d9, TypeM>, Enc_2ae154 {
14016 let Inst{7-5} = 0b001;
14017 let Inst{13-13} = 0b0;
14018 let Inst{31-21} = 0b11101110000;
14019 let hasNewValue = 1;
14020 let opNewValue = 0;
14021 let prefersSlot3 = 1;
14022 let Constraints = "$Rx32 = $Rx32in";
14023 }
14024 def M2_mpy_acc_lh_s1 : HInst<
14025 (outs IntRegs:$Rx32),
14026 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14027 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14028 tc_8cb685d9, TypeM>, Enc_2ae154 {
14029 let Inst{7-5} = 0b001;
14030 let Inst{13-13} = 0b0;
14031 let Inst{31-21} = 0b11101110100;
14032 let hasNewValue = 1;
14033 let opNewValue = 0;
14034 let prefersSlot3 = 1;
14035 let Constraints = "$Rx32 = $Rx32in";
14036 }
14037 def M2_mpy_acc_ll_s0 : HInst<
14038 (outs IntRegs:$Rx32),
14039 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14040 "$Rx32 += mpy($Rs32.l,$Rt32.l)",
14041 tc_8cb685d9, TypeM>, Enc_2ae154 {
14042 let Inst{7-5} = 0b000;
14043 let Inst{13-13} = 0b0;
14044 let Inst{31-21} = 0b11101110000;
14045 let hasNewValue = 1;
14046 let opNewValue = 0;
14047 let prefersSlot3 = 1;
14048 let Constraints = "$Rx32 = $Rx32in";
14049 }
14050 def M2_mpy_acc_ll_s1 : HInst<
14051 (outs IntRegs:$Rx32),
14052 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14053 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14054 tc_8cb685d9, TypeM>, Enc_2ae154 {
14055 let Inst{7-5} = 0b000;
14056 let Inst{13-13} = 0b0;
14057 let Inst{31-21} = 0b11101110100;
14058 let hasNewValue = 1;
14059 let opNewValue = 0;
14060 let prefersSlot3 = 1;
14061 let Constraints = "$Rx32 = $Rx32in";
14062 }
14063 def M2_mpy_acc_sat_hh_s0 : HInst<
14064 (outs IntRegs:$Rx32),
14065 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14066 "$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14067 tc_8cb685d9, TypeM>, Enc_2ae154 {
14068 let Inst{7-5} = 0b111;
14069 let Inst{13-13} = 0b0;
14070 let Inst{31-21} = 0b11101110000;
14071 let hasNewValue = 1;
14072 let opNewValue = 0;
14073 let prefersSlot3 = 1;
14074 let Defs = [USR_OVF];
14075 let Constraints = "$Rx32 = $Rx32in";
14076 }
14077 def M2_mpy_acc_sat_hh_s1 : HInst<
14078 (outs IntRegs:$Rx32),
14079 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14080 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14081 tc_8cb685d9, TypeM>, Enc_2ae154 {
14082 let Inst{7-5} = 0b111;
14083 let Inst{13-13} = 0b0;
14084 let Inst{31-21} = 0b11101110100;
14085 let hasNewValue = 1;
14086 let opNewValue = 0;
14087 let prefersSlot3 = 1;
14088 let Defs = [USR_OVF];
14089 let Constraints = "$Rx32 = $Rx32in";
14090 }
14091 def M2_mpy_acc_sat_hl_s0 : HInst<
14092 (outs IntRegs:$Rx32),
14093 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14094 "$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14095 tc_8cb685d9, TypeM>, Enc_2ae154 {
14096 let Inst{7-5} = 0b110;
14097 let Inst{13-13} = 0b0;
14098 let Inst{31-21} = 0b11101110000;
14099 let hasNewValue = 1;
14100 let opNewValue = 0;
14101 let prefersSlot3 = 1;
14102 let Defs = [USR_OVF];
14103 let Constraints = "$Rx32 = $Rx32in";
14104 }
14105 def M2_mpy_acc_sat_hl_s1 : HInst<
14106 (outs IntRegs:$Rx32),
14107 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14108 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14109 tc_8cb685d9, TypeM>, Enc_2ae154 {
14110 let Inst{7-5} = 0b110;
14111 let Inst{13-13} = 0b0;
14112 let Inst{31-21} = 0b11101110100;
14113 let hasNewValue = 1;
14114 let opNewValue = 0;
14115 let prefersSlot3 = 1;
14116 let Defs = [USR_OVF];
14117 let Constraints = "$Rx32 = $Rx32in";
14118 }
14119 def M2_mpy_acc_sat_lh_s0 : HInst<
14120 (outs IntRegs:$Rx32),
14121 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14122 "$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14123 tc_8cb685d9, TypeM>, Enc_2ae154 {
14124 let Inst{7-5} = 0b101;
14125 let Inst{13-13} = 0b0;
14126 let Inst{31-21} = 0b11101110000;
14127 let hasNewValue = 1;
14128 let opNewValue = 0;
14129 let prefersSlot3 = 1;
14130 let Defs = [USR_OVF];
14131 let Constraints = "$Rx32 = $Rx32in";
14132 }
14133 def M2_mpy_acc_sat_lh_s1 : HInst<
14134 (outs IntRegs:$Rx32),
14135 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14136 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14137 tc_8cb685d9, TypeM>, Enc_2ae154 {
14138 let Inst{7-5} = 0b101;
14139 let Inst{13-13} = 0b0;
14140 let Inst{31-21} = 0b11101110100;
14141 let hasNewValue = 1;
14142 let opNewValue = 0;
14143 let prefersSlot3 = 1;
14144 let Defs = [USR_OVF];
14145 let Constraints = "$Rx32 = $Rx32in";
14146 }
14147 def M2_mpy_acc_sat_ll_s0 : HInst<
14148 (outs IntRegs:$Rx32),
14149 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14150 "$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14151 tc_8cb685d9, TypeM>, Enc_2ae154 {
14152 let Inst{7-5} = 0b100;
14153 let Inst{13-13} = 0b0;
14154 let Inst{31-21} = 0b11101110000;
14155 let hasNewValue = 1;
14156 let opNewValue = 0;
14157 let prefersSlot3 = 1;
14158 let Defs = [USR_OVF];
14159 let Constraints = "$Rx32 = $Rx32in";
14160 }
14161 def M2_mpy_acc_sat_ll_s1 : HInst<
14162 (outs IntRegs:$Rx32),
14163 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14164 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14165 tc_8cb685d9, TypeM>, Enc_2ae154 {
14166 let Inst{7-5} = 0b100;
14167 let Inst{13-13} = 0b0;
14168 let Inst{31-21} = 0b11101110100;
14169 let hasNewValue = 1;
14170 let opNewValue = 0;
14171 let prefersSlot3 = 1;
14172 let Defs = [USR_OVF];
14173 let Constraints = "$Rx32 = $Rx32in";
14174 }
14175 def M2_mpy_hh_s0 : HInst<
14176 (outs IntRegs:$Rd32),
14177 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14178 "$Rd32 = mpy($Rs32.h,$Rt32.h)",
14179 tc_8c8041e6, TypeM>, Enc_5ab2be {
14180 let Inst{7-5} = 0b011;
14181 let Inst{13-13} = 0b0;
14182 let Inst{31-21} = 0b11101100000;
14183 let hasNewValue = 1;
14184 let opNewValue = 0;
14185 let prefersSlot3 = 1;
14186 }
14187 def M2_mpy_hh_s1 : HInst<
14188 (outs IntRegs:$Rd32),
14189 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14190 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14191 tc_8c8041e6, TypeM>, Enc_5ab2be {
14192 let Inst{7-5} = 0b011;
14193 let Inst{13-13} = 0b0;
14194 let Inst{31-21} = 0b11101100100;
14195 let hasNewValue = 1;
14196 let opNewValue = 0;
14197 let prefersSlot3 = 1;
14198 }
14199 def M2_mpy_hl_s0 : HInst<
14200 (outs IntRegs:$Rd32),
14201 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14202 "$Rd32 = mpy($Rs32.h,$Rt32.l)",
14203 tc_8c8041e6, TypeM>, Enc_5ab2be {
14204 let Inst{7-5} = 0b010;
14205 let Inst{13-13} = 0b0;
14206 let Inst{31-21} = 0b11101100000;
14207 let hasNewValue = 1;
14208 let opNewValue = 0;
14209 let prefersSlot3 = 1;
14210 }
14211 def M2_mpy_hl_s1 : HInst<
14212 (outs IntRegs:$Rd32),
14213 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14214 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14215 tc_8c8041e6, TypeM>, Enc_5ab2be {
14216 let Inst{7-5} = 0b010;
14217 let Inst{13-13} = 0b0;
14218 let Inst{31-21} = 0b11101100100;
14219 let hasNewValue = 1;
14220 let opNewValue = 0;
14221 let prefersSlot3 = 1;
14222 }
14223 def M2_mpy_lh_s0 : HInst<
14224 (outs IntRegs:$Rd32),
14225 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14226 "$Rd32 = mpy($Rs32.l,$Rt32.h)",
14227 tc_8c8041e6, TypeM>, Enc_5ab2be {
14228 let Inst{7-5} = 0b001;
14229 let Inst{13-13} = 0b0;
14230 let Inst{31-21} = 0b11101100000;
14231 let hasNewValue = 1;
14232 let opNewValue = 0;
14233 let prefersSlot3 = 1;
14234 }
14235 def M2_mpy_lh_s1 : HInst<
14236 (outs IntRegs:$Rd32),
14237 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14238 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14239 tc_8c8041e6, TypeM>, Enc_5ab2be {
14240 let Inst{7-5} = 0b001;
14241 let Inst{13-13} = 0b0;
14242 let Inst{31-21} = 0b11101100100;
14243 let hasNewValue = 1;
14244 let opNewValue = 0;
14245 let prefersSlot3 = 1;
14246 }
14247 def M2_mpy_ll_s0 : HInst<
14248 (outs IntRegs:$Rd32),
14249 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14250 "$Rd32 = mpy($Rs32.l,$Rt32.l)",
14251 tc_8c8041e6, TypeM>, Enc_5ab2be {
14252 let Inst{7-5} = 0b000;
14253 let Inst{13-13} = 0b0;
14254 let Inst{31-21} = 0b11101100000;
14255 let hasNewValue = 1;
14256 let opNewValue = 0;
14257 let prefersSlot3 = 1;
14258 }
14259 def M2_mpy_ll_s1 : HInst<
14260 (outs IntRegs:$Rd32),
14261 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14262 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14263 tc_8c8041e6, TypeM>, Enc_5ab2be {
14264 let Inst{7-5} = 0b000;
14265 let Inst{13-13} = 0b0;
14266 let Inst{31-21} = 0b11101100100;
14267 let hasNewValue = 1;
14268 let opNewValue = 0;
14269 let prefersSlot3 = 1;
14270 }
14271 def M2_mpy_nac_hh_s0 : HInst<
14272 (outs IntRegs:$Rx32),
14273 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14274 "$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14275 tc_8cb685d9, TypeM>, Enc_2ae154 {
14276 let Inst{7-5} = 0b011;
14277 let Inst{13-13} = 0b0;
14278 let Inst{31-21} = 0b11101110001;
14279 let hasNewValue = 1;
14280 let opNewValue = 0;
14281 let prefersSlot3 = 1;
14282 let Constraints = "$Rx32 = $Rx32in";
14283 }
14284 def M2_mpy_nac_hh_s1 : HInst<
14285 (outs IntRegs:$Rx32),
14286 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14287 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14288 tc_8cb685d9, TypeM>, Enc_2ae154 {
14289 let Inst{7-5} = 0b011;
14290 let Inst{13-13} = 0b0;
14291 let Inst{31-21} = 0b11101110101;
14292 let hasNewValue = 1;
14293 let opNewValue = 0;
14294 let prefersSlot3 = 1;
14295 let Constraints = "$Rx32 = $Rx32in";
14296 }
14297 def M2_mpy_nac_hl_s0 : HInst<
14298 (outs IntRegs:$Rx32),
14299 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14300 "$Rx32 -= mpy($Rs32.h,$Rt32.l)",
14301 tc_8cb685d9, TypeM>, Enc_2ae154 {
14302 let Inst{7-5} = 0b010;
14303 let Inst{13-13} = 0b0;
14304 let Inst{31-21} = 0b11101110001;
14305 let hasNewValue = 1;
14306 let opNewValue = 0;
14307 let prefersSlot3 = 1;
14308 let Constraints = "$Rx32 = $Rx32in";
14309 }
14310 def M2_mpy_nac_hl_s1 : HInst<
14311 (outs IntRegs:$Rx32),
14312 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14313 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
14314 tc_8cb685d9, TypeM>, Enc_2ae154 {
14315 let Inst{7-5} = 0b010;
14316 let Inst{13-13} = 0b0;
14317 let Inst{31-21} = 0b11101110101;
14318 let hasNewValue = 1;
14319 let opNewValue = 0;
14320 let prefersSlot3 = 1;
14321 let Constraints = "$Rx32 = $Rx32in";
14322 }
14323 def M2_mpy_nac_lh_s0 : HInst<
14324 (outs IntRegs:$Rx32),
14325 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14326 "$Rx32 -= mpy($Rs32.l,$Rt32.h)",
14327 tc_8cb685d9, TypeM>, Enc_2ae154 {
14328 let Inst{7-5} = 0b001;
14329 let Inst{13-13} = 0b0;
14330 let Inst{31-21} = 0b11101110001;
14331 let hasNewValue = 1;
14332 let opNewValue = 0;
14333 let prefersSlot3 = 1;
14334 let Constraints = "$Rx32 = $Rx32in";
14335 }
14336 def M2_mpy_nac_lh_s1 : HInst<
14337 (outs IntRegs:$Rx32),
14338 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14339 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
14340 tc_8cb685d9, TypeM>, Enc_2ae154 {
14341 let Inst{7-5} = 0b001;
14342 let Inst{13-13} = 0b0;
14343 let Inst{31-21} = 0b11101110101;
14344 let hasNewValue = 1;
14345 let opNewValue = 0;
14346 let prefersSlot3 = 1;
14347 let Constraints = "$Rx32 = $Rx32in";
14348 }
14349 def M2_mpy_nac_ll_s0 : HInst<
14350 (outs IntRegs:$Rx32),
14351 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14352 "$Rx32 -= mpy($Rs32.l,$Rt32.l)",
14353 tc_8cb685d9, TypeM>, Enc_2ae154 {
14354 let Inst{7-5} = 0b000;
14355 let Inst{13-13} = 0b0;
14356 let Inst{31-21} = 0b11101110001;
14357 let hasNewValue = 1;
14358 let opNewValue = 0;
14359 let prefersSlot3 = 1;
14360 let Constraints = "$Rx32 = $Rx32in";
14361 }
14362 def M2_mpy_nac_ll_s1 : HInst<
14363 (outs IntRegs:$Rx32),
14364 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14365 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
14366 tc_8cb685d9, TypeM>, Enc_2ae154 {
14367 let Inst{7-5} = 0b000;
14368 let Inst{13-13} = 0b0;
14369 let Inst{31-21} = 0b11101110101;
14370 let hasNewValue = 1;
14371 let opNewValue = 0;
14372 let prefersSlot3 = 1;
14373 let Constraints = "$Rx32 = $Rx32in";
14374 }
14375 def M2_mpy_nac_sat_hh_s0 : HInst<
14376 (outs IntRegs:$Rx32),
14377 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14378 "$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
14379 tc_8cb685d9, TypeM>, Enc_2ae154 {
14380 let Inst{7-5} = 0b111;
14381 let Inst{13-13} = 0b0;
14382 let Inst{31-21} = 0b11101110001;
14383 let hasNewValue = 1;
14384 let opNewValue = 0;
14385 let prefersSlot3 = 1;
14386 let Defs = [USR_OVF];
14387 let Constraints = "$Rx32 = $Rx32in";
14388 }
14389 def M2_mpy_nac_sat_hh_s1 : HInst<
14390 (outs IntRegs:$Rx32),
14391 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14392 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
14393 tc_8cb685d9, TypeM>, Enc_2ae154 {
14394 let Inst{7-5} = 0b111;
14395 let Inst{13-13} = 0b0;
14396 let Inst{31-21} = 0b11101110101;
14397 let hasNewValue = 1;
14398 let opNewValue = 0;
14399 let prefersSlot3 = 1;
14400 let Defs = [USR_OVF];
14401 let Constraints = "$Rx32 = $Rx32in";
14402 }
14403 def M2_mpy_nac_sat_hl_s0 : HInst<
14404 (outs IntRegs:$Rx32),
14405 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14406 "$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
14407 tc_8cb685d9, TypeM>, Enc_2ae154 {
14408 let Inst{7-5} = 0b110;
14409 let Inst{13-13} = 0b0;
14410 let Inst{31-21} = 0b11101110001;
14411 let hasNewValue = 1;
14412 let opNewValue = 0;
14413 let prefersSlot3 = 1;
14414 let Defs = [USR_OVF];
14415 let Constraints = "$Rx32 = $Rx32in";
14416 }
14417 def M2_mpy_nac_sat_hl_s1 : HInst<
14418 (outs IntRegs:$Rx32),
14419 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14420 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
14421 tc_8cb685d9, TypeM>, Enc_2ae154 {
14422 let Inst{7-5} = 0b110;
14423 let Inst{13-13} = 0b0;
14424 let Inst{31-21} = 0b11101110101;
14425 let hasNewValue = 1;
14426 let opNewValue = 0;
14427 let prefersSlot3 = 1;
14428 let Defs = [USR_OVF];
14429 let Constraints = "$Rx32 = $Rx32in";
14430 }
14431 def M2_mpy_nac_sat_lh_s0 : HInst<
14432 (outs IntRegs:$Rx32),
14433 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14434 "$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
14435 tc_8cb685d9, TypeM>, Enc_2ae154 {
14436 let Inst{7-5} = 0b101;
14437 let Inst{13-13} = 0b0;
14438 let Inst{31-21} = 0b11101110001;
14439 let hasNewValue = 1;
14440 let opNewValue = 0;
14441 let prefersSlot3 = 1;
14442 let Defs = [USR_OVF];
14443 let Constraints = "$Rx32 = $Rx32in";
14444 }
14445 def M2_mpy_nac_sat_lh_s1 : HInst<
14446 (outs IntRegs:$Rx32),
14447 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14448 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
14449 tc_8cb685d9, TypeM>, Enc_2ae154 {
14450 let Inst{7-5} = 0b101;
14451 let Inst{13-13} = 0b0;
14452 let Inst{31-21} = 0b11101110101;
14453 let hasNewValue = 1;
14454 let opNewValue = 0;
14455 let prefersSlot3 = 1;
14456 let Defs = [USR_OVF];
14457 let Constraints = "$Rx32 = $Rx32in";
14458 }
14459 def M2_mpy_nac_sat_ll_s0 : HInst<
14460 (outs IntRegs:$Rx32),
14461 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14462 "$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
14463 tc_8cb685d9, TypeM>, Enc_2ae154 {
14464 let Inst{7-5} = 0b100;
14465 let Inst{13-13} = 0b0;
14466 let Inst{31-21} = 0b11101110001;
14467 let hasNewValue = 1;
14468 let opNewValue = 0;
14469 let prefersSlot3 = 1;
14470 let Defs = [USR_OVF];
14471 let Constraints = "$Rx32 = $Rx32in";
14472 }
14473 def M2_mpy_nac_sat_ll_s1 : HInst<
14474 (outs IntRegs:$Rx32),
14475 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14476 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
14477 tc_8cb685d9, TypeM>, Enc_2ae154 {
14478 let Inst{7-5} = 0b100;
14479 let Inst{13-13} = 0b0;
14480 let Inst{31-21} = 0b11101110101;
14481 let hasNewValue = 1;
14482 let opNewValue = 0;
14483 let prefersSlot3 = 1;
14484 let Defs = [USR_OVF];
14485 let Constraints = "$Rx32 = $Rx32in";
14486 }
14487 def M2_mpy_rnd_hh_s0 : HInst<
14488 (outs IntRegs:$Rd32),
14489 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14490 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
14491 tc_8c8041e6, TypeM>, Enc_5ab2be {
14492 let Inst{7-5} = 0b011;
14493 let Inst{13-13} = 0b0;
14494 let Inst{31-21} = 0b11101100001;
14495 let hasNewValue = 1;
14496 let opNewValue = 0;
14497 let prefersSlot3 = 1;
14498 }
14499 def M2_mpy_rnd_hh_s1 : HInst<
14500 (outs IntRegs:$Rd32),
14501 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14502 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
14503 tc_8c8041e6, TypeM>, Enc_5ab2be {
14504 let Inst{7-5} = 0b011;
14505 let Inst{13-13} = 0b0;
14506 let Inst{31-21} = 0b11101100101;
14507 let hasNewValue = 1;
14508 let opNewValue = 0;
14509 let prefersSlot3 = 1;
14510 }
14511 def M2_mpy_rnd_hl_s0 : HInst<
14512 (outs IntRegs:$Rd32),
14513 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14514 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
14515 tc_8c8041e6, TypeM>, Enc_5ab2be {
14516 let Inst{7-5} = 0b010;
14517 let Inst{13-13} = 0b0;
14518 let Inst{31-21} = 0b11101100001;
14519 let hasNewValue = 1;
14520 let opNewValue = 0;
14521 let prefersSlot3 = 1;
14522 }
14523 def M2_mpy_rnd_hl_s1 : HInst<
14524 (outs IntRegs:$Rd32),
14525 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14526 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
14527 tc_8c8041e6, TypeM>, Enc_5ab2be {
14528 let Inst{7-5} = 0b010;
14529 let Inst{13-13} = 0b0;
14530 let Inst{31-21} = 0b11101100101;
14531 let hasNewValue = 1;
14532 let opNewValue = 0;
14533 let prefersSlot3 = 1;
14534 }
14535 def M2_mpy_rnd_lh_s0 : HInst<
14536 (outs IntRegs:$Rd32),
14537 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14538 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
14539 tc_8c8041e6, TypeM>, Enc_5ab2be {
14540 let Inst{7-5} = 0b001;
14541 let Inst{13-13} = 0b0;
14542 let Inst{31-21} = 0b11101100001;
14543 let hasNewValue = 1;
14544 let opNewValue = 0;
14545 let prefersSlot3 = 1;
14546 }
14547 def M2_mpy_rnd_lh_s1 : HInst<
14548 (outs IntRegs:$Rd32),
14549 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14550 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
14551 tc_8c8041e6, TypeM>, Enc_5ab2be {
14552 let Inst{7-5} = 0b001;
14553 let Inst{13-13} = 0b0;
14554 let Inst{31-21} = 0b11101100101;
14555 let hasNewValue = 1;
14556 let opNewValue = 0;
14557 let prefersSlot3 = 1;
14558 }
14559 def M2_mpy_rnd_ll_s0 : HInst<
14560 (outs IntRegs:$Rd32),
14561 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14562 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
14563 tc_8c8041e6, TypeM>, Enc_5ab2be {
14564 let Inst{7-5} = 0b000;
14565 let Inst{13-13} = 0b0;
14566 let Inst{31-21} = 0b11101100001;
14567 let hasNewValue = 1;
14568 let opNewValue = 0;
14569 let prefersSlot3 = 1;
14570 }
14571 def M2_mpy_rnd_ll_s1 : HInst<
14572 (outs IntRegs:$Rd32),
14573 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14574 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
14575 tc_8c8041e6, TypeM>, Enc_5ab2be {
14576 let Inst{7-5} = 0b000;
14577 let Inst{13-13} = 0b0;
14578 let Inst{31-21} = 0b11101100101;
14579 let hasNewValue = 1;
14580 let opNewValue = 0;
14581 let prefersSlot3 = 1;
14582 }
14583 def M2_mpy_sat_hh_s0 : HInst<
14584 (outs IntRegs:$Rd32),
14585 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14586 "$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
14587 tc_8c8041e6, TypeM>, Enc_5ab2be {
14588 let Inst{7-5} = 0b111;
14589 let Inst{13-13} = 0b0;
14590 let Inst{31-21} = 0b11101100000;
14591 let hasNewValue = 1;
14592 let opNewValue = 0;
14593 let prefersSlot3 = 1;
14594 let Defs = [USR_OVF];
14595 }
14596 def M2_mpy_sat_hh_s1 : HInst<
14597 (outs IntRegs:$Rd32),
14598 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14599 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
14600 tc_8c8041e6, TypeM>, Enc_5ab2be {
14601 let Inst{7-5} = 0b111;
14602 let Inst{13-13} = 0b0;
14603 let Inst{31-21} = 0b11101100100;
14604 let hasNewValue = 1;
14605 let opNewValue = 0;
14606 let prefersSlot3 = 1;
14607 let Defs = [USR_OVF];
14608 }
14609 def M2_mpy_sat_hl_s0 : HInst<
14610 (outs IntRegs:$Rd32),
14611 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14612 "$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
14613 tc_8c8041e6, TypeM>, Enc_5ab2be {
14614 let Inst{7-5} = 0b110;
14615 let Inst{13-13} = 0b0;
14616 let Inst{31-21} = 0b11101100000;
14617 let hasNewValue = 1;
14618 let opNewValue = 0;
14619 let prefersSlot3 = 1;
14620 let Defs = [USR_OVF];
14621 }
14622 def M2_mpy_sat_hl_s1 : HInst<
14623 (outs IntRegs:$Rd32),
14624 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14625 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
14626 tc_8c8041e6, TypeM>, Enc_5ab2be {
14627 let Inst{7-5} = 0b110;
14628 let Inst{13-13} = 0b0;
14629 let Inst{31-21} = 0b11101100100;
14630 let hasNewValue = 1;
14631 let opNewValue = 0;
14632 let prefersSlot3 = 1;
14633 let Defs = [USR_OVF];
14634 }
14635 def M2_mpy_sat_lh_s0 : HInst<
14636 (outs IntRegs:$Rd32),
14637 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14638 "$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
14639 tc_8c8041e6, TypeM>, Enc_5ab2be {
14640 let Inst{7-5} = 0b101;
14641 let Inst{13-13} = 0b0;
14642 let Inst{31-21} = 0b11101100000;
14643 let hasNewValue = 1;
14644 let opNewValue = 0;
14645 let prefersSlot3 = 1;
14646 let Defs = [USR_OVF];
14647 }
14648 def M2_mpy_sat_lh_s1 : HInst<
14649 (outs IntRegs:$Rd32),
14650 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14651 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
14652 tc_8c8041e6, TypeM>, Enc_5ab2be {
14653 let Inst{7-5} = 0b101;
14654 let Inst{13-13} = 0b0;
14655 let Inst{31-21} = 0b11101100100;
14656 let hasNewValue = 1;
14657 let opNewValue = 0;
14658 let prefersSlot3 = 1;
14659 let Defs = [USR_OVF];
14660 }
14661 def M2_mpy_sat_ll_s0 : HInst<
14662 (outs IntRegs:$Rd32),
14663 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14664 "$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
14665 tc_8c8041e6, TypeM>, Enc_5ab2be {
14666 let Inst{7-5} = 0b100;
14667 let Inst{13-13} = 0b0;
14668 let Inst{31-21} = 0b11101100000;
14669 let hasNewValue = 1;
14670 let opNewValue = 0;
14671 let prefersSlot3 = 1;
14672 let Defs = [USR_OVF];
14673 }
14674 def M2_mpy_sat_ll_s1 : HInst<
14675 (outs IntRegs:$Rd32),
14676 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14677 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
14678 tc_8c8041e6, TypeM>, Enc_5ab2be {
14679 let Inst{7-5} = 0b100;
14680 let Inst{13-13} = 0b0;
14681 let Inst{31-21} = 0b11101100100;
14682 let hasNewValue = 1;
14683 let opNewValue = 0;
14684 let prefersSlot3 = 1;
14685 let Defs = [USR_OVF];
14686 }
14687 def M2_mpy_sat_rnd_hh_s0 : HInst<
14688 (outs IntRegs:$Rd32),
14689 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14690 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
14691 tc_8c8041e6, TypeM>, Enc_5ab2be {
14692 let Inst{7-5} = 0b111;
14693 let Inst{13-13} = 0b0;
14694 let Inst{31-21} = 0b11101100001;
14695 let hasNewValue = 1;
14696 let opNewValue = 0;
14697 let prefersSlot3 = 1;
14698 let Defs = [USR_OVF];
14699 }
14700 def M2_mpy_sat_rnd_hh_s1 : HInst<
14701 (outs IntRegs:$Rd32),
14702 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14703 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
14704 tc_8c8041e6, TypeM>, Enc_5ab2be {
14705 let Inst{7-5} = 0b111;
14706 let Inst{13-13} = 0b0;
14707 let Inst{31-21} = 0b11101100101;
14708 let hasNewValue = 1;
14709 let opNewValue = 0;
14710 let prefersSlot3 = 1;
14711 let Defs = [USR_OVF];
14712 }
14713 def M2_mpy_sat_rnd_hl_s0 : HInst<
14714 (outs IntRegs:$Rd32),
14715 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14716 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
14717 tc_8c8041e6, TypeM>, Enc_5ab2be {
14718 let Inst{7-5} = 0b110;
14719 let Inst{13-13} = 0b0;
14720 let Inst{31-21} = 0b11101100001;
14721 let hasNewValue = 1;
14722 let opNewValue = 0;
14723 let prefersSlot3 = 1;
14724 let Defs = [USR_OVF];
14725 }
14726 def M2_mpy_sat_rnd_hl_s1 : HInst<
14727 (outs IntRegs:$Rd32),
14728 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14729 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
14730 tc_8c8041e6, TypeM>, Enc_5ab2be {
14731 let Inst{7-5} = 0b110;
14732 let Inst{13-13} = 0b0;
14733 let Inst{31-21} = 0b11101100101;
14734 let hasNewValue = 1;
14735 let opNewValue = 0;
14736 let prefersSlot3 = 1;
14737 let Defs = [USR_OVF];
14738 }
14739 def M2_mpy_sat_rnd_lh_s0 : HInst<
14740 (outs IntRegs:$Rd32),
14741 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14742 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
14743 tc_8c8041e6, TypeM>, Enc_5ab2be {
14744 let Inst{7-5} = 0b101;
14745 let Inst{13-13} = 0b0;
14746 let Inst{31-21} = 0b11101100001;
14747 let hasNewValue = 1;
14748 let opNewValue = 0;
14749 let prefersSlot3 = 1;
14750 let Defs = [USR_OVF];
14751 }
14752 def M2_mpy_sat_rnd_lh_s1 : HInst<
14753 (outs IntRegs:$Rd32),
14754 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14755 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
14756 tc_8c8041e6, TypeM>, Enc_5ab2be {
14757 let Inst{7-5} = 0b101;
14758 let Inst{13-13} = 0b0;
14759 let Inst{31-21} = 0b11101100101;
14760 let hasNewValue = 1;
14761 let opNewValue = 0;
14762 let prefersSlot3 = 1;
14763 let Defs = [USR_OVF];
14764 }
14765 def M2_mpy_sat_rnd_ll_s0 : HInst<
14766 (outs IntRegs:$Rd32),
14767 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14768 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
14769 tc_8c8041e6, TypeM>, Enc_5ab2be {
14770 let Inst{7-5} = 0b100;
14771 let Inst{13-13} = 0b0;
14772 let Inst{31-21} = 0b11101100001;
14773 let hasNewValue = 1;
14774 let opNewValue = 0;
14775 let prefersSlot3 = 1;
14776 let Defs = [USR_OVF];
14777 }
14778 def M2_mpy_sat_rnd_ll_s1 : HInst<
14779 (outs IntRegs:$Rd32),
14780 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14781 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
14782 tc_8c8041e6, TypeM>, Enc_5ab2be {
14783 let Inst{7-5} = 0b100;
14784 let Inst{13-13} = 0b0;
14785 let Inst{31-21} = 0b11101100101;
14786 let hasNewValue = 1;
14787 let opNewValue = 0;
14788 let prefersSlot3 = 1;
14789 let Defs = [USR_OVF];
14790 }
14791 def M2_mpy_up : HInst<
14792 (outs IntRegs:$Rd32),
14793 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14794 "$Rd32 = mpy($Rs32,$Rt32)",
14795 tc_8c8041e6, TypeM>, Enc_5ab2be {
14796 let Inst{7-5} = 0b001;
14797 let Inst{13-13} = 0b0;
14798 let Inst{31-21} = 0b11101101000;
14799 let hasNewValue = 1;
14800 let opNewValue = 0;
14801 let prefersSlot3 = 1;
14802 }
14803 def M2_mpy_up_s1 : HInst<
14804 (outs IntRegs:$Rd32),
14805 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14806 "$Rd32 = mpy($Rs32,$Rt32):<<1",
14807 tc_8c8041e6, TypeM>, Enc_5ab2be {
14808 let Inst{7-5} = 0b010;
14809 let Inst{13-13} = 0b0;
14810 let Inst{31-21} = 0b11101101101;
14811 let hasNewValue = 1;
14812 let opNewValue = 0;
14813 let prefersSlot3 = 1;
14814 }
14815 def M2_mpy_up_s1_sat : HInst<
14816 (outs IntRegs:$Rd32),
14817 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14818 "$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
14819 tc_8c8041e6, TypeM>, Enc_5ab2be {
14820 let Inst{7-5} = 0b000;
14821 let Inst{13-13} = 0b0;
14822 let Inst{31-21} = 0b11101101111;
14823 let hasNewValue = 1;
14824 let opNewValue = 0;
14825 let prefersSlot3 = 1;
14826 let Defs = [USR_OVF];
14827 }
14828 def M2_mpyd_acc_hh_s0 : HInst<
14829 (outs DoubleRegs:$Rxx32),
14830 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14831 "$Rxx32 += mpy($Rs32.h,$Rt32.h)",
14832 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14833 let Inst{7-5} = 0b011;
14834 let Inst{13-13} = 0b0;
14835 let Inst{31-21} = 0b11100110000;
14836 let prefersSlot3 = 1;
14837 let Constraints = "$Rxx32 = $Rxx32in";
14838 }
14839 def M2_mpyd_acc_hh_s1 : HInst<
14840 (outs DoubleRegs:$Rxx32),
14841 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14842 "$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
14843 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14844 let Inst{7-5} = 0b011;
14845 let Inst{13-13} = 0b0;
14846 let Inst{31-21} = 0b11100110100;
14847 let prefersSlot3 = 1;
14848 let Constraints = "$Rxx32 = $Rxx32in";
14849 }
14850 def M2_mpyd_acc_hl_s0 : HInst<
14851 (outs DoubleRegs:$Rxx32),
14852 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14853 "$Rxx32 += mpy($Rs32.h,$Rt32.l)",
14854 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14855 let Inst{7-5} = 0b010;
14856 let Inst{13-13} = 0b0;
14857 let Inst{31-21} = 0b11100110000;
14858 let prefersSlot3 = 1;
14859 let Constraints = "$Rxx32 = $Rxx32in";
14860 }
14861 def M2_mpyd_acc_hl_s1 : HInst<
14862 (outs DoubleRegs:$Rxx32),
14863 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14864 "$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
14865 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14866 let Inst{7-5} = 0b010;
14867 let Inst{13-13} = 0b0;
14868 let Inst{31-21} = 0b11100110100;
14869 let prefersSlot3 = 1;
14870 let Constraints = "$Rxx32 = $Rxx32in";
14871 }
14872 def M2_mpyd_acc_lh_s0 : HInst<
14873 (outs DoubleRegs:$Rxx32),
14874 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14875 "$Rxx32 += mpy($Rs32.l,$Rt32.h)",
14876 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14877 let Inst{7-5} = 0b001;
14878 let Inst{13-13} = 0b0;
14879 let Inst{31-21} = 0b11100110000;
14880 let prefersSlot3 = 1;
14881 let Constraints = "$Rxx32 = $Rxx32in";
14882 }
14883 def M2_mpyd_acc_lh_s1 : HInst<
14884 (outs DoubleRegs:$Rxx32),
14885 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14886 "$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
14887 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14888 let Inst{7-5} = 0b001;
14889 let Inst{13-13} = 0b0;
14890 let Inst{31-21} = 0b11100110100;
14891 let prefersSlot3 = 1;
14892 let Constraints = "$Rxx32 = $Rxx32in";
14893 }
14894 def M2_mpyd_acc_ll_s0 : HInst<
14895 (outs DoubleRegs:$Rxx32),
14896 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14897 "$Rxx32 += mpy($Rs32.l,$Rt32.l)",
14898 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14899 let Inst{7-5} = 0b000;
14900 let Inst{13-13} = 0b0;
14901 let Inst{31-21} = 0b11100110000;
14902 let prefersSlot3 = 1;
14903 let Constraints = "$Rxx32 = $Rxx32in";
14904 }
14905 def M2_mpyd_acc_ll_s1 : HInst<
14906 (outs DoubleRegs:$Rxx32),
14907 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14908 "$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
14909 tc_8cb685d9, TypeM>, Enc_61f0b0 {
14910 let Inst{7-5} = 0b000;
14911 let Inst{13-13} = 0b0;
14912 let Inst{31-21} = 0b11100110100;
14913 let prefersSlot3 = 1;
14914 let Constraints = "$Rxx32 = $Rxx32in";
14915 }
14916 def M2_mpyd_hh_s0 : HInst<
14917 (outs DoubleRegs:$Rdd32),
14918 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14919 "$Rdd32 = mpy($Rs32.h,$Rt32.h)",
14920 tc_8c8041e6, TypeM>, Enc_be32a5 {
14921 let Inst{7-5} = 0b011;
14922 let Inst{13-13} = 0b0;
14923 let Inst{31-21} = 0b11100100000;
14924 let prefersSlot3 = 1;
14925 }
14926 def M2_mpyd_hh_s1 : HInst<
14927 (outs DoubleRegs:$Rdd32),
14928 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14929 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
14930 tc_8c8041e6, TypeM>, Enc_be32a5 {
14931 let Inst{7-5} = 0b011;
14932 let Inst{13-13} = 0b0;
14933 let Inst{31-21} = 0b11100100100;
14934 let prefersSlot3 = 1;
14935 }
14936 def M2_mpyd_hl_s0 : HInst<
14937 (outs DoubleRegs:$Rdd32),
14938 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14939 "$Rdd32 = mpy($Rs32.h,$Rt32.l)",
14940 tc_8c8041e6, TypeM>, Enc_be32a5 {
14941 let Inst{7-5} = 0b010;
14942 let Inst{13-13} = 0b0;
14943 let Inst{31-21} = 0b11100100000;
14944 let prefersSlot3 = 1;
14945 }
14946 def M2_mpyd_hl_s1 : HInst<
14947 (outs DoubleRegs:$Rdd32),
14948 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14949 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
14950 tc_8c8041e6, TypeM>, Enc_be32a5 {
14951 let Inst{7-5} = 0b010;
14952 let Inst{13-13} = 0b0;
14953 let Inst{31-21} = 0b11100100100;
14954 let prefersSlot3 = 1;
14955 }
14956 def M2_mpyd_lh_s0 : HInst<
14957 (outs DoubleRegs:$Rdd32),
14958 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14959 "$Rdd32 = mpy($Rs32.l,$Rt32.h)",
14960 tc_8c8041e6, TypeM>, Enc_be32a5 {
14961 let Inst{7-5} = 0b001;
14962 let Inst{13-13} = 0b0;
14963 let Inst{31-21} = 0b11100100000;
14964 let prefersSlot3 = 1;
14965 }
14966 def M2_mpyd_lh_s1 : HInst<
14967 (outs DoubleRegs:$Rdd32),
14968 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14969 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
14970 tc_8c8041e6, TypeM>, Enc_be32a5 {
14971 let Inst{7-5} = 0b001;
14972 let Inst{13-13} = 0b0;
14973 let Inst{31-21} = 0b11100100100;
14974 let prefersSlot3 = 1;
14975 }
14976 def M2_mpyd_ll_s0 : HInst<
14977 (outs DoubleRegs:$Rdd32),
14978 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14979 "$Rdd32 = mpy($Rs32.l,$Rt32.l)",
14980 tc_8c8041e6, TypeM>, Enc_be32a5 {
14981 let Inst{7-5} = 0b000;
14982 let Inst{13-13} = 0b0;
14983 let Inst{31-21} = 0b11100100000;
14984 let prefersSlot3 = 1;
14985 }
14986 def M2_mpyd_ll_s1 : HInst<
14987 (outs DoubleRegs:$Rdd32),
14988 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14989 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
14990 tc_8c8041e6, TypeM>, Enc_be32a5 {
14991 let Inst{7-5} = 0b000;
14992 let Inst{13-13} = 0b0;
14993 let Inst{31-21} = 0b11100100100;
14994 let prefersSlot3 = 1;
14995 }
14996 def M2_mpyd_nac_hh_s0 : HInst<
14997 (outs DoubleRegs:$Rxx32),
14998 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14999 "$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15000 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15001 let Inst{7-5} = 0b011;
15002 let Inst{13-13} = 0b0;
15003 let Inst{31-21} = 0b11100110001;
15004 let prefersSlot3 = 1;
15005 let Constraints = "$Rxx32 = $Rxx32in";
15006 }
15007 def M2_mpyd_nac_hh_s1 : HInst<
15008 (outs DoubleRegs:$Rxx32),
15009 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15010 "$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15011 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15012 let Inst{7-5} = 0b011;
15013 let Inst{13-13} = 0b0;
15014 let Inst{31-21} = 0b11100110101;
15015 let prefersSlot3 = 1;
15016 let Constraints = "$Rxx32 = $Rxx32in";
15017 }
15018 def M2_mpyd_nac_hl_s0 : HInst<
15019 (outs DoubleRegs:$Rxx32),
15020 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15021 "$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15022 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15023 let Inst{7-5} = 0b010;
15024 let Inst{13-13} = 0b0;
15025 let Inst{31-21} = 0b11100110001;
15026 let prefersSlot3 = 1;
15027 let Constraints = "$Rxx32 = $Rxx32in";
15028 }
15029 def M2_mpyd_nac_hl_s1 : HInst<
15030 (outs DoubleRegs:$Rxx32),
15031 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15032 "$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15033 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15034 let Inst{7-5} = 0b010;
15035 let Inst{13-13} = 0b0;
15036 let Inst{31-21} = 0b11100110101;
15037 let prefersSlot3 = 1;
15038 let Constraints = "$Rxx32 = $Rxx32in";
15039 }
15040 def M2_mpyd_nac_lh_s0 : HInst<
15041 (outs DoubleRegs:$Rxx32),
15042 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15043 "$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15044 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15045 let Inst{7-5} = 0b001;
15046 let Inst{13-13} = 0b0;
15047 let Inst{31-21} = 0b11100110001;
15048 let prefersSlot3 = 1;
15049 let Constraints = "$Rxx32 = $Rxx32in";
15050 }
15051 def M2_mpyd_nac_lh_s1 : HInst<
15052 (outs DoubleRegs:$Rxx32),
15053 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15054 "$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15055 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15056 let Inst{7-5} = 0b001;
15057 let Inst{13-13} = 0b0;
15058 let Inst{31-21} = 0b11100110101;
15059 let prefersSlot3 = 1;
15060 let Constraints = "$Rxx32 = $Rxx32in";
15061 }
15062 def M2_mpyd_nac_ll_s0 : HInst<
15063 (outs DoubleRegs:$Rxx32),
15064 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15065 "$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15066 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15067 let Inst{7-5} = 0b000;
15068 let Inst{13-13} = 0b0;
15069 let Inst{31-21} = 0b11100110001;
15070 let prefersSlot3 = 1;
15071 let Constraints = "$Rxx32 = $Rxx32in";
15072 }
15073 def M2_mpyd_nac_ll_s1 : HInst<
15074 (outs DoubleRegs:$Rxx32),
15075 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15076 "$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15077 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15078 let Inst{7-5} = 0b000;
15079 let Inst{13-13} = 0b0;
15080 let Inst{31-21} = 0b11100110101;
15081 let prefersSlot3 = 1;
15082 let Constraints = "$Rxx32 = $Rxx32in";
15083 }
15084 def M2_mpyd_rnd_hh_s0 : HInst<
15085 (outs DoubleRegs:$Rdd32),
15086 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15087 "$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15088 tc_8c8041e6, TypeM>, Enc_be32a5 {
15089 let Inst{7-5} = 0b011;
15090 let Inst{13-13} = 0b0;
15091 let Inst{31-21} = 0b11100100001;
15092 let prefersSlot3 = 1;
15093 }
15094 def M2_mpyd_rnd_hh_s1 : HInst<
15095 (outs DoubleRegs:$Rdd32),
15096 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15097 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15098 tc_8c8041e6, TypeM>, Enc_be32a5 {
15099 let Inst{7-5} = 0b011;
15100 let Inst{13-13} = 0b0;
15101 let Inst{31-21} = 0b11100100101;
15102 let prefersSlot3 = 1;
15103 }
15104 def M2_mpyd_rnd_hl_s0 : HInst<
15105 (outs DoubleRegs:$Rdd32),
15106 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15107 "$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15108 tc_8c8041e6, TypeM>, Enc_be32a5 {
15109 let Inst{7-5} = 0b010;
15110 let Inst{13-13} = 0b0;
15111 let Inst{31-21} = 0b11100100001;
15112 let prefersSlot3 = 1;
15113 }
15114 def M2_mpyd_rnd_hl_s1 : HInst<
15115 (outs DoubleRegs:$Rdd32),
15116 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15117 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15118 tc_8c8041e6, TypeM>, Enc_be32a5 {
15119 let Inst{7-5} = 0b010;
15120 let Inst{13-13} = 0b0;
15121 let Inst{31-21} = 0b11100100101;
15122 let prefersSlot3 = 1;
15123 }
15124 def M2_mpyd_rnd_lh_s0 : HInst<
15125 (outs DoubleRegs:$Rdd32),
15126 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15127 "$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15128 tc_8c8041e6, TypeM>, Enc_be32a5 {
15129 let Inst{7-5} = 0b001;
15130 let Inst{13-13} = 0b0;
15131 let Inst{31-21} = 0b11100100001;
15132 let prefersSlot3 = 1;
15133 }
15134 def M2_mpyd_rnd_lh_s1 : HInst<
15135 (outs DoubleRegs:$Rdd32),
15136 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15137 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15138 tc_8c8041e6, TypeM>, Enc_be32a5 {
15139 let Inst{7-5} = 0b001;
15140 let Inst{13-13} = 0b0;
15141 let Inst{31-21} = 0b11100100101;
15142 let prefersSlot3 = 1;
15143 }
15144 def M2_mpyd_rnd_ll_s0 : HInst<
15145 (outs DoubleRegs:$Rdd32),
15146 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15147 "$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15148 tc_8c8041e6, TypeM>, Enc_be32a5 {
15149 let Inst{7-5} = 0b000;
15150 let Inst{13-13} = 0b0;
15151 let Inst{31-21} = 0b11100100001;
15152 let prefersSlot3 = 1;
15153 }
15154 def M2_mpyd_rnd_ll_s1 : HInst<
15155 (outs DoubleRegs:$Rdd32),
15156 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15157 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15158 tc_8c8041e6, TypeM>, Enc_be32a5 {
15159 let Inst{7-5} = 0b000;
15160 let Inst{13-13} = 0b0;
15161 let Inst{31-21} = 0b11100100101;
15162 let prefersSlot3 = 1;
15163 }
15164 def M2_mpyi : HInst<
15165 (outs IntRegs:$Rd32),
15166 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15167 "$Rd32 = mpyi($Rs32,$Rt32)",
15168 tc_8c8041e6, TypeM>, Enc_5ab2be, ImmRegRel {
15169 let Inst{7-5} = 0b000;
15170 let Inst{13-13} = 0b0;
15171 let Inst{31-21} = 0b11101101000;
15172 let hasNewValue = 1;
15173 let opNewValue = 0;
15174 let prefersSlot3 = 1;
15175 let CextOpcode = "M2_mpyi";
15176 let InputType = "reg";
15177 }
15178 def M2_mpysin : HInst<
15179 (outs IntRegs:$Rd32),
15180 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
15181 "$Rd32 = -mpyi($Rs32,#$Ii)",
15182 tc_ae2c2dc2, TypeM>, Enc_b8c967 {
15183 let Inst{13-13} = 0b0;
15184 let Inst{31-21} = 0b11100000100;
15185 let hasNewValue = 1;
15186 let opNewValue = 0;
15187 let prefersSlot3 = 1;
15188 }
15189 def M2_mpysip : HInst<
15190 (outs IntRegs:$Rd32),
15191 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
15192 "$Rd32 = +mpyi($Rs32,#$Ii)",
15193 tc_ae2c2dc2, TypeM>, Enc_b8c967 {
15194 let Inst{13-13} = 0b0;
15195 let Inst{31-21} = 0b11100000000;
15196 let hasNewValue = 1;
15197 let opNewValue = 0;
15198 let prefersSlot3 = 1;
15199 let isExtendable = 1;
15200 let opExtendable = 2;
15201 let isExtentSigned = 0;
15202 let opExtentBits = 8;
15203 let opExtentAlign = 0;
15204 }
15205 def M2_mpysmi : HInst<
15206 (outs IntRegs:$Rd32),
15207 (ins IntRegs:$Rs32, m32_0Imm:$Ii),
15208 "$Rd32 = mpyi($Rs32,#$Ii)",
15209 tc_ae2c2dc2, TypeM>, ImmRegRel {
15210 let hasNewValue = 1;
15211 let opNewValue = 0;
15212 let CextOpcode = "M2_mpyi";
15213 let InputType = "imm";
15214 let isPseudo = 1;
15215 let isExtendable = 1;
15216 let opExtendable = 2;
15217 let isExtentSigned = 1;
15218 let opExtentBits = 9;
15219 let opExtentAlign = 0;
15220 }
15221 def M2_mpysu_up : HInst<
15222 (outs IntRegs:$Rd32),
15223 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15224 "$Rd32 = mpysu($Rs32,$Rt32)",
15225 tc_8c8041e6, TypeM>, Enc_5ab2be {
15226 let Inst{7-5} = 0b001;
15227 let Inst{13-13} = 0b0;
15228 let Inst{31-21} = 0b11101101011;
15229 let hasNewValue = 1;
15230 let opNewValue = 0;
15231 let prefersSlot3 = 1;
15232 }
15233 def M2_mpyu_acc_hh_s0 : HInst<
15234 (outs IntRegs:$Rx32),
15235 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15236 "$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15237 tc_8cb685d9, TypeM>, Enc_2ae154 {
15238 let Inst{7-5} = 0b011;
15239 let Inst{13-13} = 0b0;
15240 let Inst{31-21} = 0b11101110010;
15241 let hasNewValue = 1;
15242 let opNewValue = 0;
15243 let prefersSlot3 = 1;
15244 let Constraints = "$Rx32 = $Rx32in";
15245 }
15246 def M2_mpyu_acc_hh_s1 : HInst<
15247 (outs IntRegs:$Rx32),
15248 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15249 "$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15250 tc_8cb685d9, TypeM>, Enc_2ae154 {
15251 let Inst{7-5} = 0b011;
15252 let Inst{13-13} = 0b0;
15253 let Inst{31-21} = 0b11101110110;
15254 let hasNewValue = 1;
15255 let opNewValue = 0;
15256 let prefersSlot3 = 1;
15257 let Constraints = "$Rx32 = $Rx32in";
15258 }
15259 def M2_mpyu_acc_hl_s0 : HInst<
15260 (outs IntRegs:$Rx32),
15261 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15262 "$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15263 tc_8cb685d9, TypeM>, Enc_2ae154 {
15264 let Inst{7-5} = 0b010;
15265 let Inst{13-13} = 0b0;
15266 let Inst{31-21} = 0b11101110010;
15267 let hasNewValue = 1;
15268 let opNewValue = 0;
15269 let prefersSlot3 = 1;
15270 let Constraints = "$Rx32 = $Rx32in";
15271 }
15272 def M2_mpyu_acc_hl_s1 : HInst<
15273 (outs IntRegs:$Rx32),
15274 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15275 "$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15276 tc_8cb685d9, TypeM>, Enc_2ae154 {
15277 let Inst{7-5} = 0b010;
15278 let Inst{13-13} = 0b0;
15279 let Inst{31-21} = 0b11101110110;
15280 let hasNewValue = 1;
15281 let opNewValue = 0;
15282 let prefersSlot3 = 1;
15283 let Constraints = "$Rx32 = $Rx32in";
15284 }
15285 def M2_mpyu_acc_lh_s0 : HInst<
15286 (outs IntRegs:$Rx32),
15287 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15288 "$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15289 tc_8cb685d9, TypeM>, Enc_2ae154 {
15290 let Inst{7-5} = 0b001;
15291 let Inst{13-13} = 0b0;
15292 let Inst{31-21} = 0b11101110010;
15293 let hasNewValue = 1;
15294 let opNewValue = 0;
15295 let prefersSlot3 = 1;
15296 let Constraints = "$Rx32 = $Rx32in";
15297 }
15298 def M2_mpyu_acc_lh_s1 : HInst<
15299 (outs IntRegs:$Rx32),
15300 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15301 "$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15302 tc_8cb685d9, TypeM>, Enc_2ae154 {
15303 let Inst{7-5} = 0b001;
15304 let Inst{13-13} = 0b0;
15305 let Inst{31-21} = 0b11101110110;
15306 let hasNewValue = 1;
15307 let opNewValue = 0;
15308 let prefersSlot3 = 1;
15309 let Constraints = "$Rx32 = $Rx32in";
15310 }
15311 def M2_mpyu_acc_ll_s0 : HInst<
15312 (outs IntRegs:$Rx32),
15313 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15314 "$Rx32 += mpyu($Rs32.l,$Rt32.l)",
15315 tc_8cb685d9, TypeM>, Enc_2ae154 {
15316 let Inst{7-5} = 0b000;
15317 let Inst{13-13} = 0b0;
15318 let Inst{31-21} = 0b11101110010;
15319 let hasNewValue = 1;
15320 let opNewValue = 0;
15321 let prefersSlot3 = 1;
15322 let Constraints = "$Rx32 = $Rx32in";
15323 }
15324 def M2_mpyu_acc_ll_s1 : HInst<
15325 (outs IntRegs:$Rx32),
15326 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15327 "$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15328 tc_8cb685d9, TypeM>, Enc_2ae154 {
15329 let Inst{7-5} = 0b000;
15330 let Inst{13-13} = 0b0;
15331 let Inst{31-21} = 0b11101110110;
15332 let hasNewValue = 1;
15333 let opNewValue = 0;
15334 let prefersSlot3 = 1;
15335 let Constraints = "$Rx32 = $Rx32in";
15336 }
15337 def M2_mpyu_hh_s0 : HInst<
15338 (outs IntRegs:$Rd32),
15339 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15340 "$Rd32 = mpyu($Rs32.h,$Rt32.h)",
15341 tc_8c8041e6, TypeM>, Enc_5ab2be {
15342 let Inst{7-5} = 0b011;
15343 let Inst{13-13} = 0b0;
15344 let Inst{31-21} = 0b11101100010;
15345 let hasNewValue = 1;
15346 let opNewValue = 0;
15347 let prefersSlot3 = 1;
15348 }
15349 def M2_mpyu_hh_s1 : HInst<
15350 (outs IntRegs:$Rd32),
15351 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15352 "$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
15353 tc_8c8041e6, TypeM>, Enc_5ab2be {
15354 let Inst{7-5} = 0b011;
15355 let Inst{13-13} = 0b0;
15356 let Inst{31-21} = 0b11101100110;
15357 let hasNewValue = 1;
15358 let opNewValue = 0;
15359 let prefersSlot3 = 1;
15360 }
15361 def M2_mpyu_hl_s0 : HInst<
15362 (outs IntRegs:$Rd32),
15363 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15364 "$Rd32 = mpyu($Rs32.h,$Rt32.l)",
15365 tc_8c8041e6, TypeM>, Enc_5ab2be {
15366 let Inst{7-5} = 0b010;
15367 let Inst{13-13} = 0b0;
15368 let Inst{31-21} = 0b11101100010;
15369 let hasNewValue = 1;
15370 let opNewValue = 0;
15371 let prefersSlot3 = 1;
15372 }
15373 def M2_mpyu_hl_s1 : HInst<
15374 (outs IntRegs:$Rd32),
15375 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15376 "$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
15377 tc_8c8041e6, TypeM>, Enc_5ab2be {
15378 let Inst{7-5} = 0b010;
15379 let Inst{13-13} = 0b0;
15380 let Inst{31-21} = 0b11101100110;
15381 let hasNewValue = 1;
15382 let opNewValue = 0;
15383 let prefersSlot3 = 1;
15384 }
15385 def M2_mpyu_lh_s0 : HInst<
15386 (outs IntRegs:$Rd32),
15387 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15388 "$Rd32 = mpyu($Rs32.l,$Rt32.h)",
15389 tc_8c8041e6, TypeM>, Enc_5ab2be {
15390 let Inst{7-5} = 0b001;
15391 let Inst{13-13} = 0b0;
15392 let Inst{31-21} = 0b11101100010;
15393 let hasNewValue = 1;
15394 let opNewValue = 0;
15395 let prefersSlot3 = 1;
15396 }
15397 def M2_mpyu_lh_s1 : HInst<
15398 (outs IntRegs:$Rd32),
15399 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15400 "$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
15401 tc_8c8041e6, TypeM>, Enc_5ab2be {
15402 let Inst{7-5} = 0b001;
15403 let Inst{13-13} = 0b0;
15404 let Inst{31-21} = 0b11101100110;
15405 let hasNewValue = 1;
15406 let opNewValue = 0;
15407 let prefersSlot3 = 1;
15408 }
15409 def M2_mpyu_ll_s0 : HInst<
15410 (outs IntRegs:$Rd32),
15411 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15412 "$Rd32 = mpyu($Rs32.l,$Rt32.l)",
15413 tc_8c8041e6, TypeM>, Enc_5ab2be {
15414 let Inst{7-5} = 0b000;
15415 let Inst{13-13} = 0b0;
15416 let Inst{31-21} = 0b11101100010;
15417 let hasNewValue = 1;
15418 let opNewValue = 0;
15419 let prefersSlot3 = 1;
15420 }
15421 def M2_mpyu_ll_s1 : HInst<
15422 (outs IntRegs:$Rd32),
15423 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15424 "$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
15425 tc_8c8041e6, TypeM>, Enc_5ab2be {
15426 let Inst{7-5} = 0b000;
15427 let Inst{13-13} = 0b0;
15428 let Inst{31-21} = 0b11101100110;
15429 let hasNewValue = 1;
15430 let opNewValue = 0;
15431 let prefersSlot3 = 1;
15432 }
15433 def M2_mpyu_nac_hh_s0 : HInst<
15434 (outs IntRegs:$Rx32),
15435 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15436 "$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
15437 tc_8cb685d9, TypeM>, Enc_2ae154 {
15438 let Inst{7-5} = 0b011;
15439 let Inst{13-13} = 0b0;
15440 let Inst{31-21} = 0b11101110011;
15441 let hasNewValue = 1;
15442 let opNewValue = 0;
15443 let prefersSlot3 = 1;
15444 let Constraints = "$Rx32 = $Rx32in";
15445 }
15446 def M2_mpyu_nac_hh_s1 : HInst<
15447 (outs IntRegs:$Rx32),
15448 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15449 "$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
15450 tc_8cb685d9, TypeM>, Enc_2ae154 {
15451 let Inst{7-5} = 0b011;
15452 let Inst{13-13} = 0b0;
15453 let Inst{31-21} = 0b11101110111;
15454 let hasNewValue = 1;
15455 let opNewValue = 0;
15456 let prefersSlot3 = 1;
15457 let Constraints = "$Rx32 = $Rx32in";
15458 }
15459 def M2_mpyu_nac_hl_s0 : HInst<
15460 (outs IntRegs:$Rx32),
15461 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15462 "$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
15463 tc_8cb685d9, TypeM>, Enc_2ae154 {
15464 let Inst{7-5} = 0b010;
15465 let Inst{13-13} = 0b0;
15466 let Inst{31-21} = 0b11101110011;
15467 let hasNewValue = 1;
15468 let opNewValue = 0;
15469 let prefersSlot3 = 1;
15470 let Constraints = "$Rx32 = $Rx32in";
15471 }
15472 def M2_mpyu_nac_hl_s1 : HInst<
15473 (outs IntRegs:$Rx32),
15474 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15475 "$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
15476 tc_8cb685d9, TypeM>, Enc_2ae154 {
15477 let Inst{7-5} = 0b010;
15478 let Inst{13-13} = 0b0;
15479 let Inst{31-21} = 0b11101110111;
15480 let hasNewValue = 1;
15481 let opNewValue = 0;
15482 let prefersSlot3 = 1;
15483 let Constraints = "$Rx32 = $Rx32in";
15484 }
15485 def M2_mpyu_nac_lh_s0 : HInst<
15486 (outs IntRegs:$Rx32),
15487 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15488 "$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
15489 tc_8cb685d9, TypeM>, Enc_2ae154 {
15490 let Inst{7-5} = 0b001;
15491 let Inst{13-13} = 0b0;
15492 let Inst{31-21} = 0b11101110011;
15493 let hasNewValue = 1;
15494 let opNewValue = 0;
15495 let prefersSlot3 = 1;
15496 let Constraints = "$Rx32 = $Rx32in";
15497 }
15498 def M2_mpyu_nac_lh_s1 : HInst<
15499 (outs IntRegs:$Rx32),
15500 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15501 "$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
15502 tc_8cb685d9, TypeM>, Enc_2ae154 {
15503 let Inst{7-5} = 0b001;
15504 let Inst{13-13} = 0b0;
15505 let Inst{31-21} = 0b11101110111;
15506 let hasNewValue = 1;
15507 let opNewValue = 0;
15508 let prefersSlot3 = 1;
15509 let Constraints = "$Rx32 = $Rx32in";
15510 }
15511 def M2_mpyu_nac_ll_s0 : HInst<
15512 (outs IntRegs:$Rx32),
15513 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15514 "$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
15515 tc_8cb685d9, TypeM>, Enc_2ae154 {
15516 let Inst{7-5} = 0b000;
15517 let Inst{13-13} = 0b0;
15518 let Inst{31-21} = 0b11101110011;
15519 let hasNewValue = 1;
15520 let opNewValue = 0;
15521 let prefersSlot3 = 1;
15522 let Constraints = "$Rx32 = $Rx32in";
15523 }
15524 def M2_mpyu_nac_ll_s1 : HInst<
15525 (outs IntRegs:$Rx32),
15526 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15527 "$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
15528 tc_8cb685d9, TypeM>, Enc_2ae154 {
15529 let Inst{7-5} = 0b000;
15530 let Inst{13-13} = 0b0;
15531 let Inst{31-21} = 0b11101110111;
15532 let hasNewValue = 1;
15533 let opNewValue = 0;
15534 let prefersSlot3 = 1;
15535 let Constraints = "$Rx32 = $Rx32in";
15536 }
15537 def M2_mpyu_up : HInst<
15538 (outs IntRegs:$Rd32),
15539 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15540 "$Rd32 = mpyu($Rs32,$Rt32)",
15541 tc_8c8041e6, TypeM>, Enc_5ab2be {
15542 let Inst{7-5} = 0b001;
15543 let Inst{13-13} = 0b0;
15544 let Inst{31-21} = 0b11101101010;
15545 let hasNewValue = 1;
15546 let opNewValue = 0;
15547 let prefersSlot3 = 1;
15548 }
15549 def M2_mpyud_acc_hh_s0 : HInst<
15550 (outs DoubleRegs:$Rxx32),
15551 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15552 "$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
15553 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15554 let Inst{7-5} = 0b011;
15555 let Inst{13-13} = 0b0;
15556 let Inst{31-21} = 0b11100110010;
15557 let prefersSlot3 = 1;
15558 let Constraints = "$Rxx32 = $Rxx32in";
15559 }
15560 def M2_mpyud_acc_hh_s1 : HInst<
15561 (outs DoubleRegs:$Rxx32),
15562 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15563 "$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15564 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15565 let Inst{7-5} = 0b011;
15566 let Inst{13-13} = 0b0;
15567 let Inst{31-21} = 0b11100110110;
15568 let prefersSlot3 = 1;
15569 let Constraints = "$Rxx32 = $Rxx32in";
15570 }
15571 def M2_mpyud_acc_hl_s0 : HInst<
15572 (outs DoubleRegs:$Rxx32),
15573 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15574 "$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
15575 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15576 let Inst{7-5} = 0b010;
15577 let Inst{13-13} = 0b0;
15578 let Inst{31-21} = 0b11100110010;
15579 let prefersSlot3 = 1;
15580 let Constraints = "$Rxx32 = $Rxx32in";
15581 }
15582 def M2_mpyud_acc_hl_s1 : HInst<
15583 (outs DoubleRegs:$Rxx32),
15584 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15585 "$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15586 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15587 let Inst{7-5} = 0b010;
15588 let Inst{13-13} = 0b0;
15589 let Inst{31-21} = 0b11100110110;
15590 let prefersSlot3 = 1;
15591 let Constraints = "$Rxx32 = $Rxx32in";
15592 }
15593 def M2_mpyud_acc_lh_s0 : HInst<
15594 (outs DoubleRegs:$Rxx32),
15595 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15596 "$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
15597 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15598 let Inst{7-5} = 0b001;
15599 let Inst{13-13} = 0b0;
15600 let Inst{31-21} = 0b11100110010;
15601 let prefersSlot3 = 1;
15602 let Constraints = "$Rxx32 = $Rxx32in";
15603 }
15604 def M2_mpyud_acc_lh_s1 : HInst<
15605 (outs DoubleRegs:$Rxx32),
15606 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15607 "$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15608 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15609 let Inst{7-5} = 0b001;
15610 let Inst{13-13} = 0b0;
15611 let Inst{31-21} = 0b11100110110;
15612 let prefersSlot3 = 1;
15613 let Constraints = "$Rxx32 = $Rxx32in";
15614 }
15615 def M2_mpyud_acc_ll_s0 : HInst<
15616 (outs DoubleRegs:$Rxx32),
15617 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15618 "$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
15619 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15620 let Inst{7-5} = 0b000;
15621 let Inst{13-13} = 0b0;
15622 let Inst{31-21} = 0b11100110010;
15623 let prefersSlot3 = 1;
15624 let Constraints = "$Rxx32 = $Rxx32in";
15625 }
15626 def M2_mpyud_acc_ll_s1 : HInst<
15627 (outs DoubleRegs:$Rxx32),
15628 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15629 "$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15630 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15631 let Inst{7-5} = 0b000;
15632 let Inst{13-13} = 0b0;
15633 let Inst{31-21} = 0b11100110110;
15634 let prefersSlot3 = 1;
15635 let Constraints = "$Rxx32 = $Rxx32in";
15636 }
15637 def M2_mpyud_hh_s0 : HInst<
15638 (outs DoubleRegs:$Rdd32),
15639 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15640 "$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
15641 tc_8c8041e6, TypeM>, Enc_be32a5 {
15642 let Inst{7-5} = 0b011;
15643 let Inst{13-13} = 0b0;
15644 let Inst{31-21} = 0b11100100010;
15645 let prefersSlot3 = 1;
15646 }
15647 def M2_mpyud_hh_s1 : HInst<
15648 (outs DoubleRegs:$Rdd32),
15649 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15650 "$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
15651 tc_8c8041e6, TypeM>, Enc_be32a5 {
15652 let Inst{7-5} = 0b011;
15653 let Inst{13-13} = 0b0;
15654 let Inst{31-21} = 0b11100100110;
15655 let prefersSlot3 = 1;
15656 }
15657 def M2_mpyud_hl_s0 : HInst<
15658 (outs DoubleRegs:$Rdd32),
15659 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15660 "$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
15661 tc_8c8041e6, TypeM>, Enc_be32a5 {
15662 let Inst{7-5} = 0b010;
15663 let Inst{13-13} = 0b0;
15664 let Inst{31-21} = 0b11100100010;
15665 let prefersSlot3 = 1;
15666 }
15667 def M2_mpyud_hl_s1 : HInst<
15668 (outs DoubleRegs:$Rdd32),
15669 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15670 "$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
15671 tc_8c8041e6, TypeM>, Enc_be32a5 {
15672 let Inst{7-5} = 0b010;
15673 let Inst{13-13} = 0b0;
15674 let Inst{31-21} = 0b11100100110;
15675 let prefersSlot3 = 1;
15676 }
15677 def M2_mpyud_lh_s0 : HInst<
15678 (outs DoubleRegs:$Rdd32),
15679 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15680 "$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
15681 tc_8c8041e6, TypeM>, Enc_be32a5 {
15682 let Inst{7-5} = 0b001;
15683 let Inst{13-13} = 0b0;
15684 let Inst{31-21} = 0b11100100010;
15685 let prefersSlot3 = 1;
15686 }
15687 def M2_mpyud_lh_s1 : HInst<
15688 (outs DoubleRegs:$Rdd32),
15689 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15690 "$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
15691 tc_8c8041e6, TypeM>, Enc_be32a5 {
15692 let Inst{7-5} = 0b001;
15693 let Inst{13-13} = 0b0;
15694 let Inst{31-21} = 0b11100100110;
15695 let prefersSlot3 = 1;
15696 }
15697 def M2_mpyud_ll_s0 : HInst<
15698 (outs DoubleRegs:$Rdd32),
15699 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15700 "$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
15701 tc_8c8041e6, TypeM>, Enc_be32a5 {
15702 let Inst{7-5} = 0b000;
15703 let Inst{13-13} = 0b0;
15704 let Inst{31-21} = 0b11100100010;
15705 let prefersSlot3 = 1;
15706 }
15707 def M2_mpyud_ll_s1 : HInst<
15708 (outs DoubleRegs:$Rdd32),
15709 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15710 "$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
15711 tc_8c8041e6, TypeM>, Enc_be32a5 {
15712 let Inst{7-5} = 0b000;
15713 let Inst{13-13} = 0b0;
15714 let Inst{31-21} = 0b11100100110;
15715 let prefersSlot3 = 1;
15716 }
15717 def M2_mpyud_nac_hh_s0 : HInst<
15718 (outs DoubleRegs:$Rxx32),
15719 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15720 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
15721 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15722 let Inst{7-5} = 0b011;
15723 let Inst{13-13} = 0b0;
15724 let Inst{31-21} = 0b11100110011;
15725 let prefersSlot3 = 1;
15726 let Constraints = "$Rxx32 = $Rxx32in";
15727 }
15728 def M2_mpyud_nac_hh_s1 : HInst<
15729 (outs DoubleRegs:$Rxx32),
15730 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15731 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
15732 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15733 let Inst{7-5} = 0b011;
15734 let Inst{13-13} = 0b0;
15735 let Inst{31-21} = 0b11100110111;
15736 let prefersSlot3 = 1;
15737 let Constraints = "$Rxx32 = $Rxx32in";
15738 }
15739 def M2_mpyud_nac_hl_s0 : HInst<
15740 (outs DoubleRegs:$Rxx32),
15741 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15742 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
15743 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15744 let Inst{7-5} = 0b010;
15745 let Inst{13-13} = 0b0;
15746 let Inst{31-21} = 0b11100110011;
15747 let prefersSlot3 = 1;
15748 let Constraints = "$Rxx32 = $Rxx32in";
15749 }
15750 def M2_mpyud_nac_hl_s1 : HInst<
15751 (outs DoubleRegs:$Rxx32),
15752 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15753 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
15754 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15755 let Inst{7-5} = 0b010;
15756 let Inst{13-13} = 0b0;
15757 let Inst{31-21} = 0b11100110111;
15758 let prefersSlot3 = 1;
15759 let Constraints = "$Rxx32 = $Rxx32in";
15760 }
15761 def M2_mpyud_nac_lh_s0 : HInst<
15762 (outs DoubleRegs:$Rxx32),
15763 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15764 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
15765 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15766 let Inst{7-5} = 0b001;
15767 let Inst{13-13} = 0b0;
15768 let Inst{31-21} = 0b11100110011;
15769 let prefersSlot3 = 1;
15770 let Constraints = "$Rxx32 = $Rxx32in";
15771 }
15772 def M2_mpyud_nac_lh_s1 : HInst<
15773 (outs DoubleRegs:$Rxx32),
15774 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15775 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
15776 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15777 let Inst{7-5} = 0b001;
15778 let Inst{13-13} = 0b0;
15779 let Inst{31-21} = 0b11100110111;
15780 let prefersSlot3 = 1;
15781 let Constraints = "$Rxx32 = $Rxx32in";
15782 }
15783 def M2_mpyud_nac_ll_s0 : HInst<
15784 (outs DoubleRegs:$Rxx32),
15785 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15786 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
15787 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15788 let Inst{7-5} = 0b000;
15789 let Inst{13-13} = 0b0;
15790 let Inst{31-21} = 0b11100110011;
15791 let prefersSlot3 = 1;
15792 let Constraints = "$Rxx32 = $Rxx32in";
15793 }
15794 def M2_mpyud_nac_ll_s1 : HInst<
15795 (outs DoubleRegs:$Rxx32),
15796 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15797 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
15798 tc_8cb685d9, TypeM>, Enc_61f0b0 {
15799 let Inst{7-5} = 0b000;
15800 let Inst{13-13} = 0b0;
15801 let Inst{31-21} = 0b11100110111;
15802 let prefersSlot3 = 1;
15803 let Constraints = "$Rxx32 = $Rxx32in";
15804 }
15805 def M2_mpyui : HInst<
15806 (outs IntRegs:$Rd32),
15807 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15808 "$Rd32 = mpyui($Rs32,$Rt32)",
15809 tc_8c8041e6, TypeM> {
15810 let hasNewValue = 1;
15811 let opNewValue = 0;
15812 let isPseudo = 1;
15813 let isCodeGenOnly = 1;
15814 }
15815 def M2_nacci : HInst<
15816 (outs IntRegs:$Rx32),
15817 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15818 "$Rx32 -= add($Rs32,$Rt32)",
15819 tc_c0cd91a8, TypeM>, Enc_2ae154 {
15820 let Inst{7-5} = 0b001;
15821 let Inst{13-13} = 0b0;
15822 let Inst{31-21} = 0b11101111100;
15823 let hasNewValue = 1;
15824 let opNewValue = 0;
15825 let prefersSlot3 = 1;
15826 let InputType = "reg";
15827 let Constraints = "$Rx32 = $Rx32in";
15828 }
15829 def M2_naccii : HInst<
15830 (outs IntRegs:$Rx32),
15831 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
15832 "$Rx32 -= add($Rs32,#$Ii)",
15833 tc_c0cd91a8, TypeM>, Enc_c90aca {
15834 let Inst{13-13} = 0b0;
15835 let Inst{31-21} = 0b11100010100;
15836 let hasNewValue = 1;
15837 let opNewValue = 0;
15838 let prefersSlot3 = 1;
15839 let InputType = "imm";
15840 let isExtendable = 1;
15841 let opExtendable = 3;
15842 let isExtentSigned = 1;
15843 let opExtentBits = 8;
15844 let opExtentAlign = 0;
15845 let Constraints = "$Rx32 = $Rx32in";
15846 }
15847 def M2_subacc : HInst<
15848 (outs IntRegs:$Rx32),
15849 (ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
15850 "$Rx32 += sub($Rt32,$Rs32)",
15851 tc_c0cd91a8, TypeM>, Enc_a568d4 {
15852 let Inst{7-5} = 0b011;
15853 let Inst{13-13} = 0b0;
15854 let Inst{31-21} = 0b11101111000;
15855 let hasNewValue = 1;
15856 let opNewValue = 0;
15857 let prefersSlot3 = 1;
15858 let InputType = "reg";
15859 let Constraints = "$Rx32 = $Rx32in";
15860 }
15861 def M2_vabsdiffh : HInst<
15862 (outs DoubleRegs:$Rdd32),
15863 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
15864 "$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
15865 tc_63cd9d2d, TypeM>, Enc_ea23e4 {
15866 let Inst{7-5} = 0b000;
15867 let Inst{13-13} = 0b0;
15868 let Inst{31-21} = 0b11101000011;
15869 let prefersSlot3 = 1;
15870 }
15871 def M2_vabsdiffw : HInst<
15872 (outs DoubleRegs:$Rdd32),
15873 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
15874 "$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
15875 tc_63cd9d2d, TypeM>, Enc_ea23e4 {
15876 let Inst{7-5} = 0b000;
15877 let Inst{13-13} = 0b0;
15878 let Inst{31-21} = 0b11101000001;
15879 let prefersSlot3 = 1;
15880 }
15881 def M2_vcmac_s0_sat_i : HInst<
15882 (outs DoubleRegs:$Rxx32),
15883 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15884 "$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
15885 tc_8cb685d9, TypeM>, Enc_88c16c {
15886 let Inst{7-5} = 0b100;
15887 let Inst{13-13} = 0b0;
15888 let Inst{31-21} = 0b11101010010;
15889 let prefersSlot3 = 1;
15890 let Defs = [USR_OVF];
15891 let Constraints = "$Rxx32 = $Rxx32in";
15892 }
15893 def M2_vcmac_s0_sat_r : HInst<
15894 (outs DoubleRegs:$Rxx32),
15895 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15896 "$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
15897 tc_8cb685d9, TypeM>, Enc_88c16c {
15898 let Inst{7-5} = 0b100;
15899 let Inst{13-13} = 0b0;
15900 let Inst{31-21} = 0b11101010001;
15901 let prefersSlot3 = 1;
15902 let Defs = [USR_OVF];
15903 let Constraints = "$Rxx32 = $Rxx32in";
15904 }
15905 def M2_vcmpy_s0_sat_i : HInst<
15906 (outs DoubleRegs:$Rdd32),
15907 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15908 "$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
15909 tc_8c8041e6, TypeM>, Enc_a56825 {
15910 let Inst{7-5} = 0b110;
15911 let Inst{13-13} = 0b0;
15912 let Inst{31-21} = 0b11101000010;
15913 let prefersSlot3 = 1;
15914 let Defs = [USR_OVF];
15915 }
15916 def M2_vcmpy_s0_sat_r : HInst<
15917 (outs DoubleRegs:$Rdd32),
15918 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15919 "$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
15920 tc_8c8041e6, TypeM>, Enc_a56825 {
15921 let Inst{7-5} = 0b110;
15922 let Inst{13-13} = 0b0;
15923 let Inst{31-21} = 0b11101000001;
15924 let prefersSlot3 = 1;
15925 let Defs = [USR_OVF];
15926 }
15927 def M2_vcmpy_s1_sat_i : HInst<
15928 (outs DoubleRegs:$Rdd32),
15929 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15930 "$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
15931 tc_8c8041e6, TypeM>, Enc_a56825 {
15932 let Inst{7-5} = 0b110;
15933 let Inst{13-13} = 0b0;
15934 let Inst{31-21} = 0b11101000110;
15935 let prefersSlot3 = 1;
15936 let Defs = [USR_OVF];
15937 }
15938 def M2_vcmpy_s1_sat_r : HInst<
15939 (outs DoubleRegs:$Rdd32),
15940 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15941 "$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
15942 tc_8c8041e6, TypeM>, Enc_a56825 {
15943 let Inst{7-5} = 0b110;
15944 let Inst{13-13} = 0b0;
15945 let Inst{31-21} = 0b11101000101;
15946 let prefersSlot3 = 1;
15947 let Defs = [USR_OVF];
15948 }
15949 def M2_vdmacs_s0 : HInst<
15950 (outs DoubleRegs:$Rxx32),
15951 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15952 "$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
15953 tc_8cb685d9, TypeM>, Enc_88c16c {
15954 let Inst{7-5} = 0b100;
15955 let Inst{13-13} = 0b0;
15956 let Inst{31-21} = 0b11101010000;
15957 let prefersSlot3 = 1;
15958 let Defs = [USR_OVF];
15959 let Constraints = "$Rxx32 = $Rxx32in";
15960 }
15961 def M2_vdmacs_s1 : HInst<
15962 (outs DoubleRegs:$Rxx32),
15963 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15964 "$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
15965 tc_8cb685d9, TypeM>, Enc_88c16c {
15966 let Inst{7-5} = 0b100;
15967 let Inst{13-13} = 0b0;
15968 let Inst{31-21} = 0b11101010100;
15969 let prefersSlot3 = 1;
15970 let Defs = [USR_OVF];
15971 let Constraints = "$Rxx32 = $Rxx32in";
15972 }
15973 def M2_vdmpyrs_s0 : HInst<
15974 (outs IntRegs:$Rd32),
15975 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15976 "$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
15977 tc_8c8041e6, TypeM>, Enc_d2216a {
15978 let Inst{7-5} = 0b000;
15979 let Inst{13-13} = 0b0;
15980 let Inst{31-21} = 0b11101001000;
15981 let hasNewValue = 1;
15982 let opNewValue = 0;
15983 let prefersSlot3 = 1;
15984 let Defs = [USR_OVF];
15985 }
15986 def M2_vdmpyrs_s1 : HInst<
15987 (outs IntRegs:$Rd32),
15988 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
15989 "$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
15990 tc_8c8041e6, TypeM>, Enc_d2216a {
15991 let Inst{7-5} = 0b000;
15992 let Inst{13-13} = 0b0;
15993 let Inst{31-21} = 0b11101001100;
15994 let hasNewValue = 1;
15995 let opNewValue = 0;
15996 let prefersSlot3 = 1;
15997 let Defs = [USR_OVF];
15998 }
15999 def M2_vdmpys_s0 : HInst<
16000 (outs DoubleRegs:$Rdd32),
16001 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16002 "$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16003 tc_8c8041e6, TypeM>, Enc_a56825 {
16004 let Inst{7-5} = 0b100;
16005 let Inst{13-13} = 0b0;
16006 let Inst{31-21} = 0b11101000000;
16007 let prefersSlot3 = 1;
16008 let Defs = [USR_OVF];
16009 }
16010 def M2_vdmpys_s1 : HInst<
16011 (outs DoubleRegs:$Rdd32),
16012 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16013 "$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16014 tc_8c8041e6, TypeM>, Enc_a56825 {
16015 let Inst{7-5} = 0b100;
16016 let Inst{13-13} = 0b0;
16017 let Inst{31-21} = 0b11101000100;
16018 let prefersSlot3 = 1;
16019 let Defs = [USR_OVF];
16020 }
16021 def M2_vmac2 : HInst<
16022 (outs DoubleRegs:$Rxx32),
16023 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16024 "$Rxx32 += vmpyh($Rs32,$Rt32)",
16025 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16026 let Inst{7-5} = 0b001;
16027 let Inst{13-13} = 0b0;
16028 let Inst{31-21} = 0b11100111001;
16029 let prefersSlot3 = 1;
16030 let Constraints = "$Rxx32 = $Rxx32in";
16031 }
16032 def M2_vmac2es : HInst<
16033 (outs DoubleRegs:$Rxx32),
16034 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16035 "$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16036 tc_8cb685d9, TypeM>, Enc_88c16c {
16037 let Inst{7-5} = 0b010;
16038 let Inst{13-13} = 0b0;
16039 let Inst{31-21} = 0b11101010001;
16040 let prefersSlot3 = 1;
16041 let Constraints = "$Rxx32 = $Rxx32in";
16042 }
16043 def M2_vmac2es_s0 : HInst<
16044 (outs DoubleRegs:$Rxx32),
16045 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16046 "$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16047 tc_8cb685d9, TypeM>, Enc_88c16c {
16048 let Inst{7-5} = 0b110;
16049 let Inst{13-13} = 0b0;
16050 let Inst{31-21} = 0b11101010000;
16051 let prefersSlot3 = 1;
16052 let Defs = [USR_OVF];
16053 let Constraints = "$Rxx32 = $Rxx32in";
16054 }
16055 def M2_vmac2es_s1 : HInst<
16056 (outs DoubleRegs:$Rxx32),
16057 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16058 "$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16059 tc_8cb685d9, TypeM>, Enc_88c16c {
16060 let Inst{7-5} = 0b110;
16061 let Inst{13-13} = 0b0;
16062 let Inst{31-21} = 0b11101010100;
16063 let prefersSlot3 = 1;
16064 let Defs = [USR_OVF];
16065 let Constraints = "$Rxx32 = $Rxx32in";
16066 }
16067 def M2_vmac2s_s0 : HInst<
16068 (outs DoubleRegs:$Rxx32),
16069 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16070 "$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16071 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16072 let Inst{7-5} = 0b101;
16073 let Inst{13-13} = 0b0;
16074 let Inst{31-21} = 0b11100111000;
16075 let prefersSlot3 = 1;
16076 let Defs = [USR_OVF];
16077 let Constraints = "$Rxx32 = $Rxx32in";
16078 }
16079 def M2_vmac2s_s1 : HInst<
16080 (outs DoubleRegs:$Rxx32),
16081 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16082 "$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16083 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16084 let Inst{7-5} = 0b101;
16085 let Inst{13-13} = 0b0;
16086 let Inst{31-21} = 0b11100111100;
16087 let prefersSlot3 = 1;
16088 let Defs = [USR_OVF];
16089 let Constraints = "$Rxx32 = $Rxx32in";
16090 }
16091 def M2_vmac2su_s0 : HInst<
16092 (outs DoubleRegs:$Rxx32),
16093 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16094 "$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16095 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16096 let Inst{7-5} = 0b101;
16097 let Inst{13-13} = 0b0;
16098 let Inst{31-21} = 0b11100111011;
16099 let prefersSlot3 = 1;
16100 let Defs = [USR_OVF];
16101 let Constraints = "$Rxx32 = $Rxx32in";
16102 }
16103 def M2_vmac2su_s1 : HInst<
16104 (outs DoubleRegs:$Rxx32),
16105 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16106 "$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16107 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16108 let Inst{7-5} = 0b101;
16109 let Inst{13-13} = 0b0;
16110 let Inst{31-21} = 0b11100111111;
16111 let prefersSlot3 = 1;
16112 let Defs = [USR_OVF];
16113 let Constraints = "$Rxx32 = $Rxx32in";
16114 }
16115 def M2_vmpy2es_s0 : HInst<
16116 (outs DoubleRegs:$Rdd32),
16117 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16118 "$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16119 tc_8c8041e6, TypeM>, Enc_a56825 {
16120 let Inst{7-5} = 0b110;
16121 let Inst{13-13} = 0b0;
16122 let Inst{31-21} = 0b11101000000;
16123 let prefersSlot3 = 1;
16124 let Defs = [USR_OVF];
16125 }
16126 def M2_vmpy2es_s1 : HInst<
16127 (outs DoubleRegs:$Rdd32),
16128 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16129 "$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16130 tc_8c8041e6, TypeM>, Enc_a56825 {
16131 let Inst{7-5} = 0b110;
16132 let Inst{13-13} = 0b0;
16133 let Inst{31-21} = 0b11101000100;
16134 let prefersSlot3 = 1;
16135 let Defs = [USR_OVF];
16136 }
16137 def M2_vmpy2s_s0 : HInst<
16138 (outs DoubleRegs:$Rdd32),
16139 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16140 "$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16141 tc_8c8041e6, TypeM>, Enc_be32a5 {
16142 let Inst{7-5} = 0b101;
16143 let Inst{13-13} = 0b0;
16144 let Inst{31-21} = 0b11100101000;
16145 let prefersSlot3 = 1;
16146 let Defs = [USR_OVF];
16147 }
16148 def M2_vmpy2s_s0pack : HInst<
16149 (outs IntRegs:$Rd32),
16150 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16151 "$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16152 tc_8c8041e6, TypeM>, Enc_5ab2be {
16153 let Inst{7-5} = 0b111;
16154 let Inst{13-13} = 0b0;
16155 let Inst{31-21} = 0b11101101001;
16156 let hasNewValue = 1;
16157 let opNewValue = 0;
16158 let prefersSlot3 = 1;
16159 let Defs = [USR_OVF];
16160 }
16161 def M2_vmpy2s_s1 : HInst<
16162 (outs DoubleRegs:$Rdd32),
16163 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16164 "$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16165 tc_8c8041e6, TypeM>, Enc_be32a5 {
16166 let Inst{7-5} = 0b101;
16167 let Inst{13-13} = 0b0;
16168 let Inst{31-21} = 0b11100101100;
16169 let prefersSlot3 = 1;
16170 let Defs = [USR_OVF];
16171 }
16172 def M2_vmpy2s_s1pack : HInst<
16173 (outs IntRegs:$Rd32),
16174 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16175 "$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16176 tc_8c8041e6, TypeM>, Enc_5ab2be {
16177 let Inst{7-5} = 0b111;
16178 let Inst{13-13} = 0b0;
16179 let Inst{31-21} = 0b11101101101;
16180 let hasNewValue = 1;
16181 let opNewValue = 0;
16182 let prefersSlot3 = 1;
16183 let Defs = [USR_OVF];
16184 }
16185 def M2_vmpy2su_s0 : HInst<
16186 (outs DoubleRegs:$Rdd32),
16187 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16188 "$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16189 tc_8c8041e6, TypeM>, Enc_be32a5 {
16190 let Inst{7-5} = 0b111;
16191 let Inst{13-13} = 0b0;
16192 let Inst{31-21} = 0b11100101000;
16193 let prefersSlot3 = 1;
16194 let Defs = [USR_OVF];
16195 }
16196 def M2_vmpy2su_s1 : HInst<
16197 (outs DoubleRegs:$Rdd32),
16198 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16199 "$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16200 tc_8c8041e6, TypeM>, Enc_be32a5 {
16201 let Inst{7-5} = 0b111;
16202 let Inst{13-13} = 0b0;
16203 let Inst{31-21} = 0b11100101100;
16204 let prefersSlot3 = 1;
16205 let Defs = [USR_OVF];
16206 }
16207 def M2_vraddh : HInst<
16208 (outs IntRegs:$Rd32),
16209 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16210 "$Rd32 = vraddh($Rss32,$Rtt32)",
16211 tc_8c8041e6, TypeM>, Enc_d2216a {
16212 let Inst{7-5} = 0b111;
16213 let Inst{13-13} = 0b0;
16214 let Inst{31-21} = 0b11101001001;
16215 let hasNewValue = 1;
16216 let opNewValue = 0;
16217 let prefersSlot3 = 1;
16218 }
16219 def M2_vradduh : HInst<
16220 (outs IntRegs:$Rd32),
16221 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16222 "$Rd32 = vradduh($Rss32,$Rtt32)",
16223 tc_8c8041e6, TypeM>, Enc_d2216a {
16224 let Inst{7-5} = 0b001;
16225 let Inst{13-13} = 0b0;
16226 let Inst{31-21} = 0b11101001000;
16227 let hasNewValue = 1;
16228 let opNewValue = 0;
16229 let prefersSlot3 = 1;
16230 }
16231 def M2_vrcmaci_s0 : HInst<
16232 (outs DoubleRegs:$Rxx32),
16233 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16234 "$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16235 tc_8cb685d9, TypeM>, Enc_88c16c {
16236 let Inst{7-5} = 0b000;
16237 let Inst{13-13} = 0b0;
16238 let Inst{31-21} = 0b11101010000;
16239 let prefersSlot3 = 1;
16240 let Constraints = "$Rxx32 = $Rxx32in";
16241 }
16242 def M2_vrcmaci_s0c : HInst<
16243 (outs DoubleRegs:$Rxx32),
16244 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16245 "$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16246 tc_8cb685d9, TypeM>, Enc_88c16c {
16247 let Inst{7-5} = 0b000;
16248 let Inst{13-13} = 0b0;
16249 let Inst{31-21} = 0b11101010010;
16250 let prefersSlot3 = 1;
16251 let Constraints = "$Rxx32 = $Rxx32in";
16252 }
16253 def M2_vrcmacr_s0 : HInst<
16254 (outs DoubleRegs:$Rxx32),
16255 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16256 "$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16257 tc_8cb685d9, TypeM>, Enc_88c16c {
16258 let Inst{7-5} = 0b001;
16259 let Inst{13-13} = 0b0;
16260 let Inst{31-21} = 0b11101010000;
16261 let prefersSlot3 = 1;
16262 let Constraints = "$Rxx32 = $Rxx32in";
16263 }
16264 def M2_vrcmacr_s0c : HInst<
16265 (outs DoubleRegs:$Rxx32),
16266 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16267 "$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16268 tc_8cb685d9, TypeM>, Enc_88c16c {
16269 let Inst{7-5} = 0b001;
16270 let Inst{13-13} = 0b0;
16271 let Inst{31-21} = 0b11101010011;
16272 let prefersSlot3 = 1;
16273 let Constraints = "$Rxx32 = $Rxx32in";
16274 }
16275 def M2_vrcmpyi_s0 : HInst<
16276 (outs DoubleRegs:$Rdd32),
16277 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16278 "$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16279 tc_8c8041e6, TypeM>, Enc_a56825 {
16280 let Inst{7-5} = 0b000;
16281 let Inst{13-13} = 0b0;
16282 let Inst{31-21} = 0b11101000000;
16283 let prefersSlot3 = 1;
16284 }
16285 def M2_vrcmpyi_s0c : HInst<
16286 (outs DoubleRegs:$Rdd32),
16287 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16288 "$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16289 tc_8c8041e6, TypeM>, Enc_a56825 {
16290 let Inst{7-5} = 0b000;
16291 let Inst{13-13} = 0b0;
16292 let Inst{31-21} = 0b11101000010;
16293 let prefersSlot3 = 1;
16294 }
16295 def M2_vrcmpyr_s0 : HInst<
16296 (outs DoubleRegs:$Rdd32),
16297 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16298 "$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
16299 tc_8c8041e6, TypeM>, Enc_a56825 {
16300 let Inst{7-5} = 0b001;
16301 let Inst{13-13} = 0b0;
16302 let Inst{31-21} = 0b11101000000;
16303 let prefersSlot3 = 1;
16304 }
16305 def M2_vrcmpyr_s0c : HInst<
16306 (outs DoubleRegs:$Rdd32),
16307 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16308 "$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
16309 tc_8c8041e6, TypeM>, Enc_a56825 {
16310 let Inst{7-5} = 0b001;
16311 let Inst{13-13} = 0b0;
16312 let Inst{31-21} = 0b11101000011;
16313 let prefersSlot3 = 1;
16314 }
16315 def M2_vrcmpys_acc_s1 : HInst<
16316 (outs DoubleRegs:$Rxx32),
16317 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
16318 "$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
16319 tc_8cb685d9, TypeM> {
16320 let isPseudo = 1;
16321 let Constraints = "$Rxx32 = $Rxx32in";
16322 }
16323 def M2_vrcmpys_acc_s1_h : HInst<
16324 (outs DoubleRegs:$Rxx32),
16325 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16326 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16327 tc_8cb685d9, TypeM>, Enc_88c16c {
16328 let Inst{7-5} = 0b100;
16329 let Inst{13-13} = 0b0;
16330 let Inst{31-21} = 0b11101010101;
16331 let prefersSlot3 = 1;
16332 let Defs = [USR_OVF];
16333 let Constraints = "$Rxx32 = $Rxx32in";
16334 }
16335 def M2_vrcmpys_acc_s1_l : HInst<
16336 (outs DoubleRegs:$Rxx32),
16337 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16338 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16339 tc_8cb685d9, TypeM>, Enc_88c16c {
16340 let Inst{7-5} = 0b100;
16341 let Inst{13-13} = 0b0;
16342 let Inst{31-21} = 0b11101010111;
16343 let prefersSlot3 = 1;
16344 let Defs = [USR_OVF];
16345 let Constraints = "$Rxx32 = $Rxx32in";
16346 }
16347 def M2_vrcmpys_s1 : HInst<
16348 (outs DoubleRegs:$Rdd32),
16349 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16350 "$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
16351 tc_8c8041e6, TypeM> {
16352 let isPseudo = 1;
16353 }
16354 def M2_vrcmpys_s1_h : HInst<
16355 (outs DoubleRegs:$Rdd32),
16356 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16357 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16358 tc_8c8041e6, TypeM>, Enc_a56825 {
16359 let Inst{7-5} = 0b100;
16360 let Inst{13-13} = 0b0;
16361 let Inst{31-21} = 0b11101000101;
16362 let prefersSlot3 = 1;
16363 let Defs = [USR_OVF];
16364 }
16365 def M2_vrcmpys_s1_l : HInst<
16366 (outs DoubleRegs:$Rdd32),
16367 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16368 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16369 tc_8c8041e6, TypeM>, Enc_a56825 {
16370 let Inst{7-5} = 0b100;
16371 let Inst{13-13} = 0b0;
16372 let Inst{31-21} = 0b11101000111;
16373 let prefersSlot3 = 1;
16374 let Defs = [USR_OVF];
16375 }
16376 def M2_vrcmpys_s1rp : HInst<
16377 (outs IntRegs:$Rd32),
16378 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16379 "$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
16380 tc_8c8041e6, TypeM> {
16381 let hasNewValue = 1;
16382 let opNewValue = 0;
16383 let isPseudo = 1;
16384 }
16385 def M2_vrcmpys_s1rp_h : HInst<
16386 (outs IntRegs:$Rd32),
16387 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16388 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
16389 tc_8c8041e6, TypeM>, Enc_d2216a {
16390 let Inst{7-5} = 0b110;
16391 let Inst{13-13} = 0b0;
16392 let Inst{31-21} = 0b11101001101;
16393 let hasNewValue = 1;
16394 let opNewValue = 0;
16395 let prefersSlot3 = 1;
16396 let Defs = [USR_OVF];
16397 }
16398 def M2_vrcmpys_s1rp_l : HInst<
16399 (outs IntRegs:$Rd32),
16400 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16401 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
16402 tc_8c8041e6, TypeM>, Enc_d2216a {
16403 let Inst{7-5} = 0b111;
16404 let Inst{13-13} = 0b0;
16405 let Inst{31-21} = 0b11101001101;
16406 let hasNewValue = 1;
16407 let opNewValue = 0;
16408 let prefersSlot3 = 1;
16409 let Defs = [USR_OVF];
16410 }
16411 def M2_vrmac_s0 : HInst<
16412 (outs DoubleRegs:$Rxx32),
16413 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16414 "$Rxx32 += vrmpyh($Rss32,$Rtt32)",
16415 tc_8cb685d9, TypeM>, Enc_88c16c {
16416 let Inst{7-5} = 0b010;
16417 let Inst{13-13} = 0b0;
16418 let Inst{31-21} = 0b11101010000;
16419 let prefersSlot3 = 1;
16420 let Constraints = "$Rxx32 = $Rxx32in";
16421 }
16422 def M2_vrmpy_s0 : HInst<
16423 (outs DoubleRegs:$Rdd32),
16424 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16425 "$Rdd32 = vrmpyh($Rss32,$Rtt32)",
16426 tc_8c8041e6, TypeM>, Enc_a56825 {
16427 let Inst{7-5} = 0b010;
16428 let Inst{13-13} = 0b0;
16429 let Inst{31-21} = 0b11101000000;
16430 let prefersSlot3 = 1;
16431 }
16432 def M2_xor_xacc : HInst<
16433 (outs IntRegs:$Rx32),
16434 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16435 "$Rx32 ^= xor($Rs32,$Rt32)",
16436 tc_3c10f809, TypeM>, Enc_2ae154 {
16437 let Inst{7-5} = 0b011;
16438 let Inst{13-13} = 0b0;
16439 let Inst{31-21} = 0b11101111100;
16440 let hasNewValue = 1;
16441 let opNewValue = 0;
16442 let prefersSlot3 = 1;
16443 let InputType = "reg";
16444 let Constraints = "$Rx32 = $Rx32in";
16445 }
16446 def M4_and_and : HInst<
16447 (outs IntRegs:$Rx32),
16448 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16449 "$Rx32 &= and($Rs32,$Rt32)",
16450 tc_3c10f809, TypeM>, Enc_2ae154 {
16451 let Inst{7-5} = 0b000;
16452 let Inst{13-13} = 0b0;
16453 let Inst{31-21} = 0b11101111010;
16454 let hasNewValue = 1;
16455 let opNewValue = 0;
16456 let prefersSlot3 = 1;
16457 let InputType = "reg";
16458 let Constraints = "$Rx32 = $Rx32in";
16459 }
16460 def M4_and_andn : HInst<
16461 (outs IntRegs:$Rx32),
16462 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16463 "$Rx32 &= and($Rs32,~$Rt32)",
16464 tc_3c10f809, TypeM>, Enc_2ae154 {
16465 let Inst{7-5} = 0b001;
16466 let Inst{13-13} = 0b0;
16467 let Inst{31-21} = 0b11101111001;
16468 let hasNewValue = 1;
16469 let opNewValue = 0;
16470 let prefersSlot3 = 1;
16471 let InputType = "reg";
16472 let Constraints = "$Rx32 = $Rx32in";
16473 }
16474 def M4_and_or : HInst<
16475 (outs IntRegs:$Rx32),
16476 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16477 "$Rx32 &= or($Rs32,$Rt32)",
16478 tc_3c10f809, TypeM>, Enc_2ae154 {
16479 let Inst{7-5} = 0b001;
16480 let Inst{13-13} = 0b0;
16481 let Inst{31-21} = 0b11101111010;
16482 let hasNewValue = 1;
16483 let opNewValue = 0;
16484 let prefersSlot3 = 1;
16485 let InputType = "reg";
16486 let Constraints = "$Rx32 = $Rx32in";
16487 }
16488 def M4_and_xor : HInst<
16489 (outs IntRegs:$Rx32),
16490 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16491 "$Rx32 &= xor($Rs32,$Rt32)",
16492 tc_3c10f809, TypeM>, Enc_2ae154 {
16493 let Inst{7-5} = 0b010;
16494 let Inst{13-13} = 0b0;
16495 let Inst{31-21} = 0b11101111010;
16496 let hasNewValue = 1;
16497 let opNewValue = 0;
16498 let prefersSlot3 = 1;
16499 let InputType = "reg";
16500 let Constraints = "$Rx32 = $Rx32in";
16501 }
16502 def M4_cmpyi_wh : HInst<
16503 (outs IntRegs:$Rd32),
16504 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16505 "$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
16506 tc_8c8041e6, TypeS_3op>, Enc_3d5b28 {
16507 let Inst{7-5} = 0b100;
16508 let Inst{13-13} = 0b0;
16509 let Inst{31-21} = 0b11000101000;
16510 let hasNewValue = 1;
16511 let opNewValue = 0;
16512 let prefersSlot3 = 1;
16513 let Defs = [USR_OVF];
16514 }
16515 def M4_cmpyi_whc : HInst<
16516 (outs IntRegs:$Rd32),
16517 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16518 "$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
16519 tc_8c8041e6, TypeS_3op>, Enc_3d5b28, Requires<[HasV5T]> {
16520 let Inst{7-5} = 0b101;
16521 let Inst{13-13} = 0b0;
16522 let Inst{31-21} = 0b11000101000;
16523 let hasNewValue = 1;
16524 let opNewValue = 0;
16525 let prefersSlot3 = 1;
16526 let Defs = [USR_OVF];
16527 }
16528 def M4_cmpyr_wh : HInst<
16529 (outs IntRegs:$Rd32),
16530 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16531 "$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
16532 tc_8c8041e6, TypeS_3op>, Enc_3d5b28 {
16533 let Inst{7-5} = 0b110;
16534 let Inst{13-13} = 0b0;
16535 let Inst{31-21} = 0b11000101000;
16536 let hasNewValue = 1;
16537 let opNewValue = 0;
16538 let prefersSlot3 = 1;
16539 let Defs = [USR_OVF];
16540 }
16541 def M4_cmpyr_whc : HInst<
16542 (outs IntRegs:$Rd32),
16543 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16544 "$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
16545 tc_8c8041e6, TypeS_3op>, Enc_3d5b28, Requires<[HasV5T]> {
16546 let Inst{7-5} = 0b111;
16547 let Inst{13-13} = 0b0;
16548 let Inst{31-21} = 0b11000101000;
16549 let hasNewValue = 1;
16550 let opNewValue = 0;
16551 let prefersSlot3 = 1;
16552 let Defs = [USR_OVF];
16553 }
16554 def M4_mac_up_s1_sat : HInst<
16555 (outs IntRegs:$Rx32),
16556 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16557 "$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
16558 tc_8cb685d9, TypeM>, Enc_2ae154 {
16559 let Inst{7-5} = 0b000;
16560 let Inst{13-13} = 0b0;
16561 let Inst{31-21} = 0b11101111011;
16562 let hasNewValue = 1;
16563 let opNewValue = 0;
16564 let prefersSlot3 = 1;
16565 let Defs = [USR_OVF];
16566 let InputType = "reg";
16567 let Constraints = "$Rx32 = $Rx32in";
16568 }
16569 def M4_mpyri_addi : HInst<
16570 (outs IntRegs:$Rd32),
16571 (ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
16572 "$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
16573 tc_a12a5971, TypeALU64>, Enc_322e1b, ImmRegRel {
16574 let Inst{31-24} = 0b11011000;
16575 let hasNewValue = 1;
16576 let opNewValue = 0;
16577 let prefersSlot3 = 1;
16578 let CextOpcode = "M4_mpyri_addr";
16579 let isExtendable = 1;
16580 let opExtendable = 1;
16581 let isExtentSigned = 0;
16582 let opExtentBits = 6;
16583 let opExtentAlign = 0;
16584 }
16585 def M4_mpyri_addr : HInst<
16586 (outs IntRegs:$Rd32),
16587 (ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
16588 "$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
16589 tc_a12a5971, TypeALU64>, Enc_420cf3, ImmRegRel {
16590 let Inst{31-23} = 0b110111111;
16591 let hasNewValue = 1;
16592 let opNewValue = 0;
16593 let prefersSlot3 = 1;
16594 let CextOpcode = "M4_mpyri_addr";
16595 let InputType = "imm";
16596 let isExtendable = 1;
16597 let opExtendable = 3;
16598 let isExtentSigned = 0;
16599 let opExtentBits = 6;
16600 let opExtentAlign = 0;
16601 }
16602 def M4_mpyri_addr_u2 : HInst<
16603 (outs IntRegs:$Rd32),
16604 (ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
16605 "$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
16606 tc_69bb508b, TypeALU64>, Enc_277737 {
16607 let Inst{31-23} = 0b110111110;
16608 let hasNewValue = 1;
16609 let opNewValue = 0;
16610 let prefersSlot3 = 1;
16611 }
16612 def M4_mpyrr_addi : HInst<
16613 (outs IntRegs:$Rd32),
16614 (ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
16615 "$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
16616 tc_8cb685d9, TypeALU64>, Enc_a7b8e8, ImmRegRel {
16617 let Inst{31-23} = 0b110101110;
16618 let hasNewValue = 1;
16619 let opNewValue = 0;
16620 let prefersSlot3 = 1;
16621 let CextOpcode = "M4_mpyrr_addr";
16622 let InputType = "imm";
16623 let isExtendable = 1;
16624 let opExtendable = 1;
16625 let isExtentSigned = 0;
16626 let opExtentBits = 6;
16627 let opExtentAlign = 0;
16628 }
16629 def M4_mpyrr_addr : HInst<
16630 (outs IntRegs:$Ry32),
16631 (ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
16632 "$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
16633 tc_8cb685d9, TypeM>, Enc_7f1a05, ImmRegRel {
16634 let Inst{7-5} = 0b000;
16635 let Inst{13-13} = 0b0;
16636 let Inst{31-21} = 0b11100011000;
16637 let hasNewValue = 1;
16638 let opNewValue = 0;
16639 let prefersSlot3 = 1;
16640 let CextOpcode = "M4_mpyrr_addr";
16641 let InputType = "reg";
16642 let Constraints = "$Ry32 = $Ry32in";
16643 }
16644 def M4_nac_up_s1_sat : HInst<
16645 (outs IntRegs:$Rx32),
16646 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16647 "$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
16648 tc_8cb685d9, TypeM>, Enc_2ae154 {
16649 let Inst{7-5} = 0b001;
16650 let Inst{13-13} = 0b0;
16651 let Inst{31-21} = 0b11101111011;
16652 let hasNewValue = 1;
16653 let opNewValue = 0;
16654 let prefersSlot3 = 1;
16655 let Defs = [USR_OVF];
16656 let InputType = "reg";
16657 let Constraints = "$Rx32 = $Rx32in";
16658 }
16659 def M4_or_and : HInst<
16660 (outs IntRegs:$Rx32),
16661 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16662 "$Rx32 |= and($Rs32,$Rt32)",
16663 tc_3c10f809, TypeM>, Enc_2ae154 {
16664 let Inst{7-5} = 0b011;
16665 let Inst{13-13} = 0b0;
16666 let Inst{31-21} = 0b11101111010;
16667 let hasNewValue = 1;
16668 let opNewValue = 0;
16669 let prefersSlot3 = 1;
16670 let InputType = "reg";
16671 let Constraints = "$Rx32 = $Rx32in";
16672 }
16673 def M4_or_andn : HInst<
16674 (outs IntRegs:$Rx32),
16675 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16676 "$Rx32 |= and($Rs32,~$Rt32)",
16677 tc_3c10f809, TypeM>, Enc_2ae154 {
16678 let Inst{7-5} = 0b000;
16679 let Inst{13-13} = 0b0;
16680 let Inst{31-21} = 0b11101111001;
16681 let hasNewValue = 1;
16682 let opNewValue = 0;
16683 let prefersSlot3 = 1;
16684 let InputType = "reg";
16685 let Constraints = "$Rx32 = $Rx32in";
16686 }
16687 def M4_or_or : HInst<
16688 (outs IntRegs:$Rx32),
16689 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16690 "$Rx32 |= or($Rs32,$Rt32)",
16691 tc_3c10f809, TypeM>, Enc_2ae154 {
16692 let Inst{7-5} = 0b000;
16693 let Inst{13-13} = 0b0;
16694 let Inst{31-21} = 0b11101111110;
16695 let hasNewValue = 1;
16696 let opNewValue = 0;
16697 let prefersSlot3 = 1;
16698 let InputType = "reg";
16699 let Constraints = "$Rx32 = $Rx32in";
16700 }
16701 def M4_or_xor : HInst<
16702 (outs IntRegs:$Rx32),
16703 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16704 "$Rx32 |= xor($Rs32,$Rt32)",
16705 tc_3c10f809, TypeM>, Enc_2ae154 {
16706 let Inst{7-5} = 0b001;
16707 let Inst{13-13} = 0b0;
16708 let Inst{31-21} = 0b11101111110;
16709 let hasNewValue = 1;
16710 let opNewValue = 0;
16711 let prefersSlot3 = 1;
16712 let InputType = "reg";
16713 let Constraints = "$Rx32 = $Rx32in";
16714 }
16715 def M4_pmpyw : HInst<
16716 (outs DoubleRegs:$Rdd32),
16717 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16718 "$Rdd32 = pmpyw($Rs32,$Rt32)",
16719 tc_8c8041e6, TypeM>, Enc_be32a5 {
16720 let Inst{7-5} = 0b111;
16721 let Inst{13-13} = 0b0;
16722 let Inst{31-21} = 0b11100101010;
16723 let prefersSlot3 = 1;
16724 }
16725 def M4_pmpyw_acc : HInst<
16726 (outs DoubleRegs:$Rxx32),
16727 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16728 "$Rxx32 ^= pmpyw($Rs32,$Rt32)",
16729 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16730 let Inst{7-5} = 0b111;
16731 let Inst{13-13} = 0b0;
16732 let Inst{31-21} = 0b11100111001;
16733 let prefersSlot3 = 1;
16734 let Constraints = "$Rxx32 = $Rxx32in";
16735 }
16736 def M4_vpmpyh : HInst<
16737 (outs DoubleRegs:$Rdd32),
16738 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16739 "$Rdd32 = vpmpyh($Rs32,$Rt32)",
16740 tc_8c8041e6, TypeM>, Enc_be32a5 {
16741 let Inst{7-5} = 0b111;
16742 let Inst{13-13} = 0b0;
16743 let Inst{31-21} = 0b11100101110;
16744 let prefersSlot3 = 1;
16745 }
16746 def M4_vpmpyh_acc : HInst<
16747 (outs DoubleRegs:$Rxx32),
16748 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16749 "$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
16750 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16751 let Inst{7-5} = 0b111;
16752 let Inst{13-13} = 0b0;
16753 let Inst{31-21} = 0b11100111101;
16754 let prefersSlot3 = 1;
16755 let Constraints = "$Rxx32 = $Rxx32in";
16756 }
16757 def M4_vrmpyeh_acc_s0 : HInst<
16758 (outs DoubleRegs:$Rxx32),
16759 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16760 "$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
16761 tc_8cb685d9, TypeM>, Enc_88c16c {
16762 let Inst{7-5} = 0b110;
16763 let Inst{13-13} = 0b0;
16764 let Inst{31-21} = 0b11101010001;
16765 let prefersSlot3 = 1;
16766 let Constraints = "$Rxx32 = $Rxx32in";
16767 }
16768 def M4_vrmpyeh_acc_s1 : HInst<
16769 (outs DoubleRegs:$Rxx32),
16770 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16771 "$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
16772 tc_8cb685d9, TypeM>, Enc_88c16c {
16773 let Inst{7-5} = 0b110;
16774 let Inst{13-13} = 0b0;
16775 let Inst{31-21} = 0b11101010101;
16776 let prefersSlot3 = 1;
16777 let Constraints = "$Rxx32 = $Rxx32in";
16778 }
16779 def M4_vrmpyeh_s0 : HInst<
16780 (outs DoubleRegs:$Rdd32),
16781 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16782 "$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
16783 tc_8c8041e6, TypeM>, Enc_a56825 {
16784 let Inst{7-5} = 0b100;
16785 let Inst{13-13} = 0b0;
16786 let Inst{31-21} = 0b11101000010;
16787 let prefersSlot3 = 1;
16788 }
16789 def M4_vrmpyeh_s1 : HInst<
16790 (outs DoubleRegs:$Rdd32),
16791 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16792 "$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
16793 tc_8c8041e6, TypeM>, Enc_a56825 {
16794 let Inst{7-5} = 0b100;
16795 let Inst{13-13} = 0b0;
16796 let Inst{31-21} = 0b11101000110;
16797 let prefersSlot3 = 1;
16798 }
16799 def M4_vrmpyoh_acc_s0 : HInst<
16800 (outs DoubleRegs:$Rxx32),
16801 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16802 "$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
16803 tc_8cb685d9, TypeM>, Enc_88c16c {
16804 let Inst{7-5} = 0b110;
16805 let Inst{13-13} = 0b0;
16806 let Inst{31-21} = 0b11101010011;
16807 let prefersSlot3 = 1;
16808 let Constraints = "$Rxx32 = $Rxx32in";
16809 }
16810 def M4_vrmpyoh_acc_s1 : HInst<
16811 (outs DoubleRegs:$Rxx32),
16812 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16813 "$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
16814 tc_8cb685d9, TypeM>, Enc_88c16c {
16815 let Inst{7-5} = 0b110;
16816 let Inst{13-13} = 0b0;
16817 let Inst{31-21} = 0b11101010111;
16818 let prefersSlot3 = 1;
16819 let Constraints = "$Rxx32 = $Rxx32in";
16820 }
16821 def M4_vrmpyoh_s0 : HInst<
16822 (outs DoubleRegs:$Rdd32),
16823 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16824 "$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
16825 tc_8c8041e6, TypeM>, Enc_a56825 {
16826 let Inst{7-5} = 0b010;
16827 let Inst{13-13} = 0b0;
16828 let Inst{31-21} = 0b11101000001;
16829 let prefersSlot3 = 1;
16830 }
16831 def M4_vrmpyoh_s1 : HInst<
16832 (outs DoubleRegs:$Rdd32),
16833 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16834 "$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
16835 tc_8c8041e6, TypeM>, Enc_a56825 {
16836 let Inst{7-5} = 0b010;
16837 let Inst{13-13} = 0b0;
16838 let Inst{31-21} = 0b11101000101;
16839 let prefersSlot3 = 1;
16840 }
16841 def M4_xor_and : HInst<
16842 (outs IntRegs:$Rx32),
16843 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16844 "$Rx32 ^= and($Rs32,$Rt32)",
16845 tc_3c10f809, TypeM>, Enc_2ae154 {
16846 let Inst{7-5} = 0b010;
16847 let Inst{13-13} = 0b0;
16848 let Inst{31-21} = 0b11101111110;
16849 let hasNewValue = 1;
16850 let opNewValue = 0;
16851 let prefersSlot3 = 1;
16852 let InputType = "reg";
16853 let Constraints = "$Rx32 = $Rx32in";
16854 }
16855 def M4_xor_andn : HInst<
16856 (outs IntRegs:$Rx32),
16857 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16858 "$Rx32 ^= and($Rs32,~$Rt32)",
16859 tc_3c10f809, TypeM>, Enc_2ae154 {
16860 let Inst{7-5} = 0b010;
16861 let Inst{13-13} = 0b0;
16862 let Inst{31-21} = 0b11101111001;
16863 let hasNewValue = 1;
16864 let opNewValue = 0;
16865 let prefersSlot3 = 1;
16866 let InputType = "reg";
16867 let Constraints = "$Rx32 = $Rx32in";
16868 }
16869 def M4_xor_or : HInst<
16870 (outs IntRegs:$Rx32),
16871 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16872 "$Rx32 ^= or($Rs32,$Rt32)",
16873 tc_3c10f809, TypeM>, Enc_2ae154 {
16874 let Inst{7-5} = 0b011;
16875 let Inst{13-13} = 0b0;
16876 let Inst{31-21} = 0b11101111110;
16877 let hasNewValue = 1;
16878 let opNewValue = 0;
16879 let prefersSlot3 = 1;
16880 let InputType = "reg";
16881 let Constraints = "$Rx32 = $Rx32in";
16882 }
16883 def M4_xor_xacc : HInst<
16884 (outs DoubleRegs:$Rxx32),
16885 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16886 "$Rxx32 ^= xor($Rss32,$Rtt32)",
16887 tc_3c10f809, TypeS_3op>, Enc_88c16c {
16888 let Inst{7-5} = 0b000;
16889 let Inst{13-13} = 0b0;
16890 let Inst{31-21} = 0b11001010100;
16891 let prefersSlot3 = 1;
16892 let Constraints = "$Rxx32 = $Rxx32in";
16893 }
16894 def M5_vdmacbsu : HInst<
16895 (outs DoubleRegs:$Rxx32),
16896 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16897 "$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
16898 tc_8cb685d9, TypeM>, Enc_88c16c, Requires<[HasV5T]> {
16899 let Inst{7-5} = 0b001;
16900 let Inst{13-13} = 0b0;
16901 let Inst{31-21} = 0b11101010001;
16902 let prefersSlot3 = 1;
16903 let Defs = [USR_OVF];
16904 let Constraints = "$Rxx32 = $Rxx32in";
16905 }
16906 def M5_vdmpybsu : HInst<
16907 (outs DoubleRegs:$Rdd32),
16908 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16909 "$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
16910 tc_8c8041e6, TypeM>, Enc_a56825, Requires<[HasV5T]> {
16911 let Inst{7-5} = 0b001;
16912 let Inst{13-13} = 0b0;
16913 let Inst{31-21} = 0b11101000101;
16914 let prefersSlot3 = 1;
16915 let Defs = [USR_OVF];
16916 }
16917 def M5_vmacbsu : HInst<
16918 (outs DoubleRegs:$Rxx32),
16919 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16920 "$Rxx32 += vmpybsu($Rs32,$Rt32)",
16921 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16922 let Inst{7-5} = 0b001;
16923 let Inst{13-13} = 0b0;
16924 let Inst{31-21} = 0b11100111110;
16925 let prefersSlot3 = 1;
16926 let Constraints = "$Rxx32 = $Rxx32in";
16927 }
16928 def M5_vmacbuu : HInst<
16929 (outs DoubleRegs:$Rxx32),
16930 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16931 "$Rxx32 += vmpybu($Rs32,$Rt32)",
16932 tc_8cb685d9, TypeM>, Enc_61f0b0 {
16933 let Inst{7-5} = 0b001;
16934 let Inst{13-13} = 0b0;
16935 let Inst{31-21} = 0b11100111100;
16936 let prefersSlot3 = 1;
16937 let Constraints = "$Rxx32 = $Rxx32in";
16938 }
16939 def M5_vmpybsu : HInst<
16940 (outs DoubleRegs:$Rdd32),
16941 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16942 "$Rdd32 = vmpybsu($Rs32,$Rt32)",
16943 tc_8c8041e6, TypeM>, Enc_be32a5 {
16944 let Inst{7-5} = 0b001;
16945 let Inst{13-13} = 0b0;
16946 let Inst{31-21} = 0b11100101010;
16947 let prefersSlot3 = 1;
16948 }
16949 def M5_vmpybuu : HInst<
16950 (outs DoubleRegs:$Rdd32),
16951 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16952 "$Rdd32 = vmpybu($Rs32,$Rt32)",
16953 tc_8c8041e6, TypeM>, Enc_be32a5 {
16954 let Inst{7-5} = 0b001;
16955 let Inst{13-13} = 0b0;
16956 let Inst{31-21} = 0b11100101100;
16957 let prefersSlot3 = 1;
16958 }
16959 def M5_vrmacbsu : HInst<
16960 (outs DoubleRegs:$Rxx32),
16961 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16962 "$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
16963 tc_8cb685d9, TypeM>, Enc_88c16c {
16964 let Inst{7-5} = 0b001;
16965 let Inst{13-13} = 0b0;
16966 let Inst{31-21} = 0b11101010110;
16967 let prefersSlot3 = 1;
16968 let Constraints = "$Rxx32 = $Rxx32in";
16969 }
16970 def M5_vrmacbuu : HInst<
16971 (outs DoubleRegs:$Rxx32),
16972 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16973 "$Rxx32 += vrmpybu($Rss32,$Rtt32)",
16974 tc_8cb685d9, TypeM>, Enc_88c16c {
16975 let Inst{7-5} = 0b001;
16976 let Inst{13-13} = 0b0;
16977 let Inst{31-21} = 0b11101010100;
16978 let prefersSlot3 = 1;
16979 let Constraints = "$Rxx32 = $Rxx32in";
16980 }
16981 def M5_vrmpybsu : HInst<
16982 (outs DoubleRegs:$Rdd32),
16983 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16984 "$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
16985 tc_8c8041e6, TypeM>, Enc_a56825 {
16986 let Inst{7-5} = 0b001;
16987 let Inst{13-13} = 0b0;
16988 let Inst{31-21} = 0b11101000110;
16989 let prefersSlot3 = 1;
16990 }
16991 def M5_vrmpybuu : HInst<
16992 (outs DoubleRegs:$Rdd32),
16993 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16994 "$Rdd32 = vrmpybu($Rss32,$Rtt32)",
16995 tc_8c8041e6, TypeM>, Enc_a56825 {
16996 let Inst{7-5} = 0b001;
16997 let Inst{13-13} = 0b0;
16998 let Inst{31-21} = 0b11101000100;
16999 let prefersSlot3 = 1;
17000 }
17001 def M6_vabsdiffb : HInst<
17002 (outs DoubleRegs:$Rdd32),
17003 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17004 "$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17005 tc_faab1248, TypeM>, Enc_ea23e4, Requires<[HasV62T]> {
17006 let Inst{7-5} = 0b000;
17007 let Inst{13-13} = 0b0;
17008 let Inst{31-21} = 0b11101000111;
17009 let prefersSlot3 = 1;
17010 }
17011 def M6_vabsdiffub : HInst<
17012 (outs DoubleRegs:$Rdd32),
17013 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17014 "$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17015 tc_faab1248, TypeM>, Enc_ea23e4, Requires<[HasV62T]> {
17016 let Inst{7-5} = 0b000;
17017 let Inst{13-13} = 0b0;
17018 let Inst{31-21} = 0b11101000101;
17019 let prefersSlot3 = 1;
17020 }
17021 def PS_loadrbabs : HInst<
17022 (outs IntRegs:$Rd32),
17023 (ins u32_0Imm:$Ii),
17024 "$Rd32 = memb(#$Ii)",
17025 tc_70cabf66, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17026 let Inst{24-21} = 0b1000;
17027 let Inst{31-27} = 0b01001;
17028 let hasNewValue = 1;
17029 let opNewValue = 0;
17030 let addrMode = Absolute;
17031 let accessSize = ByteAccess;
17032 let mayLoad = 1;
17033 let isExtended = 1;
17034 let CextOpcode = "L2_loadrb";
17035 let BaseOpcode = "L4_loadrb_abs";
17036 let isPredicable = 1;
17037 let DecoderNamespace = "MustExtend";
17038 let isExtended = 1;
17039 let opExtendable = 1;
17040 let isExtentSigned = 0;
17041 let opExtentBits = 16;
17042 let opExtentAlign = 0;
17043 }
17044 def PS_loadrdabs : HInst<
17045 (outs DoubleRegs:$Rdd32),
17046 (ins u29_3Imm:$Ii),
17047 "$Rdd32 = memd(#$Ii)",
17048 tc_70cabf66, TypeV2LDST>, Enc_509701, AddrModeRel {
17049 let Inst{24-21} = 0b1110;
17050 let Inst{31-27} = 0b01001;
17051 let addrMode = Absolute;
17052 let accessSize = DoubleWordAccess;
17053 let mayLoad = 1;
17054 let isExtended = 1;
17055 let CextOpcode = "L2_loadrd";
17056 let BaseOpcode = "L4_loadrd_abs";
17057 let isPredicable = 1;
17058 let DecoderNamespace = "MustExtend";
17059 let isExtended = 1;
17060 let opExtendable = 1;
17061 let isExtentSigned = 0;
17062 let opExtentBits = 19;
17063 let opExtentAlign = 3;
17064 }
17065 def PS_loadrhabs : HInst<
17066 (outs IntRegs:$Rd32),
17067 (ins u31_1Imm:$Ii),
17068 "$Rd32 = memh(#$Ii)",
17069 tc_70cabf66, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17070 let Inst{24-21} = 0b1010;
17071 let Inst{31-27} = 0b01001;
17072 let hasNewValue = 1;
17073 let opNewValue = 0;
17074 let addrMode = Absolute;
17075 let accessSize = HalfWordAccess;
17076 let mayLoad = 1;
17077 let isExtended = 1;
17078 let CextOpcode = "L2_loadrh";
17079 let BaseOpcode = "L4_loadrh_abs";
17080 let isPredicable = 1;
17081 let DecoderNamespace = "MustExtend";
17082 let isExtended = 1;
17083 let opExtendable = 1;
17084 let isExtentSigned = 0;
17085 let opExtentBits = 17;
17086 let opExtentAlign = 1;
17087 }
17088 def PS_loadriabs : HInst<
17089 (outs IntRegs:$Rd32),
17090 (ins u30_2Imm:$Ii),
17091 "$Rd32 = memw(#$Ii)",
17092 tc_70cabf66, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17093 let Inst{24-21} = 0b1100;
17094 let Inst{31-27} = 0b01001;
17095 let hasNewValue = 1;
17096 let opNewValue = 0;
17097 let addrMode = Absolute;
17098 let accessSize = WordAccess;
17099 let mayLoad = 1;
17100 let isExtended = 1;
17101 let CextOpcode = "L2_loadri";
17102 let BaseOpcode = "L4_loadri_abs";
17103 let isPredicable = 1;
17104 let DecoderNamespace = "MustExtend";
17105 let isExtended = 1;
17106 let opExtendable = 1;
17107 let isExtentSigned = 0;
17108 let opExtentBits = 18;
17109 let opExtentAlign = 2;
17110 }
17111 def PS_loadrubabs : HInst<
17112 (outs IntRegs:$Rd32),
17113 (ins u32_0Imm:$Ii),
17114 "$Rd32 = memub(#$Ii)",
17115 tc_70cabf66, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17116 let Inst{24-21} = 0b1001;
17117 let Inst{31-27} = 0b01001;
17118 let hasNewValue = 1;
17119 let opNewValue = 0;
17120 let addrMode = Absolute;
17121 let accessSize = ByteAccess;
17122 let mayLoad = 1;
17123 let isExtended = 1;
17124 let CextOpcode = "L2_loadrub";
17125 let BaseOpcode = "L4_loadrub_abs";
17126 let isPredicable = 1;
17127 let DecoderNamespace = "MustExtend";
17128 let isExtended = 1;
17129 let opExtendable = 1;
17130 let isExtentSigned = 0;
17131 let opExtentBits = 16;
17132 let opExtentAlign = 0;
17133 }
17134 def PS_loadruhabs : HInst<
17135 (outs IntRegs:$Rd32),
17136 (ins u31_1Imm:$Ii),
17137 "$Rd32 = memuh(#$Ii)",
17138 tc_70cabf66, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17139 let Inst{24-21} = 0b1011;
17140 let Inst{31-27} = 0b01001;
17141 let hasNewValue = 1;
17142 let opNewValue = 0;
17143 let addrMode = Absolute;
17144 let accessSize = HalfWordAccess;
17145 let mayLoad = 1;
17146 let isExtended = 1;
17147 let CextOpcode = "L2_loadruh";
17148 let BaseOpcode = "L4_loadruh_abs";
17149 let isPredicable = 1;
17150 let DecoderNamespace = "MustExtend";
17151 let isExtended = 1;
17152 let opExtendable = 1;
17153 let isExtentSigned = 0;
17154 let opExtentBits = 17;
17155 let opExtentAlign = 1;
17156 }
17157 def PS_storerbabs : HInst<
17158 (outs),
17159 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
17160 "memb(#$Ii) = $Rt32",
17161 tc_c14739d5, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
17162 let Inst{24-21} = 0b0000;
17163 let Inst{31-27} = 0b01001;
17164 let addrMode = Absolute;
17165 let accessSize = ByteAccess;
17166 let isExtended = 1;
17167 let mayStore = 1;
17168 let CextOpcode = "S2_storerb";
17169 let BaseOpcode = "S2_storerbabs";
17170 let isPredicable = 1;
17171 let isNVStorable = 1;
17172 let DecoderNamespace = "MustExtend";
17173 let isExtended = 1;
17174 let opExtendable = 0;
17175 let isExtentSigned = 0;
17176 let opExtentBits = 16;
17177 let opExtentAlign = 0;
17178 }
17179 def PS_storerbnewabs : HInst<
17180 (outs),
17181 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
17182 "memb(#$Ii) = $Nt8.new",
17183 tc_9e86015f, TypeV2LDST>, Enc_ad1831, AddrModeRel {
17184 let Inst{12-11} = 0b00;
17185 let Inst{24-21} = 0b0101;
17186 let Inst{31-27} = 0b01001;
17187 let addrMode = Absolute;
17188 let accessSize = ByteAccess;
17189 let isNVStore = 1;
17190 let isNewValue = 1;
17191 let isExtended = 1;
17192 let mayStore = 1;
17193 let CextOpcode = "S2_storerb";
17194 let BaseOpcode = "S2_storerbabs";
17195 let isPredicable = 1;
17196 let DecoderNamespace = "MustExtend";
17197 let isExtended = 1;
17198 let opExtendable = 0;
17199 let isExtentSigned = 0;
17200 let opExtentBits = 16;
17201 let opExtentAlign = 0;
17202 let opNewValue = 1;
17203 }
17204 def PS_storerdabs : HInst<
17205 (outs),
17206 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
17207 "memd(#$Ii) = $Rtt32",
17208 tc_c14739d5, TypeV2LDST>, Enc_5c124a, AddrModeRel {
17209 let Inst{24-21} = 0b0110;
17210 let Inst{31-27} = 0b01001;
17211 let addrMode = Absolute;
17212 let accessSize = DoubleWordAccess;
17213 let isExtended = 1;
17214 let mayStore = 1;
17215 let CextOpcode = "S2_storerd";
17216 let BaseOpcode = "S2_storerdabs";
17217 let isPredicable = 1;
17218 let DecoderNamespace = "MustExtend";
17219 let isExtended = 1;
17220 let opExtendable = 0;
17221 let isExtentSigned = 0;
17222 let opExtentBits = 19;
17223 let opExtentAlign = 3;
17224 }
17225 def PS_storerfabs : HInst<
17226 (outs),
17227 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
17228 "memh(#$Ii) = $Rt32.h",
17229 tc_c14739d5, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17230 let Inst{24-21} = 0b0011;
17231 let Inst{31-27} = 0b01001;
17232 let addrMode = Absolute;
17233 let accessSize = HalfWordAccess;
17234 let isExtended = 1;
17235 let mayStore = 1;
17236 let CextOpcode = "S2_storerf";
17237 let BaseOpcode = "S2_storerfabs";
17238 let isPredicable = 1;
17239 let DecoderNamespace = "MustExtend";
17240 let isExtended = 1;
17241 let opExtendable = 0;
17242 let isExtentSigned = 0;
17243 let opExtentBits = 17;
17244 let opExtentAlign = 1;
17245 }
17246 def PS_storerhabs : HInst<
17247 (outs),
17248 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
17249 "memh(#$Ii) = $Rt32",
17250 tc_c14739d5, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17251 let Inst{24-21} = 0b0010;
17252 let Inst{31-27} = 0b01001;
17253 let addrMode = Absolute;
17254 let accessSize = HalfWordAccess;
17255 let isExtended = 1;
17256 let mayStore = 1;
17257 let CextOpcode = "S2_storerh";
17258 let BaseOpcode = "S2_storerhabs";
17259 let isPredicable = 1;
17260 let isNVStorable = 1;
17261 let DecoderNamespace = "MustExtend";
17262 let isExtended = 1;
17263 let opExtendable = 0;
17264 let isExtentSigned = 0;
17265 let opExtentBits = 17;
17266 let opExtentAlign = 1;
17267 }
17268 def PS_storerhnewabs : HInst<
17269 (outs),
17270 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
17271 "memh(#$Ii) = $Nt8.new",
17272 tc_9e86015f, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
17273 let Inst{12-11} = 0b01;
17274 let Inst{24-21} = 0b0101;
17275 let Inst{31-27} = 0b01001;
17276 let addrMode = Absolute;
17277 let accessSize = HalfWordAccess;
17278 let isNVStore = 1;
17279 let isNewValue = 1;
17280 let isExtended = 1;
17281 let mayStore = 1;
17282 let CextOpcode = "S2_storerh";
17283 let BaseOpcode = "S2_storerhabs";
17284 let isPredicable = 1;
17285 let DecoderNamespace = "MustExtend";
17286 let isExtended = 1;
17287 let opExtendable = 0;
17288 let isExtentSigned = 0;
17289 let opExtentBits = 17;
17290 let opExtentAlign = 1;
17291 let opNewValue = 1;
17292 }
17293 def PS_storeriabs : HInst<
17294 (outs),
17295 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
17296 "memw(#$Ii) = $Rt32",
17297 tc_c14739d5, TypeV2LDST>, Enc_541f26, AddrModeRel {
17298 let Inst{24-21} = 0b0100;
17299 let Inst{31-27} = 0b01001;
17300 let addrMode = Absolute;
17301 let accessSize = WordAccess;
17302 let isExtended = 1;
17303 let mayStore = 1;
17304 let CextOpcode = "S2_storeri";
17305 let BaseOpcode = "S2_storeriabs";
17306 let isPredicable = 1;
17307 let isNVStorable = 1;
17308 let DecoderNamespace = "MustExtend";
17309 let isExtended = 1;
17310 let opExtendable = 0;
17311 let isExtentSigned = 0;
17312 let opExtentBits = 18;
17313 let opExtentAlign = 2;
17314 }
17315 def PS_storerinewabs : HInst<
17316 (outs),
17317 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
17318 "memw(#$Ii) = $Nt8.new",
17319 tc_9e86015f, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
17320 let Inst{12-11} = 0b10;
17321 let Inst{24-21} = 0b0101;
17322 let Inst{31-27} = 0b01001;
17323 let addrMode = Absolute;
17324 let accessSize = WordAccess;
17325 let isNVStore = 1;
17326 let isNewValue = 1;
17327 let isExtended = 1;
17328 let mayStore = 1;
17329 let CextOpcode = "S2_storeri";
17330 let BaseOpcode = "S2_storeriabs";
17331 let isPredicable = 1;
17332 let DecoderNamespace = "MustExtend";
17333 let isExtended = 1;
17334 let opExtendable = 0;
17335 let isExtentSigned = 0;
17336 let opExtentBits = 18;
17337 let opExtentAlign = 2;
17338 let opNewValue = 1;
17339 }
17340 def S2_addasl_rrri : HInst<
17341 (outs IntRegs:$Rd32),
17342 (ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
17343 "$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
17344 tc_090485bb, TypeS_3op>, Enc_47ef61 {
17345 let Inst{13-13} = 0b0;
17346 let Inst{31-21} = 0b11000100000;
17347 let hasNewValue = 1;
17348 let opNewValue = 0;
17349 let prefersSlot3 = 1;
17350 }
17351 def S2_allocframe : HInst<
17352 (outs),
17353 (ins u11_3Imm:$Ii),
17354 "allocframe(#$Ii)",
17355 tc_0cb867f2, TypeST>, Enc_22c845 {
17356 let Inst{13-11} = 0b000;
17357 let Inst{31-21} = 0b10100000100;
17358 let Inst{20-16} = 0b11101;
17359 let addrMode = BaseImmOffset;
17360 let accessSize = DoubleWordAccess;
17361 let mayStore = 1;
17362 let Uses = [R29, R30, R31];
17363 let Defs = [R29, R30];
17364 }
17365 def S2_asl_i_p : HInst<
17366 (outs DoubleRegs:$Rdd32),
17367 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17368 "$Rdd32 = asl($Rss32,#$Ii)",
17369 tc_9c18c9a5, TypeS_2op>, Enc_5eac98 {
17370 let Inst{7-5} = 0b010;
17371 let Inst{31-21} = 0b10000000000;
17372 }
17373 def S2_asl_i_p_acc : HInst<
17374 (outs DoubleRegs:$Rxx32),
17375 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17376 "$Rxx32 += asl($Rss32,#$Ii)",
17377 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
17378 let Inst{7-5} = 0b110;
17379 let Inst{31-21} = 0b10000010000;
17380 let prefersSlot3 = 1;
17381 let Constraints = "$Rxx32 = $Rxx32in";
17382 }
17383 def S2_asl_i_p_and : HInst<
17384 (outs DoubleRegs:$Rxx32),
17385 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17386 "$Rxx32 &= asl($Rss32,#$Ii)",
17387 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
17388 let Inst{7-5} = 0b010;
17389 let Inst{31-21} = 0b10000010010;
17390 let prefersSlot3 = 1;
17391 let Constraints = "$Rxx32 = $Rxx32in";
17392 }
17393 def S2_asl_i_p_nac : HInst<
17394 (outs DoubleRegs:$Rxx32),
17395 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17396 "$Rxx32 -= asl($Rss32,#$Ii)",
17397 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
17398 let Inst{7-5} = 0b010;
17399 let Inst{31-21} = 0b10000010000;
17400 let prefersSlot3 = 1;
17401 let Constraints = "$Rxx32 = $Rxx32in";
17402 }
17403 def S2_asl_i_p_or : HInst<
17404 (outs DoubleRegs:$Rxx32),
17405 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17406 "$Rxx32 |= asl($Rss32,#$Ii)",
17407 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
17408 let Inst{7-5} = 0b110;
17409 let Inst{31-21} = 0b10000010010;
17410 let prefersSlot3 = 1;
17411 let Constraints = "$Rxx32 = $Rxx32in";
17412 }
17413 def S2_asl_i_p_xacc : HInst<
17414 (outs DoubleRegs:$Rxx32),
17415 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17416 "$Rxx32 ^= asl($Rss32,#$Ii)",
17417 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
17418 let Inst{7-5} = 0b010;
17419 let Inst{31-21} = 0b10000010100;
17420 let prefersSlot3 = 1;
17421 let Constraints = "$Rxx32 = $Rxx32in";
17422 }
17423 def S2_asl_i_r : HInst<
17424 (outs IntRegs:$Rd32),
17425 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17426 "$Rd32 = asl($Rs32,#$Ii)",
17427 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
17428 let Inst{7-5} = 0b010;
17429 let Inst{13-13} = 0b0;
17430 let Inst{31-21} = 0b10001100000;
17431 let hasNewValue = 1;
17432 let opNewValue = 0;
17433 }
17434 def S2_asl_i_r_acc : HInst<
17435 (outs IntRegs:$Rx32),
17436 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17437 "$Rx32 += asl($Rs32,#$Ii)",
17438 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
17439 let Inst{7-5} = 0b110;
17440 let Inst{13-13} = 0b0;
17441 let Inst{31-21} = 0b10001110000;
17442 let hasNewValue = 1;
17443 let opNewValue = 0;
17444 let prefersSlot3 = 1;
17445 let Constraints = "$Rx32 = $Rx32in";
17446 }
17447 def S2_asl_i_r_and : HInst<
17448 (outs IntRegs:$Rx32),
17449 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17450 "$Rx32 &= asl($Rs32,#$Ii)",
17451 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
17452 let Inst{7-5} = 0b010;
17453 let Inst{13-13} = 0b0;
17454 let Inst{31-21} = 0b10001110010;
17455 let hasNewValue = 1;
17456 let opNewValue = 0;
17457 let prefersSlot3 = 1;
17458 let Constraints = "$Rx32 = $Rx32in";
17459 }
17460 def S2_asl_i_r_nac : HInst<
17461 (outs IntRegs:$Rx32),
17462 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17463 "$Rx32 -= asl($Rs32,#$Ii)",
17464 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
17465 let Inst{7-5} = 0b010;
17466 let Inst{13-13} = 0b0;
17467 let Inst{31-21} = 0b10001110000;
17468 let hasNewValue = 1;
17469 let opNewValue = 0;
17470 let prefersSlot3 = 1;
17471 let Constraints = "$Rx32 = $Rx32in";
17472 }
17473 def S2_asl_i_r_or : HInst<
17474 (outs IntRegs:$Rx32),
17475 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17476 "$Rx32 |= asl($Rs32,#$Ii)",
17477 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
17478 let Inst{7-5} = 0b110;
17479 let Inst{13-13} = 0b0;
17480 let Inst{31-21} = 0b10001110010;
17481 let hasNewValue = 1;
17482 let opNewValue = 0;
17483 let prefersSlot3 = 1;
17484 let Constraints = "$Rx32 = $Rx32in";
17485 }
17486 def S2_asl_i_r_sat : HInst<
17487 (outs IntRegs:$Rd32),
17488 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17489 "$Rd32 = asl($Rs32,#$Ii):sat",
17490 tc_47ab9233, TypeS_2op>, Enc_a05677 {
17491 let Inst{7-5} = 0b010;
17492 let Inst{13-13} = 0b0;
17493 let Inst{31-21} = 0b10001100010;
17494 let hasNewValue = 1;
17495 let opNewValue = 0;
17496 let prefersSlot3 = 1;
17497 let Defs = [USR_OVF];
17498 }
17499 def S2_asl_i_r_xacc : HInst<
17500 (outs IntRegs:$Rx32),
17501 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17502 "$Rx32 ^= asl($Rs32,#$Ii)",
17503 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
17504 let Inst{7-5} = 0b010;
17505 let Inst{13-13} = 0b0;
17506 let Inst{31-21} = 0b10001110100;
17507 let hasNewValue = 1;
17508 let opNewValue = 0;
17509 let prefersSlot3 = 1;
17510 let Constraints = "$Rx32 = $Rx32in";
17511 }
17512 def S2_asl_i_vh : HInst<
17513 (outs DoubleRegs:$Rdd32),
17514 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
17515 "$Rdd32 = vaslh($Rss32,#$Ii)",
17516 tc_9c18c9a5, TypeS_2op>, Enc_12b6e9 {
17517 let Inst{7-5} = 0b010;
17518 let Inst{13-12} = 0b00;
17519 let Inst{31-21} = 0b10000000100;
17520 }
17521 def S2_asl_i_vw : HInst<
17522 (outs DoubleRegs:$Rdd32),
17523 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
17524 "$Rdd32 = vaslw($Rss32,#$Ii)",
17525 tc_9c18c9a5, TypeS_2op>, Enc_7e5a82 {
17526 let Inst{7-5} = 0b010;
17527 let Inst{13-13} = 0b0;
17528 let Inst{31-21} = 0b10000000010;
17529 }
17530 def S2_asl_r_p : HInst<
17531 (outs DoubleRegs:$Rdd32),
17532 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17533 "$Rdd32 = asl($Rss32,$Rt32)",
17534 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
17535 let Inst{7-5} = 0b100;
17536 let Inst{13-13} = 0b0;
17537 let Inst{31-21} = 0b11000011100;
17538 }
17539 def S2_asl_r_p_acc : HInst<
17540 (outs DoubleRegs:$Rxx32),
17541 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17542 "$Rxx32 += asl($Rss32,$Rt32)",
17543 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
17544 let Inst{7-5} = 0b100;
17545 let Inst{13-13} = 0b0;
17546 let Inst{31-21} = 0b11001011110;
17547 let prefersSlot3 = 1;
17548 let Constraints = "$Rxx32 = $Rxx32in";
17549 }
17550 def S2_asl_r_p_and : HInst<
17551 (outs DoubleRegs:$Rxx32),
17552 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17553 "$Rxx32 &= asl($Rss32,$Rt32)",
17554 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17555 let Inst{7-5} = 0b100;
17556 let Inst{13-13} = 0b0;
17557 let Inst{31-21} = 0b11001011010;
17558 let prefersSlot3 = 1;
17559 let Constraints = "$Rxx32 = $Rxx32in";
17560 }
17561 def S2_asl_r_p_nac : HInst<
17562 (outs DoubleRegs:$Rxx32),
17563 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17564 "$Rxx32 -= asl($Rss32,$Rt32)",
17565 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
17566 let Inst{7-5} = 0b100;
17567 let Inst{13-13} = 0b0;
17568 let Inst{31-21} = 0b11001011100;
17569 let prefersSlot3 = 1;
17570 let Constraints = "$Rxx32 = $Rxx32in";
17571 }
17572 def S2_asl_r_p_or : HInst<
17573 (outs DoubleRegs:$Rxx32),
17574 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17575 "$Rxx32 |= asl($Rss32,$Rt32)",
17576 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17577 let Inst{7-5} = 0b100;
17578 let Inst{13-13} = 0b0;
17579 let Inst{31-21} = 0b11001011000;
17580 let prefersSlot3 = 1;
17581 let Constraints = "$Rxx32 = $Rxx32in";
17582 }
17583 def S2_asl_r_p_xor : HInst<
17584 (outs DoubleRegs:$Rxx32),
17585 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17586 "$Rxx32 ^= asl($Rss32,$Rt32)",
17587 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17588 let Inst{7-5} = 0b100;
17589 let Inst{13-13} = 0b0;
17590 let Inst{31-21} = 0b11001011011;
17591 let prefersSlot3 = 1;
17592 let Constraints = "$Rxx32 = $Rxx32in";
17593 }
17594 def S2_asl_r_r : HInst<
17595 (outs IntRegs:$Rd32),
17596 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17597 "$Rd32 = asl($Rs32,$Rt32)",
17598 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
17599 let Inst{7-5} = 0b100;
17600 let Inst{13-13} = 0b0;
17601 let Inst{31-21} = 0b11000110010;
17602 let hasNewValue = 1;
17603 let opNewValue = 0;
17604 }
17605 def S2_asl_r_r_acc : HInst<
17606 (outs IntRegs:$Rx32),
17607 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17608 "$Rx32 += asl($Rs32,$Rt32)",
17609 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
17610 let Inst{7-5} = 0b100;
17611 let Inst{13-13} = 0b0;
17612 let Inst{31-21} = 0b11001100110;
17613 let hasNewValue = 1;
17614 let opNewValue = 0;
17615 let prefersSlot3 = 1;
17616 let Constraints = "$Rx32 = $Rx32in";
17617 }
17618 def S2_asl_r_r_and : HInst<
17619 (outs IntRegs:$Rx32),
17620 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17621 "$Rx32 &= asl($Rs32,$Rt32)",
17622 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
17623 let Inst{7-5} = 0b100;
17624 let Inst{13-13} = 0b0;
17625 let Inst{31-21} = 0b11001100010;
17626 let hasNewValue = 1;
17627 let opNewValue = 0;
17628 let prefersSlot3 = 1;
17629 let Constraints = "$Rx32 = $Rx32in";
17630 }
17631 def S2_asl_r_r_nac : HInst<
17632 (outs IntRegs:$Rx32),
17633 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17634 "$Rx32 -= asl($Rs32,$Rt32)",
17635 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
17636 let Inst{7-5} = 0b100;
17637 let Inst{13-13} = 0b0;
17638 let Inst{31-21} = 0b11001100100;
17639 let hasNewValue = 1;
17640 let opNewValue = 0;
17641 let prefersSlot3 = 1;
17642 let Constraints = "$Rx32 = $Rx32in";
17643 }
17644 def S2_asl_r_r_or : HInst<
17645 (outs IntRegs:$Rx32),
17646 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17647 "$Rx32 |= asl($Rs32,$Rt32)",
17648 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
17649 let Inst{7-5} = 0b100;
17650 let Inst{13-13} = 0b0;
17651 let Inst{31-21} = 0b11001100000;
17652 let hasNewValue = 1;
17653 let opNewValue = 0;
17654 let prefersSlot3 = 1;
17655 let Constraints = "$Rx32 = $Rx32in";
17656 }
17657 def S2_asl_r_r_sat : HInst<
17658 (outs IntRegs:$Rd32),
17659 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17660 "$Rd32 = asl($Rs32,$Rt32):sat",
17661 tc_47ab9233, TypeS_3op>, Enc_5ab2be {
17662 let Inst{7-5} = 0b100;
17663 let Inst{13-13} = 0b0;
17664 let Inst{31-21} = 0b11000110000;
17665 let hasNewValue = 1;
17666 let opNewValue = 0;
17667 let prefersSlot3 = 1;
17668 let Defs = [USR_OVF];
17669 }
17670 def S2_asl_r_vh : HInst<
17671 (outs DoubleRegs:$Rdd32),
17672 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17673 "$Rdd32 = vaslh($Rss32,$Rt32)",
17674 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
17675 let Inst{7-5} = 0b100;
17676 let Inst{13-13} = 0b0;
17677 let Inst{31-21} = 0b11000011010;
17678 }
17679 def S2_asl_r_vw : HInst<
17680 (outs DoubleRegs:$Rdd32),
17681 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17682 "$Rdd32 = vaslw($Rss32,$Rt32)",
17683 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
17684 let Inst{7-5} = 0b100;
17685 let Inst{13-13} = 0b0;
17686 let Inst{31-21} = 0b11000011000;
17687 }
17688 def S2_asr_i_p : HInst<
17689 (outs DoubleRegs:$Rdd32),
17690 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17691 "$Rdd32 = asr($Rss32,#$Ii)",
17692 tc_9c18c9a5, TypeS_2op>, Enc_5eac98 {
17693 let Inst{7-5} = 0b000;
17694 let Inst{31-21} = 0b10000000000;
17695 }
17696 def S2_asr_i_p_acc : HInst<
17697 (outs DoubleRegs:$Rxx32),
17698 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17699 "$Rxx32 += asr($Rss32,#$Ii)",
17700 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
17701 let Inst{7-5} = 0b100;
17702 let Inst{31-21} = 0b10000010000;
17703 let prefersSlot3 = 1;
17704 let Constraints = "$Rxx32 = $Rxx32in";
17705 }
17706 def S2_asr_i_p_and : HInst<
17707 (outs DoubleRegs:$Rxx32),
17708 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17709 "$Rxx32 &= asr($Rss32,#$Ii)",
17710 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
17711 let Inst{7-5} = 0b000;
17712 let Inst{31-21} = 0b10000010010;
17713 let prefersSlot3 = 1;
17714 let Constraints = "$Rxx32 = $Rxx32in";
17715 }
17716 def S2_asr_i_p_nac : HInst<
17717 (outs DoubleRegs:$Rxx32),
17718 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17719 "$Rxx32 -= asr($Rss32,#$Ii)",
17720 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
17721 let Inst{7-5} = 0b000;
17722 let Inst{31-21} = 0b10000010000;
17723 let prefersSlot3 = 1;
17724 let Constraints = "$Rxx32 = $Rxx32in";
17725 }
17726 def S2_asr_i_p_or : HInst<
17727 (outs DoubleRegs:$Rxx32),
17728 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17729 "$Rxx32 |= asr($Rss32,#$Ii)",
17730 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
17731 let Inst{7-5} = 0b100;
17732 let Inst{31-21} = 0b10000010010;
17733 let prefersSlot3 = 1;
17734 let Constraints = "$Rxx32 = $Rxx32in";
17735 }
17736 def S2_asr_i_p_rnd : HInst<
17737 (outs DoubleRegs:$Rdd32),
17738 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17739 "$Rdd32 = asr($Rss32,#$Ii):rnd",
17740 tc_63cd9d2d, TypeS_2op>, Enc_5eac98, Requires<[HasV5T]> {
17741 let Inst{7-5} = 0b111;
17742 let Inst{31-21} = 0b10000000110;
17743 let prefersSlot3 = 1;
17744 }
17745 def S2_asr_i_p_rnd_goodsyntax : HInst<
17746 (outs DoubleRegs:$Rdd32),
17747 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17748 "$Rdd32 = asrrnd($Rss32,#$Ii)",
17749 tc_63cd9d2d, TypeS_2op>, Requires<[HasV5T]> {
17750 let isPseudo = 1;
17751 }
17752 def S2_asr_i_r : HInst<
17753 (outs IntRegs:$Rd32),
17754 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17755 "$Rd32 = asr($Rs32,#$Ii)",
17756 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
17757 let Inst{7-5} = 0b000;
17758 let Inst{13-13} = 0b0;
17759 let Inst{31-21} = 0b10001100000;
17760 let hasNewValue = 1;
17761 let opNewValue = 0;
17762 }
17763 def S2_asr_i_r_acc : HInst<
17764 (outs IntRegs:$Rx32),
17765 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17766 "$Rx32 += asr($Rs32,#$Ii)",
17767 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
17768 let Inst{7-5} = 0b100;
17769 let Inst{13-13} = 0b0;
17770 let Inst{31-21} = 0b10001110000;
17771 let hasNewValue = 1;
17772 let opNewValue = 0;
17773 let prefersSlot3 = 1;
17774 let Constraints = "$Rx32 = $Rx32in";
17775 }
17776 def S2_asr_i_r_and : HInst<
17777 (outs IntRegs:$Rx32),
17778 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17779 "$Rx32 &= asr($Rs32,#$Ii)",
17780 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
17781 let Inst{7-5} = 0b000;
17782 let Inst{13-13} = 0b0;
17783 let Inst{31-21} = 0b10001110010;
17784 let hasNewValue = 1;
17785 let opNewValue = 0;
17786 let prefersSlot3 = 1;
17787 let Constraints = "$Rx32 = $Rx32in";
17788 }
17789 def S2_asr_i_r_nac : HInst<
17790 (outs IntRegs:$Rx32),
17791 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17792 "$Rx32 -= asr($Rs32,#$Ii)",
17793 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
17794 let Inst{7-5} = 0b000;
17795 let Inst{13-13} = 0b0;
17796 let Inst{31-21} = 0b10001110000;
17797 let hasNewValue = 1;
17798 let opNewValue = 0;
17799 let prefersSlot3 = 1;
17800 let Constraints = "$Rx32 = $Rx32in";
17801 }
17802 def S2_asr_i_r_or : HInst<
17803 (outs IntRegs:$Rx32),
17804 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17805 "$Rx32 |= asr($Rs32,#$Ii)",
17806 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
17807 let Inst{7-5} = 0b100;
17808 let Inst{13-13} = 0b0;
17809 let Inst{31-21} = 0b10001110010;
17810 let hasNewValue = 1;
17811 let opNewValue = 0;
17812 let prefersSlot3 = 1;
17813 let Constraints = "$Rx32 = $Rx32in";
17814 }
17815 def S2_asr_i_r_rnd : HInst<
17816 (outs IntRegs:$Rd32),
17817 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17818 "$Rd32 = asr($Rs32,#$Ii):rnd",
17819 tc_63cd9d2d, TypeS_2op>, Enc_a05677 {
17820 let Inst{7-5} = 0b000;
17821 let Inst{13-13} = 0b0;
17822 let Inst{31-21} = 0b10001100010;
17823 let hasNewValue = 1;
17824 let opNewValue = 0;
17825 let prefersSlot3 = 1;
17826 }
17827 def S2_asr_i_r_rnd_goodsyntax : HInst<
17828 (outs IntRegs:$Rd32),
17829 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17830 "$Rd32 = asrrnd($Rs32,#$Ii)",
17831 tc_63cd9d2d, TypeS_2op> {
17832 let hasNewValue = 1;
17833 let opNewValue = 0;
17834 let isPseudo = 1;
17835 }
17836 def S2_asr_i_svw_trun : HInst<
17837 (outs IntRegs:$Rd32),
17838 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
17839 "$Rd32 = vasrw($Rss32,#$Ii)",
17840 tc_7ca2ea10, TypeS_2op>, Enc_8dec2e {
17841 let Inst{7-5} = 0b010;
17842 let Inst{13-13} = 0b0;
17843 let Inst{31-21} = 0b10001000110;
17844 let hasNewValue = 1;
17845 let opNewValue = 0;
17846 let prefersSlot3 = 1;
17847 }
17848 def S2_asr_i_vh : HInst<
17849 (outs DoubleRegs:$Rdd32),
17850 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
17851 "$Rdd32 = vasrh($Rss32,#$Ii)",
17852 tc_9c18c9a5, TypeS_2op>, Enc_12b6e9 {
17853 let Inst{7-5} = 0b000;
17854 let Inst{13-12} = 0b00;
17855 let Inst{31-21} = 0b10000000100;
17856 }
17857 def S2_asr_i_vw : HInst<
17858 (outs DoubleRegs:$Rdd32),
17859 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
17860 "$Rdd32 = vasrw($Rss32,#$Ii)",
17861 tc_9c18c9a5, TypeS_2op>, Enc_7e5a82 {
17862 let Inst{7-5} = 0b000;
17863 let Inst{13-13} = 0b0;
17864 let Inst{31-21} = 0b10000000010;
17865 }
17866 def S2_asr_r_p : HInst<
17867 (outs DoubleRegs:$Rdd32),
17868 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17869 "$Rdd32 = asr($Rss32,$Rt32)",
17870 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
17871 let Inst{7-5} = 0b000;
17872 let Inst{13-13} = 0b0;
17873 let Inst{31-21} = 0b11000011100;
17874 }
17875 def S2_asr_r_p_acc : HInst<
17876 (outs DoubleRegs:$Rxx32),
17877 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17878 "$Rxx32 += asr($Rss32,$Rt32)",
17879 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
17880 let Inst{7-5} = 0b000;
17881 let Inst{13-13} = 0b0;
17882 let Inst{31-21} = 0b11001011110;
17883 let prefersSlot3 = 1;
17884 let Constraints = "$Rxx32 = $Rxx32in";
17885 }
17886 def S2_asr_r_p_and : HInst<
17887 (outs DoubleRegs:$Rxx32),
17888 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17889 "$Rxx32 &= asr($Rss32,$Rt32)",
17890 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17891 let Inst{7-5} = 0b000;
17892 let Inst{13-13} = 0b0;
17893 let Inst{31-21} = 0b11001011010;
17894 let prefersSlot3 = 1;
17895 let Constraints = "$Rxx32 = $Rxx32in";
17896 }
17897 def S2_asr_r_p_nac : HInst<
17898 (outs DoubleRegs:$Rxx32),
17899 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17900 "$Rxx32 -= asr($Rss32,$Rt32)",
17901 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
17902 let Inst{7-5} = 0b000;
17903 let Inst{13-13} = 0b0;
17904 let Inst{31-21} = 0b11001011100;
17905 let prefersSlot3 = 1;
17906 let Constraints = "$Rxx32 = $Rxx32in";
17907 }
17908 def S2_asr_r_p_or : HInst<
17909 (outs DoubleRegs:$Rxx32),
17910 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17911 "$Rxx32 |= asr($Rss32,$Rt32)",
17912 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17913 let Inst{7-5} = 0b000;
17914 let Inst{13-13} = 0b0;
17915 let Inst{31-21} = 0b11001011000;
17916 let prefersSlot3 = 1;
17917 let Constraints = "$Rxx32 = $Rxx32in";
17918 }
17919 def S2_asr_r_p_xor : HInst<
17920 (outs DoubleRegs:$Rxx32),
17921 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
17922 "$Rxx32 ^= asr($Rss32,$Rt32)",
17923 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
17924 let Inst{7-5} = 0b000;
17925 let Inst{13-13} = 0b0;
17926 let Inst{31-21} = 0b11001011011;
17927 let prefersSlot3 = 1;
17928 let Constraints = "$Rxx32 = $Rxx32in";
17929 }
17930 def S2_asr_r_r : HInst<
17931 (outs IntRegs:$Rd32),
17932 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17933 "$Rd32 = asr($Rs32,$Rt32)",
17934 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
17935 let Inst{7-5} = 0b000;
17936 let Inst{13-13} = 0b0;
17937 let Inst{31-21} = 0b11000110010;
17938 let hasNewValue = 1;
17939 let opNewValue = 0;
17940 }
17941 def S2_asr_r_r_acc : HInst<
17942 (outs IntRegs:$Rx32),
17943 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17944 "$Rx32 += asr($Rs32,$Rt32)",
17945 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
17946 let Inst{7-5} = 0b000;
17947 let Inst{13-13} = 0b0;
17948 let Inst{31-21} = 0b11001100110;
17949 let hasNewValue = 1;
17950 let opNewValue = 0;
17951 let prefersSlot3 = 1;
17952 let Constraints = "$Rx32 = $Rx32in";
17953 }
17954 def S2_asr_r_r_and : HInst<
17955 (outs IntRegs:$Rx32),
17956 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17957 "$Rx32 &= asr($Rs32,$Rt32)",
17958 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
17959 let Inst{7-5} = 0b000;
17960 let Inst{13-13} = 0b0;
17961 let Inst{31-21} = 0b11001100010;
17962 let hasNewValue = 1;
17963 let opNewValue = 0;
17964 let prefersSlot3 = 1;
17965 let Constraints = "$Rx32 = $Rx32in";
17966 }
17967 def S2_asr_r_r_nac : HInst<
17968 (outs IntRegs:$Rx32),
17969 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17970 "$Rx32 -= asr($Rs32,$Rt32)",
17971 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
17972 let Inst{7-5} = 0b000;
17973 let Inst{13-13} = 0b0;
17974 let Inst{31-21} = 0b11001100100;
17975 let hasNewValue = 1;
17976 let opNewValue = 0;
17977 let prefersSlot3 = 1;
17978 let Constraints = "$Rx32 = $Rx32in";
17979 }
17980 def S2_asr_r_r_or : HInst<
17981 (outs IntRegs:$Rx32),
17982 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17983 "$Rx32 |= asr($Rs32,$Rt32)",
17984 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
17985 let Inst{7-5} = 0b000;
17986 let Inst{13-13} = 0b0;
17987 let Inst{31-21} = 0b11001100000;
17988 let hasNewValue = 1;
17989 let opNewValue = 0;
17990 let prefersSlot3 = 1;
17991 let Constraints = "$Rx32 = $Rx32in";
17992 }
17993 def S2_asr_r_r_sat : HInst<
17994 (outs IntRegs:$Rd32),
17995 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17996 "$Rd32 = asr($Rs32,$Rt32):sat",
17997 tc_47ab9233, TypeS_3op>, Enc_5ab2be {
17998 let Inst{7-5} = 0b000;
17999 let Inst{13-13} = 0b0;
18000 let Inst{31-21} = 0b11000110000;
18001 let hasNewValue = 1;
18002 let opNewValue = 0;
18003 let prefersSlot3 = 1;
18004 let Defs = [USR_OVF];
18005 }
18006 def S2_asr_r_svw_trun : HInst<
18007 (outs IntRegs:$Rd32),
18008 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18009 "$Rd32 = vasrw($Rss32,$Rt32)",
18010 tc_7ca2ea10, TypeS_3op>, Enc_3d5b28 {
18011 let Inst{7-5} = 0b010;
18012 let Inst{13-13} = 0b0;
18013 let Inst{31-21} = 0b11000101000;
18014 let hasNewValue = 1;
18015 let opNewValue = 0;
18016 let prefersSlot3 = 1;
18017 }
18018 def S2_asr_r_vh : HInst<
18019 (outs DoubleRegs:$Rdd32),
18020 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18021 "$Rdd32 = vasrh($Rss32,$Rt32)",
18022 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18023 let Inst{7-5} = 0b000;
18024 let Inst{13-13} = 0b0;
18025 let Inst{31-21} = 0b11000011010;
18026 }
18027 def S2_asr_r_vw : HInst<
18028 (outs DoubleRegs:$Rdd32),
18029 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18030 "$Rdd32 = vasrw($Rss32,$Rt32)",
18031 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18032 let Inst{7-5} = 0b000;
18033 let Inst{13-13} = 0b0;
18034 let Inst{31-21} = 0b11000011000;
18035 }
18036 def S2_brev : HInst<
18037 (outs IntRegs:$Rd32),
18038 (ins IntRegs:$Rs32),
18039 "$Rd32 = brev($Rs32)",
18040 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18041 let Inst{13-5} = 0b000000110;
18042 let Inst{31-21} = 0b10001100010;
18043 let hasNewValue = 1;
18044 let opNewValue = 0;
18045 let prefersSlot3 = 1;
18046 }
18047 def S2_brevp : HInst<
18048 (outs DoubleRegs:$Rdd32),
18049 (ins DoubleRegs:$Rss32),
18050 "$Rdd32 = brev($Rss32)",
18051 tc_ab1b5e74, TypeS_2op>, Enc_b9c5fb {
18052 let Inst{13-5} = 0b000000110;
18053 let Inst{31-21} = 0b10000000110;
18054 let prefersSlot3 = 1;
18055 }
18056 def S2_cabacdecbin : HInst<
18057 (outs DoubleRegs:$Rdd32),
18058 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18059 "$Rdd32 = decbin($Rss32,$Rtt32)",
18060 tc_5d806107, TypeS_3op>, Enc_a56825 {
18061 let Inst{7-5} = 0b110;
18062 let Inst{13-13} = 0b0;
18063 let Inst{31-21} = 0b11000001110;
18064 let isPredicateLate = 1;
18065 let prefersSlot3 = 1;
18066 let Defs = [P0];
18067 }
18068 def S2_cl0 : HInst<
18069 (outs IntRegs:$Rd32),
18070 (ins IntRegs:$Rs32),
18071 "$Rd32 = cl0($Rs32)",
18072 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18073 let Inst{13-5} = 0b000000101;
18074 let Inst{31-21} = 0b10001100000;
18075 let hasNewValue = 1;
18076 let opNewValue = 0;
18077 let prefersSlot3 = 1;
18078 }
18079 def S2_cl0p : HInst<
18080 (outs IntRegs:$Rd32),
18081 (ins DoubleRegs:$Rss32),
18082 "$Rd32 = cl0($Rss32)",
18083 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
18084 let Inst{13-5} = 0b000000010;
18085 let Inst{31-21} = 0b10001000010;
18086 let hasNewValue = 1;
18087 let opNewValue = 0;
18088 let prefersSlot3 = 1;
18089 }
18090 def S2_cl1 : HInst<
18091 (outs IntRegs:$Rd32),
18092 (ins IntRegs:$Rs32),
18093 "$Rd32 = cl1($Rs32)",
18094 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18095 let Inst{13-5} = 0b000000110;
18096 let Inst{31-21} = 0b10001100000;
18097 let hasNewValue = 1;
18098 let opNewValue = 0;
18099 let prefersSlot3 = 1;
18100 }
18101 def S2_cl1p : HInst<
18102 (outs IntRegs:$Rd32),
18103 (ins DoubleRegs:$Rss32),
18104 "$Rd32 = cl1($Rss32)",
18105 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
18106 let Inst{13-5} = 0b000000100;
18107 let Inst{31-21} = 0b10001000010;
18108 let hasNewValue = 1;
18109 let opNewValue = 0;
18110 let prefersSlot3 = 1;
18111 }
18112 def S2_clb : HInst<
18113 (outs IntRegs:$Rd32),
18114 (ins IntRegs:$Rs32),
18115 "$Rd32 = clb($Rs32)",
18116 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18117 let Inst{13-5} = 0b000000100;
18118 let Inst{31-21} = 0b10001100000;
18119 let hasNewValue = 1;
18120 let opNewValue = 0;
18121 let prefersSlot3 = 1;
18122 }
18123 def S2_clbnorm : HInst<
18124 (outs IntRegs:$Rd32),
18125 (ins IntRegs:$Rs32),
18126 "$Rd32 = normamt($Rs32)",
18127 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18128 let Inst{13-5} = 0b000000111;
18129 let Inst{31-21} = 0b10001100000;
18130 let hasNewValue = 1;
18131 let opNewValue = 0;
18132 let prefersSlot3 = 1;
18133 }
18134 def S2_clbp : HInst<
18135 (outs IntRegs:$Rd32),
18136 (ins DoubleRegs:$Rss32),
18137 "$Rd32 = clb($Rss32)",
18138 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
18139 let Inst{13-5} = 0b000000000;
18140 let Inst{31-21} = 0b10001000010;
18141 let hasNewValue = 1;
18142 let opNewValue = 0;
18143 let prefersSlot3 = 1;
18144 }
18145 def S2_clrbit_i : HInst<
18146 (outs IntRegs:$Rd32),
18147 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18148 "$Rd32 = clrbit($Rs32,#$Ii)",
18149 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
18150 let Inst{7-5} = 0b001;
18151 let Inst{13-13} = 0b0;
18152 let Inst{31-21} = 0b10001100110;
18153 let hasNewValue = 1;
18154 let opNewValue = 0;
18155 }
18156 def S2_clrbit_r : HInst<
18157 (outs IntRegs:$Rd32),
18158 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18159 "$Rd32 = clrbit($Rs32,$Rt32)",
18160 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
18161 let Inst{7-5} = 0b010;
18162 let Inst{13-13} = 0b0;
18163 let Inst{31-21} = 0b11000110100;
18164 let hasNewValue = 1;
18165 let opNewValue = 0;
18166 }
18167 def S2_ct0 : HInst<
18168 (outs IntRegs:$Rd32),
18169 (ins IntRegs:$Rs32),
18170 "$Rd32 = ct0($Rs32)",
18171 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18172 let Inst{13-5} = 0b000000100;
18173 let Inst{31-21} = 0b10001100010;
18174 let hasNewValue = 1;
18175 let opNewValue = 0;
18176 let prefersSlot3 = 1;
18177 }
18178 def S2_ct0p : HInst<
18179 (outs IntRegs:$Rd32),
18180 (ins DoubleRegs:$Rss32),
18181 "$Rd32 = ct0($Rss32)",
18182 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
18183 let Inst{13-5} = 0b000000010;
18184 let Inst{31-21} = 0b10001000111;
18185 let hasNewValue = 1;
18186 let opNewValue = 0;
18187 let prefersSlot3 = 1;
18188 }
18189 def S2_ct1 : HInst<
18190 (outs IntRegs:$Rd32),
18191 (ins IntRegs:$Rs32),
18192 "$Rd32 = ct1($Rs32)",
18193 tc_ab1b5e74, TypeS_2op>, Enc_5e2823 {
18194 let Inst{13-5} = 0b000000101;
18195 let Inst{31-21} = 0b10001100010;
18196 let hasNewValue = 1;
18197 let opNewValue = 0;
18198 let prefersSlot3 = 1;
18199 }
18200 def S2_ct1p : HInst<
18201 (outs IntRegs:$Rd32),
18202 (ins DoubleRegs:$Rss32),
18203 "$Rd32 = ct1($Rss32)",
18204 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
18205 let Inst{13-5} = 0b000000100;
18206 let Inst{31-21} = 0b10001000111;
18207 let hasNewValue = 1;
18208 let opNewValue = 0;
18209 let prefersSlot3 = 1;
18210 }
18211 def S2_deinterleave : HInst<
18212 (outs DoubleRegs:$Rdd32),
18213 (ins DoubleRegs:$Rss32),
18214 "$Rdd32 = deinterleave($Rss32)",
18215 tc_ab1b5e74, TypeS_2op>, Enc_b9c5fb {
18216 let Inst{13-5} = 0b000000100;
18217 let Inst{31-21} = 0b10000000110;
18218 let prefersSlot3 = 1;
18219 }
18220 def S2_extractu : HInst<
18221 (outs IntRegs:$Rd32),
18222 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18223 "$Rd32 = extractu($Rs32,#$Ii,#$II)",
18224 tc_c0cd91a8, TypeS_2op>, Enc_b388cf {
18225 let Inst{13-13} = 0b0;
18226 let Inst{31-23} = 0b100011010;
18227 let hasNewValue = 1;
18228 let opNewValue = 0;
18229 let prefersSlot3 = 1;
18230 }
18231 def S2_extractu_rp : HInst<
18232 (outs IntRegs:$Rd32),
18233 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
18234 "$Rd32 = extractu($Rs32,$Rtt32)",
18235 tc_87601822, TypeS_3op>, Enc_e07374 {
18236 let Inst{7-5} = 0b000;
18237 let Inst{13-13} = 0b0;
18238 let Inst{31-21} = 0b11001001000;
18239 let hasNewValue = 1;
18240 let opNewValue = 0;
18241 let prefersSlot3 = 1;
18242 }
18243 def S2_extractup : HInst<
18244 (outs DoubleRegs:$Rdd32),
18245 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18246 "$Rdd32 = extractu($Rss32,#$Ii,#$II)",
18247 tc_c0cd91a8, TypeS_2op>, Enc_b84c4c {
18248 let Inst{31-24} = 0b10000001;
18249 let prefersSlot3 = 1;
18250 }
18251 def S2_extractup_rp : HInst<
18252 (outs DoubleRegs:$Rdd32),
18253 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18254 "$Rdd32 = extractu($Rss32,$Rtt32)",
18255 tc_87601822, TypeS_3op>, Enc_a56825 {
18256 let Inst{7-5} = 0b000;
18257 let Inst{13-13} = 0b0;
18258 let Inst{31-21} = 0b11000001000;
18259 let prefersSlot3 = 1;
18260 }
18261 def S2_insert : HInst<
18262 (outs IntRegs:$Rx32),
18263 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18264 "$Rx32 = insert($Rs32,#$Ii,#$II)",
18265 tc_d95f4e98, TypeS_2op>, Enc_a1e29d {
18266 let Inst{13-13} = 0b0;
18267 let Inst{31-23} = 0b100011110;
18268 let hasNewValue = 1;
18269 let opNewValue = 0;
18270 let prefersSlot3 = 1;
18271 let Constraints = "$Rx32 = $Rx32in";
18272 }
18273 def S2_insert_rp : HInst<
18274 (outs IntRegs:$Rx32),
18275 (ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
18276 "$Rx32 = insert($Rs32,$Rtt32)",
18277 tc_3c10f809, TypeS_3op>, Enc_179b35 {
18278 let Inst{7-5} = 0b000;
18279 let Inst{13-13} = 0b0;
18280 let Inst{31-21} = 0b11001000000;
18281 let hasNewValue = 1;
18282 let opNewValue = 0;
18283 let prefersSlot3 = 1;
18284 let Constraints = "$Rx32 = $Rx32in";
18285 }
18286 def S2_insertp : HInst<
18287 (outs DoubleRegs:$Rxx32),
18288 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18289 "$Rxx32 = insert($Rss32,#$Ii,#$II)",
18290 tc_d95f4e98, TypeS_2op>, Enc_143a3c {
18291 let Inst{31-24} = 0b10000011;
18292 let prefersSlot3 = 1;
18293 let Constraints = "$Rxx32 = $Rxx32in";
18294 }
18295 def S2_insertp_rp : HInst<
18296 (outs DoubleRegs:$Rxx32),
18297 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18298 "$Rxx32 = insert($Rss32,$Rtt32)",
18299 tc_3c10f809, TypeS_3op>, Enc_88c16c {
18300 let Inst{7-5} = 0b000;
18301 let Inst{13-13} = 0b0;
18302 let Inst{31-21} = 0b11001010000;
18303 let prefersSlot3 = 1;
18304 let Constraints = "$Rxx32 = $Rxx32in";
18305 }
18306 def S2_interleave : HInst<
18307 (outs DoubleRegs:$Rdd32),
18308 (ins DoubleRegs:$Rss32),
18309 "$Rdd32 = interleave($Rss32)",
18310 tc_ab1b5e74, TypeS_2op>, Enc_b9c5fb {
18311 let Inst{13-5} = 0b000000101;
18312 let Inst{31-21} = 0b10000000110;
18313 let prefersSlot3 = 1;
18314 }
18315 def S2_lfsp : HInst<
18316 (outs DoubleRegs:$Rdd32),
18317 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18318 "$Rdd32 = lfs($Rss32,$Rtt32)",
18319 tc_87601822, TypeS_3op>, Enc_a56825 {
18320 let Inst{7-5} = 0b110;
18321 let Inst{13-13} = 0b0;
18322 let Inst{31-21} = 0b11000001100;
18323 let prefersSlot3 = 1;
18324 }
18325 def S2_lsl_r_p : HInst<
18326 (outs DoubleRegs:$Rdd32),
18327 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18328 "$Rdd32 = lsl($Rss32,$Rt32)",
18329 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18330 let Inst{7-5} = 0b110;
18331 let Inst{13-13} = 0b0;
18332 let Inst{31-21} = 0b11000011100;
18333 }
18334 def S2_lsl_r_p_acc : HInst<
18335 (outs DoubleRegs:$Rxx32),
18336 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18337 "$Rxx32 += lsl($Rss32,$Rt32)",
18338 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
18339 let Inst{7-5} = 0b110;
18340 let Inst{13-13} = 0b0;
18341 let Inst{31-21} = 0b11001011110;
18342 let prefersSlot3 = 1;
18343 let Constraints = "$Rxx32 = $Rxx32in";
18344 }
18345 def S2_lsl_r_p_and : HInst<
18346 (outs DoubleRegs:$Rxx32),
18347 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18348 "$Rxx32 &= lsl($Rss32,$Rt32)",
18349 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18350 let Inst{7-5} = 0b110;
18351 let Inst{13-13} = 0b0;
18352 let Inst{31-21} = 0b11001011010;
18353 let prefersSlot3 = 1;
18354 let Constraints = "$Rxx32 = $Rxx32in";
18355 }
18356 def S2_lsl_r_p_nac : HInst<
18357 (outs DoubleRegs:$Rxx32),
18358 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18359 "$Rxx32 -= lsl($Rss32,$Rt32)",
18360 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
18361 let Inst{7-5} = 0b110;
18362 let Inst{13-13} = 0b0;
18363 let Inst{31-21} = 0b11001011100;
18364 let prefersSlot3 = 1;
18365 let Constraints = "$Rxx32 = $Rxx32in";
18366 }
18367 def S2_lsl_r_p_or : HInst<
18368 (outs DoubleRegs:$Rxx32),
18369 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18370 "$Rxx32 |= lsl($Rss32,$Rt32)",
18371 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18372 let Inst{7-5} = 0b110;
18373 let Inst{13-13} = 0b0;
18374 let Inst{31-21} = 0b11001011000;
18375 let prefersSlot3 = 1;
18376 let Constraints = "$Rxx32 = $Rxx32in";
18377 }
18378 def S2_lsl_r_p_xor : HInst<
18379 (outs DoubleRegs:$Rxx32),
18380 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18381 "$Rxx32 ^= lsl($Rss32,$Rt32)",
18382 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18383 let Inst{7-5} = 0b110;
18384 let Inst{13-13} = 0b0;
18385 let Inst{31-21} = 0b11001011011;
18386 let prefersSlot3 = 1;
18387 let Constraints = "$Rxx32 = $Rxx32in";
18388 }
18389 def S2_lsl_r_r : HInst<
18390 (outs IntRegs:$Rd32),
18391 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18392 "$Rd32 = lsl($Rs32,$Rt32)",
18393 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
18394 let Inst{7-5} = 0b110;
18395 let Inst{13-13} = 0b0;
18396 let Inst{31-21} = 0b11000110010;
18397 let hasNewValue = 1;
18398 let opNewValue = 0;
18399 }
18400 def S2_lsl_r_r_acc : HInst<
18401 (outs IntRegs:$Rx32),
18402 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18403 "$Rx32 += lsl($Rs32,$Rt32)",
18404 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
18405 let Inst{7-5} = 0b110;
18406 let Inst{13-13} = 0b0;
18407 let Inst{31-21} = 0b11001100110;
18408 let hasNewValue = 1;
18409 let opNewValue = 0;
18410 let prefersSlot3 = 1;
18411 let Constraints = "$Rx32 = $Rx32in";
18412 }
18413 def S2_lsl_r_r_and : HInst<
18414 (outs IntRegs:$Rx32),
18415 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18416 "$Rx32 &= lsl($Rs32,$Rt32)",
18417 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
18418 let Inst{7-5} = 0b110;
18419 let Inst{13-13} = 0b0;
18420 let Inst{31-21} = 0b11001100010;
18421 let hasNewValue = 1;
18422 let opNewValue = 0;
18423 let prefersSlot3 = 1;
18424 let Constraints = "$Rx32 = $Rx32in";
18425 }
18426 def S2_lsl_r_r_nac : HInst<
18427 (outs IntRegs:$Rx32),
18428 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18429 "$Rx32 -= lsl($Rs32,$Rt32)",
18430 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
18431 let Inst{7-5} = 0b110;
18432 let Inst{13-13} = 0b0;
18433 let Inst{31-21} = 0b11001100100;
18434 let hasNewValue = 1;
18435 let opNewValue = 0;
18436 let prefersSlot3 = 1;
18437 let Constraints = "$Rx32 = $Rx32in";
18438 }
18439 def S2_lsl_r_r_or : HInst<
18440 (outs IntRegs:$Rx32),
18441 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18442 "$Rx32 |= lsl($Rs32,$Rt32)",
18443 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
18444 let Inst{7-5} = 0b110;
18445 let Inst{13-13} = 0b0;
18446 let Inst{31-21} = 0b11001100000;
18447 let hasNewValue = 1;
18448 let opNewValue = 0;
18449 let prefersSlot3 = 1;
18450 let Constraints = "$Rx32 = $Rx32in";
18451 }
18452 def S2_lsl_r_vh : HInst<
18453 (outs DoubleRegs:$Rdd32),
18454 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18455 "$Rdd32 = vlslh($Rss32,$Rt32)",
18456 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18457 let Inst{7-5} = 0b110;
18458 let Inst{13-13} = 0b0;
18459 let Inst{31-21} = 0b11000011010;
18460 }
18461 def S2_lsl_r_vw : HInst<
18462 (outs DoubleRegs:$Rdd32),
18463 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18464 "$Rdd32 = vlslw($Rss32,$Rt32)",
18465 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18466 let Inst{7-5} = 0b110;
18467 let Inst{13-13} = 0b0;
18468 let Inst{31-21} = 0b11000011000;
18469 }
18470 def S2_lsr_i_p : HInst<
18471 (outs DoubleRegs:$Rdd32),
18472 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18473 "$Rdd32 = lsr($Rss32,#$Ii)",
18474 tc_9c18c9a5, TypeS_2op>, Enc_5eac98 {
18475 let Inst{7-5} = 0b001;
18476 let Inst{31-21} = 0b10000000000;
18477 }
18478 def S2_lsr_i_p_acc : HInst<
18479 (outs DoubleRegs:$Rxx32),
18480 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18481 "$Rxx32 += lsr($Rss32,#$Ii)",
18482 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
18483 let Inst{7-5} = 0b101;
18484 let Inst{31-21} = 0b10000010000;
18485 let prefersSlot3 = 1;
18486 let Constraints = "$Rxx32 = $Rxx32in";
18487 }
18488 def S2_lsr_i_p_and : HInst<
18489 (outs DoubleRegs:$Rxx32),
18490 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18491 "$Rxx32 &= lsr($Rss32,#$Ii)",
18492 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
18493 let Inst{7-5} = 0b001;
18494 let Inst{31-21} = 0b10000010010;
18495 let prefersSlot3 = 1;
18496 let Constraints = "$Rxx32 = $Rxx32in";
18497 }
18498 def S2_lsr_i_p_nac : HInst<
18499 (outs DoubleRegs:$Rxx32),
18500 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18501 "$Rxx32 -= lsr($Rss32,#$Ii)",
18502 tc_c0cd91a8, TypeS_2op>, Enc_70fb07 {
18503 let Inst{7-5} = 0b001;
18504 let Inst{31-21} = 0b10000010000;
18505 let prefersSlot3 = 1;
18506 let Constraints = "$Rxx32 = $Rxx32in";
18507 }
18508 def S2_lsr_i_p_or : HInst<
18509 (outs DoubleRegs:$Rxx32),
18510 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18511 "$Rxx32 |= lsr($Rss32,#$Ii)",
18512 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
18513 let Inst{7-5} = 0b101;
18514 let Inst{31-21} = 0b10000010010;
18515 let prefersSlot3 = 1;
18516 let Constraints = "$Rxx32 = $Rxx32in";
18517 }
18518 def S2_lsr_i_p_xacc : HInst<
18519 (outs DoubleRegs:$Rxx32),
18520 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18521 "$Rxx32 ^= lsr($Rss32,#$Ii)",
18522 tc_3c10f809, TypeS_2op>, Enc_70fb07 {
18523 let Inst{7-5} = 0b001;
18524 let Inst{31-21} = 0b10000010100;
18525 let prefersSlot3 = 1;
18526 let Constraints = "$Rxx32 = $Rxx32in";
18527 }
18528 def S2_lsr_i_r : HInst<
18529 (outs IntRegs:$Rd32),
18530 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18531 "$Rd32 = lsr($Rs32,#$Ii)",
18532 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
18533 let Inst{7-5} = 0b001;
18534 let Inst{13-13} = 0b0;
18535 let Inst{31-21} = 0b10001100000;
18536 let hasNewValue = 1;
18537 let opNewValue = 0;
18538 }
18539 def S2_lsr_i_r_acc : HInst<
18540 (outs IntRegs:$Rx32),
18541 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18542 "$Rx32 += lsr($Rs32,#$Ii)",
18543 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
18544 let Inst{7-5} = 0b101;
18545 let Inst{13-13} = 0b0;
18546 let Inst{31-21} = 0b10001110000;
18547 let hasNewValue = 1;
18548 let opNewValue = 0;
18549 let prefersSlot3 = 1;
18550 let Constraints = "$Rx32 = $Rx32in";
18551 }
18552 def S2_lsr_i_r_and : HInst<
18553 (outs IntRegs:$Rx32),
18554 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18555 "$Rx32 &= lsr($Rs32,#$Ii)",
18556 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
18557 let Inst{7-5} = 0b001;
18558 let Inst{13-13} = 0b0;
18559 let Inst{31-21} = 0b10001110010;
18560 let hasNewValue = 1;
18561 let opNewValue = 0;
18562 let prefersSlot3 = 1;
18563 let Constraints = "$Rx32 = $Rx32in";
18564 }
18565 def S2_lsr_i_r_nac : HInst<
18566 (outs IntRegs:$Rx32),
18567 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18568 "$Rx32 -= lsr($Rs32,#$Ii)",
18569 tc_c0cd91a8, TypeS_2op>, Enc_28a2dc {
18570 let Inst{7-5} = 0b001;
18571 let Inst{13-13} = 0b0;
18572 let Inst{31-21} = 0b10001110000;
18573 let hasNewValue = 1;
18574 let opNewValue = 0;
18575 let prefersSlot3 = 1;
18576 let Constraints = "$Rx32 = $Rx32in";
18577 }
18578 def S2_lsr_i_r_or : HInst<
18579 (outs IntRegs:$Rx32),
18580 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18581 "$Rx32 |= lsr($Rs32,#$Ii)",
18582 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
18583 let Inst{7-5} = 0b101;
18584 let Inst{13-13} = 0b0;
18585 let Inst{31-21} = 0b10001110010;
18586 let hasNewValue = 1;
18587 let opNewValue = 0;
18588 let prefersSlot3 = 1;
18589 let Constraints = "$Rx32 = $Rx32in";
18590 }
18591 def S2_lsr_i_r_xacc : HInst<
18592 (outs IntRegs:$Rx32),
18593 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18594 "$Rx32 ^= lsr($Rs32,#$Ii)",
18595 tc_3c10f809, TypeS_2op>, Enc_28a2dc {
18596 let Inst{7-5} = 0b001;
18597 let Inst{13-13} = 0b0;
18598 let Inst{31-21} = 0b10001110100;
18599 let hasNewValue = 1;
18600 let opNewValue = 0;
18601 let prefersSlot3 = 1;
18602 let Constraints = "$Rx32 = $Rx32in";
18603 }
18604 def S2_lsr_i_vh : HInst<
18605 (outs DoubleRegs:$Rdd32),
18606 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18607 "$Rdd32 = vlsrh($Rss32,#$Ii)",
18608 tc_9c18c9a5, TypeS_2op>, Enc_12b6e9 {
18609 let Inst{7-5} = 0b001;
18610 let Inst{13-12} = 0b00;
18611 let Inst{31-21} = 0b10000000100;
18612 }
18613 def S2_lsr_i_vw : HInst<
18614 (outs DoubleRegs:$Rdd32),
18615 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18616 "$Rdd32 = vlsrw($Rss32,#$Ii)",
18617 tc_9c18c9a5, TypeS_2op>, Enc_7e5a82 {
18618 let Inst{7-5} = 0b001;
18619 let Inst{13-13} = 0b0;
18620 let Inst{31-21} = 0b10000000010;
18621 }
18622 def S2_lsr_r_p : HInst<
18623 (outs DoubleRegs:$Rdd32),
18624 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18625 "$Rdd32 = lsr($Rss32,$Rt32)",
18626 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18627 let Inst{7-5} = 0b010;
18628 let Inst{13-13} = 0b0;
18629 let Inst{31-21} = 0b11000011100;
18630 }
18631 def S2_lsr_r_p_acc : HInst<
18632 (outs DoubleRegs:$Rxx32),
18633 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18634 "$Rxx32 += lsr($Rss32,$Rt32)",
18635 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
18636 let Inst{7-5} = 0b010;
18637 let Inst{13-13} = 0b0;
18638 let Inst{31-21} = 0b11001011110;
18639 let prefersSlot3 = 1;
18640 let Constraints = "$Rxx32 = $Rxx32in";
18641 }
18642 def S2_lsr_r_p_and : HInst<
18643 (outs DoubleRegs:$Rxx32),
18644 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18645 "$Rxx32 &= lsr($Rss32,$Rt32)",
18646 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18647 let Inst{7-5} = 0b010;
18648 let Inst{13-13} = 0b0;
18649 let Inst{31-21} = 0b11001011010;
18650 let prefersSlot3 = 1;
18651 let Constraints = "$Rxx32 = $Rxx32in";
18652 }
18653 def S2_lsr_r_p_nac : HInst<
18654 (outs DoubleRegs:$Rxx32),
18655 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18656 "$Rxx32 -= lsr($Rss32,$Rt32)",
18657 tc_c0cd91a8, TypeS_3op>, Enc_1aa186 {
18658 let Inst{7-5} = 0b010;
18659 let Inst{13-13} = 0b0;
18660 let Inst{31-21} = 0b11001011100;
18661 let prefersSlot3 = 1;
18662 let Constraints = "$Rxx32 = $Rxx32in";
18663 }
18664 def S2_lsr_r_p_or : HInst<
18665 (outs DoubleRegs:$Rxx32),
18666 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18667 "$Rxx32 |= lsr($Rss32,$Rt32)",
18668 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18669 let Inst{7-5} = 0b010;
18670 let Inst{13-13} = 0b0;
18671 let Inst{31-21} = 0b11001011000;
18672 let prefersSlot3 = 1;
18673 let Constraints = "$Rxx32 = $Rxx32in";
18674 }
18675 def S2_lsr_r_p_xor : HInst<
18676 (outs DoubleRegs:$Rxx32),
18677 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18678 "$Rxx32 ^= lsr($Rss32,$Rt32)",
18679 tc_3c10f809, TypeS_3op>, Enc_1aa186 {
18680 let Inst{7-5} = 0b010;
18681 let Inst{13-13} = 0b0;
18682 let Inst{31-21} = 0b11001011011;
18683 let prefersSlot3 = 1;
18684 let Constraints = "$Rxx32 = $Rxx32in";
18685 }
18686 def S2_lsr_r_r : HInst<
18687 (outs IntRegs:$Rd32),
18688 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18689 "$Rd32 = lsr($Rs32,$Rt32)",
18690 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
18691 let Inst{7-5} = 0b010;
18692 let Inst{13-13} = 0b0;
18693 let Inst{31-21} = 0b11000110010;
18694 let hasNewValue = 1;
18695 let opNewValue = 0;
18696 }
18697 def S2_lsr_r_r_acc : HInst<
18698 (outs IntRegs:$Rx32),
18699 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18700 "$Rx32 += lsr($Rs32,$Rt32)",
18701 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
18702 let Inst{7-5} = 0b010;
18703 let Inst{13-13} = 0b0;
18704 let Inst{31-21} = 0b11001100110;
18705 let hasNewValue = 1;
18706 let opNewValue = 0;
18707 let prefersSlot3 = 1;
18708 let Constraints = "$Rx32 = $Rx32in";
18709 }
18710 def S2_lsr_r_r_and : HInst<
18711 (outs IntRegs:$Rx32),
18712 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18713 "$Rx32 &= lsr($Rs32,$Rt32)",
18714 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
18715 let Inst{7-5} = 0b010;
18716 let Inst{13-13} = 0b0;
18717 let Inst{31-21} = 0b11001100010;
18718 let hasNewValue = 1;
18719 let opNewValue = 0;
18720 let prefersSlot3 = 1;
18721 let Constraints = "$Rx32 = $Rx32in";
18722 }
18723 def S2_lsr_r_r_nac : HInst<
18724 (outs IntRegs:$Rx32),
18725 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18726 "$Rx32 -= lsr($Rs32,$Rt32)",
18727 tc_c0cd91a8, TypeS_3op>, Enc_2ae154 {
18728 let Inst{7-5} = 0b010;
18729 let Inst{13-13} = 0b0;
18730 let Inst{31-21} = 0b11001100100;
18731 let hasNewValue = 1;
18732 let opNewValue = 0;
18733 let prefersSlot3 = 1;
18734 let Constraints = "$Rx32 = $Rx32in";
18735 }
18736 def S2_lsr_r_r_or : HInst<
18737 (outs IntRegs:$Rx32),
18738 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18739 "$Rx32 |= lsr($Rs32,$Rt32)",
18740 tc_3c10f809, TypeS_3op>, Enc_2ae154 {
18741 let Inst{7-5} = 0b010;
18742 let Inst{13-13} = 0b0;
18743 let Inst{31-21} = 0b11001100000;
18744 let hasNewValue = 1;
18745 let opNewValue = 0;
18746 let prefersSlot3 = 1;
18747 let Constraints = "$Rx32 = $Rx32in";
18748 }
18749 def S2_lsr_r_vh : HInst<
18750 (outs DoubleRegs:$Rdd32),
18751 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18752 "$Rdd32 = vlsrh($Rss32,$Rt32)",
18753 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18754 let Inst{7-5} = 0b010;
18755 let Inst{13-13} = 0b0;
18756 let Inst{31-21} = 0b11000011010;
18757 }
18758 def S2_lsr_r_vw : HInst<
18759 (outs DoubleRegs:$Rdd32),
18760 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18761 "$Rdd32 = vlsrw($Rss32,$Rt32)",
18762 tc_9c18c9a5, TypeS_3op>, Enc_927852 {
18763 let Inst{7-5} = 0b010;
18764 let Inst{13-13} = 0b0;
18765 let Inst{31-21} = 0b11000011000;
18766 }
18767 def S2_packhl : HInst<
18768 (outs DoubleRegs:$Rdd32),
18769 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18770 "$Rdd32 = packhl($Rs32,$Rt32)",
18771 tc_548f402d, TypeALU32_3op>, Enc_be32a5 {
18772 let Inst{7-5} = 0b000;
18773 let Inst{13-13} = 0b0;
18774 let Inst{31-21} = 0b11110101100;
18775 let InputType = "reg";
18776 }
18777 def S2_parityp : HInst<
18778 (outs IntRegs:$Rd32),
18779 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18780 "$Rd32 = parity($Rss32,$Rtt32)",
18781 tc_87601822, TypeALU64>, Enc_d2216a {
18782 let Inst{7-5} = 0b000;
18783 let Inst{13-13} = 0b0;
18784 let Inst{31-21} = 0b11010000000;
18785 let hasNewValue = 1;
18786 let opNewValue = 0;
18787 let prefersSlot3 = 1;
18788 }
18789 def S2_pstorerbf_io : HInst<
18790 (outs),
18791 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
18792 "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
18793 tc_3d905451, TypeV2LDST>, Enc_da8d43, AddrModeRel {
18794 let Inst{2-2} = 0b0;
18795 let Inst{31-21} = 0b01000100000;
18796 let isPredicated = 1;
18797 let isPredicatedFalse = 1;
18798 let addrMode = BaseImmOffset;
18799 let accessSize = ByteAccess;
18800 let mayStore = 1;
18801 let CextOpcode = "S2_storerb";
18802 let InputType = "imm";
18803 let BaseOpcode = "S2_storerb_io";
18804 let isNVStorable = 1;
18805 let isExtendable = 1;
18806 let opExtendable = 2;
18807 let isExtentSigned = 0;
18808 let opExtentBits = 6;
18809 let opExtentAlign = 0;
18810 }
18811 def S2_pstorerbf_pi : HInst<
18812 (outs IntRegs:$Rx32),
18813 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
18814 "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
18815 tc_9b73d261, TypeST>, Enc_cc449f, AddrModeRel {
18816 let Inst{2-2} = 0b1;
18817 let Inst{7-7} = 0b0;
18818 let Inst{13-13} = 0b1;
18819 let Inst{31-21} = 0b10101011000;
18820 let isPredicated = 1;
18821 let isPredicatedFalse = 1;
18822 let addrMode = PostInc;
18823 let accessSize = ByteAccess;
18824 let mayStore = 1;
18825 let BaseOpcode = "S2_storerb_pi";
18826 let isNVStorable = 1;
18827 let Constraints = "$Rx32 = $Rx32in";
18828 }
18829 def S2_pstorerbf_zomap : HInst<
18830 (outs),
18831 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
18832 "if (!$Pv4) memb($Rs32) = $Rt32",
18833 tc_3d905451, TypeMAPPING> {
18834 let isPseudo = 1;
18835 let isCodeGenOnly = 1;
18836 }
18837 def S2_pstorerbfnew_pi : HInst<
18838 (outs IntRegs:$Rx32),
18839 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
18840 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
18841 tc_7675c0e9, TypeST>, Enc_cc449f, AddrModeRel {
18842 let Inst{2-2} = 0b1;
18843 let Inst{7-7} = 0b1;
18844 let Inst{13-13} = 0b1;
18845 let Inst{31-21} = 0b10101011000;
18846 let isPredicated = 1;
18847 let isPredicatedFalse = 1;
18848 let addrMode = PostInc;
18849 let accessSize = ByteAccess;
18850 let isPredicatedNew = 1;
18851 let mayStore = 1;
18852 let BaseOpcode = "S2_storerb_pi";
18853 let isNVStorable = 1;
18854 let Constraints = "$Rx32 = $Rx32in";
18855 }
18856 def S2_pstorerbnewf_io : HInst<
18857 (outs),
18858 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
18859 "if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
18860 tc_9da3628f, TypeV2LDST>, Enc_585242, AddrModeRel {
18861 let Inst{2-2} = 0b0;
18862 let Inst{12-11} = 0b00;
18863 let Inst{31-21} = 0b01000100101;
18864 let isPredicated = 1;
18865 let isPredicatedFalse = 1;
18866 let addrMode = BaseImmOffset;
18867 let accessSize = ByteAccess;
18868 let isNVStore = 1;
18869 let isNewValue = 1;
18870 let mayStore = 1;
18871 let CextOpcode = "S2_storerb";
18872 let InputType = "imm";
18873 let BaseOpcode = "S2_storerb_io";
18874 let isExtendable = 1;
18875 let opExtendable = 2;
18876 let isExtentSigned = 0;
18877 let opExtentBits = 6;
18878 let opExtentAlign = 0;
18879 let opNewValue = 3;
18880 }
18881 def S2_pstorerbnewf_pi : HInst<
18882 (outs IntRegs:$Rx32),
18883 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
18884 "if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
18885 tc_e2480a7f, TypeST>, Enc_52a5dd, AddrModeRel {
18886 let Inst{2-2} = 0b1;
18887 let Inst{7-7} = 0b0;
18888 let Inst{13-11} = 0b100;
18889 let Inst{31-21} = 0b10101011101;
18890 let isPredicated = 1;
18891 let isPredicatedFalse = 1;
18892 let addrMode = PostInc;
18893 let accessSize = ByteAccess;
18894 let isNVStore = 1;
18895 let isNewValue = 1;
18896 let mayStore = 1;
18897 let CextOpcode = "S2_storerb";
18898 let BaseOpcode = "S2_storerb_pi";
18899 let opNewValue = 4;
18900 let Constraints = "$Rx32 = $Rx32in";
18901 }
18902 def S2_pstorerbnewf_zomap : HInst<
18903 (outs),
18904 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
18905 "if (!$Pv4) memb($Rs32) = $Nt8.new",
18906 tc_9da3628f, TypeMAPPING> {
18907 let isPseudo = 1;
18908 let isCodeGenOnly = 1;
18909 let opNewValue = 2;
18910 }
18911 def S2_pstorerbnewfnew_pi : HInst<
18912 (outs IntRegs:$Rx32),
18913 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
18914 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
18915 tc_8fab9ac3, TypeST>, Enc_52a5dd, AddrModeRel {
18916 let Inst{2-2} = 0b1;
18917 let Inst{7-7} = 0b1;
18918 let Inst{13-11} = 0b100;
18919 let Inst{31-21} = 0b10101011101;
18920 let isPredicated = 1;
18921 let isPredicatedFalse = 1;
18922 let addrMode = PostInc;
18923 let accessSize = ByteAccess;
18924 let isNVStore = 1;
18925 let isPredicatedNew = 1;
18926 let isNewValue = 1;
18927 let mayStore = 1;
18928 let CextOpcode = "S2_storerb";
18929 let BaseOpcode = "S2_storerb_pi";
18930 let opNewValue = 4;
18931 let Constraints = "$Rx32 = $Rx32in";
18932 }
18933 def S2_pstorerbnewt_io : HInst<
18934 (outs),
18935 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
18936 "if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
18937 tc_9da3628f, TypeV2LDST>, Enc_585242, AddrModeRel {
18938 let Inst{2-2} = 0b0;
18939 let Inst{12-11} = 0b00;
18940 let Inst{31-21} = 0b01000000101;
18941 let isPredicated = 1;
18942 let addrMode = BaseImmOffset;
18943 let accessSize = ByteAccess;
18944 let isNVStore = 1;
18945 let isNewValue = 1;
18946 let mayStore = 1;
18947 let CextOpcode = "S2_storerb";
18948 let InputType = "imm";
18949 let BaseOpcode = "S2_storerb_io";
18950 let isExtendable = 1;
18951 let opExtendable = 2;
18952 let isExtentSigned = 0;
18953 let opExtentBits = 6;
18954 let opExtentAlign = 0;
18955 let opNewValue = 3;
18956 }
18957 def S2_pstorerbnewt_pi : HInst<
18958 (outs IntRegs:$Rx32),
18959 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
18960 "if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
18961 tc_e2480a7f, TypeST>, Enc_52a5dd, AddrModeRel {
18962 let Inst{2-2} = 0b0;
18963 let Inst{7-7} = 0b0;
18964 let Inst{13-11} = 0b100;
18965 let Inst{31-21} = 0b10101011101;
18966 let isPredicated = 1;
18967 let addrMode = PostInc;
18968 let accessSize = ByteAccess;
18969 let isNVStore = 1;
18970 let isNewValue = 1;
18971 let mayStore = 1;
18972 let CextOpcode = "S2_storerb";
18973 let BaseOpcode = "S2_storerb_pi";
18974 let opNewValue = 4;
18975 let Constraints = "$Rx32 = $Rx32in";
18976 }
18977 def S2_pstorerbnewt_zomap : HInst<
18978 (outs),
18979 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
18980 "if ($Pv4) memb($Rs32) = $Nt8.new",
18981 tc_9da3628f, TypeMAPPING> {
18982 let isPseudo = 1;
18983 let isCodeGenOnly = 1;
18984 let opNewValue = 2;
18985 }
18986 def S2_pstorerbnewtnew_pi : HInst<
18987 (outs IntRegs:$Rx32),
18988 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
18989 "if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
18990 tc_8fab9ac3, TypeST>, Enc_52a5dd, AddrModeRel {
18991 let Inst{2-2} = 0b0;
18992 let Inst{7-7} = 0b1;
18993 let Inst{13-11} = 0b100;
18994 let Inst{31-21} = 0b10101011101;
18995 let isPredicated = 1;
18996 let addrMode = PostInc;
18997 let accessSize = ByteAccess;
18998 let isNVStore = 1;
18999 let isPredicatedNew = 1;
19000 let isNewValue = 1;
19001 let mayStore = 1;
19002 let CextOpcode = "S2_storerb";
19003 let BaseOpcode = "S2_storerb_pi";
19004 let opNewValue = 4;
19005 let Constraints = "$Rx32 = $Rx32in";
19006 }
19007 def S2_pstorerbt_io : HInst<
19008 (outs),
19009 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19010 "if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19011 tc_3d905451, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19012 let Inst{2-2} = 0b0;
19013 let Inst{31-21} = 0b01000000000;
19014 let isPredicated = 1;
19015 let addrMode = BaseImmOffset;
19016 let accessSize = ByteAccess;
19017 let mayStore = 1;
19018 let CextOpcode = "S2_storerb";
19019 let InputType = "imm";
19020 let BaseOpcode = "S2_storerb_io";
19021 let isNVStorable = 1;
19022 let isExtendable = 1;
19023 let opExtendable = 2;
19024 let isExtentSigned = 0;
19025 let opExtentBits = 6;
19026 let opExtentAlign = 0;
19027 }
19028 def S2_pstorerbt_pi : HInst<
19029 (outs IntRegs:$Rx32),
19030 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19031 "if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19032 tc_9b73d261, TypeST>, Enc_cc449f, AddrModeRel {
19033 let Inst{2-2} = 0b0;
19034 let Inst{7-7} = 0b0;
19035 let Inst{13-13} = 0b1;
19036 let Inst{31-21} = 0b10101011000;
19037 let isPredicated = 1;
19038 let addrMode = PostInc;
19039 let accessSize = ByteAccess;
19040 let mayStore = 1;
19041 let BaseOpcode = "S2_storerb_pi";
19042 let isNVStorable = 1;
19043 let Constraints = "$Rx32 = $Rx32in";
19044 }
19045 def S2_pstorerbt_zomap : HInst<
19046 (outs),
19047 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19048 "if ($Pv4) memb($Rs32) = $Rt32",
19049 tc_3d905451, TypeMAPPING> {
19050 let isPseudo = 1;
19051 let isCodeGenOnly = 1;
19052 }
19053 def S2_pstorerbtnew_pi : HInst<
19054 (outs IntRegs:$Rx32),
19055 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19056 "if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19057 tc_7675c0e9, TypeST>, Enc_cc449f, AddrModeRel {
19058 let Inst{2-2} = 0b0;
19059 let Inst{7-7} = 0b1;
19060 let Inst{13-13} = 0b1;
19061 let Inst{31-21} = 0b10101011000;
19062 let isPredicated = 1;
19063 let addrMode = PostInc;
19064 let accessSize = ByteAccess;
19065 let isPredicatedNew = 1;
19066 let mayStore = 1;
19067 let BaseOpcode = "S2_storerb_pi";
19068 let isNVStorable = 1;
19069 let Constraints = "$Rx32 = $Rx32in";
19070 }
19071 def S2_pstorerdf_io : HInst<
19072 (outs),
19073 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19074 "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
19075 tc_3d905451, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19076 let Inst{2-2} = 0b0;
19077 let Inst{31-21} = 0b01000100110;
19078 let isPredicated = 1;
19079 let isPredicatedFalse = 1;
19080 let addrMode = BaseImmOffset;
19081 let accessSize = DoubleWordAccess;
19082 let mayStore = 1;
19083 let CextOpcode = "S2_storerd";
19084 let InputType = "imm";
19085 let BaseOpcode = "S2_storerd_io";
19086 let isExtendable = 1;
19087 let opExtendable = 2;
19088 let isExtentSigned = 0;
19089 let opExtentBits = 9;
19090 let opExtentAlign = 3;
19091 }
19092 def S2_pstorerdf_pi : HInst<
19093 (outs IntRegs:$Rx32),
19094 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19095 "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
19096 tc_9b73d261, TypeST>, Enc_9a33d5, AddrModeRel {
19097 let Inst{2-2} = 0b1;
19098 let Inst{7-7} = 0b0;
19099 let Inst{13-13} = 0b1;
19100 let Inst{31-21} = 0b10101011110;
19101 let isPredicated = 1;
19102 let isPredicatedFalse = 1;
19103 let addrMode = PostInc;
19104 let accessSize = DoubleWordAccess;
19105 let mayStore = 1;
19106 let CextOpcode = "S2_storerd";
19107 let BaseOpcode = "S2_storerd_pi";
19108 let Constraints = "$Rx32 = $Rx32in";
19109 }
19110 def S2_pstorerdf_zomap : HInst<
19111 (outs),
19112 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19113 "if (!$Pv4) memd($Rs32) = $Rtt32",
19114 tc_3d905451, TypeMAPPING> {
19115 let isPseudo = 1;
19116 let isCodeGenOnly = 1;
19117 }
19118 def S2_pstorerdfnew_pi : HInst<
19119 (outs IntRegs:$Rx32),
19120 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19121 "if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19122 tc_7675c0e9, TypeST>, Enc_9a33d5, AddrModeRel {
19123 let Inst{2-2} = 0b1;
19124 let Inst{7-7} = 0b1;
19125 let Inst{13-13} = 0b1;
19126 let Inst{31-21} = 0b10101011110;
19127 let isPredicated = 1;
19128 let isPredicatedFalse = 1;
19129 let addrMode = PostInc;
19130 let accessSize = DoubleWordAccess;
19131 let isPredicatedNew = 1;
19132 let mayStore = 1;
19133 let CextOpcode = "S2_storerd";
19134 let BaseOpcode = "S2_storerd_pi";
19135 let Constraints = "$Rx32 = $Rx32in";
19136 }
19137 def S2_pstorerdt_io : HInst<
19138 (outs),
19139 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19140 "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
19141 tc_3d905451, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19142 let Inst{2-2} = 0b0;
19143 let Inst{31-21} = 0b01000000110;
19144 let isPredicated = 1;
19145 let addrMode = BaseImmOffset;
19146 let accessSize = DoubleWordAccess;
19147 let mayStore = 1;
19148 let CextOpcode = "S2_storerd";
19149 let InputType = "imm";
19150 let BaseOpcode = "S2_storerd_io";
19151 let isExtendable = 1;
19152 let opExtendable = 2;
19153 let isExtentSigned = 0;
19154 let opExtentBits = 9;
19155 let opExtentAlign = 3;
19156 }
19157 def S2_pstorerdt_pi : HInst<
19158 (outs IntRegs:$Rx32),
19159 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19160 "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
19161 tc_9b73d261, TypeST>, Enc_9a33d5, AddrModeRel {
19162 let Inst{2-2} = 0b0;
19163 let Inst{7-7} = 0b0;
19164 let Inst{13-13} = 0b1;
19165 let Inst{31-21} = 0b10101011110;
19166 let isPredicated = 1;
19167 let addrMode = PostInc;
19168 let accessSize = DoubleWordAccess;
19169 let mayStore = 1;
19170 let CextOpcode = "S2_storerd";
19171 let BaseOpcode = "S2_storerd_pi";
19172 let Constraints = "$Rx32 = $Rx32in";
19173 }
19174 def S2_pstorerdt_zomap : HInst<
19175 (outs),
19176 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19177 "if ($Pv4) memd($Rs32) = $Rtt32",
19178 tc_3d905451, TypeMAPPING> {
19179 let isPseudo = 1;
19180 let isCodeGenOnly = 1;
19181 }
19182 def S2_pstorerdtnew_pi : HInst<
19183 (outs IntRegs:$Rx32),
19184 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19185 "if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19186 tc_7675c0e9, TypeST>, Enc_9a33d5, AddrModeRel {
19187 let Inst{2-2} = 0b0;
19188 let Inst{7-7} = 0b1;
19189 let Inst{13-13} = 0b1;
19190 let Inst{31-21} = 0b10101011110;
19191 let isPredicated = 1;
19192 let addrMode = PostInc;
19193 let accessSize = DoubleWordAccess;
19194 let isPredicatedNew = 1;
19195 let mayStore = 1;
19196 let CextOpcode = "S2_storerd";
19197 let BaseOpcode = "S2_storerd_pi";
19198 let Constraints = "$Rx32 = $Rx32in";
19199 }
19200 def S2_pstorerff_io : HInst<
19201 (outs),
19202 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19203 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19204 tc_3d905451, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19205 let Inst{2-2} = 0b0;
19206 let Inst{31-21} = 0b01000100011;
19207 let isPredicated = 1;
19208 let isPredicatedFalse = 1;
19209 let addrMode = BaseImmOffset;
19210 let accessSize = HalfWordAccess;
19211 let mayStore = 1;
19212 let CextOpcode = "S2_storerf";
19213 let InputType = "imm";
19214 let BaseOpcode = "S2_storerf_io";
19215 let isExtendable = 1;
19216 let opExtendable = 2;
19217 let isExtentSigned = 0;
19218 let opExtentBits = 7;
19219 let opExtentAlign = 1;
19220 }
19221 def S2_pstorerff_pi : HInst<
19222 (outs IntRegs:$Rx32),
19223 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19224 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19225 tc_9b73d261, TypeST>, Enc_b886fd, AddrModeRel {
19226 let Inst{2-2} = 0b1;
19227 let Inst{7-7} = 0b0;
19228 let Inst{13-13} = 0b1;
19229 let Inst{31-21} = 0b10101011011;
19230 let isPredicated = 1;
19231 let isPredicatedFalse = 1;
19232 let addrMode = PostInc;
19233 let accessSize = HalfWordAccess;
19234 let mayStore = 1;
19235 let CextOpcode = "S2_storerf";
19236 let BaseOpcode = "S2_storerf_pi";
19237 let Constraints = "$Rx32 = $Rx32in";
19238 }
19239 def S2_pstorerff_zomap : HInst<
19240 (outs),
19241 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19242 "if (!$Pv4) memh($Rs32) = $Rt32.h",
19243 tc_3d905451, TypeMAPPING> {
19244 let isPseudo = 1;
19245 let isCodeGenOnly = 1;
19246 }
19247 def S2_pstorerffnew_pi : HInst<
19248 (outs IntRegs:$Rx32),
19249 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19250 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19251 tc_7675c0e9, TypeST>, Enc_b886fd, AddrModeRel {
19252 let Inst{2-2} = 0b1;
19253 let Inst{7-7} = 0b1;
19254 let Inst{13-13} = 0b1;
19255 let Inst{31-21} = 0b10101011011;
19256 let isPredicated = 1;
19257 let isPredicatedFalse = 1;
19258 let addrMode = PostInc;
19259 let accessSize = HalfWordAccess;
19260 let isPredicatedNew = 1;
19261 let mayStore = 1;
19262 let CextOpcode = "S2_storerf";
19263 let BaseOpcode = "S2_storerf_pi";
19264 let Constraints = "$Rx32 = $Rx32in";
19265 }
19266 def S2_pstorerft_io : HInst<
19267 (outs),
19268 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19269 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19270 tc_3d905451, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19271 let Inst{2-2} = 0b0;
19272 let Inst{31-21} = 0b01000000011;
19273 let isPredicated = 1;
19274 let addrMode = BaseImmOffset;
19275 let accessSize = HalfWordAccess;
19276 let mayStore = 1;
19277 let CextOpcode = "S2_storerf";
19278 let InputType = "imm";
19279 let BaseOpcode = "S2_storerf_io";
19280 let isExtendable = 1;
19281 let opExtendable = 2;
19282 let isExtentSigned = 0;
19283 let opExtentBits = 7;
19284 let opExtentAlign = 1;
19285 }
19286 def S2_pstorerft_pi : HInst<
19287 (outs IntRegs:$Rx32),
19288 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19289 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19290 tc_9b73d261, TypeST>, Enc_b886fd, AddrModeRel {
19291 let Inst{2-2} = 0b0;
19292 let Inst{7-7} = 0b0;
19293 let Inst{13-13} = 0b1;
19294 let Inst{31-21} = 0b10101011011;
19295 let isPredicated = 1;
19296 let addrMode = PostInc;
19297 let accessSize = HalfWordAccess;
19298 let mayStore = 1;
19299 let CextOpcode = "S2_storerf";
19300 let BaseOpcode = "S2_storerf_pi";
19301 let Constraints = "$Rx32 = $Rx32in";
19302 }
19303 def S2_pstorerft_zomap : HInst<
19304 (outs),
19305 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19306 "if ($Pv4) memh($Rs32) = $Rt32.h",
19307 tc_3d905451, TypeMAPPING> {
19308 let isPseudo = 1;
19309 let isCodeGenOnly = 1;
19310 }
19311 def S2_pstorerftnew_pi : HInst<
19312 (outs IntRegs:$Rx32),
19313 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19314 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19315 tc_7675c0e9, TypeST>, Enc_b886fd, AddrModeRel {
19316 let Inst{2-2} = 0b0;
19317 let Inst{7-7} = 0b1;
19318 let Inst{13-13} = 0b1;
19319 let Inst{31-21} = 0b10101011011;
19320 let isPredicated = 1;
19321 let addrMode = PostInc;
19322 let accessSize = HalfWordAccess;
19323 let isPredicatedNew = 1;
19324 let mayStore = 1;
19325 let CextOpcode = "S2_storerf";
19326 let BaseOpcode = "S2_storerf_pi";
19327 let Constraints = "$Rx32 = $Rx32in";
19328 }
19329 def S2_pstorerhf_io : HInst<
19330 (outs),
19331 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19332 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
19333 tc_3d905451, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19334 let Inst{2-2} = 0b0;
19335 let Inst{31-21} = 0b01000100010;
19336 let isPredicated = 1;
19337 let isPredicatedFalse = 1;
19338 let addrMode = BaseImmOffset;
19339 let accessSize = HalfWordAccess;
19340 let mayStore = 1;
19341 let CextOpcode = "S2_storerh";
19342 let InputType = "imm";
19343 let BaseOpcode = "S2_storerh_io";
19344 let isNVStorable = 1;
19345 let isExtendable = 1;
19346 let opExtendable = 2;
19347 let isExtentSigned = 0;
19348 let opExtentBits = 7;
19349 let opExtentAlign = 1;
19350 }
19351 def S2_pstorerhf_pi : HInst<
19352 (outs IntRegs:$Rx32),
19353 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19354 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
19355 tc_9b73d261, TypeST>, Enc_b886fd, AddrModeRel {
19356 let Inst{2-2} = 0b1;
19357 let Inst{7-7} = 0b0;
19358 let Inst{13-13} = 0b1;
19359 let Inst{31-21} = 0b10101011010;
19360 let isPredicated = 1;
19361 let isPredicatedFalse = 1;
19362 let addrMode = PostInc;
19363 let accessSize = HalfWordAccess;
19364 let mayStore = 1;
19365 let BaseOpcode = "S2_storerh_pi";
19366 let isNVStorable = 1;
19367 let Constraints = "$Rx32 = $Rx32in";
19368 }
19369 def S2_pstorerhf_zomap : HInst<
19370 (outs),
19371 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19372 "if (!$Pv4) memh($Rs32) = $Rt32",
19373 tc_3d905451, TypeMAPPING> {
19374 let isPseudo = 1;
19375 let isCodeGenOnly = 1;
19376 }
19377 def S2_pstorerhfnew_pi : HInst<
19378 (outs IntRegs:$Rx32),
19379 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19380 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
19381 tc_7675c0e9, TypeST>, Enc_b886fd, AddrModeRel {
19382 let Inst{2-2} = 0b1;
19383 let Inst{7-7} = 0b1;
19384 let Inst{13-13} = 0b1;
19385 let Inst{31-21} = 0b10101011010;
19386 let isPredicated = 1;
19387 let isPredicatedFalse = 1;
19388 let addrMode = PostInc;
19389 let accessSize = HalfWordAccess;
19390 let isPredicatedNew = 1;
19391 let mayStore = 1;
19392 let BaseOpcode = "S2_storerh_pi";
19393 let isNVStorable = 1;
19394 let Constraints = "$Rx32 = $Rx32in";
19395 }
19396 def S2_pstorerhnewf_io : HInst<
19397 (outs),
19398 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
19399 "if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
19400 tc_9da3628f, TypeV2LDST>, Enc_f44229, AddrModeRel {
19401 let Inst{2-2} = 0b0;
19402 let Inst{12-11} = 0b01;
19403 let Inst{31-21} = 0b01000100101;
19404 let isPredicated = 1;
19405 let isPredicatedFalse = 1;
19406 let addrMode = BaseImmOffset;
19407 let accessSize = HalfWordAccess;
19408 let isNVStore = 1;
19409 let isNewValue = 1;
19410 let mayStore = 1;
19411 let CextOpcode = "S2_storerh";
19412 let InputType = "imm";
19413 let BaseOpcode = "S2_storerh_io";
19414 let isExtendable = 1;
19415 let opExtendable = 2;
19416 let isExtentSigned = 0;
19417 let opExtentBits = 7;
19418 let opExtentAlign = 1;
19419 let opNewValue = 3;
19420 }
19421 def S2_pstorerhnewf_pi : HInst<
19422 (outs IntRegs:$Rx32),
19423 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19424 "if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
19425 tc_e2480a7f, TypeST>, Enc_31aa6a, AddrModeRel {
19426 let Inst{2-2} = 0b1;
19427 let Inst{7-7} = 0b0;
19428 let Inst{13-11} = 0b101;
19429 let Inst{31-21} = 0b10101011101;
19430 let isPredicated = 1;
19431 let isPredicatedFalse = 1;
19432 let addrMode = PostInc;
19433 let accessSize = HalfWordAccess;
19434 let isNVStore = 1;
19435 let isNewValue = 1;
19436 let mayStore = 1;
19437 let CextOpcode = "S2_storerh";
19438 let BaseOpcode = "S2_storerh_pi";
19439 let opNewValue = 4;
19440 let Constraints = "$Rx32 = $Rx32in";
19441 }
19442 def S2_pstorerhnewf_zomap : HInst<
19443 (outs),
19444 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19445 "if (!$Pv4) memh($Rs32) = $Nt8.new",
19446 tc_9da3628f, TypeMAPPING> {
19447 let isPseudo = 1;
19448 let isCodeGenOnly = 1;
19449 let opNewValue = 2;
19450 }
19451 def S2_pstorerhnewfnew_pi : HInst<
19452 (outs IntRegs:$Rx32),
19453 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19454 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
19455 tc_8fab9ac3, TypeST>, Enc_31aa6a, AddrModeRel {
19456 let Inst{2-2} = 0b1;
19457 let Inst{7-7} = 0b1;
19458 let Inst{13-11} = 0b101;
19459 let Inst{31-21} = 0b10101011101;
19460 let isPredicated = 1;
19461 let isPredicatedFalse = 1;
19462 let addrMode = PostInc;
19463 let accessSize = HalfWordAccess;
19464 let isNVStore = 1;
19465 let isPredicatedNew = 1;
19466 let isNewValue = 1;
19467 let mayStore = 1;
19468 let CextOpcode = "S2_storerh";
19469 let BaseOpcode = "S2_storerh_pi";
19470 let opNewValue = 4;
19471 let Constraints = "$Rx32 = $Rx32in";
19472 }
19473 def S2_pstorerhnewt_io : HInst<
19474 (outs),
19475 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
19476 "if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
19477 tc_9da3628f, TypeV2LDST>, Enc_f44229, AddrModeRel {
19478 let Inst{2-2} = 0b0;
19479 let Inst{12-11} = 0b01;
19480 let Inst{31-21} = 0b01000000101;
19481 let isPredicated = 1;
19482 let addrMode = BaseImmOffset;
19483 let accessSize = HalfWordAccess;
19484 let isNVStore = 1;
19485 let isNewValue = 1;
19486 let mayStore = 1;
19487 let CextOpcode = "S2_storerh";
19488 let InputType = "imm";
19489 let BaseOpcode = "S2_storerh_io";
19490 let isExtendable = 1;
19491 let opExtendable = 2;
19492 let isExtentSigned = 0;
19493 let opExtentBits = 7;
19494 let opExtentAlign = 1;
19495 let opNewValue = 3;
19496 }
19497 def S2_pstorerhnewt_pi : HInst<
19498 (outs IntRegs:$Rx32),
19499 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19500 "if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
19501 tc_e2480a7f, TypeST>, Enc_31aa6a, AddrModeRel {
19502 let Inst{2-2} = 0b0;
19503 let Inst{7-7} = 0b0;
19504 let Inst{13-11} = 0b101;
19505 let Inst{31-21} = 0b10101011101;
19506 let isPredicated = 1;
19507 let addrMode = PostInc;
19508 let accessSize = HalfWordAccess;
19509 let isNVStore = 1;
19510 let isNewValue = 1;
19511 let mayStore = 1;
19512 let CextOpcode = "S2_storerh";
19513 let BaseOpcode = "S2_storerh_pi";
19514 let opNewValue = 4;
19515 let Constraints = "$Rx32 = $Rx32in";
19516 }
19517 def S2_pstorerhnewt_zomap : HInst<
19518 (outs),
19519 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19520 "if ($Pv4) memh($Rs32) = $Nt8.new",
19521 tc_9da3628f, TypeMAPPING> {
19522 let isPseudo = 1;
19523 let isCodeGenOnly = 1;
19524 let opNewValue = 2;
19525 }
19526 def S2_pstorerhnewtnew_pi : HInst<
19527 (outs IntRegs:$Rx32),
19528 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19529 "if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
19530 tc_8fab9ac3, TypeST>, Enc_31aa6a, AddrModeRel {
19531 let Inst{2-2} = 0b0;
19532 let Inst{7-7} = 0b1;
19533 let Inst{13-11} = 0b101;
19534 let Inst{31-21} = 0b10101011101;
19535 let isPredicated = 1;
19536 let addrMode = PostInc;
19537 let accessSize = HalfWordAccess;
19538 let isNVStore = 1;
19539 let isPredicatedNew = 1;
19540 let isNewValue = 1;
19541 let mayStore = 1;
19542 let CextOpcode = "S2_storerh";
19543 let BaseOpcode = "S2_storerh_pi";
19544 let opNewValue = 4;
19545 let Constraints = "$Rx32 = $Rx32in";
19546 }
19547 def S2_pstorerht_io : HInst<
19548 (outs),
19549 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19550 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
19551 tc_3d905451, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19552 let Inst{2-2} = 0b0;
19553 let Inst{31-21} = 0b01000000010;
19554 let isPredicated = 1;
19555 let addrMode = BaseImmOffset;
19556 let accessSize = HalfWordAccess;
19557 let mayStore = 1;
19558 let CextOpcode = "S2_storerh";
19559 let InputType = "imm";
19560 let BaseOpcode = "S2_storerh_io";
19561 let isNVStorable = 1;
19562 let isExtendable = 1;
19563 let opExtendable = 2;
19564 let isExtentSigned = 0;
19565 let opExtentBits = 7;
19566 let opExtentAlign = 1;
19567 }
19568 def S2_pstorerht_pi : HInst<
19569 (outs IntRegs:$Rx32),
19570 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19571 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
19572 tc_9b73d261, TypeST>, Enc_b886fd, AddrModeRel {
19573 let Inst{2-2} = 0b0;
19574 let Inst{7-7} = 0b0;
19575 let Inst{13-13} = 0b1;
19576 let Inst{31-21} = 0b10101011010;
19577 let isPredicated = 1;
19578 let addrMode = PostInc;
19579 let accessSize = HalfWordAccess;
19580 let mayStore = 1;
19581 let BaseOpcode = "S2_storerh_pi";
19582 let isNVStorable = 1;
19583 let Constraints = "$Rx32 = $Rx32in";
19584 }
19585 def S2_pstorerht_zomap : HInst<
19586 (outs),
19587 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19588 "if ($Pv4) memh($Rs32) = $Rt32",
19589 tc_3d905451, TypeMAPPING> {
19590 let isPseudo = 1;
19591 let isCodeGenOnly = 1;
19592 }
19593 def S2_pstorerhtnew_pi : HInst<
19594 (outs IntRegs:$Rx32),
19595 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19596 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
19597 tc_7675c0e9, TypeST>, Enc_b886fd, AddrModeRel {
19598 let Inst{2-2} = 0b0;
19599 let Inst{7-7} = 0b1;
19600 let Inst{13-13} = 0b1;
19601 let Inst{31-21} = 0b10101011010;
19602 let isPredicated = 1;
19603 let addrMode = PostInc;
19604 let accessSize = HalfWordAccess;
19605 let isPredicatedNew = 1;
19606 let mayStore = 1;
19607 let BaseOpcode = "S2_storerh_pi";
19608 let isNVStorable = 1;
19609 let Constraints = "$Rx32 = $Rx32in";
19610 }
19611 def S2_pstorerif_io : HInst<
19612 (outs),
19613 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
19614 "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
19615 tc_3d905451, TypeV2LDST>, Enc_397f23, AddrModeRel {
19616 let Inst{2-2} = 0b0;
19617 let Inst{31-21} = 0b01000100100;
19618 let isPredicated = 1;
19619 let isPredicatedFalse = 1;
19620 let addrMode = BaseImmOffset;
19621 let accessSize = WordAccess;
19622 let mayStore = 1;
19623 let CextOpcode = "S2_storeri";
19624 let InputType = "imm";
19625 let BaseOpcode = "S2_storeri_io";
19626 let isNVStorable = 1;
19627 let isExtendable = 1;
19628 let opExtendable = 2;
19629 let isExtentSigned = 0;
19630 let opExtentBits = 8;
19631 let opExtentAlign = 2;
19632 }
19633 def S2_pstorerif_pi : HInst<
19634 (outs IntRegs:$Rx32),
19635 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
19636 "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
19637 tc_9b73d261, TypeST>, Enc_7eaeb6, AddrModeRel {
19638 let Inst{2-2} = 0b1;
19639 let Inst{7-7} = 0b0;
19640 let Inst{13-13} = 0b1;
19641 let Inst{31-21} = 0b10101011100;
19642 let isPredicated = 1;
19643 let isPredicatedFalse = 1;
19644 let addrMode = PostInc;
19645 let accessSize = WordAccess;
19646 let mayStore = 1;
19647 let BaseOpcode = "S2_storeri_pi";
19648 let isNVStorable = 1;
19649 let Constraints = "$Rx32 = $Rx32in";
19650 }
19651 def S2_pstorerif_zomap : HInst<
19652 (outs),
19653 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19654 "if (!$Pv4) memw($Rs32) = $Rt32",
19655 tc_3d905451, TypeMAPPING> {
19656 let isPseudo = 1;
19657 let isCodeGenOnly = 1;
19658 }
19659 def S2_pstorerifnew_pi : HInst<
19660 (outs IntRegs:$Rx32),
19661 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
19662 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
19663 tc_7675c0e9, TypeST>, Enc_7eaeb6, AddrModeRel {
19664 let Inst{2-2} = 0b1;
19665 let Inst{7-7} = 0b1;
19666 let Inst{13-13} = 0b1;
19667 let Inst{31-21} = 0b10101011100;
19668 let isPredicated = 1;
19669 let isPredicatedFalse = 1;
19670 let addrMode = PostInc;
19671 let accessSize = WordAccess;
19672 let isPredicatedNew = 1;
19673 let mayStore = 1;
19674 let CextOpcode = "S2_storeri";
19675 let BaseOpcode = "S2_storeri_pi";
19676 let isNVStorable = 1;
19677 let Constraints = "$Rx32 = $Rx32in";
19678 }
19679 def S2_pstorerinewf_io : HInst<
19680 (outs),
19681 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
19682 "if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
19683 tc_9da3628f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
19684 let Inst{2-2} = 0b0;
19685 let Inst{12-11} = 0b10;
19686 let Inst{31-21} = 0b01000100101;
19687 let isPredicated = 1;
19688 let isPredicatedFalse = 1;
19689 let addrMode = BaseImmOffset;
19690 let accessSize = WordAccess;
19691 let isNVStore = 1;
19692 let isNewValue = 1;
19693 let mayStore = 1;
19694 let CextOpcode = "S2_storeri";
19695 let InputType = "imm";
19696 let BaseOpcode = "S2_storeri_io";
19697 let isExtendable = 1;
19698 let opExtendable = 2;
19699 let isExtentSigned = 0;
19700 let opExtentBits = 8;
19701 let opExtentAlign = 2;
19702 let opNewValue = 3;
19703 }
19704 def S2_pstorerinewf_pi : HInst<
19705 (outs IntRegs:$Rx32),
19706 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
19707 "if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
19708 tc_e2480a7f, TypeST>, Enc_65f095, AddrModeRel {
19709 let Inst{2-2} = 0b1;
19710 let Inst{7-7} = 0b0;
19711 let Inst{13-11} = 0b110;
19712 let Inst{31-21} = 0b10101011101;
19713 let isPredicated = 1;
19714 let isPredicatedFalse = 1;
19715 let addrMode = PostInc;
19716 let accessSize = WordAccess;
19717 let isNVStore = 1;
19718 let isNewValue = 1;
19719 let mayStore = 1;
19720 let CextOpcode = "S2_storeri";
19721 let BaseOpcode = "S2_storeri_pi";
19722 let opNewValue = 4;
19723 let Constraints = "$Rx32 = $Rx32in";
19724 }
19725 def S2_pstorerinewf_zomap : HInst<
19726 (outs),
19727 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19728 "if (!$Pv4) memw($Rs32) = $Nt8.new",
19729 tc_9da3628f, TypeMAPPING> {
19730 let isPseudo = 1;
19731 let isCodeGenOnly = 1;
19732 let opNewValue = 2;
19733 }
19734 def S2_pstorerinewfnew_pi : HInst<
19735 (outs IntRegs:$Rx32),
19736 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
19737 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
19738 tc_8fab9ac3, TypeST>, Enc_65f095, AddrModeRel {
19739 let Inst{2-2} = 0b1;
19740 let Inst{7-7} = 0b1;
19741 let Inst{13-11} = 0b110;
19742 let Inst{31-21} = 0b10101011101;
19743 let isPredicated = 1;
19744 let isPredicatedFalse = 1;
19745 let addrMode = PostInc;
19746 let accessSize = WordAccess;
19747 let isNVStore = 1;
19748 let isPredicatedNew = 1;
19749 let isNewValue = 1;
19750 let mayStore = 1;
19751 let CextOpcode = "S2_storeri";
19752 let BaseOpcode = "S2_storeri_pi";
19753 let opNewValue = 4;
19754 let Constraints = "$Rx32 = $Rx32in";
19755 }
19756 def S2_pstorerinewt_io : HInst<
19757 (outs),
19758 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
19759 "if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
19760 tc_9da3628f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
19761 let Inst{2-2} = 0b0;
19762 let Inst{12-11} = 0b10;
19763 let Inst{31-21} = 0b01000000101;
19764 let isPredicated = 1;
19765 let addrMode = BaseImmOffset;
19766 let accessSize = WordAccess;
19767 let isNVStore = 1;
19768 let isNewValue = 1;
19769 let mayStore = 1;
19770 let CextOpcode = "S2_storeri";
19771 let InputType = "imm";
19772 let BaseOpcode = "S2_storeri_io";
19773 let isExtendable = 1;
19774 let opExtendable = 2;
19775 let isExtentSigned = 0;
19776 let opExtentBits = 8;
19777 let opExtentAlign = 2;
19778 let opNewValue = 3;
19779 }
19780 def S2_pstorerinewt_pi : HInst<
19781 (outs IntRegs:$Rx32),
19782 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
19783 "if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
19784 tc_e2480a7f, TypeST>, Enc_65f095, AddrModeRel {
19785 let Inst{2-2} = 0b0;
19786 let Inst{7-7} = 0b0;
19787 let Inst{13-11} = 0b110;
19788 let Inst{31-21} = 0b10101011101;
19789 let isPredicated = 1;
19790 let addrMode = PostInc;
19791 let accessSize = WordAccess;
19792 let isNVStore = 1;
19793 let isNewValue = 1;
19794 let mayStore = 1;
19795 let CextOpcode = "S2_storeri";
19796 let BaseOpcode = "S2_storeri_pi";
19797 let opNewValue = 4;
19798 let Constraints = "$Rx32 = $Rx32in";
19799 }
19800 def S2_pstorerinewt_zomap : HInst<
19801 (outs),
19802 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19803 "if ($Pv4) memw($Rs32) = $Nt8.new",
19804 tc_9da3628f, TypeMAPPING> {
19805 let isPseudo = 1;
19806 let isCodeGenOnly = 1;
19807 let opNewValue = 2;
19808 }
19809 def S2_pstorerinewtnew_pi : HInst<
19810 (outs IntRegs:$Rx32),
19811 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
19812 "if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
19813 tc_8fab9ac3, TypeST>, Enc_65f095, AddrModeRel {
19814 let Inst{2-2} = 0b0;
19815 let Inst{7-7} = 0b1;
19816 let Inst{13-11} = 0b110;
19817 let Inst{31-21} = 0b10101011101;
19818 let isPredicated = 1;
19819 let addrMode = PostInc;
19820 let accessSize = WordAccess;
19821 let isNVStore = 1;
19822 let isPredicatedNew = 1;
19823 let isNewValue = 1;
19824 let mayStore = 1;
19825 let CextOpcode = "S2_storeri";
19826 let BaseOpcode = "S2_storeri_pi";
19827 let opNewValue = 4;
19828 let Constraints = "$Rx32 = $Rx32in";
19829 }
19830 def S2_pstorerit_io : HInst<
19831 (outs),
19832 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
19833 "if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
19834 tc_3d905451, TypeV2LDST>, Enc_397f23, AddrModeRel {
19835 let Inst{2-2} = 0b0;
19836 let Inst{31-21} = 0b01000000100;
19837 let isPredicated = 1;
19838 let addrMode = BaseImmOffset;
19839 let accessSize = WordAccess;
19840 let mayStore = 1;
19841 let CextOpcode = "S2_storeri";
19842 let InputType = "imm";
19843 let BaseOpcode = "S2_storeri_io";
19844 let isNVStorable = 1;
19845 let isExtendable = 1;
19846 let opExtendable = 2;
19847 let isExtentSigned = 0;
19848 let opExtentBits = 8;
19849 let opExtentAlign = 2;
19850 }
19851 def S2_pstorerit_pi : HInst<
19852 (outs IntRegs:$Rx32),
19853 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
19854 "if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
19855 tc_9b73d261, TypeST>, Enc_7eaeb6, AddrModeRel {
19856 let Inst{2-2} = 0b0;
19857 let Inst{7-7} = 0b0;
19858 let Inst{13-13} = 0b1;
19859 let Inst{31-21} = 0b10101011100;
19860 let isPredicated = 1;
19861 let addrMode = PostInc;
19862 let accessSize = WordAccess;
19863 let mayStore = 1;
19864 let BaseOpcode = "S2_storeri_pi";
19865 let isNVStorable = 1;
19866 let Constraints = "$Rx32 = $Rx32in";
19867 }
19868 def S2_pstorerit_zomap : HInst<
19869 (outs),
19870 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19871 "if ($Pv4) memw($Rs32) = $Rt32",
19872 tc_3d905451, TypeMAPPING> {
19873 let isPseudo = 1;
19874 let isCodeGenOnly = 1;
19875 }
19876 def S2_pstoreritnew_pi : HInst<
19877 (outs IntRegs:$Rx32),
19878 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
19879 "if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
19880 tc_7675c0e9, TypeST>, Enc_7eaeb6, AddrModeRel {
19881 let Inst{2-2} = 0b0;
19882 let Inst{7-7} = 0b1;
19883 let Inst{13-13} = 0b1;
19884 let Inst{31-21} = 0b10101011100;
19885 let isPredicated = 1;
19886 let addrMode = PostInc;
19887 let accessSize = WordAccess;
19888 let isPredicatedNew = 1;
19889 let mayStore = 1;
19890 let BaseOpcode = "S2_storeri_pi";
19891 let isNVStorable = 1;
19892 let Constraints = "$Rx32 = $Rx32in";
19893 }
19894 def S2_setbit_i : HInst<
19895 (outs IntRegs:$Rd32),
19896 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19897 "$Rd32 = setbit($Rs32,#$Ii)",
19898 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
19899 let Inst{7-5} = 0b000;
19900 let Inst{13-13} = 0b0;
19901 let Inst{31-21} = 0b10001100110;
19902 let hasNewValue = 1;
19903 let opNewValue = 0;
19904 }
19905 def S2_setbit_r : HInst<
19906 (outs IntRegs:$Rd32),
19907 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19908 "$Rd32 = setbit($Rs32,$Rt32)",
19909 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
19910 let Inst{7-5} = 0b000;
19911 let Inst{13-13} = 0b0;
19912 let Inst{31-21} = 0b11000110100;
19913 let hasNewValue = 1;
19914 let opNewValue = 0;
19915 }
19916 def S2_shuffeb : HInst<
19917 (outs DoubleRegs:$Rdd32),
19918 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19919 "$Rdd32 = shuffeb($Rss32,$Rtt32)",
19920 tc_9c18c9a5, TypeS_3op>, Enc_a56825 {
19921 let Inst{7-5} = 0b010;
19922 let Inst{13-13} = 0b0;
19923 let Inst{31-21} = 0b11000001000;
19924 }
19925 def S2_shuffeh : HInst<
19926 (outs DoubleRegs:$Rdd32),
19927 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19928 "$Rdd32 = shuffeh($Rss32,$Rtt32)",
19929 tc_9c18c9a5, TypeS_3op>, Enc_a56825 {
19930 let Inst{7-5} = 0b110;
19931 let Inst{13-13} = 0b0;
19932 let Inst{31-21} = 0b11000001000;
19933 }
19934 def S2_shuffob : HInst<
19935 (outs DoubleRegs:$Rdd32),
19936 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
19937 "$Rdd32 = shuffob($Rtt32,$Rss32)",
19938 tc_9c18c9a5, TypeS_3op>, Enc_ea23e4 {
19939 let Inst{7-5} = 0b100;
19940 let Inst{13-13} = 0b0;
19941 let Inst{31-21} = 0b11000001000;
19942 }
19943 def S2_shuffoh : HInst<
19944 (outs DoubleRegs:$Rdd32),
19945 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
19946 "$Rdd32 = shuffoh($Rtt32,$Rss32)",
19947 tc_9c18c9a5, TypeS_3op>, Enc_ea23e4 {
19948 let Inst{7-5} = 0b000;
19949 let Inst{13-13} = 0b0;
19950 let Inst{31-21} = 0b11000001100;
19951 }
19952 def S2_storerb_io : HInst<
19953 (outs),
19954 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
19955 "memb($Rs32+#$Ii) = $Rt32",
19956 tc_53ee6546, TypeST>, Enc_448f7f, AddrModeRel {
19957 let Inst{24-21} = 0b1000;
19958 let Inst{31-27} = 0b10100;
19959 let addrMode = BaseImmOffset;
19960 let accessSize = ByteAccess;
19961 let mayStore = 1;
19962 let CextOpcode = "S2_storerb";
19963 let InputType = "imm";
19964 let BaseOpcode = "S2_storerb_io";
19965 let isPredicable = 1;
19966 let isNVStorable = 1;
19967 let isExtendable = 1;
19968 let opExtendable = 1;
19969 let isExtentSigned = 1;
19970 let opExtentBits = 11;
19971 let opExtentAlign = 0;
19972 }
19973 def S2_storerb_pbr : HInst<
19974 (outs IntRegs:$Rx32),
19975 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
19976 "memb($Rx32++$Mu2:brev) = $Rt32",
19977 tc_20a8e109, TypeST>, Enc_d5c73f, AddrModeRel {
19978 let Inst{7-0} = 0b00000000;
19979 let Inst{31-21} = 0b10101111000;
19980 let accessSize = ByteAccess;
19981 let mayStore = 1;
19982 let BaseOpcode = "S2_storerb_pbr";
19983 let isNVStorable = 1;
19984 let Constraints = "$Rx32 = $Rx32in";
19985 }
19986 def S2_storerb_pci : HInst<
19987 (outs IntRegs:$Rx32),
19988 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
19989 "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
19990 tc_251c87b2, TypeST>, Enc_b15941 {
19991 let Inst{2-0} = 0b000;
19992 let Inst{7-7} = 0b0;
19993 let Inst{31-21} = 0b10101001000;
19994 let addrMode = PostInc;
19995 let accessSize = ByteAccess;
19996 let mayStore = 1;
19997 let Uses = [CS];
19998 let isNVStorable = 1;
19999 let Constraints = "$Rx32 = $Rx32in";
20000 }
20001 def S2_storerb_pcr : HInst<
20002 (outs IntRegs:$Rx32),
20003 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20004 "memb($Rx32++I:circ($Mu2)) = $Rt32",
20005 tc_20a8e109, TypeST>, Enc_d5c73f {
20006 let Inst{7-0} = 0b00000010;
20007 let Inst{31-21} = 0b10101001000;
20008 let addrMode = PostInc;
20009 let accessSize = ByteAccess;
20010 let mayStore = 1;
20011 let Uses = [CS];
20012 let isNVStorable = 1;
20013 let Constraints = "$Rx32 = $Rx32in";
20014 }
20015 def S2_storerb_pi : HInst<
20016 (outs IntRegs:$Rx32),
20017 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20018 "memb($Rx32++#$Ii) = $Rt32",
20019 tc_20a8e109, TypeST>, Enc_10bc21, AddrModeRel {
20020 let Inst{2-0} = 0b000;
20021 let Inst{7-7} = 0b0;
20022 let Inst{13-13} = 0b0;
20023 let Inst{31-21} = 0b10101011000;
20024 let addrMode = PostInc;
20025 let accessSize = ByteAccess;
20026 let mayStore = 1;
20027 let BaseOpcode = "S2_storerb_pi";
20028 let isPredicable = 1;
20029 let isNVStorable = 1;
20030 let Constraints = "$Rx32 = $Rx32in";
20031 }
20032 def S2_storerb_pr : HInst<
20033 (outs IntRegs:$Rx32),
20034 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20035 "memb($Rx32++$Mu2) = $Rt32",
20036 tc_20a8e109, TypeST>, Enc_d5c73f {
20037 let Inst{7-0} = 0b00000000;
20038 let Inst{31-21} = 0b10101101000;
20039 let addrMode = PostInc;
20040 let accessSize = ByteAccess;
20041 let mayStore = 1;
20042 let isNVStorable = 1;
20043 let Constraints = "$Rx32 = $Rx32in";
20044 }
20045 def S2_storerb_zomap : HInst<
20046 (outs),
20047 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20048 "memb($Rs32) = $Rt32",
20049 tc_53ee6546, TypeMAPPING> {
20050 let isPseudo = 1;
20051 let isCodeGenOnly = 1;
20052 }
20053 def S2_storerbgp : HInst<
20054 (outs),
20055 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
20056 "memb(gp+#$Ii) = $Rt32",
20057 tc_c14739d5, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
20058 let Inst{24-21} = 0b0000;
20059 let Inst{31-27} = 0b01001;
20060 let accessSize = ByteAccess;
20061 let mayStore = 1;
20062 let Uses = [GP];
20063 let BaseOpcode = "S2_storerbabs";
20064 let isPredicable = 1;
20065 let isNVStorable = 1;
20066 let opExtendable = 0;
20067 let isExtentSigned = 0;
20068 let opExtentBits = 16;
20069 let opExtentAlign = 0;
20070 }
20071 def S2_storerbnew_io : HInst<
20072 (outs),
20073 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
20074 "memb($Rs32+#$Ii) = $Nt8.new",
20075 tc_6c576d46, TypeST>, Enc_4df4e9, AddrModeRel {
20076 let Inst{12-11} = 0b00;
20077 let Inst{24-21} = 0b1101;
20078 let Inst{31-27} = 0b10100;
20079 let addrMode = BaseImmOffset;
20080 let accessSize = ByteAccess;
20081 let isNVStore = 1;
20082 let isNewValue = 1;
20083 let mayStore = 1;
20084 let CextOpcode = "S2_storerb";
20085 let InputType = "imm";
20086 let BaseOpcode = "S2_storerb_io";
20087 let isPredicable = 1;
20088 let isExtendable = 1;
20089 let opExtendable = 1;
20090 let isExtentSigned = 1;
20091 let opExtentBits = 11;
20092 let opExtentAlign = 0;
20093 let opNewValue = 2;
20094 }
20095 def S2_storerbnew_pbr : HInst<
20096 (outs IntRegs:$Rx32),
20097 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20098 "memb($Rx32++$Mu2:brev) = $Nt8.new",
20099 tc_c8f9a6f6, TypeST>, Enc_8dbe85, AddrModeRel {
20100 let Inst{7-0} = 0b00000000;
20101 let Inst{12-11} = 0b00;
20102 let Inst{31-21} = 0b10101111101;
20103 let accessSize = ByteAccess;
20104 let isNVStore = 1;
20105 let isNewValue = 1;
20106 let mayStore = 1;
20107 let BaseOpcode = "S2_storerb_pbr";
20108 let opNewValue = 3;
20109 let Constraints = "$Rx32 = $Rx32in";
20110 }
20111 def S2_storerbnew_pci : HInst<
20112 (outs IntRegs:$Rx32),
20113 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
20114 "memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
20115 tc_9c68db63, TypeST>, Enc_96ce4f {
20116 let Inst{2-0} = 0b000;
20117 let Inst{7-7} = 0b0;
20118 let Inst{12-11} = 0b00;
20119 let Inst{31-21} = 0b10101001101;
20120 let addrMode = PostInc;
20121 let accessSize = ByteAccess;
20122 let isNVStore = 1;
20123 let isNewValue = 1;
20124 let mayStore = 1;
20125 let Uses = [CS];
20126 let opNewValue = 4;
20127 let Constraints = "$Rx32 = $Rx32in";
20128 }
20129 def S2_storerbnew_pcr : HInst<
20130 (outs IntRegs:$Rx32),
20131 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20132 "memb($Rx32++I:circ($Mu2)) = $Nt8.new",
20133 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20134 let Inst{7-0} = 0b00000010;
20135 let Inst{12-11} = 0b00;
20136 let Inst{31-21} = 0b10101001101;
20137 let addrMode = PostInc;
20138 let accessSize = ByteAccess;
20139 let isNVStore = 1;
20140 let isNewValue = 1;
20141 let mayStore = 1;
20142 let Uses = [CS];
20143 let opNewValue = 3;
20144 let Constraints = "$Rx32 = $Rx32in";
20145 }
20146 def S2_storerbnew_pi : HInst<
20147 (outs IntRegs:$Rx32),
20148 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
20149 "memb($Rx32++#$Ii) = $Nt8.new",
20150 tc_c8f9a6f6, TypeST>, Enc_c7cd90, AddrModeRel {
20151 let Inst{2-0} = 0b000;
20152 let Inst{7-7} = 0b0;
20153 let Inst{13-11} = 0b000;
20154 let Inst{31-21} = 0b10101011101;
20155 let addrMode = PostInc;
20156 let accessSize = ByteAccess;
20157 let isNVStore = 1;
20158 let isNewValue = 1;
20159 let mayStore = 1;
20160 let BaseOpcode = "S2_storerb_pi";
20161 let isPredicable = 1;
20162 let isNVStorable = 1;
20163 let opNewValue = 3;
20164 let Constraints = "$Rx32 = $Rx32in";
20165 }
20166 def S2_storerbnew_pr : HInst<
20167 (outs IntRegs:$Rx32),
20168 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20169 "memb($Rx32++$Mu2) = $Nt8.new",
20170 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20171 let Inst{7-0} = 0b00000000;
20172 let Inst{12-11} = 0b00;
20173 let Inst{31-21} = 0b10101101101;
20174 let addrMode = PostInc;
20175 let accessSize = ByteAccess;
20176 let isNVStore = 1;
20177 let isNewValue = 1;
20178 let mayStore = 1;
20179 let opNewValue = 3;
20180 let Constraints = "$Rx32 = $Rx32in";
20181 }
20182 def S2_storerbnew_zomap : HInst<
20183 (outs),
20184 (ins IntRegs:$Rs32, IntRegs:$Nt8),
20185 "memb($Rs32) = $Nt8.new",
20186 tc_6c576d46, TypeMAPPING> {
20187 let isPseudo = 1;
20188 let isCodeGenOnly = 1;
20189 let opNewValue = 1;
20190 }
20191 def S2_storerbnewgp : HInst<
20192 (outs),
20193 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
20194 "memb(gp+#$Ii) = $Nt8.new",
20195 tc_9e86015f, TypeV2LDST>, Enc_ad1831, AddrModeRel {
20196 let Inst{12-11} = 0b00;
20197 let Inst{24-21} = 0b0101;
20198 let Inst{31-27} = 0b01001;
20199 let accessSize = ByteAccess;
20200 let isNVStore = 1;
20201 let isNewValue = 1;
20202 let mayStore = 1;
20203 let Uses = [GP];
20204 let BaseOpcode = "S2_storerbabs";
20205 let isPredicable = 1;
20206 let opExtendable = 0;
20207 let isExtentSigned = 0;
20208 let opExtentBits = 16;
20209 let opExtentAlign = 0;
20210 let opNewValue = 1;
20211 }
20212 def S2_storerd_io : HInst<
20213 (outs),
20214 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
20215 "memd($Rs32+#$Ii) = $Rtt32",
20216 tc_53ee6546, TypeST>, Enc_ce6828, AddrModeRel {
20217 let Inst{24-21} = 0b1110;
20218 let Inst{31-27} = 0b10100;
20219 let addrMode = BaseImmOffset;
20220 let accessSize = DoubleWordAccess;
20221 let mayStore = 1;
20222 let CextOpcode = "S2_storerd";
20223 let InputType = "imm";
20224 let BaseOpcode = "S2_storerd_io";
20225 let isPredicable = 1;
20226 let isExtendable = 1;
20227 let opExtendable = 1;
20228 let isExtentSigned = 1;
20229 let opExtentBits = 14;
20230 let opExtentAlign = 3;
20231 }
20232 def S2_storerd_pbr : HInst<
20233 (outs IntRegs:$Rx32),
20234 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20235 "memd($Rx32++$Mu2:brev) = $Rtt32",
20236 tc_20a8e109, TypeST>, Enc_928ca1 {
20237 let Inst{7-0} = 0b00000000;
20238 let Inst{31-21} = 0b10101111110;
20239 let accessSize = DoubleWordAccess;
20240 let mayStore = 1;
20241 let Constraints = "$Rx32 = $Rx32in";
20242 }
20243 def S2_storerd_pci : HInst<
20244 (outs IntRegs:$Rx32),
20245 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20246 "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
20247 tc_251c87b2, TypeST>, Enc_395cc4 {
20248 let Inst{2-0} = 0b000;
20249 let Inst{7-7} = 0b0;
20250 let Inst{31-21} = 0b10101001110;
20251 let addrMode = PostInc;
20252 let accessSize = DoubleWordAccess;
20253 let mayStore = 1;
20254 let Uses = [CS];
20255 let Constraints = "$Rx32 = $Rx32in";
20256 }
20257 def S2_storerd_pcr : HInst<
20258 (outs IntRegs:$Rx32),
20259 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20260 "memd($Rx32++I:circ($Mu2)) = $Rtt32",
20261 tc_20a8e109, TypeST>, Enc_928ca1 {
20262 let Inst{7-0} = 0b00000010;
20263 let Inst{31-21} = 0b10101001110;
20264 let addrMode = PostInc;
20265 let accessSize = DoubleWordAccess;
20266 let mayStore = 1;
20267 let Uses = [CS];
20268 let Constraints = "$Rx32 = $Rx32in";
20269 }
20270 def S2_storerd_pi : HInst<
20271 (outs IntRegs:$Rx32),
20272 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20273 "memd($Rx32++#$Ii) = $Rtt32",
20274 tc_20a8e109, TypeST>, Enc_85bf58, AddrModeRel {
20275 let Inst{2-0} = 0b000;
20276 let Inst{7-7} = 0b0;
20277 let Inst{13-13} = 0b0;
20278 let Inst{31-21} = 0b10101011110;
20279 let addrMode = PostInc;
20280 let accessSize = DoubleWordAccess;
20281 let mayStore = 1;
20282 let CextOpcode = "S2_storerd";
20283 let BaseOpcode = "S2_storerd_pi";
20284 let isPredicable = 1;
20285 let Constraints = "$Rx32 = $Rx32in";
20286 }
20287 def S2_storerd_pr : HInst<
20288 (outs IntRegs:$Rx32),
20289 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20290 "memd($Rx32++$Mu2) = $Rtt32",
20291 tc_20a8e109, TypeST>, Enc_928ca1 {
20292 let Inst{7-0} = 0b00000000;
20293 let Inst{31-21} = 0b10101101110;
20294 let addrMode = PostInc;
20295 let accessSize = DoubleWordAccess;
20296 let mayStore = 1;
20297 let Constraints = "$Rx32 = $Rx32in";
20298 }
20299 def S2_storerd_zomap : HInst<
20300 (outs),
20301 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
20302 "memd($Rs32) = $Rtt32",
20303 tc_53ee6546, TypeMAPPING> {
20304 let isPseudo = 1;
20305 let isCodeGenOnly = 1;
20306 }
20307 def S2_storerdgp : HInst<
20308 (outs),
20309 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20310 "memd(gp+#$Ii) = $Rtt32",
20311 tc_c14739d5, TypeV2LDST>, Enc_5c124a, AddrModeRel {
20312 let Inst{24-21} = 0b0110;
20313 let Inst{31-27} = 0b01001;
20314 let accessSize = DoubleWordAccess;
20315 let mayStore = 1;
20316 let Uses = [GP];
20317 let BaseOpcode = "S2_storerdabs";
20318 let isPredicable = 1;
20319 let opExtendable = 0;
20320 let isExtentSigned = 0;
20321 let opExtentBits = 19;
20322 let opExtentAlign = 3;
20323 }
20324 def S2_storerf_io : HInst<
20325 (outs),
20326 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
20327 "memh($Rs32+#$Ii) = $Rt32.h",
20328 tc_53ee6546, TypeST>, Enc_e957fb, AddrModeRel {
20329 let Inst{24-21} = 0b1011;
20330 let Inst{31-27} = 0b10100;
20331 let addrMode = BaseImmOffset;
20332 let accessSize = HalfWordAccess;
20333 let mayStore = 1;
20334 let CextOpcode = "S2_storerf";
20335 let InputType = "imm";
20336 let BaseOpcode = "S2_storerf_io";
20337 let isPredicable = 1;
20338 let isExtendable = 1;
20339 let opExtendable = 1;
20340 let isExtentSigned = 1;
20341 let opExtentBits = 12;
20342 let opExtentAlign = 1;
20343 }
20344 def S2_storerf_pbr : HInst<
20345 (outs IntRegs:$Rx32),
20346 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20347 "memh($Rx32++$Mu2:brev) = $Rt32.h",
20348 tc_20a8e109, TypeST>, Enc_d5c73f {
20349 let Inst{7-0} = 0b00000000;
20350 let Inst{31-21} = 0b10101111011;
20351 let accessSize = HalfWordAccess;
20352 let mayStore = 1;
20353 let Constraints = "$Rx32 = $Rx32in";
20354 }
20355 def S2_storerf_pci : HInst<
20356 (outs IntRegs:$Rx32),
20357 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20358 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
20359 tc_251c87b2, TypeST>, Enc_935d9b {
20360 let Inst{2-0} = 0b000;
20361 let Inst{7-7} = 0b0;
20362 let Inst{31-21} = 0b10101001011;
20363 let addrMode = PostInc;
20364 let accessSize = HalfWordAccess;
20365 let mayStore = 1;
20366 let Uses = [CS];
20367 let Constraints = "$Rx32 = $Rx32in";
20368 }
20369 def S2_storerf_pcr : HInst<
20370 (outs IntRegs:$Rx32),
20371 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20372 "memh($Rx32++I:circ($Mu2)) = $Rt32.h",
20373 tc_20a8e109, TypeST>, Enc_d5c73f {
20374 let Inst{7-0} = 0b00000010;
20375 let Inst{31-21} = 0b10101001011;
20376 let addrMode = PostInc;
20377 let accessSize = HalfWordAccess;
20378 let mayStore = 1;
20379 let Uses = [CS];
20380 let Constraints = "$Rx32 = $Rx32in";
20381 }
20382 def S2_storerf_pi : HInst<
20383 (outs IntRegs:$Rx32),
20384 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20385 "memh($Rx32++#$Ii) = $Rt32.h",
20386 tc_20a8e109, TypeST>, Enc_052c7d, AddrModeRel {
20387 let Inst{2-0} = 0b000;
20388 let Inst{7-7} = 0b0;
20389 let Inst{13-13} = 0b0;
20390 let Inst{31-21} = 0b10101011011;
20391 let addrMode = PostInc;
20392 let accessSize = HalfWordAccess;
20393 let mayStore = 1;
20394 let CextOpcode = "S2_storerf";
20395 let BaseOpcode = "S2_storerf_pi";
20396 let isPredicable = 1;
20397 let Constraints = "$Rx32 = $Rx32in";
20398 }
20399 def S2_storerf_pr : HInst<
20400 (outs IntRegs:$Rx32),
20401 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20402 "memh($Rx32++$Mu2) = $Rt32.h",
20403 tc_20a8e109, TypeST>, Enc_d5c73f {
20404 let Inst{7-0} = 0b00000000;
20405 let Inst{31-21} = 0b10101101011;
20406 let addrMode = PostInc;
20407 let accessSize = HalfWordAccess;
20408 let mayStore = 1;
20409 let Constraints = "$Rx32 = $Rx32in";
20410 }
20411 def S2_storerf_zomap : HInst<
20412 (outs),
20413 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20414 "memh($Rs32) = $Rt32.h",
20415 tc_53ee6546, TypeMAPPING> {
20416 let isPseudo = 1;
20417 let isCodeGenOnly = 1;
20418 }
20419 def S2_storerfgp : HInst<
20420 (outs),
20421 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
20422 "memh(gp+#$Ii) = $Rt32.h",
20423 tc_c14739d5, TypeV2LDST>, Enc_fda92c, AddrModeRel {
20424 let Inst{24-21} = 0b0011;
20425 let Inst{31-27} = 0b01001;
20426 let accessSize = HalfWordAccess;
20427 let mayStore = 1;
20428 let Uses = [GP];
20429 let BaseOpcode = "S2_storerfabs";
20430 let isPredicable = 1;
20431 let opExtendable = 0;
20432 let isExtentSigned = 0;
20433 let opExtentBits = 17;
20434 let opExtentAlign = 1;
20435 }
20436 def S2_storerh_io : HInst<
20437 (outs),
20438 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
20439 "memh($Rs32+#$Ii) = $Rt32",
20440 tc_53ee6546, TypeST>, Enc_e957fb, AddrModeRel {
20441 let Inst{24-21} = 0b1010;
20442 let Inst{31-27} = 0b10100;
20443 let addrMode = BaseImmOffset;
20444 let accessSize = HalfWordAccess;
20445 let mayStore = 1;
20446 let CextOpcode = "S2_storerh";
20447 let InputType = "imm";
20448 let BaseOpcode = "S2_storerh_io";
20449 let isPredicable = 1;
20450 let isNVStorable = 1;
20451 let isExtendable = 1;
20452 let opExtendable = 1;
20453 let isExtentSigned = 1;
20454 let opExtentBits = 12;
20455 let opExtentAlign = 1;
20456 }
20457 def S2_storerh_pbr : HInst<
20458 (outs IntRegs:$Rx32),
20459 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20460 "memh($Rx32++$Mu2:brev) = $Rt32",
20461 tc_20a8e109, TypeST>, Enc_d5c73f, AddrModeRel {
20462 let Inst{7-0} = 0b00000000;
20463 let Inst{31-21} = 0b10101111010;
20464 let accessSize = HalfWordAccess;
20465 let mayStore = 1;
20466 let BaseOpcode = "S2_storerh_pbr";
20467 let isNVStorable = 1;
20468 let Constraints = "$Rx32 = $Rx32in";
20469 }
20470 def S2_storerh_pci : HInst<
20471 (outs IntRegs:$Rx32),
20472 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20473 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20474 tc_251c87b2, TypeST>, Enc_935d9b {
20475 let Inst{2-0} = 0b000;
20476 let Inst{7-7} = 0b0;
20477 let Inst{31-21} = 0b10101001010;
20478 let addrMode = PostInc;
20479 let accessSize = HalfWordAccess;
20480 let mayStore = 1;
20481 let Uses = [CS];
20482 let isNVStorable = 1;
20483 let Constraints = "$Rx32 = $Rx32in";
20484 }
20485 def S2_storerh_pcr : HInst<
20486 (outs IntRegs:$Rx32),
20487 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20488 "memh($Rx32++I:circ($Mu2)) = $Rt32",
20489 tc_20a8e109, TypeST>, Enc_d5c73f {
20490 let Inst{7-0} = 0b00000010;
20491 let Inst{31-21} = 0b10101001010;
20492 let addrMode = PostInc;
20493 let accessSize = HalfWordAccess;
20494 let mayStore = 1;
20495 let Uses = [CS];
20496 let isNVStorable = 1;
20497 let Constraints = "$Rx32 = $Rx32in";
20498 }
20499 def S2_storerh_pi : HInst<
20500 (outs IntRegs:$Rx32),
20501 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20502 "memh($Rx32++#$Ii) = $Rt32",
20503 tc_20a8e109, TypeST>, Enc_052c7d, AddrModeRel {
20504 let Inst{2-0} = 0b000;
20505 let Inst{7-7} = 0b0;
20506 let Inst{13-13} = 0b0;
20507 let Inst{31-21} = 0b10101011010;
20508 let addrMode = PostInc;
20509 let accessSize = HalfWordAccess;
20510 let mayStore = 1;
20511 let BaseOpcode = "S2_storerh_pi";
20512 let isPredicable = 1;
20513 let isNVStorable = 1;
20514 let Constraints = "$Rx32 = $Rx32in";
20515 }
20516 def S2_storerh_pr : HInst<
20517 (outs IntRegs:$Rx32),
20518 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20519 "memh($Rx32++$Mu2) = $Rt32",
20520 tc_20a8e109, TypeST>, Enc_d5c73f {
20521 let Inst{7-0} = 0b00000000;
20522 let Inst{31-21} = 0b10101101010;
20523 let addrMode = PostInc;
20524 let accessSize = HalfWordAccess;
20525 let mayStore = 1;
20526 let isNVStorable = 1;
20527 let Constraints = "$Rx32 = $Rx32in";
20528 }
20529 def S2_storerh_zomap : HInst<
20530 (outs),
20531 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20532 "memh($Rs32) = $Rt32",
20533 tc_53ee6546, TypeMAPPING> {
20534 let isPseudo = 1;
20535 let isCodeGenOnly = 1;
20536 }
20537 def S2_storerhgp : HInst<
20538 (outs),
20539 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
20540 "memh(gp+#$Ii) = $Rt32",
20541 tc_c14739d5, TypeV2LDST>, Enc_fda92c, AddrModeRel {
20542 let Inst{24-21} = 0b0010;
20543 let Inst{31-27} = 0b01001;
20544 let accessSize = HalfWordAccess;
20545 let mayStore = 1;
20546 let Uses = [GP];
20547 let BaseOpcode = "S2_storerhabs";
20548 let isPredicable = 1;
20549 let isNVStorable = 1;
20550 let opExtendable = 0;
20551 let isExtentSigned = 0;
20552 let opExtentBits = 17;
20553 let opExtentAlign = 1;
20554 }
20555 def S2_storerhnew_io : HInst<
20556 (outs),
20557 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
20558 "memh($Rs32+#$Ii) = $Nt8.new",
20559 tc_6c576d46, TypeST>, Enc_0d8870, AddrModeRel {
20560 let Inst{12-11} = 0b01;
20561 let Inst{24-21} = 0b1101;
20562 let Inst{31-27} = 0b10100;
20563 let addrMode = BaseImmOffset;
20564 let accessSize = HalfWordAccess;
20565 let isNVStore = 1;
20566 let isNewValue = 1;
20567 let mayStore = 1;
20568 let CextOpcode = "S2_storerh";
20569 let InputType = "imm";
20570 let BaseOpcode = "S2_storerh_io";
20571 let isPredicable = 1;
20572 let isExtendable = 1;
20573 let opExtendable = 1;
20574 let isExtentSigned = 1;
20575 let opExtentBits = 12;
20576 let opExtentAlign = 1;
20577 let opNewValue = 2;
20578 }
20579 def S2_storerhnew_pbr : HInst<
20580 (outs IntRegs:$Rx32),
20581 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20582 "memh($Rx32++$Mu2:brev) = $Nt8.new",
20583 tc_c8f9a6f6, TypeST>, Enc_8dbe85, AddrModeRel {
20584 let Inst{7-0} = 0b00000000;
20585 let Inst{12-11} = 0b01;
20586 let Inst{31-21} = 0b10101111101;
20587 let accessSize = HalfWordAccess;
20588 let isNVStore = 1;
20589 let isNewValue = 1;
20590 let mayStore = 1;
20591 let BaseOpcode = "S2_storerh_pbr";
20592 let opNewValue = 3;
20593 let Constraints = "$Rx32 = $Rx32in";
20594 }
20595 def S2_storerhnew_pci : HInst<
20596 (outs IntRegs:$Rx32),
20597 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
20598 "memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
20599 tc_9c68db63, TypeST>, Enc_91b9fe {
20600 let Inst{2-0} = 0b000;
20601 let Inst{7-7} = 0b0;
20602 let Inst{12-11} = 0b01;
20603 let Inst{31-21} = 0b10101001101;
20604 let addrMode = PostInc;
20605 let accessSize = HalfWordAccess;
20606 let isNVStore = 1;
20607 let isNewValue = 1;
20608 let mayStore = 1;
20609 let Uses = [CS];
20610 let opNewValue = 4;
20611 let Constraints = "$Rx32 = $Rx32in";
20612 }
20613 def S2_storerhnew_pcr : HInst<
20614 (outs IntRegs:$Rx32),
20615 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20616 "memh($Rx32++I:circ($Mu2)) = $Nt8.new",
20617 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20618 let Inst{7-0} = 0b00000010;
20619 let Inst{12-11} = 0b01;
20620 let Inst{31-21} = 0b10101001101;
20621 let addrMode = PostInc;
20622 let accessSize = HalfWordAccess;
20623 let isNVStore = 1;
20624 let isNewValue = 1;
20625 let mayStore = 1;
20626 let Uses = [CS];
20627 let opNewValue = 3;
20628 let Constraints = "$Rx32 = $Rx32in";
20629 }
20630 def S2_storerhnew_pi : HInst<
20631 (outs IntRegs:$Rx32),
20632 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20633 "memh($Rx32++#$Ii) = $Nt8.new",
20634 tc_c8f9a6f6, TypeST>, Enc_e26546, AddrModeRel {
20635 let Inst{2-0} = 0b000;
20636 let Inst{7-7} = 0b0;
20637 let Inst{13-11} = 0b001;
20638 let Inst{31-21} = 0b10101011101;
20639 let addrMode = PostInc;
20640 let accessSize = HalfWordAccess;
20641 let isNVStore = 1;
20642 let isNewValue = 1;
20643 let mayStore = 1;
20644 let BaseOpcode = "S2_storerh_pi";
20645 let isNVStorable = 1;
20646 let isPredicable = 1;
20647 let opNewValue = 3;
20648 let Constraints = "$Rx32 = $Rx32in";
20649 }
20650 def S2_storerhnew_pr : HInst<
20651 (outs IntRegs:$Rx32),
20652 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20653 "memh($Rx32++$Mu2) = $Nt8.new",
20654 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20655 let Inst{7-0} = 0b00000000;
20656 let Inst{12-11} = 0b01;
20657 let Inst{31-21} = 0b10101101101;
20658 let addrMode = PostInc;
20659 let accessSize = HalfWordAccess;
20660 let isNVStore = 1;
20661 let isNewValue = 1;
20662 let mayStore = 1;
20663 let opNewValue = 3;
20664 let Constraints = "$Rx32 = $Rx32in";
20665 }
20666 def S2_storerhnew_zomap : HInst<
20667 (outs),
20668 (ins IntRegs:$Rs32, IntRegs:$Nt8),
20669 "memh($Rs32) = $Nt8.new",
20670 tc_6c576d46, TypeMAPPING> {
20671 let isPseudo = 1;
20672 let isCodeGenOnly = 1;
20673 let opNewValue = 1;
20674 }
20675 def S2_storerhnewgp : HInst<
20676 (outs),
20677 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
20678 "memh(gp+#$Ii) = $Nt8.new",
20679 tc_9e86015f, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
20680 let Inst{12-11} = 0b01;
20681 let Inst{24-21} = 0b0101;
20682 let Inst{31-27} = 0b01001;
20683 let accessSize = HalfWordAccess;
20684 let isNVStore = 1;
20685 let isNewValue = 1;
20686 let mayStore = 1;
20687 let Uses = [GP];
20688 let BaseOpcode = "S2_storerhabs";
20689 let isPredicable = 1;
20690 let opExtendable = 0;
20691 let isExtentSigned = 0;
20692 let opExtentBits = 17;
20693 let opExtentAlign = 1;
20694 let opNewValue = 1;
20695 }
20696 def S2_storeri_io : HInst<
20697 (outs),
20698 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
20699 "memw($Rs32+#$Ii) = $Rt32",
20700 tc_53ee6546, TypeST>, Enc_143445, AddrModeRel {
20701 let Inst{24-21} = 0b1100;
20702 let Inst{31-27} = 0b10100;
20703 let addrMode = BaseImmOffset;
20704 let accessSize = WordAccess;
20705 let mayStore = 1;
20706 let CextOpcode = "S2_storeri";
20707 let InputType = "imm";
20708 let BaseOpcode = "S2_storeri_io";
20709 let isPredicable = 1;
20710 let isNVStorable = 1;
20711 let isExtendable = 1;
20712 let opExtendable = 1;
20713 let isExtentSigned = 1;
20714 let opExtentBits = 13;
20715 let opExtentAlign = 2;
20716 }
20717 def S2_storeri_pbr : HInst<
20718 (outs IntRegs:$Rx32),
20719 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20720 "memw($Rx32++$Mu2:brev) = $Rt32",
20721 tc_20a8e109, TypeST>, Enc_d5c73f, AddrModeRel {
20722 let Inst{7-0} = 0b00000000;
20723 let Inst{31-21} = 0b10101111100;
20724 let accessSize = WordAccess;
20725 let mayStore = 1;
20726 let BaseOpcode = "S2_storeri_pbr";
20727 let isNVStorable = 1;
20728 let Constraints = "$Rx32 = $Rx32in";
20729 }
20730 def S2_storeri_pci : HInst<
20731 (outs IntRegs:$Rx32),
20732 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20733 "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20734 tc_251c87b2, TypeST>, Enc_79b8c8 {
20735 let Inst{2-0} = 0b000;
20736 let Inst{7-7} = 0b0;
20737 let Inst{31-21} = 0b10101001100;
20738 let addrMode = PostInc;
20739 let accessSize = WordAccess;
20740 let mayStore = 1;
20741 let Uses = [CS];
20742 let isNVStorable = 1;
20743 let Constraints = "$Rx32 = $Rx32in";
20744 }
20745 def S2_storeri_pcr : HInst<
20746 (outs IntRegs:$Rx32),
20747 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20748 "memw($Rx32++I:circ($Mu2)) = $Rt32",
20749 tc_20a8e109, TypeST>, Enc_d5c73f {
20750 let Inst{7-0} = 0b00000010;
20751 let Inst{31-21} = 0b10101001100;
20752 let addrMode = PostInc;
20753 let accessSize = WordAccess;
20754 let mayStore = 1;
20755 let Uses = [CS];
20756 let isNVStorable = 1;
20757 let Constraints = "$Rx32 = $Rx32in";
20758 }
20759 def S2_storeri_pi : HInst<
20760 (outs IntRegs:$Rx32),
20761 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20762 "memw($Rx32++#$Ii) = $Rt32",
20763 tc_20a8e109, TypeST>, Enc_db40cd, AddrModeRel {
20764 let Inst{2-0} = 0b000;
20765 let Inst{7-7} = 0b0;
20766 let Inst{13-13} = 0b0;
20767 let Inst{31-21} = 0b10101011100;
20768 let addrMode = PostInc;
20769 let accessSize = WordAccess;
20770 let mayStore = 1;
20771 let BaseOpcode = "S2_storeri_pi";
20772 let isPredicable = 1;
20773 let isNVStorable = 1;
20774 let Constraints = "$Rx32 = $Rx32in";
20775 }
20776 def S2_storeri_pr : HInst<
20777 (outs IntRegs:$Rx32),
20778 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20779 "memw($Rx32++$Mu2) = $Rt32",
20780 tc_20a8e109, TypeST>, Enc_d5c73f {
20781 let Inst{7-0} = 0b00000000;
20782 let Inst{31-21} = 0b10101101100;
20783 let addrMode = PostInc;
20784 let accessSize = WordAccess;
20785 let mayStore = 1;
20786 let isNVStorable = 1;
20787 let Constraints = "$Rx32 = $Rx32in";
20788 }
20789 def S2_storeri_zomap : HInst<
20790 (outs),
20791 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20792 "memw($Rs32) = $Rt32",
20793 tc_53ee6546, TypeMAPPING> {
20794 let isPseudo = 1;
20795 let isCodeGenOnly = 1;
20796 }
20797 def S2_storerigp : HInst<
20798 (outs),
20799 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
20800 "memw(gp+#$Ii) = $Rt32",
20801 tc_c14739d5, TypeV2LDST>, Enc_541f26, AddrModeRel {
20802 let Inst{24-21} = 0b0100;
20803 let Inst{31-27} = 0b01001;
20804 let accessSize = WordAccess;
20805 let mayStore = 1;
20806 let Uses = [GP];
20807 let BaseOpcode = "S2_storeriabs";
20808 let isPredicable = 1;
20809 let isNVStorable = 1;
20810 let opExtendable = 0;
20811 let isExtentSigned = 0;
20812 let opExtentBits = 18;
20813 let opExtentAlign = 2;
20814 }
20815 def S2_storerinew_io : HInst<
20816 (outs),
20817 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
20818 "memw($Rs32+#$Ii) = $Nt8.new",
20819 tc_6c576d46, TypeST>, Enc_690862, AddrModeRel {
20820 let Inst{12-11} = 0b10;
20821 let Inst{24-21} = 0b1101;
20822 let Inst{31-27} = 0b10100;
20823 let addrMode = BaseImmOffset;
20824 let accessSize = WordAccess;
20825 let isNVStore = 1;
20826 let isNewValue = 1;
20827 let mayStore = 1;
20828 let CextOpcode = "S2_storeri";
20829 let InputType = "imm";
20830 let BaseOpcode = "S2_storeri_io";
20831 let isPredicable = 1;
20832 let isExtendable = 1;
20833 let opExtendable = 1;
20834 let isExtentSigned = 1;
20835 let opExtentBits = 13;
20836 let opExtentAlign = 2;
20837 let opNewValue = 2;
20838 }
20839 def S2_storerinew_pbr : HInst<
20840 (outs IntRegs:$Rx32),
20841 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20842 "memw($Rx32++$Mu2:brev) = $Nt8.new",
20843 tc_c8f9a6f6, TypeST>, Enc_8dbe85, AddrModeRel {
20844 let Inst{7-0} = 0b00000000;
20845 let Inst{12-11} = 0b10;
20846 let Inst{31-21} = 0b10101111101;
20847 let accessSize = WordAccess;
20848 let isNVStore = 1;
20849 let isNewValue = 1;
20850 let mayStore = 1;
20851 let BaseOpcode = "S2_storeri_pbr";
20852 let opNewValue = 3;
20853 let Constraints = "$Rx32 = $Rx32in";
20854 }
20855 def S2_storerinew_pci : HInst<
20856 (outs IntRegs:$Rx32),
20857 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
20858 "memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
20859 tc_9c68db63, TypeST>, Enc_3f97c8 {
20860 let Inst{2-0} = 0b000;
20861 let Inst{7-7} = 0b0;
20862 let Inst{12-11} = 0b10;
20863 let Inst{31-21} = 0b10101001101;
20864 let addrMode = PostInc;
20865 let accessSize = WordAccess;
20866 let isNVStore = 1;
20867 let isNewValue = 1;
20868 let mayStore = 1;
20869 let Uses = [CS];
20870 let opNewValue = 4;
20871 let Constraints = "$Rx32 = $Rx32in";
20872 }
20873 def S2_storerinew_pcr : HInst<
20874 (outs IntRegs:$Rx32),
20875 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20876 "memw($Rx32++I:circ($Mu2)) = $Nt8.new",
20877 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20878 let Inst{7-0} = 0b00000010;
20879 let Inst{12-11} = 0b10;
20880 let Inst{31-21} = 0b10101001101;
20881 let addrMode = PostInc;
20882 let accessSize = WordAccess;
20883 let isNVStore = 1;
20884 let isNewValue = 1;
20885 let mayStore = 1;
20886 let Uses = [CS];
20887 let opNewValue = 3;
20888 let Constraints = "$Rx32 = $Rx32in";
20889 }
20890 def S2_storerinew_pi : HInst<
20891 (outs IntRegs:$Rx32),
20892 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20893 "memw($Rx32++#$Ii) = $Nt8.new",
20894 tc_c8f9a6f6, TypeST>, Enc_223005, AddrModeRel {
20895 let Inst{2-0} = 0b000;
20896 let Inst{7-7} = 0b0;
20897 let Inst{13-11} = 0b010;
20898 let Inst{31-21} = 0b10101011101;
20899 let addrMode = PostInc;
20900 let accessSize = WordAccess;
20901 let isNVStore = 1;
20902 let isNewValue = 1;
20903 let mayStore = 1;
20904 let BaseOpcode = "S2_storeri_pi";
20905 let isPredicable = 1;
20906 let opNewValue = 3;
20907 let Constraints = "$Rx32 = $Rx32in";
20908 }
20909 def S2_storerinew_pr : HInst<
20910 (outs IntRegs:$Rx32),
20911 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20912 "memw($Rx32++$Mu2) = $Nt8.new",
20913 tc_c8f9a6f6, TypeST>, Enc_8dbe85 {
20914 let Inst{7-0} = 0b00000000;
20915 let Inst{12-11} = 0b10;
20916 let Inst{31-21} = 0b10101101101;
20917 let addrMode = PostInc;
20918 let accessSize = WordAccess;
20919 let isNVStore = 1;
20920 let isNewValue = 1;
20921 let mayStore = 1;
20922 let opNewValue = 3;
20923 let Constraints = "$Rx32 = $Rx32in";
20924 }
20925 def S2_storerinew_zomap : HInst<
20926 (outs),
20927 (ins IntRegs:$Rs32, IntRegs:$Nt8),
20928 "memw($Rs32) = $Nt8.new",
20929 tc_6c576d46, TypeMAPPING> {
20930 let isPseudo = 1;
20931 let isCodeGenOnly = 1;
20932 let opNewValue = 1;
20933 }
20934 def S2_storerinewgp : HInst<
20935 (outs),
20936 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
20937 "memw(gp+#$Ii) = $Nt8.new",
20938 tc_9e86015f, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
20939 let Inst{12-11} = 0b10;
20940 let Inst{24-21} = 0b0101;
20941 let Inst{31-27} = 0b01001;
20942 let accessSize = WordAccess;
20943 let isNVStore = 1;
20944 let isNewValue = 1;
20945 let mayStore = 1;
20946 let Uses = [GP];
20947 let BaseOpcode = "S2_storeriabs";
20948 let isPredicable = 1;
20949 let opExtendable = 0;
20950 let isExtentSigned = 0;
20951 let opExtentBits = 18;
20952 let opExtentAlign = 2;
20953 let opNewValue = 1;
20954 }
20955 def S2_storew_locked : HInst<
20956 (outs PredRegs:$Pd4),
20957 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20958 "memw_locked($Rs32,$Pd4) = $Rt32",
20959 tc_7d01cbdc, TypeST>, Enc_c2b48e {
20960 let Inst{7-2} = 0b000000;
20961 let Inst{13-13} = 0b0;
20962 let Inst{31-21} = 0b10100000101;
20963 let accessSize = WordAccess;
20964 let isPredicateLate = 1;
20965 let isSoloAX = 1;
20966 let mayStore = 1;
20967 }
20968 def S2_svsathb : HInst<
20969 (outs IntRegs:$Rd32),
20970 (ins IntRegs:$Rs32),
20971 "$Rd32 = vsathb($Rs32)",
20972 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
20973 let Inst{13-5} = 0b000000000;
20974 let Inst{31-21} = 0b10001100100;
20975 let hasNewValue = 1;
20976 let opNewValue = 0;
20977 let Defs = [USR_OVF];
20978 }
20979 def S2_svsathub : HInst<
20980 (outs IntRegs:$Rd32),
20981 (ins IntRegs:$Rs32),
20982 "$Rd32 = vsathub($Rs32)",
20983 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
20984 let Inst{13-5} = 0b000000010;
20985 let Inst{31-21} = 0b10001100100;
20986 let hasNewValue = 1;
20987 let opNewValue = 0;
20988 let Defs = [USR_OVF];
20989 }
20990 def S2_tableidxb : HInst<
20991 (outs IntRegs:$Rx32),
20992 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
20993 "$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
20994 tc_d95f4e98, TypeS_2op>, Enc_cd82bc {
20995 let Inst{31-22} = 0b1000011100;
20996 let hasNewValue = 1;
20997 let opNewValue = 0;
20998 let prefersSlot3 = 1;
20999 let Constraints = "$Rx32 = $Rx32in";
21000 }
21001 def S2_tableidxb_goodsyntax : HInst<
21002 (outs IntRegs:$Rx32),
21003 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21004 "$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
21005 tc_d95f4e98, TypeS_2op> {
21006 let hasNewValue = 1;
21007 let opNewValue = 0;
21008 let isPseudo = 1;
21009 let isCodeGenOnly = 1;
21010 let Constraints = "$Rx32 = $Rx32in";
21011 }
21012 def S2_tableidxd : HInst<
21013 (outs IntRegs:$Rx32),
21014 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21015 "$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
21016 tc_d95f4e98, TypeS_2op>, Enc_cd82bc {
21017 let Inst{31-22} = 0b1000011111;
21018 let hasNewValue = 1;
21019 let opNewValue = 0;
21020 let prefersSlot3 = 1;
21021 let Constraints = "$Rx32 = $Rx32in";
21022 }
21023 def S2_tableidxd_goodsyntax : HInst<
21024 (outs IntRegs:$Rx32),
21025 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21026 "$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
21027 tc_d95f4e98, TypeS_2op> {
21028 let hasNewValue = 1;
21029 let opNewValue = 0;
21030 let isPseudo = 1;
21031 let Constraints = "$Rx32 = $Rx32in";
21032 }
21033 def S2_tableidxh : HInst<
21034 (outs IntRegs:$Rx32),
21035 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21036 "$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
21037 tc_d95f4e98, TypeS_2op>, Enc_cd82bc {
21038 let Inst{31-22} = 0b1000011101;
21039 let hasNewValue = 1;
21040 let opNewValue = 0;
21041 let prefersSlot3 = 1;
21042 let Constraints = "$Rx32 = $Rx32in";
21043 }
21044 def S2_tableidxh_goodsyntax : HInst<
21045 (outs IntRegs:$Rx32),
21046 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21047 "$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
21048 tc_d95f4e98, TypeS_2op> {
21049 let hasNewValue = 1;
21050 let opNewValue = 0;
21051 let isPseudo = 1;
21052 let Constraints = "$Rx32 = $Rx32in";
21053 }
21054 def S2_tableidxw : HInst<
21055 (outs IntRegs:$Rx32),
21056 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21057 "$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
21058 tc_d95f4e98, TypeS_2op>, Enc_cd82bc {
21059 let Inst{31-22} = 0b1000011110;
21060 let hasNewValue = 1;
21061 let opNewValue = 0;
21062 let prefersSlot3 = 1;
21063 let Constraints = "$Rx32 = $Rx32in";
21064 }
21065 def S2_tableidxw_goodsyntax : HInst<
21066 (outs IntRegs:$Rx32),
21067 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21068 "$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
21069 tc_d95f4e98, TypeS_2op> {
21070 let hasNewValue = 1;
21071 let opNewValue = 0;
21072 let isPseudo = 1;
21073 let Constraints = "$Rx32 = $Rx32in";
21074 }
21075 def S2_togglebit_i : HInst<
21076 (outs IntRegs:$Rd32),
21077 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
21078 "$Rd32 = togglebit($Rs32,#$Ii)",
21079 tc_9c18c9a5, TypeS_2op>, Enc_a05677 {
21080 let Inst{7-5} = 0b010;
21081 let Inst{13-13} = 0b0;
21082 let Inst{31-21} = 0b10001100110;
21083 let hasNewValue = 1;
21084 let opNewValue = 0;
21085 }
21086 def S2_togglebit_r : HInst<
21087 (outs IntRegs:$Rd32),
21088 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21089 "$Rd32 = togglebit($Rs32,$Rt32)",
21090 tc_9c18c9a5, TypeS_3op>, Enc_5ab2be {
21091 let Inst{7-5} = 0b100;
21092 let Inst{13-13} = 0b0;
21093 let Inst{31-21} = 0b11000110100;
21094 let hasNewValue = 1;
21095 let opNewValue = 0;
21096 }
21097 def S2_tstbit_i : HInst<
21098 (outs PredRegs:$Pd4),
21099 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
21100 "$Pd4 = tstbit($Rs32,#$Ii)",
21101 tc_5fa2857c, TypeS_2op>, Enc_83ee64 {
21102 let Inst{7-2} = 0b000000;
21103 let Inst{13-13} = 0b0;
21104 let Inst{31-21} = 0b10000101000;
21105 }
21106 def S2_tstbit_r : HInst<
21107 (outs PredRegs:$Pd4),
21108 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21109 "$Pd4 = tstbit($Rs32,$Rt32)",
21110 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
21111 let Inst{7-2} = 0b000000;
21112 let Inst{13-13} = 0b0;
21113 let Inst{31-21} = 0b11000111000;
21114 }
21115 def S2_valignib : HInst<
21116 (outs DoubleRegs:$Rdd32),
21117 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
21118 "$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
21119 tc_d1b5a4b6, TypeS_3op>, Enc_729ff7 {
21120 let Inst{13-13} = 0b0;
21121 let Inst{31-21} = 0b11000000000;
21122 }
21123 def S2_valignrb : HInst<
21124 (outs DoubleRegs:$Rdd32),
21125 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
21126 "$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
21127 tc_d1b5a4b6, TypeS_3op>, Enc_8c6530 {
21128 let Inst{7-7} = 0b0;
21129 let Inst{13-13} = 0b0;
21130 let Inst{31-21} = 0b11000010000;
21131 }
21132 def S2_vcnegh : HInst<
21133 (outs DoubleRegs:$Rdd32),
21134 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21135 "$Rdd32 = vcnegh($Rss32,$Rt32)",
21136 tc_47ab9233, TypeS_3op>, Enc_927852 {
21137 let Inst{7-5} = 0b010;
21138 let Inst{13-13} = 0b0;
21139 let Inst{31-21} = 0b11000011110;
21140 let prefersSlot3 = 1;
21141 let Defs = [USR_OVF];
21142 }
21143 def S2_vcrotate : HInst<
21144 (outs DoubleRegs:$Rdd32),
21145 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21146 "$Rdd32 = vcrotate($Rss32,$Rt32)",
21147 tc_63cd9d2d, TypeS_3op>, Enc_927852 {
21148 let Inst{7-5} = 0b000;
21149 let Inst{13-13} = 0b0;
21150 let Inst{31-21} = 0b11000011110;
21151 let prefersSlot3 = 1;
21152 let Defs = [USR_OVF];
21153 }
21154 def S2_vrcnegh : HInst<
21155 (outs DoubleRegs:$Rxx32),
21156 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
21157 "$Rxx32 += vrcnegh($Rss32,$Rt32)",
21158 tc_8cb685d9, TypeS_3op>, Enc_1aa186 {
21159 let Inst{7-5} = 0b111;
21160 let Inst{13-13} = 0b1;
21161 let Inst{31-21} = 0b11001011001;
21162 let prefersSlot3 = 1;
21163 let Constraints = "$Rxx32 = $Rxx32in";
21164 }
21165 def S2_vrndpackwh : HInst<
21166 (outs IntRegs:$Rd32),
21167 (ins DoubleRegs:$Rss32),
21168 "$Rd32 = vrndwh($Rss32)",
21169 tc_88fa2da6, TypeS_2op>, Enc_90cd8b {
21170 let Inst{13-5} = 0b000000100;
21171 let Inst{31-21} = 0b10001000100;
21172 let hasNewValue = 1;
21173 let opNewValue = 0;
21174 let prefersSlot3 = 1;
21175 }
21176 def S2_vrndpackwhs : HInst<
21177 (outs IntRegs:$Rd32),
21178 (ins DoubleRegs:$Rss32),
21179 "$Rd32 = vrndwh($Rss32):sat",
21180 tc_94e6ffd9, TypeS_2op>, Enc_90cd8b {
21181 let Inst{13-5} = 0b000000110;
21182 let Inst{31-21} = 0b10001000100;
21183 let hasNewValue = 1;
21184 let opNewValue = 0;
21185 let prefersSlot3 = 1;
21186 let Defs = [USR_OVF];
21187 }
21188 def S2_vsathb : HInst<
21189 (outs IntRegs:$Rd32),
21190 (ins DoubleRegs:$Rss32),
21191 "$Rd32 = vsathb($Rss32)",
21192 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21193 let Inst{13-5} = 0b000000110;
21194 let Inst{31-21} = 0b10001000000;
21195 let hasNewValue = 1;
21196 let opNewValue = 0;
21197 let Defs = [USR_OVF];
21198 }
21199 def S2_vsathb_nopack : HInst<
21200 (outs DoubleRegs:$Rdd32),
21201 (ins DoubleRegs:$Rss32),
21202 "$Rdd32 = vsathb($Rss32)",
21203 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
21204 let Inst{13-5} = 0b000000111;
21205 let Inst{31-21} = 0b10000000000;
21206 let Defs = [USR_OVF];
21207 }
21208 def S2_vsathub : HInst<
21209 (outs IntRegs:$Rd32),
21210 (ins DoubleRegs:$Rss32),
21211 "$Rd32 = vsathub($Rss32)",
21212 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21213 let Inst{13-5} = 0b000000000;
21214 let Inst{31-21} = 0b10001000000;
21215 let hasNewValue = 1;
21216 let opNewValue = 0;
21217 let Defs = [USR_OVF];
21218 }
21219 def S2_vsathub_nopack : HInst<
21220 (outs DoubleRegs:$Rdd32),
21221 (ins DoubleRegs:$Rss32),
21222 "$Rdd32 = vsathub($Rss32)",
21223 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
21224 let Inst{13-5} = 0b000000100;
21225 let Inst{31-21} = 0b10000000000;
21226 let Defs = [USR_OVF];
21227 }
21228 def S2_vsatwh : HInst<
21229 (outs IntRegs:$Rd32),
21230 (ins DoubleRegs:$Rss32),
21231 "$Rd32 = vsatwh($Rss32)",
21232 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21233 let Inst{13-5} = 0b000000010;
21234 let Inst{31-21} = 0b10001000000;
21235 let hasNewValue = 1;
21236 let opNewValue = 0;
21237 let Defs = [USR_OVF];
21238 }
21239 def S2_vsatwh_nopack : HInst<
21240 (outs DoubleRegs:$Rdd32),
21241 (ins DoubleRegs:$Rss32),
21242 "$Rdd32 = vsatwh($Rss32)",
21243 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
21244 let Inst{13-5} = 0b000000110;
21245 let Inst{31-21} = 0b10000000000;
21246 let Defs = [USR_OVF];
21247 }
21248 def S2_vsatwuh : HInst<
21249 (outs IntRegs:$Rd32),
21250 (ins DoubleRegs:$Rss32),
21251 "$Rd32 = vsatwuh($Rss32)",
21252 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21253 let Inst{13-5} = 0b000000100;
21254 let Inst{31-21} = 0b10001000000;
21255 let hasNewValue = 1;
21256 let opNewValue = 0;
21257 let Defs = [USR_OVF];
21258 }
21259 def S2_vsatwuh_nopack : HInst<
21260 (outs DoubleRegs:$Rdd32),
21261 (ins DoubleRegs:$Rss32),
21262 "$Rdd32 = vsatwuh($Rss32)",
21263 tc_b86c7e8b, TypeS_2op>, Enc_b9c5fb {
21264 let Inst{13-5} = 0b000000101;
21265 let Inst{31-21} = 0b10000000000;
21266 let Defs = [USR_OVF];
21267 }
21268 def S2_vsplatrb : HInst<
21269 (outs IntRegs:$Rd32),
21270 (ins IntRegs:$Rs32),
21271 "$Rd32 = vsplatb($Rs32)",
21272 tc_b86c7e8b, TypeS_2op>, Enc_5e2823 {
21273 let Inst{13-5} = 0b000000111;
21274 let Inst{31-21} = 0b10001100010;
21275 let hasNewValue = 1;
21276 let opNewValue = 0;
21277 let isReMaterializable = 1;
21278 let isAsCheapAsAMove = 1;
21279 }
21280 def S2_vsplatrh : HInst<
21281 (outs DoubleRegs:$Rdd32),
21282 (ins IntRegs:$Rs32),
21283 "$Rdd32 = vsplath($Rs32)",
21284 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
21285 let Inst{13-5} = 0b000000010;
21286 let Inst{31-21} = 0b10000100010;
21287 let isReMaterializable = 1;
21288 let isAsCheapAsAMove = 1;
21289 }
21290 def S2_vspliceib : HInst<
21291 (outs DoubleRegs:$Rdd32),
21292 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
21293 "$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
21294 tc_d1b5a4b6, TypeS_3op>, Enc_d50cd3 {
21295 let Inst{13-13} = 0b0;
21296 let Inst{31-21} = 0b11000000100;
21297 }
21298 def S2_vsplicerb : HInst<
21299 (outs DoubleRegs:$Rdd32),
21300 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
21301 "$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
21302 tc_d1b5a4b6, TypeS_3op>, Enc_dbd70c {
21303 let Inst{7-7} = 0b0;
21304 let Inst{13-13} = 0b0;
21305 let Inst{31-21} = 0b11000010100;
21306 }
21307 def S2_vsxtbh : HInst<
21308 (outs DoubleRegs:$Rdd32),
21309 (ins IntRegs:$Rs32),
21310 "$Rdd32 = vsxtbh($Rs32)",
21311 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
21312 let Inst{13-5} = 0b000000000;
21313 let Inst{31-21} = 0b10000100000;
21314 let isReMaterializable = 1;
21315 let isAsCheapAsAMove = 1;
21316 }
21317 def S2_vsxthw : HInst<
21318 (outs DoubleRegs:$Rdd32),
21319 (ins IntRegs:$Rs32),
21320 "$Rdd32 = vsxthw($Rs32)",
21321 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
21322 let Inst{13-5} = 0b000000100;
21323 let Inst{31-21} = 0b10000100000;
21324 let isReMaterializable = 1;
21325 let isAsCheapAsAMove = 1;
21326 }
21327 def S2_vtrunehb : HInst<
21328 (outs IntRegs:$Rd32),
21329 (ins DoubleRegs:$Rss32),
21330 "$Rd32 = vtrunehb($Rss32)",
21331 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21332 let Inst{13-5} = 0b000000010;
21333 let Inst{31-21} = 0b10001000100;
21334 let hasNewValue = 1;
21335 let opNewValue = 0;
21336 }
21337 def S2_vtrunewh : HInst<
21338 (outs DoubleRegs:$Rdd32),
21339 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21340 "$Rdd32 = vtrunewh($Rss32,$Rtt32)",
21341 tc_9c18c9a5, TypeS_3op>, Enc_a56825 {
21342 let Inst{7-5} = 0b010;
21343 let Inst{13-13} = 0b0;
21344 let Inst{31-21} = 0b11000001100;
21345 }
21346 def S2_vtrunohb : HInst<
21347 (outs IntRegs:$Rd32),
21348 (ins DoubleRegs:$Rss32),
21349 "$Rd32 = vtrunohb($Rss32)",
21350 tc_b86c7e8b, TypeS_2op>, Enc_90cd8b {
21351 let Inst{13-5} = 0b000000000;
21352 let Inst{31-21} = 0b10001000100;
21353 let hasNewValue = 1;
21354 let opNewValue = 0;
21355 }
21356 def S2_vtrunowh : HInst<
21357 (outs DoubleRegs:$Rdd32),
21358 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21359 "$Rdd32 = vtrunowh($Rss32,$Rtt32)",
21360 tc_9c18c9a5, TypeS_3op>, Enc_a56825 {
21361 let Inst{7-5} = 0b100;
21362 let Inst{13-13} = 0b0;
21363 let Inst{31-21} = 0b11000001100;
21364 }
21365 def S2_vzxtbh : HInst<
21366 (outs DoubleRegs:$Rdd32),
21367 (ins IntRegs:$Rs32),
21368 "$Rdd32 = vzxtbh($Rs32)",
21369 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
21370 let Inst{13-5} = 0b000000010;
21371 let Inst{31-21} = 0b10000100000;
21372 let isReMaterializable = 1;
21373 let isAsCheapAsAMove = 1;
21374 }
21375 def S2_vzxthw : HInst<
21376 (outs DoubleRegs:$Rdd32),
21377 (ins IntRegs:$Rs32),
21378 "$Rdd32 = vzxthw($Rs32)",
21379 tc_b86c7e8b, TypeS_2op>, Enc_3a3d62 {
21380 let Inst{13-5} = 0b000000110;
21381 let Inst{31-21} = 0b10000100000;
21382 let isReMaterializable = 1;
21383 let isAsCheapAsAMove = 1;
21384 }
21385 def S4_addaddi : HInst<
21386 (outs IntRegs:$Rd32),
21387 (ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
21388 "$Rd32 = add($Rs32,add($Ru32,#$Ii))",
21389 tc_090485bb, TypeALU64>, Enc_8b8d61 {
21390 let Inst{31-23} = 0b110110110;
21391 let hasNewValue = 1;
21392 let opNewValue = 0;
21393 let prefersSlot3 = 1;
21394 let isExtendable = 1;
21395 let opExtendable = 3;
21396 let isExtentSigned = 1;
21397 let opExtentBits = 6;
21398 let opExtentAlign = 0;
21399 }
21400 def S4_addi_asl_ri : HInst<
21401 (outs IntRegs:$Rx32),
21402 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21403 "$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
21404 tc_c0cd91a8, TypeALU64>, Enc_c31910 {
21405 let Inst{2-0} = 0b100;
21406 let Inst{4-4} = 0b0;
21407 let Inst{31-24} = 0b11011110;
21408 let hasNewValue = 1;
21409 let opNewValue = 0;
21410 let prefersSlot3 = 1;
21411 let isExtendable = 1;
21412 let opExtendable = 1;
21413 let isExtentSigned = 0;
21414 let opExtentBits = 8;
21415 let opExtentAlign = 0;
21416 let Constraints = "$Rx32 = $Rx32in";
21417 }
21418 def S4_addi_lsr_ri : HInst<
21419 (outs IntRegs:$Rx32),
21420 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21421 "$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
21422 tc_c0cd91a8, TypeALU64>, Enc_c31910 {
21423 let Inst{2-0} = 0b100;
21424 let Inst{4-4} = 0b1;
21425 let Inst{31-24} = 0b11011110;
21426 let hasNewValue = 1;
21427 let opNewValue = 0;
21428 let prefersSlot3 = 1;
21429 let isExtendable = 1;
21430 let opExtendable = 1;
21431 let isExtentSigned = 0;
21432 let opExtentBits = 8;
21433 let opExtentAlign = 0;
21434 let Constraints = "$Rx32 = $Rx32in";
21435 }
21436 def S4_andi_asl_ri : HInst<
21437 (outs IntRegs:$Rx32),
21438 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21439 "$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
21440 tc_3c10f809, TypeALU64>, Enc_c31910 {
21441 let Inst{2-0} = 0b000;
21442 let Inst{4-4} = 0b0;
21443 let Inst{31-24} = 0b11011110;
21444 let hasNewValue = 1;
21445 let opNewValue = 0;
21446 let prefersSlot3 = 1;
21447 let isExtendable = 1;
21448 let opExtendable = 1;
21449 let isExtentSigned = 0;
21450 let opExtentBits = 8;
21451 let opExtentAlign = 0;
21452 let Constraints = "$Rx32 = $Rx32in";
21453 }
21454 def S4_andi_lsr_ri : HInst<
21455 (outs IntRegs:$Rx32),
21456 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21457 "$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
21458 tc_3c10f809, TypeALU64>, Enc_c31910 {
21459 let Inst{2-0} = 0b000;
21460 let Inst{4-4} = 0b1;
21461 let Inst{31-24} = 0b11011110;
21462 let hasNewValue = 1;
21463 let opNewValue = 0;
21464 let prefersSlot3 = 1;
21465 let isExtendable = 1;
21466 let opExtendable = 1;
21467 let isExtentSigned = 0;
21468 let opExtentBits = 8;
21469 let opExtentAlign = 0;
21470 let Constraints = "$Rx32 = $Rx32in";
21471 }
21472 def S4_clbaddi : HInst<
21473 (outs IntRegs:$Rd32),
21474 (ins IntRegs:$Rs32, s6_0Imm:$Ii),
21475 "$Rd32 = add(clb($Rs32),#$Ii)",
21476 tc_87601822, TypeS_2op>, Enc_9fae8a {
21477 let Inst{7-5} = 0b000;
21478 let Inst{31-21} = 0b10001100001;
21479 let hasNewValue = 1;
21480 let opNewValue = 0;
21481 let prefersSlot3 = 1;
21482 }
21483 def S4_clbpaddi : HInst<
21484 (outs IntRegs:$Rd32),
21485 (ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
21486 "$Rd32 = add(clb($Rss32),#$Ii)",
21487 tc_87601822, TypeS_2op>, Enc_a1640c {
21488 let Inst{7-5} = 0b010;
21489 let Inst{31-21} = 0b10001000011;
21490 let hasNewValue = 1;
21491 let opNewValue = 0;
21492 let prefersSlot3 = 1;
21493 }
21494 def S4_clbpnorm : HInst<
21495 (outs IntRegs:$Rd32),
21496 (ins DoubleRegs:$Rss32),
21497 "$Rd32 = normamt($Rss32)",
21498 tc_ab1b5e74, TypeS_2op>, Enc_90cd8b {
21499 let Inst{13-5} = 0b000000000;
21500 let Inst{31-21} = 0b10001000011;
21501 let hasNewValue = 1;
21502 let opNewValue = 0;
21503 let prefersSlot3 = 1;
21504 }
21505 def S4_extract : HInst<
21506 (outs IntRegs:$Rd32),
21507 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
21508 "$Rd32 = extract($Rs32,#$Ii,#$II)",
21509 tc_c0cd91a8, TypeS_2op>, Enc_b388cf {
21510 let Inst{13-13} = 0b0;
21511 let Inst{31-23} = 0b100011011;
21512 let hasNewValue = 1;
21513 let opNewValue = 0;
21514 let prefersSlot3 = 1;
21515 }
21516 def S4_extract_rp : HInst<
21517 (outs IntRegs:$Rd32),
21518 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
21519 "$Rd32 = extract($Rs32,$Rtt32)",
21520 tc_87601822, TypeS_3op>, Enc_e07374 {
21521 let Inst{7-5} = 0b010;
21522 let Inst{13-13} = 0b0;
21523 let Inst{31-21} = 0b11001001000;
21524 let hasNewValue = 1;
21525 let opNewValue = 0;
21526 let prefersSlot3 = 1;
21527 }
21528 def S4_extractp : HInst<
21529 (outs DoubleRegs:$Rdd32),
21530 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
21531 "$Rdd32 = extract($Rss32,#$Ii,#$II)",
21532 tc_c0cd91a8, TypeS_2op>, Enc_b84c4c {
21533 let Inst{31-24} = 0b10001010;
21534 let prefersSlot3 = 1;
21535 }
21536 def S4_extractp_rp : HInst<
21537 (outs DoubleRegs:$Rdd32),
21538 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21539 "$Rdd32 = extract($Rss32,$Rtt32)",
21540 tc_87601822, TypeS_3op>, Enc_a56825 {
21541 let Inst{7-5} = 0b100;
21542 let Inst{13-13} = 0b0;
21543 let Inst{31-21} = 0b11000001110;
21544 let prefersSlot3 = 1;
21545 }
21546 def S4_lsli : HInst<
21547 (outs IntRegs:$Rd32),
21548 (ins s6_0Imm:$Ii, IntRegs:$Rt32),
21549 "$Rd32 = lsl(#$Ii,$Rt32)",
21550 tc_9c18c9a5, TypeS_3op>, Enc_fef969 {
21551 let Inst{7-6} = 0b11;
21552 let Inst{13-13} = 0b0;
21553 let Inst{31-21} = 0b11000110100;
21554 let hasNewValue = 1;
21555 let opNewValue = 0;
21556 }
21557 def S4_ntstbit_i : HInst<
21558 (outs PredRegs:$Pd4),
21559 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
21560 "$Pd4 = !tstbit($Rs32,#$Ii)",
21561 tc_5fa2857c, TypeS_2op>, Enc_83ee64 {
21562 let Inst{7-2} = 0b000000;
21563 let Inst{13-13} = 0b0;
21564 let Inst{31-21} = 0b10000101001;
21565 }
21566 def S4_ntstbit_r : HInst<
21567 (outs PredRegs:$Pd4),
21568 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21569 "$Pd4 = !tstbit($Rs32,$Rt32)",
21570 tc_c58f771a, TypeS_3op>, Enc_c2b48e {
21571 let Inst{7-2} = 0b000000;
21572 let Inst{13-13} = 0b0;
21573 let Inst{31-21} = 0b11000111001;
21574 }
21575 def S4_or_andi : HInst<
21576 (outs IntRegs:$Rx32),
21577 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
21578 "$Rx32 |= and($Rs32,#$Ii)",
21579 tc_3c10f809, TypeALU64>, Enc_b0e9d8 {
21580 let Inst{31-22} = 0b1101101000;
21581 let hasNewValue = 1;
21582 let opNewValue = 0;
21583 let prefersSlot3 = 1;
21584 let InputType = "imm";
21585 let isExtendable = 1;
21586 let opExtendable = 3;
21587 let isExtentSigned = 1;
21588 let opExtentBits = 10;
21589 let opExtentAlign = 0;
21590 let Constraints = "$Rx32 = $Rx32in";
21591 }
21592 def S4_or_andix : HInst<
21593 (outs IntRegs:$Rx32),
21594 (ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
21595 "$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
21596 tc_3c10f809, TypeALU64>, Enc_b4e6cf {
21597 let Inst{31-22} = 0b1101101001;
21598 let hasNewValue = 1;
21599 let opNewValue = 0;
21600 let prefersSlot3 = 1;
21601 let isExtendable = 1;
21602 let opExtendable = 3;
21603 let isExtentSigned = 1;
21604 let opExtentBits = 10;
21605 let opExtentAlign = 0;
21606 let Constraints = "$Rx32 = $Rx32in";
21607 }
21608 def S4_or_ori : HInst<
21609 (outs IntRegs:$Rx32),
21610 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
21611 "$Rx32 |= or($Rs32,#$Ii)",
21612 tc_3c10f809, TypeALU64>, Enc_b0e9d8 {
21613 let Inst{31-22} = 0b1101101010;
21614 let hasNewValue = 1;
21615 let opNewValue = 0;
21616 let prefersSlot3 = 1;
21617 let InputType = "imm";
21618 let isExtendable = 1;
21619 let opExtendable = 3;
21620 let isExtentSigned = 1;
21621 let opExtentBits = 10;
21622 let opExtentAlign = 0;
21623 let Constraints = "$Rx32 = $Rx32in";
21624 }
21625 def S4_ori_asl_ri : HInst<
21626 (outs IntRegs:$Rx32),
21627 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21628 "$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
21629 tc_3c10f809, TypeALU64>, Enc_c31910 {
21630 let Inst{2-0} = 0b010;
21631 let Inst{4-4} = 0b0;
21632 let Inst{31-24} = 0b11011110;
21633 let hasNewValue = 1;
21634 let opNewValue = 0;
21635 let prefersSlot3 = 1;
21636 let isExtendable = 1;
21637 let opExtendable = 1;
21638 let isExtentSigned = 0;
21639 let opExtentBits = 8;
21640 let opExtentAlign = 0;
21641 let Constraints = "$Rx32 = $Rx32in";
21642 }
21643 def S4_ori_lsr_ri : HInst<
21644 (outs IntRegs:$Rx32),
21645 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
21646 "$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
21647 tc_3c10f809, TypeALU64>, Enc_c31910 {
21648 let Inst{2-0} = 0b010;
21649 let Inst{4-4} = 0b1;
21650 let Inst{31-24} = 0b11011110;
21651 let hasNewValue = 1;
21652 let opNewValue = 0;
21653 let prefersSlot3 = 1;
21654 let isExtendable = 1;
21655 let opExtendable = 1;
21656 let isExtentSigned = 0;
21657 let opExtentBits = 8;
21658 let opExtentAlign = 0;
21659 let Constraints = "$Rx32 = $Rx32in";
21660 }
21661 def S4_parity : HInst<
21662 (outs IntRegs:$Rd32),
21663 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21664 "$Rd32 = parity($Rs32,$Rt32)",
21665 tc_87601822, TypeALU64>, Enc_5ab2be {
21666 let Inst{7-5} = 0b000;
21667 let Inst{13-13} = 0b0;
21668 let Inst{31-21} = 0b11010101111;
21669 let hasNewValue = 1;
21670 let opNewValue = 0;
21671 let prefersSlot3 = 1;
21672 }
21673 def S4_pstorerbf_abs : HInst<
21674 (outs),
21675 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
21676 "if (!$Pv4) memb(#$Ii) = $Rt32",
21677 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
21678 let Inst{2-2} = 0b1;
21679 let Inst{7-7} = 0b1;
21680 let Inst{13-13} = 0b0;
21681 let Inst{31-18} = 0b10101111000000;
21682 let isPredicated = 1;
21683 let isPredicatedFalse = 1;
21684 let addrMode = Absolute;
21685 let accessSize = ByteAccess;
21686 let isExtended = 1;
21687 let mayStore = 1;
21688 let CextOpcode = "S2_storerb";
21689 let BaseOpcode = "S2_storerbabs";
21690 let isNVStorable = 1;
21691 let DecoderNamespace = "MustExtend";
21692 let isExtendable = 1;
21693 let opExtendable = 1;
21694 let isExtentSigned = 0;
21695 let opExtentBits = 6;
21696 let opExtentAlign = 0;
21697 }
21698 def S4_pstorerbf_rr : HInst<
21699 (outs),
21700 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
21701 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
21702 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
21703 let Inst{31-21} = 0b00110101000;
21704 let isPredicated = 1;
21705 let isPredicatedFalse = 1;
21706 let addrMode = BaseRegOffset;
21707 let accessSize = ByteAccess;
21708 let mayStore = 1;
21709 let CextOpcode = "S2_storerb";
21710 let InputType = "reg";
21711 let BaseOpcode = "S4_storerb_rr";
21712 let isNVStorable = 1;
21713 }
21714 def S4_pstorerbfnew_abs : HInst<
21715 (outs),
21716 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
21717 "if (!$Pv4.new) memb(#$Ii) = $Rt32",
21718 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
21719 let Inst{2-2} = 0b1;
21720 let Inst{7-7} = 0b1;
21721 let Inst{13-13} = 0b1;
21722 let Inst{31-18} = 0b10101111000000;
21723 let isPredicated = 1;
21724 let isPredicatedFalse = 1;
21725 let addrMode = Absolute;
21726 let accessSize = ByteAccess;
21727 let isPredicatedNew = 1;
21728 let isExtended = 1;
21729 let mayStore = 1;
21730 let CextOpcode = "S2_storerb";
21731 let BaseOpcode = "S2_storerbabs";
21732 let isNVStorable = 1;
21733 let DecoderNamespace = "MustExtend";
21734 let isExtendable = 1;
21735 let opExtendable = 1;
21736 let isExtentSigned = 0;
21737 let opExtentBits = 6;
21738 let opExtentAlign = 0;
21739 }
21740 def S4_pstorerbfnew_io : HInst<
21741 (outs),
21742 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
21743 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
21744 tc_20a8e109, TypeV2LDST>, Enc_da8d43, AddrModeRel {
21745 let Inst{2-2} = 0b0;
21746 let Inst{31-21} = 0b01000110000;
21747 let isPredicated = 1;
21748 let isPredicatedFalse = 1;
21749 let addrMode = BaseImmOffset;
21750 let accessSize = ByteAccess;
21751 let isPredicatedNew = 1;
21752 let mayStore = 1;
21753 let CextOpcode = "S2_storerb";
21754 let InputType = "imm";
21755 let BaseOpcode = "S2_storerb_io";
21756 let isNVStorable = 1;
21757 let isExtendable = 1;
21758 let opExtendable = 2;
21759 let isExtentSigned = 0;
21760 let opExtentBits = 6;
21761 let opExtentAlign = 0;
21762 }
21763 def S4_pstorerbfnew_rr : HInst<
21764 (outs),
21765 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
21766 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
21767 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
21768 let Inst{31-21} = 0b00110111000;
21769 let isPredicated = 1;
21770 let isPredicatedFalse = 1;
21771 let addrMode = BaseRegOffset;
21772 let accessSize = ByteAccess;
21773 let isPredicatedNew = 1;
21774 let mayStore = 1;
21775 let CextOpcode = "S2_storerb";
21776 let InputType = "reg";
21777 let BaseOpcode = "S4_storerb_rr";
21778 let isNVStorable = 1;
21779 }
21780 def S4_pstorerbfnew_zomap : HInst<
21781 (outs),
21782 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
21783 "if (!$Pv4.new) memb($Rs32) = $Rt32",
21784 tc_20a8e109, TypeMAPPING> {
21785 let isPseudo = 1;
21786 let isCodeGenOnly = 1;
21787 }
21788 def S4_pstorerbnewf_abs : HInst<
21789 (outs),
21790 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
21791 "if (!$Pv4) memb(#$Ii) = $Nt8.new",
21792 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
21793 let Inst{2-2} = 0b1;
21794 let Inst{7-7} = 0b1;
21795 let Inst{13-11} = 0b000;
21796 let Inst{31-18} = 0b10101111101000;
21797 let isPredicated = 1;
21798 let isPredicatedFalse = 1;
21799 let addrMode = Absolute;
21800 let accessSize = ByteAccess;
21801 let isNVStore = 1;
21802 let isNewValue = 1;
21803 let isExtended = 1;
21804 let mayStore = 1;
21805 let CextOpcode = "S2_storerb";
21806 let BaseOpcode = "S2_storerbabs";
21807 let DecoderNamespace = "MustExtend";
21808 let isExtendable = 1;
21809 let opExtendable = 1;
21810 let isExtentSigned = 0;
21811 let opExtentBits = 6;
21812 let opExtentAlign = 0;
21813 let opNewValue = 2;
21814 }
21815 def S4_pstorerbnewf_rr : HInst<
21816 (outs),
21817 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
21818 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
21819 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
21820 let Inst{4-3} = 0b00;
21821 let Inst{31-21} = 0b00110101101;
21822 let isPredicated = 1;
21823 let isPredicatedFalse = 1;
21824 let addrMode = BaseRegOffset;
21825 let accessSize = ByteAccess;
21826 let isNVStore = 1;
21827 let isNewValue = 1;
21828 let mayStore = 1;
21829 let CextOpcode = "S2_storerb";
21830 let InputType = "reg";
21831 let BaseOpcode = "S4_storerb_rr";
21832 let opNewValue = 4;
21833 }
21834 def S4_pstorerbnewfnew_abs : HInst<
21835 (outs),
21836 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
21837 "if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
21838 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
21839 let Inst{2-2} = 0b1;
21840 let Inst{7-7} = 0b1;
21841 let Inst{13-11} = 0b100;
21842 let Inst{31-18} = 0b10101111101000;
21843 let isPredicated = 1;
21844 let isPredicatedFalse = 1;
21845 let addrMode = Absolute;
21846 let accessSize = ByteAccess;
21847 let isNVStore = 1;
21848 let isPredicatedNew = 1;
21849 let isNewValue = 1;
21850 let isExtended = 1;
21851 let mayStore = 1;
21852 let CextOpcode = "S2_storerb";
21853 let BaseOpcode = "S2_storerbabs";
21854 let DecoderNamespace = "MustExtend";
21855 let isExtendable = 1;
21856 let opExtendable = 1;
21857 let isExtentSigned = 0;
21858 let opExtentBits = 6;
21859 let opExtentAlign = 0;
21860 let opNewValue = 2;
21861 }
21862 def S4_pstorerbnewfnew_io : HInst<
21863 (outs),
21864 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
21865 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
21866 tc_c8f9a6f6, TypeV2LDST>, Enc_585242, AddrModeRel {
21867 let Inst{2-2} = 0b0;
21868 let Inst{12-11} = 0b00;
21869 let Inst{31-21} = 0b01000110101;
21870 let isPredicated = 1;
21871 let isPredicatedFalse = 1;
21872 let addrMode = BaseImmOffset;
21873 let accessSize = ByteAccess;
21874 let isNVStore = 1;
21875 let isPredicatedNew = 1;
21876 let isNewValue = 1;
21877 let mayStore = 1;
21878 let CextOpcode = "S2_storerb";
21879 let InputType = "imm";
21880 let BaseOpcode = "S2_storerb_io";
21881 let isExtendable = 1;
21882 let opExtendable = 2;
21883 let isExtentSigned = 0;
21884 let opExtentBits = 6;
21885 let opExtentAlign = 0;
21886 let opNewValue = 3;
21887 }
21888 def S4_pstorerbnewfnew_rr : HInst<
21889 (outs),
21890 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
21891 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
21892 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
21893 let Inst{4-3} = 0b00;
21894 let Inst{31-21} = 0b00110111101;
21895 let isPredicated = 1;
21896 let isPredicatedFalse = 1;
21897 let addrMode = BaseRegOffset;
21898 let accessSize = ByteAccess;
21899 let isNVStore = 1;
21900 let isPredicatedNew = 1;
21901 let isNewValue = 1;
21902 let mayStore = 1;
21903 let CextOpcode = "S2_storerb";
21904 let InputType = "reg";
21905 let BaseOpcode = "S4_storerb_rr";
21906 let opNewValue = 4;
21907 }
21908 def S4_pstorerbnewfnew_zomap : HInst<
21909 (outs),
21910 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
21911 "if (!$Pv4.new) memb($Rs32) = $Nt8.new",
21912 tc_c8f9a6f6, TypeMAPPING> {
21913 let isPseudo = 1;
21914 let isCodeGenOnly = 1;
21915 let opNewValue = 2;
21916 }
21917 def S4_pstorerbnewt_abs : HInst<
21918 (outs),
21919 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
21920 "if ($Pv4) memb(#$Ii) = $Nt8.new",
21921 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
21922 let Inst{2-2} = 0b0;
21923 let Inst{7-7} = 0b1;
21924 let Inst{13-11} = 0b000;
21925 let Inst{31-18} = 0b10101111101000;
21926 let isPredicated = 1;
21927 let addrMode = Absolute;
21928 let accessSize = ByteAccess;
21929 let isNVStore = 1;
21930 let isNewValue = 1;
21931 let isExtended = 1;
21932 let mayStore = 1;
21933 let CextOpcode = "S2_storerb";
21934 let BaseOpcode = "S2_storerbabs";
21935 let DecoderNamespace = "MustExtend";
21936 let isExtendable = 1;
21937 let opExtendable = 1;
21938 let isExtentSigned = 0;
21939 let opExtentBits = 6;
21940 let opExtentAlign = 0;
21941 let opNewValue = 2;
21942 }
21943 def S4_pstorerbnewt_rr : HInst<
21944 (outs),
21945 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
21946 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
21947 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
21948 let Inst{4-3} = 0b00;
21949 let Inst{31-21} = 0b00110100101;
21950 let isPredicated = 1;
21951 let addrMode = BaseRegOffset;
21952 let accessSize = ByteAccess;
21953 let isNVStore = 1;
21954 let isNewValue = 1;
21955 let mayStore = 1;
21956 let CextOpcode = "S2_storerb";
21957 let InputType = "reg";
21958 let BaseOpcode = "S4_storerb_rr";
21959 let opNewValue = 4;
21960 }
21961 def S4_pstorerbnewtnew_abs : HInst<
21962 (outs),
21963 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
21964 "if ($Pv4.new) memb(#$Ii) = $Nt8.new",
21965 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
21966 let Inst{2-2} = 0b0;
21967 let Inst{7-7} = 0b1;
21968 let Inst{13-11} = 0b100;
21969 let Inst{31-18} = 0b10101111101000;
21970 let isPredicated = 1;
21971 let addrMode = Absolute;
21972 let accessSize = ByteAccess;
21973 let isNVStore = 1;
21974 let isPredicatedNew = 1;
21975 let isNewValue = 1;
21976 let isExtended = 1;
21977 let mayStore = 1;
21978 let CextOpcode = "S2_storerb";
21979 let BaseOpcode = "S2_storerbabs";
21980 let DecoderNamespace = "MustExtend";
21981 let isExtendable = 1;
21982 let opExtendable = 1;
21983 let isExtentSigned = 0;
21984 let opExtentBits = 6;
21985 let opExtentAlign = 0;
21986 let opNewValue = 2;
21987 }
21988 def S4_pstorerbnewtnew_io : HInst<
21989 (outs),
21990 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
21991 "if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
21992 tc_c8f9a6f6, TypeV2LDST>, Enc_585242, AddrModeRel {
21993 let Inst{2-2} = 0b0;
21994 let Inst{12-11} = 0b00;
21995 let Inst{31-21} = 0b01000010101;
21996 let isPredicated = 1;
21997 let addrMode = BaseImmOffset;
21998 let accessSize = ByteAccess;
21999 let isNVStore = 1;
22000 let isPredicatedNew = 1;
22001 let isNewValue = 1;
22002 let mayStore = 1;
22003 let CextOpcode = "S2_storerb";
22004 let InputType = "imm";
22005 let BaseOpcode = "S2_storerb_io";
22006 let isExtendable = 1;
22007 let opExtendable = 2;
22008 let isExtentSigned = 0;
22009 let opExtentBits = 6;
22010 let opExtentAlign = 0;
22011 let opNewValue = 3;
22012 }
22013 def S4_pstorerbnewtnew_rr : HInst<
22014 (outs),
22015 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22016 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22017 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
22018 let Inst{4-3} = 0b00;
22019 let Inst{31-21} = 0b00110110101;
22020 let isPredicated = 1;
22021 let addrMode = BaseRegOffset;
22022 let accessSize = ByteAccess;
22023 let isNVStore = 1;
22024 let isPredicatedNew = 1;
22025 let isNewValue = 1;
22026 let mayStore = 1;
22027 let CextOpcode = "S2_storerb";
22028 let InputType = "reg";
22029 let BaseOpcode = "S4_storerb_rr";
22030 let opNewValue = 4;
22031 }
22032 def S4_pstorerbnewtnew_zomap : HInst<
22033 (outs),
22034 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22035 "if ($Pv4.new) memb($Rs32) = $Nt8.new",
22036 tc_c8f9a6f6, TypeMAPPING> {
22037 let isPseudo = 1;
22038 let isCodeGenOnly = 1;
22039 let opNewValue = 2;
22040 }
22041 def S4_pstorerbt_abs : HInst<
22042 (outs),
22043 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22044 "if ($Pv4) memb(#$Ii) = $Rt32",
22045 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
22046 let Inst{2-2} = 0b0;
22047 let Inst{7-7} = 0b1;
22048 let Inst{13-13} = 0b0;
22049 let Inst{31-18} = 0b10101111000000;
22050 let isPredicated = 1;
22051 let addrMode = Absolute;
22052 let accessSize = ByteAccess;
22053 let isExtended = 1;
22054 let mayStore = 1;
22055 let CextOpcode = "S2_storerb";
22056 let BaseOpcode = "S2_storerbabs";
22057 let isNVStorable = 1;
22058 let DecoderNamespace = "MustExtend";
22059 let isExtendable = 1;
22060 let opExtendable = 1;
22061 let isExtentSigned = 0;
22062 let opExtentBits = 6;
22063 let opExtentAlign = 0;
22064 }
22065 def S4_pstorerbt_rr : HInst<
22066 (outs),
22067 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22068 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22069 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
22070 let Inst{31-21} = 0b00110100000;
22071 let isPredicated = 1;
22072 let addrMode = BaseRegOffset;
22073 let accessSize = ByteAccess;
22074 let mayStore = 1;
22075 let CextOpcode = "S2_storerb";
22076 let InputType = "reg";
22077 let BaseOpcode = "S4_storerb_rr";
22078 let isNVStorable = 1;
22079 }
22080 def S4_pstorerbtnew_abs : HInst<
22081 (outs),
22082 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22083 "if ($Pv4.new) memb(#$Ii) = $Rt32",
22084 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
22085 let Inst{2-2} = 0b0;
22086 let Inst{7-7} = 0b1;
22087 let Inst{13-13} = 0b1;
22088 let Inst{31-18} = 0b10101111000000;
22089 let isPredicated = 1;
22090 let addrMode = Absolute;
22091 let accessSize = ByteAccess;
22092 let isPredicatedNew = 1;
22093 let isExtended = 1;
22094 let mayStore = 1;
22095 let CextOpcode = "S2_storerb";
22096 let BaseOpcode = "S2_storerbabs";
22097 let isNVStorable = 1;
22098 let DecoderNamespace = "MustExtend";
22099 let isExtendable = 1;
22100 let opExtendable = 1;
22101 let isExtentSigned = 0;
22102 let opExtentBits = 6;
22103 let opExtentAlign = 0;
22104 }
22105 def S4_pstorerbtnew_io : HInst<
22106 (outs),
22107 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22108 "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22109 tc_20a8e109, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22110 let Inst{2-2} = 0b0;
22111 let Inst{31-21} = 0b01000010000;
22112 let isPredicated = 1;
22113 let addrMode = BaseImmOffset;
22114 let accessSize = ByteAccess;
22115 let isPredicatedNew = 1;
22116 let mayStore = 1;
22117 let CextOpcode = "S2_storerb";
22118 let InputType = "imm";
22119 let BaseOpcode = "S2_storerb_io";
22120 let isNVStorable = 1;
22121 let isExtendable = 1;
22122 let opExtendable = 2;
22123 let isExtentSigned = 0;
22124 let opExtentBits = 6;
22125 let opExtentAlign = 0;
22126 }
22127 def S4_pstorerbtnew_rr : HInst<
22128 (outs),
22129 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22130 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22131 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
22132 let Inst{31-21} = 0b00110110000;
22133 let isPredicated = 1;
22134 let addrMode = BaseRegOffset;
22135 let accessSize = ByteAccess;
22136 let isPredicatedNew = 1;
22137 let mayStore = 1;
22138 let CextOpcode = "S2_storerb";
22139 let InputType = "reg";
22140 let BaseOpcode = "S4_storerb_rr";
22141 let isNVStorable = 1;
22142 }
22143 def S4_pstorerbtnew_zomap : HInst<
22144 (outs),
22145 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22146 "if ($Pv4.new) memb($Rs32) = $Rt32",
22147 tc_20a8e109, TypeMAPPING> {
22148 let isPseudo = 1;
22149 let isCodeGenOnly = 1;
22150 }
22151 def S4_pstorerdf_abs : HInst<
22152 (outs),
22153 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22154 "if (!$Pv4) memd(#$Ii) = $Rtt32",
22155 tc_c85212ca, TypeST>, Enc_50b5ac, AddrModeRel {
22156 let Inst{2-2} = 0b1;
22157 let Inst{7-7} = 0b1;
22158 let Inst{13-13} = 0b0;
22159 let Inst{31-18} = 0b10101111110000;
22160 let isPredicated = 1;
22161 let isPredicatedFalse = 1;
22162 let addrMode = Absolute;
22163 let accessSize = DoubleWordAccess;
22164 let isExtended = 1;
22165 let mayStore = 1;
22166 let CextOpcode = "S2_storerd";
22167 let BaseOpcode = "S2_storerdabs";
22168 let DecoderNamespace = "MustExtend";
22169 let isExtendable = 1;
22170 let opExtendable = 1;
22171 let isExtentSigned = 0;
22172 let opExtentBits = 6;
22173 let opExtentAlign = 0;
22174 }
22175 def S4_pstorerdf_rr : HInst<
22176 (outs),
22177 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22178 "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22179 tc_7bc567a7, TypeST>, Enc_1a9974, AddrModeRel {
22180 let Inst{31-21} = 0b00110101110;
22181 let isPredicated = 1;
22182 let isPredicatedFalse = 1;
22183 let addrMode = BaseRegOffset;
22184 let accessSize = DoubleWordAccess;
22185 let mayStore = 1;
22186 let CextOpcode = "S2_storerd";
22187 let InputType = "reg";
22188 let BaseOpcode = "S2_storerd_rr";
22189 }
22190 def S4_pstorerdfnew_abs : HInst<
22191 (outs),
22192 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22193 "if (!$Pv4.new) memd(#$Ii) = $Rtt32",
22194 tc_336e698c, TypeST>, Enc_50b5ac, AddrModeRel {
22195 let Inst{2-2} = 0b1;
22196 let Inst{7-7} = 0b1;
22197 let Inst{13-13} = 0b1;
22198 let Inst{31-18} = 0b10101111110000;
22199 let isPredicated = 1;
22200 let isPredicatedFalse = 1;
22201 let addrMode = Absolute;
22202 let accessSize = DoubleWordAccess;
22203 let isPredicatedNew = 1;
22204 let isExtended = 1;
22205 let mayStore = 1;
22206 let CextOpcode = "S2_storerd";
22207 let BaseOpcode = "S2_storerdabs";
22208 let DecoderNamespace = "MustExtend";
22209 let isExtendable = 1;
22210 let opExtendable = 1;
22211 let isExtentSigned = 0;
22212 let opExtentBits = 6;
22213 let opExtentAlign = 0;
22214 }
22215 def S4_pstorerdfnew_io : HInst<
22216 (outs),
22217 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22218 "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22219 tc_20a8e109, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22220 let Inst{2-2} = 0b0;
22221 let Inst{31-21} = 0b01000110110;
22222 let isPredicated = 1;
22223 let isPredicatedFalse = 1;
22224 let addrMode = BaseImmOffset;
22225 let accessSize = DoubleWordAccess;
22226 let isPredicatedNew = 1;
22227 let mayStore = 1;
22228 let CextOpcode = "S2_storerd";
22229 let InputType = "imm";
22230 let BaseOpcode = "S2_storerd_io";
22231 let isExtendable = 1;
22232 let opExtendable = 2;
22233 let isExtentSigned = 0;
22234 let opExtentBits = 9;
22235 let opExtentAlign = 3;
22236 }
22237 def S4_pstorerdfnew_rr : HInst<
22238 (outs),
22239 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22240 "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22241 tc_7639d4b0, TypeST>, Enc_1a9974, AddrModeRel {
22242 let Inst{31-21} = 0b00110111110;
22243 let isPredicated = 1;
22244 let isPredicatedFalse = 1;
22245 let addrMode = BaseRegOffset;
22246 let accessSize = DoubleWordAccess;
22247 let isPredicatedNew = 1;
22248 let mayStore = 1;
22249 let CextOpcode = "S2_storerd";
22250 let InputType = "reg";
22251 let BaseOpcode = "S2_storerd_rr";
22252 }
22253 def S4_pstorerdfnew_zomap : HInst<
22254 (outs),
22255 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22256 "if (!$Pv4.new) memd($Rs32) = $Rtt32",
22257 tc_20a8e109, TypeMAPPING> {
22258 let isPseudo = 1;
22259 let isCodeGenOnly = 1;
22260 }
22261 def S4_pstorerdt_abs : HInst<
22262 (outs),
22263 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22264 "if ($Pv4) memd(#$Ii) = $Rtt32",
22265 tc_c85212ca, TypeST>, Enc_50b5ac, AddrModeRel {
22266 let Inst{2-2} = 0b0;
22267 let Inst{7-7} = 0b1;
22268 let Inst{13-13} = 0b0;
22269 let Inst{31-18} = 0b10101111110000;
22270 let isPredicated = 1;
22271 let addrMode = Absolute;
22272 let accessSize = DoubleWordAccess;
22273 let isExtended = 1;
22274 let mayStore = 1;
22275 let CextOpcode = "S2_storerd";
22276 let BaseOpcode = "S2_storerdabs";
22277 let DecoderNamespace = "MustExtend";
22278 let isExtendable = 1;
22279 let opExtendable = 1;
22280 let isExtentSigned = 0;
22281 let opExtentBits = 6;
22282 let opExtentAlign = 0;
22283 }
22284 def S4_pstorerdt_rr : HInst<
22285 (outs),
22286 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22287 "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22288 tc_7bc567a7, TypeST>, Enc_1a9974, AddrModeRel {
22289 let Inst{31-21} = 0b00110100110;
22290 let isPredicated = 1;
22291 let addrMode = BaseRegOffset;
22292 let accessSize = DoubleWordAccess;
22293 let mayStore = 1;
22294 let CextOpcode = "S2_storerd";
22295 let InputType = "reg";
22296 let BaseOpcode = "S2_storerd_rr";
22297 }
22298 def S4_pstorerdtnew_abs : HInst<
22299 (outs),
22300 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22301 "if ($Pv4.new) memd(#$Ii) = $Rtt32",
22302 tc_336e698c, TypeST>, Enc_50b5ac, AddrModeRel {
22303 let Inst{2-2} = 0b0;
22304 let Inst{7-7} = 0b1;
22305 let Inst{13-13} = 0b1;
22306 let Inst{31-18} = 0b10101111110000;
22307 let isPredicated = 1;
22308 let addrMode = Absolute;
22309 let accessSize = DoubleWordAccess;
22310 let isPredicatedNew = 1;
22311 let isExtended = 1;
22312 let mayStore = 1;
22313 let CextOpcode = "S2_storerd";
22314 let BaseOpcode = "S2_storerdabs";
22315 let DecoderNamespace = "MustExtend";
22316 let isExtendable = 1;
22317 let opExtendable = 1;
22318 let isExtentSigned = 0;
22319 let opExtentBits = 6;
22320 let opExtentAlign = 0;
22321 }
22322 def S4_pstorerdtnew_io : HInst<
22323 (outs),
22324 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22325 "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22326 tc_20a8e109, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22327 let Inst{2-2} = 0b0;
22328 let Inst{31-21} = 0b01000010110;
22329 let isPredicated = 1;
22330 let addrMode = BaseImmOffset;
22331 let accessSize = DoubleWordAccess;
22332 let isPredicatedNew = 1;
22333 let mayStore = 1;
22334 let CextOpcode = "S2_storerd";
22335 let InputType = "imm";
22336 let BaseOpcode = "S2_storerd_io";
22337 let isExtendable = 1;
22338 let opExtendable = 2;
22339 let isExtentSigned = 0;
22340 let opExtentBits = 9;
22341 let opExtentAlign = 3;
22342 }
22343 def S4_pstorerdtnew_rr : HInst<
22344 (outs),
22345 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22346 "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22347 tc_7639d4b0, TypeST>, Enc_1a9974, AddrModeRel {
22348 let Inst{31-21} = 0b00110110110;
22349 let isPredicated = 1;
22350 let addrMode = BaseRegOffset;
22351 let accessSize = DoubleWordAccess;
22352 let isPredicatedNew = 1;
22353 let mayStore = 1;
22354 let CextOpcode = "S2_storerd";
22355 let InputType = "reg";
22356 let BaseOpcode = "S2_storerd_rr";
22357 }
22358 def S4_pstorerdtnew_zomap : HInst<
22359 (outs),
22360 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22361 "if ($Pv4.new) memd($Rs32) = $Rtt32",
22362 tc_20a8e109, TypeMAPPING> {
22363 let isPseudo = 1;
22364 let isCodeGenOnly = 1;
22365 }
22366 def S4_pstorerff_abs : HInst<
22367 (outs),
22368 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22369 "if (!$Pv4) memh(#$Ii) = $Rt32.h",
22370 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
22371 let Inst{2-2} = 0b1;
22372 let Inst{7-7} = 0b1;
22373 let Inst{13-13} = 0b0;
22374 let Inst{31-18} = 0b10101111011000;
22375 let isPredicated = 1;
22376 let isPredicatedFalse = 1;
22377 let addrMode = Absolute;
22378 let accessSize = HalfWordAccess;
22379 let isExtended = 1;
22380 let mayStore = 1;
22381 let CextOpcode = "S2_storerf";
22382 let BaseOpcode = "S2_storerfabs";
22383 let DecoderNamespace = "MustExtend";
22384 let isExtendable = 1;
22385 let opExtendable = 1;
22386 let isExtentSigned = 0;
22387 let opExtentBits = 6;
22388 let opExtentAlign = 0;
22389 }
22390 def S4_pstorerff_rr : HInst<
22391 (outs),
22392 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22393 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
22394 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
22395 let Inst{31-21} = 0b00110101011;
22396 let isPredicated = 1;
22397 let isPredicatedFalse = 1;
22398 let addrMode = BaseRegOffset;
22399 let accessSize = HalfWordAccess;
22400 let mayStore = 1;
22401 let CextOpcode = "S2_storerf";
22402 let InputType = "reg";
22403 let BaseOpcode = "S4_storerf_rr";
22404 }
22405 def S4_pstorerffnew_abs : HInst<
22406 (outs),
22407 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22408 "if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
22409 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
22410 let Inst{2-2} = 0b1;
22411 let Inst{7-7} = 0b1;
22412 let Inst{13-13} = 0b1;
22413 let Inst{31-18} = 0b10101111011000;
22414 let isPredicated = 1;
22415 let isPredicatedFalse = 1;
22416 let addrMode = Absolute;
22417 let accessSize = HalfWordAccess;
22418 let isPredicatedNew = 1;
22419 let isExtended = 1;
22420 let mayStore = 1;
22421 let CextOpcode = "S2_storerf";
22422 let BaseOpcode = "S2_storerfabs";
22423 let DecoderNamespace = "MustExtend";
22424 let isExtendable = 1;
22425 let opExtendable = 1;
22426 let isExtentSigned = 0;
22427 let opExtentBits = 6;
22428 let opExtentAlign = 0;
22429 }
22430 def S4_pstorerffnew_io : HInst<
22431 (outs),
22432 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
22433 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
22434 tc_20a8e109, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
22435 let Inst{2-2} = 0b0;
22436 let Inst{31-21} = 0b01000110011;
22437 let isPredicated = 1;
22438 let isPredicatedFalse = 1;
22439 let addrMode = BaseImmOffset;
22440 let accessSize = HalfWordAccess;
22441 let isPredicatedNew = 1;
22442 let mayStore = 1;
22443 let CextOpcode = "S2_storerf";
22444 let InputType = "imm";
22445 let BaseOpcode = "S2_storerf_io";
22446 let isExtendable = 1;
22447 let opExtendable = 2;
22448 let isExtentSigned = 0;
22449 let opExtentBits = 7;
22450 let opExtentAlign = 1;
22451 }
22452 def S4_pstorerffnew_rr : HInst<
22453 (outs),
22454 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22455 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
22456 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
22457 let Inst{31-21} = 0b00110111011;
22458 let isPredicated = 1;
22459 let isPredicatedFalse = 1;
22460 let addrMode = BaseRegOffset;
22461 let accessSize = HalfWordAccess;
22462 let isPredicatedNew = 1;
22463 let mayStore = 1;
22464 let CextOpcode = "S2_storerf";
22465 let InputType = "reg";
22466 let BaseOpcode = "S4_storerf_rr";
22467 }
22468 def S4_pstorerffnew_zomap : HInst<
22469 (outs),
22470 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22471 "if (!$Pv4.new) memh($Rs32) = $Rt32.h",
22472 tc_20a8e109, TypeMAPPING> {
22473 let isPseudo = 1;
22474 let isCodeGenOnly = 1;
22475 }
22476 def S4_pstorerft_abs : HInst<
22477 (outs),
22478 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22479 "if ($Pv4) memh(#$Ii) = $Rt32.h",
22480 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
22481 let Inst{2-2} = 0b0;
22482 let Inst{7-7} = 0b1;
22483 let Inst{13-13} = 0b0;
22484 let Inst{31-18} = 0b10101111011000;
22485 let isPredicated = 1;
22486 let addrMode = Absolute;
22487 let accessSize = HalfWordAccess;
22488 let isExtended = 1;
22489 let mayStore = 1;
22490 let CextOpcode = "S2_storerf";
22491 let BaseOpcode = "S2_storerfabs";
22492 let DecoderNamespace = "MustExtend";
22493 let isExtendable = 1;
22494 let opExtendable = 1;
22495 let isExtentSigned = 0;
22496 let opExtentBits = 6;
22497 let opExtentAlign = 0;
22498 }
22499 def S4_pstorerft_rr : HInst<
22500 (outs),
22501 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22502 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
22503 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
22504 let Inst{31-21} = 0b00110100011;
22505 let isPredicated = 1;
22506 let addrMode = BaseRegOffset;
22507 let accessSize = HalfWordAccess;
22508 let mayStore = 1;
22509 let CextOpcode = "S2_storerf";
22510 let InputType = "reg";
22511 let BaseOpcode = "S4_storerf_rr";
22512 }
22513 def S4_pstorerftnew_abs : HInst<
22514 (outs),
22515 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22516 "if ($Pv4.new) memh(#$Ii) = $Rt32.h",
22517 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
22518 let Inst{2-2} = 0b0;
22519 let Inst{7-7} = 0b1;
22520 let Inst{13-13} = 0b1;
22521 let Inst{31-18} = 0b10101111011000;
22522 let isPredicated = 1;
22523 let addrMode = Absolute;
22524 let accessSize = HalfWordAccess;
22525 let isPredicatedNew = 1;
22526 let isExtended = 1;
22527 let mayStore = 1;
22528 let CextOpcode = "S2_storerf";
22529 let BaseOpcode = "S2_storerfabs";
22530 let DecoderNamespace = "MustExtend";
22531 let isExtendable = 1;
22532 let opExtendable = 1;
22533 let isExtentSigned = 0;
22534 let opExtentBits = 6;
22535 let opExtentAlign = 0;
22536 }
22537 def S4_pstorerftnew_io : HInst<
22538 (outs),
22539 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
22540 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
22541 tc_20a8e109, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
22542 let Inst{2-2} = 0b0;
22543 let Inst{31-21} = 0b01000010011;
22544 let isPredicated = 1;
22545 let addrMode = BaseImmOffset;
22546 let accessSize = HalfWordAccess;
22547 let isPredicatedNew = 1;
22548 let mayStore = 1;
22549 let CextOpcode = "S2_storerf";
22550 let InputType = "imm";
22551 let BaseOpcode = "S2_storerf_io";
22552 let isExtendable = 1;
22553 let opExtendable = 2;
22554 let isExtentSigned = 0;
22555 let opExtentBits = 7;
22556 let opExtentAlign = 1;
22557 }
22558 def S4_pstorerftnew_rr : HInst<
22559 (outs),
22560 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22561 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
22562 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
22563 let Inst{31-21} = 0b00110110011;
22564 let isPredicated = 1;
22565 let addrMode = BaseRegOffset;
22566 let accessSize = HalfWordAccess;
22567 let isPredicatedNew = 1;
22568 let mayStore = 1;
22569 let CextOpcode = "S2_storerf";
22570 let InputType = "reg";
22571 let BaseOpcode = "S4_storerf_rr";
22572 }
22573 def S4_pstorerftnew_zomap : HInst<
22574 (outs),
22575 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22576 "if ($Pv4.new) memh($Rs32) = $Rt32.h",
22577 tc_20a8e109, TypeMAPPING> {
22578 let isPseudo = 1;
22579 let isCodeGenOnly = 1;
22580 }
22581 def S4_pstorerhf_abs : HInst<
22582 (outs),
22583 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22584 "if (!$Pv4) memh(#$Ii) = $Rt32",
22585 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
22586 let Inst{2-2} = 0b1;
22587 let Inst{7-7} = 0b1;
22588 let Inst{13-13} = 0b0;
22589 let Inst{31-18} = 0b10101111010000;
22590 let isPredicated = 1;
22591 let isPredicatedFalse = 1;
22592 let addrMode = Absolute;
22593 let accessSize = HalfWordAccess;
22594 let isExtended = 1;
22595 let mayStore = 1;
22596 let CextOpcode = "S2_storerh";
22597 let BaseOpcode = "S2_storerhabs";
22598 let isNVStorable = 1;
22599 let DecoderNamespace = "MustExtend";
22600 let isExtendable = 1;
22601 let opExtendable = 1;
22602 let isExtentSigned = 0;
22603 let opExtentBits = 6;
22604 let opExtentAlign = 0;
22605 }
22606 def S4_pstorerhf_rr : HInst<
22607 (outs),
22608 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22609 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
22610 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
22611 let Inst{31-21} = 0b00110101010;
22612 let isPredicated = 1;
22613 let isPredicatedFalse = 1;
22614 let addrMode = BaseRegOffset;
22615 let accessSize = HalfWordAccess;
22616 let mayStore = 1;
22617 let CextOpcode = "S2_storerh";
22618 let InputType = "reg";
22619 let BaseOpcode = "S2_storerh_rr";
22620 let isNVStorable = 1;
22621 }
22622 def S4_pstorerhfnew_abs : HInst<
22623 (outs),
22624 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22625 "if (!$Pv4.new) memh(#$Ii) = $Rt32",
22626 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
22627 let Inst{2-2} = 0b1;
22628 let Inst{7-7} = 0b1;
22629 let Inst{13-13} = 0b1;
22630 let Inst{31-18} = 0b10101111010000;
22631 let isPredicated = 1;
22632 let isPredicatedFalse = 1;
22633 let addrMode = Absolute;
22634 let accessSize = HalfWordAccess;
22635 let isPredicatedNew = 1;
22636 let isExtended = 1;
22637 let mayStore = 1;
22638 let CextOpcode = "S2_storerh";
22639 let BaseOpcode = "S2_storerhabs";
22640 let isNVStorable = 1;
22641 let DecoderNamespace = "MustExtend";
22642 let isExtendable = 1;
22643 let opExtendable = 1;
22644 let isExtentSigned = 0;
22645 let opExtentBits = 6;
22646 let opExtentAlign = 0;
22647 }
22648 def S4_pstorerhfnew_io : HInst<
22649 (outs),
22650 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
22651 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
22652 tc_20a8e109, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
22653 let Inst{2-2} = 0b0;
22654 let Inst{31-21} = 0b01000110010;
22655 let isPredicated = 1;
22656 let isPredicatedFalse = 1;
22657 let addrMode = BaseImmOffset;
22658 let accessSize = HalfWordAccess;
22659 let isPredicatedNew = 1;
22660 let mayStore = 1;
22661 let CextOpcode = "S2_storerh";
22662 let InputType = "imm";
22663 let BaseOpcode = "S2_storerh_io";
22664 let isNVStorable = 1;
22665 let isExtendable = 1;
22666 let opExtendable = 2;
22667 let isExtentSigned = 0;
22668 let opExtentBits = 7;
22669 let opExtentAlign = 1;
22670 }
22671 def S4_pstorerhfnew_rr : HInst<
22672 (outs),
22673 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22674 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
22675 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
22676 let Inst{31-21} = 0b00110111010;
22677 let isPredicated = 1;
22678 let isPredicatedFalse = 1;
22679 let addrMode = BaseRegOffset;
22680 let accessSize = HalfWordAccess;
22681 let isPredicatedNew = 1;
22682 let mayStore = 1;
22683 let CextOpcode = "S2_storerh";
22684 let InputType = "reg";
22685 let BaseOpcode = "S2_storerh_rr";
22686 let isNVStorable = 1;
22687 }
22688 def S4_pstorerhfnew_zomap : HInst<
22689 (outs),
22690 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22691 "if (!$Pv4.new) memh($Rs32) = $Rt32",
22692 tc_20a8e109, TypeMAPPING> {
22693 let isPseudo = 1;
22694 let isCodeGenOnly = 1;
22695 }
22696 def S4_pstorerhnewf_abs : HInst<
22697 (outs),
22698 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22699 "if (!$Pv4) memh(#$Ii) = $Nt8.new",
22700 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
22701 let Inst{2-2} = 0b1;
22702 let Inst{7-7} = 0b1;
22703 let Inst{13-11} = 0b001;
22704 let Inst{31-18} = 0b10101111101000;
22705 let isPredicated = 1;
22706 let isPredicatedFalse = 1;
22707 let addrMode = Absolute;
22708 let accessSize = HalfWordAccess;
22709 let isNVStore = 1;
22710 let isNewValue = 1;
22711 let isExtended = 1;
22712 let mayStore = 1;
22713 let CextOpcode = "S2_storerh";
22714 let BaseOpcode = "S2_storerhabs";
22715 let DecoderNamespace = "MustExtend";
22716 let isExtendable = 1;
22717 let opExtendable = 1;
22718 let isExtentSigned = 0;
22719 let opExtentBits = 6;
22720 let opExtentAlign = 0;
22721 let opNewValue = 2;
22722 }
22723 def S4_pstorerhnewf_rr : HInst<
22724 (outs),
22725 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22726 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22727 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
22728 let Inst{4-3} = 0b01;
22729 let Inst{31-21} = 0b00110101101;
22730 let isPredicated = 1;
22731 let isPredicatedFalse = 1;
22732 let addrMode = BaseRegOffset;
22733 let accessSize = HalfWordAccess;
22734 let isNVStore = 1;
22735 let isNewValue = 1;
22736 let mayStore = 1;
22737 let CextOpcode = "S2_storerh";
22738 let InputType = "reg";
22739 let BaseOpcode = "S2_storerh_rr";
22740 let opNewValue = 4;
22741 }
22742 def S4_pstorerhnewfnew_abs : HInst<
22743 (outs),
22744 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22745 "if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
22746 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
22747 let Inst{2-2} = 0b1;
22748 let Inst{7-7} = 0b1;
22749 let Inst{13-11} = 0b101;
22750 let Inst{31-18} = 0b10101111101000;
22751 let isPredicated = 1;
22752 let isPredicatedFalse = 1;
22753 let addrMode = Absolute;
22754 let accessSize = HalfWordAccess;
22755 let isNVStore = 1;
22756 let isPredicatedNew = 1;
22757 let isNewValue = 1;
22758 let isExtended = 1;
22759 let mayStore = 1;
22760 let CextOpcode = "S2_storerh";
22761 let BaseOpcode = "S2_storerhabs";
22762 let DecoderNamespace = "MustExtend";
22763 let isExtendable = 1;
22764 let opExtendable = 1;
22765 let isExtentSigned = 0;
22766 let opExtentBits = 6;
22767 let opExtentAlign = 0;
22768 let opNewValue = 2;
22769 }
22770 def S4_pstorerhnewfnew_io : HInst<
22771 (outs),
22772 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
22773 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
22774 tc_c8f9a6f6, TypeV2LDST>, Enc_f44229, AddrModeRel {
22775 let Inst{2-2} = 0b0;
22776 let Inst{12-11} = 0b01;
22777 let Inst{31-21} = 0b01000110101;
22778 let isPredicated = 1;
22779 let isPredicatedFalse = 1;
22780 let addrMode = BaseImmOffset;
22781 let accessSize = HalfWordAccess;
22782 let isNVStore = 1;
22783 let isPredicatedNew = 1;
22784 let isNewValue = 1;
22785 let mayStore = 1;
22786 let CextOpcode = "S2_storerh";
22787 let InputType = "imm";
22788 let BaseOpcode = "S2_storerh_io";
22789 let isExtendable = 1;
22790 let opExtendable = 2;
22791 let isExtentSigned = 0;
22792 let opExtentBits = 7;
22793 let opExtentAlign = 1;
22794 let opNewValue = 3;
22795 }
22796 def S4_pstorerhnewfnew_rr : HInst<
22797 (outs),
22798 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22799 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22800 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
22801 let Inst{4-3} = 0b01;
22802 let Inst{31-21} = 0b00110111101;
22803 let isPredicated = 1;
22804 let isPredicatedFalse = 1;
22805 let addrMode = BaseRegOffset;
22806 let accessSize = HalfWordAccess;
22807 let isNVStore = 1;
22808 let isPredicatedNew = 1;
22809 let isNewValue = 1;
22810 let mayStore = 1;
22811 let CextOpcode = "S2_storerh";
22812 let InputType = "reg";
22813 let BaseOpcode = "S2_storerh_rr";
22814 let opNewValue = 4;
22815 }
22816 def S4_pstorerhnewfnew_zomap : HInst<
22817 (outs),
22818 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22819 "if (!$Pv4.new) memh($Rs32) = $Nt8.new",
22820 tc_c8f9a6f6, TypeMAPPING> {
22821 let isPseudo = 1;
22822 let isCodeGenOnly = 1;
22823 let opNewValue = 2;
22824 }
22825 def S4_pstorerhnewt_abs : HInst<
22826 (outs),
22827 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22828 "if ($Pv4) memh(#$Ii) = $Nt8.new",
22829 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
22830 let Inst{2-2} = 0b0;
22831 let Inst{7-7} = 0b1;
22832 let Inst{13-11} = 0b001;
22833 let Inst{31-18} = 0b10101111101000;
22834 let isPredicated = 1;
22835 let addrMode = Absolute;
22836 let accessSize = HalfWordAccess;
22837 let isNVStore = 1;
22838 let isNewValue = 1;
22839 let isExtended = 1;
22840 let mayStore = 1;
22841 let CextOpcode = "S2_storerh";
22842 let BaseOpcode = "S2_storerhabs";
22843 let DecoderNamespace = "MustExtend";
22844 let isExtendable = 1;
22845 let opExtendable = 1;
22846 let isExtentSigned = 0;
22847 let opExtentBits = 6;
22848 let opExtentAlign = 0;
22849 let opNewValue = 2;
22850 }
22851 def S4_pstorerhnewt_rr : HInst<
22852 (outs),
22853 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22854 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22855 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
22856 let Inst{4-3} = 0b01;
22857 let Inst{31-21} = 0b00110100101;
22858 let isPredicated = 1;
22859 let addrMode = BaseRegOffset;
22860 let accessSize = HalfWordAccess;
22861 let isNVStore = 1;
22862 let isNewValue = 1;
22863 let mayStore = 1;
22864 let CextOpcode = "S2_storerh";
22865 let InputType = "reg";
22866 let BaseOpcode = "S2_storerh_rr";
22867 let opNewValue = 4;
22868 }
22869 def S4_pstorerhnewtnew_abs : HInst<
22870 (outs),
22871 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22872 "if ($Pv4.new) memh(#$Ii) = $Nt8.new",
22873 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
22874 let Inst{2-2} = 0b0;
22875 let Inst{7-7} = 0b1;
22876 let Inst{13-11} = 0b101;
22877 let Inst{31-18} = 0b10101111101000;
22878 let isPredicated = 1;
22879 let addrMode = Absolute;
22880 let accessSize = HalfWordAccess;
22881 let isNVStore = 1;
22882 let isPredicatedNew = 1;
22883 let isNewValue = 1;
22884 let isExtended = 1;
22885 let mayStore = 1;
22886 let CextOpcode = "S2_storerh";
22887 let BaseOpcode = "S2_storerhabs";
22888 let DecoderNamespace = "MustExtend";
22889 let isExtendable = 1;
22890 let opExtendable = 1;
22891 let isExtentSigned = 0;
22892 let opExtentBits = 6;
22893 let opExtentAlign = 0;
22894 let opNewValue = 2;
22895 }
22896 def S4_pstorerhnewtnew_io : HInst<
22897 (outs),
22898 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
22899 "if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
22900 tc_c8f9a6f6, TypeV2LDST>, Enc_f44229, AddrModeRel {
22901 let Inst{2-2} = 0b0;
22902 let Inst{12-11} = 0b01;
22903 let Inst{31-21} = 0b01000010101;
22904 let isPredicated = 1;
22905 let addrMode = BaseImmOffset;
22906 let accessSize = HalfWordAccess;
22907 let isNVStore = 1;
22908 let isPredicatedNew = 1;
22909 let isNewValue = 1;
22910 let mayStore = 1;
22911 let CextOpcode = "S2_storerh";
22912 let InputType = "imm";
22913 let BaseOpcode = "S2_storerh_io";
22914 let isExtendable = 1;
22915 let opExtendable = 2;
22916 let isExtentSigned = 0;
22917 let opExtentBits = 7;
22918 let opExtentAlign = 1;
22919 let opNewValue = 3;
22920 }
22921 def S4_pstorerhnewtnew_rr : HInst<
22922 (outs),
22923 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22924 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22925 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
22926 let Inst{4-3} = 0b01;
22927 let Inst{31-21} = 0b00110110101;
22928 let isPredicated = 1;
22929 let addrMode = BaseRegOffset;
22930 let accessSize = HalfWordAccess;
22931 let isNVStore = 1;
22932 let isPredicatedNew = 1;
22933 let isNewValue = 1;
22934 let mayStore = 1;
22935 let CextOpcode = "S2_storerh";
22936 let InputType = "reg";
22937 let BaseOpcode = "S2_storerh_rr";
22938 let opNewValue = 4;
22939 }
22940 def S4_pstorerhnewtnew_zomap : HInst<
22941 (outs),
22942 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22943 "if ($Pv4.new) memh($Rs32) = $Nt8.new",
22944 tc_c8f9a6f6, TypeMAPPING> {
22945 let isPseudo = 1;
22946 let isCodeGenOnly = 1;
22947 let opNewValue = 2;
22948 }
22949 def S4_pstorerht_abs : HInst<
22950 (outs),
22951 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22952 "if ($Pv4) memh(#$Ii) = $Rt32",
22953 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
22954 let Inst{2-2} = 0b0;
22955 let Inst{7-7} = 0b1;
22956 let Inst{13-13} = 0b0;
22957 let Inst{31-18} = 0b10101111010000;
22958 let isPredicated = 1;
22959 let addrMode = Absolute;
22960 let accessSize = HalfWordAccess;
22961 let isExtended = 1;
22962 let mayStore = 1;
22963 let CextOpcode = "S2_storerh";
22964 let BaseOpcode = "S2_storerhabs";
22965 let isNVStorable = 1;
22966 let DecoderNamespace = "MustExtend";
22967 let isExtendable = 1;
22968 let opExtendable = 1;
22969 let isExtentSigned = 0;
22970 let opExtentBits = 6;
22971 let opExtentAlign = 0;
22972 }
22973 def S4_pstorerht_rr : HInst<
22974 (outs),
22975 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22976 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
22977 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
22978 let Inst{31-21} = 0b00110100010;
22979 let isPredicated = 1;
22980 let addrMode = BaseRegOffset;
22981 let accessSize = HalfWordAccess;
22982 let mayStore = 1;
22983 let CextOpcode = "S2_storerh";
22984 let InputType = "reg";
22985 let BaseOpcode = "S2_storerh_rr";
22986 let isNVStorable = 1;
22987 }
22988 def S4_pstorerhtnew_abs : HInst<
22989 (outs),
22990 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22991 "if ($Pv4.new) memh(#$Ii) = $Rt32",
22992 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
22993 let Inst{2-2} = 0b0;
22994 let Inst{7-7} = 0b1;
22995 let Inst{13-13} = 0b1;
22996 let Inst{31-18} = 0b10101111010000;
22997 let isPredicated = 1;
22998 let addrMode = Absolute;
22999 let accessSize = HalfWordAccess;
23000 let isPredicatedNew = 1;
23001 let isExtended = 1;
23002 let mayStore = 1;
23003 let CextOpcode = "S2_storerh";
23004 let BaseOpcode = "S2_storerhabs";
23005 let isNVStorable = 1;
23006 let DecoderNamespace = "MustExtend";
23007 let isExtendable = 1;
23008 let opExtendable = 1;
23009 let isExtentSigned = 0;
23010 let opExtentBits = 6;
23011 let opExtentAlign = 0;
23012 }
23013 def S4_pstorerhtnew_io : HInst<
23014 (outs),
23015 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23016 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23017 tc_20a8e109, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23018 let Inst{2-2} = 0b0;
23019 let Inst{31-21} = 0b01000010010;
23020 let isPredicated = 1;
23021 let addrMode = BaseImmOffset;
23022 let accessSize = HalfWordAccess;
23023 let isPredicatedNew = 1;
23024 let mayStore = 1;
23025 let CextOpcode = "S2_storerh";
23026 let InputType = "imm";
23027 let BaseOpcode = "S2_storerh_io";
23028 let isNVStorable = 1;
23029 let isExtendable = 1;
23030 let opExtendable = 2;
23031 let isExtentSigned = 0;
23032 let opExtentBits = 7;
23033 let opExtentAlign = 1;
23034 }
23035 def S4_pstorerhtnew_rr : HInst<
23036 (outs),
23037 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23038 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23039 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
23040 let Inst{31-21} = 0b00110110010;
23041 let isPredicated = 1;
23042 let addrMode = BaseRegOffset;
23043 let accessSize = HalfWordAccess;
23044 let isPredicatedNew = 1;
23045 let mayStore = 1;
23046 let CextOpcode = "S2_storerh";
23047 let InputType = "reg";
23048 let BaseOpcode = "S2_storerh_rr";
23049 let isNVStorable = 1;
23050 }
23051 def S4_pstorerhtnew_zomap : HInst<
23052 (outs),
23053 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23054 "if ($Pv4.new) memh($Rs32) = $Rt32",
23055 tc_20a8e109, TypeMAPPING> {
23056 let isPseudo = 1;
23057 let isCodeGenOnly = 1;
23058 }
23059 def S4_pstorerif_abs : HInst<
23060 (outs),
23061 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23062 "if (!$Pv4) memw(#$Ii) = $Rt32",
23063 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
23064 let Inst{2-2} = 0b1;
23065 let Inst{7-7} = 0b1;
23066 let Inst{13-13} = 0b0;
23067 let Inst{31-18} = 0b10101111100000;
23068 let isPredicated = 1;
23069 let isPredicatedFalse = 1;
23070 let addrMode = Absolute;
23071 let accessSize = WordAccess;
23072 let isExtended = 1;
23073 let mayStore = 1;
23074 let CextOpcode = "S2_storeri";
23075 let BaseOpcode = "S2_storeriabs";
23076 let isNVStorable = 1;
23077 let DecoderNamespace = "MustExtend";
23078 let isExtendable = 1;
23079 let opExtendable = 1;
23080 let isExtentSigned = 0;
23081 let opExtentBits = 6;
23082 let opExtentAlign = 0;
23083 }
23084 def S4_pstorerif_rr : HInst<
23085 (outs),
23086 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23087 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23088 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
23089 let Inst{31-21} = 0b00110101100;
23090 let isPredicated = 1;
23091 let isPredicatedFalse = 1;
23092 let addrMode = BaseRegOffset;
23093 let accessSize = WordAccess;
23094 let mayStore = 1;
23095 let CextOpcode = "S2_storeri";
23096 let InputType = "reg";
23097 let BaseOpcode = "S2_storeri_rr";
23098 let isNVStorable = 1;
23099 }
23100 def S4_pstorerifnew_abs : HInst<
23101 (outs),
23102 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23103 "if (!$Pv4.new) memw(#$Ii) = $Rt32",
23104 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
23105 let Inst{2-2} = 0b1;
23106 let Inst{7-7} = 0b1;
23107 let Inst{13-13} = 0b1;
23108 let Inst{31-18} = 0b10101111100000;
23109 let isPredicated = 1;
23110 let isPredicatedFalse = 1;
23111 let addrMode = Absolute;
23112 let accessSize = WordAccess;
23113 let isPredicatedNew = 1;
23114 let isExtended = 1;
23115 let mayStore = 1;
23116 let CextOpcode = "S2_storeri";
23117 let BaseOpcode = "S2_storeriabs";
23118 let isNVStorable = 1;
23119 let DecoderNamespace = "MustExtend";
23120 let isExtendable = 1;
23121 let opExtendable = 1;
23122 let isExtentSigned = 0;
23123 let opExtentBits = 6;
23124 let opExtentAlign = 0;
23125 }
23126 def S4_pstorerifnew_io : HInst<
23127 (outs),
23128 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
23129 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
23130 tc_20a8e109, TypeV2LDST>, Enc_397f23, AddrModeRel {
23131 let Inst{2-2} = 0b0;
23132 let Inst{31-21} = 0b01000110100;
23133 let isPredicated = 1;
23134 let isPredicatedFalse = 1;
23135 let addrMode = BaseImmOffset;
23136 let accessSize = WordAccess;
23137 let isPredicatedNew = 1;
23138 let mayStore = 1;
23139 let CextOpcode = "S2_storeri";
23140 let InputType = "imm";
23141 let BaseOpcode = "S2_storeri_io";
23142 let isNVStorable = 1;
23143 let isExtendable = 1;
23144 let opExtendable = 2;
23145 let isExtentSigned = 0;
23146 let opExtentBits = 8;
23147 let opExtentAlign = 2;
23148 }
23149 def S4_pstorerifnew_rr : HInst<
23150 (outs),
23151 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23152 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23153 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
23154 let Inst{31-21} = 0b00110111100;
23155 let isPredicated = 1;
23156 let isPredicatedFalse = 1;
23157 let addrMode = BaseRegOffset;
23158 let accessSize = WordAccess;
23159 let isPredicatedNew = 1;
23160 let mayStore = 1;
23161 let CextOpcode = "S2_storeri";
23162 let InputType = "reg";
23163 let BaseOpcode = "S2_storeri_rr";
23164 let isNVStorable = 1;
23165 }
23166 def S4_pstorerifnew_zomap : HInst<
23167 (outs),
23168 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23169 "if (!$Pv4.new) memw($Rs32) = $Rt32",
23170 tc_20a8e109, TypeMAPPING> {
23171 let isPseudo = 1;
23172 let isCodeGenOnly = 1;
23173 }
23174 def S4_pstorerinewf_abs : HInst<
23175 (outs),
23176 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23177 "if (!$Pv4) memw(#$Ii) = $Nt8.new",
23178 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
23179 let Inst{2-2} = 0b1;
23180 let Inst{7-7} = 0b1;
23181 let Inst{13-11} = 0b010;
23182 let Inst{31-18} = 0b10101111101000;
23183 let isPredicated = 1;
23184 let isPredicatedFalse = 1;
23185 let addrMode = Absolute;
23186 let accessSize = WordAccess;
23187 let isNVStore = 1;
23188 let isNewValue = 1;
23189 let isExtended = 1;
23190 let mayStore = 1;
23191 let CextOpcode = "S2_storeri";
23192 let BaseOpcode = "S2_storeriabs";
23193 let DecoderNamespace = "MustExtend";
23194 let isExtendable = 1;
23195 let opExtendable = 1;
23196 let isExtentSigned = 0;
23197 let opExtentBits = 6;
23198 let opExtentAlign = 0;
23199 let opNewValue = 2;
23200 }
23201 def S4_pstorerinewf_rr : HInst<
23202 (outs),
23203 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23204 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23205 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
23206 let Inst{4-3} = 0b10;
23207 let Inst{31-21} = 0b00110101101;
23208 let isPredicated = 1;
23209 let isPredicatedFalse = 1;
23210 let addrMode = BaseRegOffset;
23211 let accessSize = WordAccess;
23212 let isNVStore = 1;
23213 let isNewValue = 1;
23214 let mayStore = 1;
23215 let CextOpcode = "S2_storeri";
23216 let InputType = "reg";
23217 let BaseOpcode = "S2_storeri_rr";
23218 let opNewValue = 4;
23219 }
23220 def S4_pstorerinewfnew_abs : HInst<
23221 (outs),
23222 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23223 "if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
23224 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
23225 let Inst{2-2} = 0b1;
23226 let Inst{7-7} = 0b1;
23227 let Inst{13-11} = 0b110;
23228 let Inst{31-18} = 0b10101111101000;
23229 let isPredicated = 1;
23230 let isPredicatedFalse = 1;
23231 let addrMode = Absolute;
23232 let accessSize = WordAccess;
23233 let isNVStore = 1;
23234 let isPredicatedNew = 1;
23235 let isNewValue = 1;
23236 let isExtended = 1;
23237 let mayStore = 1;
23238 let CextOpcode = "S2_storeri";
23239 let BaseOpcode = "S2_storeriabs";
23240 let DecoderNamespace = "MustExtend";
23241 let isExtendable = 1;
23242 let opExtendable = 1;
23243 let isExtentSigned = 0;
23244 let opExtentBits = 6;
23245 let opExtentAlign = 0;
23246 let opNewValue = 2;
23247 }
23248 def S4_pstorerinewfnew_io : HInst<
23249 (outs),
23250 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
23251 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
23252 tc_c8f9a6f6, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
23253 let Inst{2-2} = 0b0;
23254 let Inst{12-11} = 0b10;
23255 let Inst{31-21} = 0b01000110101;
23256 let isPredicated = 1;
23257 let isPredicatedFalse = 1;
23258 let addrMode = BaseImmOffset;
23259 let accessSize = WordAccess;
23260 let isNVStore = 1;
23261 let isPredicatedNew = 1;
23262 let isNewValue = 1;
23263 let mayStore = 1;
23264 let CextOpcode = "S2_storeri";
23265 let InputType = "imm";
23266 let BaseOpcode = "S2_storeri_io";
23267 let isExtendable = 1;
23268 let opExtendable = 2;
23269 let isExtentSigned = 0;
23270 let opExtentBits = 8;
23271 let opExtentAlign = 2;
23272 let opNewValue = 3;
23273 }
23274 def S4_pstorerinewfnew_rr : HInst<
23275 (outs),
23276 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23277 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23278 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
23279 let Inst{4-3} = 0b10;
23280 let Inst{31-21} = 0b00110111101;
23281 let isPredicated = 1;
23282 let isPredicatedFalse = 1;
23283 let addrMode = BaseRegOffset;
23284 let accessSize = WordAccess;
23285 let isNVStore = 1;
23286 let isPredicatedNew = 1;
23287 let isNewValue = 1;
23288 let mayStore = 1;
23289 let CextOpcode = "S2_storeri";
23290 let InputType = "reg";
23291 let BaseOpcode = "S2_storeri_rr";
23292 let opNewValue = 4;
23293 }
23294 def S4_pstorerinewfnew_zomap : HInst<
23295 (outs),
23296 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23297 "if (!$Pv4.new) memw($Rs32) = $Nt8.new",
23298 tc_c8f9a6f6, TypeMAPPING> {
23299 let isPseudo = 1;
23300 let isCodeGenOnly = 1;
23301 let opNewValue = 2;
23302 }
23303 def S4_pstorerinewt_abs : HInst<
23304 (outs),
23305 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23306 "if ($Pv4) memw(#$Ii) = $Nt8.new",
23307 tc_2c8fe5ae, TypeST>, Enc_44215c, AddrModeRel {
23308 let Inst{2-2} = 0b0;
23309 let Inst{7-7} = 0b1;
23310 let Inst{13-11} = 0b010;
23311 let Inst{31-18} = 0b10101111101000;
23312 let isPredicated = 1;
23313 let addrMode = Absolute;
23314 let accessSize = WordAccess;
23315 let isNVStore = 1;
23316 let isNewValue = 1;
23317 let isExtended = 1;
23318 let mayStore = 1;
23319 let CextOpcode = "S2_storeri";
23320 let BaseOpcode = "S2_storeriabs";
23321 let DecoderNamespace = "MustExtend";
23322 let isExtendable = 1;
23323 let opExtendable = 1;
23324 let isExtentSigned = 0;
23325 let opExtentBits = 6;
23326 let opExtentAlign = 0;
23327 let opNewValue = 2;
23328 }
23329 def S4_pstorerinewt_rr : HInst<
23330 (outs),
23331 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23332 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23333 tc_77781686, TypeST>, Enc_47ee5e, AddrModeRel {
23334 let Inst{4-3} = 0b10;
23335 let Inst{31-21} = 0b00110100101;
23336 let isPredicated = 1;
23337 let addrMode = BaseRegOffset;
23338 let accessSize = WordAccess;
23339 let isNVStore = 1;
23340 let isNewValue = 1;
23341 let mayStore = 1;
23342 let CextOpcode = "S2_storeri";
23343 let InputType = "reg";
23344 let BaseOpcode = "S2_storeri_rr";
23345 let opNewValue = 4;
23346 }
23347 def S4_pstorerinewtnew_abs : HInst<
23348 (outs),
23349 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23350 "if ($Pv4.new) memw(#$Ii) = $Nt8.new",
23351 tc_7986ba30, TypeST>, Enc_44215c, AddrModeRel {
23352 let Inst{2-2} = 0b0;
23353 let Inst{7-7} = 0b1;
23354 let Inst{13-11} = 0b110;
23355 let Inst{31-18} = 0b10101111101000;
23356 let isPredicated = 1;
23357 let addrMode = Absolute;
23358 let accessSize = WordAccess;
23359 let isNVStore = 1;
23360 let isPredicatedNew = 1;
23361 let isNewValue = 1;
23362 let isExtended = 1;
23363 let mayStore = 1;
23364 let CextOpcode = "S2_storeri";
23365 let BaseOpcode = "S2_storeriabs";
23366 let DecoderNamespace = "MustExtend";
23367 let isExtendable = 1;
23368 let opExtendable = 1;
23369 let isExtentSigned = 0;
23370 let opExtentBits = 6;
23371 let opExtentAlign = 0;
23372 let opNewValue = 2;
23373 }
23374 def S4_pstorerinewtnew_io : HInst<
23375 (outs),
23376 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
23377 "if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
23378 tc_c8f9a6f6, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
23379 let Inst{2-2} = 0b0;
23380 let Inst{12-11} = 0b10;
23381 let Inst{31-21} = 0b01000010101;
23382 let isPredicated = 1;
23383 let addrMode = BaseImmOffset;
23384 let accessSize = WordAccess;
23385 let isNVStore = 1;
23386 let isPredicatedNew = 1;
23387 let isNewValue = 1;
23388 let mayStore = 1;
23389 let CextOpcode = "S2_storeri";
23390 let InputType = "imm";
23391 let BaseOpcode = "S2_storeri_io";
23392 let isExtendable = 1;
23393 let opExtendable = 2;
23394 let isExtentSigned = 0;
23395 let opExtentBits = 8;
23396 let opExtentAlign = 2;
23397 let opNewValue = 3;
23398 }
23399 def S4_pstorerinewtnew_rr : HInst<
23400 (outs),
23401 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23402 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23403 tc_8def9c57, TypeST>, Enc_47ee5e, AddrModeRel {
23404 let Inst{4-3} = 0b10;
23405 let Inst{31-21} = 0b00110110101;
23406 let isPredicated = 1;
23407 let addrMode = BaseRegOffset;
23408 let accessSize = WordAccess;
23409 let isNVStore = 1;
23410 let isPredicatedNew = 1;
23411 let isNewValue = 1;
23412 let mayStore = 1;
23413 let CextOpcode = "S2_storeri";
23414 let InputType = "reg";
23415 let BaseOpcode = "S2_storeri_rr";
23416 let opNewValue = 4;
23417 }
23418 def S4_pstorerinewtnew_zomap : HInst<
23419 (outs),
23420 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23421 "if ($Pv4.new) memw($Rs32) = $Nt8.new",
23422 tc_c8f9a6f6, TypeMAPPING> {
23423 let isPseudo = 1;
23424 let isCodeGenOnly = 1;
23425 let opNewValue = 2;
23426 }
23427 def S4_pstorerit_abs : HInst<
23428 (outs),
23429 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23430 "if ($Pv4) memw(#$Ii) = $Rt32",
23431 tc_c85212ca, TypeST>, Enc_1cf4ca, AddrModeRel {
23432 let Inst{2-2} = 0b0;
23433 let Inst{7-7} = 0b1;
23434 let Inst{13-13} = 0b0;
23435 let Inst{31-18} = 0b10101111100000;
23436 let isPredicated = 1;
23437 let addrMode = Absolute;
23438 let accessSize = WordAccess;
23439 let isExtended = 1;
23440 let mayStore = 1;
23441 let CextOpcode = "S2_storeri";
23442 let BaseOpcode = "S2_storeriabs";
23443 let isNVStorable = 1;
23444 let DecoderNamespace = "MustExtend";
23445 let isExtendable = 1;
23446 let opExtendable = 1;
23447 let isExtentSigned = 0;
23448 let opExtentBits = 6;
23449 let opExtentAlign = 0;
23450 }
23451 def S4_pstorerit_rr : HInst<
23452 (outs),
23453 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23454 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23455 tc_7bc567a7, TypeST>, Enc_6339d5, AddrModeRel {
23456 let Inst{31-21} = 0b00110100100;
23457 let isPredicated = 1;
23458 let addrMode = BaseRegOffset;
23459 let accessSize = WordAccess;
23460 let mayStore = 1;
23461 let CextOpcode = "S2_storeri";
23462 let InputType = "reg";
23463 let BaseOpcode = "S2_storeri_rr";
23464 let isNVStorable = 1;
23465 }
23466 def S4_pstoreritnew_abs : HInst<
23467 (outs),
23468 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23469 "if ($Pv4.new) memw(#$Ii) = $Rt32",
23470 tc_336e698c, TypeST>, Enc_1cf4ca, AddrModeRel {
23471 let Inst{2-2} = 0b0;
23472 let Inst{7-7} = 0b1;
23473 let Inst{13-13} = 0b1;
23474 let Inst{31-18} = 0b10101111100000;
23475 let isPredicated = 1;
23476 let addrMode = Absolute;
23477 let accessSize = WordAccess;
23478 let isPredicatedNew = 1;
23479 let isExtended = 1;
23480 let mayStore = 1;
23481 let CextOpcode = "S2_storeri";
23482 let BaseOpcode = "S2_storeriabs";
23483 let isNVStorable = 1;
23484 let DecoderNamespace = "MustExtend";
23485 let isExtendable = 1;
23486 let opExtendable = 1;
23487 let isExtentSigned = 0;
23488 let opExtentBits = 6;
23489 let opExtentAlign = 0;
23490 }
23491 def S4_pstoreritnew_io : HInst<
23492 (outs),
23493 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
23494 "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
23495 tc_20a8e109, TypeV2LDST>, Enc_397f23, AddrModeRel {
23496 let Inst{2-2} = 0b0;
23497 let Inst{31-21} = 0b01000010100;
23498 let isPredicated = 1;
23499 let addrMode = BaseImmOffset;
23500 let accessSize = WordAccess;
23501 let isPredicatedNew = 1;
23502 let mayStore = 1;
23503 let CextOpcode = "S2_storeri";
23504 let InputType = "imm";
23505 let BaseOpcode = "S2_storeri_io";
23506 let isNVStorable = 1;
23507 let isExtendable = 1;
23508 let opExtendable = 2;
23509 let isExtentSigned = 0;
23510 let opExtentBits = 8;
23511 let opExtentAlign = 2;
23512 }
23513 def S4_pstoreritnew_rr : HInst<
23514 (outs),
23515 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23516 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23517 tc_7639d4b0, TypeST>, Enc_6339d5, AddrModeRel {
23518 let Inst{31-21} = 0b00110110100;
23519 let isPredicated = 1;
23520 let addrMode = BaseRegOffset;
23521 let accessSize = WordAccess;
23522 let isPredicatedNew = 1;
23523 let mayStore = 1;
23524 let CextOpcode = "S2_storeri";
23525 let InputType = "reg";
23526 let BaseOpcode = "S2_storeri_rr";
23527 let isNVStorable = 1;
23528 }
23529 def S4_pstoreritnew_zomap : HInst<
23530 (outs),
23531 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23532 "if ($Pv4.new) memw($Rs32) = $Rt32",
23533 tc_20a8e109, TypeMAPPING> {
23534 let isPseudo = 1;
23535 let isCodeGenOnly = 1;
23536 }
23537 def S4_stored_locked : HInst<
23538 (outs PredRegs:$Pd4),
23539 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
23540 "memd_locked($Rs32,$Pd4) = $Rtt32",
23541 tc_7d01cbdc, TypeST>, Enc_d7dc10 {
23542 let Inst{7-2} = 0b000000;
23543 let Inst{13-13} = 0b0;
23544 let Inst{31-21} = 0b10100000111;
23545 let accessSize = DoubleWordAccess;
23546 let isPredicateLate = 1;
23547 let isSoloAX = 1;
23548 let mayStore = 1;
23549 }
23550 def S4_storeirb_io : HInst<
23551 (outs),
23552 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
23553 "memb($Rs32+#$Ii) = #$II",
23554 tc_fcee8723, TypeST>, Enc_8203bb, PredNewRel {
23555 let Inst{31-21} = 0b00111100000;
23556 let addrMode = BaseImmOffset;
23557 let accessSize = ByteAccess;
23558 let mayStore = 1;
23559 let CextOpcode = "S2_storerb";
23560 let InputType = "imm";
23561 let BaseOpcode = "S4_storeirb_io";
23562 let isPredicable = 1;
23563 let isExtendable = 1;
23564 let opExtendable = 2;
23565 let isExtentSigned = 1;
23566 let opExtentBits = 8;
23567 let opExtentAlign = 0;
23568 }
23569 def S4_storeirb_zomap : HInst<
23570 (outs),
23571 (ins IntRegs:$Rs32, s8_0Imm:$II),
23572 "memb($Rs32) = #$II",
23573 tc_fcee8723, TypeMAPPING> {
23574 let isPseudo = 1;
23575 let isCodeGenOnly = 1;
23576 }
23577 def S4_storeirbf_io : HInst<
23578 (outs),
23579 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
23580 "if (!$Pv4) memb($Rs32+#$Ii) = #$II",
23581 tc_1e69aa99, TypeST>, Enc_d7a65e, PredNewRel {
23582 let Inst{31-21} = 0b00111000100;
23583 let isPredicated = 1;
23584 let isPredicatedFalse = 1;
23585 let addrMode = BaseImmOffset;
23586 let accessSize = ByteAccess;
23587 let mayStore = 1;
23588 let CextOpcode = "S2_storerb";
23589 let InputType = "imm";
23590 let BaseOpcode = "S4_storeirb_io";
23591 let isExtendable = 1;
23592 let opExtendable = 3;
23593 let isExtentSigned = 1;
23594 let opExtentBits = 6;
23595 let opExtentAlign = 0;
23596 }
23597 def S4_storeirbf_zomap : HInst<
23598 (outs),
23599 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23600 "if (!$Pv4) memb($Rs32) = #$II",
23601 tc_1e69aa99, TypeMAPPING> {
23602 let isPseudo = 1;
23603 let isCodeGenOnly = 1;
23604 }
23605 def S4_storeirbfnew_io : HInst<
23606 (outs),
23607 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
23608 "if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
23609 tc_8f0a6bad, TypeST>, Enc_d7a65e, PredNewRel {
23610 let Inst{31-21} = 0b00111001100;
23611 let isPredicated = 1;
23612 let isPredicatedFalse = 1;
23613 let addrMode = BaseImmOffset;
23614 let accessSize = ByteAccess;
23615 let isPredicatedNew = 1;
23616 let mayStore = 1;
23617 let CextOpcode = "S2_storerb";
23618 let InputType = "imm";
23619 let BaseOpcode = "S4_storeirb_io";
23620 let isExtendable = 1;
23621 let opExtendable = 3;
23622 let isExtentSigned = 1;
23623 let opExtentBits = 6;
23624 let opExtentAlign = 0;
23625 }
23626 def S4_storeirbfnew_zomap : HInst<
23627 (outs),
23628 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23629 "if (!$Pv4.new) memb($Rs32) = #$II",
23630 tc_8f0a6bad, TypeMAPPING> {
23631 let isPseudo = 1;
23632 let isCodeGenOnly = 1;
23633 }
23634 def S4_storeirbt_io : HInst<
23635 (outs),
23636 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
23637 "if ($Pv4) memb($Rs32+#$Ii) = #$II",
23638 tc_1e69aa99, TypeST>, Enc_d7a65e, PredNewRel {
23639 let Inst{31-21} = 0b00111000000;
23640 let isPredicated = 1;
23641 let addrMode = BaseImmOffset;
23642 let accessSize = ByteAccess;
23643 let mayStore = 1;
23644 let CextOpcode = "S2_storerb";
23645 let InputType = "imm";
23646 let BaseOpcode = "S4_storeirb_io";
23647 let isExtendable = 1;
23648 let opExtendable = 3;
23649 let isExtentSigned = 1;
23650 let opExtentBits = 6;
23651 let opExtentAlign = 0;
23652 }
23653 def S4_storeirbt_zomap : HInst<
23654 (outs),
23655 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23656 "if ($Pv4) memb($Rs32) = #$II",
23657 tc_1e69aa99, TypeMAPPING> {
23658 let isPseudo = 1;
23659 let isCodeGenOnly = 1;
23660 }
23661 def S4_storeirbtnew_io : HInst<
23662 (outs),
23663 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
23664 "if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
23665 tc_8f0a6bad, TypeST>, Enc_d7a65e, PredNewRel {
23666 let Inst{31-21} = 0b00111001000;
23667 let isPredicated = 1;
23668 let addrMode = BaseImmOffset;
23669 let accessSize = ByteAccess;
23670 let isPredicatedNew = 1;
23671 let mayStore = 1;
23672 let CextOpcode = "S2_storerb";
23673 let InputType = "imm";
23674 let BaseOpcode = "S4_storeirb_io";
23675 let isExtendable = 1;
23676 let opExtendable = 3;
23677 let isExtentSigned = 1;
23678 let opExtentBits = 6;
23679 let opExtentAlign = 0;
23680 }
23681 def S4_storeirbtnew_zomap : HInst<
23682 (outs),
23683 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23684 "if ($Pv4.new) memb($Rs32) = #$II",
23685 tc_8f0a6bad, TypeMAPPING> {
23686 let isPseudo = 1;
23687 let isCodeGenOnly = 1;
23688 }
23689 def S4_storeirh_io : HInst<
23690 (outs),
23691 (ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
23692 "memh($Rs32+#$Ii) = #$II",
23693 tc_fcee8723, TypeST>, Enc_a803e0, PredNewRel {
23694 let Inst{31-21} = 0b00111100001;
23695 let addrMode = BaseImmOffset;
23696 let accessSize = HalfWordAccess;
23697 let mayStore = 1;
23698 let CextOpcode = "S2_storerh";
23699 let InputType = "imm";
23700 let BaseOpcode = "S4_storeirh_io";
23701 let isPredicable = 1;
23702 let isExtendable = 1;
23703 let opExtendable = 2;
23704 let isExtentSigned = 1;
23705 let opExtentBits = 8;
23706 let opExtentAlign = 0;
23707 }
23708 def S4_storeirh_zomap : HInst<
23709 (outs),
23710 (ins IntRegs:$Rs32, s8_0Imm:$II),
23711 "memh($Rs32) = #$II",
23712 tc_fcee8723, TypeMAPPING> {
23713 let isPseudo = 1;
23714 let isCodeGenOnly = 1;
23715 }
23716 def S4_storeirhf_io : HInst<
23717 (outs),
23718 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
23719 "if (!$Pv4) memh($Rs32+#$Ii) = #$II",
23720 tc_1e69aa99, TypeST>, Enc_f20719, PredNewRel {
23721 let Inst{31-21} = 0b00111000101;
23722 let isPredicated = 1;
23723 let isPredicatedFalse = 1;
23724 let addrMode = BaseImmOffset;
23725 let accessSize = HalfWordAccess;
23726 let mayStore = 1;
23727 let CextOpcode = "S2_storerh";
23728 let InputType = "imm";
23729 let BaseOpcode = "S4_storeirh_io";
23730 let isExtendable = 1;
23731 let opExtendable = 3;
23732 let isExtentSigned = 1;
23733 let opExtentBits = 6;
23734 let opExtentAlign = 0;
23735 }
23736 def S4_storeirhf_zomap : HInst<
23737 (outs),
23738 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23739 "if (!$Pv4) memh($Rs32) = #$II",
23740 tc_1e69aa99, TypeMAPPING> {
23741 let isPseudo = 1;
23742 let isCodeGenOnly = 1;
23743 }
23744 def S4_storeirhfnew_io : HInst<
23745 (outs),
23746 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
23747 "if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
23748 tc_8f0a6bad, TypeST>, Enc_f20719, PredNewRel {
23749 let Inst{31-21} = 0b00111001101;
23750 let isPredicated = 1;
23751 let isPredicatedFalse = 1;
23752 let addrMode = BaseImmOffset;
23753 let accessSize = HalfWordAccess;
23754 let isPredicatedNew = 1;
23755 let mayStore = 1;
23756 let CextOpcode = "S2_storerh";
23757 let InputType = "imm";
23758 let BaseOpcode = "S4_storeirh_io";
23759 let isExtendable = 1;
23760 let opExtendable = 3;
23761 let isExtentSigned = 1;
23762 let opExtentBits = 6;
23763 let opExtentAlign = 0;
23764 }
23765 def S4_storeirhfnew_zomap : HInst<
23766 (outs),
23767 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23768 "if (!$Pv4.new) memh($Rs32) = #$II",
23769 tc_8f0a6bad, TypeMAPPING> {
23770 let isPseudo = 1;
23771 let isCodeGenOnly = 1;
23772 }
23773 def S4_storeirht_io : HInst<
23774 (outs),
23775 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
23776 "if ($Pv4) memh($Rs32+#$Ii) = #$II",
23777 tc_1e69aa99, TypeST>, Enc_f20719, PredNewRel {
23778 let Inst{31-21} = 0b00111000001;
23779 let isPredicated = 1;
23780 let addrMode = BaseImmOffset;
23781 let accessSize = HalfWordAccess;
23782 let mayStore = 1;
23783 let CextOpcode = "S2_storerh";
23784 let InputType = "imm";
23785 let BaseOpcode = "S4_storeirh_io";
23786 let isExtendable = 1;
23787 let opExtendable = 3;
23788 let isExtentSigned = 1;
23789 let opExtentBits = 6;
23790 let opExtentAlign = 0;
23791 }
23792 def S4_storeirht_zomap : HInst<
23793 (outs),
23794 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23795 "if ($Pv4) memh($Rs32) = #$II",
23796 tc_1e69aa99, TypeMAPPING> {
23797 let isPseudo = 1;
23798 let isCodeGenOnly = 1;
23799 }
23800 def S4_storeirhtnew_io : HInst<
23801 (outs),
23802 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
23803 "if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
23804 tc_8f0a6bad, TypeST>, Enc_f20719, PredNewRel {
23805 let Inst{31-21} = 0b00111001001;
23806 let isPredicated = 1;
23807 let addrMode = BaseImmOffset;
23808 let accessSize = HalfWordAccess;
23809 let isPredicatedNew = 1;
23810 let mayStore = 1;
23811 let CextOpcode = "S2_storerh";
23812 let InputType = "imm";
23813 let BaseOpcode = "S4_storeirh_io";
23814 let isExtendable = 1;
23815 let opExtendable = 3;
23816 let isExtentSigned = 1;
23817 let opExtentBits = 6;
23818 let opExtentAlign = 0;
23819 }
23820 def S4_storeirhtnew_zomap : HInst<
23821 (outs),
23822 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23823 "if ($Pv4.new) memh($Rs32) = #$II",
23824 tc_8f0a6bad, TypeMAPPING> {
23825 let isPseudo = 1;
23826 let isCodeGenOnly = 1;
23827 }
23828 def S4_storeiri_io : HInst<
23829 (outs),
23830 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
23831 "memw($Rs32+#$Ii) = #$II",
23832 tc_fcee8723, TypeST>, Enc_f37377, PredNewRel {
23833 let Inst{31-21} = 0b00111100010;
23834 let addrMode = BaseImmOffset;
23835 let accessSize = WordAccess;
23836 let mayStore = 1;
23837 let CextOpcode = "S2_storeri";
23838 let InputType = "imm";
23839 let BaseOpcode = "S4_storeiri_io";
23840 let isPredicable = 1;
23841 let isExtendable = 1;
23842 let opExtendable = 2;
23843 let isExtentSigned = 1;
23844 let opExtentBits = 8;
23845 let opExtentAlign = 0;
23846 }
23847 def S4_storeiri_zomap : HInst<
23848 (outs),
23849 (ins IntRegs:$Rs32, s8_0Imm:$II),
23850 "memw($Rs32) = #$II",
23851 tc_fcee8723, TypeMAPPING> {
23852 let isPseudo = 1;
23853 let isCodeGenOnly = 1;
23854 }
23855 def S4_storeirif_io : HInst<
23856 (outs),
23857 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
23858 "if (!$Pv4) memw($Rs32+#$Ii) = #$II",
23859 tc_1e69aa99, TypeST>, Enc_5ccba9, PredNewRel {
23860 let Inst{31-21} = 0b00111000110;
23861 let isPredicated = 1;
23862 let isPredicatedFalse = 1;
23863 let addrMode = BaseImmOffset;
23864 let accessSize = WordAccess;
23865 let mayStore = 1;
23866 let CextOpcode = "S2_storeri";
23867 let InputType = "imm";
23868 let BaseOpcode = "S4_storeiri_io";
23869 let isExtendable = 1;
23870 let opExtendable = 3;
23871 let isExtentSigned = 1;
23872 let opExtentBits = 6;
23873 let opExtentAlign = 0;
23874 }
23875 def S4_storeirif_zomap : HInst<
23876 (outs),
23877 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23878 "if (!$Pv4) memw($Rs32) = #$II",
23879 tc_1e69aa99, TypeMAPPING> {
23880 let isPseudo = 1;
23881 let isCodeGenOnly = 1;
23882 }
23883 def S4_storeirifnew_io : HInst<
23884 (outs),
23885 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
23886 "if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
23887 tc_8f0a6bad, TypeST>, Enc_5ccba9, PredNewRel {
23888 let Inst{31-21} = 0b00111001110;
23889 let isPredicated = 1;
23890 let isPredicatedFalse = 1;
23891 let addrMode = BaseImmOffset;
23892 let accessSize = WordAccess;
23893 let isPredicatedNew = 1;
23894 let mayStore = 1;
23895 let CextOpcode = "S2_storeri";
23896 let InputType = "imm";
23897 let BaseOpcode = "S4_storeiri_io";
23898 let isExtendable = 1;
23899 let opExtendable = 3;
23900 let isExtentSigned = 1;
23901 let opExtentBits = 6;
23902 let opExtentAlign = 0;
23903 }
23904 def S4_storeirifnew_zomap : HInst<
23905 (outs),
23906 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23907 "if (!$Pv4.new) memw($Rs32) = #$II",
23908 tc_8f0a6bad, TypeMAPPING> {
23909 let isPseudo = 1;
23910 let isCodeGenOnly = 1;
23911 }
23912 def S4_storeirit_io : HInst<
23913 (outs),
23914 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
23915 "if ($Pv4) memw($Rs32+#$Ii) = #$II",
23916 tc_1e69aa99, TypeST>, Enc_5ccba9, PredNewRel {
23917 let Inst{31-21} = 0b00111000010;
23918 let isPredicated = 1;
23919 let addrMode = BaseImmOffset;
23920 let accessSize = WordAccess;
23921 let mayStore = 1;
23922 let CextOpcode = "S2_storeri";
23923 let InputType = "imm";
23924 let BaseOpcode = "S4_storeiri_io";
23925 let isExtendable = 1;
23926 let opExtendable = 3;
23927 let isExtentSigned = 1;
23928 let opExtentBits = 6;
23929 let opExtentAlign = 0;
23930 }
23931 def S4_storeirit_zomap : HInst<
23932 (outs),
23933 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23934 "if ($Pv4) memw($Rs32) = #$II",
23935 tc_1e69aa99, TypeMAPPING> {
23936 let isPseudo = 1;
23937 let isCodeGenOnly = 1;
23938 }
23939 def S4_storeiritnew_io : HInst<
23940 (outs),
23941 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
23942 "if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
23943 tc_8f0a6bad, TypeST>, Enc_5ccba9, PredNewRel {
23944 let Inst{31-21} = 0b00111001010;
23945 let isPredicated = 1;
23946 let addrMode = BaseImmOffset;
23947 let accessSize = WordAccess;
23948 let isPredicatedNew = 1;
23949 let mayStore = 1;
23950 let CextOpcode = "S2_storeri";
23951 let InputType = "imm";
23952 let BaseOpcode = "S4_storeiri_io";
23953 let isExtendable = 1;
23954 let opExtendable = 3;
23955 let isExtentSigned = 1;
23956 let opExtentBits = 6;
23957 let opExtentAlign = 0;
23958 }
23959 def S4_storeiritnew_zomap : HInst<
23960 (outs),
23961 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
23962 "if ($Pv4.new) memw($Rs32) = #$II",
23963 tc_8f0a6bad, TypeMAPPING> {
23964 let isPseudo = 1;
23965 let isCodeGenOnly = 1;
23966 }
23967 def S4_storerb_ap : HInst<
23968 (outs IntRegs:$Re32),
23969 (ins u32_0Imm:$II, IntRegs:$Rt32),
23970 "memb($Re32=#$II) = $Rt32",
23971 tc_336e698c, TypeST>, Enc_8bcba4, AddrModeRel {
23972 let Inst{7-6} = 0b10;
23973 let Inst{13-13} = 0b0;
23974 let Inst{31-21} = 0b10101011000;
23975 let hasNewValue = 1;
23976 let opNewValue = 0;
23977 let addrMode = AbsoluteSet;
23978 let accessSize = ByteAccess;
23979 let isExtended = 1;
23980 let mayStore = 1;
23981 let BaseOpcode = "S2_storerb_ap";
23982 let isNVStorable = 1;
23983 let DecoderNamespace = "MustExtend";
23984 let isExtendable = 1;
23985 let opExtendable = 1;
23986 let isExtentSigned = 0;
23987 let opExtentBits = 6;
23988 let opExtentAlign = 0;
23989 }
23990 def S4_storerb_rr : HInst<
23991 (outs),
23992 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23993 "memb($Rs32+$Ru32<<#$Ii) = $Rt32",
23994 tc_45631a8d, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
23995 let Inst{6-5} = 0b00;
23996 let Inst{31-21} = 0b00111011000;
23997 let addrMode = BaseRegOffset;
23998 let accessSize = ByteAccess;
23999 let mayStore = 1;
24000 let CextOpcode = "S2_storerb";
24001 let InputType = "reg";
24002 let BaseOpcode = "S4_storerb_rr";
24003 let isNVStorable = 1;
24004 let isPredicable = 1;
24005 }
24006 def S4_storerb_ur : HInst<
24007 (outs),
24008 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24009 "memb($Ru32<<#$Ii+#$II) = $Rt32",
24010 tc_a4567c39, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24011 let Inst{7-7} = 0b1;
24012 let Inst{31-21} = 0b10101101000;
24013 let addrMode = BaseLongOffset;
24014 let accessSize = ByteAccess;
24015 let isExtended = 1;
24016 let mayStore = 1;
24017 let CextOpcode = "S2_storerb";
24018 let InputType = "imm";
24019 let BaseOpcode = "S4_storerb_ur";
24020 let isNVStorable = 1;
24021 let DecoderNamespace = "MustExtend";
24022 let isExtendable = 1;
24023 let opExtendable = 2;
24024 let isExtentSigned = 0;
24025 let opExtentBits = 6;
24026 let opExtentAlign = 0;
24027 }
24028 def S4_storerbnew_ap : HInst<
24029 (outs IntRegs:$Re32),
24030 (ins u32_0Imm:$II, IntRegs:$Nt8),
24031 "memb($Re32=#$II) = $Nt8.new",
24032 tc_7986ba30, TypeST>, Enc_724154, AddrModeRel {
24033 let Inst{7-6} = 0b10;
24034 let Inst{13-11} = 0b000;
24035 let Inst{31-21} = 0b10101011101;
24036 let hasNewValue = 1;
24037 let opNewValue = 0;
24038 let addrMode = AbsoluteSet;
24039 let accessSize = ByteAccess;
24040 let isNVStore = 1;
24041 let isNewValue = 1;
24042 let isExtended = 1;
24043 let mayStore = 1;
24044 let BaseOpcode = "S2_storerb_ap";
24045 let DecoderNamespace = "MustExtend";
24046 let isExtendable = 1;
24047 let opExtendable = 1;
24048 let isExtentSigned = 0;
24049 let opExtentBits = 6;
24050 let opExtentAlign = 0;
24051 let opNewValue = 2;
24052 }
24053 def S4_storerbnew_rr : HInst<
24054 (outs),
24055 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24056 "memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24057 tc_be995eaf, TypeST>, Enc_c6220b, AddrModeRel {
24058 let Inst{6-3} = 0b0000;
24059 let Inst{31-21} = 0b00111011101;
24060 let addrMode = BaseRegOffset;
24061 let accessSize = ByteAccess;
24062 let isNVStore = 1;
24063 let isNewValue = 1;
24064 let mayStore = 1;
24065 let CextOpcode = "S2_storerb";
24066 let InputType = "reg";
24067 let BaseOpcode = "S4_storerb_rr";
24068 let isPredicable = 1;
24069 let opNewValue = 3;
24070 }
24071 def S4_storerbnew_ur : HInst<
24072 (outs),
24073 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24074 "memb($Ru32<<#$Ii+#$II) = $Nt8.new",
24075 tc_210b2456, TypeST>, Enc_7eb485, AddrModeRel {
24076 let Inst{7-7} = 0b1;
24077 let Inst{12-11} = 0b00;
24078 let Inst{31-21} = 0b10101101101;
24079 let addrMode = BaseLongOffset;
24080 let accessSize = ByteAccess;
24081 let isNVStore = 1;
24082 let isNewValue = 1;
24083 let isExtended = 1;
24084 let mayStore = 1;
24085 let CextOpcode = "S2_storerb";
24086 let BaseOpcode = "S4_storerb_ur";
24087 let DecoderNamespace = "MustExtend";
24088 let isExtendable = 1;
24089 let opExtendable = 2;
24090 let isExtentSigned = 0;
24091 let opExtentBits = 6;
24092 let opExtentAlign = 0;
24093 let opNewValue = 3;
24094 }
24095 def S4_storerd_ap : HInst<
24096 (outs IntRegs:$Re32),
24097 (ins u32_0Imm:$II, DoubleRegs:$Rtt32),
24098 "memd($Re32=#$II) = $Rtt32",
24099 tc_336e698c, TypeST>, Enc_c7a204 {
24100 let Inst{7-6} = 0b10;
24101 let Inst{13-13} = 0b0;
24102 let Inst{31-21} = 0b10101011110;
24103 let hasNewValue = 1;
24104 let opNewValue = 0;
24105 let addrMode = AbsoluteSet;
24106 let accessSize = DoubleWordAccess;
24107 let isExtended = 1;
24108 let mayStore = 1;
24109 let BaseOpcode = "S4_storerd_ap";
24110 let DecoderNamespace = "MustExtend";
24111 let isExtendable = 1;
24112 let opExtendable = 1;
24113 let isExtentSigned = 0;
24114 let opExtentBits = 6;
24115 let opExtentAlign = 0;
24116 }
24117 def S4_storerd_rr : HInst<
24118 (outs),
24119 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
24120 "memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
24121 tc_45631a8d, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
24122 let Inst{6-5} = 0b00;
24123 let Inst{31-21} = 0b00111011110;
24124 let addrMode = BaseRegOffset;
24125 let accessSize = DoubleWordAccess;
24126 let mayStore = 1;
24127 let CextOpcode = "S2_storerd";
24128 let InputType = "reg";
24129 let BaseOpcode = "S2_storerd_rr";
24130 let isPredicable = 1;
24131 }
24132 def S4_storerd_ur : HInst<
24133 (outs),
24134 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
24135 "memd($Ru32<<#$Ii+#$II) = $Rtt32",
24136 tc_a4567c39, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
24137 let Inst{7-7} = 0b1;
24138 let Inst{31-21} = 0b10101101110;
24139 let addrMode = BaseLongOffset;
24140 let accessSize = DoubleWordAccess;
24141 let isExtended = 1;
24142 let mayStore = 1;
24143 let CextOpcode = "S2_storerd";
24144 let InputType = "imm";
24145 let BaseOpcode = "S2_storerd_ur";
24146 let DecoderNamespace = "MustExtend";
24147 let isExtendable = 1;
24148 let opExtendable = 2;
24149 let isExtentSigned = 0;
24150 let opExtentBits = 6;
24151 let opExtentAlign = 0;
24152 }
24153 def S4_storerf_ap : HInst<
24154 (outs IntRegs:$Re32),
24155 (ins u32_0Imm:$II, IntRegs:$Rt32),
24156 "memh($Re32=#$II) = $Rt32.h",
24157 tc_336e698c, TypeST>, Enc_8bcba4 {
24158 let Inst{7-6} = 0b10;
24159 let Inst{13-13} = 0b0;
24160 let Inst{31-21} = 0b10101011011;
24161 let hasNewValue = 1;
24162 let opNewValue = 0;
24163 let addrMode = AbsoluteSet;
24164 let accessSize = HalfWordAccess;
24165 let isExtended = 1;
24166 let mayStore = 1;
24167 let BaseOpcode = "S4_storerf_ap";
24168 let DecoderNamespace = "MustExtend";
24169 let isExtendable = 1;
24170 let opExtendable = 1;
24171 let isExtentSigned = 0;
24172 let opExtentBits = 6;
24173 let opExtentAlign = 0;
24174 }
24175 def S4_storerf_rr : HInst<
24176 (outs),
24177 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24178 "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
24179 tc_45631a8d, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24180 let Inst{6-5} = 0b00;
24181 let Inst{31-21} = 0b00111011011;
24182 let addrMode = BaseRegOffset;
24183 let accessSize = HalfWordAccess;
24184 let mayStore = 1;
24185 let CextOpcode = "S2_storerf";
24186 let InputType = "reg";
24187 let BaseOpcode = "S4_storerf_rr";
24188 let isPredicable = 1;
24189 }
24190 def S4_storerf_ur : HInst<
24191 (outs),
24192 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24193 "memh($Ru32<<#$Ii+#$II) = $Rt32.h",
24194 tc_a4567c39, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24195 let Inst{7-7} = 0b1;
24196 let Inst{31-21} = 0b10101101011;
24197 let addrMode = BaseLongOffset;
24198 let accessSize = HalfWordAccess;
24199 let isExtended = 1;
24200 let mayStore = 1;
24201 let CextOpcode = "S2_storerf";
24202 let InputType = "imm";
24203 let BaseOpcode = "S4_storerf_rr";
24204 let DecoderNamespace = "MustExtend";
24205 let isExtendable = 1;
24206 let opExtendable = 2;
24207 let isExtentSigned = 0;
24208 let opExtentBits = 6;
24209 let opExtentAlign = 0;
24210 }
24211 def S4_storerh_ap : HInst<
24212 (outs IntRegs:$Re32),
24213 (ins u32_0Imm:$II, IntRegs:$Rt32),
24214 "memh($Re32=#$II) = $Rt32",
24215 tc_336e698c, TypeST>, Enc_8bcba4, AddrModeRel {
24216 let Inst{7-6} = 0b10;
24217 let Inst{13-13} = 0b0;
24218 let Inst{31-21} = 0b10101011010;
24219 let hasNewValue = 1;
24220 let opNewValue = 0;
24221 let addrMode = AbsoluteSet;
24222 let accessSize = HalfWordAccess;
24223 let isExtended = 1;
24224 let mayStore = 1;
24225 let BaseOpcode = "S2_storerh_ap";
24226 let isNVStorable = 1;
24227 let DecoderNamespace = "MustExtend";
24228 let isExtendable = 1;
24229 let opExtendable = 1;
24230 let isExtentSigned = 0;
24231 let opExtentBits = 6;
24232 let opExtentAlign = 0;
24233 }
24234 def S4_storerh_rr : HInst<
24235 (outs),
24236 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24237 "memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24238 tc_45631a8d, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24239 let Inst{6-5} = 0b00;
24240 let Inst{31-21} = 0b00111011010;
24241 let addrMode = BaseRegOffset;
24242 let accessSize = HalfWordAccess;
24243 let mayStore = 1;
24244 let CextOpcode = "S2_storerh";
24245 let InputType = "reg";
24246 let BaseOpcode = "S2_storerh_rr";
24247 let isNVStorable = 1;
24248 let isPredicable = 1;
24249 }
24250 def S4_storerh_ur : HInst<
24251 (outs),
24252 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24253 "memh($Ru32<<#$Ii+#$II) = $Rt32",
24254 tc_a4567c39, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24255 let Inst{7-7} = 0b1;
24256 let Inst{31-21} = 0b10101101010;
24257 let addrMode = BaseLongOffset;
24258 let accessSize = HalfWordAccess;
24259 let isExtended = 1;
24260 let mayStore = 1;
24261 let CextOpcode = "S2_storerh";
24262 let InputType = "imm";
24263 let BaseOpcode = "S2_storerh_ur";
24264 let isNVStorable = 1;
24265 let DecoderNamespace = "MustExtend";
24266 let isExtendable = 1;
24267 let opExtendable = 2;
24268 let isExtentSigned = 0;
24269 let opExtentBits = 6;
24270 let opExtentAlign = 0;
24271 }
24272 def S4_storerhnew_ap : HInst<
24273 (outs IntRegs:$Re32),
24274 (ins u32_0Imm:$II, IntRegs:$Nt8),
24275 "memh($Re32=#$II) = $Nt8.new",
24276 tc_7986ba30, TypeST>, Enc_724154, AddrModeRel {
24277 let Inst{7-6} = 0b10;
24278 let Inst{13-11} = 0b001;
24279 let Inst{31-21} = 0b10101011101;
24280 let hasNewValue = 1;
24281 let opNewValue = 0;
24282 let addrMode = AbsoluteSet;
24283 let accessSize = HalfWordAccess;
24284 let isNVStore = 1;
24285 let isNewValue = 1;
24286 let isExtended = 1;
24287 let mayStore = 1;
24288 let BaseOpcode = "S2_storerh_ap";
24289 let DecoderNamespace = "MustExtend";
24290 let isExtendable = 1;
24291 let opExtendable = 1;
24292 let isExtentSigned = 0;
24293 let opExtentBits = 6;
24294 let opExtentAlign = 0;
24295 let opNewValue = 2;
24296 }
24297 def S4_storerhnew_rr : HInst<
24298 (outs),
24299 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24300 "memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24301 tc_be995eaf, TypeST>, Enc_c6220b, AddrModeRel {
24302 let Inst{6-3} = 0b0001;
24303 let Inst{31-21} = 0b00111011101;
24304 let addrMode = BaseRegOffset;
24305 let accessSize = HalfWordAccess;
24306 let isNVStore = 1;
24307 let isNewValue = 1;
24308 let mayStore = 1;
24309 let CextOpcode = "S2_storerh";
24310 let InputType = "reg";
24311 let BaseOpcode = "S2_storerh_rr";
24312 let isPredicable = 1;
24313 let opNewValue = 3;
24314 }
24315 def S4_storerhnew_ur : HInst<
24316 (outs),
24317 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24318 "memh($Ru32<<#$Ii+#$II) = $Nt8.new",
24319 tc_210b2456, TypeST>, Enc_7eb485, AddrModeRel {
24320 let Inst{7-7} = 0b1;
24321 let Inst{12-11} = 0b01;
24322 let Inst{31-21} = 0b10101101101;
24323 let addrMode = BaseLongOffset;
24324 let accessSize = HalfWordAccess;
24325 let isNVStore = 1;
24326 let isNewValue = 1;
24327 let isExtended = 1;
24328 let mayStore = 1;
24329 let CextOpcode = "S2_storerh";
24330 let BaseOpcode = "S2_storerh_ur";
24331 let DecoderNamespace = "MustExtend";
24332 let isExtendable = 1;
24333 let opExtendable = 2;
24334 let isExtentSigned = 0;
24335 let opExtentBits = 6;
24336 let opExtentAlign = 0;
24337 let opNewValue = 3;
24338 }
24339 def S4_storeri_ap : HInst<
24340 (outs IntRegs:$Re32),
24341 (ins u32_0Imm:$II, IntRegs:$Rt32),
24342 "memw($Re32=#$II) = $Rt32",
24343 tc_336e698c, TypeST>, Enc_8bcba4, AddrModeRel {
24344 let Inst{7-6} = 0b10;
24345 let Inst{13-13} = 0b0;
24346 let Inst{31-21} = 0b10101011100;
24347 let hasNewValue = 1;
24348 let opNewValue = 0;
24349 let addrMode = AbsoluteSet;
24350 let accessSize = WordAccess;
24351 let isExtended = 1;
24352 let mayStore = 1;
24353 let BaseOpcode = "S2_storeri_ap";
24354 let isNVStorable = 1;
24355 let DecoderNamespace = "MustExtend";
24356 let isExtendable = 1;
24357 let opExtendable = 1;
24358 let isExtentSigned = 0;
24359 let opExtentBits = 6;
24360 let opExtentAlign = 0;
24361 }
24362 def S4_storeri_rr : HInst<
24363 (outs),
24364 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24365 "memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24366 tc_45631a8d, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24367 let Inst{6-5} = 0b00;
24368 let Inst{31-21} = 0b00111011100;
24369 let addrMode = BaseRegOffset;
24370 let accessSize = WordAccess;
24371 let mayStore = 1;
24372 let CextOpcode = "S2_storeri";
24373 let InputType = "reg";
24374 let BaseOpcode = "S2_storeri_rr";
24375 let isNVStorable = 1;
24376 let isPredicable = 1;
24377 }
24378 def S4_storeri_ur : HInst<
24379 (outs),
24380 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24381 "memw($Ru32<<#$Ii+#$II) = $Rt32",
24382 tc_a4567c39, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24383 let Inst{7-7} = 0b1;
24384 let Inst{31-21} = 0b10101101100;
24385 let addrMode = BaseLongOffset;
24386 let accessSize = WordAccess;
24387 let isExtended = 1;
24388 let mayStore = 1;
24389 let CextOpcode = "S2_storeri";
24390 let InputType = "imm";
24391 let BaseOpcode = "S2_storeri_ur";
24392 let isNVStorable = 1;
24393 let DecoderNamespace = "MustExtend";
24394 let isExtendable = 1;
24395 let opExtendable = 2;
24396 let isExtentSigned = 0;
24397 let opExtentBits = 6;
24398 let opExtentAlign = 0;
24399 }
24400 def S4_storerinew_ap : HInst<
24401 (outs IntRegs:$Re32),
24402 (ins u32_0Imm:$II, IntRegs:$Nt8),
24403 "memw($Re32=#$II) = $Nt8.new",
24404 tc_7986ba30, TypeST>, Enc_724154, AddrModeRel {
24405 let Inst{7-6} = 0b10;
24406 let Inst{13-11} = 0b010;
24407 let Inst{31-21} = 0b10101011101;
24408 let hasNewValue = 1;
24409 let opNewValue = 0;
24410 let addrMode = AbsoluteSet;
24411 let accessSize = WordAccess;
24412 let isNVStore = 1;
24413 let isNewValue = 1;
24414 let isExtended = 1;
24415 let mayStore = 1;
24416 let BaseOpcode = "S2_storeri_ap";
24417 let DecoderNamespace = "MustExtend";
24418 let isExtendable = 1;
24419 let opExtendable = 1;
24420 let isExtentSigned = 0;
24421 let opExtentBits = 6;
24422 let opExtentAlign = 0;
24423 let opNewValue = 2;
24424 }
24425 def S4_storerinew_rr : HInst<
24426 (outs),
24427 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24428 "memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24429 tc_be995eaf, TypeST>, Enc_c6220b, AddrModeRel {
24430 let Inst{6-3} = 0b0010;
24431 let Inst{31-21} = 0b00111011101;
24432 let addrMode = BaseRegOffset;
24433 let accessSize = WordAccess;
24434 let isNVStore = 1;
24435 let isNewValue = 1;
24436 let mayStore = 1;
24437 let CextOpcode = "S2_storeri";
24438 let InputType = "reg";
24439 let BaseOpcode = "S2_storeri_rr";
24440 let isPredicable = 1;
24441 let opNewValue = 3;
24442 }
24443 def S4_storerinew_ur : HInst<
24444 (outs),
24445 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24446 "memw($Ru32<<#$Ii+#$II) = $Nt8.new",
24447 tc_210b2456, TypeST>, Enc_7eb485, AddrModeRel {
24448 let Inst{7-7} = 0b1;
24449 let Inst{12-11} = 0b10;
24450 let Inst{31-21} = 0b10101101101;
24451 let addrMode = BaseLongOffset;
24452 let accessSize = WordAccess;
24453 let isNVStore = 1;
24454 let isNewValue = 1;
24455 let isExtended = 1;
24456 let mayStore = 1;
24457 let CextOpcode = "S2_storeri";
24458 let BaseOpcode = "S2_storeri_ur";
24459 let DecoderNamespace = "MustExtend";
24460 let isExtendable = 1;
24461 let opExtendable = 2;
24462 let isExtentSigned = 0;
24463 let opExtentBits = 6;
24464 let opExtentAlign = 0;
24465 let opNewValue = 3;
24466 }
24467 def S4_subaddi : HInst<
24468 (outs IntRegs:$Rd32),
24469 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
24470 "$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
24471 tc_090485bb, TypeALU64>, Enc_8b8d61 {
24472 let Inst{31-23} = 0b110110111;
24473 let hasNewValue = 1;
24474 let opNewValue = 0;
24475 let prefersSlot3 = 1;
24476 let isExtendable = 1;
24477 let opExtendable = 2;
24478 let isExtentSigned = 1;
24479 let opExtentBits = 6;
24480 let opExtentAlign = 0;
24481 }
24482 def S4_subi_asl_ri : HInst<
24483 (outs IntRegs:$Rx32),
24484 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
24485 "$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
24486 tc_c0cd91a8, TypeALU64>, Enc_c31910 {
24487 let Inst{2-0} = 0b110;
24488 let Inst{4-4} = 0b0;
24489 let Inst{31-24} = 0b11011110;
24490 let hasNewValue = 1;
24491 let opNewValue = 0;
24492 let prefersSlot3 = 1;
24493 let isExtendable = 1;
24494 let opExtendable = 1;
24495 let isExtentSigned = 0;
24496 let opExtentBits = 8;
24497 let opExtentAlign = 0;
24498 let Constraints = "$Rx32 = $Rx32in";
24499 }
24500 def S4_subi_lsr_ri : HInst<
24501 (outs IntRegs:$Rx32),
24502 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
24503 "$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
24504 tc_c0cd91a8, TypeALU64>, Enc_c31910 {
24505 let Inst{2-0} = 0b110;
24506 let Inst{4-4} = 0b1;
24507 let Inst{31-24} = 0b11011110;
24508 let hasNewValue = 1;
24509 let opNewValue = 0;
24510 let prefersSlot3 = 1;
24511 let isExtendable = 1;
24512 let opExtendable = 1;
24513 let isExtentSigned = 0;
24514 let opExtentBits = 8;
24515 let opExtentAlign = 0;
24516 let Constraints = "$Rx32 = $Rx32in";
24517 }
24518 def S4_vrcrotate : HInst<
24519 (outs DoubleRegs:$Rdd32),
24520 (ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
24521 "$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
24522 tc_6264c5e0, TypeS_3op>, Enc_645d54 {
24523 let Inst{7-6} = 0b11;
24524 let Inst{31-21} = 0b11000011110;
24525 let prefersSlot3 = 1;
24526 }
24527 def S4_vrcrotate_acc : HInst<
24528 (outs DoubleRegs:$Rxx32),
24529 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
24530 "$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
24531 tc_bc5561d8, TypeS_3op>, Enc_b72622 {
24532 let Inst{7-6} = 0b00;
24533 let Inst{31-21} = 0b11001011101;
24534 let prefersSlot3 = 1;
24535 let Constraints = "$Rxx32 = $Rxx32in";
24536 }
24537 def S4_vxaddsubh : HInst<
24538 (outs DoubleRegs:$Rdd32),
24539 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24540 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
24541 tc_47ab9233, TypeS_3op>, Enc_a56825 {
24542 let Inst{7-5} = 0b100;
24543 let Inst{13-13} = 0b0;
24544 let Inst{31-21} = 0b11000001010;
24545 let prefersSlot3 = 1;
24546 let Defs = [USR_OVF];
24547 }
24548 def S4_vxaddsubhr : HInst<
24549 (outs DoubleRegs:$Rdd32),
24550 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24551 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
24552 tc_63cd9d2d, TypeS_3op>, Enc_a56825 {
24553 let Inst{7-5} = 0b000;
24554 let Inst{13-13} = 0b0;
24555 let Inst{31-21} = 0b11000001110;
24556 let prefersSlot3 = 1;
24557 let Defs = [USR_OVF];
24558 }
24559 def S4_vxaddsubw : HInst<
24560 (outs DoubleRegs:$Rdd32),
24561 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24562 "$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
24563 tc_47ab9233, TypeS_3op>, Enc_a56825 {
24564 let Inst{7-5} = 0b000;
24565 let Inst{13-13} = 0b0;
24566 let Inst{31-21} = 0b11000001010;
24567 let prefersSlot3 = 1;
24568 let Defs = [USR_OVF];
24569 }
24570 def S4_vxsubaddh : HInst<
24571 (outs DoubleRegs:$Rdd32),
24572 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24573 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
24574 tc_47ab9233, TypeS_3op>, Enc_a56825 {
24575 let Inst{7-5} = 0b110;
24576 let Inst{13-13} = 0b0;
24577 let Inst{31-21} = 0b11000001010;
24578 let prefersSlot3 = 1;
24579 let Defs = [USR_OVF];
24580 }
24581 def S4_vxsubaddhr : HInst<
24582 (outs DoubleRegs:$Rdd32),
24583 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24584 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
24585 tc_63cd9d2d, TypeS_3op>, Enc_a56825 {
24586 let Inst{7-5} = 0b010;
24587 let Inst{13-13} = 0b0;
24588 let Inst{31-21} = 0b11000001110;
24589 let prefersSlot3 = 1;
24590 let Defs = [USR_OVF];
24591 }
24592 def S4_vxsubaddw : HInst<
24593 (outs DoubleRegs:$Rdd32),
24594 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24595 "$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
24596 tc_47ab9233, TypeS_3op>, Enc_a56825 {
24597 let Inst{7-5} = 0b010;
24598 let Inst{13-13} = 0b0;
24599 let Inst{31-21} = 0b11000001010;
24600 let prefersSlot3 = 1;
24601 let Defs = [USR_OVF];
24602 }
24603 def S5_asrhub_rnd_sat : HInst<
24604 (outs IntRegs:$Rd32),
24605 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
24606 "$Rd32 = vasrhub($Rss32,#$Ii):raw",
24607 tc_63cd9d2d, TypeS_2op>, Enc_11a146, Requires<[HasV5T]> {
24608 let Inst{7-5} = 0b100;
24609 let Inst{13-12} = 0b00;
24610 let Inst{31-21} = 0b10001000011;
24611 let hasNewValue = 1;
24612 let opNewValue = 0;
24613 let prefersSlot3 = 1;
24614 let Defs = [USR_OVF];
24615 }
24616 def S5_asrhub_rnd_sat_goodsyntax : HInst<
24617 (outs IntRegs:$Rd32),
24618 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
24619 "$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
24620 tc_63cd9d2d, TypeS_2op>, Requires<[HasV5T]> {
24621 let hasNewValue = 1;
24622 let opNewValue = 0;
24623 let isPseudo = 1;
24624 }
24625 def S5_asrhub_sat : HInst<
24626 (outs IntRegs:$Rd32),
24627 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
24628 "$Rd32 = vasrhub($Rss32,#$Ii):sat",
24629 tc_63cd9d2d, TypeS_2op>, Enc_11a146, Requires<[HasV5T]> {
24630 let Inst{7-5} = 0b101;
24631 let Inst{13-12} = 0b00;
24632 let Inst{31-21} = 0b10001000011;
24633 let hasNewValue = 1;
24634 let opNewValue = 0;
24635 let prefersSlot3 = 1;
24636 let Defs = [USR_OVF];
24637 }
24638 def S5_popcountp : HInst<
24639 (outs IntRegs:$Rd32),
24640 (ins DoubleRegs:$Rss32),
24641 "$Rd32 = popcount($Rss32)",
24642 tc_ca280e8b, TypeS_2op>, Enc_90cd8b, Requires<[HasV5T]> {
24643 let Inst{13-5} = 0b000000011;
24644 let Inst{31-21} = 0b10001000011;
24645 let hasNewValue = 1;
24646 let opNewValue = 0;
24647 let prefersSlot3 = 1;
24648 }
24649 def S5_vasrhrnd : HInst<
24650 (outs DoubleRegs:$Rdd32),
24651 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
24652 "$Rdd32 = vasrh($Rss32,#$Ii):raw",
24653 tc_63cd9d2d, TypeS_2op>, Enc_12b6e9, Requires<[HasV5T]> {
24654 let Inst{7-5} = 0b000;
24655 let Inst{13-12} = 0b00;
24656 let Inst{31-21} = 0b10000000001;
24657 let prefersSlot3 = 1;
24658 }
24659 def S5_vasrhrnd_goodsyntax : HInst<
24660 (outs DoubleRegs:$Rdd32),
24661 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
24662 "$Rdd32 = vasrh($Rss32,#$Ii):rnd",
24663 tc_63cd9d2d, TypeS_2op>, Requires<[HasV5T]> {
24664 let isPseudo = 1;
24665 }
24666 def S6_rol_i_p : HInst<
24667 (outs DoubleRegs:$Rdd32),
24668 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
24669 "$Rdd32 = rol($Rss32,#$Ii)",
24670 tc_9f518242, TypeS_2op>, Enc_5eac98, Requires<[HasV60T]> {
24671 let Inst{7-5} = 0b011;
24672 let Inst{31-21} = 0b10000000000;
24673 }
24674 def S6_rol_i_p_acc : HInst<
24675 (outs DoubleRegs:$Rxx32),
24676 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
24677 "$Rxx32 += rol($Rss32,#$Ii)",
24678 tc_e17ce9ad, TypeS_2op>, Enc_70fb07, Requires<[HasV60T]> {
24679 let Inst{7-5} = 0b111;
24680 let Inst{31-21} = 0b10000010000;
24681 let prefersSlot3 = 1;
24682 let Constraints = "$Rxx32 = $Rxx32in";
24683 }
24684 def S6_rol_i_p_and : HInst<
24685 (outs DoubleRegs:$Rxx32),
24686 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
24687 "$Rxx32 &= rol($Rss32,#$Ii)",
24688 tc_e17ce9ad, TypeS_2op>, Enc_70fb07, Requires<[HasV60T]> {
24689 let Inst{7-5} = 0b011;
24690 let Inst{31-21} = 0b10000010010;
24691 let prefersSlot3 = 1;
24692 let Constraints = "$Rxx32 = $Rxx32in";
24693 }
24694 def S6_rol_i_p_nac : HInst<
24695 (outs DoubleRegs:$Rxx32),
24696 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
24697 "$Rxx32 -= rol($Rss32,#$Ii)",
24698 tc_e17ce9ad, TypeS_2op>, Enc_70fb07, Requires<[HasV60T]> {
24699 let Inst{7-5} = 0b011;
24700 let Inst{31-21} = 0b10000010000;
24701 let prefersSlot3 = 1;
24702 let Constraints = "$Rxx32 = $Rxx32in";
24703 }
24704 def S6_rol_i_p_or : HInst<
24705 (outs DoubleRegs:$Rxx32),
24706 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
24707 "$Rxx32 |= rol($Rss32,#$Ii)",
24708 tc_e17ce9ad, TypeS_2op>, Enc_70fb07, Requires<[HasV60T]> {
24709 let Inst{7-5} = 0b111;
24710 let Inst{31-21} = 0b10000010010;
24711 let prefersSlot3 = 1;
24712 let Constraints = "$Rxx32 = $Rxx32in";
24713 }
24714 def S6_rol_i_p_xacc : HInst<
24715 (outs DoubleRegs:$Rxx32),
24716 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
24717 "$Rxx32 ^= rol($Rss32,#$Ii)",
24718 tc_e17ce9ad, TypeS_2op>, Enc_70fb07, Requires<[HasV60T]> {
24719 let Inst{7-5} = 0b011;
24720 let Inst{31-21} = 0b10000010100;
24721 let prefersSlot3 = 1;
24722 let Constraints = "$Rxx32 = $Rxx32in";
24723 }
24724 def S6_rol_i_r : HInst<
24725 (outs IntRegs:$Rd32),
24726 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
24727 "$Rd32 = rol($Rs32,#$Ii)",
24728 tc_9f518242, TypeS_2op>, Enc_a05677, Requires<[HasV60T]> {
24729 let Inst{7-5} = 0b011;
24730 let Inst{13-13} = 0b0;
24731 let Inst{31-21} = 0b10001100000;
24732 let hasNewValue = 1;
24733 let opNewValue = 0;
24734 }
24735 def S6_rol_i_r_acc : HInst<
24736 (outs IntRegs:$Rx32),
24737 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
24738 "$Rx32 += rol($Rs32,#$Ii)",
24739 tc_e17ce9ad, TypeS_2op>, Enc_28a2dc, Requires<[HasV60T]> {
24740 let Inst{7-5} = 0b111;
24741 let Inst{13-13} = 0b0;
24742 let Inst{31-21} = 0b10001110000;
24743 let hasNewValue = 1;
24744 let opNewValue = 0;
24745 let prefersSlot3 = 1;
24746 let Constraints = "$Rx32 = $Rx32in";
24747 }
24748 def S6_rol_i_r_and : HInst<
24749 (outs IntRegs:$Rx32),
24750 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
24751 "$Rx32 &= rol($Rs32,#$Ii)",
24752 tc_e17ce9ad, TypeS_2op>, Enc_28a2dc, Requires<[HasV60T]> {
24753 let Inst{7-5} = 0b011;
24754 let Inst{13-13} = 0b0;
24755 let Inst{31-21} = 0b10001110010;
24756 let hasNewValue = 1;
24757 let opNewValue = 0;
24758 let prefersSlot3 = 1;
24759 let Constraints = "$Rx32 = $Rx32in";
24760 }
24761 def S6_rol_i_r_nac : HInst<
24762 (outs IntRegs:$Rx32),
24763 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
24764 "$Rx32 -= rol($Rs32,#$Ii)",
24765 tc_e17ce9ad, TypeS_2op>, Enc_28a2dc, Requires<[HasV60T]> {
24766 let Inst{7-5} = 0b011;
24767 let Inst{13-13} = 0b0;
24768 let Inst{31-21} = 0b10001110000;
24769 let hasNewValue = 1;
24770 let opNewValue = 0;
24771 let prefersSlot3 = 1;
24772 let Constraints = "$Rx32 = $Rx32in";
24773 }
24774 def S6_rol_i_r_or : HInst<
24775 (outs IntRegs:$Rx32),
24776 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
24777 "$Rx32 |= rol($Rs32,#$Ii)",
24778 tc_e17ce9ad, TypeS_2op>, Enc_28a2dc, Requires<[HasV60T]> {
24779 let Inst{7-5} = 0b111;
24780 let Inst{13-13} = 0b0;
24781 let Inst{31-21} = 0b10001110010;
24782 let hasNewValue = 1;
24783 let opNewValue = 0;
24784 let prefersSlot3 = 1;
24785 let Constraints = "$Rx32 = $Rx32in";
24786 }
24787 def S6_rol_i_r_xacc : HInst<
24788 (outs IntRegs:$Rx32),
24789 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
24790 "$Rx32 ^= rol($Rs32,#$Ii)",
24791 tc_e17ce9ad, TypeS_2op>, Enc_28a2dc, Requires<[HasV60T]> {
24792 let Inst{7-5} = 0b011;
24793 let Inst{13-13} = 0b0;
24794 let Inst{31-21} = 0b10001110100;
24795 let hasNewValue = 1;
24796 let opNewValue = 0;
24797 let prefersSlot3 = 1;
24798 let Constraints = "$Rx32 = $Rx32in";
24799 }
24800 def S6_vsplatrbp : HInst<
24801 (outs DoubleRegs:$Rdd32),
24802 (ins IntRegs:$Rs32),
24803 "$Rdd32 = vsplatb($Rs32)",
24804 tc_78b3c689, TypeS_2op>, Enc_3a3d62, Requires<[HasV62T]> {
24805 let Inst{13-5} = 0b000000100;
24806 let Inst{31-21} = 0b10000100010;
24807 }
24808 def S6_vtrunehb_ppp : HInst<
24809 (outs DoubleRegs:$Rdd32),
24810 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24811 "$Rdd32 = vtrunehb($Rss32,$Rtt32)",
24812 tc_9f518242, TypeS_3op>, Enc_a56825, Requires<[HasV62T]> {
24813 let Inst{7-5} = 0b011;
24814 let Inst{13-13} = 0b0;
24815 let Inst{31-21} = 0b11000001100;
24816 }
24817 def S6_vtrunohb_ppp : HInst<
24818 (outs DoubleRegs:$Rdd32),
24819 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
24820 "$Rdd32 = vtrunohb($Rss32,$Rtt32)",
24821 tc_9f518242, TypeS_3op>, Enc_a56825, Requires<[HasV62T]> {
24822 let Inst{7-5} = 0b101;
24823 let Inst{13-13} = 0b0;
24824 let Inst{31-21} = 0b11000001100;
24825 }
24826 def SA1_addi : HInst<
24827 (outs GeneralSubRegs:$Rx16),
24828 (ins IntRegs:$Rx16in, s32_0Imm:$Ii),
24829 "$Rx16 = add($Rx16in,#$Ii)",
24830 tc_821c4233, TypeSUBINSN>, Enc_93af4c {
24831 let Inst{12-11} = 0b00;
24832 let hasNewValue = 1;
24833 let opNewValue = 0;
24834 let AsmVariantName = "NonParsable";
24835 let DecoderNamespace = "SUBINSN_A";
24836 let isExtendable = 1;
24837 let opExtendable = 2;
24838 let isExtentSigned = 1;
24839 let opExtentBits = 7;
24840 let opExtentAlign = 0;
24841 let Constraints = "$Rx16 = $Rx16in";
24842 }
24843 def SA1_addrx : HInst<
24844 (outs GeneralSubRegs:$Rx16),
24845 (ins IntRegs:$Rx16in, GeneralSubRegs:$Rs16),
24846 "$Rx16 = add($Rx16in,$Rs16)",
24847 tc_821c4233, TypeSUBINSN>, Enc_0527db {
24848 let Inst{12-8} = 0b11000;
24849 let hasNewValue = 1;
24850 let opNewValue = 0;
24851 let AsmVariantName = "NonParsable";
24852 let DecoderNamespace = "SUBINSN_A";
24853 let Constraints = "$Rx16 = $Rx16in";
24854 }
24855 def SA1_addsp : HInst<
24856 (outs GeneralSubRegs:$Rd16),
24857 (ins u6_2Imm:$Ii),
24858 "$Rd16 = add(r29,#$Ii)",
24859 tc_d2609065, TypeSUBINSN>, Enc_2df31d {
24860 let Inst{12-10} = 0b011;
24861 let hasNewValue = 1;
24862 let opNewValue = 0;
24863 let AsmVariantName = "NonParsable";
24864 let Uses = [R29];
24865 let DecoderNamespace = "SUBINSN_A";
24866 }
24867 def SA1_and1 : HInst<
24868 (outs GeneralSubRegs:$Rd16),
24869 (ins GeneralSubRegs:$Rs16),
24870 "$Rd16 = and($Rs16,#1)",
24871 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
24872 let Inst{12-8} = 0b10010;
24873 let hasNewValue = 1;
24874 let opNewValue = 0;
24875 let AsmVariantName = "NonParsable";
24876 let DecoderNamespace = "SUBINSN_A";
24877 }
24878 def SA1_clrf : HInst<
24879 (outs GeneralSubRegs:$Rd16),
24880 (ins),
24881 "if (!p0) $Rd16 = #0",
24882 tc_7c2dcd4d, TypeSUBINSN>, Enc_1f5ba6 {
24883 let Inst{12-4} = 0b110100111;
24884 let isPredicated = 1;
24885 let isPredicatedFalse = 1;
24886 let hasNewValue = 1;
24887 let opNewValue = 0;
24888 let AsmVariantName = "NonParsable";
24889 let Uses = [P0];
24890 let DecoderNamespace = "SUBINSN_A";
24891 }
24892 def SA1_clrfnew : HInst<
24893 (outs GeneralSubRegs:$Rd16),
24894 (ins),
24895 "if (!p0.new) $Rd16 = #0",
24896 tc_f26aa619, TypeSUBINSN>, Enc_1f5ba6 {
24897 let Inst{12-4} = 0b110100101;
24898 let isPredicated = 1;
24899 let isPredicatedFalse = 1;
24900 let hasNewValue = 1;
24901 let opNewValue = 0;
24902 let AsmVariantName = "NonParsable";
24903 let isPredicatedNew = 1;
24904 let Uses = [P0];
24905 let DecoderNamespace = "SUBINSN_A";
24906 }
24907 def SA1_clrt : HInst<
24908 (outs GeneralSubRegs:$Rd16),
24909 (ins),
24910 "if (p0) $Rd16 = #0",
24911 tc_7c2dcd4d, TypeSUBINSN>, Enc_1f5ba6 {
24912 let Inst{12-4} = 0b110100110;
24913 let isPredicated = 1;
24914 let hasNewValue = 1;
24915 let opNewValue = 0;
24916 let AsmVariantName = "NonParsable";
24917 let Uses = [P0];
24918 let DecoderNamespace = "SUBINSN_A";
24919 }
24920 def SA1_clrtnew : HInst<
24921 (outs GeneralSubRegs:$Rd16),
24922 (ins),
24923 "if (p0.new) $Rd16 = #0",
24924 tc_f26aa619, TypeSUBINSN>, Enc_1f5ba6 {
24925 let Inst{12-4} = 0b110100100;
24926 let isPredicated = 1;
24927 let hasNewValue = 1;
24928 let opNewValue = 0;
24929 let AsmVariantName = "NonParsable";
24930 let isPredicatedNew = 1;
24931 let Uses = [P0];
24932 let DecoderNamespace = "SUBINSN_A";
24933 }
24934 def SA1_cmpeqi : HInst<
24935 (outs),
24936 (ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
24937 "p0 = cmp.eq($Rs16,#$Ii)",
24938 tc_e8c7a357, TypeSUBINSN>, Enc_63eaeb {
24939 let Inst{3-2} = 0b00;
24940 let Inst{12-8} = 0b11001;
24941 let AsmVariantName = "NonParsable";
24942 let Defs = [P0];
24943 let DecoderNamespace = "SUBINSN_A";
24944 }
24945 def SA1_combine0i : HInst<
24946 (outs GeneralDoubleLow8Regs:$Rdd8),
24947 (ins u2_0Imm:$Ii),
24948 "$Rdd8 = combine(#0,#$Ii)",
24949 tc_d2609065, TypeSUBINSN>, Enc_ed48be {
24950 let Inst{4-3} = 0b00;
24951 let Inst{12-7} = 0b111000;
24952 let hasNewValue = 1;
24953 let opNewValue = 0;
24954 let AsmVariantName = "NonParsable";
24955 let DecoderNamespace = "SUBINSN_A";
24956 }
24957 def SA1_combine1i : HInst<
24958 (outs GeneralDoubleLow8Regs:$Rdd8),
24959 (ins u2_0Imm:$Ii),
24960 "$Rdd8 = combine(#1,#$Ii)",
24961 tc_d2609065, TypeSUBINSN>, Enc_ed48be {
24962 let Inst{4-3} = 0b01;
24963 let Inst{12-7} = 0b111000;
24964 let hasNewValue = 1;
24965 let opNewValue = 0;
24966 let AsmVariantName = "NonParsable";
24967 let DecoderNamespace = "SUBINSN_A";
24968 }
24969 def SA1_combine2i : HInst<
24970 (outs GeneralDoubleLow8Regs:$Rdd8),
24971 (ins u2_0Imm:$Ii),
24972 "$Rdd8 = combine(#2,#$Ii)",
24973 tc_d2609065, TypeSUBINSN>, Enc_ed48be {
24974 let Inst{4-3} = 0b10;
24975 let Inst{12-7} = 0b111000;
24976 let hasNewValue = 1;
24977 let opNewValue = 0;
24978 let AsmVariantName = "NonParsable";
24979 let DecoderNamespace = "SUBINSN_A";
24980 }
24981 def SA1_combine3i : HInst<
24982 (outs GeneralDoubleLow8Regs:$Rdd8),
24983 (ins u2_0Imm:$Ii),
24984 "$Rdd8 = combine(#3,#$Ii)",
24985 tc_d2609065, TypeSUBINSN>, Enc_ed48be {
24986 let Inst{4-3} = 0b11;
24987 let Inst{12-7} = 0b111000;
24988 let hasNewValue = 1;
24989 let opNewValue = 0;
24990 let AsmVariantName = "NonParsable";
24991 let DecoderNamespace = "SUBINSN_A";
24992 }
24993 def SA1_combinerz : HInst<
24994 (outs GeneralDoubleLow8Regs:$Rdd8),
24995 (ins GeneralSubRegs:$Rs16),
24996 "$Rdd8 = combine($Rs16,#0)",
24997 tc_d2609065, TypeSUBINSN>, Enc_399e12 {
24998 let Inst{3-3} = 0b1;
24999 let Inst{12-8} = 0b11101;
25000 let hasNewValue = 1;
25001 let opNewValue = 0;
25002 let AsmVariantName = "NonParsable";
25003 let DecoderNamespace = "SUBINSN_A";
25004 }
25005 def SA1_combinezr : HInst<
25006 (outs GeneralDoubleLow8Regs:$Rdd8),
25007 (ins GeneralSubRegs:$Rs16),
25008 "$Rdd8 = combine(#0,$Rs16)",
25009 tc_d2609065, TypeSUBINSN>, Enc_399e12 {
25010 let Inst{3-3} = 0b0;
25011 let Inst{12-8} = 0b11101;
25012 let hasNewValue = 1;
25013 let opNewValue = 0;
25014 let AsmVariantName = "NonParsable";
25015 let DecoderNamespace = "SUBINSN_A";
25016 }
25017 def SA1_dec : HInst<
25018 (outs GeneralSubRegs:$Rd16),
25019 (ins GeneralSubRegs:$Rs16, n1Const:$n1),
25020 "$Rd16 = add($Rs16,#$n1)",
25021 tc_821c4233, TypeSUBINSN>, Enc_ee5ed0 {
25022 let Inst{12-8} = 0b10011;
25023 let hasNewValue = 1;
25024 let opNewValue = 0;
25025 let AsmVariantName = "NonParsable";
25026 let DecoderNamespace = "SUBINSN_A";
25027 }
25028 def SA1_inc : HInst<
25029 (outs GeneralSubRegs:$Rd16),
25030 (ins GeneralSubRegs:$Rs16),
25031 "$Rd16 = add($Rs16,#1)",
25032 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25033 let Inst{12-8} = 0b10001;
25034 let hasNewValue = 1;
25035 let opNewValue = 0;
25036 let AsmVariantName = "NonParsable";
25037 let DecoderNamespace = "SUBINSN_A";
25038 }
25039 def SA1_seti : HInst<
25040 (outs GeneralSubRegs:$Rd16),
25041 (ins u32_0Imm:$Ii),
25042 "$Rd16 = #$Ii",
25043 tc_d2609065, TypeSUBINSN>, Enc_e39bb2 {
25044 let Inst{12-10} = 0b010;
25045 let hasNewValue = 1;
25046 let opNewValue = 0;
25047 let AsmVariantName = "NonParsable";
25048 let DecoderNamespace = "SUBINSN_A";
25049 let isExtendable = 1;
25050 let opExtendable = 1;
25051 let isExtentSigned = 0;
25052 let opExtentBits = 6;
25053 let opExtentAlign = 0;
25054 }
25055 def SA1_setin1 : HInst<
25056 (outs GeneralSubRegs:$Rd16),
25057 (ins n1Const:$n1),
25058 "$Rd16 = #$n1",
25059 tc_d2609065, TypeSUBINSN>, Enc_7a0ea6 {
25060 let Inst{12-4} = 0b110100000;
25061 let hasNewValue = 1;
25062 let opNewValue = 0;
25063 let AsmVariantName = "NonParsable";
25064 let DecoderNamespace = "SUBINSN_A";
25065 }
25066 def SA1_sxtb : HInst<
25067 (outs GeneralSubRegs:$Rd16),
25068 (ins GeneralSubRegs:$Rs16),
25069 "$Rd16 = sxtb($Rs16)",
25070 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25071 let Inst{12-8} = 0b10101;
25072 let hasNewValue = 1;
25073 let opNewValue = 0;
25074 let AsmVariantName = "NonParsable";
25075 let DecoderNamespace = "SUBINSN_A";
25076 }
25077 def SA1_sxth : HInst<
25078 (outs GeneralSubRegs:$Rd16),
25079 (ins GeneralSubRegs:$Rs16),
25080 "$Rd16 = sxth($Rs16)",
25081 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25082 let Inst{12-8} = 0b10100;
25083 let hasNewValue = 1;
25084 let opNewValue = 0;
25085 let AsmVariantName = "NonParsable";
25086 let DecoderNamespace = "SUBINSN_A";
25087 }
25088 def SA1_tfr : HInst<
25089 (outs GeneralSubRegs:$Rd16),
25090 (ins GeneralSubRegs:$Rs16),
25091 "$Rd16 = $Rs16",
25092 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25093 let Inst{12-8} = 0b10000;
25094 let hasNewValue = 1;
25095 let opNewValue = 0;
25096 let AsmVariantName = "NonParsable";
25097 let DecoderNamespace = "SUBINSN_A";
25098 }
25099 def SA1_zxtb : HInst<
25100 (outs GeneralSubRegs:$Rd16),
25101 (ins GeneralSubRegs:$Rs16),
25102 "$Rd16 = and($Rs16,#255)",
25103 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25104 let Inst{12-8} = 0b10111;
25105 let hasNewValue = 1;
25106 let opNewValue = 0;
25107 let AsmVariantName = "NonParsable";
25108 let DecoderNamespace = "SUBINSN_A";
25109 }
25110 def SA1_zxth : HInst<
25111 (outs GeneralSubRegs:$Rd16),
25112 (ins GeneralSubRegs:$Rs16),
25113 "$Rd16 = zxth($Rs16)",
25114 tc_d2609065, TypeSUBINSN>, Enc_97d666 {
25115 let Inst{12-8} = 0b10110;
25116 let hasNewValue = 1;
25117 let opNewValue = 0;
25118 let AsmVariantName = "NonParsable";
25119 let DecoderNamespace = "SUBINSN_A";
25120 }
25121 def SL1_loadri_io : HInst<
25122 (outs GeneralSubRegs:$Rd16),
25123 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
25124 "$Rd16 = memw($Rs16+#$Ii)",
25125 tc_bf6fa601, TypeSUBINSN>, Enc_53dca9 {
25126 let Inst{12-12} = 0b0;
25127 let hasNewValue = 1;
25128 let opNewValue = 0;
25129 let addrMode = BaseImmOffset;
25130 let accessSize = WordAccess;
25131 let AsmVariantName = "NonParsable";
25132 let mayLoad = 1;
25133 let DecoderNamespace = "SUBINSN_L1";
25134 }
25135 def SL1_loadrub_io : HInst<
25136 (outs GeneralSubRegs:$Rd16),
25137 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
25138 "$Rd16 = memub($Rs16+#$Ii)",
25139 tc_bf6fa601, TypeSUBINSN>, Enc_c175d0 {
25140 let Inst{12-12} = 0b1;
25141 let hasNewValue = 1;
25142 let opNewValue = 0;
25143 let addrMode = BaseImmOffset;
25144 let accessSize = ByteAccess;
25145 let AsmVariantName = "NonParsable";
25146 let mayLoad = 1;
25147 let DecoderNamespace = "SUBINSN_L1";
25148 }
25149 def SL2_deallocframe : HInst<
25150 (outs),
25151 (ins),
25152 "deallocframe",
25153 tc_86442910, TypeSUBINSN>, Enc_e3b0c4 {
25154 let Inst{12-0} = 0b1111100000000;
25155 let accessSize = DoubleWordAccess;
25156 let AsmVariantName = "NonParsable";
25157 let mayLoad = 1;
25158 let Uses = [R30];
25159 let Defs = [R30, R29, R31];
25160 let DecoderNamespace = "SUBINSN_L2";
25161 }
25162 def SL2_jumpr31 : HInst<
25163 (outs),
25164 (ins),
25165 "jumpr r31",
25166 tc_35fb9d13, TypeSUBINSN>, Enc_e3b0c4 {
25167 let Inst{12-0} = 0b1111111000000;
25168 let isTerminator = 1;
25169 let isIndirectBranch = 1;
25170 let cofMax1 = 1;
25171 let AsmVariantName = "NonParsable";
25172 let isReturn = 1;
25173 let Uses = [R31];
25174 let Defs = [PC];
25175 let DecoderNamespace = "SUBINSN_L2";
25176 }
25177 def SL2_jumpr31_f : HInst<
25178 (outs),
25179 (ins),
25180 "if (!p0) jumpr r31",
25181 tc_35fb9d13, TypeSUBINSN>, Enc_e3b0c4 {
25182 let Inst{12-0} = 0b1111111000101;
25183 let isPredicated = 1;
25184 let isPredicatedFalse = 1;
25185 let isTerminator = 1;
25186 let isIndirectBranch = 1;
25187 let cofMax1 = 1;
25188 let AsmVariantName = "NonParsable";
25189 let isReturn = 1;
25190 let Uses = [P0, R31];
25191 let Defs = [PC];
25192 let isTaken = Inst{4};
25193 let DecoderNamespace = "SUBINSN_L2";
25194 }
25195 def SL2_jumpr31_fnew : HInst<
25196 (outs),
25197 (ins),
25198 "if (!p0.new) jumpr:nt r31",
25199 tc_35fb9d13, TypeSUBINSN>, Enc_e3b0c4 {
25200 let Inst{12-0} = 0b1111111000111;
25201 let isPredicated = 1;
25202 let isPredicatedFalse = 1;
25203 let isTerminator = 1;
25204 let isIndirectBranch = 1;
25205 let cofMax1 = 1;
25206 let AsmVariantName = "NonParsable";
25207 let isPredicatedNew = 1;
25208 let isReturn = 1;
25209 let Uses = [P0, R31];
25210 let Defs = [PC];
25211 let isTaken = Inst{4};
25212 let DecoderNamespace = "SUBINSN_L2";
25213 }
25214 def SL2_jumpr31_t : HInst<
25215 (outs),
25216 (ins),
25217 "if (p0) jumpr r31",
25218 tc_35fb9d13, TypeSUBINSN>, Enc_e3b0c4 {
25219 let Inst{12-0} = 0b1111111000100;
25220 let isPredicated = 1;
25221 let isTerminator = 1;
25222 let isIndirectBranch = 1;
25223 let cofMax1 = 1;
25224 let AsmVariantName = "NonParsable";
25225 let isReturn = 1;
25226 let Uses = [P0, R31];
25227 let Defs = [PC];
25228 let isTaken = Inst{4};
25229 let DecoderNamespace = "SUBINSN_L2";
25230 }
25231 def SL2_jumpr31_tnew : HInst<
25232 (outs),
25233 (ins),
25234 "if (p0.new) jumpr:nt r31",
25235 tc_35fb9d13, TypeSUBINSN>, Enc_e3b0c4 {
25236 let Inst{12-0} = 0b1111111000110;
25237 let isPredicated = 1;
25238 let isTerminator = 1;
25239 let isIndirectBranch = 1;
25240 let cofMax1 = 1;
25241 let AsmVariantName = "NonParsable";
25242 let isPredicatedNew = 1;
25243 let isReturn = 1;
25244 let Uses = [P0, R31];
25245 let Defs = [PC];
25246 let isTaken = Inst{4};
25247 let DecoderNamespace = "SUBINSN_L2";
25248 }
25249 def SL2_loadrb_io : HInst<
25250 (outs GeneralSubRegs:$Rd16),
25251 (ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
25252 "$Rd16 = memb($Rs16+#$Ii)",
25253 tc_bf6fa601, TypeSUBINSN>, Enc_2fbf3c {
25254 let Inst{12-11} = 0b10;
25255 let hasNewValue = 1;
25256 let opNewValue = 0;
25257 let addrMode = BaseImmOffset;
25258 let accessSize = ByteAccess;
25259 let AsmVariantName = "NonParsable";
25260 let mayLoad = 1;
25261 let DecoderNamespace = "SUBINSN_L2";
25262 }
25263 def SL2_loadrd_sp : HInst<
25264 (outs GeneralDoubleLow8Regs:$Rdd8),
25265 (ins u5_3Imm:$Ii),
25266 "$Rdd8 = memd(r29+#$Ii)",
25267 tc_70cabf66, TypeSUBINSN>, Enc_86a14b {
25268 let Inst{12-8} = 0b11110;
25269 let hasNewValue = 1;
25270 let opNewValue = 0;
25271 let addrMode = BaseImmOffset;
25272 let accessSize = DoubleWordAccess;
25273 let AsmVariantName = "NonParsable";
25274 let mayLoad = 1;
25275 let Uses = [R29];
25276 let DecoderNamespace = "SUBINSN_L2";
25277 }
25278 def SL2_loadrh_io : HInst<
25279 (outs GeneralSubRegs:$Rd16),
25280 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25281 "$Rd16 = memh($Rs16+#$Ii)",
25282 tc_bf6fa601, TypeSUBINSN>, Enc_2bae10 {
25283 let Inst{12-11} = 0b00;
25284 let hasNewValue = 1;
25285 let opNewValue = 0;
25286 let addrMode = BaseImmOffset;
25287 let accessSize = HalfWordAccess;
25288 let AsmVariantName = "NonParsable";
25289 let mayLoad = 1;
25290 let DecoderNamespace = "SUBINSN_L2";
25291 }
25292 def SL2_loadri_sp : HInst<
25293 (outs GeneralSubRegs:$Rd16),
25294 (ins u5_2Imm:$Ii),
25295 "$Rd16 = memw(r29+#$Ii)",
25296 tc_70cabf66, TypeSUBINSN>, Enc_51635c {
25297 let Inst{12-9} = 0b1110;
25298 let hasNewValue = 1;
25299 let opNewValue = 0;
25300 let addrMode = BaseImmOffset;
25301 let accessSize = WordAccess;
25302 let AsmVariantName = "NonParsable";
25303 let mayLoad = 1;
25304 let Uses = [R29];
25305 let DecoderNamespace = "SUBINSN_L2";
25306 }
25307 def SL2_loadruh_io : HInst<
25308 (outs GeneralSubRegs:$Rd16),
25309 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25310 "$Rd16 = memuh($Rs16+#$Ii)",
25311 tc_bf6fa601, TypeSUBINSN>, Enc_2bae10 {
25312 let Inst{12-11} = 0b01;
25313 let hasNewValue = 1;
25314 let opNewValue = 0;
25315 let addrMode = BaseImmOffset;
25316 let accessSize = HalfWordAccess;
25317 let AsmVariantName = "NonParsable";
25318 let mayLoad = 1;
25319 let DecoderNamespace = "SUBINSN_L2";
25320 }
25321 def SL2_return : HInst<
25322 (outs),
25323 (ins),
25324 "dealloc_return",
25325 tc_95c54f8b, TypeSUBINSN>, Enc_e3b0c4 {
25326 let Inst{12-0} = 0b1111101000000;
25327 let isTerminator = 1;
25328 let isIndirectBranch = 1;
25329 let accessSize = DoubleWordAccess;
25330 let cofMax1 = 1;
25331 let AsmVariantName = "NonParsable";
25332 let mayLoad = 1;
25333 let isReturn = 1;
25334 let Uses = [R30];
25335 let Defs = [PC, R30, R29, R31];
25336 let DecoderNamespace = "SUBINSN_L2";
25337 }
25338 def SL2_return_f : HInst<
25339 (outs),
25340 (ins),
25341 "if (!p0) dealloc_return",
25342 tc_95c54f8b, TypeSUBINSN>, Enc_e3b0c4 {
25343 let Inst{12-0} = 0b1111101000101;
25344 let isPredicated = 1;
25345 let isPredicatedFalse = 1;
25346 let isTerminator = 1;
25347 let isIndirectBranch = 1;
25348 let accessSize = DoubleWordAccess;
25349 let cofMax1 = 1;
25350 let AsmVariantName = "NonParsable";
25351 let mayLoad = 1;
25352 let isReturn = 1;
25353 let Uses = [P0, R30];
25354 let Defs = [PC, R30, R29, R31];
25355 let isTaken = Inst{4};
25356 let DecoderNamespace = "SUBINSN_L2";
25357 }
25358 def SL2_return_fnew : HInst<
25359 (outs),
25360 (ins),
25361 "if (!p0.new) dealloc_return:nt",
25362 tc_95c54f8b, TypeSUBINSN>, Enc_e3b0c4 {
25363 let Inst{12-0} = 0b1111101000111;
25364 let isPredicated = 1;
25365 let isPredicatedFalse = 1;
25366 let isTerminator = 1;
25367 let isIndirectBranch = 1;
25368 let accessSize = DoubleWordAccess;
25369 let cofMax1 = 1;
25370 let AsmVariantName = "NonParsable";
25371 let isPredicatedNew = 1;
25372 let mayLoad = 1;
25373 let isReturn = 1;
25374 let Uses = [P0, R30];
25375 let Defs = [PC, R30, R29, R31];
25376 let isTaken = Inst{4};
25377 let DecoderNamespace = "SUBINSN_L2";
25378 }
25379 def SL2_return_t : HInst<
25380 (outs),
25381 (ins),
25382 "if (p0) dealloc_return",
25383 tc_95c54f8b, TypeSUBINSN>, Enc_e3b0c4 {
25384 let Inst{12-0} = 0b1111101000100;
25385 let isPredicated = 1;
25386 let isTerminator = 1;
25387 let isIndirectBranch = 1;
25388 let accessSize = DoubleWordAccess;
25389 let cofMax1 = 1;
25390 let AsmVariantName = "NonParsable";
25391 let mayLoad = 1;
25392 let isReturn = 1;
25393 let Uses = [P0, R30];
25394 let Defs = [PC, R30, R29, R31];
25395 let isTaken = Inst{4};
25396 let DecoderNamespace = "SUBINSN_L2";
25397 }
25398 def SL2_return_tnew : HInst<
25399 (outs),
25400 (ins),
25401 "if (p0.new) dealloc_return:nt",
25402 tc_95c54f8b, TypeSUBINSN>, Enc_e3b0c4 {
25403 let Inst{12-0} = 0b1111101000110;
25404 let isPredicated = 1;
25405 let isTerminator = 1;
25406 let isIndirectBranch = 1;
25407 let accessSize = DoubleWordAccess;
25408 let cofMax1 = 1;
25409 let AsmVariantName = "NonParsable";
25410 let isPredicatedNew = 1;
25411 let mayLoad = 1;
25412 let isReturn = 1;
25413 let Uses = [P0, R30];
25414 let Defs = [PC, R30, R29, R31];
25415 let isTaken = Inst{4};
25416 let DecoderNamespace = "SUBINSN_L2";
25417 }
25418 def SS1_storeb_io : HInst<
25419 (outs),
25420 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
25421 "memb($Rs16+#$Ii) = $Rt16",
25422 tc_53ee6546, TypeSUBINSN>, Enc_b38ffc {
25423 let Inst{12-12} = 0b1;
25424 let addrMode = BaseImmOffset;
25425 let accessSize = ByteAccess;
25426 let AsmVariantName = "NonParsable";
25427 let mayStore = 1;
25428 let DecoderNamespace = "SUBINSN_S1";
25429 }
25430 def SS1_storew_io : HInst<
25431 (outs),
25432 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
25433 "memw($Rs16+#$Ii) = $Rt16",
25434 tc_53ee6546, TypeSUBINSN>, Enc_f55a0c {
25435 let Inst{12-12} = 0b0;
25436 let addrMode = BaseImmOffset;
25437 let accessSize = WordAccess;
25438 let AsmVariantName = "NonParsable";
25439 let mayStore = 1;
25440 let DecoderNamespace = "SUBINSN_S1";
25441 }
25442 def SS2_allocframe : HInst<
25443 (outs),
25444 (ins u5_3Imm:$Ii),
25445 "allocframe(#$Ii)",
25446 tc_f027ebe9, TypeSUBINSN>, Enc_6f70ca {
25447 let Inst{3-0} = 0b0000;
25448 let Inst{12-9} = 0b1110;
25449 let addrMode = BaseImmOffset;
25450 let accessSize = DoubleWordAccess;
25451 let AsmVariantName = "NonParsable";
25452 let mayStore = 1;
25453 let Uses = [R30, R29, R31];
25454 let Defs = [R30, R29];
25455 let DecoderNamespace = "SUBINSN_S2";
25456 }
25457 def SS2_storebi0 : HInst<
25458 (outs),
25459 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
25460 "memb($Rs16+#$Ii) = #0",
25461 tc_6c52d277, TypeSUBINSN>, Enc_84d359 {
25462 let Inst{12-8} = 0b10010;
25463 let addrMode = BaseImmOffset;
25464 let accessSize = ByteAccess;
25465 let AsmVariantName = "NonParsable";
25466 let mayStore = 1;
25467 let DecoderNamespace = "SUBINSN_S2";
25468 }
25469 def SS2_storebi1 : HInst<
25470 (outs),
25471 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
25472 "memb($Rs16+#$Ii) = #1",
25473 tc_6c52d277, TypeSUBINSN>, Enc_84d359 {
25474 let Inst{12-8} = 0b10011;
25475 let addrMode = BaseImmOffset;
25476 let accessSize = ByteAccess;
25477 let AsmVariantName = "NonParsable";
25478 let mayStore = 1;
25479 let DecoderNamespace = "SUBINSN_S2";
25480 }
25481 def SS2_stored_sp : HInst<
25482 (outs),
25483 (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
25484 "memd(r29+#$Ii) = $Rtt8",
25485 tc_c14739d5, TypeSUBINSN>, Enc_b8309d {
25486 let Inst{12-9} = 0b0101;
25487 let addrMode = BaseImmOffset;
25488 let accessSize = DoubleWordAccess;
25489 let AsmVariantName = "NonParsable";
25490 let mayStore = 1;
25491 let Uses = [R29];
25492 let DecoderNamespace = "SUBINSN_S2";
25493 }
25494 def SS2_storeh_io : HInst<
25495 (outs),
25496 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
25497 "memh($Rs16+#$Ii) = $Rt16",
25498 tc_53ee6546, TypeSUBINSN>, Enc_625deb {
25499 let Inst{12-11} = 0b00;
25500 let addrMode = BaseImmOffset;
25501 let accessSize = HalfWordAccess;
25502 let AsmVariantName = "NonParsable";
25503 let mayStore = 1;
25504 let DecoderNamespace = "SUBINSN_S2";
25505 }
25506 def SS2_storew_sp : HInst<
25507 (outs),
25508 (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
25509 "memw(r29+#$Ii) = $Rt16",
25510 tc_c14739d5, TypeSUBINSN>, Enc_87c142 {
25511 let Inst{12-9} = 0b0100;
25512 let addrMode = BaseImmOffset;
25513 let accessSize = WordAccess;
25514 let AsmVariantName = "NonParsable";
25515 let mayStore = 1;
25516 let Uses = [R29];
25517 let DecoderNamespace = "SUBINSN_S2";
25518 }
25519 def SS2_storewi0 : HInst<
25520 (outs),
25521 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
25522 "memw($Rs16+#$Ii) = #0",
25523 tc_6c52d277, TypeSUBINSN>, Enc_a6ce9c {
25524 let Inst{12-8} = 0b10000;
25525 let addrMode = BaseImmOffset;
25526 let accessSize = WordAccess;
25527 let AsmVariantName = "NonParsable";
25528 let mayStore = 1;
25529 let DecoderNamespace = "SUBINSN_S2";
25530 }
25531 def SS2_storewi1 : HInst<
25532 (outs),
25533 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
25534 "memw($Rs16+#$Ii) = #1",
25535 tc_6c52d277, TypeSUBINSN>, Enc_a6ce9c {
25536 let Inst{12-8} = 0b10001;
25537 let addrMode = BaseImmOffset;
25538 let accessSize = WordAccess;
25539 let AsmVariantName = "NonParsable";
25540 let mayStore = 1;
25541 let DecoderNamespace = "SUBINSN_S2";
25542 }
25543 def V6_MAP_equb : HInst<
25544 (outs VecPredRegs:$Qd4),
25545 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
25546 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
25547 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25548 let hasNewValue = 1;
25549 let opNewValue = 0;
25550 let isPseudo = 1;
25551 let isCodeGenOnly = 1;
25552 let DecoderNamespace = "EXT_mmvec";
25553 }
25554 def V6_MAP_equb_128B : HInst<
25555 (outs VecPredRegs128B:$Qd4),
25556 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25557 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
25558 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25559 let hasNewValue = 1;
25560 let opNewValue = 0;
25561 let isPseudo = 1;
25562 let isCodeGenOnly = 1;
25563 let DecoderNamespace = "EXT_mmvec";
25564 let isCodeGenOnly = 1;
25565 }
25566 def V6_MAP_equb_and : HInst<
25567 (outs VecPredRegs:$Qx4),
25568 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25569 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
25570 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25571 let hasNewValue = 1;
25572 let opNewValue = 0;
25573 let isPseudo = 1;
25574 let isCodeGenOnly = 1;
25575 let DecoderNamespace = "EXT_mmvec";
25576 let Constraints = "$Qx4 = $Qx4in";
25577 }
25578 def V6_MAP_equb_and_128B : HInst<
25579 (outs VecPredRegs128B:$Qx4),
25580 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25581 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
25582 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25583 let hasNewValue = 1;
25584 let opNewValue = 0;
25585 let isPseudo = 1;
25586 let isCodeGenOnly = 1;
25587 let DecoderNamespace = "EXT_mmvec";
25588 let isCodeGenOnly = 1;
25589 let Constraints = "$Qx4 = $Qx4in";
25590 }
25591 def V6_MAP_equb_ior : HInst<
25592 (outs VecPredRegs:$Qx4),
25593 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25594 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
25595 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25596 let hasNewValue = 1;
25597 let opNewValue = 0;
25598 let isAccumulator = 1;
25599 let isPseudo = 1;
25600 let isCodeGenOnly = 1;
25601 let DecoderNamespace = "EXT_mmvec";
25602 let Constraints = "$Qx4 = $Qx4in";
25603 }
25604 def V6_MAP_equb_ior_128B : HInst<
25605 (outs VecPredRegs128B:$Qx4),
25606 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25607 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
25608 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25609 let hasNewValue = 1;
25610 let opNewValue = 0;
25611 let isAccumulator = 1;
25612 let isPseudo = 1;
25613 let isCodeGenOnly = 1;
25614 let DecoderNamespace = "EXT_mmvec";
25615 let isCodeGenOnly = 1;
25616 let Constraints = "$Qx4 = $Qx4in";
25617 }
25618 def V6_MAP_equb_xor : HInst<
25619 (outs VecPredRegs:$Qx4),
25620 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25621 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
25622 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25623 let hasNewValue = 1;
25624 let opNewValue = 0;
25625 let isPseudo = 1;
25626 let isCodeGenOnly = 1;
25627 let DecoderNamespace = "EXT_mmvec";
25628 let Constraints = "$Qx4 = $Qx4in";
25629 }
25630 def V6_MAP_equb_xor_128B : HInst<
25631 (outs VecPredRegs128B:$Qx4),
25632 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25633 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
25634 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25635 let hasNewValue = 1;
25636 let opNewValue = 0;
25637 let isPseudo = 1;
25638 let isCodeGenOnly = 1;
25639 let DecoderNamespace = "EXT_mmvec";
25640 let isCodeGenOnly = 1;
25641 let Constraints = "$Qx4 = $Qx4in";
25642 }
25643 def V6_MAP_equh : HInst<
25644 (outs VecPredRegs:$Qd4),
25645 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
25646 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
25647 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25648 let hasNewValue = 1;
25649 let opNewValue = 0;
25650 let isPseudo = 1;
25651 let isCodeGenOnly = 1;
25652 let DecoderNamespace = "EXT_mmvec";
25653 }
25654 def V6_MAP_equh_128B : HInst<
25655 (outs VecPredRegs128B:$Qd4),
25656 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25657 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
25658 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25659 let hasNewValue = 1;
25660 let opNewValue = 0;
25661 let isPseudo = 1;
25662 let isCodeGenOnly = 1;
25663 let DecoderNamespace = "EXT_mmvec";
25664 let isCodeGenOnly = 1;
25665 }
25666 def V6_MAP_equh_and : HInst<
25667 (outs VecPredRegs:$Qx4),
25668 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25669 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
25670 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25671 let hasNewValue = 1;
25672 let opNewValue = 0;
25673 let isPseudo = 1;
25674 let isCodeGenOnly = 1;
25675 let DecoderNamespace = "EXT_mmvec";
25676 let Constraints = "$Qx4 = $Qx4in";
25677 }
25678 def V6_MAP_equh_and_128B : HInst<
25679 (outs VecPredRegs128B:$Qx4),
25680 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25681 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
25682 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25683 let hasNewValue = 1;
25684 let opNewValue = 0;
25685 let isPseudo = 1;
25686 let isCodeGenOnly = 1;
25687 let DecoderNamespace = "EXT_mmvec";
25688 let isCodeGenOnly = 1;
25689 let Constraints = "$Qx4 = $Qx4in";
25690 }
25691 def V6_MAP_equh_ior : HInst<
25692 (outs VecPredRegs:$Qx4),
25693 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25694 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
25695 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25696 let hasNewValue = 1;
25697 let opNewValue = 0;
25698 let isAccumulator = 1;
25699 let isPseudo = 1;
25700 let isCodeGenOnly = 1;
25701 let DecoderNamespace = "EXT_mmvec";
25702 let Constraints = "$Qx4 = $Qx4in";
25703 }
25704 def V6_MAP_equh_ior_128B : HInst<
25705 (outs VecPredRegs128B:$Qx4),
25706 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25707 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
25708 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25709 let hasNewValue = 1;
25710 let opNewValue = 0;
25711 let isAccumulator = 1;
25712 let isPseudo = 1;
25713 let isCodeGenOnly = 1;
25714 let DecoderNamespace = "EXT_mmvec";
25715 let isCodeGenOnly = 1;
25716 let Constraints = "$Qx4 = $Qx4in";
25717 }
25718 def V6_MAP_equh_xor : HInst<
25719 (outs VecPredRegs:$Qx4),
25720 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25721 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
25722 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25723 let hasNewValue = 1;
25724 let opNewValue = 0;
25725 let isPseudo = 1;
25726 let isCodeGenOnly = 1;
25727 let DecoderNamespace = "EXT_mmvec";
25728 let Constraints = "$Qx4 = $Qx4in";
25729 }
25730 def V6_MAP_equh_xor_128B : HInst<
25731 (outs VecPredRegs128B:$Qx4),
25732 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25733 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
25734 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25735 let hasNewValue = 1;
25736 let opNewValue = 0;
25737 let isPseudo = 1;
25738 let isCodeGenOnly = 1;
25739 let DecoderNamespace = "EXT_mmvec";
25740 let isCodeGenOnly = 1;
25741 let Constraints = "$Qx4 = $Qx4in";
25742 }
25743 def V6_MAP_equw : HInst<
25744 (outs VecPredRegs:$Qd4),
25745 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
25746 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
25747 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25748 let hasNewValue = 1;
25749 let opNewValue = 0;
25750 let isPseudo = 1;
25751 let isCodeGenOnly = 1;
25752 let DecoderNamespace = "EXT_mmvec";
25753 }
25754 def V6_MAP_equw_128B : HInst<
25755 (outs VecPredRegs128B:$Qd4),
25756 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25757 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
25758 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25759 let hasNewValue = 1;
25760 let opNewValue = 0;
25761 let isPseudo = 1;
25762 let isCodeGenOnly = 1;
25763 let DecoderNamespace = "EXT_mmvec";
25764 let isCodeGenOnly = 1;
25765 }
25766 def V6_MAP_equw_and : HInst<
25767 (outs VecPredRegs:$Qx4),
25768 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25769 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
25770 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25771 let hasNewValue = 1;
25772 let opNewValue = 0;
25773 let isPseudo = 1;
25774 let isCodeGenOnly = 1;
25775 let DecoderNamespace = "EXT_mmvec";
25776 let Constraints = "$Qx4 = $Qx4in";
25777 }
25778 def V6_MAP_equw_and_128B : HInst<
25779 (outs VecPredRegs128B:$Qx4),
25780 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25781 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
25782 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25783 let hasNewValue = 1;
25784 let opNewValue = 0;
25785 let isPseudo = 1;
25786 let isCodeGenOnly = 1;
25787 let DecoderNamespace = "EXT_mmvec";
25788 let isCodeGenOnly = 1;
25789 let Constraints = "$Qx4 = $Qx4in";
25790 }
25791 def V6_MAP_equw_ior : HInst<
25792 (outs VecPredRegs:$Qx4),
25793 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25794 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
25795 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25796 let hasNewValue = 1;
25797 let opNewValue = 0;
25798 let isAccumulator = 1;
25799 let isPseudo = 1;
25800 let isCodeGenOnly = 1;
25801 let DecoderNamespace = "EXT_mmvec";
25802 let Constraints = "$Qx4 = $Qx4in";
25803 }
25804 def V6_MAP_equw_ior_128B : HInst<
25805 (outs VecPredRegs128B:$Qx4),
25806 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25807 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
25808 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25809 let hasNewValue = 1;
25810 let opNewValue = 0;
25811 let isAccumulator = 1;
25812 let isPseudo = 1;
25813 let isCodeGenOnly = 1;
25814 let DecoderNamespace = "EXT_mmvec";
25815 let isCodeGenOnly = 1;
25816 let Constraints = "$Qx4 = $Qx4in";
25817 }
25818 def V6_MAP_equw_xor : HInst<
25819 (outs VecPredRegs:$Qx4),
25820 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
25821 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
25822 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25823 let hasNewValue = 1;
25824 let opNewValue = 0;
25825 let isPseudo = 1;
25826 let isCodeGenOnly = 1;
25827 let DecoderNamespace = "EXT_mmvec";
25828 let Constraints = "$Qx4 = $Qx4in";
25829 }
25830 def V6_MAP_equw_xor_128B : HInst<
25831 (outs VecPredRegs128B:$Qx4),
25832 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
25833 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
25834 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25835 let hasNewValue = 1;
25836 let opNewValue = 0;
25837 let isPseudo = 1;
25838 let isCodeGenOnly = 1;
25839 let DecoderNamespace = "EXT_mmvec";
25840 let isCodeGenOnly = 1;
25841 let Constraints = "$Qx4 = $Qx4in";
25842 }
25843 def V6_extractw : HInst<
25844 (outs IntRegs:$Rd32),
25845 (ins VectorRegs:$Vu32, IntRegs:$Rs32),
25846 "$Rd32 = vextract($Vu32,$Rs32)",
25847 tc_9777e6bf, TypeLD>, Enc_50e578, Requires<[HasV60T,UseHVX]> {
25848 let Inst{7-5} = 0b001;
25849 let Inst{13-13} = 0b0;
25850 let Inst{31-21} = 0b10010010000;
25851 let hasNewValue = 1;
25852 let opNewValue = 0;
25853 let isSolo = 1;
25854 let mayLoad = 1;
25855 let DecoderNamespace = "EXT_mmvec";
25856 }
25857 def V6_extractw_128B : HInst<
25858 (outs IntRegs:$Rd32),
25859 (ins VectorRegs128B:$Vu32, IntRegs:$Rs32),
25860 "$Rd32 = vextract($Vu32,$Rs32)",
25861 tc_9777e6bf, TypeLD>, Enc_50e578, Requires<[HasV60T,UseHVX]> {
25862 let Inst{7-5} = 0b001;
25863 let Inst{13-13} = 0b0;
25864 let Inst{31-21} = 0b10010010000;
25865 let hasNewValue = 1;
25866 let opNewValue = 0;
25867 let isSolo = 1;
25868 let mayLoad = 1;
25869 let DecoderNamespace = "EXT_mmvec";
25870 let isCodeGenOnly = 1;
25871 }
25872 def V6_extractw_alt : HInst<
25873 (outs IntRegs:$Rd32),
25874 (ins VectorRegs:$Vu32, IntRegs:$Rs32),
25875 "$Rd32.w = vextract($Vu32,$Rs32)",
25876 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25877 let hasNewValue = 1;
25878 let opNewValue = 0;
25879 let isPseudo = 1;
25880 let isCodeGenOnly = 1;
25881 let DecoderNamespace = "EXT_mmvec";
25882 }
25883 def V6_extractw_alt_128B : HInst<
25884 (outs IntRegs:$Rd32),
25885 (ins VectorRegs128B:$Vu32, IntRegs:$Rs32),
25886 "$Rd32.w = vextract($Vu32,$Rs32)",
25887 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
25888 let hasNewValue = 1;
25889 let opNewValue = 0;
25890 let isPseudo = 1;
25891 let isCodeGenOnly = 1;
25892 let DecoderNamespace = "EXT_mmvec";
25893 let isCodeGenOnly = 1;
25894 }
25895 def V6_hi : HInst<
25896 (outs VectorRegs:$Vd32),
25897 (ins VecDblRegs:$Vss32),
25898 "$Vd32 = hi($Vss32)",
25899 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
25900 let hasNewValue = 1;
25901 let opNewValue = 0;
25902 let isPseudo = 1;
25903 let DecoderNamespace = "EXT_mmvec";
25904 }
25905 def V6_hi_128B : HInst<
25906 (outs VectorRegs128B:$Vd32),
25907 (ins VecDblRegs128B:$Vss32),
25908 "$Vd32 = hi($Vss32)",
25909 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
25910 let hasNewValue = 1;
25911 let opNewValue = 0;
25912 let isPseudo = 1;
25913 let DecoderNamespace = "EXT_mmvec";
25914 let isCodeGenOnly = 1;
25915 }
25916 def V6_ld0 : HInst<
25917 (outs VectorRegs:$Vd32),
25918 (ins IntRegs:$Rt32),
25919 "$Vd32 = vmem($Rt32)",
25920 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
25921 let hasNewValue = 1;
25922 let opNewValue = 0;
25923 let isPseudo = 1;
25924 let isCodeGenOnly = 1;
25925 let DecoderNamespace = "EXT_mmvec";
25926 }
25927 def V6_ld0_128B : HInst<
25928 (outs VectorRegs128B:$Vd32),
25929 (ins IntRegs:$Rt32),
25930 "$Vd32 = vmem($Rt32)",
25931 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
25932 let hasNewValue = 1;
25933 let opNewValue = 0;
25934 let isPseudo = 1;
25935 let isCodeGenOnly = 1;
25936 let DecoderNamespace = "EXT_mmvec";
25937 let isCodeGenOnly = 1;
25938 }
25939 def V6_ldcnp0 : HInst<
25940 (outs VectorRegs:$Vd32),
25941 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25942 "if (!$Pv4) $Vd32.cur = vmem($Rt32)",
25943 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
25944 let hasNewValue = 1;
25945 let opNewValue = 0;
25946 let isPseudo = 1;
25947 let isCodeGenOnly = 1;
25948 let DecoderNamespace = "EXT_mmvec";
25949 }
25950 def V6_ldcnp0_128B : HInst<
25951 (outs VectorRegs128B:$Vd32),
25952 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25953 "if (!$Pv4) $Vd32.cur = vmem($Rt32)",
25954 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
25955 let hasNewValue = 1;
25956 let opNewValue = 0;
25957 let isPseudo = 1;
25958 let isCodeGenOnly = 1;
25959 let DecoderNamespace = "EXT_mmvec";
25960 let isCodeGenOnly = 1;
25961 }
25962 def V6_ldcnpnt0 : HInst<
25963 (outs VectorRegs:$Vd32),
25964 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25965 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
25966 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
25967 let hasNewValue = 1;
25968 let opNewValue = 0;
25969 let isPseudo = 1;
25970 let isCodeGenOnly = 1;
25971 let DecoderNamespace = "EXT_mmvec";
25972 }
25973 def V6_ldcnpnt0_128B : HInst<
25974 (outs VectorRegs128B:$Vd32),
25975 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25976 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
25977 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
25978 let hasNewValue = 1;
25979 let opNewValue = 0;
25980 let isPseudo = 1;
25981 let isCodeGenOnly = 1;
25982 let DecoderNamespace = "EXT_mmvec";
25983 let isCodeGenOnly = 1;
25984 }
25985 def V6_ldcp0 : HInst<
25986 (outs VectorRegs:$Vd32),
25987 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25988 "if ($Pv4) $Vd32.cur = vmem($Rt32)",
25989 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
25990 let hasNewValue = 1;
25991 let opNewValue = 0;
25992 let isPseudo = 1;
25993 let isCodeGenOnly = 1;
25994 let DecoderNamespace = "EXT_mmvec";
25995 }
25996 def V6_ldcp0_128B : HInst<
25997 (outs VectorRegs128B:$Vd32),
25998 (ins PredRegs:$Pv4, IntRegs:$Rt32),
25999 "if ($Pv4) $Vd32.cur = vmem($Rt32)",
26000 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26001 let hasNewValue = 1;
26002 let opNewValue = 0;
26003 let isPseudo = 1;
26004 let isCodeGenOnly = 1;
26005 let DecoderNamespace = "EXT_mmvec";
26006 let isCodeGenOnly = 1;
26007 }
26008 def V6_ldcpnt0 : HInst<
26009 (outs VectorRegs:$Vd32),
26010 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26011 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26012 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26013 let hasNewValue = 1;
26014 let opNewValue = 0;
26015 let isPseudo = 1;
26016 let isCodeGenOnly = 1;
26017 let DecoderNamespace = "EXT_mmvec";
26018 }
26019 def V6_ldcpnt0_128B : HInst<
26020 (outs VectorRegs128B:$Vd32),
26021 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26022 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26023 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26024 let hasNewValue = 1;
26025 let opNewValue = 0;
26026 let isPseudo = 1;
26027 let isCodeGenOnly = 1;
26028 let DecoderNamespace = "EXT_mmvec";
26029 let isCodeGenOnly = 1;
26030 }
26031 def V6_ldnp0 : HInst<
26032 (outs VectorRegs:$Vd32),
26033 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26034 "if (!$Pv4) $Vd32 = vmem($Rt32)",
26035 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26036 let hasNewValue = 1;
26037 let opNewValue = 0;
26038 let isPseudo = 1;
26039 let isCodeGenOnly = 1;
26040 let DecoderNamespace = "EXT_mmvec";
26041 }
26042 def V6_ldnp0_128B : HInst<
26043 (outs VectorRegs128B:$Vd32),
26044 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26045 "if (!$Pv4) $Vd32 = vmem($Rt32)",
26046 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26047 let hasNewValue = 1;
26048 let opNewValue = 0;
26049 let isPseudo = 1;
26050 let isCodeGenOnly = 1;
26051 let DecoderNamespace = "EXT_mmvec";
26052 let isCodeGenOnly = 1;
26053 }
26054 def V6_ldnpnt0 : HInst<
26055 (outs VectorRegs:$Vd32),
26056 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26057 "if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26058 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26059 let hasNewValue = 1;
26060 let opNewValue = 0;
26061 let isPseudo = 1;
26062 let isCodeGenOnly = 1;
26063 let DecoderNamespace = "EXT_mmvec";
26064 }
26065 def V6_ldnpnt0_128B : HInst<
26066 (outs VectorRegs128B:$Vd32),
26067 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26068 "if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26069 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26070 let hasNewValue = 1;
26071 let opNewValue = 0;
26072 let isPseudo = 1;
26073 let isCodeGenOnly = 1;
26074 let DecoderNamespace = "EXT_mmvec";
26075 let isCodeGenOnly = 1;
26076 }
26077 def V6_ldnt0 : HInst<
26078 (outs VectorRegs:$Vd32),
26079 (ins IntRegs:$Rt32),
26080 "$Vd32 = vmem($Rt32):nt",
26081 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
26082 let hasNewValue = 1;
26083 let opNewValue = 0;
26084 let isPseudo = 1;
26085 let isCodeGenOnly = 1;
26086 let DecoderNamespace = "EXT_mmvec";
26087 }
26088 def V6_ldnt0_128B : HInst<
26089 (outs VectorRegs128B:$Vd32),
26090 (ins IntRegs:$Rt32),
26091 "$Vd32 = vmem($Rt32):nt",
26092 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
26093 let hasNewValue = 1;
26094 let opNewValue = 0;
26095 let isPseudo = 1;
26096 let isCodeGenOnly = 1;
26097 let DecoderNamespace = "EXT_mmvec";
26098 let isCodeGenOnly = 1;
26099 }
26100 def V6_ldp0 : HInst<
26101 (outs VectorRegs:$Vd32),
26102 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26103 "if ($Pv4) $Vd32 = vmem($Rt32)",
26104 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26105 let hasNewValue = 1;
26106 let opNewValue = 0;
26107 let isPseudo = 1;
26108 let isCodeGenOnly = 1;
26109 let DecoderNamespace = "EXT_mmvec";
26110 }
26111 def V6_ldp0_128B : HInst<
26112 (outs VectorRegs128B:$Vd32),
26113 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26114 "if ($Pv4) $Vd32 = vmem($Rt32)",
26115 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26116 let hasNewValue = 1;
26117 let opNewValue = 0;
26118 let isPseudo = 1;
26119 let isCodeGenOnly = 1;
26120 let DecoderNamespace = "EXT_mmvec";
26121 let isCodeGenOnly = 1;
26122 }
26123 def V6_ldpnt0 : HInst<
26124 (outs VectorRegs:$Vd32),
26125 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26126 "if ($Pv4) $Vd32 = vmem($Rt32):nt",
26127 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26128 let hasNewValue = 1;
26129 let opNewValue = 0;
26130 let isPseudo = 1;
26131 let isCodeGenOnly = 1;
26132 let DecoderNamespace = "EXT_mmvec";
26133 }
26134 def V6_ldpnt0_128B : HInst<
26135 (outs VectorRegs128B:$Vd32),
26136 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26137 "if ($Pv4) $Vd32 = vmem($Rt32):nt",
26138 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26139 let hasNewValue = 1;
26140 let opNewValue = 0;
26141 let isPseudo = 1;
26142 let isCodeGenOnly = 1;
26143 let DecoderNamespace = "EXT_mmvec";
26144 let isCodeGenOnly = 1;
26145 }
26146 def V6_ldtnp0 : HInst<
26147 (outs VectorRegs:$Vd32),
26148 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26149 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26150 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26151 let hasNewValue = 1;
26152 let opNewValue = 0;
26153 let isPseudo = 1;
26154 let isCodeGenOnly = 1;
26155 let DecoderNamespace = "EXT_mmvec";
26156 }
26157 def V6_ldtnp0_128B : HInst<
26158 (outs VectorRegs128B:$Vd32),
26159 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26160 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26161 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26162 let hasNewValue = 1;
26163 let opNewValue = 0;
26164 let isPseudo = 1;
26165 let isCodeGenOnly = 1;
26166 let DecoderNamespace = "EXT_mmvec";
26167 let isCodeGenOnly = 1;
26168 }
26169 def V6_ldtnpnt0 : HInst<
26170 (outs VectorRegs:$Vd32),
26171 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26172 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26173 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26174 let hasNewValue = 1;
26175 let opNewValue = 0;
26176 let isPseudo = 1;
26177 let isCodeGenOnly = 1;
26178 let DecoderNamespace = "EXT_mmvec";
26179 }
26180 def V6_ldtnpnt0_128B : HInst<
26181 (outs VectorRegs128B:$Vd32),
26182 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26183 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26184 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26185 let hasNewValue = 1;
26186 let opNewValue = 0;
26187 let isPseudo = 1;
26188 let isCodeGenOnly = 1;
26189 let DecoderNamespace = "EXT_mmvec";
26190 let isCodeGenOnly = 1;
26191 }
26192 def V6_ldtp0 : HInst<
26193 (outs VectorRegs:$Vd32),
26194 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26195 "if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26196 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26197 let hasNewValue = 1;
26198 let opNewValue = 0;
26199 let isPseudo = 1;
26200 let isCodeGenOnly = 1;
26201 let DecoderNamespace = "EXT_mmvec";
26202 }
26203 def V6_ldtp0_128B : HInst<
26204 (outs VectorRegs128B:$Vd32),
26205 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26206 "if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26207 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26208 let hasNewValue = 1;
26209 let opNewValue = 0;
26210 let isPseudo = 1;
26211 let isCodeGenOnly = 1;
26212 let DecoderNamespace = "EXT_mmvec";
26213 let isCodeGenOnly = 1;
26214 }
26215 def V6_ldtpnt0 : HInst<
26216 (outs VectorRegs:$Vd32),
26217 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26218 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26219 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26220 let hasNewValue = 1;
26221 let opNewValue = 0;
26222 let isPseudo = 1;
26223 let isCodeGenOnly = 1;
26224 let DecoderNamespace = "EXT_mmvec";
26225 }
26226 def V6_ldtpnt0_128B : HInst<
26227 (outs VectorRegs128B:$Vd32),
26228 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26229 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26230 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
26231 let hasNewValue = 1;
26232 let opNewValue = 0;
26233 let isPseudo = 1;
26234 let isCodeGenOnly = 1;
26235 let DecoderNamespace = "EXT_mmvec";
26236 let isCodeGenOnly = 1;
26237 }
26238 def V6_ldu0 : HInst<
26239 (outs VectorRegs:$Vd32),
26240 (ins IntRegs:$Rt32),
26241 "$Vd32 = vmemu($Rt32)",
26242 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
26243 let hasNewValue = 1;
26244 let opNewValue = 0;
26245 let isPseudo = 1;
26246 let isCodeGenOnly = 1;
26247 let DecoderNamespace = "EXT_mmvec";
26248 }
26249 def V6_ldu0_128B : HInst<
26250 (outs VectorRegs128B:$Vd32),
26251 (ins IntRegs:$Rt32),
26252 "$Vd32 = vmemu($Rt32)",
26253 PSEUDO, TypeCVI_VM_LD>, Requires<[HasV60T,UseHVX]> {
26254 let hasNewValue = 1;
26255 let opNewValue = 0;
26256 let isPseudo = 1;
26257 let isCodeGenOnly = 1;
26258 let DecoderNamespace = "EXT_mmvec";
26259 let isCodeGenOnly = 1;
26260 }
26261 def V6_lo : HInst<
26262 (outs VectorRegs:$Vd32),
26263 (ins VecDblRegs:$Vss32),
26264 "$Vd32 = lo($Vss32)",
26265 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
26266 let hasNewValue = 1;
26267 let opNewValue = 0;
26268 let isPseudo = 1;
26269 let DecoderNamespace = "EXT_mmvec";
26270 }
26271 def V6_lo_128B : HInst<
26272 (outs VectorRegs128B:$Vd32),
26273 (ins VecDblRegs128B:$Vss32),
26274 "$Vd32 = lo($Vss32)",
26275 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
26276 let hasNewValue = 1;
26277 let opNewValue = 0;
26278 let isPseudo = 1;
26279 let DecoderNamespace = "EXT_mmvec";
26280 let isCodeGenOnly = 1;
26281 }
26282 def V6_lvsplatb : HInst<
26283 (outs VectorRegs:$Vd32),
26284 (ins IntRegs:$Rt32),
26285 "$Vd32.b = vsplat($Rt32)",
26286 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
26287 let Inst{13-5} = 0b000000010;
26288 let Inst{31-21} = 0b00011001110;
26289 let hasNewValue = 1;
26290 let opNewValue = 0;
26291 let DecoderNamespace = "EXT_mmvec";
26292 }
26293 def V6_lvsplatb_128B : HInst<
26294 (outs VectorRegs128B:$Vd32),
26295 (ins IntRegs:$Rt32),
26296 "$Vd32.b = vsplat($Rt32)",
26297 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
26298 let Inst{13-5} = 0b000000010;
26299 let Inst{31-21} = 0b00011001110;
26300 let hasNewValue = 1;
26301 let opNewValue = 0;
26302 let DecoderNamespace = "EXT_mmvec";
26303 let isCodeGenOnly = 1;
26304 }
26305 def V6_lvsplath : HInst<
26306 (outs VectorRegs:$Vd32),
26307 (ins IntRegs:$Rt32),
26308 "$Vd32.h = vsplat($Rt32)",
26309 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
26310 let Inst{13-5} = 0b000000001;
26311 let Inst{31-21} = 0b00011001110;
26312 let hasNewValue = 1;
26313 let opNewValue = 0;
26314 let DecoderNamespace = "EXT_mmvec";
26315 }
26316 def V6_lvsplath_128B : HInst<
26317 (outs VectorRegs128B:$Vd32),
26318 (ins IntRegs:$Rt32),
26319 "$Vd32.h = vsplat($Rt32)",
26320 tc_6b78cf13, TypeCVI_VX>, Enc_a5ed8a, Requires<[HasV62T,UseHVX]> {
26321 let Inst{13-5} = 0b000000001;
26322 let Inst{31-21} = 0b00011001110;
26323 let hasNewValue = 1;
26324 let opNewValue = 0;
26325 let DecoderNamespace = "EXT_mmvec";
26326 let isCodeGenOnly = 1;
26327 }
26328 def V6_lvsplatw : HInst<
26329 (outs VectorRegs:$Vd32),
26330 (ins IntRegs:$Rt32),
26331 "$Vd32 = vsplat($Rt32)",
26332 tc_6b78cf13, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[HasV60T,UseHVX]> {
26333 let Inst{13-5} = 0b000000001;
26334 let Inst{31-21} = 0b00011001101;
26335 let hasNewValue = 1;
26336 let opNewValue = 0;
26337 let DecoderNamespace = "EXT_mmvec";
26338 }
26339 def V6_lvsplatw_128B : HInst<
26340 (outs VectorRegs128B:$Vd32),
26341 (ins IntRegs:$Rt32),
26342 "$Vd32 = vsplat($Rt32)",
26343 tc_6b78cf13, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[HasV60T,UseHVX]> {
26344 let Inst{13-5} = 0b000000001;
26345 let Inst{31-21} = 0b00011001101;
26346 let hasNewValue = 1;
26347 let opNewValue = 0;
26348 let DecoderNamespace = "EXT_mmvec";
26349 let isCodeGenOnly = 1;
26350 }
26351 def V6_pred_and : HInst<
26352 (outs VecPredRegs:$Qd4),
26353 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26354 "$Qd4 = and($Qs4,$Qt4)",
26355 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26356 let Inst{7-2} = 0b000000;
26357 let Inst{13-10} = 0b0000;
26358 let Inst{21-16} = 0b000011;
26359 let Inst{31-24} = 0b00011110;
26360 let hasNewValue = 1;
26361 let opNewValue = 0;
26362 let DecoderNamespace = "EXT_mmvec";
26363 }
26364 def V6_pred_and_128B : HInst<
26365 (outs VecPredRegs128B:$Qd4),
26366 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26367 "$Qd4 = and($Qs4,$Qt4)",
26368 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26369 let Inst{7-2} = 0b000000;
26370 let Inst{13-10} = 0b0000;
26371 let Inst{21-16} = 0b000011;
26372 let Inst{31-24} = 0b00011110;
26373 let hasNewValue = 1;
26374 let opNewValue = 0;
26375 let DecoderNamespace = "EXT_mmvec";
26376 let isCodeGenOnly = 1;
26377 }
26378 def V6_pred_and_n : HInst<
26379 (outs VecPredRegs:$Qd4),
26380 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26381 "$Qd4 = and($Qs4,!$Qt4)",
26382 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26383 let Inst{7-2} = 0b000101;
26384 let Inst{13-10} = 0b0000;
26385 let Inst{21-16} = 0b000011;
26386 let Inst{31-24} = 0b00011110;
26387 let hasNewValue = 1;
26388 let opNewValue = 0;
26389 let DecoderNamespace = "EXT_mmvec";
26390 }
26391 def V6_pred_and_n_128B : HInst<
26392 (outs VecPredRegs128B:$Qd4),
26393 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26394 "$Qd4 = and($Qs4,!$Qt4)",
26395 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26396 let Inst{7-2} = 0b000101;
26397 let Inst{13-10} = 0b0000;
26398 let Inst{21-16} = 0b000011;
26399 let Inst{31-24} = 0b00011110;
26400 let hasNewValue = 1;
26401 let opNewValue = 0;
26402 let DecoderNamespace = "EXT_mmvec";
26403 let isCodeGenOnly = 1;
26404 }
26405 def V6_pred_not : HInst<
26406 (outs VecPredRegs:$Qd4),
26407 (ins VecPredRegs:$Qs4),
26408 "$Qd4 = not($Qs4)",
26409 tc_71337255, TypeCVI_VA>, Enc_bfbf03, Requires<[HasV60T,UseHVX]> {
26410 let Inst{7-2} = 0b000010;
26411 let Inst{13-10} = 0b0000;
26412 let Inst{31-16} = 0b0001111000000011;
26413 let hasNewValue = 1;
26414 let opNewValue = 0;
26415 let DecoderNamespace = "EXT_mmvec";
26416 }
26417 def V6_pred_not_128B : HInst<
26418 (outs VecPredRegs128B:$Qd4),
26419 (ins VecPredRegs128B:$Qs4),
26420 "$Qd4 = not($Qs4)",
26421 tc_71337255, TypeCVI_VA>, Enc_bfbf03, Requires<[HasV60T,UseHVX]> {
26422 let Inst{7-2} = 0b000010;
26423 let Inst{13-10} = 0b0000;
26424 let Inst{31-16} = 0b0001111000000011;
26425 let hasNewValue = 1;
26426 let opNewValue = 0;
26427 let DecoderNamespace = "EXT_mmvec";
26428 let isCodeGenOnly = 1;
26429 }
26430 def V6_pred_or : HInst<
26431 (outs VecPredRegs:$Qd4),
26432 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26433 "$Qd4 = or($Qs4,$Qt4)",
26434 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26435 let Inst{7-2} = 0b000001;
26436 let Inst{13-10} = 0b0000;
26437 let Inst{21-16} = 0b000011;
26438 let Inst{31-24} = 0b00011110;
26439 let hasNewValue = 1;
26440 let opNewValue = 0;
26441 let DecoderNamespace = "EXT_mmvec";
26442 }
26443 def V6_pred_or_128B : HInst<
26444 (outs VecPredRegs128B:$Qd4),
26445 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26446 "$Qd4 = or($Qs4,$Qt4)",
26447 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26448 let Inst{7-2} = 0b000001;
26449 let Inst{13-10} = 0b0000;
26450 let Inst{21-16} = 0b000011;
26451 let Inst{31-24} = 0b00011110;
26452 let hasNewValue = 1;
26453 let opNewValue = 0;
26454 let DecoderNamespace = "EXT_mmvec";
26455 let isCodeGenOnly = 1;
26456 }
26457 def V6_pred_or_n : HInst<
26458 (outs VecPredRegs:$Qd4),
26459 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26460 "$Qd4 = or($Qs4,!$Qt4)",
26461 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26462 let Inst{7-2} = 0b000100;
26463 let Inst{13-10} = 0b0000;
26464 let Inst{21-16} = 0b000011;
26465 let Inst{31-24} = 0b00011110;
26466 let hasNewValue = 1;
26467 let opNewValue = 0;
26468 let DecoderNamespace = "EXT_mmvec";
26469 }
26470 def V6_pred_or_n_128B : HInst<
26471 (outs VecPredRegs128B:$Qd4),
26472 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26473 "$Qd4 = or($Qs4,!$Qt4)",
26474 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26475 let Inst{7-2} = 0b000100;
26476 let Inst{13-10} = 0b0000;
26477 let Inst{21-16} = 0b000011;
26478 let Inst{31-24} = 0b00011110;
26479 let hasNewValue = 1;
26480 let opNewValue = 0;
26481 let DecoderNamespace = "EXT_mmvec";
26482 let isCodeGenOnly = 1;
26483 }
26484 def V6_pred_scalar2 : HInst<
26485 (outs VecPredRegs:$Qd4),
26486 (ins IntRegs:$Rt32),
26487 "$Qd4 = vsetq($Rt32)",
26488 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV60T,UseHVX]> {
26489 let Inst{13-2} = 0b000000010001;
26490 let Inst{31-21} = 0b00011001101;
26491 let hasNewValue = 1;
26492 let opNewValue = 0;
26493 let DecoderNamespace = "EXT_mmvec";
26494 }
26495 def V6_pred_scalar2_128B : HInst<
26496 (outs VecPredRegs128B:$Qd4),
26497 (ins IntRegs:$Rt32),
26498 "$Qd4 = vsetq($Rt32)",
26499 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV60T,UseHVX]> {
26500 let Inst{13-2} = 0b000000010001;
26501 let Inst{31-21} = 0b00011001101;
26502 let hasNewValue = 1;
26503 let opNewValue = 0;
26504 let DecoderNamespace = "EXT_mmvec";
26505 let isCodeGenOnly = 1;
26506 }
26507 def V6_pred_scalar2v2 : HInst<
26508 (outs VecPredRegs:$Qd4),
26509 (ins IntRegs:$Rt32),
26510 "$Qd4 = vsetq2($Rt32)",
26511 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV62T,UseHVX]> {
26512 let Inst{13-2} = 0b000000010011;
26513 let Inst{31-21} = 0b00011001101;
26514 let hasNewValue = 1;
26515 let opNewValue = 0;
26516 let DecoderNamespace = "EXT_mmvec";
26517 }
26518 def V6_pred_scalar2v2_128B : HInst<
26519 (outs VecPredRegs128B:$Qd4),
26520 (ins IntRegs:$Rt32),
26521 "$Qd4 = vsetq2($Rt32)",
26522 tc_4105d6b5, TypeCVI_VP>, Enc_7222b7, Requires<[HasV62T,UseHVX]> {
26523 let Inst{13-2} = 0b000000010011;
26524 let Inst{31-21} = 0b00011001101;
26525 let hasNewValue = 1;
26526 let opNewValue = 0;
26527 let DecoderNamespace = "EXT_mmvec";
26528 let isCodeGenOnly = 1;
26529 }
26530 def V6_pred_xor : HInst<
26531 (outs VecPredRegs:$Qd4),
26532 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26533 "$Qd4 = xor($Qs4,$Qt4)",
26534 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26535 let Inst{7-2} = 0b000011;
26536 let Inst{13-10} = 0b0000;
26537 let Inst{21-16} = 0b000011;
26538 let Inst{31-24} = 0b00011110;
26539 let hasNewValue = 1;
26540 let opNewValue = 0;
26541 let DecoderNamespace = "EXT_mmvec";
26542 }
26543 def V6_pred_xor_128B : HInst<
26544 (outs VecPredRegs128B:$Qd4),
26545 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26546 "$Qd4 = xor($Qs4,$Qt4)",
26547 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV60T,UseHVX]> {
26548 let Inst{7-2} = 0b000011;
26549 let Inst{13-10} = 0b0000;
26550 let Inst{21-16} = 0b000011;
26551 let Inst{31-24} = 0b00011110;
26552 let hasNewValue = 1;
26553 let opNewValue = 0;
26554 let DecoderNamespace = "EXT_mmvec";
26555 let isCodeGenOnly = 1;
26556 }
26557 def V6_shuffeqh : HInst<
26558 (outs VecPredRegs:$Qd4),
26559 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26560 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
26561 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
26562 let Inst{7-2} = 0b000110;
26563 let Inst{13-10} = 0b0000;
26564 let Inst{21-16} = 0b000011;
26565 let Inst{31-24} = 0b00011110;
26566 let hasNewValue = 1;
26567 let opNewValue = 0;
26568 let DecoderNamespace = "EXT_mmvec";
26569 }
26570 def V6_shuffeqh_128B : HInst<
26571 (outs VecPredRegs128B:$Qd4),
26572 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26573 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
26574 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
26575 let Inst{7-2} = 0b000110;
26576 let Inst{13-10} = 0b0000;
26577 let Inst{21-16} = 0b000011;
26578 let Inst{31-24} = 0b00011110;
26579 let hasNewValue = 1;
26580 let opNewValue = 0;
26581 let DecoderNamespace = "EXT_mmvec";
26582 let isCodeGenOnly = 1;
26583 }
26584 def V6_shuffeqw : HInst<
26585 (outs VecPredRegs:$Qd4),
26586 (ins VecPredRegs:$Qs4, VecPredRegs:$Qt4),
26587 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
26588 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
26589 let Inst{7-2} = 0b000111;
26590 let Inst{13-10} = 0b0000;
26591 let Inst{21-16} = 0b000011;
26592 let Inst{31-24} = 0b00011110;
26593 let hasNewValue = 1;
26594 let opNewValue = 0;
26595 let DecoderNamespace = "EXT_mmvec";
26596 }
26597 def V6_shuffeqw_128B : HInst<
26598 (outs VecPredRegs128B:$Qd4),
26599 (ins VecPredRegs128B:$Qs4, VecPredRegs128B:$Qt4),
26600 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
26601 tc_97c165b9, TypeCVI_VA_DV>, Enc_134437, Requires<[HasV62T,UseHVX]> {
26602 let Inst{7-2} = 0b000111;
26603 let Inst{13-10} = 0b0000;
26604 let Inst{21-16} = 0b000011;
26605 let Inst{31-24} = 0b00011110;
26606 let hasNewValue = 1;
26607 let opNewValue = 0;
26608 let DecoderNamespace = "EXT_mmvec";
26609 let isCodeGenOnly = 1;
26610 }
26611 def V6_st0 : HInst<
26612 (outs),
26613 (ins IntRegs:$Rt32, VectorRegs:$Vs32),
26614 "vmem($Rt32) = $Vs32",
26615 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26616 let isPseudo = 1;
26617 let isCodeGenOnly = 1;
26618 let DecoderNamespace = "EXT_mmvec";
26619 }
26620 def V6_st0_128B : HInst<
26621 (outs),
26622 (ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
26623 "vmem($Rt32) = $Vs32",
26624 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26625 let isPseudo = 1;
26626 let isCodeGenOnly = 1;
26627 let DecoderNamespace = "EXT_mmvec";
26628 let isCodeGenOnly = 1;
26629 }
26630 def V6_stn0 : HInst<
26631 (outs),
26632 (ins IntRegs:$Rt32, VectorRegs:$Os8),
26633 "vmem($Rt32) = $Os8.new",
26634 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26635 let isPseudo = 1;
26636 let isCodeGenOnly = 1;
26637 let DecoderNamespace = "EXT_mmvec";
26638 let opNewValue = 1;
26639 }
26640 def V6_stn0_128B : HInst<
26641 (outs),
26642 (ins IntRegs:$Rt32, VectorRegs128B:$Os8),
26643 "vmem($Rt32) = $Os8.new",
26644 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26645 let isPseudo = 1;
26646 let isCodeGenOnly = 1;
26647 let DecoderNamespace = "EXT_mmvec";
26648 let isCodeGenOnly = 1;
26649 let opNewValue = 1;
26650 }
26651 def V6_stnnt0 : HInst<
26652 (outs),
26653 (ins IntRegs:$Rt32, VectorRegs:$Os8),
26654 "vmem($Rt32):nt = $Os8.new",
26655 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26656 let isPseudo = 1;
26657 let isCodeGenOnly = 1;
26658 let DecoderNamespace = "EXT_mmvec";
26659 let opNewValue = 1;
26660 }
26661 def V6_stnnt0_128B : HInst<
26662 (outs),
26663 (ins IntRegs:$Rt32, VectorRegs128B:$Os8),
26664 "vmem($Rt32):nt = $Os8.new",
26665 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26666 let isPseudo = 1;
26667 let isCodeGenOnly = 1;
26668 let DecoderNamespace = "EXT_mmvec";
26669 let isCodeGenOnly = 1;
26670 let opNewValue = 1;
26671 }
26672 def V6_stnp0 : HInst<
26673 (outs),
26674 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26675 "if (!$Pv4) vmem($Rt32) = $Vs32",
26676 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26677 let isPseudo = 1;
26678 let isCodeGenOnly = 1;
26679 let DecoderNamespace = "EXT_mmvec";
26680 }
26681 def V6_stnp0_128B : HInst<
26682 (outs),
26683 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26684 "if (!$Pv4) vmem($Rt32) = $Vs32",
26685 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26686 let isPseudo = 1;
26687 let isCodeGenOnly = 1;
26688 let DecoderNamespace = "EXT_mmvec";
26689 let isCodeGenOnly = 1;
26690 }
26691 def V6_stnpnt0 : HInst<
26692 (outs),
26693 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26694 "if (!$Pv4) vmem($Rt32):nt = $Vs32",
26695 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26696 let isPseudo = 1;
26697 let isCodeGenOnly = 1;
26698 let DecoderNamespace = "EXT_mmvec";
26699 }
26700 def V6_stnpnt0_128B : HInst<
26701 (outs),
26702 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26703 "if (!$Pv4) vmem($Rt32):nt = $Vs32",
26704 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26705 let isPseudo = 1;
26706 let isCodeGenOnly = 1;
26707 let DecoderNamespace = "EXT_mmvec";
26708 let isCodeGenOnly = 1;
26709 }
26710 def V6_stnq0 : HInst<
26711 (outs),
26712 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26713 "if (!$Qv4) vmem($Rt32) = $Vs32",
26714 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26715 let isPseudo = 1;
26716 let isCodeGenOnly = 1;
26717 let DecoderNamespace = "EXT_mmvec";
26718 }
26719 def V6_stnq0_128B : HInst<
26720 (outs),
26721 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26722 "if (!$Qv4) vmem($Rt32) = $Vs32",
26723 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26724 let isPseudo = 1;
26725 let isCodeGenOnly = 1;
26726 let DecoderNamespace = "EXT_mmvec";
26727 let isCodeGenOnly = 1;
26728 }
26729 def V6_stnqnt0 : HInst<
26730 (outs),
26731 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26732 "if (!$Qv4) vmem($Rt32):nt = $Vs32",
26733 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26734 let isPseudo = 1;
26735 let isCodeGenOnly = 1;
26736 let DecoderNamespace = "EXT_mmvec";
26737 }
26738 def V6_stnqnt0_128B : HInst<
26739 (outs),
26740 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26741 "if (!$Qv4) vmem($Rt32):nt = $Vs32",
26742 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26743 let isPseudo = 1;
26744 let isCodeGenOnly = 1;
26745 let DecoderNamespace = "EXT_mmvec";
26746 let isCodeGenOnly = 1;
26747 }
26748 def V6_stnt0 : HInst<
26749 (outs),
26750 (ins IntRegs:$Rt32, VectorRegs:$Vs32),
26751 "vmem($Rt32):nt = $Vs32",
26752 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26753 let isPseudo = 1;
26754 let isCodeGenOnly = 1;
26755 let DecoderNamespace = "EXT_mmvec";
26756 }
26757 def V6_stnt0_128B : HInst<
26758 (outs),
26759 (ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
26760 "vmem($Rt32):nt = $Vs32",
26761 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26762 let isPseudo = 1;
26763 let isCodeGenOnly = 1;
26764 let DecoderNamespace = "EXT_mmvec";
26765 let isCodeGenOnly = 1;
26766 }
26767 def V6_stp0 : HInst<
26768 (outs),
26769 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26770 "if ($Pv4) vmem($Rt32) = $Vs32",
26771 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26772 let isPseudo = 1;
26773 let isCodeGenOnly = 1;
26774 let DecoderNamespace = "EXT_mmvec";
26775 }
26776 def V6_stp0_128B : HInst<
26777 (outs),
26778 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26779 "if ($Pv4) vmem($Rt32) = $Vs32",
26780 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26781 let isPseudo = 1;
26782 let isCodeGenOnly = 1;
26783 let DecoderNamespace = "EXT_mmvec";
26784 let isCodeGenOnly = 1;
26785 }
26786 def V6_stpnt0 : HInst<
26787 (outs),
26788 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26789 "if ($Pv4) vmem($Rt32):nt = $Vs32",
26790 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26791 let isPseudo = 1;
26792 let isCodeGenOnly = 1;
26793 let DecoderNamespace = "EXT_mmvec";
26794 }
26795 def V6_stpnt0_128B : HInst<
26796 (outs),
26797 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26798 "if ($Pv4) vmem($Rt32):nt = $Vs32",
26799 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26800 let isPseudo = 1;
26801 let isCodeGenOnly = 1;
26802 let DecoderNamespace = "EXT_mmvec";
26803 let isCodeGenOnly = 1;
26804 }
26805 def V6_stq0 : HInst<
26806 (outs),
26807 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26808 "if ($Qv4) vmem($Rt32) = $Vs32",
26809 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26810 let isPseudo = 1;
26811 let isCodeGenOnly = 1;
26812 let DecoderNamespace = "EXT_mmvec";
26813 }
26814 def V6_stq0_128B : HInst<
26815 (outs),
26816 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26817 "if ($Qv4) vmem($Rt32) = $Vs32",
26818 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26819 let isPseudo = 1;
26820 let isCodeGenOnly = 1;
26821 let DecoderNamespace = "EXT_mmvec";
26822 let isCodeGenOnly = 1;
26823 }
26824 def V6_stqnt0 : HInst<
26825 (outs),
26826 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26827 "if ($Qv4) vmem($Rt32):nt = $Vs32",
26828 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26829 let isPseudo = 1;
26830 let isCodeGenOnly = 1;
26831 let DecoderNamespace = "EXT_mmvec";
26832 }
26833 def V6_stqnt0_128B : HInst<
26834 (outs),
26835 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26836 "if ($Qv4) vmem($Rt32):nt = $Vs32",
26837 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26838 let isPseudo = 1;
26839 let isCodeGenOnly = 1;
26840 let DecoderNamespace = "EXT_mmvec";
26841 let isCodeGenOnly = 1;
26842 }
26843 def V6_stu0 : HInst<
26844 (outs),
26845 (ins IntRegs:$Rt32, VectorRegs:$Vs32),
26846 "vmemu($Rt32) = $Vs32",
26847 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26848 let isPseudo = 1;
26849 let isCodeGenOnly = 1;
26850 let DecoderNamespace = "EXT_mmvec";
26851 }
26852 def V6_stu0_128B : HInst<
26853 (outs),
26854 (ins IntRegs:$Rt32, VectorRegs128B:$Vs32),
26855 "vmemu($Rt32) = $Vs32",
26856 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26857 let isPseudo = 1;
26858 let isCodeGenOnly = 1;
26859 let DecoderNamespace = "EXT_mmvec";
26860 let isCodeGenOnly = 1;
26861 }
26862 def V6_stunp0 : HInst<
26863 (outs),
26864 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26865 "if (!$Pv4) vmemu($Rt32) = $Vs32",
26866 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26867 let isPseudo = 1;
26868 let isCodeGenOnly = 1;
26869 let DecoderNamespace = "EXT_mmvec";
26870 }
26871 def V6_stunp0_128B : HInst<
26872 (outs),
26873 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26874 "if (!$Pv4) vmemu($Rt32) = $Vs32",
26875 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26876 let isPseudo = 1;
26877 let isCodeGenOnly = 1;
26878 let DecoderNamespace = "EXT_mmvec";
26879 let isCodeGenOnly = 1;
26880 }
26881 def V6_stup0 : HInst<
26882 (outs),
26883 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs:$Vs32),
26884 "if ($Pv4) vmemu($Rt32) = $Vs32",
26885 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26886 let isPseudo = 1;
26887 let isCodeGenOnly = 1;
26888 let DecoderNamespace = "EXT_mmvec";
26889 }
26890 def V6_stup0_128B : HInst<
26891 (outs),
26892 (ins PredRegs:$Pv4, IntRegs:$Rt32, VectorRegs128B:$Vs32),
26893 "if ($Pv4) vmemu($Rt32) = $Vs32",
26894 PSEUDO, TypeCVI_VM_ST>, Requires<[HasV60T,UseHVX]> {
26895 let isPseudo = 1;
26896 let isCodeGenOnly = 1;
26897 let DecoderNamespace = "EXT_mmvec";
26898 let isCodeGenOnly = 1;
26899 }
26900 def V6_vL32Ub_ai : HInst<
26901 (outs VectorRegs:$Vd32),
26902 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
26903 "$Vd32 = vmemu($Rt32+#$Ii)",
26904 tc_35e92f8e, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
26905 let Inst{7-5} = 0b111;
26906 let Inst{12-11} = 0b00;
26907 let Inst{31-21} = 0b00101000000;
26908 let hasNewValue = 1;
26909 let opNewValue = 0;
26910 let addrMode = BaseImmOffset;
26911 let accessSize = Vector64Access;
26912 let isCVLoad = 1;
26913 let mayLoad = 1;
26914 let DecoderNamespace = "EXT_mmvec";
26915 }
26916 def V6_vL32Ub_ai_128B : HInst<
26917 (outs VectorRegs128B:$Vd32),
26918 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
26919 "$Vd32 = vmemu($Rt32+#$Ii)",
26920 tc_35e92f8e, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
26921 let Inst{7-5} = 0b111;
26922 let Inst{12-11} = 0b00;
26923 let Inst{31-21} = 0b00101000000;
26924 let hasNewValue = 1;
26925 let opNewValue = 0;
26926 let addrMode = BaseImmOffset;
26927 let accessSize = Vector128Access;
26928 let isCVLoad = 1;
26929 let mayLoad = 1;
26930 let DecoderNamespace = "EXT_mmvec";
26931 let isCodeGenOnly = 1;
26932 }
26933 def V6_vL32Ub_pi : HInst<
26934 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
26935 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26936 "$Vd32 = vmemu($Rx32++#$Ii)",
26937 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
26938 let Inst{7-5} = 0b111;
26939 let Inst{13-11} = 0b000;
26940 let Inst{31-21} = 0b00101001000;
26941 let hasNewValue = 1;
26942 let opNewValue = 0;
26943 let addrMode = PostInc;
26944 let accessSize = Vector64Access;
26945 let isCVLoad = 1;
26946 let mayLoad = 1;
26947 let DecoderNamespace = "EXT_mmvec";
26948 let Constraints = "$Rx32 = $Rx32in";
26949 }
26950 def V6_vL32Ub_pi_128B : HInst<
26951 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
26952 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26953 "$Vd32 = vmemu($Rx32++#$Ii)",
26954 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
26955 let Inst{7-5} = 0b111;
26956 let Inst{13-11} = 0b000;
26957 let Inst{31-21} = 0b00101001000;
26958 let hasNewValue = 1;
26959 let opNewValue = 0;
26960 let addrMode = PostInc;
26961 let accessSize = Vector128Access;
26962 let isCVLoad = 1;
26963 let mayLoad = 1;
26964 let DecoderNamespace = "EXT_mmvec";
26965 let isCodeGenOnly = 1;
26966 let Constraints = "$Rx32 = $Rx32in";
26967 }
26968 def V6_vL32Ub_ppu : HInst<
26969 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
26970 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
26971 "$Vd32 = vmemu($Rx32++$Mu2)",
26972 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
26973 let Inst{12-5} = 0b00000111;
26974 let Inst{31-21} = 0b00101011000;
26975 let hasNewValue = 1;
26976 let opNewValue = 0;
26977 let addrMode = PostInc;
26978 let accessSize = Vector64Access;
26979 let isCVLoad = 1;
26980 let mayLoad = 1;
26981 let DecoderNamespace = "EXT_mmvec";
26982 let Constraints = "$Rx32 = $Rx32in";
26983 }
26984 def V6_vL32Ub_ppu_128B : HInst<
26985 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
26986 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
26987 "$Vd32 = vmemu($Rx32++$Mu2)",
26988 tc_4fd8566e, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
26989 let Inst{12-5} = 0b00000111;
26990 let Inst{31-21} = 0b00101011000;
26991 let hasNewValue = 1;
26992 let opNewValue = 0;
26993 let addrMode = PostInc;
26994 let accessSize = Vector128Access;
26995 let isCVLoad = 1;
26996 let mayLoad = 1;
26997 let DecoderNamespace = "EXT_mmvec";
26998 let isCodeGenOnly = 1;
26999 let Constraints = "$Rx32 = $Rx32in";
27000 }
27001 def V6_vL32b_ai : HInst<
27002 (outs VectorRegs:$Vd32),
27003 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27004 "$Vd32 = vmem($Rt32+#$Ii)",
27005 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27006 let Inst{7-5} = 0b000;
27007 let Inst{12-11} = 0b00;
27008 let Inst{31-21} = 0b00101000000;
27009 let hasNewValue = 1;
27010 let opNewValue = 0;
27011 let addrMode = BaseImmOffset;
27012 let accessSize = Vector64Access;
27013 let isCVLoad = 1;
27014 let mayLoad = 1;
27015 let isCVLoadable = 1;
27016 let DecoderNamespace = "EXT_mmvec";
27017 }
27018 def V6_vL32b_ai_128B : HInst<
27019 (outs VectorRegs128B:$Vd32),
27020 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27021 "$Vd32 = vmem($Rt32+#$Ii)",
27022 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27023 let Inst{7-5} = 0b000;
27024 let Inst{12-11} = 0b00;
27025 let Inst{31-21} = 0b00101000000;
27026 let hasNewValue = 1;
27027 let opNewValue = 0;
27028 let addrMode = BaseImmOffset;
27029 let accessSize = Vector128Access;
27030 let isCVLoad = 1;
27031 let mayLoad = 1;
27032 let isCVLoadable = 1;
27033 let DecoderNamespace = "EXT_mmvec";
27034 let isCodeGenOnly = 1;
27035 }
27036 def V6_vL32b_cur_ai : HInst<
27037 (outs VectorRegs:$Vd32),
27038 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27039 "$Vd32.cur = vmem($Rt32+#$Ii)",
27040 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27041 let Inst{7-5} = 0b001;
27042 let Inst{12-11} = 0b00;
27043 let Inst{31-21} = 0b00101000000;
27044 let hasNewValue = 1;
27045 let opNewValue = 0;
27046 let addrMode = BaseImmOffset;
27047 let accessSize = Vector64Access;
27048 let isCVLoad = 1;
27049 let CVINew = 1;
27050 let mayLoad = 1;
27051 let DecoderNamespace = "EXT_mmvec";
27052 }
27053 def V6_vL32b_cur_ai_128B : HInst<
27054 (outs VectorRegs128B:$Vd32),
27055 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27056 "$Vd32.cur = vmem($Rt32+#$Ii)",
27057 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27058 let Inst{7-5} = 0b001;
27059 let Inst{12-11} = 0b00;
27060 let Inst{31-21} = 0b00101000000;
27061 let hasNewValue = 1;
27062 let opNewValue = 0;
27063 let addrMode = BaseImmOffset;
27064 let accessSize = Vector128Access;
27065 let isCVLoad = 1;
27066 let CVINew = 1;
27067 let mayLoad = 1;
27068 let DecoderNamespace = "EXT_mmvec";
27069 let isCodeGenOnly = 1;
27070 }
27071 def V6_vL32b_cur_npred_ai : HInst<
27072 (outs VectorRegs:$Vd32),
27073 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27074 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27075 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27076 let Inst{7-5} = 0b101;
27077 let Inst{31-21} = 0b00101000100;
27078 let isPredicated = 1;
27079 let isPredicatedFalse = 1;
27080 let hasNewValue = 1;
27081 let opNewValue = 0;
27082 let addrMode = BaseImmOffset;
27083 let accessSize = Vector64Access;
27084 let isCVLoad = 1;
27085 let CVINew = 1;
27086 let mayLoad = 1;
27087 let DecoderNamespace = "EXT_mmvec";
27088 }
27089 def V6_vL32b_cur_npred_ai_128B : HInst<
27090 (outs VectorRegs128B:$Vd32),
27091 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27092 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27093 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27094 let Inst{7-5} = 0b101;
27095 let Inst{31-21} = 0b00101000100;
27096 let isPredicated = 1;
27097 let isPredicatedFalse = 1;
27098 let hasNewValue = 1;
27099 let opNewValue = 0;
27100 let addrMode = BaseImmOffset;
27101 let accessSize = Vector128Access;
27102 let isCVLoad = 1;
27103 let CVINew = 1;
27104 let mayLoad = 1;
27105 let DecoderNamespace = "EXT_mmvec";
27106 let isCodeGenOnly = 1;
27107 }
27108 def V6_vL32b_cur_npred_pi : HInst<
27109 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27110 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27111 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27112 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27113 let Inst{7-5} = 0b101;
27114 let Inst{13-13} = 0b0;
27115 let Inst{31-21} = 0b00101001100;
27116 let isPredicated = 1;
27117 let isPredicatedFalse = 1;
27118 let hasNewValue = 1;
27119 let opNewValue = 0;
27120 let addrMode = PostInc;
27121 let accessSize = Vector64Access;
27122 let isCVLoad = 1;
27123 let CVINew = 1;
27124 let mayLoad = 1;
27125 let DecoderNamespace = "EXT_mmvec";
27126 let Constraints = "$Rx32 = $Rx32in";
27127 }
27128 def V6_vL32b_cur_npred_pi_128B : HInst<
27129 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27130 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27131 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27132 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27133 let Inst{7-5} = 0b101;
27134 let Inst{13-13} = 0b0;
27135 let Inst{31-21} = 0b00101001100;
27136 let isPredicated = 1;
27137 let isPredicatedFalse = 1;
27138 let hasNewValue = 1;
27139 let opNewValue = 0;
27140 let addrMode = PostInc;
27141 let accessSize = Vector128Access;
27142 let isCVLoad = 1;
27143 let CVINew = 1;
27144 let mayLoad = 1;
27145 let DecoderNamespace = "EXT_mmvec";
27146 let isCodeGenOnly = 1;
27147 let Constraints = "$Rx32 = $Rx32in";
27148 }
27149 def V6_vL32b_cur_npred_ppu : HInst<
27150 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27151 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27152 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27153 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27154 let Inst{10-5} = 0b000101;
27155 let Inst{31-21} = 0b00101011100;
27156 let isPredicated = 1;
27157 let isPredicatedFalse = 1;
27158 let hasNewValue = 1;
27159 let opNewValue = 0;
27160 let addrMode = PostInc;
27161 let accessSize = Vector64Access;
27162 let isCVLoad = 1;
27163 let CVINew = 1;
27164 let mayLoad = 1;
27165 let DecoderNamespace = "EXT_mmvec";
27166 let Constraints = "$Rx32 = $Rx32in";
27167 }
27168 def V6_vL32b_cur_npred_ppu_128B : HInst<
27169 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27170 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27171 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27172 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27173 let Inst{10-5} = 0b000101;
27174 let Inst{31-21} = 0b00101011100;
27175 let isPredicated = 1;
27176 let isPredicatedFalse = 1;
27177 let hasNewValue = 1;
27178 let opNewValue = 0;
27179 let addrMode = PostInc;
27180 let accessSize = Vector128Access;
27181 let isCVLoad = 1;
27182 let CVINew = 1;
27183 let mayLoad = 1;
27184 let DecoderNamespace = "EXT_mmvec";
27185 let isCodeGenOnly = 1;
27186 let Constraints = "$Rx32 = $Rx32in";
27187 }
27188 def V6_vL32b_cur_pi : HInst<
27189 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27190 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27191 "$Vd32.cur = vmem($Rx32++#$Ii)",
27192 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
27193 let Inst{7-5} = 0b001;
27194 let Inst{13-11} = 0b000;
27195 let Inst{31-21} = 0b00101001000;
27196 let hasNewValue = 1;
27197 let opNewValue = 0;
27198 let addrMode = PostInc;
27199 let accessSize = Vector64Access;
27200 let isCVLoad = 1;
27201 let CVINew = 1;
27202 let mayLoad = 1;
27203 let DecoderNamespace = "EXT_mmvec";
27204 let Constraints = "$Rx32 = $Rx32in";
27205 }
27206 def V6_vL32b_cur_pi_128B : HInst<
27207 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27208 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27209 "$Vd32.cur = vmem($Rx32++#$Ii)",
27210 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
27211 let Inst{7-5} = 0b001;
27212 let Inst{13-11} = 0b000;
27213 let Inst{31-21} = 0b00101001000;
27214 let hasNewValue = 1;
27215 let opNewValue = 0;
27216 let addrMode = PostInc;
27217 let accessSize = Vector128Access;
27218 let isCVLoad = 1;
27219 let CVINew = 1;
27220 let mayLoad = 1;
27221 let DecoderNamespace = "EXT_mmvec";
27222 let isCodeGenOnly = 1;
27223 let Constraints = "$Rx32 = $Rx32in";
27224 }
27225 def V6_vL32b_cur_ppu : HInst<
27226 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27227 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27228 "$Vd32.cur = vmem($Rx32++$Mu2)",
27229 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
27230 let Inst{12-5} = 0b00000001;
27231 let Inst{31-21} = 0b00101011000;
27232 let hasNewValue = 1;
27233 let opNewValue = 0;
27234 let addrMode = PostInc;
27235 let accessSize = Vector64Access;
27236 let isCVLoad = 1;
27237 let CVINew = 1;
27238 let mayLoad = 1;
27239 let DecoderNamespace = "EXT_mmvec";
27240 let Constraints = "$Rx32 = $Rx32in";
27241 }
27242 def V6_vL32b_cur_ppu_128B : HInst<
27243 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27244 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27245 "$Vd32.cur = vmem($Rx32++$Mu2)",
27246 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
27247 let Inst{12-5} = 0b00000001;
27248 let Inst{31-21} = 0b00101011000;
27249 let hasNewValue = 1;
27250 let opNewValue = 0;
27251 let addrMode = PostInc;
27252 let accessSize = Vector128Access;
27253 let isCVLoad = 1;
27254 let CVINew = 1;
27255 let mayLoad = 1;
27256 let DecoderNamespace = "EXT_mmvec";
27257 let isCodeGenOnly = 1;
27258 let Constraints = "$Rx32 = $Rx32in";
27259 }
27260 def V6_vL32b_cur_pred_ai : HInst<
27261 (outs VectorRegs:$Vd32),
27262 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27263 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27264 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27265 let Inst{7-5} = 0b100;
27266 let Inst{31-21} = 0b00101000100;
27267 let isPredicated = 1;
27268 let hasNewValue = 1;
27269 let opNewValue = 0;
27270 let addrMode = BaseImmOffset;
27271 let accessSize = Vector64Access;
27272 let isCVLoad = 1;
27273 let CVINew = 1;
27274 let mayLoad = 1;
27275 let DecoderNamespace = "EXT_mmvec";
27276 }
27277 def V6_vL32b_cur_pred_ai_128B : HInst<
27278 (outs VectorRegs128B:$Vd32),
27279 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27280 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27281 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27282 let Inst{7-5} = 0b100;
27283 let Inst{31-21} = 0b00101000100;
27284 let isPredicated = 1;
27285 let hasNewValue = 1;
27286 let opNewValue = 0;
27287 let addrMode = BaseImmOffset;
27288 let accessSize = Vector128Access;
27289 let isCVLoad = 1;
27290 let CVINew = 1;
27291 let mayLoad = 1;
27292 let DecoderNamespace = "EXT_mmvec";
27293 let isCodeGenOnly = 1;
27294 }
27295 def V6_vL32b_cur_pred_pi : HInst<
27296 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27297 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27298 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27299 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27300 let Inst{7-5} = 0b100;
27301 let Inst{13-13} = 0b0;
27302 let Inst{31-21} = 0b00101001100;
27303 let isPredicated = 1;
27304 let hasNewValue = 1;
27305 let opNewValue = 0;
27306 let addrMode = PostInc;
27307 let accessSize = Vector64Access;
27308 let isCVLoad = 1;
27309 let CVINew = 1;
27310 let mayLoad = 1;
27311 let DecoderNamespace = "EXT_mmvec";
27312 let Constraints = "$Rx32 = $Rx32in";
27313 }
27314 def V6_vL32b_cur_pred_pi_128B : HInst<
27315 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27316 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27317 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27318 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27319 let Inst{7-5} = 0b100;
27320 let Inst{13-13} = 0b0;
27321 let Inst{31-21} = 0b00101001100;
27322 let isPredicated = 1;
27323 let hasNewValue = 1;
27324 let opNewValue = 0;
27325 let addrMode = PostInc;
27326 let accessSize = Vector128Access;
27327 let isCVLoad = 1;
27328 let CVINew = 1;
27329 let mayLoad = 1;
27330 let DecoderNamespace = "EXT_mmvec";
27331 let isCodeGenOnly = 1;
27332 let Constraints = "$Rx32 = $Rx32in";
27333 }
27334 def V6_vL32b_cur_pred_ppu : HInst<
27335 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27336 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27337 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27338 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27339 let Inst{10-5} = 0b000100;
27340 let Inst{31-21} = 0b00101011100;
27341 let isPredicated = 1;
27342 let hasNewValue = 1;
27343 let opNewValue = 0;
27344 let addrMode = PostInc;
27345 let accessSize = Vector64Access;
27346 let isCVLoad = 1;
27347 let CVINew = 1;
27348 let mayLoad = 1;
27349 let DecoderNamespace = "EXT_mmvec";
27350 let Constraints = "$Rx32 = $Rx32in";
27351 }
27352 def V6_vL32b_cur_pred_ppu_128B : HInst<
27353 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27354 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27355 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27356 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27357 let Inst{10-5} = 0b000100;
27358 let Inst{31-21} = 0b00101011100;
27359 let isPredicated = 1;
27360 let hasNewValue = 1;
27361 let opNewValue = 0;
27362 let addrMode = PostInc;
27363 let accessSize = Vector128Access;
27364 let isCVLoad = 1;
27365 let CVINew = 1;
27366 let mayLoad = 1;
27367 let DecoderNamespace = "EXT_mmvec";
27368 let isCodeGenOnly = 1;
27369 let Constraints = "$Rx32 = $Rx32in";
27370 }
27371 def V6_vL32b_npred_ai : HInst<
27372 (outs VectorRegs:$Vd32),
27373 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27374 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27375 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27376 let Inst{7-5} = 0b011;
27377 let Inst{31-21} = 0b00101000100;
27378 let isPredicated = 1;
27379 let isPredicatedFalse = 1;
27380 let hasNewValue = 1;
27381 let opNewValue = 0;
27382 let addrMode = BaseImmOffset;
27383 let accessSize = Vector64Access;
27384 let isCVLoad = 1;
27385 let mayLoad = 1;
27386 let DecoderNamespace = "EXT_mmvec";
27387 }
27388 def V6_vL32b_npred_ai_128B : HInst<
27389 (outs VectorRegs128B:$Vd32),
27390 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27391 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27392 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27393 let Inst{7-5} = 0b011;
27394 let Inst{31-21} = 0b00101000100;
27395 let isPredicated = 1;
27396 let isPredicatedFalse = 1;
27397 let hasNewValue = 1;
27398 let opNewValue = 0;
27399 let addrMode = BaseImmOffset;
27400 let accessSize = Vector128Access;
27401 let isCVLoad = 1;
27402 let mayLoad = 1;
27403 let DecoderNamespace = "EXT_mmvec";
27404 let isCodeGenOnly = 1;
27405 }
27406 def V6_vL32b_npred_pi : HInst<
27407 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27408 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27409 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27410 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27411 let Inst{7-5} = 0b011;
27412 let Inst{13-13} = 0b0;
27413 let Inst{31-21} = 0b00101001100;
27414 let isPredicated = 1;
27415 let isPredicatedFalse = 1;
27416 let hasNewValue = 1;
27417 let opNewValue = 0;
27418 let addrMode = PostInc;
27419 let accessSize = Vector64Access;
27420 let isCVLoad = 1;
27421 let mayLoad = 1;
27422 let DecoderNamespace = "EXT_mmvec";
27423 let Constraints = "$Rx32 = $Rx32in";
27424 }
27425 def V6_vL32b_npred_pi_128B : HInst<
27426 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27427 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27428 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27429 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27430 let Inst{7-5} = 0b011;
27431 let Inst{13-13} = 0b0;
27432 let Inst{31-21} = 0b00101001100;
27433 let isPredicated = 1;
27434 let isPredicatedFalse = 1;
27435 let hasNewValue = 1;
27436 let opNewValue = 0;
27437 let addrMode = PostInc;
27438 let accessSize = Vector128Access;
27439 let isCVLoad = 1;
27440 let mayLoad = 1;
27441 let DecoderNamespace = "EXT_mmvec";
27442 let isCodeGenOnly = 1;
27443 let Constraints = "$Rx32 = $Rx32in";
27444 }
27445 def V6_vL32b_npred_ppu : HInst<
27446 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27447 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27448 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27449 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27450 let Inst{10-5} = 0b000011;
27451 let Inst{31-21} = 0b00101011100;
27452 let isPredicated = 1;
27453 let isPredicatedFalse = 1;
27454 let hasNewValue = 1;
27455 let opNewValue = 0;
27456 let addrMode = PostInc;
27457 let accessSize = Vector64Access;
27458 let isCVLoad = 1;
27459 let mayLoad = 1;
27460 let DecoderNamespace = "EXT_mmvec";
27461 let Constraints = "$Rx32 = $Rx32in";
27462 }
27463 def V6_vL32b_npred_ppu_128B : HInst<
27464 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27465 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27466 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27467 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27468 let Inst{10-5} = 0b000011;
27469 let Inst{31-21} = 0b00101011100;
27470 let isPredicated = 1;
27471 let isPredicatedFalse = 1;
27472 let hasNewValue = 1;
27473 let opNewValue = 0;
27474 let addrMode = PostInc;
27475 let accessSize = Vector128Access;
27476 let isCVLoad = 1;
27477 let mayLoad = 1;
27478 let DecoderNamespace = "EXT_mmvec";
27479 let isCodeGenOnly = 1;
27480 let Constraints = "$Rx32 = $Rx32in";
27481 }
27482 def V6_vL32b_nt_ai : HInst<
27483 (outs VectorRegs:$Vd32),
27484 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27485 "$Vd32 = vmem($Rt32+#$Ii):nt",
27486 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27487 let Inst{7-5} = 0b000;
27488 let Inst{12-11} = 0b00;
27489 let Inst{31-21} = 0b00101000010;
27490 let hasNewValue = 1;
27491 let opNewValue = 0;
27492 let addrMode = BaseImmOffset;
27493 let accessSize = Vector64Access;
27494 let isCVLoad = 1;
27495 let mayLoad = 1;
27496 let isNonTemporal = 1;
27497 let isCVLoadable = 1;
27498 let DecoderNamespace = "EXT_mmvec";
27499 }
27500 def V6_vL32b_nt_ai_128B : HInst<
27501 (outs VectorRegs128B:$Vd32),
27502 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27503 "$Vd32 = vmem($Rt32+#$Ii):nt",
27504 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27505 let Inst{7-5} = 0b000;
27506 let Inst{12-11} = 0b00;
27507 let Inst{31-21} = 0b00101000010;
27508 let hasNewValue = 1;
27509 let opNewValue = 0;
27510 let addrMode = BaseImmOffset;
27511 let accessSize = Vector128Access;
27512 let isCVLoad = 1;
27513 let mayLoad = 1;
27514 let isNonTemporal = 1;
27515 let isCVLoadable = 1;
27516 let DecoderNamespace = "EXT_mmvec";
27517 let isCodeGenOnly = 1;
27518 }
27519 def V6_vL32b_nt_cur_ai : HInst<
27520 (outs VectorRegs:$Vd32),
27521 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27522 "$Vd32.cur = vmem($Rt32+#$Ii):nt",
27523 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27524 let Inst{7-5} = 0b001;
27525 let Inst{12-11} = 0b00;
27526 let Inst{31-21} = 0b00101000010;
27527 let hasNewValue = 1;
27528 let opNewValue = 0;
27529 let addrMode = BaseImmOffset;
27530 let accessSize = Vector64Access;
27531 let isCVLoad = 1;
27532 let CVINew = 1;
27533 let mayLoad = 1;
27534 let isNonTemporal = 1;
27535 let DecoderNamespace = "EXT_mmvec";
27536 }
27537 def V6_vL32b_nt_cur_ai_128B : HInst<
27538 (outs VectorRegs128B:$Vd32),
27539 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27540 "$Vd32.cur = vmem($Rt32+#$Ii):nt",
27541 tc_b712833a, TypeCVI_VM_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
27542 let Inst{7-5} = 0b001;
27543 let Inst{12-11} = 0b00;
27544 let Inst{31-21} = 0b00101000010;
27545 let hasNewValue = 1;
27546 let opNewValue = 0;
27547 let addrMode = BaseImmOffset;
27548 let accessSize = Vector128Access;
27549 let isCVLoad = 1;
27550 let CVINew = 1;
27551 let mayLoad = 1;
27552 let isNonTemporal = 1;
27553 let DecoderNamespace = "EXT_mmvec";
27554 let isCodeGenOnly = 1;
27555 }
27556 def V6_vL32b_nt_cur_npred_ai : HInst<
27557 (outs VectorRegs:$Vd32),
27558 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27559 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27560 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27561 let Inst{7-5} = 0b101;
27562 let Inst{31-21} = 0b00101000110;
27563 let isPredicated = 1;
27564 let isPredicatedFalse = 1;
27565 let hasNewValue = 1;
27566 let opNewValue = 0;
27567 let addrMode = BaseImmOffset;
27568 let accessSize = Vector64Access;
27569 let isCVLoad = 1;
27570 let CVINew = 1;
27571 let mayLoad = 1;
27572 let isNonTemporal = 1;
27573 let DecoderNamespace = "EXT_mmvec";
27574 }
27575 def V6_vL32b_nt_cur_npred_ai_128B : HInst<
27576 (outs VectorRegs128B:$Vd32),
27577 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27578 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27579 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27580 let Inst{7-5} = 0b101;
27581 let Inst{31-21} = 0b00101000110;
27582 let isPredicated = 1;
27583 let isPredicatedFalse = 1;
27584 let hasNewValue = 1;
27585 let opNewValue = 0;
27586 let addrMode = BaseImmOffset;
27587 let accessSize = Vector128Access;
27588 let isCVLoad = 1;
27589 let CVINew = 1;
27590 let mayLoad = 1;
27591 let isNonTemporal = 1;
27592 let DecoderNamespace = "EXT_mmvec";
27593 let isCodeGenOnly = 1;
27594 }
27595 def V6_vL32b_nt_cur_npred_pi : HInst<
27596 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27597 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27598 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27599 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27600 let Inst{7-5} = 0b101;
27601 let Inst{13-13} = 0b0;
27602 let Inst{31-21} = 0b00101001110;
27603 let isPredicated = 1;
27604 let isPredicatedFalse = 1;
27605 let hasNewValue = 1;
27606 let opNewValue = 0;
27607 let addrMode = PostInc;
27608 let accessSize = Vector64Access;
27609 let isCVLoad = 1;
27610 let CVINew = 1;
27611 let mayLoad = 1;
27612 let isNonTemporal = 1;
27613 let DecoderNamespace = "EXT_mmvec";
27614 let Constraints = "$Rx32 = $Rx32in";
27615 }
27616 def V6_vL32b_nt_cur_npred_pi_128B : HInst<
27617 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27618 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27619 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27620 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27621 let Inst{7-5} = 0b101;
27622 let Inst{13-13} = 0b0;
27623 let Inst{31-21} = 0b00101001110;
27624 let isPredicated = 1;
27625 let isPredicatedFalse = 1;
27626 let hasNewValue = 1;
27627 let opNewValue = 0;
27628 let addrMode = PostInc;
27629 let accessSize = Vector128Access;
27630 let isCVLoad = 1;
27631 let CVINew = 1;
27632 let mayLoad = 1;
27633 let isNonTemporal = 1;
27634 let DecoderNamespace = "EXT_mmvec";
27635 let isCodeGenOnly = 1;
27636 let Constraints = "$Rx32 = $Rx32in";
27637 }
27638 def V6_vL32b_nt_cur_npred_ppu : HInst<
27639 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27640 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27641 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27642 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27643 let Inst{10-5} = 0b000101;
27644 let Inst{31-21} = 0b00101011110;
27645 let isPredicated = 1;
27646 let isPredicatedFalse = 1;
27647 let hasNewValue = 1;
27648 let opNewValue = 0;
27649 let addrMode = PostInc;
27650 let accessSize = Vector64Access;
27651 let isCVLoad = 1;
27652 let CVINew = 1;
27653 let mayLoad = 1;
27654 let isNonTemporal = 1;
27655 let DecoderNamespace = "EXT_mmvec";
27656 let Constraints = "$Rx32 = $Rx32in";
27657 }
27658 def V6_vL32b_nt_cur_npred_ppu_128B : HInst<
27659 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27660 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27661 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27662 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27663 let Inst{10-5} = 0b000101;
27664 let Inst{31-21} = 0b00101011110;
27665 let isPredicated = 1;
27666 let isPredicatedFalse = 1;
27667 let hasNewValue = 1;
27668 let opNewValue = 0;
27669 let addrMode = PostInc;
27670 let accessSize = Vector128Access;
27671 let isCVLoad = 1;
27672 let CVINew = 1;
27673 let mayLoad = 1;
27674 let isNonTemporal = 1;
27675 let DecoderNamespace = "EXT_mmvec";
27676 let isCodeGenOnly = 1;
27677 let Constraints = "$Rx32 = $Rx32in";
27678 }
27679 def V6_vL32b_nt_cur_pi : HInst<
27680 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27681 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27682 "$Vd32.cur = vmem($Rx32++#$Ii):nt",
27683 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
27684 let Inst{7-5} = 0b001;
27685 let Inst{13-11} = 0b000;
27686 let Inst{31-21} = 0b00101001010;
27687 let hasNewValue = 1;
27688 let opNewValue = 0;
27689 let addrMode = PostInc;
27690 let accessSize = Vector64Access;
27691 let isCVLoad = 1;
27692 let CVINew = 1;
27693 let mayLoad = 1;
27694 let isNonTemporal = 1;
27695 let DecoderNamespace = "EXT_mmvec";
27696 let Constraints = "$Rx32 = $Rx32in";
27697 }
27698 def V6_vL32b_nt_cur_pi_128B : HInst<
27699 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27700 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27701 "$Vd32.cur = vmem($Rx32++#$Ii):nt",
27702 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
27703 let Inst{7-5} = 0b001;
27704 let Inst{13-11} = 0b000;
27705 let Inst{31-21} = 0b00101001010;
27706 let hasNewValue = 1;
27707 let opNewValue = 0;
27708 let addrMode = PostInc;
27709 let accessSize = Vector128Access;
27710 let isCVLoad = 1;
27711 let CVINew = 1;
27712 let mayLoad = 1;
27713 let isNonTemporal = 1;
27714 let DecoderNamespace = "EXT_mmvec";
27715 let isCodeGenOnly = 1;
27716 let Constraints = "$Rx32 = $Rx32in";
27717 }
27718 def V6_vL32b_nt_cur_ppu : HInst<
27719 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27720 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27721 "$Vd32.cur = vmem($Rx32++$Mu2):nt",
27722 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
27723 let Inst{12-5} = 0b00000001;
27724 let Inst{31-21} = 0b00101011010;
27725 let hasNewValue = 1;
27726 let opNewValue = 0;
27727 let addrMode = PostInc;
27728 let accessSize = Vector64Access;
27729 let isCVLoad = 1;
27730 let CVINew = 1;
27731 let mayLoad = 1;
27732 let isNonTemporal = 1;
27733 let DecoderNamespace = "EXT_mmvec";
27734 let Constraints = "$Rx32 = $Rx32in";
27735 }
27736 def V6_vL32b_nt_cur_ppu_128B : HInst<
27737 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27738 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27739 "$Vd32.cur = vmem($Rx32++$Mu2):nt",
27740 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
27741 let Inst{12-5} = 0b00000001;
27742 let Inst{31-21} = 0b00101011010;
27743 let hasNewValue = 1;
27744 let opNewValue = 0;
27745 let addrMode = PostInc;
27746 let accessSize = Vector128Access;
27747 let isCVLoad = 1;
27748 let CVINew = 1;
27749 let mayLoad = 1;
27750 let isNonTemporal = 1;
27751 let DecoderNamespace = "EXT_mmvec";
27752 let isCodeGenOnly = 1;
27753 let Constraints = "$Rx32 = $Rx32in";
27754 }
27755 def V6_vL32b_nt_cur_pred_ai : HInst<
27756 (outs VectorRegs:$Vd32),
27757 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27758 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27759 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27760 let Inst{7-5} = 0b100;
27761 let Inst{31-21} = 0b00101000110;
27762 let isPredicated = 1;
27763 let hasNewValue = 1;
27764 let opNewValue = 0;
27765 let addrMode = BaseImmOffset;
27766 let accessSize = Vector64Access;
27767 let isCVLoad = 1;
27768 let CVINew = 1;
27769 let mayLoad = 1;
27770 let isNonTemporal = 1;
27771 let DecoderNamespace = "EXT_mmvec";
27772 }
27773 def V6_vL32b_nt_cur_pred_ai_128B : HInst<
27774 (outs VectorRegs128B:$Vd32),
27775 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27776 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27777 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27778 let Inst{7-5} = 0b100;
27779 let Inst{31-21} = 0b00101000110;
27780 let isPredicated = 1;
27781 let hasNewValue = 1;
27782 let opNewValue = 0;
27783 let addrMode = BaseImmOffset;
27784 let accessSize = Vector128Access;
27785 let isCVLoad = 1;
27786 let CVINew = 1;
27787 let mayLoad = 1;
27788 let isNonTemporal = 1;
27789 let DecoderNamespace = "EXT_mmvec";
27790 let isCodeGenOnly = 1;
27791 }
27792 def V6_vL32b_nt_cur_pred_pi : HInst<
27793 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27794 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27795 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27796 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27797 let Inst{7-5} = 0b100;
27798 let Inst{13-13} = 0b0;
27799 let Inst{31-21} = 0b00101001110;
27800 let isPredicated = 1;
27801 let hasNewValue = 1;
27802 let opNewValue = 0;
27803 let addrMode = PostInc;
27804 let accessSize = Vector64Access;
27805 let isCVLoad = 1;
27806 let CVINew = 1;
27807 let mayLoad = 1;
27808 let isNonTemporal = 1;
27809 let DecoderNamespace = "EXT_mmvec";
27810 let Constraints = "$Rx32 = $Rx32in";
27811 }
27812 def V6_vL32b_nt_cur_pred_pi_128B : HInst<
27813 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27814 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27815 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27816 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27817 let Inst{7-5} = 0b100;
27818 let Inst{13-13} = 0b0;
27819 let Inst{31-21} = 0b00101001110;
27820 let isPredicated = 1;
27821 let hasNewValue = 1;
27822 let opNewValue = 0;
27823 let addrMode = PostInc;
27824 let accessSize = Vector128Access;
27825 let isCVLoad = 1;
27826 let CVINew = 1;
27827 let mayLoad = 1;
27828 let isNonTemporal = 1;
27829 let DecoderNamespace = "EXT_mmvec";
27830 let isCodeGenOnly = 1;
27831 let Constraints = "$Rx32 = $Rx32in";
27832 }
27833 def V6_vL32b_nt_cur_pred_ppu : HInst<
27834 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27835 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27836 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27837 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27838 let Inst{10-5} = 0b000100;
27839 let Inst{31-21} = 0b00101011110;
27840 let isPredicated = 1;
27841 let hasNewValue = 1;
27842 let opNewValue = 0;
27843 let addrMode = PostInc;
27844 let accessSize = Vector64Access;
27845 let isCVLoad = 1;
27846 let CVINew = 1;
27847 let mayLoad = 1;
27848 let isNonTemporal = 1;
27849 let DecoderNamespace = "EXT_mmvec";
27850 let Constraints = "$Rx32 = $Rx32in";
27851 }
27852 def V6_vL32b_nt_cur_pred_ppu_128B : HInst<
27853 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27854 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27855 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27856 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27857 let Inst{10-5} = 0b000100;
27858 let Inst{31-21} = 0b00101011110;
27859 let isPredicated = 1;
27860 let hasNewValue = 1;
27861 let opNewValue = 0;
27862 let addrMode = PostInc;
27863 let accessSize = Vector128Access;
27864 let isCVLoad = 1;
27865 let CVINew = 1;
27866 let mayLoad = 1;
27867 let isNonTemporal = 1;
27868 let DecoderNamespace = "EXT_mmvec";
27869 let isCodeGenOnly = 1;
27870 let Constraints = "$Rx32 = $Rx32in";
27871 }
27872 def V6_vL32b_nt_npred_ai : HInst<
27873 (outs VectorRegs:$Vd32),
27874 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27875 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27876 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27877 let Inst{7-5} = 0b011;
27878 let Inst{31-21} = 0b00101000110;
27879 let isPredicated = 1;
27880 let isPredicatedFalse = 1;
27881 let hasNewValue = 1;
27882 let opNewValue = 0;
27883 let addrMode = BaseImmOffset;
27884 let accessSize = Vector64Access;
27885 let isCVLoad = 1;
27886 let mayLoad = 1;
27887 let isNonTemporal = 1;
27888 let DecoderNamespace = "EXT_mmvec";
27889 }
27890 def V6_vL32b_nt_npred_ai_128B : HInst<
27891 (outs VectorRegs128B:$Vd32),
27892 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27893 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27894 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
27895 let Inst{7-5} = 0b011;
27896 let Inst{31-21} = 0b00101000110;
27897 let isPredicated = 1;
27898 let isPredicatedFalse = 1;
27899 let hasNewValue = 1;
27900 let opNewValue = 0;
27901 let addrMode = BaseImmOffset;
27902 let accessSize = Vector128Access;
27903 let isCVLoad = 1;
27904 let mayLoad = 1;
27905 let isNonTemporal = 1;
27906 let DecoderNamespace = "EXT_mmvec";
27907 let isCodeGenOnly = 1;
27908 }
27909 def V6_vL32b_nt_npred_pi : HInst<
27910 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27911 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27912 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27913 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27914 let Inst{7-5} = 0b011;
27915 let Inst{13-13} = 0b0;
27916 let Inst{31-21} = 0b00101001110;
27917 let isPredicated = 1;
27918 let isPredicatedFalse = 1;
27919 let hasNewValue = 1;
27920 let opNewValue = 0;
27921 let addrMode = PostInc;
27922 let accessSize = Vector64Access;
27923 let isCVLoad = 1;
27924 let mayLoad = 1;
27925 let isNonTemporal = 1;
27926 let DecoderNamespace = "EXT_mmvec";
27927 let Constraints = "$Rx32 = $Rx32in";
27928 }
27929 def V6_vL32b_nt_npred_pi_128B : HInst<
27930 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27931 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27932 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27933 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
27934 let Inst{7-5} = 0b011;
27935 let Inst{13-13} = 0b0;
27936 let Inst{31-21} = 0b00101001110;
27937 let isPredicated = 1;
27938 let isPredicatedFalse = 1;
27939 let hasNewValue = 1;
27940 let opNewValue = 0;
27941 let addrMode = PostInc;
27942 let accessSize = Vector128Access;
27943 let isCVLoad = 1;
27944 let mayLoad = 1;
27945 let isNonTemporal = 1;
27946 let DecoderNamespace = "EXT_mmvec";
27947 let isCodeGenOnly = 1;
27948 let Constraints = "$Rx32 = $Rx32in";
27949 }
27950 def V6_vL32b_nt_npred_ppu : HInst<
27951 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27952 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27953 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27954 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27955 let Inst{10-5} = 0b000011;
27956 let Inst{31-21} = 0b00101011110;
27957 let isPredicated = 1;
27958 let isPredicatedFalse = 1;
27959 let hasNewValue = 1;
27960 let opNewValue = 0;
27961 let addrMode = PostInc;
27962 let accessSize = Vector64Access;
27963 let isCVLoad = 1;
27964 let mayLoad = 1;
27965 let isNonTemporal = 1;
27966 let DecoderNamespace = "EXT_mmvec";
27967 let Constraints = "$Rx32 = $Rx32in";
27968 }
27969 def V6_vL32b_nt_npred_ppu_128B : HInst<
27970 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
27971 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27972 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27973 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
27974 let Inst{10-5} = 0b000011;
27975 let Inst{31-21} = 0b00101011110;
27976 let isPredicated = 1;
27977 let isPredicatedFalse = 1;
27978 let hasNewValue = 1;
27979 let opNewValue = 0;
27980 let addrMode = PostInc;
27981 let accessSize = Vector128Access;
27982 let isCVLoad = 1;
27983 let mayLoad = 1;
27984 let isNonTemporal = 1;
27985 let DecoderNamespace = "EXT_mmvec";
27986 let isCodeGenOnly = 1;
27987 let Constraints = "$Rx32 = $Rx32in";
27988 }
27989 def V6_vL32b_nt_pi : HInst<
27990 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
27991 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27992 "$Vd32 = vmem($Rx32++#$Ii):nt",
27993 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
27994 let Inst{7-5} = 0b000;
27995 let Inst{13-11} = 0b000;
27996 let Inst{31-21} = 0b00101001010;
27997 let hasNewValue = 1;
27998 let opNewValue = 0;
27999 let addrMode = PostInc;
28000 let accessSize = Vector64Access;
28001 let isCVLoad = 1;
28002 let mayLoad = 1;
28003 let isNonTemporal = 1;
28004 let isCVLoadable = 1;
28005 let DecoderNamespace = "EXT_mmvec";
28006 let Constraints = "$Rx32 = $Rx32in";
28007 }
28008 def V6_vL32b_nt_pi_128B : HInst<
28009 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28010 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28011 "$Vd32 = vmem($Rx32++#$Ii):nt",
28012 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28013 let Inst{7-5} = 0b000;
28014 let Inst{13-11} = 0b000;
28015 let Inst{31-21} = 0b00101001010;
28016 let hasNewValue = 1;
28017 let opNewValue = 0;
28018 let addrMode = PostInc;
28019 let accessSize = Vector128Access;
28020 let isCVLoad = 1;
28021 let mayLoad = 1;
28022 let isNonTemporal = 1;
28023 let isCVLoadable = 1;
28024 let DecoderNamespace = "EXT_mmvec";
28025 let isCodeGenOnly = 1;
28026 let Constraints = "$Rx32 = $Rx32in";
28027 }
28028 def V6_vL32b_nt_ppu : HInst<
28029 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28030 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28031 "$Vd32 = vmem($Rx32++$Mu2):nt",
28032 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28033 let Inst{12-5} = 0b00000000;
28034 let Inst{31-21} = 0b00101011010;
28035 let hasNewValue = 1;
28036 let opNewValue = 0;
28037 let addrMode = PostInc;
28038 let accessSize = Vector64Access;
28039 let isCVLoad = 1;
28040 let mayLoad = 1;
28041 let isNonTemporal = 1;
28042 let isCVLoadable = 1;
28043 let DecoderNamespace = "EXT_mmvec";
28044 let Constraints = "$Rx32 = $Rx32in";
28045 }
28046 def V6_vL32b_nt_ppu_128B : HInst<
28047 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28048 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28049 "$Vd32 = vmem($Rx32++$Mu2):nt",
28050 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28051 let Inst{12-5} = 0b00000000;
28052 let Inst{31-21} = 0b00101011010;
28053 let hasNewValue = 1;
28054 let opNewValue = 0;
28055 let addrMode = PostInc;
28056 let accessSize = Vector128Access;
28057 let isCVLoad = 1;
28058 let mayLoad = 1;
28059 let isNonTemporal = 1;
28060 let isCVLoadable = 1;
28061 let DecoderNamespace = "EXT_mmvec";
28062 let isCodeGenOnly = 1;
28063 let Constraints = "$Rx32 = $Rx32in";
28064 }
28065 def V6_vL32b_nt_pred_ai : HInst<
28066 (outs VectorRegs:$Vd32),
28067 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28068 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28069 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28070 let Inst{7-5} = 0b010;
28071 let Inst{31-21} = 0b00101000110;
28072 let isPredicated = 1;
28073 let hasNewValue = 1;
28074 let opNewValue = 0;
28075 let addrMode = BaseImmOffset;
28076 let accessSize = Vector64Access;
28077 let isCVLoad = 1;
28078 let mayLoad = 1;
28079 let isNonTemporal = 1;
28080 let DecoderNamespace = "EXT_mmvec";
28081 }
28082 def V6_vL32b_nt_pred_ai_128B : HInst<
28083 (outs VectorRegs128B:$Vd32),
28084 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28085 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
28086 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28087 let Inst{7-5} = 0b010;
28088 let Inst{31-21} = 0b00101000110;
28089 let isPredicated = 1;
28090 let hasNewValue = 1;
28091 let opNewValue = 0;
28092 let addrMode = BaseImmOffset;
28093 let accessSize = Vector128Access;
28094 let isCVLoad = 1;
28095 let mayLoad = 1;
28096 let isNonTemporal = 1;
28097 let DecoderNamespace = "EXT_mmvec";
28098 let isCodeGenOnly = 1;
28099 }
28100 def V6_vL32b_nt_pred_pi : HInst<
28101 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28102 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28103 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28104 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28105 let Inst{7-5} = 0b010;
28106 let Inst{13-13} = 0b0;
28107 let Inst{31-21} = 0b00101001110;
28108 let isPredicated = 1;
28109 let hasNewValue = 1;
28110 let opNewValue = 0;
28111 let addrMode = PostInc;
28112 let accessSize = Vector64Access;
28113 let isCVLoad = 1;
28114 let mayLoad = 1;
28115 let isNonTemporal = 1;
28116 let DecoderNamespace = "EXT_mmvec";
28117 let Constraints = "$Rx32 = $Rx32in";
28118 }
28119 def V6_vL32b_nt_pred_pi_128B : HInst<
28120 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28121 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28122 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
28123 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28124 let Inst{7-5} = 0b010;
28125 let Inst{13-13} = 0b0;
28126 let Inst{31-21} = 0b00101001110;
28127 let isPredicated = 1;
28128 let hasNewValue = 1;
28129 let opNewValue = 0;
28130 let addrMode = PostInc;
28131 let accessSize = Vector128Access;
28132 let isCVLoad = 1;
28133 let mayLoad = 1;
28134 let isNonTemporal = 1;
28135 let DecoderNamespace = "EXT_mmvec";
28136 let isCodeGenOnly = 1;
28137 let Constraints = "$Rx32 = $Rx32in";
28138 }
28139 def V6_vL32b_nt_pred_ppu : HInst<
28140 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28141 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28142 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28143 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28144 let Inst{10-5} = 0b000010;
28145 let Inst{31-21} = 0b00101011110;
28146 let isPredicated = 1;
28147 let hasNewValue = 1;
28148 let opNewValue = 0;
28149 let addrMode = PostInc;
28150 let accessSize = Vector64Access;
28151 let isCVLoad = 1;
28152 let mayLoad = 1;
28153 let isNonTemporal = 1;
28154 let DecoderNamespace = "EXT_mmvec";
28155 let Constraints = "$Rx32 = $Rx32in";
28156 }
28157 def V6_vL32b_nt_pred_ppu_128B : HInst<
28158 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28159 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28160 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
28161 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28162 let Inst{10-5} = 0b000010;
28163 let Inst{31-21} = 0b00101011110;
28164 let isPredicated = 1;
28165 let hasNewValue = 1;
28166 let opNewValue = 0;
28167 let addrMode = PostInc;
28168 let accessSize = Vector128Access;
28169 let isCVLoad = 1;
28170 let mayLoad = 1;
28171 let isNonTemporal = 1;
28172 let DecoderNamespace = "EXT_mmvec";
28173 let isCodeGenOnly = 1;
28174 let Constraints = "$Rx32 = $Rx32in";
28175 }
28176 def V6_vL32b_nt_tmp_ai : HInst<
28177 (outs VectorRegs:$Vd32),
28178 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28179 "$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28180 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
28181 let Inst{7-5} = 0b010;
28182 let Inst{12-11} = 0b00;
28183 let Inst{31-21} = 0b00101000010;
28184 let hasNewValue = 1;
28185 let opNewValue = 0;
28186 let addrMode = BaseImmOffset;
28187 let accessSize = Vector64Access;
28188 let isCVLoad = 1;
28189 let mayLoad = 1;
28190 let isNonTemporal = 1;
28191 let DecoderNamespace = "EXT_mmvec";
28192 }
28193 def V6_vL32b_nt_tmp_ai_128B : HInst<
28194 (outs VectorRegs128B:$Vd32),
28195 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28196 "$Vd32.tmp = vmem($Rt32+#$Ii):nt",
28197 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
28198 let Inst{7-5} = 0b010;
28199 let Inst{12-11} = 0b00;
28200 let Inst{31-21} = 0b00101000010;
28201 let hasNewValue = 1;
28202 let opNewValue = 0;
28203 let addrMode = BaseImmOffset;
28204 let accessSize = Vector128Access;
28205 let isCVLoad = 1;
28206 let mayLoad = 1;
28207 let isNonTemporal = 1;
28208 let DecoderNamespace = "EXT_mmvec";
28209 let isCodeGenOnly = 1;
28210 }
28211 def V6_vL32b_nt_tmp_npred_ai : HInst<
28212 (outs VectorRegs:$Vd32),
28213 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28214 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28215 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28216 let Inst{7-5} = 0b111;
28217 let Inst{31-21} = 0b00101000110;
28218 let isPredicated = 1;
28219 let isPredicatedFalse = 1;
28220 let hasNewValue = 1;
28221 let opNewValue = 0;
28222 let addrMode = BaseImmOffset;
28223 let accessSize = Vector64Access;
28224 let isCVLoad = 1;
28225 let mayLoad = 1;
28226 let isNonTemporal = 1;
28227 let DecoderNamespace = "EXT_mmvec";
28228 }
28229 def V6_vL32b_nt_tmp_npred_ai_128B : HInst<
28230 (outs VectorRegs128B:$Vd32),
28231 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28232 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28233 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28234 let Inst{7-5} = 0b111;
28235 let Inst{31-21} = 0b00101000110;
28236 let isPredicated = 1;
28237 let isPredicatedFalse = 1;
28238 let hasNewValue = 1;
28239 let opNewValue = 0;
28240 let addrMode = BaseImmOffset;
28241 let accessSize = Vector128Access;
28242 let isCVLoad = 1;
28243 let mayLoad = 1;
28244 let isNonTemporal = 1;
28245 let DecoderNamespace = "EXT_mmvec";
28246 let isCodeGenOnly = 1;
28247 }
28248 def V6_vL32b_nt_tmp_npred_pi : HInst<
28249 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28250 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28251 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28252 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28253 let Inst{7-5} = 0b111;
28254 let Inst{13-13} = 0b0;
28255 let Inst{31-21} = 0b00101001110;
28256 let isPredicated = 1;
28257 let isPredicatedFalse = 1;
28258 let hasNewValue = 1;
28259 let opNewValue = 0;
28260 let addrMode = PostInc;
28261 let accessSize = Vector64Access;
28262 let isCVLoad = 1;
28263 let mayLoad = 1;
28264 let isNonTemporal = 1;
28265 let DecoderNamespace = "EXT_mmvec";
28266 let Constraints = "$Rx32 = $Rx32in";
28267 }
28268 def V6_vL32b_nt_tmp_npred_pi_128B : HInst<
28269 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28270 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28271 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28272 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28273 let Inst{7-5} = 0b111;
28274 let Inst{13-13} = 0b0;
28275 let Inst{31-21} = 0b00101001110;
28276 let isPredicated = 1;
28277 let isPredicatedFalse = 1;
28278 let hasNewValue = 1;
28279 let opNewValue = 0;
28280 let addrMode = PostInc;
28281 let accessSize = Vector128Access;
28282 let isCVLoad = 1;
28283 let mayLoad = 1;
28284 let isNonTemporal = 1;
28285 let DecoderNamespace = "EXT_mmvec";
28286 let isCodeGenOnly = 1;
28287 let Constraints = "$Rx32 = $Rx32in";
28288 }
28289 def V6_vL32b_nt_tmp_npred_ppu : HInst<
28290 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28291 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28292 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28293 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28294 let Inst{10-5} = 0b000111;
28295 let Inst{31-21} = 0b00101011110;
28296 let isPredicated = 1;
28297 let isPredicatedFalse = 1;
28298 let hasNewValue = 1;
28299 let opNewValue = 0;
28300 let addrMode = PostInc;
28301 let accessSize = Vector64Access;
28302 let isCVLoad = 1;
28303 let mayLoad = 1;
28304 let isNonTemporal = 1;
28305 let DecoderNamespace = "EXT_mmvec";
28306 let Constraints = "$Rx32 = $Rx32in";
28307 }
28308 def V6_vL32b_nt_tmp_npred_ppu_128B : HInst<
28309 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28310 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28311 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28312 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28313 let Inst{10-5} = 0b000111;
28314 let Inst{31-21} = 0b00101011110;
28315 let isPredicated = 1;
28316 let isPredicatedFalse = 1;
28317 let hasNewValue = 1;
28318 let opNewValue = 0;
28319 let addrMode = PostInc;
28320 let accessSize = Vector128Access;
28321 let isCVLoad = 1;
28322 let mayLoad = 1;
28323 let isNonTemporal = 1;
28324 let DecoderNamespace = "EXT_mmvec";
28325 let isCodeGenOnly = 1;
28326 let Constraints = "$Rx32 = $Rx32in";
28327 }
28328 def V6_vL32b_nt_tmp_pi : HInst<
28329 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28330 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28331 "$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28332 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28333 let Inst{7-5} = 0b010;
28334 let Inst{13-11} = 0b000;
28335 let Inst{31-21} = 0b00101001010;
28336 let hasNewValue = 1;
28337 let opNewValue = 0;
28338 let addrMode = PostInc;
28339 let accessSize = Vector64Access;
28340 let isCVLoad = 1;
28341 let mayLoad = 1;
28342 let isNonTemporal = 1;
28343 let DecoderNamespace = "EXT_mmvec";
28344 let Constraints = "$Rx32 = $Rx32in";
28345 }
28346 def V6_vL32b_nt_tmp_pi_128B : HInst<
28347 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28348 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28349 "$Vd32.tmp = vmem($Rx32++#$Ii):nt",
28350 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28351 let Inst{7-5} = 0b010;
28352 let Inst{13-11} = 0b000;
28353 let Inst{31-21} = 0b00101001010;
28354 let hasNewValue = 1;
28355 let opNewValue = 0;
28356 let addrMode = PostInc;
28357 let accessSize = Vector128Access;
28358 let isCVLoad = 1;
28359 let mayLoad = 1;
28360 let isNonTemporal = 1;
28361 let DecoderNamespace = "EXT_mmvec";
28362 let isCodeGenOnly = 1;
28363 let Constraints = "$Rx32 = $Rx32in";
28364 }
28365 def V6_vL32b_nt_tmp_ppu : HInst<
28366 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28367 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28368 "$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28369 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28370 let Inst{12-5} = 0b00000010;
28371 let Inst{31-21} = 0b00101011010;
28372 let hasNewValue = 1;
28373 let opNewValue = 0;
28374 let addrMode = PostInc;
28375 let accessSize = Vector64Access;
28376 let isCVLoad = 1;
28377 let mayLoad = 1;
28378 let isNonTemporal = 1;
28379 let DecoderNamespace = "EXT_mmvec";
28380 let Constraints = "$Rx32 = $Rx32in";
28381 }
28382 def V6_vL32b_nt_tmp_ppu_128B : HInst<
28383 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28384 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28385 "$Vd32.tmp = vmem($Rx32++$Mu2):nt",
28386 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28387 let Inst{12-5} = 0b00000010;
28388 let Inst{31-21} = 0b00101011010;
28389 let hasNewValue = 1;
28390 let opNewValue = 0;
28391 let addrMode = PostInc;
28392 let accessSize = Vector128Access;
28393 let isCVLoad = 1;
28394 let mayLoad = 1;
28395 let isNonTemporal = 1;
28396 let DecoderNamespace = "EXT_mmvec";
28397 let isCodeGenOnly = 1;
28398 let Constraints = "$Rx32 = $Rx32in";
28399 }
28400 def V6_vL32b_nt_tmp_pred_ai : HInst<
28401 (outs VectorRegs:$Vd32),
28402 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28403 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28404 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28405 let Inst{7-5} = 0b110;
28406 let Inst{31-21} = 0b00101000110;
28407 let isPredicated = 1;
28408 let hasNewValue = 1;
28409 let opNewValue = 0;
28410 let addrMode = BaseImmOffset;
28411 let accessSize = Vector64Access;
28412 let isCVLoad = 1;
28413 let mayLoad = 1;
28414 let isNonTemporal = 1;
28415 let DecoderNamespace = "EXT_mmvec";
28416 }
28417 def V6_vL32b_nt_tmp_pred_ai_128B : HInst<
28418 (outs VectorRegs128B:$Vd32),
28419 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28420 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
28421 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28422 let Inst{7-5} = 0b110;
28423 let Inst{31-21} = 0b00101000110;
28424 let isPredicated = 1;
28425 let hasNewValue = 1;
28426 let opNewValue = 0;
28427 let addrMode = BaseImmOffset;
28428 let accessSize = Vector128Access;
28429 let isCVLoad = 1;
28430 let mayLoad = 1;
28431 let isNonTemporal = 1;
28432 let DecoderNamespace = "EXT_mmvec";
28433 let isCodeGenOnly = 1;
28434 }
28435 def V6_vL32b_nt_tmp_pred_pi : HInst<
28436 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28437 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28438 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28439 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28440 let Inst{7-5} = 0b110;
28441 let Inst{13-13} = 0b0;
28442 let Inst{31-21} = 0b00101001110;
28443 let isPredicated = 1;
28444 let hasNewValue = 1;
28445 let opNewValue = 0;
28446 let addrMode = PostInc;
28447 let accessSize = Vector64Access;
28448 let isCVLoad = 1;
28449 let mayLoad = 1;
28450 let isNonTemporal = 1;
28451 let DecoderNamespace = "EXT_mmvec";
28452 let Constraints = "$Rx32 = $Rx32in";
28453 }
28454 def V6_vL32b_nt_tmp_pred_pi_128B : HInst<
28455 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28456 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28457 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
28458 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28459 let Inst{7-5} = 0b110;
28460 let Inst{13-13} = 0b0;
28461 let Inst{31-21} = 0b00101001110;
28462 let isPredicated = 1;
28463 let hasNewValue = 1;
28464 let opNewValue = 0;
28465 let addrMode = PostInc;
28466 let accessSize = Vector128Access;
28467 let isCVLoad = 1;
28468 let mayLoad = 1;
28469 let isNonTemporal = 1;
28470 let DecoderNamespace = "EXT_mmvec";
28471 let isCodeGenOnly = 1;
28472 let Constraints = "$Rx32 = $Rx32in";
28473 }
28474 def V6_vL32b_nt_tmp_pred_ppu : HInst<
28475 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28476 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28477 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28478 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28479 let Inst{10-5} = 0b000110;
28480 let Inst{31-21} = 0b00101011110;
28481 let isPredicated = 1;
28482 let hasNewValue = 1;
28483 let opNewValue = 0;
28484 let addrMode = PostInc;
28485 let accessSize = Vector64Access;
28486 let isCVLoad = 1;
28487 let mayLoad = 1;
28488 let isNonTemporal = 1;
28489 let DecoderNamespace = "EXT_mmvec";
28490 let Constraints = "$Rx32 = $Rx32in";
28491 }
28492 def V6_vL32b_nt_tmp_pred_ppu_128B : HInst<
28493 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28494 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28495 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
28496 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28497 let Inst{10-5} = 0b000110;
28498 let Inst{31-21} = 0b00101011110;
28499 let isPredicated = 1;
28500 let hasNewValue = 1;
28501 let opNewValue = 0;
28502 let addrMode = PostInc;
28503 let accessSize = Vector128Access;
28504 let isCVLoad = 1;
28505 let mayLoad = 1;
28506 let isNonTemporal = 1;
28507 let DecoderNamespace = "EXT_mmvec";
28508 let isCodeGenOnly = 1;
28509 let Constraints = "$Rx32 = $Rx32in";
28510 }
28511 def V6_vL32b_pi : HInst<
28512 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28513 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28514 "$Vd32 = vmem($Rx32++#$Ii)",
28515 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28516 let Inst{7-5} = 0b000;
28517 let Inst{13-11} = 0b000;
28518 let Inst{31-21} = 0b00101001000;
28519 let hasNewValue = 1;
28520 let opNewValue = 0;
28521 let addrMode = PostInc;
28522 let accessSize = Vector64Access;
28523 let isCVLoad = 1;
28524 let mayLoad = 1;
28525 let isCVLoadable = 1;
28526 let DecoderNamespace = "EXT_mmvec";
28527 let Constraints = "$Rx32 = $Rx32in";
28528 }
28529 def V6_vL32b_pi_128B : HInst<
28530 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28531 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28532 "$Vd32 = vmem($Rx32++#$Ii)",
28533 tc_eb669007, TypeCVI_VM_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28534 let Inst{7-5} = 0b000;
28535 let Inst{13-11} = 0b000;
28536 let Inst{31-21} = 0b00101001000;
28537 let hasNewValue = 1;
28538 let opNewValue = 0;
28539 let addrMode = PostInc;
28540 let accessSize = Vector128Access;
28541 let isCVLoad = 1;
28542 let mayLoad = 1;
28543 let isCVLoadable = 1;
28544 let DecoderNamespace = "EXT_mmvec";
28545 let isCodeGenOnly = 1;
28546 let Constraints = "$Rx32 = $Rx32in";
28547 }
28548 def V6_vL32b_ppu : HInst<
28549 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28550 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28551 "$Vd32 = vmem($Rx32++$Mu2)",
28552 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28553 let Inst{12-5} = 0b00000000;
28554 let Inst{31-21} = 0b00101011000;
28555 let hasNewValue = 1;
28556 let opNewValue = 0;
28557 let addrMode = PostInc;
28558 let accessSize = Vector64Access;
28559 let isCVLoad = 1;
28560 let mayLoad = 1;
28561 let isCVLoadable = 1;
28562 let DecoderNamespace = "EXT_mmvec";
28563 let Constraints = "$Rx32 = $Rx32in";
28564 }
28565 def V6_vL32b_ppu_128B : HInst<
28566 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28567 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28568 "$Vd32 = vmem($Rx32++$Mu2)",
28569 tc_eb669007, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28570 let Inst{12-5} = 0b00000000;
28571 let Inst{31-21} = 0b00101011000;
28572 let hasNewValue = 1;
28573 let opNewValue = 0;
28574 let addrMode = PostInc;
28575 let accessSize = Vector128Access;
28576 let isCVLoad = 1;
28577 let mayLoad = 1;
28578 let isCVLoadable = 1;
28579 let DecoderNamespace = "EXT_mmvec";
28580 let isCodeGenOnly = 1;
28581 let Constraints = "$Rx32 = $Rx32in";
28582 }
28583 def V6_vL32b_pred_ai : HInst<
28584 (outs VectorRegs:$Vd32),
28585 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28586 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28587 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28588 let Inst{7-5} = 0b010;
28589 let Inst{31-21} = 0b00101000100;
28590 let isPredicated = 1;
28591 let hasNewValue = 1;
28592 let opNewValue = 0;
28593 let addrMode = BaseImmOffset;
28594 let accessSize = Vector64Access;
28595 let isCVLoad = 1;
28596 let mayLoad = 1;
28597 let DecoderNamespace = "EXT_mmvec";
28598 }
28599 def V6_vL32b_pred_ai_128B : HInst<
28600 (outs VectorRegs128B:$Vd32),
28601 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28602 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
28603 tc_5cbf490b, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28604 let Inst{7-5} = 0b010;
28605 let Inst{31-21} = 0b00101000100;
28606 let isPredicated = 1;
28607 let hasNewValue = 1;
28608 let opNewValue = 0;
28609 let addrMode = BaseImmOffset;
28610 let accessSize = Vector128Access;
28611 let isCVLoad = 1;
28612 let mayLoad = 1;
28613 let DecoderNamespace = "EXT_mmvec";
28614 let isCodeGenOnly = 1;
28615 }
28616 def V6_vL32b_pred_pi : HInst<
28617 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28618 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28619 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28620 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28621 let Inst{7-5} = 0b010;
28622 let Inst{13-13} = 0b0;
28623 let Inst{31-21} = 0b00101001100;
28624 let isPredicated = 1;
28625 let hasNewValue = 1;
28626 let opNewValue = 0;
28627 let addrMode = PostInc;
28628 let accessSize = Vector64Access;
28629 let isCVLoad = 1;
28630 let mayLoad = 1;
28631 let DecoderNamespace = "EXT_mmvec";
28632 let Constraints = "$Rx32 = $Rx32in";
28633 }
28634 def V6_vL32b_pred_pi_128B : HInst<
28635 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28636 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28637 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
28638 tc_da979fb3, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28639 let Inst{7-5} = 0b010;
28640 let Inst{13-13} = 0b0;
28641 let Inst{31-21} = 0b00101001100;
28642 let isPredicated = 1;
28643 let hasNewValue = 1;
28644 let opNewValue = 0;
28645 let addrMode = PostInc;
28646 let accessSize = Vector128Access;
28647 let isCVLoad = 1;
28648 let mayLoad = 1;
28649 let DecoderNamespace = "EXT_mmvec";
28650 let isCodeGenOnly = 1;
28651 let Constraints = "$Rx32 = $Rx32in";
28652 }
28653 def V6_vL32b_pred_ppu : HInst<
28654 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28655 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28656 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28657 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28658 let Inst{10-5} = 0b000010;
28659 let Inst{31-21} = 0b00101011100;
28660 let isPredicated = 1;
28661 let hasNewValue = 1;
28662 let opNewValue = 0;
28663 let addrMode = PostInc;
28664 let accessSize = Vector64Access;
28665 let isCVLoad = 1;
28666 let mayLoad = 1;
28667 let DecoderNamespace = "EXT_mmvec";
28668 let Constraints = "$Rx32 = $Rx32in";
28669 }
28670 def V6_vL32b_pred_ppu_128B : HInst<
28671 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28672 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28673 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
28674 tc_da979fb3, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28675 let Inst{10-5} = 0b000010;
28676 let Inst{31-21} = 0b00101011100;
28677 let isPredicated = 1;
28678 let hasNewValue = 1;
28679 let opNewValue = 0;
28680 let addrMode = PostInc;
28681 let accessSize = Vector128Access;
28682 let isCVLoad = 1;
28683 let mayLoad = 1;
28684 let DecoderNamespace = "EXT_mmvec";
28685 let isCodeGenOnly = 1;
28686 let Constraints = "$Rx32 = $Rx32in";
28687 }
28688 def V6_vL32b_tmp_ai : HInst<
28689 (outs VectorRegs:$Vd32),
28690 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28691 "$Vd32.tmp = vmem($Rt32+#$Ii)",
28692 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
28693 let Inst{7-5} = 0b010;
28694 let Inst{12-11} = 0b00;
28695 let Inst{31-21} = 0b00101000000;
28696 let hasNewValue = 1;
28697 let opNewValue = 0;
28698 let addrMode = BaseImmOffset;
28699 let accessSize = Vector64Access;
28700 let isCVLoad = 1;
28701 let mayLoad = 1;
28702 let DecoderNamespace = "EXT_mmvec";
28703 }
28704 def V6_vL32b_tmp_ai_128B : HInst<
28705 (outs VectorRegs128B:$Vd32),
28706 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28707 "$Vd32.tmp = vmem($Rt32+#$Ii)",
28708 tc_77a4c701, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[HasV60T,UseHVX]> {
28709 let Inst{7-5} = 0b010;
28710 let Inst{12-11} = 0b00;
28711 let Inst{31-21} = 0b00101000000;
28712 let hasNewValue = 1;
28713 let opNewValue = 0;
28714 let addrMode = BaseImmOffset;
28715 let accessSize = Vector128Access;
28716 let isCVLoad = 1;
28717 let mayLoad = 1;
28718 let DecoderNamespace = "EXT_mmvec";
28719 let isCodeGenOnly = 1;
28720 }
28721 def V6_vL32b_tmp_npred_ai : HInst<
28722 (outs VectorRegs:$Vd32),
28723 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28724 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28725 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28726 let Inst{7-5} = 0b111;
28727 let Inst{31-21} = 0b00101000100;
28728 let isPredicated = 1;
28729 let isPredicatedFalse = 1;
28730 let hasNewValue = 1;
28731 let opNewValue = 0;
28732 let addrMode = BaseImmOffset;
28733 let accessSize = Vector64Access;
28734 let isCVLoad = 1;
28735 let mayLoad = 1;
28736 let DecoderNamespace = "EXT_mmvec";
28737 }
28738 def V6_vL32b_tmp_npred_ai_128B : HInst<
28739 (outs VectorRegs128B:$Vd32),
28740 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28741 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28742 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28743 let Inst{7-5} = 0b111;
28744 let Inst{31-21} = 0b00101000100;
28745 let isPredicated = 1;
28746 let isPredicatedFalse = 1;
28747 let hasNewValue = 1;
28748 let opNewValue = 0;
28749 let addrMode = BaseImmOffset;
28750 let accessSize = Vector128Access;
28751 let isCVLoad = 1;
28752 let mayLoad = 1;
28753 let DecoderNamespace = "EXT_mmvec";
28754 let isCodeGenOnly = 1;
28755 }
28756 def V6_vL32b_tmp_npred_pi : HInst<
28757 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28758 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28759 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28760 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28761 let Inst{7-5} = 0b111;
28762 let Inst{13-13} = 0b0;
28763 let Inst{31-21} = 0b00101001100;
28764 let isPredicated = 1;
28765 let isPredicatedFalse = 1;
28766 let hasNewValue = 1;
28767 let opNewValue = 0;
28768 let addrMode = PostInc;
28769 let accessSize = Vector64Access;
28770 let isCVLoad = 1;
28771 let mayLoad = 1;
28772 let DecoderNamespace = "EXT_mmvec";
28773 let Constraints = "$Rx32 = $Rx32in";
28774 }
28775 def V6_vL32b_tmp_npred_pi_128B : HInst<
28776 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28777 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28778 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28779 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28780 let Inst{7-5} = 0b111;
28781 let Inst{13-13} = 0b0;
28782 let Inst{31-21} = 0b00101001100;
28783 let isPredicated = 1;
28784 let isPredicatedFalse = 1;
28785 let hasNewValue = 1;
28786 let opNewValue = 0;
28787 let addrMode = PostInc;
28788 let accessSize = Vector128Access;
28789 let isCVLoad = 1;
28790 let mayLoad = 1;
28791 let DecoderNamespace = "EXT_mmvec";
28792 let isCodeGenOnly = 1;
28793 let Constraints = "$Rx32 = $Rx32in";
28794 }
28795 def V6_vL32b_tmp_npred_ppu : HInst<
28796 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28797 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28798 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28799 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28800 let Inst{10-5} = 0b000111;
28801 let Inst{31-21} = 0b00101011100;
28802 let isPredicated = 1;
28803 let isPredicatedFalse = 1;
28804 let hasNewValue = 1;
28805 let opNewValue = 0;
28806 let addrMode = PostInc;
28807 let accessSize = Vector64Access;
28808 let isCVLoad = 1;
28809 let mayLoad = 1;
28810 let DecoderNamespace = "EXT_mmvec";
28811 let Constraints = "$Rx32 = $Rx32in";
28812 }
28813 def V6_vL32b_tmp_npred_ppu_128B : HInst<
28814 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28815 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28816 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28817 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28818 let Inst{10-5} = 0b000111;
28819 let Inst{31-21} = 0b00101011100;
28820 let isPredicated = 1;
28821 let isPredicatedFalse = 1;
28822 let hasNewValue = 1;
28823 let opNewValue = 0;
28824 let addrMode = PostInc;
28825 let accessSize = Vector128Access;
28826 let isCVLoad = 1;
28827 let mayLoad = 1;
28828 let DecoderNamespace = "EXT_mmvec";
28829 let isCodeGenOnly = 1;
28830 let Constraints = "$Rx32 = $Rx32in";
28831 }
28832 def V6_vL32b_tmp_pi : HInst<
28833 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28834 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28835 "$Vd32.tmp = vmem($Rx32++#$Ii)",
28836 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28837 let Inst{7-5} = 0b010;
28838 let Inst{13-11} = 0b000;
28839 let Inst{31-21} = 0b00101001000;
28840 let hasNewValue = 1;
28841 let opNewValue = 0;
28842 let addrMode = PostInc;
28843 let accessSize = Vector64Access;
28844 let isCVLoad = 1;
28845 let mayLoad = 1;
28846 let DecoderNamespace = "EXT_mmvec";
28847 let Constraints = "$Rx32 = $Rx32in";
28848 }
28849 def V6_vL32b_tmp_pi_128B : HInst<
28850 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28851 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28852 "$Vd32.tmp = vmem($Rx32++#$Ii)",
28853 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[HasV60T,UseHVX]> {
28854 let Inst{7-5} = 0b010;
28855 let Inst{13-11} = 0b000;
28856 let Inst{31-21} = 0b00101001000;
28857 let hasNewValue = 1;
28858 let opNewValue = 0;
28859 let addrMode = PostInc;
28860 let accessSize = Vector128Access;
28861 let isCVLoad = 1;
28862 let mayLoad = 1;
28863 let DecoderNamespace = "EXT_mmvec";
28864 let isCodeGenOnly = 1;
28865 let Constraints = "$Rx32 = $Rx32in";
28866 }
28867 def V6_vL32b_tmp_ppu : HInst<
28868 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28869 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28870 "$Vd32.tmp = vmem($Rx32++$Mu2)",
28871 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28872 let Inst{12-5} = 0b00000010;
28873 let Inst{31-21} = 0b00101011000;
28874 let hasNewValue = 1;
28875 let opNewValue = 0;
28876 let addrMode = PostInc;
28877 let accessSize = Vector64Access;
28878 let isCVLoad = 1;
28879 let mayLoad = 1;
28880 let DecoderNamespace = "EXT_mmvec";
28881 let Constraints = "$Rx32 = $Rx32in";
28882 }
28883 def V6_vL32b_tmp_ppu_128B : HInst<
28884 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28885 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28886 "$Vd32.tmp = vmem($Rx32++$Mu2)",
28887 tc_9c267309, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[HasV60T,UseHVX]> {
28888 let Inst{12-5} = 0b00000010;
28889 let Inst{31-21} = 0b00101011000;
28890 let hasNewValue = 1;
28891 let opNewValue = 0;
28892 let addrMode = PostInc;
28893 let accessSize = Vector128Access;
28894 let isCVLoad = 1;
28895 let mayLoad = 1;
28896 let DecoderNamespace = "EXT_mmvec";
28897 let isCodeGenOnly = 1;
28898 let Constraints = "$Rx32 = $Rx32in";
28899 }
28900 def V6_vL32b_tmp_pred_ai : HInst<
28901 (outs VectorRegs:$Vd32),
28902 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28903 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28904 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28905 let Inst{7-5} = 0b110;
28906 let Inst{31-21} = 0b00101000100;
28907 let isPredicated = 1;
28908 let hasNewValue = 1;
28909 let opNewValue = 0;
28910 let addrMode = BaseImmOffset;
28911 let accessSize = Vector64Access;
28912 let isCVLoad = 1;
28913 let mayLoad = 1;
28914 let DecoderNamespace = "EXT_mmvec";
28915 }
28916 def V6_vL32b_tmp_pred_ai_128B : HInst<
28917 (outs VectorRegs128B:$Vd32),
28918 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
28919 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
28920 tc_51cd3aab, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[HasV62T,UseHVX]> {
28921 let Inst{7-5} = 0b110;
28922 let Inst{31-21} = 0b00101000100;
28923 let isPredicated = 1;
28924 let hasNewValue = 1;
28925 let opNewValue = 0;
28926 let addrMode = BaseImmOffset;
28927 let accessSize = Vector128Access;
28928 let isCVLoad = 1;
28929 let mayLoad = 1;
28930 let DecoderNamespace = "EXT_mmvec";
28931 let isCodeGenOnly = 1;
28932 }
28933 def V6_vL32b_tmp_pred_pi : HInst<
28934 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28935 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28936 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28937 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28938 let Inst{7-5} = 0b110;
28939 let Inst{13-13} = 0b0;
28940 let Inst{31-21} = 0b00101001100;
28941 let isPredicated = 1;
28942 let hasNewValue = 1;
28943 let opNewValue = 0;
28944 let addrMode = PostInc;
28945 let accessSize = Vector64Access;
28946 let isCVLoad = 1;
28947 let mayLoad = 1;
28948 let DecoderNamespace = "EXT_mmvec";
28949 let Constraints = "$Rx32 = $Rx32in";
28950 }
28951 def V6_vL32b_tmp_pred_pi_128B : HInst<
28952 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28953 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
28954 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
28955 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[HasV62T,UseHVX]> {
28956 let Inst{7-5} = 0b110;
28957 let Inst{13-13} = 0b0;
28958 let Inst{31-21} = 0b00101001100;
28959 let isPredicated = 1;
28960 let hasNewValue = 1;
28961 let opNewValue = 0;
28962 let addrMode = PostInc;
28963 let accessSize = Vector128Access;
28964 let isCVLoad = 1;
28965 let mayLoad = 1;
28966 let DecoderNamespace = "EXT_mmvec";
28967 let isCodeGenOnly = 1;
28968 let Constraints = "$Rx32 = $Rx32in";
28969 }
28970 def V6_vL32b_tmp_pred_ppu : HInst<
28971 (outs VectorRegs:$Vd32, IntRegs:$Rx32),
28972 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28973 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28974 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28975 let Inst{10-5} = 0b000110;
28976 let Inst{31-21} = 0b00101011100;
28977 let isPredicated = 1;
28978 let hasNewValue = 1;
28979 let opNewValue = 0;
28980 let addrMode = PostInc;
28981 let accessSize = Vector64Access;
28982 let isCVLoad = 1;
28983 let mayLoad = 1;
28984 let DecoderNamespace = "EXT_mmvec";
28985 let Constraints = "$Rx32 = $Rx32in";
28986 }
28987 def V6_vL32b_tmp_pred_ppu_128B : HInst<
28988 (outs VectorRegs128B:$Vd32, IntRegs:$Rx32),
28989 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
28990 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
28991 tc_38208312, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[HasV62T,UseHVX]> {
28992 let Inst{10-5} = 0b000110;
28993 let Inst{31-21} = 0b00101011100;
28994 let isPredicated = 1;
28995 let hasNewValue = 1;
28996 let opNewValue = 0;
28997 let addrMode = PostInc;
28998 let accessSize = Vector128Access;
28999 let isCVLoad = 1;
29000 let mayLoad = 1;
29001 let DecoderNamespace = "EXT_mmvec";
29002 let isCodeGenOnly = 1;
29003 let Constraints = "$Rx32 = $Rx32in";
29004 }
29005 def V6_vS32Ub_ai : HInst<
29006 (outs),
29007 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29008 "vmemu($Rt32+#$Ii) = $Vs32",
29009 tc_354299ad, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29010 let Inst{7-5} = 0b111;
29011 let Inst{12-11} = 0b00;
29012 let Inst{31-21} = 0b00101000001;
29013 let addrMode = BaseImmOffset;
29014 let accessSize = Vector64Access;
29015 let mayStore = 1;
29016 let BaseOpcode = "V6_vS32Ub_ai";
29017 let isPredicable = 1;
29018 let DecoderNamespace = "EXT_mmvec";
29019 }
29020 def V6_vS32Ub_ai_128B : HInst<
29021 (outs),
29022 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29023 "vmemu($Rt32+#$Ii) = $Vs32",
29024 tc_354299ad, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29025 let Inst{7-5} = 0b111;
29026 let Inst{12-11} = 0b00;
29027 let Inst{31-21} = 0b00101000001;
29028 let addrMode = BaseImmOffset;
29029 let accessSize = Vector128Access;
29030 let mayStore = 1;
29031 let BaseOpcode = "V6_vS32Ub_ai_128B";
29032 let isPredicable = 1;
29033 let DecoderNamespace = "EXT_mmvec";
29034 let isCodeGenOnly = 1;
29035 }
29036 def V6_vS32Ub_npred_ai : HInst<
29037 (outs),
29038 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29039 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
29040 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29041 let Inst{7-5} = 0b111;
29042 let Inst{31-21} = 0b00101000101;
29043 let isPredicated = 1;
29044 let isPredicatedFalse = 1;
29045 let addrMode = BaseImmOffset;
29046 let accessSize = Vector64Access;
29047 let mayStore = 1;
29048 let BaseOpcode = "V6_vS32Ub_ai";
29049 let DecoderNamespace = "EXT_mmvec";
29050 }
29051 def V6_vS32Ub_npred_ai_128B : HInst<
29052 (outs),
29053 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29054 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
29055 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29056 let Inst{7-5} = 0b111;
29057 let Inst{31-21} = 0b00101000101;
29058 let isPredicated = 1;
29059 let isPredicatedFalse = 1;
29060 let addrMode = BaseImmOffset;
29061 let accessSize = Vector128Access;
29062 let mayStore = 1;
29063 let BaseOpcode = "V6_vS32Ub_ai_128B";
29064 let DecoderNamespace = "EXT_mmvec";
29065 let isCodeGenOnly = 1;
29066 }
29067 def V6_vS32Ub_npred_pi : HInst<
29068 (outs IntRegs:$Rx32),
29069 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
29070 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
29071 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29072 let Inst{7-5} = 0b111;
29073 let Inst{13-13} = 0b0;
29074 let Inst{31-21} = 0b00101001101;
29075 let isPredicated = 1;
29076 let isPredicatedFalse = 1;
29077 let addrMode = PostInc;
29078 let accessSize = Vector64Access;
29079 let mayStore = 1;
29080 let BaseOpcode = "V6_vS32Ub_pi";
29081 let DecoderNamespace = "EXT_mmvec";
29082 let Constraints = "$Rx32 = $Rx32in";
29083 }
29084 def V6_vS32Ub_npred_pi_128B : HInst<
29085 (outs IntRegs:$Rx32),
29086 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
29087 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
29088 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29089 let Inst{7-5} = 0b111;
29090 let Inst{13-13} = 0b0;
29091 let Inst{31-21} = 0b00101001101;
29092 let isPredicated = 1;
29093 let isPredicatedFalse = 1;
29094 let addrMode = PostInc;
29095 let accessSize = Vector128Access;
29096 let mayStore = 1;
29097 let BaseOpcode = "V6_vS32Ub_pi_128B";
29098 let DecoderNamespace = "EXT_mmvec";
29099 let isCodeGenOnly = 1;
29100 let Constraints = "$Rx32 = $Rx32in";
29101 }
29102 def V6_vS32Ub_npred_ppu : HInst<
29103 (outs IntRegs:$Rx32),
29104 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
29105 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
29106 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29107 let Inst{10-5} = 0b000111;
29108 let Inst{31-21} = 0b00101011101;
29109 let isPredicated = 1;
29110 let isPredicatedFalse = 1;
29111 let addrMode = PostInc;
29112 let accessSize = Vector64Access;
29113 let mayStore = 1;
29114 let BaseOpcode = "V6_vS32Ub_ppu";
29115 let DecoderNamespace = "EXT_mmvec";
29116 let Constraints = "$Rx32 = $Rx32in";
29117 }
29118 def V6_vS32Ub_npred_ppu_128B : HInst<
29119 (outs IntRegs:$Rx32),
29120 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
29121 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
29122 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29123 let Inst{10-5} = 0b000111;
29124 let Inst{31-21} = 0b00101011101;
29125 let isPredicated = 1;
29126 let isPredicatedFalse = 1;
29127 let addrMode = PostInc;
29128 let accessSize = Vector128Access;
29129 let mayStore = 1;
29130 let BaseOpcode = "V6_vS32Ub_ppu_128B";
29131 let DecoderNamespace = "EXT_mmvec";
29132 let isCodeGenOnly = 1;
29133 let Constraints = "$Rx32 = $Rx32in";
29134 }
29135 def V6_vS32Ub_pi : HInst<
29136 (outs IntRegs:$Rx32),
29137 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
29138 "vmemu($Rx32++#$Ii) = $Vs32",
29139 tc_7fa82b08, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
29140 let Inst{7-5} = 0b111;
29141 let Inst{13-11} = 0b000;
29142 let Inst{31-21} = 0b00101001001;
29143 let addrMode = PostInc;
29144 let accessSize = Vector64Access;
29145 let mayStore = 1;
29146 let BaseOpcode = "V6_vS32Ub_pi";
29147 let isPredicable = 1;
29148 let DecoderNamespace = "EXT_mmvec";
29149 let Constraints = "$Rx32 = $Rx32in";
29150 }
29151 def V6_vS32Ub_pi_128B : HInst<
29152 (outs IntRegs:$Rx32),
29153 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
29154 "vmemu($Rx32++#$Ii) = $Vs32",
29155 tc_7fa82b08, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
29156 let Inst{7-5} = 0b111;
29157 let Inst{13-11} = 0b000;
29158 let Inst{31-21} = 0b00101001001;
29159 let addrMode = PostInc;
29160 let accessSize = Vector128Access;
29161 let mayStore = 1;
29162 let BaseOpcode = "V6_vS32Ub_pi_128B";
29163 let isPredicable = 1;
29164 let DecoderNamespace = "EXT_mmvec";
29165 let isCodeGenOnly = 1;
29166 let Constraints = "$Rx32 = $Rx32in";
29167 }
29168 def V6_vS32Ub_ppu : HInst<
29169 (outs IntRegs:$Rx32),
29170 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
29171 "vmemu($Rx32++$Mu2) = $Vs32",
29172 tc_7fa82b08, TypeCVI_VM_STU>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
29173 let Inst{12-5} = 0b00000111;
29174 let Inst{31-21} = 0b00101011001;
29175 let addrMode = PostInc;
29176 let accessSize = Vector64Access;
29177 let mayStore = 1;
29178 let BaseOpcode = "V6_vS32Ub_ppu";
29179 let isPredicable = 1;
29180 let DecoderNamespace = "EXT_mmvec";
29181 let Constraints = "$Rx32 = $Rx32in";
29182 }
29183 def V6_vS32Ub_ppu_128B : HInst<
29184 (outs IntRegs:$Rx32),
29185 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
29186 "vmemu($Rx32++$Mu2) = $Vs32",
29187 tc_7fa82b08, TypeCVI_VM_STU>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
29188 let Inst{12-5} = 0b00000111;
29189 let Inst{31-21} = 0b00101011001;
29190 let addrMode = PostInc;
29191 let accessSize = Vector128Access;
29192 let mayStore = 1;
29193 let BaseOpcode = "V6_vS32Ub_ppu_128B";
29194 let isPredicable = 1;
29195 let DecoderNamespace = "EXT_mmvec";
29196 let isCodeGenOnly = 1;
29197 let Constraints = "$Rx32 = $Rx32in";
29198 }
29199 def V6_vS32Ub_pred_ai : HInst<
29200 (outs),
29201 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29202 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
29203 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29204 let Inst{7-5} = 0b110;
29205 let Inst{31-21} = 0b00101000101;
29206 let isPredicated = 1;
29207 let addrMode = BaseImmOffset;
29208 let accessSize = Vector64Access;
29209 let mayStore = 1;
29210 let BaseOpcode = "V6_vS32Ub_ai";
29211 let DecoderNamespace = "EXT_mmvec";
29212 }
29213 def V6_vS32Ub_pred_ai_128B : HInst<
29214 (outs),
29215 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29216 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
29217 tc_d642eff3, TypeCVI_VM_STU>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29218 let Inst{7-5} = 0b110;
29219 let Inst{31-21} = 0b00101000101;
29220 let isPredicated = 1;
29221 let addrMode = BaseImmOffset;
29222 let accessSize = Vector128Access;
29223 let mayStore = 1;
29224 let BaseOpcode = "V6_vS32Ub_ai_128B";
29225 let DecoderNamespace = "EXT_mmvec";
29226 let isCodeGenOnly = 1;
29227 }
29228 def V6_vS32Ub_pred_pi : HInst<
29229 (outs IntRegs:$Rx32),
29230 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
29231 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
29232 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29233 let Inst{7-5} = 0b110;
29234 let Inst{13-13} = 0b0;
29235 let Inst{31-21} = 0b00101001101;
29236 let isPredicated = 1;
29237 let addrMode = PostInc;
29238 let accessSize = Vector64Access;
29239 let mayStore = 1;
29240 let BaseOpcode = "V6_vS32Ub_pi";
29241 let DecoderNamespace = "EXT_mmvec";
29242 let Constraints = "$Rx32 = $Rx32in";
29243 }
29244 def V6_vS32Ub_pred_pi_128B : HInst<
29245 (outs IntRegs:$Rx32),
29246 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
29247 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
29248 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29249 let Inst{7-5} = 0b110;
29250 let Inst{13-13} = 0b0;
29251 let Inst{31-21} = 0b00101001101;
29252 let isPredicated = 1;
29253 let addrMode = PostInc;
29254 let accessSize = Vector128Access;
29255 let mayStore = 1;
29256 let BaseOpcode = "V6_vS32Ub_pi_128B";
29257 let DecoderNamespace = "EXT_mmvec";
29258 let isCodeGenOnly = 1;
29259 let Constraints = "$Rx32 = $Rx32in";
29260 }
29261 def V6_vS32Ub_pred_ppu : HInst<
29262 (outs IntRegs:$Rx32),
29263 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
29264 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
29265 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29266 let Inst{10-5} = 0b000110;
29267 let Inst{31-21} = 0b00101011101;
29268 let isPredicated = 1;
29269 let addrMode = PostInc;
29270 let accessSize = Vector64Access;
29271 let mayStore = 1;
29272 let BaseOpcode = "V6_vS32Ub_ppu";
29273 let DecoderNamespace = "EXT_mmvec";
29274 let Constraints = "$Rx32 = $Rx32in";
29275 }
29276 def V6_vS32Ub_pred_ppu_128B : HInst<
29277 (outs IntRegs:$Rx32),
29278 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
29279 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
29280 tc_6fd9ad30, TypeCVI_VM_STU>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29281 let Inst{10-5} = 0b000110;
29282 let Inst{31-21} = 0b00101011101;
29283 let isPredicated = 1;
29284 let addrMode = PostInc;
29285 let accessSize = Vector128Access;
29286 let mayStore = 1;
29287 let BaseOpcode = "V6_vS32Ub_ppu_128B";
29288 let DecoderNamespace = "EXT_mmvec";
29289 let isCodeGenOnly = 1;
29290 let Constraints = "$Rx32 = $Rx32in";
29291 }
29292 def V6_vS32b_ai : HInst<
29293 (outs),
29294 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29295 "vmem($Rt32+#$Ii) = $Vs32",
29296 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29297 let Inst{7-5} = 0b000;
29298 let Inst{12-11} = 0b00;
29299 let Inst{31-21} = 0b00101000001;
29300 let addrMode = BaseImmOffset;
29301 let accessSize = Vector64Access;
29302 let mayStore = 1;
29303 let BaseOpcode = "V6_vS32b_ai";
29304 let isNVStorable = 1;
29305 let isPredicable = 1;
29306 let DecoderNamespace = "EXT_mmvec";
29307 }
29308 def V6_vS32b_ai_128B : HInst<
29309 (outs),
29310 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29311 "vmem($Rt32+#$Ii) = $Vs32",
29312 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29313 let Inst{7-5} = 0b000;
29314 let Inst{12-11} = 0b00;
29315 let Inst{31-21} = 0b00101000001;
29316 let addrMode = BaseImmOffset;
29317 let accessSize = Vector128Access;
29318 let mayStore = 1;
29319 let BaseOpcode = "V6_vS32b_ai_128B";
29320 let isNVStorable = 1;
29321 let isPredicable = 1;
29322 let DecoderNamespace = "EXT_mmvec";
29323 let isCodeGenOnly = 1;
29324 }
29325 def V6_vS32b_new_ai : HInst<
29326 (outs),
29327 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
29328 "vmem($Rt32+#$Ii) = $Os8.new",
29329 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29330 let Inst{7-3} = 0b00100;
29331 let Inst{12-11} = 0b00;
29332 let Inst{31-21} = 0b00101000001;
29333 let addrMode = BaseImmOffset;
29334 let accessSize = Vector64Access;
29335 let isNVStore = 1;
29336 let CVINew = 1;
29337 let isNewValue = 1;
29338 let mayStore = 1;
29339 let BaseOpcode = "V6_vS32b_ai";
29340 let isPredicable = 1;
29341 let DecoderNamespace = "EXT_mmvec";
29342 let opNewValue = 2;
29343 }
29344 def V6_vS32b_new_ai_128B : HInst<
29345 (outs),
29346 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
29347 "vmem($Rt32+#$Ii) = $Os8.new",
29348 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29349 let Inst{7-3} = 0b00100;
29350 let Inst{12-11} = 0b00;
29351 let Inst{31-21} = 0b00101000001;
29352 let addrMode = BaseImmOffset;
29353 let accessSize = Vector128Access;
29354 let isNVStore = 1;
29355 let CVINew = 1;
29356 let isNewValue = 1;
29357 let mayStore = 1;
29358 let BaseOpcode = "V6_vS32b_ai_128B";
29359 let isPredicable = 1;
29360 let DecoderNamespace = "EXT_mmvec";
29361 let isCodeGenOnly = 1;
29362 let opNewValue = 2;
29363 }
29364 def V6_vS32b_new_npred_ai : HInst<
29365 (outs),
29366 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
29367 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29368 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29369 let Inst{7-3} = 0b01101;
29370 let Inst{31-21} = 0b00101000101;
29371 let isPredicated = 1;
29372 let isPredicatedFalse = 1;
29373 let addrMode = BaseImmOffset;
29374 let accessSize = Vector64Access;
29375 let isNVStore = 1;
29376 let CVINew = 1;
29377 let isNewValue = 1;
29378 let mayStore = 1;
29379 let BaseOpcode = "V6_vS32b_ai";
29380 let DecoderNamespace = "EXT_mmvec";
29381 let opNewValue = 3;
29382 }
29383 def V6_vS32b_new_npred_ai_128B : HInst<
29384 (outs),
29385 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
29386 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29387 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29388 let Inst{7-3} = 0b01101;
29389 let Inst{31-21} = 0b00101000101;
29390 let isPredicated = 1;
29391 let isPredicatedFalse = 1;
29392 let addrMode = BaseImmOffset;
29393 let accessSize = Vector128Access;
29394 let isNVStore = 1;
29395 let CVINew = 1;
29396 let isNewValue = 1;
29397 let mayStore = 1;
29398 let BaseOpcode = "V6_vS32b_ai_128B";
29399 let DecoderNamespace = "EXT_mmvec";
29400 let isCodeGenOnly = 1;
29401 let opNewValue = 3;
29402 }
29403 def V6_vS32b_new_npred_pi : HInst<
29404 (outs IntRegs:$Rx32),
29405 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
29406 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29407 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
29408 let Inst{7-3} = 0b01101;
29409 let Inst{13-13} = 0b0;
29410 let Inst{31-21} = 0b00101001101;
29411 let isPredicated = 1;
29412 let isPredicatedFalse = 1;
29413 let addrMode = PostInc;
29414 let accessSize = Vector64Access;
29415 let isNVStore = 1;
29416 let CVINew = 1;
29417 let isNewValue = 1;
29418 let mayStore = 1;
29419 let BaseOpcode = "V6_vS32b_pi";
29420 let DecoderNamespace = "EXT_mmvec";
29421 let opNewValue = 4;
29422 let Constraints = "$Rx32 = $Rx32in";
29423 }
29424 def V6_vS32b_new_npred_pi_128B : HInst<
29425 (outs IntRegs:$Rx32),
29426 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
29427 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29428 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
29429 let Inst{7-3} = 0b01101;
29430 let Inst{13-13} = 0b0;
29431 let Inst{31-21} = 0b00101001101;
29432 let isPredicated = 1;
29433 let isPredicatedFalse = 1;
29434 let addrMode = PostInc;
29435 let accessSize = Vector128Access;
29436 let isNVStore = 1;
29437 let CVINew = 1;
29438 let isNewValue = 1;
29439 let mayStore = 1;
29440 let BaseOpcode = "V6_vS32b_pi_128B";
29441 let DecoderNamespace = "EXT_mmvec";
29442 let isCodeGenOnly = 1;
29443 let opNewValue = 4;
29444 let Constraints = "$Rx32 = $Rx32in";
29445 }
29446 def V6_vS32b_new_npred_ppu : HInst<
29447 (outs IntRegs:$Rx32),
29448 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
29449 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29450 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
29451 let Inst{10-3} = 0b00001101;
29452 let Inst{31-21} = 0b00101011101;
29453 let isPredicated = 1;
29454 let isPredicatedFalse = 1;
29455 let addrMode = PostInc;
29456 let accessSize = Vector64Access;
29457 let isNVStore = 1;
29458 let CVINew = 1;
29459 let isNewValue = 1;
29460 let mayStore = 1;
29461 let BaseOpcode = "V6_vS32b_ppu";
29462 let DecoderNamespace = "EXT_mmvec";
29463 let opNewValue = 4;
29464 let Constraints = "$Rx32 = $Rx32in";
29465 }
29466 def V6_vS32b_new_npred_ppu_128B : HInst<
29467 (outs IntRegs:$Rx32),
29468 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
29469 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29470 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
29471 let Inst{10-3} = 0b00001101;
29472 let Inst{31-21} = 0b00101011101;
29473 let isPredicated = 1;
29474 let isPredicatedFalse = 1;
29475 let addrMode = PostInc;
29476 let accessSize = Vector128Access;
29477 let isNVStore = 1;
29478 let CVINew = 1;
29479 let isNewValue = 1;
29480 let mayStore = 1;
29481 let BaseOpcode = "V6_vS32b_ppu_128B";
29482 let DecoderNamespace = "EXT_mmvec";
29483 let isCodeGenOnly = 1;
29484 let opNewValue = 4;
29485 let Constraints = "$Rx32 = $Rx32in";
29486 }
29487 def V6_vS32b_new_pi : HInst<
29488 (outs IntRegs:$Rx32),
29489 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
29490 "vmem($Rx32++#$Ii) = $Os8.new",
29491 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
29492 let Inst{7-3} = 0b00100;
29493 let Inst{13-11} = 0b000;
29494 let Inst{31-21} = 0b00101001001;
29495 let addrMode = PostInc;
29496 let accessSize = Vector64Access;
29497 let isNVStore = 1;
29498 let CVINew = 1;
29499 let isNewValue = 1;
29500 let mayStore = 1;
29501 let BaseOpcode = "V6_vS32b_pi";
29502 let isPredicable = 1;
29503 let DecoderNamespace = "EXT_mmvec";
29504 let opNewValue = 3;
29505 let Constraints = "$Rx32 = $Rx32in";
29506 }
29507 def V6_vS32b_new_pi_128B : HInst<
29508 (outs IntRegs:$Rx32),
29509 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
29510 "vmem($Rx32++#$Ii) = $Os8.new",
29511 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
29512 let Inst{7-3} = 0b00100;
29513 let Inst{13-11} = 0b000;
29514 let Inst{31-21} = 0b00101001001;
29515 let addrMode = PostInc;
29516 let accessSize = Vector128Access;
29517 let isNVStore = 1;
29518 let CVINew = 1;
29519 let isNewValue = 1;
29520 let mayStore = 1;
29521 let BaseOpcode = "V6_vS32b_pi_128B";
29522 let isPredicable = 1;
29523 let DecoderNamespace = "EXT_mmvec";
29524 let isCodeGenOnly = 1;
29525 let opNewValue = 3;
29526 let Constraints = "$Rx32 = $Rx32in";
29527 }
29528 def V6_vS32b_new_ppu : HInst<
29529 (outs IntRegs:$Rx32),
29530 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
29531 "vmem($Rx32++$Mu2) = $Os8.new",
29532 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
29533 let Inst{12-3} = 0b0000000100;
29534 let Inst{31-21} = 0b00101011001;
29535 let addrMode = PostInc;
29536 let accessSize = Vector64Access;
29537 let isNVStore = 1;
29538 let CVINew = 1;
29539 let isNewValue = 1;
29540 let mayStore = 1;
29541 let BaseOpcode = "V6_vS32b_ppu";
29542 let isPredicable = 1;
29543 let DecoderNamespace = "EXT_mmvec";
29544 let opNewValue = 3;
29545 let Constraints = "$Rx32 = $Rx32in";
29546 }
29547 def V6_vS32b_new_ppu_128B : HInst<
29548 (outs IntRegs:$Rx32),
29549 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
29550 "vmem($Rx32++$Mu2) = $Os8.new",
29551 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
29552 let Inst{12-3} = 0b0000000100;
29553 let Inst{31-21} = 0b00101011001;
29554 let addrMode = PostInc;
29555 let accessSize = Vector128Access;
29556 let isNVStore = 1;
29557 let CVINew = 1;
29558 let isNewValue = 1;
29559 let mayStore = 1;
29560 let BaseOpcode = "V6_vS32b_ppu_128B";
29561 let isPredicable = 1;
29562 let DecoderNamespace = "EXT_mmvec";
29563 let isCodeGenOnly = 1;
29564 let opNewValue = 3;
29565 let Constraints = "$Rx32 = $Rx32in";
29566 }
29567 def V6_vS32b_new_pred_ai : HInst<
29568 (outs),
29569 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
29570 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29571 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29572 let Inst{7-3} = 0b01000;
29573 let Inst{31-21} = 0b00101000101;
29574 let isPredicated = 1;
29575 let addrMode = BaseImmOffset;
29576 let accessSize = Vector64Access;
29577 let isNVStore = 1;
29578 let CVINew = 1;
29579 let isNewValue = 1;
29580 let mayStore = 1;
29581 let BaseOpcode = "V6_vS32b_ai";
29582 let DecoderNamespace = "EXT_mmvec";
29583 let opNewValue = 3;
29584 }
29585 def V6_vS32b_new_pred_ai_128B : HInst<
29586 (outs),
29587 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
29588 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
29589 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29590 let Inst{7-3} = 0b01000;
29591 let Inst{31-21} = 0b00101000101;
29592 let isPredicated = 1;
29593 let addrMode = BaseImmOffset;
29594 let accessSize = Vector128Access;
29595 let isNVStore = 1;
29596 let CVINew = 1;
29597 let isNewValue = 1;
29598 let mayStore = 1;
29599 let BaseOpcode = "V6_vS32b_ai_128B";
29600 let DecoderNamespace = "EXT_mmvec";
29601 let isCodeGenOnly = 1;
29602 let opNewValue = 3;
29603 }
29604 def V6_vS32b_new_pred_pi : HInst<
29605 (outs IntRegs:$Rx32),
29606 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
29607 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29608 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
29609 let Inst{7-3} = 0b01000;
29610 let Inst{13-13} = 0b0;
29611 let Inst{31-21} = 0b00101001101;
29612 let isPredicated = 1;
29613 let addrMode = PostInc;
29614 let accessSize = Vector64Access;
29615 let isNVStore = 1;
29616 let CVINew = 1;
29617 let isNewValue = 1;
29618 let mayStore = 1;
29619 let BaseOpcode = "V6_vS32b_pi";
29620 let DecoderNamespace = "EXT_mmvec";
29621 let opNewValue = 4;
29622 let Constraints = "$Rx32 = $Rx32in";
29623 }
29624 def V6_vS32b_new_pred_pi_128B : HInst<
29625 (outs IntRegs:$Rx32),
29626 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
29627 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
29628 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
29629 let Inst{7-3} = 0b01000;
29630 let Inst{13-13} = 0b0;
29631 let Inst{31-21} = 0b00101001101;
29632 let isPredicated = 1;
29633 let addrMode = PostInc;
29634 let accessSize = Vector128Access;
29635 let isNVStore = 1;
29636 let CVINew = 1;
29637 let isNewValue = 1;
29638 let mayStore = 1;
29639 let BaseOpcode = "V6_vS32b_pi_128B";
29640 let DecoderNamespace = "EXT_mmvec";
29641 let isCodeGenOnly = 1;
29642 let opNewValue = 4;
29643 let Constraints = "$Rx32 = $Rx32in";
29644 }
29645 def V6_vS32b_new_pred_ppu : HInst<
29646 (outs IntRegs:$Rx32),
29647 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
29648 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29649 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
29650 let Inst{10-3} = 0b00001000;
29651 let Inst{31-21} = 0b00101011101;
29652 let isPredicated = 1;
29653 let addrMode = PostInc;
29654 let accessSize = Vector64Access;
29655 let isNVStore = 1;
29656 let CVINew = 1;
29657 let isNewValue = 1;
29658 let mayStore = 1;
29659 let BaseOpcode = "V6_vS32b_ppu";
29660 let DecoderNamespace = "EXT_mmvec";
29661 let opNewValue = 4;
29662 let Constraints = "$Rx32 = $Rx32in";
29663 }
29664 def V6_vS32b_new_pred_ppu_128B : HInst<
29665 (outs IntRegs:$Rx32),
29666 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
29667 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
29668 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
29669 let Inst{10-3} = 0b00001000;
29670 let Inst{31-21} = 0b00101011101;
29671 let isPredicated = 1;
29672 let addrMode = PostInc;
29673 let accessSize = Vector128Access;
29674 let isNVStore = 1;
29675 let CVINew = 1;
29676 let isNewValue = 1;
29677 let mayStore = 1;
29678 let BaseOpcode = "V6_vS32b_ppu_128B";
29679 let DecoderNamespace = "EXT_mmvec";
29680 let isCodeGenOnly = 1;
29681 let opNewValue = 4;
29682 let Constraints = "$Rx32 = $Rx32in";
29683 }
29684 def V6_vS32b_npred_ai : HInst<
29685 (outs),
29686 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29687 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
29688 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29689 let Inst{7-5} = 0b001;
29690 let Inst{31-21} = 0b00101000101;
29691 let isPredicated = 1;
29692 let isPredicatedFalse = 1;
29693 let addrMode = BaseImmOffset;
29694 let accessSize = Vector64Access;
29695 let mayStore = 1;
29696 let BaseOpcode = "V6_vS32b_ai";
29697 let isNVStorable = 1;
29698 let DecoderNamespace = "EXT_mmvec";
29699 }
29700 def V6_vS32b_npred_ai_128B : HInst<
29701 (outs),
29702 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29703 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
29704 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
29705 let Inst{7-5} = 0b001;
29706 let Inst{31-21} = 0b00101000101;
29707 let isPredicated = 1;
29708 let isPredicatedFalse = 1;
29709 let addrMode = BaseImmOffset;
29710 let accessSize = Vector128Access;
29711 let mayStore = 1;
29712 let BaseOpcode = "V6_vS32b_ai_128B";
29713 let isNVStorable = 1;
29714 let DecoderNamespace = "EXT_mmvec";
29715 let isCodeGenOnly = 1;
29716 }
29717 def V6_vS32b_npred_pi : HInst<
29718 (outs IntRegs:$Rx32),
29719 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
29720 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
29721 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29722 let Inst{7-5} = 0b001;
29723 let Inst{13-13} = 0b0;
29724 let Inst{31-21} = 0b00101001101;
29725 let isPredicated = 1;
29726 let isPredicatedFalse = 1;
29727 let addrMode = PostInc;
29728 let accessSize = Vector64Access;
29729 let mayStore = 1;
29730 let BaseOpcode = "V6_vS32b_pi";
29731 let isNVStorable = 1;
29732 let DecoderNamespace = "EXT_mmvec";
29733 let Constraints = "$Rx32 = $Rx32in";
29734 }
29735 def V6_vS32b_npred_pi_128B : HInst<
29736 (outs IntRegs:$Rx32),
29737 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
29738 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
29739 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
29740 let Inst{7-5} = 0b001;
29741 let Inst{13-13} = 0b0;
29742 let Inst{31-21} = 0b00101001101;
29743 let isPredicated = 1;
29744 let isPredicatedFalse = 1;
29745 let addrMode = PostInc;
29746 let accessSize = Vector128Access;
29747 let mayStore = 1;
29748 let BaseOpcode = "V6_vS32b_pi_128B";
29749 let isNVStorable = 1;
29750 let DecoderNamespace = "EXT_mmvec";
29751 let isCodeGenOnly = 1;
29752 let Constraints = "$Rx32 = $Rx32in";
29753 }
29754 def V6_vS32b_npred_ppu : HInst<
29755 (outs IntRegs:$Rx32),
29756 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
29757 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29758 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29759 let Inst{10-5} = 0b000001;
29760 let Inst{31-21} = 0b00101011101;
29761 let isPredicated = 1;
29762 let isPredicatedFalse = 1;
29763 let addrMode = PostInc;
29764 let accessSize = Vector64Access;
29765 let mayStore = 1;
29766 let BaseOpcode = "V6_vS32b_ppu";
29767 let isNVStorable = 1;
29768 let DecoderNamespace = "EXT_mmvec";
29769 let Constraints = "$Rx32 = $Rx32in";
29770 }
29771 def V6_vS32b_npred_ppu_128B : HInst<
29772 (outs IntRegs:$Rx32),
29773 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
29774 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
29775 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
29776 let Inst{10-5} = 0b000001;
29777 let Inst{31-21} = 0b00101011101;
29778 let isPredicated = 1;
29779 let isPredicatedFalse = 1;
29780 let addrMode = PostInc;
29781 let accessSize = Vector128Access;
29782 let mayStore = 1;
29783 let BaseOpcode = "V6_vS32b_ppu_128B";
29784 let isNVStorable = 1;
29785 let DecoderNamespace = "EXT_mmvec";
29786 let isCodeGenOnly = 1;
29787 let Constraints = "$Rx32 = $Rx32in";
29788 }
29789 def V6_vS32b_nqpred_ai : HInst<
29790 (outs),
29791 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29792 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29793 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
29794 let Inst{7-5} = 0b001;
29795 let Inst{31-21} = 0b00101000100;
29796 let addrMode = BaseImmOffset;
29797 let accessSize = Vector64Access;
29798 let mayStore = 1;
29799 let DecoderNamespace = "EXT_mmvec";
29800 }
29801 def V6_vS32b_nqpred_ai_128B : HInst<
29802 (outs),
29803 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29804 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
29805 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
29806 let Inst{7-5} = 0b001;
29807 let Inst{31-21} = 0b00101000100;
29808 let addrMode = BaseImmOffset;
29809 let accessSize = Vector128Access;
29810 let mayStore = 1;
29811 let DecoderNamespace = "EXT_mmvec";
29812 let isCodeGenOnly = 1;
29813 }
29814 def V6_vS32b_nqpred_pi : HInst<
29815 (outs IntRegs:$Rx32),
29816 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
29817 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29818 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
29819 let Inst{7-5} = 0b001;
29820 let Inst{13-13} = 0b0;
29821 let Inst{31-21} = 0b00101001100;
29822 let addrMode = PostInc;
29823 let accessSize = Vector64Access;
29824 let mayStore = 1;
29825 let DecoderNamespace = "EXT_mmvec";
29826 let Constraints = "$Rx32 = $Rx32in";
29827 }
29828 def V6_vS32b_nqpred_pi_128B : HInst<
29829 (outs IntRegs:$Rx32),
29830 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
29831 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
29832 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
29833 let Inst{7-5} = 0b001;
29834 let Inst{13-13} = 0b0;
29835 let Inst{31-21} = 0b00101001100;
29836 let addrMode = PostInc;
29837 let accessSize = Vector128Access;
29838 let mayStore = 1;
29839 let DecoderNamespace = "EXT_mmvec";
29840 let isCodeGenOnly = 1;
29841 let Constraints = "$Rx32 = $Rx32in";
29842 }
29843 def V6_vS32b_nqpred_ppu : HInst<
29844 (outs IntRegs:$Rx32),
29845 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
29846 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29847 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
29848 let Inst{10-5} = 0b000001;
29849 let Inst{31-21} = 0b00101011100;
29850 let addrMode = PostInc;
29851 let accessSize = Vector64Access;
29852 let mayStore = 1;
29853 let DecoderNamespace = "EXT_mmvec";
29854 let Constraints = "$Rx32 = $Rx32in";
29855 }
29856 def V6_vS32b_nqpred_ppu_128B : HInst<
29857 (outs IntRegs:$Rx32),
29858 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
29859 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
29860 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
29861 let Inst{10-5} = 0b000001;
29862 let Inst{31-21} = 0b00101011100;
29863 let addrMode = PostInc;
29864 let accessSize = Vector128Access;
29865 let mayStore = 1;
29866 let DecoderNamespace = "EXT_mmvec";
29867 let isCodeGenOnly = 1;
29868 let Constraints = "$Rx32 = $Rx32in";
29869 }
29870 def V6_vS32b_nt_ai : HInst<
29871 (outs),
29872 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
29873 "vmem($Rt32+#$Ii):nt = $Vs32",
29874 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29875 let Inst{7-5} = 0b000;
29876 let Inst{12-11} = 0b00;
29877 let Inst{31-21} = 0b00101000011;
29878 let addrMode = BaseImmOffset;
29879 let accessSize = Vector64Access;
29880 let isNonTemporal = 1;
29881 let mayStore = 1;
29882 let BaseOpcode = "V6_vS32b_ai";
29883 let isNVStorable = 1;
29884 let isPredicable = 1;
29885 let DecoderNamespace = "EXT_mmvec";
29886 }
29887 def V6_vS32b_nt_ai_128B : HInst<
29888 (outs),
29889 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
29890 "vmem($Rt32+#$Ii):nt = $Vs32",
29891 tc_e3748cdf, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29892 let Inst{7-5} = 0b000;
29893 let Inst{12-11} = 0b00;
29894 let Inst{31-21} = 0b00101000011;
29895 let addrMode = BaseImmOffset;
29896 let accessSize = Vector128Access;
29897 let isNonTemporal = 1;
29898 let mayStore = 1;
29899 let BaseOpcode = "V6_vS32b_ai_128B";
29900 let isNVStorable = 1;
29901 let isPredicable = 1;
29902 let DecoderNamespace = "EXT_mmvec";
29903 let isCodeGenOnly = 1;
29904 }
29905 def V6_vS32b_nt_new_ai : HInst<
29906 (outs),
29907 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
29908 "vmem($Rt32+#$Ii):nt = $Os8.new",
29909 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29910 let Inst{7-3} = 0b00100;
29911 let Inst{12-11} = 0b00;
29912 let Inst{31-21} = 0b00101000011;
29913 let addrMode = BaseImmOffset;
29914 let accessSize = Vector64Access;
29915 let isNVStore = 1;
29916 let CVINew = 1;
29917 let isNewValue = 1;
29918 let isNonTemporal = 1;
29919 let mayStore = 1;
29920 let BaseOpcode = "V6_vS32b_ai";
29921 let isPredicable = 1;
29922 let DecoderNamespace = "EXT_mmvec";
29923 let opNewValue = 2;
29924 }
29925 def V6_vS32b_nt_new_ai_128B : HInst<
29926 (outs),
29927 (ins IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
29928 "vmem($Rt32+#$Ii):nt = $Os8.new",
29929 tc_1b93bdc6, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[HasV60T,UseHVX]>, NewValueRel {
29930 let Inst{7-3} = 0b00100;
29931 let Inst{12-11} = 0b00;
29932 let Inst{31-21} = 0b00101000011;
29933 let addrMode = BaseImmOffset;
29934 let accessSize = Vector128Access;
29935 let isNVStore = 1;
29936 let CVINew = 1;
29937 let isNewValue = 1;
29938 let isNonTemporal = 1;
29939 let mayStore = 1;
29940 let BaseOpcode = "V6_vS32b_ai_128B";
29941 let isPredicable = 1;
29942 let DecoderNamespace = "EXT_mmvec";
29943 let isCodeGenOnly = 1;
29944 let opNewValue = 2;
29945 }
29946 def V6_vS32b_nt_new_npred_ai : HInst<
29947 (outs),
29948 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
29949 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29950 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29951 let Inst{7-3} = 0b01111;
29952 let Inst{31-21} = 0b00101000111;
29953 let isPredicated = 1;
29954 let isPredicatedFalse = 1;
29955 let addrMode = BaseImmOffset;
29956 let accessSize = Vector64Access;
29957 let isNVStore = 1;
29958 let CVINew = 1;
29959 let isNewValue = 1;
29960 let isNonTemporal = 1;
29961 let mayStore = 1;
29962 let BaseOpcode = "V6_vS32b_ai";
29963 let DecoderNamespace = "EXT_mmvec";
29964 let opNewValue = 3;
29965 }
29966 def V6_vS32b_nt_new_npred_ai_128B : HInst<
29967 (outs),
29968 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
29969 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
29970 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
29971 let Inst{7-3} = 0b01111;
29972 let Inst{31-21} = 0b00101000111;
29973 let isPredicated = 1;
29974 let isPredicatedFalse = 1;
29975 let addrMode = BaseImmOffset;
29976 let accessSize = Vector128Access;
29977 let isNVStore = 1;
29978 let CVINew = 1;
29979 let isNewValue = 1;
29980 let isNonTemporal = 1;
29981 let mayStore = 1;
29982 let BaseOpcode = "V6_vS32b_ai_128B";
29983 let DecoderNamespace = "EXT_mmvec";
29984 let isCodeGenOnly = 1;
29985 let opNewValue = 3;
29986 }
29987 def V6_vS32b_nt_new_npred_pi : HInst<
29988 (outs IntRegs:$Rx32),
29989 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
29990 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
29991 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
29992 let Inst{7-3} = 0b01111;
29993 let Inst{13-13} = 0b0;
29994 let Inst{31-21} = 0b00101001111;
29995 let isPredicated = 1;
29996 let isPredicatedFalse = 1;
29997 let addrMode = PostInc;
29998 let accessSize = Vector64Access;
29999 let isNVStore = 1;
30000 let CVINew = 1;
30001 let isNewValue = 1;
30002 let isNonTemporal = 1;
30003 let mayStore = 1;
30004 let BaseOpcode = "V6_vS32b_pi";
30005 let DecoderNamespace = "EXT_mmvec";
30006 let opNewValue = 4;
30007 let Constraints = "$Rx32 = $Rx32in";
30008 }
30009 def V6_vS32b_nt_new_npred_pi_128B : HInst<
30010 (outs IntRegs:$Rx32),
30011 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
30012 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
30013 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
30014 let Inst{7-3} = 0b01111;
30015 let Inst{13-13} = 0b0;
30016 let Inst{31-21} = 0b00101001111;
30017 let isPredicated = 1;
30018 let isPredicatedFalse = 1;
30019 let addrMode = PostInc;
30020 let accessSize = Vector128Access;
30021 let isNVStore = 1;
30022 let CVINew = 1;
30023 let isNewValue = 1;
30024 let isNonTemporal = 1;
30025 let mayStore = 1;
30026 let BaseOpcode = "V6_vS32b_pi_128B";
30027 let DecoderNamespace = "EXT_mmvec";
30028 let isCodeGenOnly = 1;
30029 let opNewValue = 4;
30030 let Constraints = "$Rx32 = $Rx32in";
30031 }
30032 def V6_vS32b_nt_new_npred_ppu : HInst<
30033 (outs IntRegs:$Rx32),
30034 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
30035 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
30036 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
30037 let Inst{10-3} = 0b00001111;
30038 let Inst{31-21} = 0b00101011111;
30039 let isPredicated = 1;
30040 let isPredicatedFalse = 1;
30041 let addrMode = PostInc;
30042 let accessSize = Vector64Access;
30043 let isNVStore = 1;
30044 let CVINew = 1;
30045 let isNewValue = 1;
30046 let isNonTemporal = 1;
30047 let mayStore = 1;
30048 let BaseOpcode = "V6_vS32b_ppu";
30049 let DecoderNamespace = "EXT_mmvec";
30050 let opNewValue = 4;
30051 let Constraints = "$Rx32 = $Rx32in";
30052 }
30053 def V6_vS32b_nt_new_npred_ppu_128B : HInst<
30054 (outs IntRegs:$Rx32),
30055 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
30056 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
30057 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
30058 let Inst{10-3} = 0b00001111;
30059 let Inst{31-21} = 0b00101011111;
30060 let isPredicated = 1;
30061 let isPredicatedFalse = 1;
30062 let addrMode = PostInc;
30063 let accessSize = Vector128Access;
30064 let isNVStore = 1;
30065 let CVINew = 1;
30066 let isNewValue = 1;
30067 let isNonTemporal = 1;
30068 let mayStore = 1;
30069 let BaseOpcode = "V6_vS32b_ppu_128B";
30070 let DecoderNamespace = "EXT_mmvec";
30071 let isCodeGenOnly = 1;
30072 let opNewValue = 4;
30073 let Constraints = "$Rx32 = $Rx32in";
30074 }
30075 def V6_vS32b_nt_new_pi : HInst<
30076 (outs IntRegs:$Rx32),
30077 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
30078 "vmem($Rx32++#$Ii):nt = $Os8.new",
30079 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
30080 let Inst{7-3} = 0b00100;
30081 let Inst{13-11} = 0b000;
30082 let Inst{31-21} = 0b00101001011;
30083 let addrMode = PostInc;
30084 let accessSize = Vector64Access;
30085 let isNVStore = 1;
30086 let CVINew = 1;
30087 let isNewValue = 1;
30088 let isNonTemporal = 1;
30089 let mayStore = 1;
30090 let BaseOpcode = "V6_vS32b_pi";
30091 let isPredicable = 1;
30092 let DecoderNamespace = "EXT_mmvec";
30093 let opNewValue = 3;
30094 let Constraints = "$Rx32 = $Rx32in";
30095 }
30096 def V6_vS32b_nt_new_pi_128B : HInst<
30097 (outs IntRegs:$Rx32),
30098 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
30099 "vmem($Rx32++#$Ii):nt = $Os8.new",
30100 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[HasV60T,UseHVX]>, NewValueRel {
30101 let Inst{7-3} = 0b00100;
30102 let Inst{13-11} = 0b000;
30103 let Inst{31-21} = 0b00101001011;
30104 let addrMode = PostInc;
30105 let accessSize = Vector128Access;
30106 let isNVStore = 1;
30107 let CVINew = 1;
30108 let isNewValue = 1;
30109 let isNonTemporal = 1;
30110 let mayStore = 1;
30111 let BaseOpcode = "V6_vS32b_pi_128B";
30112 let isPredicable = 1;
30113 let DecoderNamespace = "EXT_mmvec";
30114 let isCodeGenOnly = 1;
30115 let opNewValue = 3;
30116 let Constraints = "$Rx32 = $Rx32in";
30117 }
30118 def V6_vS32b_nt_new_ppu : HInst<
30119 (outs IntRegs:$Rx32),
30120 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
30121 "vmem($Rx32++$Mu2):nt = $Os8.new",
30122 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
30123 let Inst{12-3} = 0b0000000100;
30124 let Inst{31-21} = 0b00101011011;
30125 let addrMode = PostInc;
30126 let accessSize = Vector64Access;
30127 let isNVStore = 1;
30128 let CVINew = 1;
30129 let isNewValue = 1;
30130 let isNonTemporal = 1;
30131 let mayStore = 1;
30132 let BaseOpcode = "V6_vS32b_ppu";
30133 let isPredicable = 1;
30134 let DecoderNamespace = "EXT_mmvec";
30135 let opNewValue = 3;
30136 let Constraints = "$Rx32 = $Rx32in";
30137 }
30138 def V6_vS32b_nt_new_ppu_128B : HInst<
30139 (outs IntRegs:$Rx32),
30140 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
30141 "vmem($Rx32++$Mu2):nt = $Os8.new",
30142 tc_db5b9e2f, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[HasV60T,UseHVX]>, NewValueRel {
30143 let Inst{12-3} = 0b0000000100;
30144 let Inst{31-21} = 0b00101011011;
30145 let addrMode = PostInc;
30146 let accessSize = Vector128Access;
30147 let isNVStore = 1;
30148 let CVINew = 1;
30149 let isNewValue = 1;
30150 let isNonTemporal = 1;
30151 let mayStore = 1;
30152 let BaseOpcode = "V6_vS32b_ppu_128B";
30153 let isPredicable = 1;
30154 let DecoderNamespace = "EXT_mmvec";
30155 let isCodeGenOnly = 1;
30156 let opNewValue = 3;
30157 let Constraints = "$Rx32 = $Rx32in";
30158 }
30159 def V6_vS32b_nt_new_pred_ai : HInst<
30160 (outs),
30161 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Os8),
30162 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
30163 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
30164 let Inst{7-3} = 0b01010;
30165 let Inst{31-21} = 0b00101000111;
30166 let isPredicated = 1;
30167 let addrMode = BaseImmOffset;
30168 let accessSize = Vector64Access;
30169 let isNVStore = 1;
30170 let CVINew = 1;
30171 let isNewValue = 1;
30172 let isNonTemporal = 1;
30173 let mayStore = 1;
30174 let BaseOpcode = "V6_vS32b_ai";
30175 let DecoderNamespace = "EXT_mmvec";
30176 let opNewValue = 3;
30177 }
30178 def V6_vS32b_nt_new_pred_ai_128B : HInst<
30179 (outs),
30180 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Os8),
30181 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
30182 tc_d5090f3e, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[HasV60T,UseHVX]>, NewValueRel {
30183 let Inst{7-3} = 0b01010;
30184 let Inst{31-21} = 0b00101000111;
30185 let isPredicated = 1;
30186 let addrMode = BaseImmOffset;
30187 let accessSize = Vector128Access;
30188 let isNVStore = 1;
30189 let CVINew = 1;
30190 let isNewValue = 1;
30191 let isNonTemporal = 1;
30192 let mayStore = 1;
30193 let BaseOpcode = "V6_vS32b_ai_128B";
30194 let DecoderNamespace = "EXT_mmvec";
30195 let isCodeGenOnly = 1;
30196 let opNewValue = 3;
30197 }
30198 def V6_vS32b_nt_new_pred_pi : HInst<
30199 (outs IntRegs:$Rx32),
30200 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Os8),
30201 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
30202 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
30203 let Inst{7-3} = 0b01010;
30204 let Inst{13-13} = 0b0;
30205 let Inst{31-21} = 0b00101001111;
30206 let isPredicated = 1;
30207 let addrMode = PostInc;
30208 let accessSize = Vector64Access;
30209 let isNVStore = 1;
30210 let CVINew = 1;
30211 let isNewValue = 1;
30212 let isNonTemporal = 1;
30213 let mayStore = 1;
30214 let BaseOpcode = "V6_vS32b_pi";
30215 let DecoderNamespace = "EXT_mmvec";
30216 let opNewValue = 4;
30217 let Constraints = "$Rx32 = $Rx32in";
30218 }
30219 def V6_vS32b_nt_new_pred_pi_128B : HInst<
30220 (outs IntRegs:$Rx32),
30221 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Os8),
30222 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
30223 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[HasV60T,UseHVX]>, NewValueRel {
30224 let Inst{7-3} = 0b01010;
30225 let Inst{13-13} = 0b0;
30226 let Inst{31-21} = 0b00101001111;
30227 let isPredicated = 1;
30228 let addrMode = PostInc;
30229 let accessSize = Vector128Access;
30230 let isNVStore = 1;
30231 let CVINew = 1;
30232 let isNewValue = 1;
30233 let isNonTemporal = 1;
30234 let mayStore = 1;
30235 let BaseOpcode = "V6_vS32b_pi_128B";
30236 let DecoderNamespace = "EXT_mmvec";
30237 let isCodeGenOnly = 1;
30238 let opNewValue = 4;
30239 let Constraints = "$Rx32 = $Rx32in";
30240 }
30241 def V6_vS32b_nt_new_pred_ppu : HInst<
30242 (outs IntRegs:$Rx32),
30243 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Os8),
30244 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
30245 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
30246 let Inst{10-3} = 0b00001010;
30247 let Inst{31-21} = 0b00101011111;
30248 let isPredicated = 1;
30249 let addrMode = PostInc;
30250 let accessSize = Vector64Access;
30251 let isNVStore = 1;
30252 let CVINew = 1;
30253 let isNewValue = 1;
30254 let isNonTemporal = 1;
30255 let mayStore = 1;
30256 let BaseOpcode = "V6_vS32b_ppu";
30257 let DecoderNamespace = "EXT_mmvec";
30258 let opNewValue = 4;
30259 let Constraints = "$Rx32 = $Rx32in";
30260 }
30261 def V6_vS32b_nt_new_pred_ppu_128B : HInst<
30262 (outs IntRegs:$Rx32),
30263 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Os8),
30264 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
30265 tc_8b6a873f, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[HasV60T,UseHVX]>, NewValueRel {
30266 let Inst{10-3} = 0b00001010;
30267 let Inst{31-21} = 0b00101011111;
30268 let isPredicated = 1;
30269 let addrMode = PostInc;
30270 let accessSize = Vector128Access;
30271 let isNVStore = 1;
30272 let CVINew = 1;
30273 let isNewValue = 1;
30274 let isNonTemporal = 1;
30275 let mayStore = 1;
30276 let BaseOpcode = "V6_vS32b_ppu_128B";
30277 let DecoderNamespace = "EXT_mmvec";
30278 let isCodeGenOnly = 1;
30279 let opNewValue = 4;
30280 let Constraints = "$Rx32 = $Rx32in";
30281 }
30282 def V6_vS32b_nt_npred_ai : HInst<
30283 (outs),
30284 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30285 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
30286 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30287 let Inst{7-5} = 0b001;
30288 let Inst{31-21} = 0b00101000111;
30289 let isPredicated = 1;
30290 let isPredicatedFalse = 1;
30291 let addrMode = BaseImmOffset;
30292 let accessSize = Vector64Access;
30293 let isNonTemporal = 1;
30294 let mayStore = 1;
30295 let BaseOpcode = "V6_vS32b_ai";
30296 let isNVStorable = 1;
30297 let DecoderNamespace = "EXT_mmvec";
30298 }
30299 def V6_vS32b_nt_npred_ai_128B : HInst<
30300 (outs),
30301 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30302 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
30303 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30304 let Inst{7-5} = 0b001;
30305 let Inst{31-21} = 0b00101000111;
30306 let isPredicated = 1;
30307 let isPredicatedFalse = 1;
30308 let addrMode = BaseImmOffset;
30309 let accessSize = Vector128Access;
30310 let isNonTemporal = 1;
30311 let mayStore = 1;
30312 let BaseOpcode = "V6_vS32b_ai_128B";
30313 let isNVStorable = 1;
30314 let DecoderNamespace = "EXT_mmvec";
30315 let isCodeGenOnly = 1;
30316 }
30317 def V6_vS32b_nt_npred_pi : HInst<
30318 (outs IntRegs:$Rx32),
30319 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30320 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
30321 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
30322 let Inst{7-5} = 0b001;
30323 let Inst{13-13} = 0b0;
30324 let Inst{31-21} = 0b00101001111;
30325 let isPredicated = 1;
30326 let isPredicatedFalse = 1;
30327 let addrMode = PostInc;
30328 let accessSize = Vector64Access;
30329 let isNonTemporal = 1;
30330 let mayStore = 1;
30331 let BaseOpcode = "V6_vS32b_pi";
30332 let isNVStorable = 1;
30333 let DecoderNamespace = "EXT_mmvec";
30334 let Constraints = "$Rx32 = $Rx32in";
30335 }
30336 def V6_vS32b_nt_npred_pi_128B : HInst<
30337 (outs IntRegs:$Rx32),
30338 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30339 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
30340 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
30341 let Inst{7-5} = 0b001;
30342 let Inst{13-13} = 0b0;
30343 let Inst{31-21} = 0b00101001111;
30344 let isPredicated = 1;
30345 let isPredicatedFalse = 1;
30346 let addrMode = PostInc;
30347 let accessSize = Vector128Access;
30348 let isNonTemporal = 1;
30349 let mayStore = 1;
30350 let BaseOpcode = "V6_vS32b_pi_128B";
30351 let isNVStorable = 1;
30352 let DecoderNamespace = "EXT_mmvec";
30353 let isCodeGenOnly = 1;
30354 let Constraints = "$Rx32 = $Rx32in";
30355 }
30356 def V6_vS32b_nt_npred_ppu : HInst<
30357 (outs IntRegs:$Rx32),
30358 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30359 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
30360 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
30361 let Inst{10-5} = 0b000001;
30362 let Inst{31-21} = 0b00101011111;
30363 let isPredicated = 1;
30364 let isPredicatedFalse = 1;
30365 let addrMode = PostInc;
30366 let accessSize = Vector64Access;
30367 let isNonTemporal = 1;
30368 let mayStore = 1;
30369 let BaseOpcode = "V6_vS32b_ppu";
30370 let isNVStorable = 1;
30371 let DecoderNamespace = "EXT_mmvec";
30372 let Constraints = "$Rx32 = $Rx32in";
30373 }
30374 def V6_vS32b_nt_npred_ppu_128B : HInst<
30375 (outs IntRegs:$Rx32),
30376 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30377 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
30378 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
30379 let Inst{10-5} = 0b000001;
30380 let Inst{31-21} = 0b00101011111;
30381 let isPredicated = 1;
30382 let isPredicatedFalse = 1;
30383 let addrMode = PostInc;
30384 let accessSize = Vector128Access;
30385 let isNonTemporal = 1;
30386 let mayStore = 1;
30387 let BaseOpcode = "V6_vS32b_ppu_128B";
30388 let isNVStorable = 1;
30389 let DecoderNamespace = "EXT_mmvec";
30390 let isCodeGenOnly = 1;
30391 let Constraints = "$Rx32 = $Rx32in";
30392 }
30393 def V6_vS32b_nt_nqpred_ai : HInst<
30394 (outs),
30395 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30396 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
30397 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30398 let Inst{7-5} = 0b001;
30399 let Inst{31-21} = 0b00101000110;
30400 let addrMode = BaseImmOffset;
30401 let accessSize = Vector64Access;
30402 let isNonTemporal = 1;
30403 let mayStore = 1;
30404 let DecoderNamespace = "EXT_mmvec";
30405 }
30406 def V6_vS32b_nt_nqpred_ai_128B : HInst<
30407 (outs),
30408 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30409 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
30410 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30411 let Inst{7-5} = 0b001;
30412 let Inst{31-21} = 0b00101000110;
30413 let addrMode = BaseImmOffset;
30414 let accessSize = Vector128Access;
30415 let isNonTemporal = 1;
30416 let mayStore = 1;
30417 let DecoderNamespace = "EXT_mmvec";
30418 let isCodeGenOnly = 1;
30419 }
30420 def V6_vS32b_nt_nqpred_pi : HInst<
30421 (outs IntRegs:$Rx32),
30422 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30423 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
30424 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30425 let Inst{7-5} = 0b001;
30426 let Inst{13-13} = 0b0;
30427 let Inst{31-21} = 0b00101001110;
30428 let addrMode = PostInc;
30429 let accessSize = Vector64Access;
30430 let isNonTemporal = 1;
30431 let mayStore = 1;
30432 let DecoderNamespace = "EXT_mmvec";
30433 let Constraints = "$Rx32 = $Rx32in";
30434 }
30435 def V6_vS32b_nt_nqpred_pi_128B : HInst<
30436 (outs IntRegs:$Rx32),
30437 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30438 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
30439 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30440 let Inst{7-5} = 0b001;
30441 let Inst{13-13} = 0b0;
30442 let Inst{31-21} = 0b00101001110;
30443 let addrMode = PostInc;
30444 let accessSize = Vector128Access;
30445 let isNonTemporal = 1;
30446 let mayStore = 1;
30447 let DecoderNamespace = "EXT_mmvec";
30448 let isCodeGenOnly = 1;
30449 let Constraints = "$Rx32 = $Rx32in";
30450 }
30451 def V6_vS32b_nt_nqpred_ppu : HInst<
30452 (outs IntRegs:$Rx32),
30453 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30454 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
30455 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30456 let Inst{10-5} = 0b000001;
30457 let Inst{31-21} = 0b00101011110;
30458 let addrMode = PostInc;
30459 let accessSize = Vector64Access;
30460 let isNonTemporal = 1;
30461 let mayStore = 1;
30462 let DecoderNamespace = "EXT_mmvec";
30463 let Constraints = "$Rx32 = $Rx32in";
30464 }
30465 def V6_vS32b_nt_nqpred_ppu_128B : HInst<
30466 (outs IntRegs:$Rx32),
30467 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30468 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
30469 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30470 let Inst{10-5} = 0b000001;
30471 let Inst{31-21} = 0b00101011110;
30472 let addrMode = PostInc;
30473 let accessSize = Vector128Access;
30474 let isNonTemporal = 1;
30475 let mayStore = 1;
30476 let DecoderNamespace = "EXT_mmvec";
30477 let isCodeGenOnly = 1;
30478 let Constraints = "$Rx32 = $Rx32in";
30479 }
30480 def V6_vS32b_nt_pi : HInst<
30481 (outs IntRegs:$Rx32),
30482 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30483 "vmem($Rx32++#$Ii):nt = $Vs32",
30484 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
30485 let Inst{7-5} = 0b000;
30486 let Inst{13-11} = 0b000;
30487 let Inst{31-21} = 0b00101001011;
30488 let addrMode = PostInc;
30489 let accessSize = Vector64Access;
30490 let isNonTemporal = 1;
30491 let mayStore = 1;
30492 let BaseOpcode = "V6_vS32b_pi";
30493 let isNVStorable = 1;
30494 let isPredicable = 1;
30495 let DecoderNamespace = "EXT_mmvec";
30496 let Constraints = "$Rx32 = $Rx32in";
30497 }
30498 def V6_vS32b_nt_pi_128B : HInst<
30499 (outs IntRegs:$Rx32),
30500 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30501 "vmem($Rx32++#$Ii):nt = $Vs32",
30502 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
30503 let Inst{7-5} = 0b000;
30504 let Inst{13-11} = 0b000;
30505 let Inst{31-21} = 0b00101001011;
30506 let addrMode = PostInc;
30507 let accessSize = Vector128Access;
30508 let isNonTemporal = 1;
30509 let mayStore = 1;
30510 let BaseOpcode = "V6_vS32b_pi_128B";
30511 let isNVStorable = 1;
30512 let isPredicable = 1;
30513 let DecoderNamespace = "EXT_mmvec";
30514 let isCodeGenOnly = 1;
30515 let Constraints = "$Rx32 = $Rx32in";
30516 }
30517 def V6_vS32b_nt_ppu : HInst<
30518 (outs IntRegs:$Rx32),
30519 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30520 "vmem($Rx32++$Mu2):nt = $Vs32",
30521 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
30522 let Inst{12-5} = 0b00000000;
30523 let Inst{31-21} = 0b00101011011;
30524 let addrMode = PostInc;
30525 let accessSize = Vector64Access;
30526 let isNonTemporal = 1;
30527 let mayStore = 1;
30528 let BaseOpcode = "V6_vS32b_ppu";
30529 let isNVStorable = 1;
30530 let isPredicable = 1;
30531 let DecoderNamespace = "EXT_mmvec";
30532 let Constraints = "$Rx32 = $Rx32in";
30533 }
30534 def V6_vS32b_nt_ppu_128B : HInst<
30535 (outs IntRegs:$Rx32),
30536 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30537 "vmem($Rx32++$Mu2):nt = $Vs32",
30538 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
30539 let Inst{12-5} = 0b00000000;
30540 let Inst{31-21} = 0b00101011011;
30541 let addrMode = PostInc;
30542 let accessSize = Vector128Access;
30543 let isNonTemporal = 1;
30544 let mayStore = 1;
30545 let BaseOpcode = "V6_vS32b_ppu_128B";
30546 let isNVStorable = 1;
30547 let isPredicable = 1;
30548 let DecoderNamespace = "EXT_mmvec";
30549 let isCodeGenOnly = 1;
30550 let Constraints = "$Rx32 = $Rx32in";
30551 }
30552 def V6_vS32b_nt_pred_ai : HInst<
30553 (outs),
30554 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30555 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
30556 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30557 let Inst{7-5} = 0b000;
30558 let Inst{31-21} = 0b00101000111;
30559 let isPredicated = 1;
30560 let addrMode = BaseImmOffset;
30561 let accessSize = Vector64Access;
30562 let isNonTemporal = 1;
30563 let mayStore = 1;
30564 let BaseOpcode = "V6_vS32b_ai";
30565 let isNVStorable = 1;
30566 let DecoderNamespace = "EXT_mmvec";
30567 }
30568 def V6_vS32b_nt_pred_ai_128B : HInst<
30569 (outs),
30570 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30571 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
30572 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30573 let Inst{7-5} = 0b000;
30574 let Inst{31-21} = 0b00101000111;
30575 let isPredicated = 1;
30576 let addrMode = BaseImmOffset;
30577 let accessSize = Vector128Access;
30578 let isNonTemporal = 1;
30579 let mayStore = 1;
30580 let BaseOpcode = "V6_vS32b_ai_128B";
30581 let isNVStorable = 1;
30582 let DecoderNamespace = "EXT_mmvec";
30583 let isCodeGenOnly = 1;
30584 }
30585 def V6_vS32b_nt_pred_pi : HInst<
30586 (outs IntRegs:$Rx32),
30587 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30588 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
30589 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
30590 let Inst{7-5} = 0b000;
30591 let Inst{13-13} = 0b0;
30592 let Inst{31-21} = 0b00101001111;
30593 let isPredicated = 1;
30594 let addrMode = PostInc;
30595 let accessSize = Vector64Access;
30596 let isNonTemporal = 1;
30597 let mayStore = 1;
30598 let BaseOpcode = "V6_vS32b_pi";
30599 let isNVStorable = 1;
30600 let DecoderNamespace = "EXT_mmvec";
30601 let Constraints = "$Rx32 = $Rx32in";
30602 }
30603 def V6_vS32b_nt_pred_pi_128B : HInst<
30604 (outs IntRegs:$Rx32),
30605 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30606 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
30607 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]>, NewValueRel {
30608 let Inst{7-5} = 0b000;
30609 let Inst{13-13} = 0b0;
30610 let Inst{31-21} = 0b00101001111;
30611 let isPredicated = 1;
30612 let addrMode = PostInc;
30613 let accessSize = Vector128Access;
30614 let isNonTemporal = 1;
30615 let mayStore = 1;
30616 let BaseOpcode = "V6_vS32b_pi_128B";
30617 let isNVStorable = 1;
30618 let DecoderNamespace = "EXT_mmvec";
30619 let isCodeGenOnly = 1;
30620 let Constraints = "$Rx32 = $Rx32in";
30621 }
30622 def V6_vS32b_nt_pred_ppu : HInst<
30623 (outs IntRegs:$Rx32),
30624 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30625 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
30626 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
30627 let Inst{10-5} = 0b000000;
30628 let Inst{31-21} = 0b00101011111;
30629 let isPredicated = 1;
30630 let addrMode = PostInc;
30631 let accessSize = Vector64Access;
30632 let isNonTemporal = 1;
30633 let mayStore = 1;
30634 let BaseOpcode = "V6_vS32b_ppu";
30635 let isNVStorable = 1;
30636 let DecoderNamespace = "EXT_mmvec";
30637 let Constraints = "$Rx32 = $Rx32in";
30638 }
30639 def V6_vS32b_nt_pred_ppu_128B : HInst<
30640 (outs IntRegs:$Rx32),
30641 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30642 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
30643 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]>, NewValueRel {
30644 let Inst{10-5} = 0b000000;
30645 let Inst{31-21} = 0b00101011111;
30646 let isPredicated = 1;
30647 let addrMode = PostInc;
30648 let accessSize = Vector128Access;
30649 let isNonTemporal = 1;
30650 let mayStore = 1;
30651 let BaseOpcode = "V6_vS32b_ppu_128B";
30652 let isNVStorable = 1;
30653 let DecoderNamespace = "EXT_mmvec";
30654 let isCodeGenOnly = 1;
30655 let Constraints = "$Rx32 = $Rx32in";
30656 }
30657 def V6_vS32b_nt_qpred_ai : HInst<
30658 (outs),
30659 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30660 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
30661 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30662 let Inst{7-5} = 0b000;
30663 let Inst{31-21} = 0b00101000110;
30664 let addrMode = BaseImmOffset;
30665 let accessSize = Vector64Access;
30666 let isNonTemporal = 1;
30667 let mayStore = 1;
30668 let DecoderNamespace = "EXT_mmvec";
30669 }
30670 def V6_vS32b_nt_qpred_ai_128B : HInst<
30671 (outs),
30672 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30673 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
30674 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30675 let Inst{7-5} = 0b000;
30676 let Inst{31-21} = 0b00101000110;
30677 let addrMode = BaseImmOffset;
30678 let accessSize = Vector128Access;
30679 let isNonTemporal = 1;
30680 let mayStore = 1;
30681 let DecoderNamespace = "EXT_mmvec";
30682 let isCodeGenOnly = 1;
30683 }
30684 def V6_vS32b_nt_qpred_pi : HInst<
30685 (outs IntRegs:$Rx32),
30686 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30687 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
30688 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30689 let Inst{7-5} = 0b000;
30690 let Inst{13-13} = 0b0;
30691 let Inst{31-21} = 0b00101001110;
30692 let addrMode = PostInc;
30693 let accessSize = Vector64Access;
30694 let isNonTemporal = 1;
30695 let mayStore = 1;
30696 let DecoderNamespace = "EXT_mmvec";
30697 let Constraints = "$Rx32 = $Rx32in";
30698 }
30699 def V6_vS32b_nt_qpred_pi_128B : HInst<
30700 (outs IntRegs:$Rx32),
30701 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30702 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
30703 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30704 let Inst{7-5} = 0b000;
30705 let Inst{13-13} = 0b0;
30706 let Inst{31-21} = 0b00101001110;
30707 let addrMode = PostInc;
30708 let accessSize = Vector128Access;
30709 let isNonTemporal = 1;
30710 let mayStore = 1;
30711 let DecoderNamespace = "EXT_mmvec";
30712 let isCodeGenOnly = 1;
30713 let Constraints = "$Rx32 = $Rx32in";
30714 }
30715 def V6_vS32b_nt_qpred_ppu : HInst<
30716 (outs IntRegs:$Rx32),
30717 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30718 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
30719 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30720 let Inst{10-5} = 0b000000;
30721 let Inst{31-21} = 0b00101011110;
30722 let addrMode = PostInc;
30723 let accessSize = Vector64Access;
30724 let isNonTemporal = 1;
30725 let mayStore = 1;
30726 let DecoderNamespace = "EXT_mmvec";
30727 let Constraints = "$Rx32 = $Rx32in";
30728 }
30729 def V6_vS32b_nt_qpred_ppu_128B : HInst<
30730 (outs IntRegs:$Rx32),
30731 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30732 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
30733 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30734 let Inst{10-5} = 0b000000;
30735 let Inst{31-21} = 0b00101011110;
30736 let addrMode = PostInc;
30737 let accessSize = Vector128Access;
30738 let isNonTemporal = 1;
30739 let mayStore = 1;
30740 let DecoderNamespace = "EXT_mmvec";
30741 let isCodeGenOnly = 1;
30742 let Constraints = "$Rx32 = $Rx32in";
30743 }
30744 def V6_vS32b_pi : HInst<
30745 (outs IntRegs:$Rx32),
30746 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30747 "vmem($Rx32++#$Ii) = $Vs32",
30748 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
30749 let Inst{7-5} = 0b000;
30750 let Inst{13-11} = 0b000;
30751 let Inst{31-21} = 0b00101001001;
30752 let addrMode = PostInc;
30753 let accessSize = Vector64Access;
30754 let mayStore = 1;
30755 let BaseOpcode = "V6_vS32b_pi";
30756 let isNVStorable = 1;
30757 let isPredicable = 1;
30758 let DecoderNamespace = "EXT_mmvec";
30759 let Constraints = "$Rx32 = $Rx32in";
30760 }
30761 def V6_vS32b_pi_128B : HInst<
30762 (outs IntRegs:$Rx32),
30763 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30764 "vmem($Rx32++#$Ii) = $Vs32",
30765 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[HasV60T,UseHVX]>, NewValueRel {
30766 let Inst{7-5} = 0b000;
30767 let Inst{13-11} = 0b000;
30768 let Inst{31-21} = 0b00101001001;
30769 let addrMode = PostInc;
30770 let accessSize = Vector128Access;
30771 let mayStore = 1;
30772 let BaseOpcode = "V6_vS32b_pi_128B";
30773 let isNVStorable = 1;
30774 let isPredicable = 1;
30775 let DecoderNamespace = "EXT_mmvec";
30776 let isCodeGenOnly = 1;
30777 let Constraints = "$Rx32 = $Rx32in";
30778 }
30779 def V6_vS32b_ppu : HInst<
30780 (outs IntRegs:$Rx32),
30781 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30782 "vmem($Rx32++$Mu2) = $Vs32",
30783 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
30784 let Inst{12-5} = 0b00000000;
30785 let Inst{31-21} = 0b00101011001;
30786 let addrMode = PostInc;
30787 let accessSize = Vector64Access;
30788 let mayStore = 1;
30789 let isNVStorable = 1;
30790 let isPredicable = 1;
30791 let DecoderNamespace = "EXT_mmvec";
30792 let Constraints = "$Rx32 = $Rx32in";
30793 }
30794 def V6_vS32b_ppu_128B : HInst<
30795 (outs IntRegs:$Rx32),
30796 (ins IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30797 "vmem($Rx32++$Mu2) = $Vs32",
30798 tc_a4c9df3b, TypeCVI_VM_ST>, Enc_d15d19, Requires<[HasV60T,UseHVX]>, NewValueRel {
30799 let Inst{12-5} = 0b00000000;
30800 let Inst{31-21} = 0b00101011001;
30801 let addrMode = PostInc;
30802 let accessSize = Vector128Access;
30803 let mayStore = 1;
30804 let isNVStorable = 1;
30805 let isPredicable = 1;
30806 let DecoderNamespace = "EXT_mmvec";
30807 let isCodeGenOnly = 1;
30808 let Constraints = "$Rx32 = $Rx32in";
30809 }
30810 def V6_vS32b_pred_ai : HInst<
30811 (outs),
30812 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30813 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
30814 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30815 let Inst{7-5} = 0b000;
30816 let Inst{31-21} = 0b00101000101;
30817 let isPredicated = 1;
30818 let addrMode = BaseImmOffset;
30819 let accessSize = Vector64Access;
30820 let mayStore = 1;
30821 let BaseOpcode = "V6_vS32b_ai";
30822 let isNVStorable = 1;
30823 let DecoderNamespace = "EXT_mmvec";
30824 }
30825 def V6_vS32b_pred_ai_128B : HInst<
30826 (outs),
30827 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30828 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
30829 tc_85d237e3, TypeCVI_VM_ST>, Enc_27b757, Requires<[HasV60T,UseHVX]>, NewValueRel {
30830 let Inst{7-5} = 0b000;
30831 let Inst{31-21} = 0b00101000101;
30832 let isPredicated = 1;
30833 let addrMode = BaseImmOffset;
30834 let accessSize = Vector128Access;
30835 let mayStore = 1;
30836 let BaseOpcode = "V6_vS32b_ai_128B";
30837 let isNVStorable = 1;
30838 let DecoderNamespace = "EXT_mmvec";
30839 let isCodeGenOnly = 1;
30840 }
30841 def V6_vS32b_pred_pi : HInst<
30842 (outs IntRegs:$Rx32),
30843 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30844 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
30845 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]> {
30846 let Inst{7-5} = 0b000;
30847 let Inst{13-13} = 0b0;
30848 let Inst{31-21} = 0b00101001101;
30849 let isPredicated = 1;
30850 let addrMode = PostInc;
30851 let accessSize = Vector64Access;
30852 let mayStore = 1;
30853 let BaseOpcode = "V6_vS32b_pi";
30854 let isNVStorable = 1;
30855 let DecoderNamespace = "EXT_mmvec";
30856 let Constraints = "$Rx32 = $Rx32in";
30857 }
30858 def V6_vS32b_pred_pi_128B : HInst<
30859 (outs IntRegs:$Rx32),
30860 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30861 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
30862 tc_0317c6ca, TypeCVI_VM_ST>, Enc_865390, Requires<[HasV60T,UseHVX]> {
30863 let Inst{7-5} = 0b000;
30864 let Inst{13-13} = 0b0;
30865 let Inst{31-21} = 0b00101001101;
30866 let isPredicated = 1;
30867 let addrMode = PostInc;
30868 let accessSize = Vector128Access;
30869 let mayStore = 1;
30870 let BaseOpcode = "V6_vS32b_pi_128B";
30871 let isNVStorable = 1;
30872 let DecoderNamespace = "EXT_mmvec";
30873 let isCodeGenOnly = 1;
30874 let Constraints = "$Rx32 = $Rx32in";
30875 }
30876 def V6_vS32b_pred_ppu : HInst<
30877 (outs IntRegs:$Rx32),
30878 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30879 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
30880 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]> {
30881 let Inst{10-5} = 0b000000;
30882 let Inst{31-21} = 0b00101011101;
30883 let isPredicated = 1;
30884 let addrMode = PostInc;
30885 let accessSize = Vector64Access;
30886 let mayStore = 1;
30887 let isNVStorable = 1;
30888 let DecoderNamespace = "EXT_mmvec";
30889 let Constraints = "$Rx32 = $Rx32in";
30890 }
30891 def V6_vS32b_pred_ppu_128B : HInst<
30892 (outs IntRegs:$Rx32),
30893 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30894 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
30895 tc_0317c6ca, TypeCVI_VM_ST>, Enc_1ef990, Requires<[HasV60T,UseHVX]> {
30896 let Inst{10-5} = 0b000000;
30897 let Inst{31-21} = 0b00101011101;
30898 let isPredicated = 1;
30899 let addrMode = PostInc;
30900 let accessSize = Vector128Access;
30901 let mayStore = 1;
30902 let isNVStorable = 1;
30903 let DecoderNamespace = "EXT_mmvec";
30904 let isCodeGenOnly = 1;
30905 let Constraints = "$Rx32 = $Rx32in";
30906 }
30907 def V6_vS32b_qpred_ai : HInst<
30908 (outs),
30909 (ins VecPredRegs:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs:$Vs32),
30910 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
30911 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30912 let Inst{7-5} = 0b000;
30913 let Inst{31-21} = 0b00101000100;
30914 let addrMode = BaseImmOffset;
30915 let accessSize = Vector64Access;
30916 let mayStore = 1;
30917 let DecoderNamespace = "EXT_mmvec";
30918 }
30919 def V6_vS32b_qpred_ai_128B : HInst<
30920 (outs),
30921 (ins VecPredRegs128B:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, VectorRegs128B:$Vs32),
30922 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
30923 tc_aedb9f9e, TypeCVI_VM_ST>, Enc_2ea740, Requires<[HasV60T,UseHVX]> {
30924 let Inst{7-5} = 0b000;
30925 let Inst{31-21} = 0b00101000100;
30926 let addrMode = BaseImmOffset;
30927 let accessSize = Vector128Access;
30928 let mayStore = 1;
30929 let DecoderNamespace = "EXT_mmvec";
30930 let isCodeGenOnly = 1;
30931 }
30932 def V6_vS32b_qpred_pi : HInst<
30933 (outs IntRegs:$Rx32),
30934 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs:$Vs32),
30935 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
30936 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30937 let Inst{7-5} = 0b000;
30938 let Inst{13-13} = 0b0;
30939 let Inst{31-21} = 0b00101001100;
30940 let addrMode = PostInc;
30941 let accessSize = Vector64Access;
30942 let mayStore = 1;
30943 let DecoderNamespace = "EXT_mmvec";
30944 let Constraints = "$Rx32 = $Rx32in";
30945 }
30946 def V6_vS32b_qpred_pi_128B : HInst<
30947 (outs IntRegs:$Rx32),
30948 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, VectorRegs128B:$Vs32),
30949 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
30950 tc_99093773, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[HasV60T,UseHVX]> {
30951 let Inst{7-5} = 0b000;
30952 let Inst{13-13} = 0b0;
30953 let Inst{31-21} = 0b00101001100;
30954 let addrMode = PostInc;
30955 let accessSize = Vector128Access;
30956 let mayStore = 1;
30957 let DecoderNamespace = "EXT_mmvec";
30958 let isCodeGenOnly = 1;
30959 let Constraints = "$Rx32 = $Rx32in";
30960 }
30961 def V6_vS32b_qpred_ppu : HInst<
30962 (outs IntRegs:$Rx32),
30963 (ins VecPredRegs:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs:$Vs32),
30964 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
30965 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30966 let Inst{10-5} = 0b000000;
30967 let Inst{31-21} = 0b00101011100;
30968 let addrMode = PostInc;
30969 let accessSize = Vector64Access;
30970 let mayStore = 1;
30971 let DecoderNamespace = "EXT_mmvec";
30972 let Constraints = "$Rx32 = $Rx32in";
30973 }
30974 def V6_vS32b_qpred_ppu_128B : HInst<
30975 (outs IntRegs:$Rx32),
30976 (ins VecPredRegs128B:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, VectorRegs128B:$Vs32),
30977 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
30978 tc_99093773, TypeCVI_VM_ST>, Enc_4dff07, Requires<[HasV60T,UseHVX]> {
30979 let Inst{10-5} = 0b000000;
30980 let Inst{31-21} = 0b00101011100;
30981 let addrMode = PostInc;
30982 let accessSize = Vector128Access;
30983 let mayStore = 1;
30984 let DecoderNamespace = "EXT_mmvec";
30985 let isCodeGenOnly = 1;
30986 let Constraints = "$Rx32 = $Rx32in";
30987 }
30988 def V6_vabsdiffh : HInst<
30989 (outs VectorRegs:$Vd32),
30990 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
30991 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
30992 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
30993 let Inst{7-5} = 0b001;
30994 let Inst{13-13} = 0b0;
30995 let Inst{31-21} = 0b00011100110;
30996 let hasNewValue = 1;
30997 let opNewValue = 0;
30998 let DecoderNamespace = "EXT_mmvec";
30999 }
31000 def V6_vabsdiffh_128B : HInst<
31001 (outs VectorRegs128B:$Vd32),
31002 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31003 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
31004 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31005 let Inst{7-5} = 0b001;
31006 let Inst{13-13} = 0b0;
31007 let Inst{31-21} = 0b00011100110;
31008 let hasNewValue = 1;
31009 let opNewValue = 0;
31010 let DecoderNamespace = "EXT_mmvec";
31011 let isCodeGenOnly = 1;
31012 }
31013 def V6_vabsdiffh_alt : HInst<
31014 (outs VectorRegs:$Vd32),
31015 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31016 "$Vd32 = vabsdiffh($Vu32,$Vv32)",
31017 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31018 let hasNewValue = 1;
31019 let opNewValue = 0;
31020 let isPseudo = 1;
31021 let isCodeGenOnly = 1;
31022 let DecoderNamespace = "EXT_mmvec";
31023 }
31024 def V6_vabsdiffh_alt_128B : HInst<
31025 (outs VectorRegs128B:$Vd32),
31026 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31027 "$Vd32 = vabsdiffh($Vu32,$Vv32)",
31028 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31029 let hasNewValue = 1;
31030 let opNewValue = 0;
31031 let isPseudo = 1;
31032 let isCodeGenOnly = 1;
31033 let DecoderNamespace = "EXT_mmvec";
31034 let isCodeGenOnly = 1;
31035 }
31036 def V6_vabsdiffub : HInst<
31037 (outs VectorRegs:$Vd32),
31038 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31039 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
31040 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31041 let Inst{7-5} = 0b000;
31042 let Inst{13-13} = 0b0;
31043 let Inst{31-21} = 0b00011100110;
31044 let hasNewValue = 1;
31045 let opNewValue = 0;
31046 let DecoderNamespace = "EXT_mmvec";
31047 }
31048 def V6_vabsdiffub_128B : HInst<
31049 (outs VectorRegs128B:$Vd32),
31050 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31051 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
31052 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31053 let Inst{7-5} = 0b000;
31054 let Inst{13-13} = 0b0;
31055 let Inst{31-21} = 0b00011100110;
31056 let hasNewValue = 1;
31057 let opNewValue = 0;
31058 let DecoderNamespace = "EXT_mmvec";
31059 let isCodeGenOnly = 1;
31060 }
31061 def V6_vabsdiffub_alt : HInst<
31062 (outs VectorRegs:$Vd32),
31063 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31064 "$Vd32 = vabsdiffub($Vu32,$Vv32)",
31065 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31066 let hasNewValue = 1;
31067 let opNewValue = 0;
31068 let isPseudo = 1;
31069 let isCodeGenOnly = 1;
31070 let DecoderNamespace = "EXT_mmvec";
31071 }
31072 def V6_vabsdiffub_alt_128B : HInst<
31073 (outs VectorRegs128B:$Vd32),
31074 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31075 "$Vd32 = vabsdiffub($Vu32,$Vv32)",
31076 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31077 let hasNewValue = 1;
31078 let opNewValue = 0;
31079 let isPseudo = 1;
31080 let isCodeGenOnly = 1;
31081 let DecoderNamespace = "EXT_mmvec";
31082 let isCodeGenOnly = 1;
31083 }
31084 def V6_vabsdiffuh : HInst<
31085 (outs VectorRegs:$Vd32),
31086 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31087 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
31088 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31089 let Inst{7-5} = 0b010;
31090 let Inst{13-13} = 0b0;
31091 let Inst{31-21} = 0b00011100110;
31092 let hasNewValue = 1;
31093 let opNewValue = 0;
31094 let DecoderNamespace = "EXT_mmvec";
31095 }
31096 def V6_vabsdiffuh_128B : HInst<
31097 (outs VectorRegs128B:$Vd32),
31098 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31099 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
31100 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31101 let Inst{7-5} = 0b010;
31102 let Inst{13-13} = 0b0;
31103 let Inst{31-21} = 0b00011100110;
31104 let hasNewValue = 1;
31105 let opNewValue = 0;
31106 let DecoderNamespace = "EXT_mmvec";
31107 let isCodeGenOnly = 1;
31108 }
31109 def V6_vabsdiffuh_alt : HInst<
31110 (outs VectorRegs:$Vd32),
31111 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31112 "$Vd32 = vabsdiffuh($Vu32,$Vv32)",
31113 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31114 let hasNewValue = 1;
31115 let opNewValue = 0;
31116 let isPseudo = 1;
31117 let isCodeGenOnly = 1;
31118 let DecoderNamespace = "EXT_mmvec";
31119 }
31120 def V6_vabsdiffuh_alt_128B : HInst<
31121 (outs VectorRegs128B:$Vd32),
31122 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31123 "$Vd32 = vabsdiffuh($Vu32,$Vv32)",
31124 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31125 let hasNewValue = 1;
31126 let opNewValue = 0;
31127 let isPseudo = 1;
31128 let isCodeGenOnly = 1;
31129 let DecoderNamespace = "EXT_mmvec";
31130 let isCodeGenOnly = 1;
31131 }
31132 def V6_vabsdiffw : HInst<
31133 (outs VectorRegs:$Vd32),
31134 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31135 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
31136 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31137 let Inst{7-5} = 0b011;
31138 let Inst{13-13} = 0b0;
31139 let Inst{31-21} = 0b00011100110;
31140 let hasNewValue = 1;
31141 let opNewValue = 0;
31142 let DecoderNamespace = "EXT_mmvec";
31143 }
31144 def V6_vabsdiffw_128B : HInst<
31145 (outs VectorRegs128B:$Vd32),
31146 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31147 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
31148 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31149 let Inst{7-5} = 0b011;
31150 let Inst{13-13} = 0b0;
31151 let Inst{31-21} = 0b00011100110;
31152 let hasNewValue = 1;
31153 let opNewValue = 0;
31154 let DecoderNamespace = "EXT_mmvec";
31155 let isCodeGenOnly = 1;
31156 }
31157 def V6_vabsdiffw_alt : HInst<
31158 (outs VectorRegs:$Vd32),
31159 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31160 "$Vd32 = vabsdiffw($Vu32,$Vv32)",
31161 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31162 let hasNewValue = 1;
31163 let opNewValue = 0;
31164 let isPseudo = 1;
31165 let isCodeGenOnly = 1;
31166 let DecoderNamespace = "EXT_mmvec";
31167 }
31168 def V6_vabsdiffw_alt_128B : HInst<
31169 (outs VectorRegs128B:$Vd32),
31170 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31171 "$Vd32 = vabsdiffw($Vu32,$Vv32)",
31172 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31173 let hasNewValue = 1;
31174 let opNewValue = 0;
31175 let isPseudo = 1;
31176 let isCodeGenOnly = 1;
31177 let DecoderNamespace = "EXT_mmvec";
31178 let isCodeGenOnly = 1;
31179 }
31180 def V6_vabsh : HInst<
31181 (outs VectorRegs:$Vd32),
31182 (ins VectorRegs:$Vu32),
31183 "$Vd32.h = vabs($Vu32.h)",
31184 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31185 let Inst{7-5} = 0b000;
31186 let Inst{13-13} = 0b0;
31187 let Inst{31-16} = 0b0001111000000000;
31188 let hasNewValue = 1;
31189 let opNewValue = 0;
31190 let DecoderNamespace = "EXT_mmvec";
31191 }
31192 def V6_vabsh_128B : HInst<
31193 (outs VectorRegs128B:$Vd32),
31194 (ins VectorRegs128B:$Vu32),
31195 "$Vd32.h = vabs($Vu32.h)",
31196 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31197 let Inst{7-5} = 0b000;
31198 let Inst{13-13} = 0b0;
31199 let Inst{31-16} = 0b0001111000000000;
31200 let hasNewValue = 1;
31201 let opNewValue = 0;
31202 let DecoderNamespace = "EXT_mmvec";
31203 let isCodeGenOnly = 1;
31204 }
31205 def V6_vabsh_alt : HInst<
31206 (outs VectorRegs:$Vd32),
31207 (ins VectorRegs:$Vu32),
31208 "$Vd32 = vabsh($Vu32)",
31209 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31210 let hasNewValue = 1;
31211 let opNewValue = 0;
31212 let isPseudo = 1;
31213 let isCodeGenOnly = 1;
31214 let DecoderNamespace = "EXT_mmvec";
31215 }
31216 def V6_vabsh_alt_128B : HInst<
31217 (outs VectorRegs128B:$Vd32),
31218 (ins VectorRegs128B:$Vu32),
31219 "$Vd32 = vabsh($Vu32)",
31220 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31221 let hasNewValue = 1;
31222 let opNewValue = 0;
31223 let isPseudo = 1;
31224 let isCodeGenOnly = 1;
31225 let DecoderNamespace = "EXT_mmvec";
31226 let isCodeGenOnly = 1;
31227 }
31228 def V6_vabsh_sat : HInst<
31229 (outs VectorRegs:$Vd32),
31230 (ins VectorRegs:$Vu32),
31231 "$Vd32.h = vabs($Vu32.h):sat",
31232 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31233 let Inst{7-5} = 0b001;
31234 let Inst{13-13} = 0b0;
31235 let Inst{31-16} = 0b0001111000000000;
31236 let hasNewValue = 1;
31237 let opNewValue = 0;
31238 let DecoderNamespace = "EXT_mmvec";
31239 }
31240 def V6_vabsh_sat_128B : HInst<
31241 (outs VectorRegs128B:$Vd32),
31242 (ins VectorRegs128B:$Vu32),
31243 "$Vd32.h = vabs($Vu32.h):sat",
31244 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31245 let Inst{7-5} = 0b001;
31246 let Inst{13-13} = 0b0;
31247 let Inst{31-16} = 0b0001111000000000;
31248 let hasNewValue = 1;
31249 let opNewValue = 0;
31250 let DecoderNamespace = "EXT_mmvec";
31251 let isCodeGenOnly = 1;
31252 }
31253 def V6_vabsh_sat_alt : HInst<
31254 (outs VectorRegs:$Vd32),
31255 (ins VectorRegs:$Vu32),
31256 "$Vd32 = vabsh($Vu32):sat",
31257 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31258 let hasNewValue = 1;
31259 let opNewValue = 0;
31260 let isPseudo = 1;
31261 let isCodeGenOnly = 1;
31262 let DecoderNamespace = "EXT_mmvec";
31263 }
31264 def V6_vabsh_sat_alt_128B : HInst<
31265 (outs VectorRegs128B:$Vd32),
31266 (ins VectorRegs128B:$Vu32),
31267 "$Vd32 = vabsh($Vu32):sat",
31268 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31269 let hasNewValue = 1;
31270 let opNewValue = 0;
31271 let isPseudo = 1;
31272 let isCodeGenOnly = 1;
31273 let DecoderNamespace = "EXT_mmvec";
31274 let isCodeGenOnly = 1;
31275 }
31276 def V6_vabsw : HInst<
31277 (outs VectorRegs:$Vd32),
31278 (ins VectorRegs:$Vu32),
31279 "$Vd32.w = vabs($Vu32.w)",
31280 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31281 let Inst{7-5} = 0b010;
31282 let Inst{13-13} = 0b0;
31283 let Inst{31-16} = 0b0001111000000000;
31284 let hasNewValue = 1;
31285 let opNewValue = 0;
31286 let DecoderNamespace = "EXT_mmvec";
31287 }
31288 def V6_vabsw_128B : HInst<
31289 (outs VectorRegs128B:$Vd32),
31290 (ins VectorRegs128B:$Vu32),
31291 "$Vd32.w = vabs($Vu32.w)",
31292 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31293 let Inst{7-5} = 0b010;
31294 let Inst{13-13} = 0b0;
31295 let Inst{31-16} = 0b0001111000000000;
31296 let hasNewValue = 1;
31297 let opNewValue = 0;
31298 let DecoderNamespace = "EXT_mmvec";
31299 let isCodeGenOnly = 1;
31300 }
31301 def V6_vabsw_alt : HInst<
31302 (outs VectorRegs:$Vd32),
31303 (ins VectorRegs:$Vu32),
31304 "$Vd32 = vabsw($Vu32)",
31305 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31306 let hasNewValue = 1;
31307 let opNewValue = 0;
31308 let isPseudo = 1;
31309 let isCodeGenOnly = 1;
31310 let DecoderNamespace = "EXT_mmvec";
31311 }
31312 def V6_vabsw_alt_128B : HInst<
31313 (outs VectorRegs128B:$Vd32),
31314 (ins VectorRegs128B:$Vu32),
31315 "$Vd32 = vabsw($Vu32)",
31316 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31317 let hasNewValue = 1;
31318 let opNewValue = 0;
31319 let isPseudo = 1;
31320 let isCodeGenOnly = 1;
31321 let DecoderNamespace = "EXT_mmvec";
31322 let isCodeGenOnly = 1;
31323 }
31324 def V6_vabsw_sat : HInst<
31325 (outs VectorRegs:$Vd32),
31326 (ins VectorRegs:$Vu32),
31327 "$Vd32.w = vabs($Vu32.w):sat",
31328 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31329 let Inst{7-5} = 0b011;
31330 let Inst{13-13} = 0b0;
31331 let Inst{31-16} = 0b0001111000000000;
31332 let hasNewValue = 1;
31333 let opNewValue = 0;
31334 let DecoderNamespace = "EXT_mmvec";
31335 }
31336 def V6_vabsw_sat_128B : HInst<
31337 (outs VectorRegs128B:$Vd32),
31338 (ins VectorRegs128B:$Vu32),
31339 "$Vd32.w = vabs($Vu32.w):sat",
31340 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
31341 let Inst{7-5} = 0b011;
31342 let Inst{13-13} = 0b0;
31343 let Inst{31-16} = 0b0001111000000000;
31344 let hasNewValue = 1;
31345 let opNewValue = 0;
31346 let DecoderNamespace = "EXT_mmvec";
31347 let isCodeGenOnly = 1;
31348 }
31349 def V6_vabsw_sat_alt : HInst<
31350 (outs VectorRegs:$Vd32),
31351 (ins VectorRegs:$Vu32),
31352 "$Vd32 = vabsw($Vu32):sat",
31353 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31354 let hasNewValue = 1;
31355 let opNewValue = 0;
31356 let isPseudo = 1;
31357 let isCodeGenOnly = 1;
31358 let DecoderNamespace = "EXT_mmvec";
31359 }
31360 def V6_vabsw_sat_alt_128B : HInst<
31361 (outs VectorRegs128B:$Vd32),
31362 (ins VectorRegs128B:$Vu32),
31363 "$Vd32 = vabsw($Vu32):sat",
31364 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31365 let hasNewValue = 1;
31366 let opNewValue = 0;
31367 let isPseudo = 1;
31368 let isCodeGenOnly = 1;
31369 let DecoderNamespace = "EXT_mmvec";
31370 let isCodeGenOnly = 1;
31371 }
31372 def V6_vaddb : HInst<
31373 (outs VectorRegs:$Vd32),
31374 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31375 "$Vd32.b = vadd($Vu32.b,$Vv32.b)",
31376 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31377 let Inst{7-5} = 0b110;
31378 let Inst{13-13} = 0b0;
31379 let Inst{31-21} = 0b00011111101;
31380 let hasNewValue = 1;
31381 let opNewValue = 0;
31382 let DecoderNamespace = "EXT_mmvec";
31383 }
31384 def V6_vaddb_128B : HInst<
31385 (outs VectorRegs128B:$Vd32),
31386 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31387 "$Vd32.b = vadd($Vu32.b,$Vv32.b)",
31388 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31389 let Inst{7-5} = 0b110;
31390 let Inst{13-13} = 0b0;
31391 let Inst{31-21} = 0b00011111101;
31392 let hasNewValue = 1;
31393 let opNewValue = 0;
31394 let DecoderNamespace = "EXT_mmvec";
31395 let isCodeGenOnly = 1;
31396 }
31397 def V6_vaddb_alt : HInst<
31398 (outs VectorRegs:$Vd32),
31399 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31400 "$Vd32 = vaddb($Vu32,$Vv32)",
31401 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31402 let hasNewValue = 1;
31403 let opNewValue = 0;
31404 let isPseudo = 1;
31405 let isCodeGenOnly = 1;
31406 let DecoderNamespace = "EXT_mmvec";
31407 }
31408 def V6_vaddb_alt_128B : HInst<
31409 (outs VectorRegs128B:$Vd32),
31410 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31411 "$Vd32 = vaddb($Vu32,$Vv32)",
31412 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31413 let hasNewValue = 1;
31414 let opNewValue = 0;
31415 let isPseudo = 1;
31416 let isCodeGenOnly = 1;
31417 let DecoderNamespace = "EXT_mmvec";
31418 let isCodeGenOnly = 1;
31419 }
31420 def V6_vaddb_dv : HInst<
31421 (outs VecDblRegs:$Vdd32),
31422 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31423 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
31424 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
31425 let Inst{7-5} = 0b100;
31426 let Inst{13-13} = 0b0;
31427 let Inst{31-21} = 0b00011100011;
31428 let hasNewValue = 1;
31429 let opNewValue = 0;
31430 let DecoderNamespace = "EXT_mmvec";
31431 }
31432 def V6_vaddb_dv_128B : HInst<
31433 (outs VecDblRegs128B:$Vdd32),
31434 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31435 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
31436 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
31437 let Inst{7-5} = 0b100;
31438 let Inst{13-13} = 0b0;
31439 let Inst{31-21} = 0b00011100011;
31440 let hasNewValue = 1;
31441 let opNewValue = 0;
31442 let DecoderNamespace = "EXT_mmvec";
31443 let isCodeGenOnly = 1;
31444 }
31445 def V6_vaddb_dv_alt : HInst<
31446 (outs VecDblRegs:$Vdd32),
31447 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31448 "$Vdd32 = vaddb($Vuu32,$Vvv32)",
31449 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31450 let hasNewValue = 1;
31451 let opNewValue = 0;
31452 let isPseudo = 1;
31453 let isCodeGenOnly = 1;
31454 let DecoderNamespace = "EXT_mmvec";
31455 }
31456 def V6_vaddb_dv_alt_128B : HInst<
31457 (outs VecDblRegs128B:$Vdd32),
31458 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31459 "$Vdd32 = vaddb($Vuu32,$Vvv32)",
31460 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31461 let hasNewValue = 1;
31462 let opNewValue = 0;
31463 let isPseudo = 1;
31464 let isCodeGenOnly = 1;
31465 let DecoderNamespace = "EXT_mmvec";
31466 let isCodeGenOnly = 1;
31467 }
31468 def V6_vaddbnq : HInst<
31469 (outs VectorRegs:$Vx32),
31470 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31471 "if (!$Qv4) $Vx32.b += $Vu32.b",
31472 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31473 let Inst{7-5} = 0b011;
31474 let Inst{13-13} = 0b1;
31475 let Inst{21-16} = 0b000001;
31476 let Inst{31-24} = 0b00011110;
31477 let hasNewValue = 1;
31478 let opNewValue = 0;
31479 let isAccumulator = 1;
31480 let DecoderNamespace = "EXT_mmvec";
31481 let Constraints = "$Vx32 = $Vx32in";
31482 }
31483 def V6_vaddbnq_128B : HInst<
31484 (outs VectorRegs128B:$Vx32),
31485 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31486 "if (!$Qv4) $Vx32.b += $Vu32.b",
31487 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31488 let Inst{7-5} = 0b011;
31489 let Inst{13-13} = 0b1;
31490 let Inst{21-16} = 0b000001;
31491 let Inst{31-24} = 0b00011110;
31492 let hasNewValue = 1;
31493 let opNewValue = 0;
31494 let isAccumulator = 1;
31495 let DecoderNamespace = "EXT_mmvec";
31496 let isCodeGenOnly = 1;
31497 let Constraints = "$Vx32 = $Vx32in";
31498 }
31499 def V6_vaddbnq_alt : HInst<
31500 (outs VectorRegs:$Vx32),
31501 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31502 "if (!$Qv4.b) $Vx32.b += $Vu32.b",
31503 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31504 let hasNewValue = 1;
31505 let opNewValue = 0;
31506 let isAccumulator = 1;
31507 let isPseudo = 1;
31508 let isCodeGenOnly = 1;
31509 let DecoderNamespace = "EXT_mmvec";
31510 let Constraints = "$Vx32 = $Vx32in";
31511 }
31512 def V6_vaddbnq_alt_128B : HInst<
31513 (outs VectorRegs128B:$Vx32),
31514 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31515 "if (!$Qv4.b) $Vx32.b += $Vu32.b",
31516 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31517 let hasNewValue = 1;
31518 let opNewValue = 0;
31519 let isAccumulator = 1;
31520 let isPseudo = 1;
31521 let isCodeGenOnly = 1;
31522 let DecoderNamespace = "EXT_mmvec";
31523 let isCodeGenOnly = 1;
31524 let Constraints = "$Vx32 = $Vx32in";
31525 }
31526 def V6_vaddbq : HInst<
31527 (outs VectorRegs:$Vx32),
31528 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31529 "if ($Qv4) $Vx32.b += $Vu32.b",
31530 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31531 let Inst{7-5} = 0b000;
31532 let Inst{13-13} = 0b1;
31533 let Inst{21-16} = 0b000001;
31534 let Inst{31-24} = 0b00011110;
31535 let hasNewValue = 1;
31536 let opNewValue = 0;
31537 let isAccumulator = 1;
31538 let DecoderNamespace = "EXT_mmvec";
31539 let Constraints = "$Vx32 = $Vx32in";
31540 }
31541 def V6_vaddbq_128B : HInst<
31542 (outs VectorRegs128B:$Vx32),
31543 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31544 "if ($Qv4) $Vx32.b += $Vu32.b",
31545 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31546 let Inst{7-5} = 0b000;
31547 let Inst{13-13} = 0b1;
31548 let Inst{21-16} = 0b000001;
31549 let Inst{31-24} = 0b00011110;
31550 let hasNewValue = 1;
31551 let opNewValue = 0;
31552 let isAccumulator = 1;
31553 let DecoderNamespace = "EXT_mmvec";
31554 let isCodeGenOnly = 1;
31555 let Constraints = "$Vx32 = $Vx32in";
31556 }
31557 def V6_vaddbq_alt : HInst<
31558 (outs VectorRegs:$Vx32),
31559 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31560 "if ($Qv4.b) $Vx32.b += $Vu32.b",
31561 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31562 let hasNewValue = 1;
31563 let opNewValue = 0;
31564 let isAccumulator = 1;
31565 let isPseudo = 1;
31566 let isCodeGenOnly = 1;
31567 let DecoderNamespace = "EXT_mmvec";
31568 let Constraints = "$Vx32 = $Vx32in";
31569 }
31570 def V6_vaddbq_alt_128B : HInst<
31571 (outs VectorRegs128B:$Vx32),
31572 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31573 "if ($Qv4.b) $Vx32.b += $Vu32.b",
31574 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31575 let hasNewValue = 1;
31576 let opNewValue = 0;
31577 let isAccumulator = 1;
31578 let isPseudo = 1;
31579 let isCodeGenOnly = 1;
31580 let DecoderNamespace = "EXT_mmvec";
31581 let isCodeGenOnly = 1;
31582 let Constraints = "$Vx32 = $Vx32in";
31583 }
31584 def V6_vaddbsat : HInst<
31585 (outs VectorRegs:$Vd32),
31586 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31587 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
31588 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31589 let Inst{7-5} = 0b000;
31590 let Inst{13-13} = 0b0;
31591 let Inst{31-21} = 0b00011111000;
31592 let hasNewValue = 1;
31593 let opNewValue = 0;
31594 let DecoderNamespace = "EXT_mmvec";
31595 }
31596 def V6_vaddbsat_128B : HInst<
31597 (outs VectorRegs128B:$Vd32),
31598 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31599 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
31600 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31601 let Inst{7-5} = 0b000;
31602 let Inst{13-13} = 0b0;
31603 let Inst{31-21} = 0b00011111000;
31604 let hasNewValue = 1;
31605 let opNewValue = 0;
31606 let DecoderNamespace = "EXT_mmvec";
31607 let isCodeGenOnly = 1;
31608 }
31609 def V6_vaddbsat_alt : HInst<
31610 (outs VectorRegs:$Vd32),
31611 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31612 "$Vd32 = vaddb($Vu32,$Vv32):sat",
31613 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
31614 let hasNewValue = 1;
31615 let opNewValue = 0;
31616 let isPseudo = 1;
31617 let isCodeGenOnly = 1;
31618 let DecoderNamespace = "EXT_mmvec";
31619 }
31620 def V6_vaddbsat_alt_128B : HInst<
31621 (outs VectorRegs128B:$Vd32),
31622 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31623 "$Vd32 = vaddb($Vu32,$Vv32):sat",
31624 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
31625 let hasNewValue = 1;
31626 let opNewValue = 0;
31627 let isPseudo = 1;
31628 let isCodeGenOnly = 1;
31629 let DecoderNamespace = "EXT_mmvec";
31630 let isCodeGenOnly = 1;
31631 }
31632 def V6_vaddbsat_dv : HInst<
31633 (outs VecDblRegs:$Vdd32),
31634 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31635 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
31636 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
31637 let Inst{7-5} = 0b000;
31638 let Inst{13-13} = 0b0;
31639 let Inst{31-21} = 0b00011110101;
31640 let hasNewValue = 1;
31641 let opNewValue = 0;
31642 let DecoderNamespace = "EXT_mmvec";
31643 }
31644 def V6_vaddbsat_dv_128B : HInst<
31645 (outs VecDblRegs128B:$Vdd32),
31646 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31647 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
31648 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
31649 let Inst{7-5} = 0b000;
31650 let Inst{13-13} = 0b0;
31651 let Inst{31-21} = 0b00011110101;
31652 let hasNewValue = 1;
31653 let opNewValue = 0;
31654 let DecoderNamespace = "EXT_mmvec";
31655 let isCodeGenOnly = 1;
31656 }
31657 def V6_vaddbsat_dv_alt : HInst<
31658 (outs VecDblRegs:$Vdd32),
31659 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31660 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
31661 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
31662 let hasNewValue = 1;
31663 let opNewValue = 0;
31664 let isPseudo = 1;
31665 let isCodeGenOnly = 1;
31666 let DecoderNamespace = "EXT_mmvec";
31667 }
31668 def V6_vaddbsat_dv_alt_128B : HInst<
31669 (outs VecDblRegs128B:$Vdd32),
31670 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31671 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
31672 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
31673 let hasNewValue = 1;
31674 let opNewValue = 0;
31675 let isPseudo = 1;
31676 let isCodeGenOnly = 1;
31677 let DecoderNamespace = "EXT_mmvec";
31678 let isCodeGenOnly = 1;
31679 }
31680 def V6_vaddcarry : HInst<
31681 (outs VectorRegs:$Vd32, VecPredRegs:$Qx4),
31682 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, VecPredRegs:$Qx4in),
31683 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
31684 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
31685 let Inst{7-7} = 0b0;
31686 let Inst{13-13} = 0b1;
31687 let Inst{31-21} = 0b00011100101;
31688 let hasNewValue = 1;
31689 let opNewValue = 0;
31690 let hasNewValue2 = 1;
31691 let opNewValue2 = 1;
31692 let DecoderNamespace = "EXT_mmvec";
31693 let Constraints = "$Qx4 = $Qx4in";
31694 }
31695 def V6_vaddcarry_128B : HInst<
31696 (outs VectorRegs128B:$Vd32, VecPredRegs128B:$Qx4),
31697 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, VecPredRegs128B:$Qx4in),
31698 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
31699 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
31700 let Inst{7-7} = 0b0;
31701 let Inst{13-13} = 0b1;
31702 let Inst{31-21} = 0b00011100101;
31703 let hasNewValue = 1;
31704 let opNewValue = 0;
31705 let hasNewValue2 = 1;
31706 let opNewValue2 = 1;
31707 let DecoderNamespace = "EXT_mmvec";
31708 let isCodeGenOnly = 1;
31709 let Constraints = "$Qx4 = $Qx4in";
31710 }
31711 def V6_vaddclbh : HInst<
31712 (outs VectorRegs:$Vd32),
31713 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31714 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
31715 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31716 let Inst{7-5} = 0b000;
31717 let Inst{13-13} = 0b1;
31718 let Inst{31-21} = 0b00011111000;
31719 let hasNewValue = 1;
31720 let opNewValue = 0;
31721 let DecoderNamespace = "EXT_mmvec";
31722 }
31723 def V6_vaddclbh_128B : HInst<
31724 (outs VectorRegs128B:$Vd32),
31725 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31726 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
31727 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31728 let Inst{7-5} = 0b000;
31729 let Inst{13-13} = 0b1;
31730 let Inst{31-21} = 0b00011111000;
31731 let hasNewValue = 1;
31732 let opNewValue = 0;
31733 let DecoderNamespace = "EXT_mmvec";
31734 let isCodeGenOnly = 1;
31735 }
31736 def V6_vaddclbw : HInst<
31737 (outs VectorRegs:$Vd32),
31738 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31739 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
31740 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31741 let Inst{7-5} = 0b001;
31742 let Inst{13-13} = 0b1;
31743 let Inst{31-21} = 0b00011111000;
31744 let hasNewValue = 1;
31745 let opNewValue = 0;
31746 let DecoderNamespace = "EXT_mmvec";
31747 }
31748 def V6_vaddclbw_128B : HInst<
31749 (outs VectorRegs128B:$Vd32),
31750 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31751 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
31752 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
31753 let Inst{7-5} = 0b001;
31754 let Inst{13-13} = 0b1;
31755 let Inst{31-21} = 0b00011111000;
31756 let hasNewValue = 1;
31757 let opNewValue = 0;
31758 let DecoderNamespace = "EXT_mmvec";
31759 let isCodeGenOnly = 1;
31760 }
31761 def V6_vaddh : HInst<
31762 (outs VectorRegs:$Vd32),
31763 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31764 "$Vd32.h = vadd($Vu32.h,$Vv32.h)",
31765 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31766 let Inst{7-5} = 0b111;
31767 let Inst{13-13} = 0b0;
31768 let Inst{31-21} = 0b00011111101;
31769 let hasNewValue = 1;
31770 let opNewValue = 0;
31771 let DecoderNamespace = "EXT_mmvec";
31772 }
31773 def V6_vaddh_128B : HInst<
31774 (outs VectorRegs128B:$Vd32),
31775 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31776 "$Vd32.h = vadd($Vu32.h,$Vv32.h)",
31777 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31778 let Inst{7-5} = 0b111;
31779 let Inst{13-13} = 0b0;
31780 let Inst{31-21} = 0b00011111101;
31781 let hasNewValue = 1;
31782 let opNewValue = 0;
31783 let DecoderNamespace = "EXT_mmvec";
31784 let isCodeGenOnly = 1;
31785 }
31786 def V6_vaddh_alt : HInst<
31787 (outs VectorRegs:$Vd32),
31788 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31789 "$Vd32 = vaddh($Vu32,$Vv32)",
31790 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31791 let hasNewValue = 1;
31792 let opNewValue = 0;
31793 let isPseudo = 1;
31794 let isCodeGenOnly = 1;
31795 let DecoderNamespace = "EXT_mmvec";
31796 }
31797 def V6_vaddh_alt_128B : HInst<
31798 (outs VectorRegs128B:$Vd32),
31799 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31800 "$Vd32 = vaddh($Vu32,$Vv32)",
31801 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31802 let hasNewValue = 1;
31803 let opNewValue = 0;
31804 let isPseudo = 1;
31805 let isCodeGenOnly = 1;
31806 let DecoderNamespace = "EXT_mmvec";
31807 let isCodeGenOnly = 1;
31808 }
31809 def V6_vaddh_dv : HInst<
31810 (outs VecDblRegs:$Vdd32),
31811 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31812 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
31813 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
31814 let Inst{7-5} = 0b101;
31815 let Inst{13-13} = 0b0;
31816 let Inst{31-21} = 0b00011100011;
31817 let hasNewValue = 1;
31818 let opNewValue = 0;
31819 let DecoderNamespace = "EXT_mmvec";
31820 }
31821 def V6_vaddh_dv_128B : HInst<
31822 (outs VecDblRegs128B:$Vdd32),
31823 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31824 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
31825 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
31826 let Inst{7-5} = 0b101;
31827 let Inst{13-13} = 0b0;
31828 let Inst{31-21} = 0b00011100011;
31829 let hasNewValue = 1;
31830 let opNewValue = 0;
31831 let DecoderNamespace = "EXT_mmvec";
31832 let isCodeGenOnly = 1;
31833 }
31834 def V6_vaddh_dv_alt : HInst<
31835 (outs VecDblRegs:$Vdd32),
31836 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
31837 "$Vdd32 = vaddh($Vuu32,$Vvv32)",
31838 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31839 let hasNewValue = 1;
31840 let opNewValue = 0;
31841 let isPseudo = 1;
31842 let isCodeGenOnly = 1;
31843 let DecoderNamespace = "EXT_mmvec";
31844 }
31845 def V6_vaddh_dv_alt_128B : HInst<
31846 (outs VecDblRegs128B:$Vdd32),
31847 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
31848 "$Vdd32 = vaddh($Vuu32,$Vvv32)",
31849 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31850 let hasNewValue = 1;
31851 let opNewValue = 0;
31852 let isPseudo = 1;
31853 let isCodeGenOnly = 1;
31854 let DecoderNamespace = "EXT_mmvec";
31855 let isCodeGenOnly = 1;
31856 }
31857 def V6_vaddhnq : HInst<
31858 (outs VectorRegs:$Vx32),
31859 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31860 "if (!$Qv4) $Vx32.h += $Vu32.h",
31861 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31862 let Inst{7-5} = 0b100;
31863 let Inst{13-13} = 0b1;
31864 let Inst{21-16} = 0b000001;
31865 let Inst{31-24} = 0b00011110;
31866 let hasNewValue = 1;
31867 let opNewValue = 0;
31868 let isAccumulator = 1;
31869 let DecoderNamespace = "EXT_mmvec";
31870 let Constraints = "$Vx32 = $Vx32in";
31871 }
31872 def V6_vaddhnq_128B : HInst<
31873 (outs VectorRegs128B:$Vx32),
31874 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31875 "if (!$Qv4) $Vx32.h += $Vu32.h",
31876 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31877 let Inst{7-5} = 0b100;
31878 let Inst{13-13} = 0b1;
31879 let Inst{21-16} = 0b000001;
31880 let Inst{31-24} = 0b00011110;
31881 let hasNewValue = 1;
31882 let opNewValue = 0;
31883 let isAccumulator = 1;
31884 let DecoderNamespace = "EXT_mmvec";
31885 let isCodeGenOnly = 1;
31886 let Constraints = "$Vx32 = $Vx32in";
31887 }
31888 def V6_vaddhnq_alt : HInst<
31889 (outs VectorRegs:$Vx32),
31890 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31891 "if (!$Qv4.h) $Vx32.h += $Vu32.h",
31892 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31893 let hasNewValue = 1;
31894 let opNewValue = 0;
31895 let isAccumulator = 1;
31896 let isPseudo = 1;
31897 let isCodeGenOnly = 1;
31898 let DecoderNamespace = "EXT_mmvec";
31899 let Constraints = "$Vx32 = $Vx32in";
31900 }
31901 def V6_vaddhnq_alt_128B : HInst<
31902 (outs VectorRegs128B:$Vx32),
31903 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31904 "if (!$Qv4.h) $Vx32.h += $Vu32.h",
31905 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31906 let hasNewValue = 1;
31907 let opNewValue = 0;
31908 let isAccumulator = 1;
31909 let isPseudo = 1;
31910 let isCodeGenOnly = 1;
31911 let DecoderNamespace = "EXT_mmvec";
31912 let isCodeGenOnly = 1;
31913 let Constraints = "$Vx32 = $Vx32in";
31914 }
31915 def V6_vaddhq : HInst<
31916 (outs VectorRegs:$Vx32),
31917 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31918 "if ($Qv4) $Vx32.h += $Vu32.h",
31919 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31920 let Inst{7-5} = 0b001;
31921 let Inst{13-13} = 0b1;
31922 let Inst{21-16} = 0b000001;
31923 let Inst{31-24} = 0b00011110;
31924 let hasNewValue = 1;
31925 let opNewValue = 0;
31926 let isAccumulator = 1;
31927 let DecoderNamespace = "EXT_mmvec";
31928 let Constraints = "$Vx32 = $Vx32in";
31929 }
31930 def V6_vaddhq_128B : HInst<
31931 (outs VectorRegs128B:$Vx32),
31932 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31933 "if ($Qv4) $Vx32.h += $Vu32.h",
31934 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
31935 let Inst{7-5} = 0b001;
31936 let Inst{13-13} = 0b1;
31937 let Inst{21-16} = 0b000001;
31938 let Inst{31-24} = 0b00011110;
31939 let hasNewValue = 1;
31940 let opNewValue = 0;
31941 let isAccumulator = 1;
31942 let DecoderNamespace = "EXT_mmvec";
31943 let isCodeGenOnly = 1;
31944 let Constraints = "$Vx32 = $Vx32in";
31945 }
31946 def V6_vaddhq_alt : HInst<
31947 (outs VectorRegs:$Vx32),
31948 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
31949 "if ($Qv4.h) $Vx32.h += $Vu32.h",
31950 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31951 let hasNewValue = 1;
31952 let opNewValue = 0;
31953 let isAccumulator = 1;
31954 let isPseudo = 1;
31955 let isCodeGenOnly = 1;
31956 let DecoderNamespace = "EXT_mmvec";
31957 let Constraints = "$Vx32 = $Vx32in";
31958 }
31959 def V6_vaddhq_alt_128B : HInst<
31960 (outs VectorRegs128B:$Vx32),
31961 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
31962 "if ($Qv4.h) $Vx32.h += $Vu32.h",
31963 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
31964 let hasNewValue = 1;
31965 let opNewValue = 0;
31966 let isAccumulator = 1;
31967 let isPseudo = 1;
31968 let isCodeGenOnly = 1;
31969 let DecoderNamespace = "EXT_mmvec";
31970 let isCodeGenOnly = 1;
31971 let Constraints = "$Vx32 = $Vx32in";
31972 }
31973 def V6_vaddhsat : HInst<
31974 (outs VectorRegs:$Vd32),
31975 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
31976 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
31977 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31978 let Inst{7-5} = 0b011;
31979 let Inst{13-13} = 0b0;
31980 let Inst{31-21} = 0b00011100010;
31981 let hasNewValue = 1;
31982 let opNewValue = 0;
31983 let DecoderNamespace = "EXT_mmvec";
31984 }
31985 def V6_vaddhsat_128B : HInst<
31986 (outs VectorRegs128B:$Vd32),
31987 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
31988 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
31989 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
31990 let Inst{7-5} = 0b011;
31991 let Inst{13-13} = 0b0;
31992 let Inst{31-21} = 0b00011100010;
31993 let hasNewValue = 1;
31994 let opNewValue = 0;
31995 let DecoderNamespace = "EXT_mmvec";
31996 let isCodeGenOnly = 1;
31997 }
31998 def V6_vaddhsat_alt : HInst<
31999 (outs VectorRegs:$Vd32),
32000 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32001 "$Vd32 = vaddh($Vu32,$Vv32):sat",
32002 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32003 let hasNewValue = 1;
32004 let opNewValue = 0;
32005 let isPseudo = 1;
32006 let isCodeGenOnly = 1;
32007 let DecoderNamespace = "EXT_mmvec";
32008 }
32009 def V6_vaddhsat_alt_128B : HInst<
32010 (outs VectorRegs128B:$Vd32),
32011 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32012 "$Vd32 = vaddh($Vu32,$Vv32):sat",
32013 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32014 let hasNewValue = 1;
32015 let opNewValue = 0;
32016 let isPseudo = 1;
32017 let isCodeGenOnly = 1;
32018 let DecoderNamespace = "EXT_mmvec";
32019 let isCodeGenOnly = 1;
32020 }
32021 def V6_vaddhsat_dv : HInst<
32022 (outs VecDblRegs:$Vdd32),
32023 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32024 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
32025 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32026 let Inst{7-5} = 0b001;
32027 let Inst{13-13} = 0b0;
32028 let Inst{31-21} = 0b00011100100;
32029 let hasNewValue = 1;
32030 let opNewValue = 0;
32031 let DecoderNamespace = "EXT_mmvec";
32032 }
32033 def V6_vaddhsat_dv_128B : HInst<
32034 (outs VecDblRegs128B:$Vdd32),
32035 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32036 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
32037 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32038 let Inst{7-5} = 0b001;
32039 let Inst{13-13} = 0b0;
32040 let Inst{31-21} = 0b00011100100;
32041 let hasNewValue = 1;
32042 let opNewValue = 0;
32043 let DecoderNamespace = "EXT_mmvec";
32044 let isCodeGenOnly = 1;
32045 }
32046 def V6_vaddhsat_dv_alt : HInst<
32047 (outs VecDblRegs:$Vdd32),
32048 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32049 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
32050 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32051 let hasNewValue = 1;
32052 let opNewValue = 0;
32053 let isPseudo = 1;
32054 let isCodeGenOnly = 1;
32055 let DecoderNamespace = "EXT_mmvec";
32056 }
32057 def V6_vaddhsat_dv_alt_128B : HInst<
32058 (outs VecDblRegs128B:$Vdd32),
32059 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32060 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
32061 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32062 let hasNewValue = 1;
32063 let opNewValue = 0;
32064 let isPseudo = 1;
32065 let isCodeGenOnly = 1;
32066 let DecoderNamespace = "EXT_mmvec";
32067 let isCodeGenOnly = 1;
32068 }
32069 def V6_vaddhw : HInst<
32070 (outs VecDblRegs:$Vdd32),
32071 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32072 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
32073 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32074 let Inst{7-5} = 0b100;
32075 let Inst{13-13} = 0b0;
32076 let Inst{31-21} = 0b00011100101;
32077 let hasNewValue = 1;
32078 let opNewValue = 0;
32079 let DecoderNamespace = "EXT_mmvec";
32080 }
32081 def V6_vaddhw_128B : HInst<
32082 (outs VecDblRegs128B:$Vdd32),
32083 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32084 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
32085 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32086 let Inst{7-5} = 0b100;
32087 let Inst{13-13} = 0b0;
32088 let Inst{31-21} = 0b00011100101;
32089 let hasNewValue = 1;
32090 let opNewValue = 0;
32091 let DecoderNamespace = "EXT_mmvec";
32092 let isCodeGenOnly = 1;
32093 }
32094 def V6_vaddhw_acc : HInst<
32095 (outs VecDblRegs:$Vxx32),
32096 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32097 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
32098 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32099 let Inst{7-5} = 0b010;
32100 let Inst{13-13} = 0b1;
32101 let Inst{31-21} = 0b00011100001;
32102 let hasNewValue = 1;
32103 let opNewValue = 0;
32104 let isAccumulator = 1;
32105 let DecoderNamespace = "EXT_mmvec";
32106 let Constraints = "$Vxx32 = $Vxx32in";
32107 }
32108 def V6_vaddhw_acc_128B : HInst<
32109 (outs VecDblRegs128B:$Vxx32),
32110 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32111 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
32112 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32113 let Inst{7-5} = 0b010;
32114 let Inst{13-13} = 0b1;
32115 let Inst{31-21} = 0b00011100001;
32116 let hasNewValue = 1;
32117 let opNewValue = 0;
32118 let isAccumulator = 1;
32119 let DecoderNamespace = "EXT_mmvec";
32120 let isCodeGenOnly = 1;
32121 let Constraints = "$Vxx32 = $Vxx32in";
32122 }
32123 def V6_vaddhw_acc_alt : HInst<
32124 (outs VecDblRegs:$Vxx32),
32125 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32126 "$Vxx32 += vaddh($Vu32,$Vv32)",
32127 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32128 let hasNewValue = 1;
32129 let opNewValue = 0;
32130 let isAccumulator = 1;
32131 let isPseudo = 1;
32132 let isCodeGenOnly = 1;
32133 let DecoderNamespace = "EXT_mmvec";
32134 let Constraints = "$Vxx32 = $Vxx32in";
32135 }
32136 def V6_vaddhw_acc_alt_128B : HInst<
32137 (outs VecDblRegs128B:$Vxx32),
32138 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32139 "$Vxx32 += vaddh($Vu32,$Vv32)",
32140 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32141 let hasNewValue = 1;
32142 let opNewValue = 0;
32143 let isAccumulator = 1;
32144 let isPseudo = 1;
32145 let isCodeGenOnly = 1;
32146 let DecoderNamespace = "EXT_mmvec";
32147 let isCodeGenOnly = 1;
32148 let Constraints = "$Vxx32 = $Vxx32in";
32149 }
32150 def V6_vaddhw_alt : HInst<
32151 (outs VecDblRegs:$Vdd32),
32152 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32153 "$Vdd32 = vaddh($Vu32,$Vv32)",
32154 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32155 let hasNewValue = 1;
32156 let opNewValue = 0;
32157 let isPseudo = 1;
32158 let isCodeGenOnly = 1;
32159 let DecoderNamespace = "EXT_mmvec";
32160 }
32161 def V6_vaddhw_alt_128B : HInst<
32162 (outs VecDblRegs128B:$Vdd32),
32163 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32164 "$Vdd32 = vaddh($Vu32,$Vv32)",
32165 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32166 let hasNewValue = 1;
32167 let opNewValue = 0;
32168 let isPseudo = 1;
32169 let isCodeGenOnly = 1;
32170 let DecoderNamespace = "EXT_mmvec";
32171 let isCodeGenOnly = 1;
32172 }
32173 def V6_vaddubh : HInst<
32174 (outs VecDblRegs:$Vdd32),
32175 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32176 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
32177 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32178 let Inst{7-5} = 0b010;
32179 let Inst{13-13} = 0b0;
32180 let Inst{31-21} = 0b00011100101;
32181 let hasNewValue = 1;
32182 let opNewValue = 0;
32183 let DecoderNamespace = "EXT_mmvec";
32184 }
32185 def V6_vaddubh_128B : HInst<
32186 (outs VecDblRegs128B:$Vdd32),
32187 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32188 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
32189 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32190 let Inst{7-5} = 0b010;
32191 let Inst{13-13} = 0b0;
32192 let Inst{31-21} = 0b00011100101;
32193 let hasNewValue = 1;
32194 let opNewValue = 0;
32195 let DecoderNamespace = "EXT_mmvec";
32196 let isCodeGenOnly = 1;
32197 }
32198 def V6_vaddubh_acc : HInst<
32199 (outs VecDblRegs:$Vxx32),
32200 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32201 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
32202 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32203 let Inst{7-5} = 0b101;
32204 let Inst{13-13} = 0b1;
32205 let Inst{31-21} = 0b00011100010;
32206 let hasNewValue = 1;
32207 let opNewValue = 0;
32208 let isAccumulator = 1;
32209 let DecoderNamespace = "EXT_mmvec";
32210 let Constraints = "$Vxx32 = $Vxx32in";
32211 }
32212 def V6_vaddubh_acc_128B : HInst<
32213 (outs VecDblRegs128B:$Vxx32),
32214 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32215 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
32216 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32217 let Inst{7-5} = 0b101;
32218 let Inst{13-13} = 0b1;
32219 let Inst{31-21} = 0b00011100010;
32220 let hasNewValue = 1;
32221 let opNewValue = 0;
32222 let isAccumulator = 1;
32223 let DecoderNamespace = "EXT_mmvec";
32224 let isCodeGenOnly = 1;
32225 let Constraints = "$Vxx32 = $Vxx32in";
32226 }
32227 def V6_vaddubh_acc_alt : HInst<
32228 (outs VecDblRegs:$Vxx32),
32229 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32230 "$Vxx32 += vaddub($Vu32,$Vv32)",
32231 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32232 let hasNewValue = 1;
32233 let opNewValue = 0;
32234 let isAccumulator = 1;
32235 let isPseudo = 1;
32236 let isCodeGenOnly = 1;
32237 let DecoderNamespace = "EXT_mmvec";
32238 let Constraints = "$Vxx32 = $Vxx32in";
32239 }
32240 def V6_vaddubh_acc_alt_128B : HInst<
32241 (outs VecDblRegs128B:$Vxx32),
32242 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32243 "$Vxx32 += vaddub($Vu32,$Vv32)",
32244 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32245 let hasNewValue = 1;
32246 let opNewValue = 0;
32247 let isAccumulator = 1;
32248 let isPseudo = 1;
32249 let isCodeGenOnly = 1;
32250 let DecoderNamespace = "EXT_mmvec";
32251 let isCodeGenOnly = 1;
32252 let Constraints = "$Vxx32 = $Vxx32in";
32253 }
32254 def V6_vaddubh_alt : HInst<
32255 (outs VecDblRegs:$Vdd32),
32256 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32257 "$Vdd32 = vaddub($Vu32,$Vv32)",
32258 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32259 let hasNewValue = 1;
32260 let opNewValue = 0;
32261 let isPseudo = 1;
32262 let isCodeGenOnly = 1;
32263 let DecoderNamespace = "EXT_mmvec";
32264 }
32265 def V6_vaddubh_alt_128B : HInst<
32266 (outs VecDblRegs128B:$Vdd32),
32267 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32268 "$Vdd32 = vaddub($Vu32,$Vv32)",
32269 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32270 let hasNewValue = 1;
32271 let opNewValue = 0;
32272 let isPseudo = 1;
32273 let isCodeGenOnly = 1;
32274 let DecoderNamespace = "EXT_mmvec";
32275 let isCodeGenOnly = 1;
32276 }
32277 def V6_vaddubsat : HInst<
32278 (outs VectorRegs:$Vd32),
32279 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32280 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
32281 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32282 let Inst{7-5} = 0b001;
32283 let Inst{13-13} = 0b0;
32284 let Inst{31-21} = 0b00011100010;
32285 let hasNewValue = 1;
32286 let opNewValue = 0;
32287 let DecoderNamespace = "EXT_mmvec";
32288 }
32289 def V6_vaddubsat_128B : HInst<
32290 (outs VectorRegs128B:$Vd32),
32291 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32292 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
32293 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32294 let Inst{7-5} = 0b001;
32295 let Inst{13-13} = 0b0;
32296 let Inst{31-21} = 0b00011100010;
32297 let hasNewValue = 1;
32298 let opNewValue = 0;
32299 let DecoderNamespace = "EXT_mmvec";
32300 let isCodeGenOnly = 1;
32301 }
32302 def V6_vaddubsat_alt : HInst<
32303 (outs VectorRegs:$Vd32),
32304 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32305 "$Vd32 = vaddub($Vu32,$Vv32):sat",
32306 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32307 let hasNewValue = 1;
32308 let opNewValue = 0;
32309 let isPseudo = 1;
32310 let isCodeGenOnly = 1;
32311 let DecoderNamespace = "EXT_mmvec";
32312 }
32313 def V6_vaddubsat_alt_128B : HInst<
32314 (outs VectorRegs128B:$Vd32),
32315 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32316 "$Vd32 = vaddub($Vu32,$Vv32):sat",
32317 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32318 let hasNewValue = 1;
32319 let opNewValue = 0;
32320 let isPseudo = 1;
32321 let isCodeGenOnly = 1;
32322 let DecoderNamespace = "EXT_mmvec";
32323 let isCodeGenOnly = 1;
32324 }
32325 def V6_vaddubsat_dv : HInst<
32326 (outs VecDblRegs:$Vdd32),
32327 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32328 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
32329 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32330 let Inst{7-5} = 0b111;
32331 let Inst{13-13} = 0b0;
32332 let Inst{31-21} = 0b00011100011;
32333 let hasNewValue = 1;
32334 let opNewValue = 0;
32335 let DecoderNamespace = "EXT_mmvec";
32336 }
32337 def V6_vaddubsat_dv_128B : HInst<
32338 (outs VecDblRegs128B:$Vdd32),
32339 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32340 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
32341 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32342 let Inst{7-5} = 0b111;
32343 let Inst{13-13} = 0b0;
32344 let Inst{31-21} = 0b00011100011;
32345 let hasNewValue = 1;
32346 let opNewValue = 0;
32347 let DecoderNamespace = "EXT_mmvec";
32348 let isCodeGenOnly = 1;
32349 }
32350 def V6_vaddubsat_dv_alt : HInst<
32351 (outs VecDblRegs:$Vdd32),
32352 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32353 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
32354 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32355 let hasNewValue = 1;
32356 let opNewValue = 0;
32357 let isPseudo = 1;
32358 let isCodeGenOnly = 1;
32359 let DecoderNamespace = "EXT_mmvec";
32360 }
32361 def V6_vaddubsat_dv_alt_128B : HInst<
32362 (outs VecDblRegs128B:$Vdd32),
32363 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32364 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
32365 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32366 let hasNewValue = 1;
32367 let opNewValue = 0;
32368 let isPseudo = 1;
32369 let isCodeGenOnly = 1;
32370 let DecoderNamespace = "EXT_mmvec";
32371 let isCodeGenOnly = 1;
32372 }
32373 def V6_vaddububb_sat : HInst<
32374 (outs VectorRegs:$Vd32),
32375 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32376 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
32377 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
32378 let Inst{7-5} = 0b100;
32379 let Inst{13-13} = 0b0;
32380 let Inst{31-21} = 0b00011110101;
32381 let hasNewValue = 1;
32382 let opNewValue = 0;
32383 let DecoderNamespace = "EXT_mmvec";
32384 }
32385 def V6_vaddububb_sat_128B : HInst<
32386 (outs VectorRegs128B:$Vd32),
32387 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32388 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
32389 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
32390 let Inst{7-5} = 0b100;
32391 let Inst{13-13} = 0b0;
32392 let Inst{31-21} = 0b00011110101;
32393 let hasNewValue = 1;
32394 let opNewValue = 0;
32395 let DecoderNamespace = "EXT_mmvec";
32396 let isCodeGenOnly = 1;
32397 }
32398 def V6_vadduhsat : HInst<
32399 (outs VectorRegs:$Vd32),
32400 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32401 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
32402 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32403 let Inst{7-5} = 0b010;
32404 let Inst{13-13} = 0b0;
32405 let Inst{31-21} = 0b00011100010;
32406 let hasNewValue = 1;
32407 let opNewValue = 0;
32408 let DecoderNamespace = "EXT_mmvec";
32409 }
32410 def V6_vadduhsat_128B : HInst<
32411 (outs VectorRegs128B:$Vd32),
32412 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32413 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
32414 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32415 let Inst{7-5} = 0b010;
32416 let Inst{13-13} = 0b0;
32417 let Inst{31-21} = 0b00011100010;
32418 let hasNewValue = 1;
32419 let opNewValue = 0;
32420 let DecoderNamespace = "EXT_mmvec";
32421 let isCodeGenOnly = 1;
32422 }
32423 def V6_vadduhsat_alt : HInst<
32424 (outs VectorRegs:$Vd32),
32425 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32426 "$Vd32 = vadduh($Vu32,$Vv32):sat",
32427 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32428 let hasNewValue = 1;
32429 let opNewValue = 0;
32430 let isPseudo = 1;
32431 let isCodeGenOnly = 1;
32432 let DecoderNamespace = "EXT_mmvec";
32433 }
32434 def V6_vadduhsat_alt_128B : HInst<
32435 (outs VectorRegs128B:$Vd32),
32436 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32437 "$Vd32 = vadduh($Vu32,$Vv32):sat",
32438 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32439 let hasNewValue = 1;
32440 let opNewValue = 0;
32441 let isPseudo = 1;
32442 let isCodeGenOnly = 1;
32443 let DecoderNamespace = "EXT_mmvec";
32444 let isCodeGenOnly = 1;
32445 }
32446 def V6_vadduhsat_dv : HInst<
32447 (outs VecDblRegs:$Vdd32),
32448 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32449 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
32450 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32451 let Inst{7-5} = 0b000;
32452 let Inst{13-13} = 0b0;
32453 let Inst{31-21} = 0b00011100100;
32454 let hasNewValue = 1;
32455 let opNewValue = 0;
32456 let DecoderNamespace = "EXT_mmvec";
32457 }
32458 def V6_vadduhsat_dv_128B : HInst<
32459 (outs VecDblRegs128B:$Vdd32),
32460 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32461 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
32462 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32463 let Inst{7-5} = 0b000;
32464 let Inst{13-13} = 0b0;
32465 let Inst{31-21} = 0b00011100100;
32466 let hasNewValue = 1;
32467 let opNewValue = 0;
32468 let DecoderNamespace = "EXT_mmvec";
32469 let isCodeGenOnly = 1;
32470 }
32471 def V6_vadduhsat_dv_alt : HInst<
32472 (outs VecDblRegs:$Vdd32),
32473 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32474 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
32475 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32476 let hasNewValue = 1;
32477 let opNewValue = 0;
32478 let isPseudo = 1;
32479 let isCodeGenOnly = 1;
32480 let DecoderNamespace = "EXT_mmvec";
32481 }
32482 def V6_vadduhsat_dv_alt_128B : HInst<
32483 (outs VecDblRegs128B:$Vdd32),
32484 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32485 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
32486 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32487 let hasNewValue = 1;
32488 let opNewValue = 0;
32489 let isPseudo = 1;
32490 let isCodeGenOnly = 1;
32491 let DecoderNamespace = "EXT_mmvec";
32492 let isCodeGenOnly = 1;
32493 }
32494 def V6_vadduhw : HInst<
32495 (outs VecDblRegs:$Vdd32),
32496 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32497 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
32498 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32499 let Inst{7-5} = 0b011;
32500 let Inst{13-13} = 0b0;
32501 let Inst{31-21} = 0b00011100101;
32502 let hasNewValue = 1;
32503 let opNewValue = 0;
32504 let DecoderNamespace = "EXT_mmvec";
32505 }
32506 def V6_vadduhw_128B : HInst<
32507 (outs VecDblRegs128B:$Vdd32),
32508 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32509 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
32510 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
32511 let Inst{7-5} = 0b011;
32512 let Inst{13-13} = 0b0;
32513 let Inst{31-21} = 0b00011100101;
32514 let hasNewValue = 1;
32515 let opNewValue = 0;
32516 let DecoderNamespace = "EXT_mmvec";
32517 let isCodeGenOnly = 1;
32518 }
32519 def V6_vadduhw_acc : HInst<
32520 (outs VecDblRegs:$Vxx32),
32521 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32522 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
32523 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32524 let Inst{7-5} = 0b100;
32525 let Inst{13-13} = 0b1;
32526 let Inst{31-21} = 0b00011100010;
32527 let hasNewValue = 1;
32528 let opNewValue = 0;
32529 let isAccumulator = 1;
32530 let DecoderNamespace = "EXT_mmvec";
32531 let Constraints = "$Vxx32 = $Vxx32in";
32532 }
32533 def V6_vadduhw_acc_128B : HInst<
32534 (outs VecDblRegs128B:$Vxx32),
32535 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32536 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
32537 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
32538 let Inst{7-5} = 0b100;
32539 let Inst{13-13} = 0b1;
32540 let Inst{31-21} = 0b00011100010;
32541 let hasNewValue = 1;
32542 let opNewValue = 0;
32543 let isAccumulator = 1;
32544 let DecoderNamespace = "EXT_mmvec";
32545 let isCodeGenOnly = 1;
32546 let Constraints = "$Vxx32 = $Vxx32in";
32547 }
32548 def V6_vadduhw_acc_alt : HInst<
32549 (outs VecDblRegs:$Vxx32),
32550 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
32551 "$Vxx32 += vadduh($Vu32,$Vv32)",
32552 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32553 let hasNewValue = 1;
32554 let opNewValue = 0;
32555 let isAccumulator = 1;
32556 let isPseudo = 1;
32557 let isCodeGenOnly = 1;
32558 let DecoderNamespace = "EXT_mmvec";
32559 let Constraints = "$Vxx32 = $Vxx32in";
32560 }
32561 def V6_vadduhw_acc_alt_128B : HInst<
32562 (outs VecDblRegs128B:$Vxx32),
32563 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32564 "$Vxx32 += vadduh($Vu32,$Vv32)",
32565 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32566 let hasNewValue = 1;
32567 let opNewValue = 0;
32568 let isAccumulator = 1;
32569 let isPseudo = 1;
32570 let isCodeGenOnly = 1;
32571 let DecoderNamespace = "EXT_mmvec";
32572 let isCodeGenOnly = 1;
32573 let Constraints = "$Vxx32 = $Vxx32in";
32574 }
32575 def V6_vadduhw_alt : HInst<
32576 (outs VecDblRegs:$Vdd32),
32577 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32578 "$Vdd32 = vadduh($Vu32,$Vv32)",
32579 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32580 let hasNewValue = 1;
32581 let opNewValue = 0;
32582 let isPseudo = 1;
32583 let isCodeGenOnly = 1;
32584 let DecoderNamespace = "EXT_mmvec";
32585 }
32586 def V6_vadduhw_alt_128B : HInst<
32587 (outs VecDblRegs128B:$Vdd32),
32588 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32589 "$Vdd32 = vadduh($Vu32,$Vv32)",
32590 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32591 let hasNewValue = 1;
32592 let opNewValue = 0;
32593 let isPseudo = 1;
32594 let isCodeGenOnly = 1;
32595 let DecoderNamespace = "EXT_mmvec";
32596 let isCodeGenOnly = 1;
32597 }
32598 def V6_vadduwsat : HInst<
32599 (outs VectorRegs:$Vd32),
32600 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32601 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
32602 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
32603 let Inst{7-5} = 0b001;
32604 let Inst{13-13} = 0b0;
32605 let Inst{31-21} = 0b00011111011;
32606 let hasNewValue = 1;
32607 let opNewValue = 0;
32608 let DecoderNamespace = "EXT_mmvec";
32609 }
32610 def V6_vadduwsat_128B : HInst<
32611 (outs VectorRegs128B:$Vd32),
32612 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32613 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
32614 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
32615 let Inst{7-5} = 0b001;
32616 let Inst{13-13} = 0b0;
32617 let Inst{31-21} = 0b00011111011;
32618 let hasNewValue = 1;
32619 let opNewValue = 0;
32620 let DecoderNamespace = "EXT_mmvec";
32621 let isCodeGenOnly = 1;
32622 }
32623 def V6_vadduwsat_alt : HInst<
32624 (outs VectorRegs:$Vd32),
32625 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32626 "$Vd32 = vadduw($Vu32,$Vv32):sat",
32627 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32628 let hasNewValue = 1;
32629 let opNewValue = 0;
32630 let isPseudo = 1;
32631 let isCodeGenOnly = 1;
32632 let DecoderNamespace = "EXT_mmvec";
32633 }
32634 def V6_vadduwsat_alt_128B : HInst<
32635 (outs VectorRegs128B:$Vd32),
32636 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32637 "$Vd32 = vadduw($Vu32,$Vv32):sat",
32638 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32639 let hasNewValue = 1;
32640 let opNewValue = 0;
32641 let isPseudo = 1;
32642 let isCodeGenOnly = 1;
32643 let DecoderNamespace = "EXT_mmvec";
32644 let isCodeGenOnly = 1;
32645 }
32646 def V6_vadduwsat_dv : HInst<
32647 (outs VecDblRegs:$Vdd32),
32648 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32649 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
32650 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
32651 let Inst{7-5} = 0b010;
32652 let Inst{13-13} = 0b0;
32653 let Inst{31-21} = 0b00011110101;
32654 let hasNewValue = 1;
32655 let opNewValue = 0;
32656 let DecoderNamespace = "EXT_mmvec";
32657 }
32658 def V6_vadduwsat_dv_128B : HInst<
32659 (outs VecDblRegs128B:$Vdd32),
32660 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32661 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
32662 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
32663 let Inst{7-5} = 0b010;
32664 let Inst{13-13} = 0b0;
32665 let Inst{31-21} = 0b00011110101;
32666 let hasNewValue = 1;
32667 let opNewValue = 0;
32668 let DecoderNamespace = "EXT_mmvec";
32669 let isCodeGenOnly = 1;
32670 }
32671 def V6_vadduwsat_dv_alt : HInst<
32672 (outs VecDblRegs:$Vdd32),
32673 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32674 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
32675 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32676 let hasNewValue = 1;
32677 let opNewValue = 0;
32678 let isPseudo = 1;
32679 let isCodeGenOnly = 1;
32680 let DecoderNamespace = "EXT_mmvec";
32681 }
32682 def V6_vadduwsat_dv_alt_128B : HInst<
32683 (outs VecDblRegs128B:$Vdd32),
32684 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32685 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
32686 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
32687 let hasNewValue = 1;
32688 let opNewValue = 0;
32689 let isPseudo = 1;
32690 let isCodeGenOnly = 1;
32691 let DecoderNamespace = "EXT_mmvec";
32692 let isCodeGenOnly = 1;
32693 }
32694 def V6_vaddw : HInst<
32695 (outs VectorRegs:$Vd32),
32696 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32697 "$Vd32.w = vadd($Vu32.w,$Vv32.w)",
32698 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32699 let Inst{7-5} = 0b000;
32700 let Inst{13-13} = 0b0;
32701 let Inst{31-21} = 0b00011100010;
32702 let hasNewValue = 1;
32703 let opNewValue = 0;
32704 let DecoderNamespace = "EXT_mmvec";
32705 }
32706 def V6_vaddw_128B : HInst<
32707 (outs VectorRegs128B:$Vd32),
32708 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32709 "$Vd32.w = vadd($Vu32.w,$Vv32.w)",
32710 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32711 let Inst{7-5} = 0b000;
32712 let Inst{13-13} = 0b0;
32713 let Inst{31-21} = 0b00011100010;
32714 let hasNewValue = 1;
32715 let opNewValue = 0;
32716 let DecoderNamespace = "EXT_mmvec";
32717 let isCodeGenOnly = 1;
32718 }
32719 def V6_vaddw_alt : HInst<
32720 (outs VectorRegs:$Vd32),
32721 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32722 "$Vd32 = vaddw($Vu32,$Vv32)",
32723 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32724 let hasNewValue = 1;
32725 let opNewValue = 0;
32726 let isPseudo = 1;
32727 let isCodeGenOnly = 1;
32728 let DecoderNamespace = "EXT_mmvec";
32729 }
32730 def V6_vaddw_alt_128B : HInst<
32731 (outs VectorRegs128B:$Vd32),
32732 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32733 "$Vd32 = vaddw($Vu32,$Vv32)",
32734 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32735 let hasNewValue = 1;
32736 let opNewValue = 0;
32737 let isPseudo = 1;
32738 let isCodeGenOnly = 1;
32739 let DecoderNamespace = "EXT_mmvec";
32740 let isCodeGenOnly = 1;
32741 }
32742 def V6_vaddw_dv : HInst<
32743 (outs VecDblRegs:$Vdd32),
32744 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32745 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
32746 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32747 let Inst{7-5} = 0b110;
32748 let Inst{13-13} = 0b0;
32749 let Inst{31-21} = 0b00011100011;
32750 let hasNewValue = 1;
32751 let opNewValue = 0;
32752 let DecoderNamespace = "EXT_mmvec";
32753 }
32754 def V6_vaddw_dv_128B : HInst<
32755 (outs VecDblRegs128B:$Vdd32),
32756 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32757 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
32758 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32759 let Inst{7-5} = 0b110;
32760 let Inst{13-13} = 0b0;
32761 let Inst{31-21} = 0b00011100011;
32762 let hasNewValue = 1;
32763 let opNewValue = 0;
32764 let DecoderNamespace = "EXT_mmvec";
32765 let isCodeGenOnly = 1;
32766 }
32767 def V6_vaddw_dv_alt : HInst<
32768 (outs VecDblRegs:$Vdd32),
32769 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32770 "$Vdd32 = vaddw($Vuu32,$Vvv32)",
32771 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32772 let hasNewValue = 1;
32773 let opNewValue = 0;
32774 let isPseudo = 1;
32775 let isCodeGenOnly = 1;
32776 let DecoderNamespace = "EXT_mmvec";
32777 }
32778 def V6_vaddw_dv_alt_128B : HInst<
32779 (outs VecDblRegs128B:$Vdd32),
32780 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32781 "$Vdd32 = vaddw($Vuu32,$Vvv32)",
32782 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32783 let hasNewValue = 1;
32784 let opNewValue = 0;
32785 let isPseudo = 1;
32786 let isCodeGenOnly = 1;
32787 let DecoderNamespace = "EXT_mmvec";
32788 let isCodeGenOnly = 1;
32789 }
32790 def V6_vaddwnq : HInst<
32791 (outs VectorRegs:$Vx32),
32792 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
32793 "if (!$Qv4) $Vx32.w += $Vu32.w",
32794 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
32795 let Inst{7-5} = 0b101;
32796 let Inst{13-13} = 0b1;
32797 let Inst{21-16} = 0b000001;
32798 let Inst{31-24} = 0b00011110;
32799 let hasNewValue = 1;
32800 let opNewValue = 0;
32801 let isAccumulator = 1;
32802 let DecoderNamespace = "EXT_mmvec";
32803 let Constraints = "$Vx32 = $Vx32in";
32804 }
32805 def V6_vaddwnq_128B : HInst<
32806 (outs VectorRegs128B:$Vx32),
32807 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
32808 "if (!$Qv4) $Vx32.w += $Vu32.w",
32809 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
32810 let Inst{7-5} = 0b101;
32811 let Inst{13-13} = 0b1;
32812 let Inst{21-16} = 0b000001;
32813 let Inst{31-24} = 0b00011110;
32814 let hasNewValue = 1;
32815 let opNewValue = 0;
32816 let isAccumulator = 1;
32817 let DecoderNamespace = "EXT_mmvec";
32818 let isCodeGenOnly = 1;
32819 let Constraints = "$Vx32 = $Vx32in";
32820 }
32821 def V6_vaddwnq_alt : HInst<
32822 (outs VectorRegs:$Vx32),
32823 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
32824 "if (!$Qv4.w) $Vx32.w += $Vu32.w",
32825 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32826 let hasNewValue = 1;
32827 let opNewValue = 0;
32828 let isAccumulator = 1;
32829 let isPseudo = 1;
32830 let isCodeGenOnly = 1;
32831 let DecoderNamespace = "EXT_mmvec";
32832 let Constraints = "$Vx32 = $Vx32in";
32833 }
32834 def V6_vaddwnq_alt_128B : HInst<
32835 (outs VectorRegs128B:$Vx32),
32836 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
32837 "if (!$Qv4.w) $Vx32.w += $Vu32.w",
32838 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32839 let hasNewValue = 1;
32840 let opNewValue = 0;
32841 let isAccumulator = 1;
32842 let isPseudo = 1;
32843 let isCodeGenOnly = 1;
32844 let DecoderNamespace = "EXT_mmvec";
32845 let isCodeGenOnly = 1;
32846 let Constraints = "$Vx32 = $Vx32in";
32847 }
32848 def V6_vaddwq : HInst<
32849 (outs VectorRegs:$Vx32),
32850 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
32851 "if ($Qv4) $Vx32.w += $Vu32.w",
32852 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
32853 let Inst{7-5} = 0b010;
32854 let Inst{13-13} = 0b1;
32855 let Inst{21-16} = 0b000001;
32856 let Inst{31-24} = 0b00011110;
32857 let hasNewValue = 1;
32858 let opNewValue = 0;
32859 let isAccumulator = 1;
32860 let DecoderNamespace = "EXT_mmvec";
32861 let Constraints = "$Vx32 = $Vx32in";
32862 }
32863 def V6_vaddwq_128B : HInst<
32864 (outs VectorRegs128B:$Vx32),
32865 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
32866 "if ($Qv4) $Vx32.w += $Vu32.w",
32867 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
32868 let Inst{7-5} = 0b010;
32869 let Inst{13-13} = 0b1;
32870 let Inst{21-16} = 0b000001;
32871 let Inst{31-24} = 0b00011110;
32872 let hasNewValue = 1;
32873 let opNewValue = 0;
32874 let isAccumulator = 1;
32875 let DecoderNamespace = "EXT_mmvec";
32876 let isCodeGenOnly = 1;
32877 let Constraints = "$Vx32 = $Vx32in";
32878 }
32879 def V6_vaddwq_alt : HInst<
32880 (outs VectorRegs:$Vx32),
32881 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
32882 "if ($Qv4.w) $Vx32.w += $Vu32.w",
32883 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32884 let hasNewValue = 1;
32885 let opNewValue = 0;
32886 let isAccumulator = 1;
32887 let isPseudo = 1;
32888 let isCodeGenOnly = 1;
32889 let DecoderNamespace = "EXT_mmvec";
32890 let Constraints = "$Vx32 = $Vx32in";
32891 }
32892 def V6_vaddwq_alt_128B : HInst<
32893 (outs VectorRegs128B:$Vx32),
32894 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
32895 "if ($Qv4.w) $Vx32.w += $Vu32.w",
32896 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32897 let hasNewValue = 1;
32898 let opNewValue = 0;
32899 let isAccumulator = 1;
32900 let isPseudo = 1;
32901 let isCodeGenOnly = 1;
32902 let DecoderNamespace = "EXT_mmvec";
32903 let isCodeGenOnly = 1;
32904 let Constraints = "$Vx32 = $Vx32in";
32905 }
32906 def V6_vaddwsat : HInst<
32907 (outs VectorRegs:$Vd32),
32908 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32909 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
32910 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32911 let Inst{7-5} = 0b100;
32912 let Inst{13-13} = 0b0;
32913 let Inst{31-21} = 0b00011100010;
32914 let hasNewValue = 1;
32915 let opNewValue = 0;
32916 let DecoderNamespace = "EXT_mmvec";
32917 }
32918 def V6_vaddwsat_128B : HInst<
32919 (outs VectorRegs128B:$Vd32),
32920 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32921 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
32922 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
32923 let Inst{7-5} = 0b100;
32924 let Inst{13-13} = 0b0;
32925 let Inst{31-21} = 0b00011100010;
32926 let hasNewValue = 1;
32927 let opNewValue = 0;
32928 let DecoderNamespace = "EXT_mmvec";
32929 let isCodeGenOnly = 1;
32930 }
32931 def V6_vaddwsat_alt : HInst<
32932 (outs VectorRegs:$Vd32),
32933 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
32934 "$Vd32 = vaddw($Vu32,$Vv32):sat",
32935 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32936 let hasNewValue = 1;
32937 let opNewValue = 0;
32938 let isPseudo = 1;
32939 let isCodeGenOnly = 1;
32940 let DecoderNamespace = "EXT_mmvec";
32941 }
32942 def V6_vaddwsat_alt_128B : HInst<
32943 (outs VectorRegs128B:$Vd32),
32944 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
32945 "$Vd32 = vaddw($Vu32,$Vv32):sat",
32946 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32947 let hasNewValue = 1;
32948 let opNewValue = 0;
32949 let isPseudo = 1;
32950 let isCodeGenOnly = 1;
32951 let DecoderNamespace = "EXT_mmvec";
32952 let isCodeGenOnly = 1;
32953 }
32954 def V6_vaddwsat_dv : HInst<
32955 (outs VecDblRegs:$Vdd32),
32956 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32957 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
32958 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32959 let Inst{7-5} = 0b010;
32960 let Inst{13-13} = 0b0;
32961 let Inst{31-21} = 0b00011100100;
32962 let hasNewValue = 1;
32963 let opNewValue = 0;
32964 let DecoderNamespace = "EXT_mmvec";
32965 }
32966 def V6_vaddwsat_dv_128B : HInst<
32967 (outs VecDblRegs128B:$Vdd32),
32968 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32969 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
32970 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
32971 let Inst{7-5} = 0b010;
32972 let Inst{13-13} = 0b0;
32973 let Inst{31-21} = 0b00011100100;
32974 let hasNewValue = 1;
32975 let opNewValue = 0;
32976 let DecoderNamespace = "EXT_mmvec";
32977 let isCodeGenOnly = 1;
32978 }
32979 def V6_vaddwsat_dv_alt : HInst<
32980 (outs VecDblRegs:$Vdd32),
32981 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
32982 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
32983 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32984 let hasNewValue = 1;
32985 let opNewValue = 0;
32986 let isPseudo = 1;
32987 let isCodeGenOnly = 1;
32988 let DecoderNamespace = "EXT_mmvec";
32989 }
32990 def V6_vaddwsat_dv_alt_128B : HInst<
32991 (outs VecDblRegs128B:$Vdd32),
32992 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
32993 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
32994 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
32995 let hasNewValue = 1;
32996 let opNewValue = 0;
32997 let isPseudo = 1;
32998 let isCodeGenOnly = 1;
32999 let DecoderNamespace = "EXT_mmvec";
33000 let isCodeGenOnly = 1;
33001 }
33002 def V6_valignb : HInst<
33003 (outs VectorRegs:$Vd32),
33004 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33005 "$Vd32 = valign($Vu32,$Vv32,$Rt8)",
33006 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33007 let Inst{7-5} = 0b000;
33008 let Inst{13-13} = 0b0;
33009 let Inst{31-24} = 0b00011011;
33010 let hasNewValue = 1;
33011 let opNewValue = 0;
33012 let DecoderNamespace = "EXT_mmvec";
33013 }
33014 def V6_valignb_128B : HInst<
33015 (outs VectorRegs128B:$Vd32),
33016 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33017 "$Vd32 = valign($Vu32,$Vv32,$Rt8)",
33018 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33019 let Inst{7-5} = 0b000;
33020 let Inst{13-13} = 0b0;
33021 let Inst{31-24} = 0b00011011;
33022 let hasNewValue = 1;
33023 let opNewValue = 0;
33024 let DecoderNamespace = "EXT_mmvec";
33025 let isCodeGenOnly = 1;
33026 }
33027 def V6_valignbi : HInst<
33028 (outs VectorRegs:$Vd32),
33029 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
33030 "$Vd32 = valign($Vu32,$Vv32,#$Ii)",
33031 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
33032 let Inst{13-13} = 0b1;
33033 let Inst{31-21} = 0b00011110001;
33034 let hasNewValue = 1;
33035 let opNewValue = 0;
33036 let DecoderNamespace = "EXT_mmvec";
33037 }
33038 def V6_valignbi_128B : HInst<
33039 (outs VectorRegs128B:$Vd32),
33040 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
33041 "$Vd32 = valign($Vu32,$Vv32,#$Ii)",
33042 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
33043 let Inst{13-13} = 0b1;
33044 let Inst{31-21} = 0b00011110001;
33045 let hasNewValue = 1;
33046 let opNewValue = 0;
33047 let DecoderNamespace = "EXT_mmvec";
33048 let isCodeGenOnly = 1;
33049 }
33050 def V6_vand : HInst<
33051 (outs VectorRegs:$Vd32),
33052 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33053 "$Vd32 = vand($Vu32,$Vv32)",
33054 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33055 let Inst{7-5} = 0b101;
33056 let Inst{13-13} = 0b0;
33057 let Inst{31-21} = 0b00011100001;
33058 let hasNewValue = 1;
33059 let opNewValue = 0;
33060 let DecoderNamespace = "EXT_mmvec";
33061 }
33062 def V6_vand_128B : HInst<
33063 (outs VectorRegs128B:$Vd32),
33064 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33065 "$Vd32 = vand($Vu32,$Vv32)",
33066 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33067 let Inst{7-5} = 0b101;
33068 let Inst{13-13} = 0b0;
33069 let Inst{31-21} = 0b00011100001;
33070 let hasNewValue = 1;
33071 let opNewValue = 0;
33072 let DecoderNamespace = "EXT_mmvec";
33073 let isCodeGenOnly = 1;
33074 }
33075 def V6_vandnqrt : HInst<
33076 (outs VectorRegs:$Vd32),
33077 (ins VecPredRegs:$Qu4, IntRegs:$Rt32),
33078 "$Vd32 = vand(!$Qu4,$Rt32)",
33079 tc_e231aa4f, TypeCVI_VX>, Enc_7b7ba8, Requires<[HasV62T,UseHVX]> {
33080 let Inst{7-5} = 0b101;
33081 let Inst{13-10} = 0b0001;
33082 let Inst{31-21} = 0b00011001101;
33083 let hasNewValue = 1;
33084 let opNewValue = 0;
33085 let DecoderNamespace = "EXT_mmvec";
33086 }
33087 def V6_vandnqrt_128B : HInst<
33088 (outs VectorRegs128B:$Vd32),
33089 (ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33090 "$Vd32 = vand(!$Qu4,$Rt32)",
33091 tc_e231aa4f, TypeCVI_VX>, Enc_7b7ba8, Requires<[HasV62T,UseHVX]> {
33092 let Inst{7-5} = 0b101;
33093 let Inst{13-10} = 0b0001;
33094 let Inst{31-21} = 0b00011001101;
33095 let hasNewValue = 1;
33096 let opNewValue = 0;
33097 let DecoderNamespace = "EXT_mmvec";
33098 let isCodeGenOnly = 1;
33099 }
33100 def V6_vandnqrt_acc : HInst<
33101 (outs VectorRegs:$Vx32),
33102 (ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
33103 "$Vx32 |= vand(!$Qu4,$Rt32)",
33104 tc_9311da3f, TypeCVI_VX>, Enc_895bd9, Requires<[HasV62T,UseHVX]> {
33105 let Inst{7-5} = 0b011;
33106 let Inst{13-10} = 0b1001;
33107 let Inst{31-21} = 0b00011001011;
33108 let hasNewValue = 1;
33109 let opNewValue = 0;
33110 let isAccumulator = 1;
33111 let DecoderNamespace = "EXT_mmvec";
33112 let Constraints = "$Vx32 = $Vx32in";
33113 }
33114 def V6_vandnqrt_acc_128B : HInst<
33115 (outs VectorRegs128B:$Vx32),
33116 (ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33117 "$Vx32 |= vand(!$Qu4,$Rt32)",
33118 tc_9311da3f, TypeCVI_VX>, Enc_895bd9, Requires<[HasV62T,UseHVX]> {
33119 let Inst{7-5} = 0b011;
33120 let Inst{13-10} = 0b1001;
33121 let Inst{31-21} = 0b00011001011;
33122 let hasNewValue = 1;
33123 let opNewValue = 0;
33124 let isAccumulator = 1;
33125 let DecoderNamespace = "EXT_mmvec";
33126 let isCodeGenOnly = 1;
33127 let Constraints = "$Vx32 = $Vx32in";
33128 }
33129 def V6_vandnqrt_acc_alt : HInst<
33130 (outs VectorRegs:$Vx32),
33131 (ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
33132 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
33133 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
33134 let hasNewValue = 1;
33135 let opNewValue = 0;
33136 let isAccumulator = 1;
33137 let isPseudo = 1;
33138 let isCodeGenOnly = 1;
33139 let DecoderNamespace = "EXT_mmvec";
33140 let Constraints = "$Vx32 = $Vx32in";
33141 }
33142 def V6_vandnqrt_acc_alt_128B : HInst<
33143 (outs VectorRegs128B:$Vx32),
33144 (ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33145 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
33146 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
33147 let hasNewValue = 1;
33148 let opNewValue = 0;
33149 let isAccumulator = 1;
33150 let isPseudo = 1;
33151 let isCodeGenOnly = 1;
33152 let DecoderNamespace = "EXT_mmvec";
33153 let isCodeGenOnly = 1;
33154 let Constraints = "$Vx32 = $Vx32in";
33155 }
33156 def V6_vandnqrt_alt : HInst<
33157 (outs VectorRegs:$Vd32),
33158 (ins VecPredRegs:$Qu4, IntRegs:$Rt32),
33159 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
33160 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
33161 let hasNewValue = 1;
33162 let opNewValue = 0;
33163 let isPseudo = 1;
33164 let isCodeGenOnly = 1;
33165 let DecoderNamespace = "EXT_mmvec";
33166 }
33167 def V6_vandnqrt_alt_128B : HInst<
33168 (outs VectorRegs128B:$Vd32),
33169 (ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33170 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
33171 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
33172 let hasNewValue = 1;
33173 let opNewValue = 0;
33174 let isPseudo = 1;
33175 let isCodeGenOnly = 1;
33176 let DecoderNamespace = "EXT_mmvec";
33177 let isCodeGenOnly = 1;
33178 }
33179 def V6_vandqrt : HInst<
33180 (outs VectorRegs:$Vd32),
33181 (ins VecPredRegs:$Qu4, IntRegs:$Rt32),
33182 "$Vd32 = vand($Qu4,$Rt32)",
33183 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[HasV60T,UseHVX]> {
33184 let Inst{7-5} = 0b101;
33185 let Inst{13-10} = 0b0000;
33186 let Inst{31-21} = 0b00011001101;
33187 let hasNewValue = 1;
33188 let opNewValue = 0;
33189 let DecoderNamespace = "EXT_mmvec";
33190 }
33191 def V6_vandqrt_128B : HInst<
33192 (outs VectorRegs128B:$Vd32),
33193 (ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33194 "$Vd32 = vand($Qu4,$Rt32)",
33195 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[HasV60T,UseHVX]> {
33196 let Inst{7-5} = 0b101;
33197 let Inst{13-10} = 0b0000;
33198 let Inst{31-21} = 0b00011001101;
33199 let hasNewValue = 1;
33200 let opNewValue = 0;
33201 let DecoderNamespace = "EXT_mmvec";
33202 let isCodeGenOnly = 1;
33203 }
33204 def V6_vandqrt_acc : HInst<
33205 (outs VectorRegs:$Vx32),
33206 (ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
33207 "$Vx32 |= vand($Qu4,$Rt32)",
33208 tc_9311da3f, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[HasV60T,UseHVX]> {
33209 let Inst{7-5} = 0b011;
33210 let Inst{13-10} = 0b1000;
33211 let Inst{31-21} = 0b00011001011;
33212 let hasNewValue = 1;
33213 let opNewValue = 0;
33214 let isAccumulator = 1;
33215 let DecoderNamespace = "EXT_mmvec";
33216 let Constraints = "$Vx32 = $Vx32in";
33217 }
33218 def V6_vandqrt_acc_128B : HInst<
33219 (outs VectorRegs128B:$Vx32),
33220 (ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33221 "$Vx32 |= vand($Qu4,$Rt32)",
33222 tc_9311da3f, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[HasV60T,UseHVX]> {
33223 let Inst{7-5} = 0b011;
33224 let Inst{13-10} = 0b1000;
33225 let Inst{31-21} = 0b00011001011;
33226 let hasNewValue = 1;
33227 let opNewValue = 0;
33228 let isAccumulator = 1;
33229 let DecoderNamespace = "EXT_mmvec";
33230 let isCodeGenOnly = 1;
33231 let Constraints = "$Vx32 = $Vx32in";
33232 }
33233 def V6_vandqrt_acc_alt : HInst<
33234 (outs VectorRegs:$Vx32),
33235 (ins VectorRegs:$Vx32in, VecPredRegs:$Qu4, IntRegs:$Rt32),
33236 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
33237 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33238 let hasNewValue = 1;
33239 let opNewValue = 0;
33240 let isAccumulator = 1;
33241 let isPseudo = 1;
33242 let isCodeGenOnly = 1;
33243 let DecoderNamespace = "EXT_mmvec";
33244 let Constraints = "$Vx32 = $Vx32in";
33245 }
33246 def V6_vandqrt_acc_alt_128B : HInst<
33247 (outs VectorRegs128B:$Vx32),
33248 (ins VectorRegs128B:$Vx32in, VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33249 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
33250 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33251 let hasNewValue = 1;
33252 let opNewValue = 0;
33253 let isAccumulator = 1;
33254 let isPseudo = 1;
33255 let isCodeGenOnly = 1;
33256 let DecoderNamespace = "EXT_mmvec";
33257 let isCodeGenOnly = 1;
33258 let Constraints = "$Vx32 = $Vx32in";
33259 }
33260 def V6_vandqrt_alt : HInst<
33261 (outs VectorRegs:$Vd32),
33262 (ins VecPredRegs:$Qu4, IntRegs:$Rt32),
33263 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
33264 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33265 let hasNewValue = 1;
33266 let opNewValue = 0;
33267 let isPseudo = 1;
33268 let isCodeGenOnly = 1;
33269 let DecoderNamespace = "EXT_mmvec";
33270 }
33271 def V6_vandqrt_alt_128B : HInst<
33272 (outs VectorRegs128B:$Vd32),
33273 (ins VecPredRegs128B:$Qu4, IntRegs:$Rt32),
33274 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
33275 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33276 let hasNewValue = 1;
33277 let opNewValue = 0;
33278 let isPseudo = 1;
33279 let isCodeGenOnly = 1;
33280 let DecoderNamespace = "EXT_mmvec";
33281 let isCodeGenOnly = 1;
33282 }
33283 def V6_vandvnqv : HInst<
33284 (outs VectorRegs:$Vd32),
33285 (ins VecPredRegs:$Qv4, VectorRegs:$Vu32),
33286 "$Vd32 = vand(!$Qv4,$Vu32)",
33287 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
33288 let Inst{7-5} = 0b001;
33289 let Inst{13-13} = 0b1;
33290 let Inst{21-16} = 0b000011;
33291 let Inst{31-24} = 0b00011110;
33292 let hasNewValue = 1;
33293 let opNewValue = 0;
33294 let DecoderNamespace = "EXT_mmvec";
33295 }
33296 def V6_vandvnqv_128B : HInst<
33297 (outs VectorRegs128B:$Vd32),
33298 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vu32),
33299 "$Vd32 = vand(!$Qv4,$Vu32)",
33300 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
33301 let Inst{7-5} = 0b001;
33302 let Inst{13-13} = 0b1;
33303 let Inst{21-16} = 0b000011;
33304 let Inst{31-24} = 0b00011110;
33305 let hasNewValue = 1;
33306 let opNewValue = 0;
33307 let DecoderNamespace = "EXT_mmvec";
33308 let isCodeGenOnly = 1;
33309 }
33310 def V6_vandvqv : HInst<
33311 (outs VectorRegs:$Vd32),
33312 (ins VecPredRegs:$Qv4, VectorRegs:$Vu32),
33313 "$Vd32 = vand($Qv4,$Vu32)",
33314 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
33315 let Inst{7-5} = 0b000;
33316 let Inst{13-13} = 0b1;
33317 let Inst{21-16} = 0b000011;
33318 let Inst{31-24} = 0b00011110;
33319 let hasNewValue = 1;
33320 let opNewValue = 0;
33321 let DecoderNamespace = "EXT_mmvec";
33322 }
33323 def V6_vandvqv_128B : HInst<
33324 (outs VectorRegs128B:$Vd32),
33325 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vu32),
33326 "$Vd32 = vand($Qv4,$Vu32)",
33327 tc_bbaf280e, TypeCVI_VA>, Enc_c4dc92, Requires<[HasV62T,UseHVX]> {
33328 let Inst{7-5} = 0b000;
33329 let Inst{13-13} = 0b1;
33330 let Inst{21-16} = 0b000011;
33331 let Inst{31-24} = 0b00011110;
33332 let hasNewValue = 1;
33333 let opNewValue = 0;
33334 let DecoderNamespace = "EXT_mmvec";
33335 let isCodeGenOnly = 1;
33336 }
33337 def V6_vandvrt : HInst<
33338 (outs VecPredRegs:$Qd4),
33339 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33340 "$Qd4 = vand($Vu32,$Rt32)",
33341 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[HasV60T,UseHVX]> {
33342 let Inst{7-2} = 0b010010;
33343 let Inst{13-13} = 0b0;
33344 let Inst{31-21} = 0b00011001101;
33345 let hasNewValue = 1;
33346 let opNewValue = 0;
33347 let DecoderNamespace = "EXT_mmvec";
33348 }
33349 def V6_vandvrt_128B : HInst<
33350 (outs VecPredRegs128B:$Qd4),
33351 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33352 "$Qd4 = vand($Vu32,$Rt32)",
33353 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[HasV60T,UseHVX]> {
33354 let Inst{7-2} = 0b010010;
33355 let Inst{13-13} = 0b0;
33356 let Inst{31-21} = 0b00011001101;
33357 let hasNewValue = 1;
33358 let opNewValue = 0;
33359 let DecoderNamespace = "EXT_mmvec";
33360 let isCodeGenOnly = 1;
33361 }
33362 def V6_vandvrt_acc : HInst<
33363 (outs VecPredRegs:$Qx4),
33364 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, IntRegs:$Rt32),
33365 "$Qx4 |= vand($Vu32,$Rt32)",
33366 tc_9311da3f, TypeCVI_VX_LATE>, Enc_adf111, Requires<[HasV60T,UseHVX]> {
33367 let Inst{7-2} = 0b100000;
33368 let Inst{13-13} = 0b1;
33369 let Inst{31-21} = 0b00011001011;
33370 let hasNewValue = 1;
33371 let opNewValue = 0;
33372 let isAccumulator = 1;
33373 let DecoderNamespace = "EXT_mmvec";
33374 let Constraints = "$Qx4 = $Qx4in";
33375 }
33376 def V6_vandvrt_acc_128B : HInst<
33377 (outs VecPredRegs128B:$Qx4),
33378 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
33379 "$Qx4 |= vand($Vu32,$Rt32)",
33380 tc_9311da3f, TypeCVI_VX_LATE>, Enc_adf111, Requires<[HasV60T,UseHVX]> {
33381 let Inst{7-2} = 0b100000;
33382 let Inst{13-13} = 0b1;
33383 let Inst{31-21} = 0b00011001011;
33384 let hasNewValue = 1;
33385 let opNewValue = 0;
33386 let isAccumulator = 1;
33387 let DecoderNamespace = "EXT_mmvec";
33388 let isCodeGenOnly = 1;
33389 let Constraints = "$Qx4 = $Qx4in";
33390 }
33391 def V6_vandvrt_acc_alt : HInst<
33392 (outs VecPredRegs:$Qx4),
33393 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, IntRegs:$Rt32),
33394 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
33395 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33396 let hasNewValue = 1;
33397 let opNewValue = 0;
33398 let isAccumulator = 1;
33399 let isPseudo = 1;
33400 let isCodeGenOnly = 1;
33401 let DecoderNamespace = "EXT_mmvec";
33402 let Constraints = "$Qx4 = $Qx4in";
33403 }
33404 def V6_vandvrt_acc_alt_128B : HInst<
33405 (outs VecPredRegs128B:$Qx4),
33406 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
33407 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
33408 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33409 let hasNewValue = 1;
33410 let opNewValue = 0;
33411 let isAccumulator = 1;
33412 let isPseudo = 1;
33413 let isCodeGenOnly = 1;
33414 let DecoderNamespace = "EXT_mmvec";
33415 let isCodeGenOnly = 1;
33416 let Constraints = "$Qx4 = $Qx4in";
33417 }
33418 def V6_vandvrt_alt : HInst<
33419 (outs VecPredRegs:$Qd4),
33420 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33421 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
33422 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33423 let hasNewValue = 1;
33424 let opNewValue = 0;
33425 let isPseudo = 1;
33426 let isCodeGenOnly = 1;
33427 let DecoderNamespace = "EXT_mmvec";
33428 }
33429 def V6_vandvrt_alt_128B : HInst<
33430 (outs VecPredRegs128B:$Qd4),
33431 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33432 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
33433 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33434 let hasNewValue = 1;
33435 let opNewValue = 0;
33436 let isPseudo = 1;
33437 let isCodeGenOnly = 1;
33438 let DecoderNamespace = "EXT_mmvec";
33439 let isCodeGenOnly = 1;
33440 }
33441 def V6_vaslh : HInst<
33442 (outs VectorRegs:$Vd32),
33443 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33444 "$Vd32.h = vasl($Vu32.h,$Rt32)",
33445 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33446 let Inst{7-5} = 0b000;
33447 let Inst{13-13} = 0b0;
33448 let Inst{31-21} = 0b00011001100;
33449 let hasNewValue = 1;
33450 let opNewValue = 0;
33451 let DecoderNamespace = "EXT_mmvec";
33452 }
33453 def V6_vaslh_128B : HInst<
33454 (outs VectorRegs128B:$Vd32),
33455 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33456 "$Vd32.h = vasl($Vu32.h,$Rt32)",
33457 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33458 let Inst{7-5} = 0b000;
33459 let Inst{13-13} = 0b0;
33460 let Inst{31-21} = 0b00011001100;
33461 let hasNewValue = 1;
33462 let opNewValue = 0;
33463 let DecoderNamespace = "EXT_mmvec";
33464 let isCodeGenOnly = 1;
33465 }
33466 def V6_vaslh_alt : HInst<
33467 (outs VectorRegs:$Vd32),
33468 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33469 "$Vd32 = vaslh($Vu32,$Rt32)",
33470 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33471 let hasNewValue = 1;
33472 let opNewValue = 0;
33473 let isPseudo = 1;
33474 let isCodeGenOnly = 1;
33475 let DecoderNamespace = "EXT_mmvec";
33476 }
33477 def V6_vaslh_alt_128B : HInst<
33478 (outs VectorRegs128B:$Vd32),
33479 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33480 "$Vd32 = vaslh($Vu32,$Rt32)",
33481 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33482 let hasNewValue = 1;
33483 let opNewValue = 0;
33484 let isPseudo = 1;
33485 let isCodeGenOnly = 1;
33486 let DecoderNamespace = "EXT_mmvec";
33487 let isCodeGenOnly = 1;
33488 }
33489 def V6_vaslhv : HInst<
33490 (outs VectorRegs:$Vd32),
33491 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33492 "$Vd32.h = vasl($Vu32.h,$Vv32.h)",
33493 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33494 let Inst{7-5} = 0b101;
33495 let Inst{13-13} = 0b0;
33496 let Inst{31-21} = 0b00011111101;
33497 let hasNewValue = 1;
33498 let opNewValue = 0;
33499 let DecoderNamespace = "EXT_mmvec";
33500 }
33501 def V6_vaslhv_128B : HInst<
33502 (outs VectorRegs128B:$Vd32),
33503 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33504 "$Vd32.h = vasl($Vu32.h,$Vv32.h)",
33505 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33506 let Inst{7-5} = 0b101;
33507 let Inst{13-13} = 0b0;
33508 let Inst{31-21} = 0b00011111101;
33509 let hasNewValue = 1;
33510 let opNewValue = 0;
33511 let DecoderNamespace = "EXT_mmvec";
33512 let isCodeGenOnly = 1;
33513 }
33514 def V6_vaslhv_alt : HInst<
33515 (outs VectorRegs:$Vd32),
33516 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33517 "$Vd32 = vaslh($Vu32,$Vv32)",
33518 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33519 let hasNewValue = 1;
33520 let opNewValue = 0;
33521 let isPseudo = 1;
33522 let isCodeGenOnly = 1;
33523 let DecoderNamespace = "EXT_mmvec";
33524 }
33525 def V6_vaslhv_alt_128B : HInst<
33526 (outs VectorRegs128B:$Vd32),
33527 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33528 "$Vd32 = vaslh($Vu32,$Vv32)",
33529 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33530 let hasNewValue = 1;
33531 let opNewValue = 0;
33532 let isPseudo = 1;
33533 let isCodeGenOnly = 1;
33534 let DecoderNamespace = "EXT_mmvec";
33535 let isCodeGenOnly = 1;
33536 }
33537 def V6_vaslw : HInst<
33538 (outs VectorRegs:$Vd32),
33539 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33540 "$Vd32.w = vasl($Vu32.w,$Rt32)",
33541 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33542 let Inst{7-5} = 0b111;
33543 let Inst{13-13} = 0b0;
33544 let Inst{31-21} = 0b00011001011;
33545 let hasNewValue = 1;
33546 let opNewValue = 0;
33547 let DecoderNamespace = "EXT_mmvec";
33548 }
33549 def V6_vaslw_128B : HInst<
33550 (outs VectorRegs128B:$Vd32),
33551 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33552 "$Vd32.w = vasl($Vu32.w,$Rt32)",
33553 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33554 let Inst{7-5} = 0b111;
33555 let Inst{13-13} = 0b0;
33556 let Inst{31-21} = 0b00011001011;
33557 let hasNewValue = 1;
33558 let opNewValue = 0;
33559 let DecoderNamespace = "EXT_mmvec";
33560 let isCodeGenOnly = 1;
33561 }
33562 def V6_vaslw_acc : HInst<
33563 (outs VectorRegs:$Vx32),
33564 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
33565 "$Vx32.w += vasl($Vu32.w,$Rt32)",
33566 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
33567 let Inst{7-5} = 0b010;
33568 let Inst{13-13} = 0b1;
33569 let Inst{31-21} = 0b00011001011;
33570 let hasNewValue = 1;
33571 let opNewValue = 0;
33572 let isAccumulator = 1;
33573 let DecoderNamespace = "EXT_mmvec";
33574 let Constraints = "$Vx32 = $Vx32in";
33575 }
33576 def V6_vaslw_acc_128B : HInst<
33577 (outs VectorRegs128B:$Vx32),
33578 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
33579 "$Vx32.w += vasl($Vu32.w,$Rt32)",
33580 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
33581 let Inst{7-5} = 0b010;
33582 let Inst{13-13} = 0b1;
33583 let Inst{31-21} = 0b00011001011;
33584 let hasNewValue = 1;
33585 let opNewValue = 0;
33586 let isAccumulator = 1;
33587 let DecoderNamespace = "EXT_mmvec";
33588 let isCodeGenOnly = 1;
33589 let Constraints = "$Vx32 = $Vx32in";
33590 }
33591 def V6_vaslw_acc_alt : HInst<
33592 (outs VectorRegs:$Vx32),
33593 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
33594 "$Vx32 += vaslw($Vu32,$Rt32)",
33595 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33596 let hasNewValue = 1;
33597 let opNewValue = 0;
33598 let isAccumulator = 1;
33599 let isPseudo = 1;
33600 let isCodeGenOnly = 1;
33601 let DecoderNamespace = "EXT_mmvec";
33602 let Constraints = "$Vx32 = $Vx32in";
33603 }
33604 def V6_vaslw_acc_alt_128B : HInst<
33605 (outs VectorRegs128B:$Vx32),
33606 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
33607 "$Vx32 += vaslw($Vu32,$Rt32)",
33608 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33609 let hasNewValue = 1;
33610 let opNewValue = 0;
33611 let isAccumulator = 1;
33612 let isPseudo = 1;
33613 let isCodeGenOnly = 1;
33614 let DecoderNamespace = "EXT_mmvec";
33615 let isCodeGenOnly = 1;
33616 let Constraints = "$Vx32 = $Vx32in";
33617 }
33618 def V6_vaslw_alt : HInst<
33619 (outs VectorRegs:$Vd32),
33620 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33621 "$Vd32 = vaslw($Vu32,$Rt32)",
33622 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33623 let hasNewValue = 1;
33624 let opNewValue = 0;
33625 let isPseudo = 1;
33626 let isCodeGenOnly = 1;
33627 let DecoderNamespace = "EXT_mmvec";
33628 }
33629 def V6_vaslw_alt_128B : HInst<
33630 (outs VectorRegs128B:$Vd32),
33631 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33632 "$Vd32 = vaslw($Vu32,$Rt32)",
33633 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33634 let hasNewValue = 1;
33635 let opNewValue = 0;
33636 let isPseudo = 1;
33637 let isCodeGenOnly = 1;
33638 let DecoderNamespace = "EXT_mmvec";
33639 let isCodeGenOnly = 1;
33640 }
33641 def V6_vaslwv : HInst<
33642 (outs VectorRegs:$Vd32),
33643 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33644 "$Vd32.w = vasl($Vu32.w,$Vv32.w)",
33645 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33646 let Inst{7-5} = 0b100;
33647 let Inst{13-13} = 0b0;
33648 let Inst{31-21} = 0b00011111101;
33649 let hasNewValue = 1;
33650 let opNewValue = 0;
33651 let DecoderNamespace = "EXT_mmvec";
33652 }
33653 def V6_vaslwv_128B : HInst<
33654 (outs VectorRegs128B:$Vd32),
33655 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33656 "$Vd32.w = vasl($Vu32.w,$Vv32.w)",
33657 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33658 let Inst{7-5} = 0b100;
33659 let Inst{13-13} = 0b0;
33660 let Inst{31-21} = 0b00011111101;
33661 let hasNewValue = 1;
33662 let opNewValue = 0;
33663 let DecoderNamespace = "EXT_mmvec";
33664 let isCodeGenOnly = 1;
33665 }
33666 def V6_vaslwv_alt : HInst<
33667 (outs VectorRegs:$Vd32),
33668 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33669 "$Vd32 = vaslw($Vu32,$Vv32)",
33670 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33671 let hasNewValue = 1;
33672 let opNewValue = 0;
33673 let isPseudo = 1;
33674 let isCodeGenOnly = 1;
33675 let DecoderNamespace = "EXT_mmvec";
33676 }
33677 def V6_vaslwv_alt_128B : HInst<
33678 (outs VectorRegs128B:$Vd32),
33679 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33680 "$Vd32 = vaslw($Vu32,$Vv32)",
33681 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33682 let hasNewValue = 1;
33683 let opNewValue = 0;
33684 let isPseudo = 1;
33685 let isCodeGenOnly = 1;
33686 let DecoderNamespace = "EXT_mmvec";
33687 let isCodeGenOnly = 1;
33688 }
33689 def V6_vasrh : HInst<
33690 (outs VectorRegs:$Vd32),
33691 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33692 "$Vd32.h = vasr($Vu32.h,$Rt32)",
33693 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33694 let Inst{7-5} = 0b110;
33695 let Inst{13-13} = 0b0;
33696 let Inst{31-21} = 0b00011001011;
33697 let hasNewValue = 1;
33698 let opNewValue = 0;
33699 let DecoderNamespace = "EXT_mmvec";
33700 }
33701 def V6_vasrh_128B : HInst<
33702 (outs VectorRegs128B:$Vd32),
33703 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33704 "$Vd32.h = vasr($Vu32.h,$Rt32)",
33705 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33706 let Inst{7-5} = 0b110;
33707 let Inst{13-13} = 0b0;
33708 let Inst{31-21} = 0b00011001011;
33709 let hasNewValue = 1;
33710 let opNewValue = 0;
33711 let DecoderNamespace = "EXT_mmvec";
33712 let isCodeGenOnly = 1;
33713 }
33714 def V6_vasrh_alt : HInst<
33715 (outs VectorRegs:$Vd32),
33716 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33717 "$Vd32 = vasrh($Vu32,$Rt32)",
33718 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33719 let hasNewValue = 1;
33720 let opNewValue = 0;
33721 let isPseudo = 1;
33722 let isCodeGenOnly = 1;
33723 let DecoderNamespace = "EXT_mmvec";
33724 }
33725 def V6_vasrh_alt_128B : HInst<
33726 (outs VectorRegs128B:$Vd32),
33727 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33728 "$Vd32 = vasrh($Vu32,$Rt32)",
33729 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33730 let hasNewValue = 1;
33731 let opNewValue = 0;
33732 let isPseudo = 1;
33733 let isCodeGenOnly = 1;
33734 let DecoderNamespace = "EXT_mmvec";
33735 let isCodeGenOnly = 1;
33736 }
33737 def V6_vasrhbrndsat : HInst<
33738 (outs VectorRegs:$Vd32),
33739 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33740 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
33741 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33742 let Inst{7-5} = 0b000;
33743 let Inst{13-13} = 0b1;
33744 let Inst{31-24} = 0b00011011;
33745 let hasNewValue = 1;
33746 let opNewValue = 0;
33747 let DecoderNamespace = "EXT_mmvec";
33748 }
33749 def V6_vasrhbrndsat_128B : HInst<
33750 (outs VectorRegs128B:$Vd32),
33751 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33752 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
33753 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33754 let Inst{7-5} = 0b000;
33755 let Inst{13-13} = 0b1;
33756 let Inst{31-24} = 0b00011011;
33757 let hasNewValue = 1;
33758 let opNewValue = 0;
33759 let DecoderNamespace = "EXT_mmvec";
33760 let isCodeGenOnly = 1;
33761 }
33762 def V6_vasrhbrndsat_alt : HInst<
33763 (outs VectorRegs:$Vd32),
33764 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33765 "$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat",
33766 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
33767 let hasNewValue = 1;
33768 let opNewValue = 0;
33769 let isPseudo = 1;
33770 let isCodeGenOnly = 1;
33771 }
33772 def V6_vasrhbsat : HInst<
33773 (outs VectorRegs:$Vd32),
33774 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33775 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
33776 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
33777 let Inst{7-5} = 0b000;
33778 let Inst{13-13} = 0b0;
33779 let Inst{31-24} = 0b00011000;
33780 let hasNewValue = 1;
33781 let opNewValue = 0;
33782 let DecoderNamespace = "EXT_mmvec";
33783 }
33784 def V6_vasrhbsat_128B : HInst<
33785 (outs VectorRegs128B:$Vd32),
33786 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33787 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
33788 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
33789 let Inst{7-5} = 0b000;
33790 let Inst{13-13} = 0b0;
33791 let Inst{31-24} = 0b00011000;
33792 let hasNewValue = 1;
33793 let opNewValue = 0;
33794 let DecoderNamespace = "EXT_mmvec";
33795 let isCodeGenOnly = 1;
33796 }
33797 def V6_vasrhubrndsat : HInst<
33798 (outs VectorRegs:$Vd32),
33799 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33800 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
33801 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33802 let Inst{7-5} = 0b111;
33803 let Inst{13-13} = 0b0;
33804 let Inst{31-24} = 0b00011011;
33805 let hasNewValue = 1;
33806 let opNewValue = 0;
33807 let DecoderNamespace = "EXT_mmvec";
33808 }
33809 def V6_vasrhubrndsat_128B : HInst<
33810 (outs VectorRegs128B:$Vd32),
33811 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33812 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
33813 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33814 let Inst{7-5} = 0b111;
33815 let Inst{13-13} = 0b0;
33816 let Inst{31-24} = 0b00011011;
33817 let hasNewValue = 1;
33818 let opNewValue = 0;
33819 let DecoderNamespace = "EXT_mmvec";
33820 let isCodeGenOnly = 1;
33821 }
33822 def V6_vasrhubrndsat_alt : HInst<
33823 (outs VectorRegs:$Vd32),
33824 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33825 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):rnd:sat",
33826 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
33827 let hasNewValue = 1;
33828 let opNewValue = 0;
33829 let isPseudo = 1;
33830 let isCodeGenOnly = 1;
33831 }
33832 def V6_vasrhubsat : HInst<
33833 (outs VectorRegs:$Vd32),
33834 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33835 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
33836 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33837 let Inst{7-5} = 0b110;
33838 let Inst{13-13} = 0b0;
33839 let Inst{31-24} = 0b00011011;
33840 let hasNewValue = 1;
33841 let opNewValue = 0;
33842 let DecoderNamespace = "EXT_mmvec";
33843 }
33844 def V6_vasrhubsat_128B : HInst<
33845 (outs VectorRegs128B:$Vd32),
33846 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33847 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
33848 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
33849 let Inst{7-5} = 0b110;
33850 let Inst{13-13} = 0b0;
33851 let Inst{31-24} = 0b00011011;
33852 let hasNewValue = 1;
33853 let opNewValue = 0;
33854 let DecoderNamespace = "EXT_mmvec";
33855 let isCodeGenOnly = 1;
33856 }
33857 def V6_vasrhubsat_alt : HInst<
33858 (outs VectorRegs:$Vd32),
33859 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33860 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):sat",
33861 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
33862 let hasNewValue = 1;
33863 let opNewValue = 0;
33864 let isPseudo = 1;
33865 let isCodeGenOnly = 1;
33866 }
33867 def V6_vasrhv : HInst<
33868 (outs VectorRegs:$Vd32),
33869 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33870 "$Vd32.h = vasr($Vu32.h,$Vv32.h)",
33871 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33872 let Inst{7-5} = 0b011;
33873 let Inst{13-13} = 0b0;
33874 let Inst{31-21} = 0b00011111101;
33875 let hasNewValue = 1;
33876 let opNewValue = 0;
33877 let DecoderNamespace = "EXT_mmvec";
33878 }
33879 def V6_vasrhv_128B : HInst<
33880 (outs VectorRegs128B:$Vd32),
33881 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33882 "$Vd32.h = vasr($Vu32.h,$Vv32.h)",
33883 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
33884 let Inst{7-5} = 0b011;
33885 let Inst{13-13} = 0b0;
33886 let Inst{31-21} = 0b00011111101;
33887 let hasNewValue = 1;
33888 let opNewValue = 0;
33889 let DecoderNamespace = "EXT_mmvec";
33890 let isCodeGenOnly = 1;
33891 }
33892 def V6_vasrhv_alt : HInst<
33893 (outs VectorRegs:$Vd32),
33894 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
33895 "$Vd32 = vasrh($Vu32,$Vv32)",
33896 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33897 let hasNewValue = 1;
33898 let opNewValue = 0;
33899 let isPseudo = 1;
33900 let isCodeGenOnly = 1;
33901 let DecoderNamespace = "EXT_mmvec";
33902 }
33903 def V6_vasrhv_alt_128B : HInst<
33904 (outs VectorRegs128B:$Vd32),
33905 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
33906 "$Vd32 = vasrh($Vu32,$Vv32)",
33907 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33908 let hasNewValue = 1;
33909 let opNewValue = 0;
33910 let isPseudo = 1;
33911 let isCodeGenOnly = 1;
33912 let DecoderNamespace = "EXT_mmvec";
33913 let isCodeGenOnly = 1;
33914 }
33915 def V6_vasruwuhrndsat : HInst<
33916 (outs VectorRegs:$Vd32),
33917 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
33918 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
33919 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
33920 let Inst{7-5} = 0b001;
33921 let Inst{13-13} = 0b0;
33922 let Inst{31-24} = 0b00011000;
33923 let hasNewValue = 1;
33924 let opNewValue = 0;
33925 let DecoderNamespace = "EXT_mmvec";
33926 }
33927 def V6_vasruwuhrndsat_128B : HInst<
33928 (outs VectorRegs128B:$Vd32),
33929 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
33930 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
33931 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
33932 let Inst{7-5} = 0b001;
33933 let Inst{13-13} = 0b0;
33934 let Inst{31-24} = 0b00011000;
33935 let hasNewValue = 1;
33936 let opNewValue = 0;
33937 let DecoderNamespace = "EXT_mmvec";
33938 let isCodeGenOnly = 1;
33939 }
33940 def V6_vasrw : HInst<
33941 (outs VectorRegs:$Vd32),
33942 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
33943 "$Vd32.w = vasr($Vu32.w,$Rt32)",
33944 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33945 let Inst{7-5} = 0b101;
33946 let Inst{13-13} = 0b0;
33947 let Inst{31-21} = 0b00011001011;
33948 let hasNewValue = 1;
33949 let opNewValue = 0;
33950 let DecoderNamespace = "EXT_mmvec";
33951 }
33952 def V6_vasrw_128B : HInst<
33953 (outs VectorRegs128B:$Vd32),
33954 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
33955 "$Vd32.w = vasr($Vu32.w,$Rt32)",
33956 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
33957 let Inst{7-5} = 0b101;
33958 let Inst{13-13} = 0b0;
33959 let Inst{31-21} = 0b00011001011;
33960 let hasNewValue = 1;
33961 let opNewValue = 0;
33962 let DecoderNamespace = "EXT_mmvec";
33963 let isCodeGenOnly = 1;
33964 }
33965 def V6_vasrw_acc : HInst<
33966 (outs VectorRegs:$Vx32),
33967 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
33968 "$Vx32.w += vasr($Vu32.w,$Rt32)",
33969 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
33970 let Inst{7-5} = 0b101;
33971 let Inst{13-13} = 0b1;
33972 let Inst{31-21} = 0b00011001011;
33973 let hasNewValue = 1;
33974 let opNewValue = 0;
33975 let isAccumulator = 1;
33976 let DecoderNamespace = "EXT_mmvec";
33977 let Constraints = "$Vx32 = $Vx32in";
33978 }
33979 def V6_vasrw_acc_128B : HInst<
33980 (outs VectorRegs128B:$Vx32),
33981 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
33982 "$Vx32.w += vasr($Vu32.w,$Rt32)",
33983 tc_c00bf9c9, TypeCVI_VS>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
33984 let Inst{7-5} = 0b101;
33985 let Inst{13-13} = 0b1;
33986 let Inst{31-21} = 0b00011001011;
33987 let hasNewValue = 1;
33988 let opNewValue = 0;
33989 let isAccumulator = 1;
33990 let DecoderNamespace = "EXT_mmvec";
33991 let isCodeGenOnly = 1;
33992 let Constraints = "$Vx32 = $Vx32in";
33993 }
33994 def V6_vasrw_acc_alt : HInst<
33995 (outs VectorRegs:$Vx32),
33996 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
33997 "$Vx32 += vasrw($Vu32,$Rt32)",
33998 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
33999 let hasNewValue = 1;
34000 let opNewValue = 0;
34001 let isAccumulator = 1;
34002 let isPseudo = 1;
34003 let isCodeGenOnly = 1;
34004 let DecoderNamespace = "EXT_mmvec";
34005 let Constraints = "$Vx32 = $Vx32in";
34006 }
34007 def V6_vasrw_acc_alt_128B : HInst<
34008 (outs VectorRegs128B:$Vx32),
34009 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
34010 "$Vx32 += vasrw($Vu32,$Rt32)",
34011 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34012 let hasNewValue = 1;
34013 let opNewValue = 0;
34014 let isAccumulator = 1;
34015 let isPseudo = 1;
34016 let isCodeGenOnly = 1;
34017 let DecoderNamespace = "EXT_mmvec";
34018 let isCodeGenOnly = 1;
34019 let Constraints = "$Vx32 = $Vx32in";
34020 }
34021 def V6_vasrw_alt : HInst<
34022 (outs VectorRegs:$Vd32),
34023 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
34024 "$Vd32 = vasrw($Vu32,$Rt32)",
34025 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34026 let hasNewValue = 1;
34027 let opNewValue = 0;
34028 let isPseudo = 1;
34029 let isCodeGenOnly = 1;
34030 let DecoderNamespace = "EXT_mmvec";
34031 }
34032 def V6_vasrw_alt_128B : HInst<
34033 (outs VectorRegs128B:$Vd32),
34034 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
34035 "$Vd32 = vasrw($Vu32,$Rt32)",
34036 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34037 let hasNewValue = 1;
34038 let opNewValue = 0;
34039 let isPseudo = 1;
34040 let isCodeGenOnly = 1;
34041 let DecoderNamespace = "EXT_mmvec";
34042 let isCodeGenOnly = 1;
34043 }
34044 def V6_vasrwh : HInst<
34045 (outs VectorRegs:$Vd32),
34046 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34047 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
34048 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34049 let Inst{7-5} = 0b010;
34050 let Inst{13-13} = 0b0;
34051 let Inst{31-24} = 0b00011011;
34052 let hasNewValue = 1;
34053 let opNewValue = 0;
34054 let DecoderNamespace = "EXT_mmvec";
34055 }
34056 def V6_vasrwh_128B : HInst<
34057 (outs VectorRegs128B:$Vd32),
34058 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
34059 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
34060 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34061 let Inst{7-5} = 0b010;
34062 let Inst{13-13} = 0b0;
34063 let Inst{31-24} = 0b00011011;
34064 let hasNewValue = 1;
34065 let opNewValue = 0;
34066 let DecoderNamespace = "EXT_mmvec";
34067 let isCodeGenOnly = 1;
34068 }
34069 def V6_vasrwh_alt : HInst<
34070 (outs VectorRegs:$Vd32),
34071 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34072 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8)",
34073 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
34074 let hasNewValue = 1;
34075 let opNewValue = 0;
34076 let isPseudo = 1;
34077 let isCodeGenOnly = 1;
34078 }
34079 def V6_vasrwhrndsat : HInst<
34080 (outs VectorRegs:$Vd32),
34081 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34082 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
34083 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34084 let Inst{7-5} = 0b100;
34085 let Inst{13-13} = 0b0;
34086 let Inst{31-24} = 0b00011011;
34087 let hasNewValue = 1;
34088 let opNewValue = 0;
34089 let DecoderNamespace = "EXT_mmvec";
34090 }
34091 def V6_vasrwhrndsat_128B : HInst<
34092 (outs VectorRegs128B:$Vd32),
34093 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
34094 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
34095 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34096 let Inst{7-5} = 0b100;
34097 let Inst{13-13} = 0b0;
34098 let Inst{31-24} = 0b00011011;
34099 let hasNewValue = 1;
34100 let opNewValue = 0;
34101 let DecoderNamespace = "EXT_mmvec";
34102 let isCodeGenOnly = 1;
34103 }
34104 def V6_vasrwhrndsat_alt : HInst<
34105 (outs VectorRegs:$Vd32),
34106 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34107 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):rnd:sat",
34108 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
34109 let hasNewValue = 1;
34110 let opNewValue = 0;
34111 let isPseudo = 1;
34112 let isCodeGenOnly = 1;
34113 }
34114 def V6_vasrwhsat : HInst<
34115 (outs VectorRegs:$Vd32),
34116 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34117 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
34118 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34119 let Inst{7-5} = 0b011;
34120 let Inst{13-13} = 0b0;
34121 let Inst{31-24} = 0b00011011;
34122 let hasNewValue = 1;
34123 let opNewValue = 0;
34124 let DecoderNamespace = "EXT_mmvec";
34125 }
34126 def V6_vasrwhsat_128B : HInst<
34127 (outs VectorRegs128B:$Vd32),
34128 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
34129 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
34130 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34131 let Inst{7-5} = 0b011;
34132 let Inst{13-13} = 0b0;
34133 let Inst{31-24} = 0b00011011;
34134 let hasNewValue = 1;
34135 let opNewValue = 0;
34136 let DecoderNamespace = "EXT_mmvec";
34137 let isCodeGenOnly = 1;
34138 }
34139 def V6_vasrwhsat_alt : HInst<
34140 (outs VectorRegs:$Vd32),
34141 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34142 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):sat",
34143 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
34144 let hasNewValue = 1;
34145 let opNewValue = 0;
34146 let isPseudo = 1;
34147 let isCodeGenOnly = 1;
34148 }
34149 def V6_vasrwuhrndsat : HInst<
34150 (outs VectorRegs:$Vd32),
34151 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34152 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
34153 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
34154 let Inst{7-5} = 0b010;
34155 let Inst{13-13} = 0b0;
34156 let Inst{31-24} = 0b00011000;
34157 let hasNewValue = 1;
34158 let opNewValue = 0;
34159 let DecoderNamespace = "EXT_mmvec";
34160 }
34161 def V6_vasrwuhrndsat_128B : HInst<
34162 (outs VectorRegs128B:$Vd32),
34163 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
34164 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
34165 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
34166 let Inst{7-5} = 0b010;
34167 let Inst{13-13} = 0b0;
34168 let Inst{31-24} = 0b00011000;
34169 let hasNewValue = 1;
34170 let opNewValue = 0;
34171 let DecoderNamespace = "EXT_mmvec";
34172 let isCodeGenOnly = 1;
34173 }
34174 def V6_vasrwuhsat : HInst<
34175 (outs VectorRegs:$Vd32),
34176 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34177 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
34178 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34179 let Inst{7-5} = 0b101;
34180 let Inst{13-13} = 0b0;
34181 let Inst{31-24} = 0b00011011;
34182 let hasNewValue = 1;
34183 let opNewValue = 0;
34184 let DecoderNamespace = "EXT_mmvec";
34185 }
34186 def V6_vasrwuhsat_128B : HInst<
34187 (outs VectorRegs128B:$Vd32),
34188 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
34189 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
34190 tc_7fa8b40f, TypeCVI_VS>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
34191 let Inst{7-5} = 0b101;
34192 let Inst{13-13} = 0b0;
34193 let Inst{31-24} = 0b00011011;
34194 let hasNewValue = 1;
34195 let opNewValue = 0;
34196 let DecoderNamespace = "EXT_mmvec";
34197 let isCodeGenOnly = 1;
34198 }
34199 def V6_vasrwuhsat_alt : HInst<
34200 (outs VectorRegs:$Vd32),
34201 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
34202 "$Vd32 = vasrwuh($Vu32,$Vv32,$Rt8):sat",
34203 tc_7fa8b40f, TypeMAPPING>, Requires<[HasV60T]> {
34204 let hasNewValue = 1;
34205 let opNewValue = 0;
34206 let isPseudo = 1;
34207 let isCodeGenOnly = 1;
34208 }
34209 def V6_vasrwv : HInst<
34210 (outs VectorRegs:$Vd32),
34211 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34212 "$Vd32.w = vasr($Vu32.w,$Vv32.w)",
34213 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34214 let Inst{7-5} = 0b000;
34215 let Inst{13-13} = 0b0;
34216 let Inst{31-21} = 0b00011111101;
34217 let hasNewValue = 1;
34218 let opNewValue = 0;
34219 let DecoderNamespace = "EXT_mmvec";
34220 }
34221 def V6_vasrwv_128B : HInst<
34222 (outs VectorRegs128B:$Vd32),
34223 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34224 "$Vd32.w = vasr($Vu32.w,$Vv32.w)",
34225 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34226 let Inst{7-5} = 0b000;
34227 let Inst{13-13} = 0b0;
34228 let Inst{31-21} = 0b00011111101;
34229 let hasNewValue = 1;
34230 let opNewValue = 0;
34231 let DecoderNamespace = "EXT_mmvec";
34232 let isCodeGenOnly = 1;
34233 }
34234 def V6_vasrwv_alt : HInst<
34235 (outs VectorRegs:$Vd32),
34236 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34237 "$Vd32 = vasrw($Vu32,$Vv32)",
34238 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34239 let hasNewValue = 1;
34240 let opNewValue = 0;
34241 let isPseudo = 1;
34242 let isCodeGenOnly = 1;
34243 let DecoderNamespace = "EXT_mmvec";
34244 }
34245 def V6_vasrwv_alt_128B : HInst<
34246 (outs VectorRegs128B:$Vd32),
34247 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34248 "$Vd32 = vasrw($Vu32,$Vv32)",
34249 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34250 let hasNewValue = 1;
34251 let opNewValue = 0;
34252 let isPseudo = 1;
34253 let isCodeGenOnly = 1;
34254 let DecoderNamespace = "EXT_mmvec";
34255 let isCodeGenOnly = 1;
34256 }
34257 def V6_vassign : HInst<
34258 (outs VectorRegs:$Vd32),
34259 (ins VectorRegs:$Vu32),
34260 "$Vd32 = $Vu32",
34261 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34262 let Inst{7-5} = 0b111;
34263 let Inst{13-13} = 0b1;
34264 let Inst{31-16} = 0b0001111000000011;
34265 let hasNewValue = 1;
34266 let opNewValue = 0;
34267 let DecoderNamespace = "EXT_mmvec";
34268 }
34269 def V6_vassign_128B : HInst<
34270 (outs VectorRegs128B:$Vd32),
34271 (ins VectorRegs128B:$Vu32),
34272 "$Vd32 = $Vu32",
34273 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34274 let Inst{7-5} = 0b111;
34275 let Inst{13-13} = 0b1;
34276 let Inst{31-16} = 0b0001111000000011;
34277 let hasNewValue = 1;
34278 let opNewValue = 0;
34279 let DecoderNamespace = "EXT_mmvec";
34280 let isCodeGenOnly = 1;
34281 }
34282 def V6_vassignp : HInst<
34283 (outs VecDblRegs:$Vdd32),
34284 (ins VecDblRegs:$Vuu32),
34285 "$Vdd32 = $Vuu32",
34286 CVI_VA, TypeCVI_VA_DV>, Requires<[HasV60T,UseHVX]> {
34287 let hasNewValue = 1;
34288 let opNewValue = 0;
34289 let isPseudo = 1;
34290 let DecoderNamespace = "EXT_mmvec";
34291 }
34292 def V6_vassignp_128B : HInst<
34293 (outs VecDblRegs128B:$Vdd32),
34294 (ins VecDblRegs128B:$Vuu32),
34295 "$Vdd32 = $Vuu32",
34296 CVI_VA, TypeCVI_VA_DV>, Requires<[HasV60T,UseHVX]> {
34297 let hasNewValue = 1;
34298 let opNewValue = 0;
34299 let isPseudo = 1;
34300 let DecoderNamespace = "EXT_mmvec";
34301 let isCodeGenOnly = 1;
34302 }
34303 def V6_vavgh : HInst<
34304 (outs VectorRegs:$Vd32),
34305 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34306 "$Vd32.h = vavg($Vu32.h,$Vv32.h)",
34307 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34308 let Inst{7-5} = 0b110;
34309 let Inst{13-13} = 0b0;
34310 let Inst{31-21} = 0b00011100110;
34311 let hasNewValue = 1;
34312 let opNewValue = 0;
34313 let DecoderNamespace = "EXT_mmvec";
34314 }
34315 def V6_vavgh_128B : HInst<
34316 (outs VectorRegs128B:$Vd32),
34317 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34318 "$Vd32.h = vavg($Vu32.h,$Vv32.h)",
34319 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34320 let Inst{7-5} = 0b110;
34321 let Inst{13-13} = 0b0;
34322 let Inst{31-21} = 0b00011100110;
34323 let hasNewValue = 1;
34324 let opNewValue = 0;
34325 let DecoderNamespace = "EXT_mmvec";
34326 let isCodeGenOnly = 1;
34327 }
34328 def V6_vavgh_alt : HInst<
34329 (outs VectorRegs:$Vd32),
34330 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34331 "$Vd32 = vavgh($Vu32,$Vv32)",
34332 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34333 let hasNewValue = 1;
34334 let opNewValue = 0;
34335 let isPseudo = 1;
34336 let isCodeGenOnly = 1;
34337 let DecoderNamespace = "EXT_mmvec";
34338 }
34339 def V6_vavgh_alt_128B : HInst<
34340 (outs VectorRegs128B:$Vd32),
34341 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34342 "$Vd32 = vavgh($Vu32,$Vv32)",
34343 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34344 let hasNewValue = 1;
34345 let opNewValue = 0;
34346 let isPseudo = 1;
34347 let isCodeGenOnly = 1;
34348 let DecoderNamespace = "EXT_mmvec";
34349 let isCodeGenOnly = 1;
34350 }
34351 def V6_vavghrnd : HInst<
34352 (outs VectorRegs:$Vd32),
34353 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34354 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
34355 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34356 let Inst{7-5} = 0b101;
34357 let Inst{13-13} = 0b0;
34358 let Inst{31-21} = 0b00011100111;
34359 let hasNewValue = 1;
34360 let opNewValue = 0;
34361 let DecoderNamespace = "EXT_mmvec";
34362 }
34363 def V6_vavghrnd_128B : HInst<
34364 (outs VectorRegs128B:$Vd32),
34365 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34366 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
34367 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34368 let Inst{7-5} = 0b101;
34369 let Inst{13-13} = 0b0;
34370 let Inst{31-21} = 0b00011100111;
34371 let hasNewValue = 1;
34372 let opNewValue = 0;
34373 let DecoderNamespace = "EXT_mmvec";
34374 let isCodeGenOnly = 1;
34375 }
34376 def V6_vavghrnd_alt : HInst<
34377 (outs VectorRegs:$Vd32),
34378 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34379 "$Vd32 = vavgh($Vu32,$Vv32):rnd",
34380 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34381 let hasNewValue = 1;
34382 let opNewValue = 0;
34383 let isPseudo = 1;
34384 let isCodeGenOnly = 1;
34385 let DecoderNamespace = "EXT_mmvec";
34386 }
34387 def V6_vavghrnd_alt_128B : HInst<
34388 (outs VectorRegs128B:$Vd32),
34389 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34390 "$Vd32 = vavgh($Vu32,$Vv32):rnd",
34391 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34392 let hasNewValue = 1;
34393 let opNewValue = 0;
34394 let isPseudo = 1;
34395 let isCodeGenOnly = 1;
34396 let DecoderNamespace = "EXT_mmvec";
34397 let isCodeGenOnly = 1;
34398 }
34399 def V6_vavgub : HInst<
34400 (outs VectorRegs:$Vd32),
34401 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34402 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
34403 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34404 let Inst{7-5} = 0b100;
34405 let Inst{13-13} = 0b0;
34406 let Inst{31-21} = 0b00011100110;
34407 let hasNewValue = 1;
34408 let opNewValue = 0;
34409 let DecoderNamespace = "EXT_mmvec";
34410 }
34411 def V6_vavgub_128B : HInst<
34412 (outs VectorRegs128B:$Vd32),
34413 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34414 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
34415 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34416 let Inst{7-5} = 0b100;
34417 let Inst{13-13} = 0b0;
34418 let Inst{31-21} = 0b00011100110;
34419 let hasNewValue = 1;
34420 let opNewValue = 0;
34421 let DecoderNamespace = "EXT_mmvec";
34422 let isCodeGenOnly = 1;
34423 }
34424 def V6_vavgub_alt : HInst<
34425 (outs VectorRegs:$Vd32),
34426 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34427 "$Vd32 = vavgub($Vu32,$Vv32)",
34428 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34429 let hasNewValue = 1;
34430 let opNewValue = 0;
34431 let isPseudo = 1;
34432 let isCodeGenOnly = 1;
34433 let DecoderNamespace = "EXT_mmvec";
34434 }
34435 def V6_vavgub_alt_128B : HInst<
34436 (outs VectorRegs128B:$Vd32),
34437 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34438 "$Vd32 = vavgub($Vu32,$Vv32)",
34439 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34440 let hasNewValue = 1;
34441 let opNewValue = 0;
34442 let isPseudo = 1;
34443 let isCodeGenOnly = 1;
34444 let DecoderNamespace = "EXT_mmvec";
34445 let isCodeGenOnly = 1;
34446 }
34447 def V6_vavgubrnd : HInst<
34448 (outs VectorRegs:$Vd32),
34449 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34450 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
34451 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34452 let Inst{7-5} = 0b011;
34453 let Inst{13-13} = 0b0;
34454 let Inst{31-21} = 0b00011100111;
34455 let hasNewValue = 1;
34456 let opNewValue = 0;
34457 let DecoderNamespace = "EXT_mmvec";
34458 }
34459 def V6_vavgubrnd_128B : HInst<
34460 (outs VectorRegs128B:$Vd32),
34461 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34462 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
34463 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34464 let Inst{7-5} = 0b011;
34465 let Inst{13-13} = 0b0;
34466 let Inst{31-21} = 0b00011100111;
34467 let hasNewValue = 1;
34468 let opNewValue = 0;
34469 let DecoderNamespace = "EXT_mmvec";
34470 let isCodeGenOnly = 1;
34471 }
34472 def V6_vavgubrnd_alt : HInst<
34473 (outs VectorRegs:$Vd32),
34474 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34475 "$Vd32 = vavgub($Vu32,$Vv32):rnd",
34476 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34477 let hasNewValue = 1;
34478 let opNewValue = 0;
34479 let isPseudo = 1;
34480 let isCodeGenOnly = 1;
34481 let DecoderNamespace = "EXT_mmvec";
34482 }
34483 def V6_vavgubrnd_alt_128B : HInst<
34484 (outs VectorRegs128B:$Vd32),
34485 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34486 "$Vd32 = vavgub($Vu32,$Vv32):rnd",
34487 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34488 let hasNewValue = 1;
34489 let opNewValue = 0;
34490 let isPseudo = 1;
34491 let isCodeGenOnly = 1;
34492 let DecoderNamespace = "EXT_mmvec";
34493 let isCodeGenOnly = 1;
34494 }
34495 def V6_vavguh : HInst<
34496 (outs VectorRegs:$Vd32),
34497 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34498 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
34499 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34500 let Inst{7-5} = 0b101;
34501 let Inst{13-13} = 0b0;
34502 let Inst{31-21} = 0b00011100110;
34503 let hasNewValue = 1;
34504 let opNewValue = 0;
34505 let DecoderNamespace = "EXT_mmvec";
34506 }
34507 def V6_vavguh_128B : HInst<
34508 (outs VectorRegs128B:$Vd32),
34509 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34510 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
34511 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34512 let Inst{7-5} = 0b101;
34513 let Inst{13-13} = 0b0;
34514 let Inst{31-21} = 0b00011100110;
34515 let hasNewValue = 1;
34516 let opNewValue = 0;
34517 let DecoderNamespace = "EXT_mmvec";
34518 let isCodeGenOnly = 1;
34519 }
34520 def V6_vavguh_alt : HInst<
34521 (outs VectorRegs:$Vd32),
34522 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34523 "$Vd32 = vavguh($Vu32,$Vv32)",
34524 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34525 let hasNewValue = 1;
34526 let opNewValue = 0;
34527 let isPseudo = 1;
34528 let isCodeGenOnly = 1;
34529 let DecoderNamespace = "EXT_mmvec";
34530 }
34531 def V6_vavguh_alt_128B : HInst<
34532 (outs VectorRegs128B:$Vd32),
34533 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34534 "$Vd32 = vavguh($Vu32,$Vv32)",
34535 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34536 let hasNewValue = 1;
34537 let opNewValue = 0;
34538 let isPseudo = 1;
34539 let isCodeGenOnly = 1;
34540 let DecoderNamespace = "EXT_mmvec";
34541 let isCodeGenOnly = 1;
34542 }
34543 def V6_vavguhrnd : HInst<
34544 (outs VectorRegs:$Vd32),
34545 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34546 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
34547 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34548 let Inst{7-5} = 0b100;
34549 let Inst{13-13} = 0b0;
34550 let Inst{31-21} = 0b00011100111;
34551 let hasNewValue = 1;
34552 let opNewValue = 0;
34553 let DecoderNamespace = "EXT_mmvec";
34554 }
34555 def V6_vavguhrnd_128B : HInst<
34556 (outs VectorRegs128B:$Vd32),
34557 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34558 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
34559 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34560 let Inst{7-5} = 0b100;
34561 let Inst{13-13} = 0b0;
34562 let Inst{31-21} = 0b00011100111;
34563 let hasNewValue = 1;
34564 let opNewValue = 0;
34565 let DecoderNamespace = "EXT_mmvec";
34566 let isCodeGenOnly = 1;
34567 }
34568 def V6_vavguhrnd_alt : HInst<
34569 (outs VectorRegs:$Vd32),
34570 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34571 "$Vd32 = vavguh($Vu32,$Vv32):rnd",
34572 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34573 let hasNewValue = 1;
34574 let opNewValue = 0;
34575 let isPseudo = 1;
34576 let isCodeGenOnly = 1;
34577 let DecoderNamespace = "EXT_mmvec";
34578 }
34579 def V6_vavguhrnd_alt_128B : HInst<
34580 (outs VectorRegs128B:$Vd32),
34581 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34582 "$Vd32 = vavguh($Vu32,$Vv32):rnd",
34583 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34584 let hasNewValue = 1;
34585 let opNewValue = 0;
34586 let isPseudo = 1;
34587 let isCodeGenOnly = 1;
34588 let DecoderNamespace = "EXT_mmvec";
34589 let isCodeGenOnly = 1;
34590 }
34591 def V6_vavgw : HInst<
34592 (outs VectorRegs:$Vd32),
34593 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34594 "$Vd32.w = vavg($Vu32.w,$Vv32.w)",
34595 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34596 let Inst{7-5} = 0b111;
34597 let Inst{13-13} = 0b0;
34598 let Inst{31-21} = 0b00011100110;
34599 let hasNewValue = 1;
34600 let opNewValue = 0;
34601 let DecoderNamespace = "EXT_mmvec";
34602 }
34603 def V6_vavgw_128B : HInst<
34604 (outs VectorRegs128B:$Vd32),
34605 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34606 "$Vd32.w = vavg($Vu32.w,$Vv32.w)",
34607 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34608 let Inst{7-5} = 0b111;
34609 let Inst{13-13} = 0b0;
34610 let Inst{31-21} = 0b00011100110;
34611 let hasNewValue = 1;
34612 let opNewValue = 0;
34613 let DecoderNamespace = "EXT_mmvec";
34614 let isCodeGenOnly = 1;
34615 }
34616 def V6_vavgw_alt : HInst<
34617 (outs VectorRegs:$Vd32),
34618 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34619 "$Vd32 = vavgw($Vu32,$Vv32)",
34620 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34621 let hasNewValue = 1;
34622 let opNewValue = 0;
34623 let isPseudo = 1;
34624 let isCodeGenOnly = 1;
34625 let DecoderNamespace = "EXT_mmvec";
34626 }
34627 def V6_vavgw_alt_128B : HInst<
34628 (outs VectorRegs128B:$Vd32),
34629 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34630 "$Vd32 = vavgw($Vu32,$Vv32)",
34631 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34632 let hasNewValue = 1;
34633 let opNewValue = 0;
34634 let isPseudo = 1;
34635 let isCodeGenOnly = 1;
34636 let DecoderNamespace = "EXT_mmvec";
34637 let isCodeGenOnly = 1;
34638 }
34639 def V6_vavgwrnd : HInst<
34640 (outs VectorRegs:$Vd32),
34641 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34642 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
34643 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34644 let Inst{7-5} = 0b110;
34645 let Inst{13-13} = 0b0;
34646 let Inst{31-21} = 0b00011100111;
34647 let hasNewValue = 1;
34648 let opNewValue = 0;
34649 let DecoderNamespace = "EXT_mmvec";
34650 }
34651 def V6_vavgwrnd_128B : HInst<
34652 (outs VectorRegs128B:$Vd32),
34653 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34654 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
34655 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34656 let Inst{7-5} = 0b110;
34657 let Inst{13-13} = 0b0;
34658 let Inst{31-21} = 0b00011100111;
34659 let hasNewValue = 1;
34660 let opNewValue = 0;
34661 let DecoderNamespace = "EXT_mmvec";
34662 let isCodeGenOnly = 1;
34663 }
34664 def V6_vavgwrnd_alt : HInst<
34665 (outs VectorRegs:$Vd32),
34666 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34667 "$Vd32 = vavgw($Vu32,$Vv32):rnd",
34668 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34669 let hasNewValue = 1;
34670 let opNewValue = 0;
34671 let isPseudo = 1;
34672 let isCodeGenOnly = 1;
34673 let DecoderNamespace = "EXT_mmvec";
34674 }
34675 def V6_vavgwrnd_alt_128B : HInst<
34676 (outs VectorRegs128B:$Vd32),
34677 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34678 "$Vd32 = vavgw($Vu32,$Vv32):rnd",
34679 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34680 let hasNewValue = 1;
34681 let opNewValue = 0;
34682 let isPseudo = 1;
34683 let isCodeGenOnly = 1;
34684 let DecoderNamespace = "EXT_mmvec";
34685 let isCodeGenOnly = 1;
34686 }
34687 def V6_vccombine : HInst<
34688 (outs VecDblRegs:$Vdd32),
34689 (ins PredRegs:$Ps4, VectorRegs:$Vu32, VectorRegs:$Vv32),
34690 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
34691 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
34692 let Inst{7-7} = 0b0;
34693 let Inst{13-13} = 0b0;
34694 let Inst{31-21} = 0b00011010011;
34695 let isPredicated = 1;
34696 let hasNewValue = 1;
34697 let opNewValue = 0;
34698 let DecoderNamespace = "EXT_mmvec";
34699 }
34700 def V6_vccombine_128B : HInst<
34701 (outs VecDblRegs128B:$Vdd32),
34702 (ins PredRegs:$Ps4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34703 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
34704 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
34705 let Inst{7-7} = 0b0;
34706 let Inst{13-13} = 0b0;
34707 let Inst{31-21} = 0b00011010011;
34708 let isPredicated = 1;
34709 let hasNewValue = 1;
34710 let opNewValue = 0;
34711 let DecoderNamespace = "EXT_mmvec";
34712 let isCodeGenOnly = 1;
34713 }
34714 def V6_vcl0h : HInst<
34715 (outs VectorRegs:$Vd32),
34716 (ins VectorRegs:$Vu32),
34717 "$Vd32.uh = vcl0($Vu32.uh)",
34718 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34719 let Inst{7-5} = 0b111;
34720 let Inst{13-13} = 0b0;
34721 let Inst{31-16} = 0b0001111000000010;
34722 let hasNewValue = 1;
34723 let opNewValue = 0;
34724 let DecoderNamespace = "EXT_mmvec";
34725 }
34726 def V6_vcl0h_128B : HInst<
34727 (outs VectorRegs128B:$Vd32),
34728 (ins VectorRegs128B:$Vu32),
34729 "$Vd32.uh = vcl0($Vu32.uh)",
34730 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34731 let Inst{7-5} = 0b111;
34732 let Inst{13-13} = 0b0;
34733 let Inst{31-16} = 0b0001111000000010;
34734 let hasNewValue = 1;
34735 let opNewValue = 0;
34736 let DecoderNamespace = "EXT_mmvec";
34737 let isCodeGenOnly = 1;
34738 }
34739 def V6_vcl0h_alt : HInst<
34740 (outs VectorRegs:$Vd32),
34741 (ins VectorRegs:$Vu32),
34742 "$Vd32 = vcl0h($Vu32)",
34743 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34744 let hasNewValue = 1;
34745 let opNewValue = 0;
34746 let isPseudo = 1;
34747 let isCodeGenOnly = 1;
34748 let DecoderNamespace = "EXT_mmvec";
34749 }
34750 def V6_vcl0h_alt_128B : HInst<
34751 (outs VectorRegs128B:$Vd32),
34752 (ins VectorRegs128B:$Vu32),
34753 "$Vd32 = vcl0h($Vu32)",
34754 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34755 let hasNewValue = 1;
34756 let opNewValue = 0;
34757 let isPseudo = 1;
34758 let isCodeGenOnly = 1;
34759 let DecoderNamespace = "EXT_mmvec";
34760 let isCodeGenOnly = 1;
34761 }
34762 def V6_vcl0w : HInst<
34763 (outs VectorRegs:$Vd32),
34764 (ins VectorRegs:$Vu32),
34765 "$Vd32.uw = vcl0($Vu32.uw)",
34766 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34767 let Inst{7-5} = 0b101;
34768 let Inst{13-13} = 0b0;
34769 let Inst{31-16} = 0b0001111000000010;
34770 let hasNewValue = 1;
34771 let opNewValue = 0;
34772 let DecoderNamespace = "EXT_mmvec";
34773 }
34774 def V6_vcl0w_128B : HInst<
34775 (outs VectorRegs128B:$Vd32),
34776 (ins VectorRegs128B:$Vu32),
34777 "$Vd32.uw = vcl0($Vu32.uw)",
34778 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34779 let Inst{7-5} = 0b101;
34780 let Inst{13-13} = 0b0;
34781 let Inst{31-16} = 0b0001111000000010;
34782 let hasNewValue = 1;
34783 let opNewValue = 0;
34784 let DecoderNamespace = "EXT_mmvec";
34785 let isCodeGenOnly = 1;
34786 }
34787 def V6_vcl0w_alt : HInst<
34788 (outs VectorRegs:$Vd32),
34789 (ins VectorRegs:$Vu32),
34790 "$Vd32 = vcl0w($Vu32)",
34791 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34792 let hasNewValue = 1;
34793 let opNewValue = 0;
34794 let isPseudo = 1;
34795 let isCodeGenOnly = 1;
34796 let DecoderNamespace = "EXT_mmvec";
34797 }
34798 def V6_vcl0w_alt_128B : HInst<
34799 (outs VectorRegs128B:$Vd32),
34800 (ins VectorRegs128B:$Vu32),
34801 "$Vd32 = vcl0w($Vu32)",
34802 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34803 let hasNewValue = 1;
34804 let opNewValue = 0;
34805 let isPseudo = 1;
34806 let isCodeGenOnly = 1;
34807 let DecoderNamespace = "EXT_mmvec";
34808 let isCodeGenOnly = 1;
34809 }
34810 def V6_vcmov : HInst<
34811 (outs VectorRegs:$Vd32),
34812 (ins PredRegs:$Ps4, VectorRegs:$Vu32),
34813 "if ($Ps4) $Vd32 = $Vu32",
34814 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
34815 let Inst{7-7} = 0b0;
34816 let Inst{13-13} = 0b0;
34817 let Inst{31-16} = 0b0001101000000000;
34818 let isPredicated = 1;
34819 let hasNewValue = 1;
34820 let opNewValue = 0;
34821 let DecoderNamespace = "EXT_mmvec";
34822 }
34823 def V6_vcmov_128B : HInst<
34824 (outs VectorRegs128B:$Vd32),
34825 (ins PredRegs:$Ps4, VectorRegs128B:$Vu32),
34826 "if ($Ps4) $Vd32 = $Vu32",
34827 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
34828 let Inst{7-7} = 0b0;
34829 let Inst{13-13} = 0b0;
34830 let Inst{31-16} = 0b0001101000000000;
34831 let isPredicated = 1;
34832 let hasNewValue = 1;
34833 let opNewValue = 0;
34834 let DecoderNamespace = "EXT_mmvec";
34835 let isCodeGenOnly = 1;
34836 }
34837 def V6_vcombine : HInst<
34838 (outs VecDblRegs:$Vdd32),
34839 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34840 "$Vdd32 = vcombine($Vu32,$Vv32)",
34841 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
34842 let Inst{7-5} = 0b111;
34843 let Inst{13-13} = 0b0;
34844 let Inst{31-21} = 0b00011111010;
34845 let hasNewValue = 1;
34846 let opNewValue = 0;
34847 let isRegSequence = 1;
34848 let DecoderNamespace = "EXT_mmvec";
34849 }
34850 def V6_vcombine_128B : HInst<
34851 (outs VecDblRegs128B:$Vdd32),
34852 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34853 "$Vdd32 = vcombine($Vu32,$Vv32)",
34854 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
34855 let Inst{7-5} = 0b111;
34856 let Inst{13-13} = 0b0;
34857 let Inst{31-21} = 0b00011111010;
34858 let hasNewValue = 1;
34859 let opNewValue = 0;
34860 let isRegSequence = 1;
34861 let DecoderNamespace = "EXT_mmvec";
34862 let isCodeGenOnly = 1;
34863 }
34864 def V6_vd0 : HInst<
34865 (outs VectorRegs:$Vd32),
34866 (ins),
34867 "$Vd32 = #0",
34868 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
34869 let hasNewValue = 1;
34870 let opNewValue = 0;
34871 let isPseudo = 1;
34872 let isCodeGenOnly = 1;
34873 let DecoderNamespace = "EXT_mmvec";
34874 }
34875 def V6_vd0_128B : HInst<
34876 (outs VectorRegs128B:$Vd32),
34877 (ins),
34878 "$Vd32 = #0",
34879 CVI_VA, TypeCVI_VA>, Requires<[HasV60T,UseHVX]> {
34880 let hasNewValue = 1;
34881 let opNewValue = 0;
34882 let isPseudo = 1;
34883 let isCodeGenOnly = 1;
34884 let DecoderNamespace = "EXT_mmvec";
34885 let isCodeGenOnly = 1;
34886 }
34887 def V6_vdeal : HInst<
34888 (outs VectorRegs:$Vy32, VectorRegs:$Vx32),
34889 (ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
34890 "vdeal($Vy32,$Vx32,$Rt32)",
34891 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
34892 let Inst{7-5} = 0b010;
34893 let Inst{13-13} = 0b1;
34894 let Inst{31-21} = 0b00011001111;
34895 let hasNewValue = 1;
34896 let opNewValue = 0;
34897 let hasNewValue2 = 1;
34898 let opNewValue2 = 1;
34899 let DecoderNamespace = "EXT_mmvec";
34900 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
34901 }
34902 def V6_vdeal_128B : HInst<
34903 (outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
34904 (ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
34905 "vdeal($Vy32,$Vx32,$Rt32)",
34906 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
34907 let Inst{7-5} = 0b010;
34908 let Inst{13-13} = 0b1;
34909 let Inst{31-21} = 0b00011001111;
34910 let hasNewValue = 1;
34911 let opNewValue = 0;
34912 let hasNewValue2 = 1;
34913 let opNewValue2 = 1;
34914 let DecoderNamespace = "EXT_mmvec";
34915 let isCodeGenOnly = 1;
34916 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
34917 }
34918 def V6_vdealb : HInst<
34919 (outs VectorRegs:$Vd32),
34920 (ins VectorRegs:$Vu32),
34921 "$Vd32.b = vdeal($Vu32.b)",
34922 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34923 let Inst{7-5} = 0b111;
34924 let Inst{13-13} = 0b0;
34925 let Inst{31-16} = 0b0001111000000000;
34926 let hasNewValue = 1;
34927 let opNewValue = 0;
34928 let DecoderNamespace = "EXT_mmvec";
34929 }
34930 def V6_vdealb4w : HInst<
34931 (outs VectorRegs:$Vd32),
34932 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34933 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
34934 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34935 let Inst{7-5} = 0b111;
34936 let Inst{13-13} = 0b0;
34937 let Inst{31-21} = 0b00011111001;
34938 let hasNewValue = 1;
34939 let opNewValue = 0;
34940 let DecoderNamespace = "EXT_mmvec";
34941 }
34942 def V6_vdealb4w_128B : HInst<
34943 (outs VectorRegs128B:$Vd32),
34944 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34945 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
34946 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
34947 let Inst{7-5} = 0b111;
34948 let Inst{13-13} = 0b0;
34949 let Inst{31-21} = 0b00011111001;
34950 let hasNewValue = 1;
34951 let opNewValue = 0;
34952 let DecoderNamespace = "EXT_mmvec";
34953 let isCodeGenOnly = 1;
34954 }
34955 def V6_vdealb4w_alt : HInst<
34956 (outs VectorRegs:$Vd32),
34957 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
34958 "$Vd32 = vdealb4w($Vu32,$Vv32)",
34959 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34960 let hasNewValue = 1;
34961 let opNewValue = 0;
34962 let isPseudo = 1;
34963 let isCodeGenOnly = 1;
34964 let DecoderNamespace = "EXT_mmvec";
34965 }
34966 def V6_vdealb4w_alt_128B : HInst<
34967 (outs VectorRegs128B:$Vd32),
34968 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
34969 "$Vd32 = vdealb4w($Vu32,$Vv32)",
34970 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34971 let hasNewValue = 1;
34972 let opNewValue = 0;
34973 let isPseudo = 1;
34974 let isCodeGenOnly = 1;
34975 let DecoderNamespace = "EXT_mmvec";
34976 let isCodeGenOnly = 1;
34977 }
34978 def V6_vdealb_128B : HInst<
34979 (outs VectorRegs128B:$Vd32),
34980 (ins VectorRegs128B:$Vu32),
34981 "$Vd32.b = vdeal($Vu32.b)",
34982 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
34983 let Inst{7-5} = 0b111;
34984 let Inst{13-13} = 0b0;
34985 let Inst{31-16} = 0b0001111000000000;
34986 let hasNewValue = 1;
34987 let opNewValue = 0;
34988 let DecoderNamespace = "EXT_mmvec";
34989 let isCodeGenOnly = 1;
34990 }
34991 def V6_vdealb_alt : HInst<
34992 (outs VectorRegs:$Vd32),
34993 (ins VectorRegs:$Vu32),
34994 "$Vd32 = vdealb($Vu32)",
34995 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
34996 let hasNewValue = 1;
34997 let opNewValue = 0;
34998 let isPseudo = 1;
34999 let isCodeGenOnly = 1;
35000 let DecoderNamespace = "EXT_mmvec";
35001 }
35002 def V6_vdealb_alt_128B : HInst<
35003 (outs VectorRegs128B:$Vd32),
35004 (ins VectorRegs128B:$Vu32),
35005 "$Vd32 = vdealb($Vu32)",
35006 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35007 let hasNewValue = 1;
35008 let opNewValue = 0;
35009 let isPseudo = 1;
35010 let isCodeGenOnly = 1;
35011 let DecoderNamespace = "EXT_mmvec";
35012 let isCodeGenOnly = 1;
35013 }
35014 def V6_vdealh : HInst<
35015 (outs VectorRegs:$Vd32),
35016 (ins VectorRegs:$Vu32),
35017 "$Vd32.h = vdeal($Vu32.h)",
35018 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
35019 let Inst{7-5} = 0b110;
35020 let Inst{13-13} = 0b0;
35021 let Inst{31-16} = 0b0001111000000000;
35022 let hasNewValue = 1;
35023 let opNewValue = 0;
35024 let DecoderNamespace = "EXT_mmvec";
35025 }
35026 def V6_vdealh_128B : HInst<
35027 (outs VectorRegs128B:$Vd32),
35028 (ins VectorRegs128B:$Vu32),
35029 "$Vd32.h = vdeal($Vu32.h)",
35030 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
35031 let Inst{7-5} = 0b110;
35032 let Inst{13-13} = 0b0;
35033 let Inst{31-16} = 0b0001111000000000;
35034 let hasNewValue = 1;
35035 let opNewValue = 0;
35036 let DecoderNamespace = "EXT_mmvec";
35037 let isCodeGenOnly = 1;
35038 }
35039 def V6_vdealh_alt : HInst<
35040 (outs VectorRegs:$Vd32),
35041 (ins VectorRegs:$Vu32),
35042 "$Vd32 = vdealh($Vu32)",
35043 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35044 let hasNewValue = 1;
35045 let opNewValue = 0;
35046 let isPseudo = 1;
35047 let isCodeGenOnly = 1;
35048 let DecoderNamespace = "EXT_mmvec";
35049 }
35050 def V6_vdealh_alt_128B : HInst<
35051 (outs VectorRegs128B:$Vd32),
35052 (ins VectorRegs128B:$Vu32),
35053 "$Vd32 = vdealh($Vu32)",
35054 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35055 let hasNewValue = 1;
35056 let opNewValue = 0;
35057 let isPseudo = 1;
35058 let isCodeGenOnly = 1;
35059 let DecoderNamespace = "EXT_mmvec";
35060 let isCodeGenOnly = 1;
35061 }
35062 def V6_vdealvdd : HInst<
35063 (outs VecDblRegs:$Vdd32),
35064 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
35065 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
35066 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
35067 let Inst{7-5} = 0b100;
35068 let Inst{13-13} = 0b1;
35069 let Inst{31-24} = 0b00011011;
35070 let hasNewValue = 1;
35071 let opNewValue = 0;
35072 let DecoderNamespace = "EXT_mmvec";
35073 }
35074 def V6_vdealvdd_128B : HInst<
35075 (outs VecDblRegs128B:$Vdd32),
35076 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
35077 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
35078 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
35079 let Inst{7-5} = 0b100;
35080 let Inst{13-13} = 0b1;
35081 let Inst{31-24} = 0b00011011;
35082 let hasNewValue = 1;
35083 let opNewValue = 0;
35084 let DecoderNamespace = "EXT_mmvec";
35085 let isCodeGenOnly = 1;
35086 }
35087 def V6_vdelta : HInst<
35088 (outs VectorRegs:$Vd32),
35089 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
35090 "$Vd32 = vdelta($Vu32,$Vv32)",
35091 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
35092 let Inst{7-5} = 0b001;
35093 let Inst{13-13} = 0b0;
35094 let Inst{31-21} = 0b00011111001;
35095 let hasNewValue = 1;
35096 let opNewValue = 0;
35097 let DecoderNamespace = "EXT_mmvec";
35098 }
35099 def V6_vdelta_128B : HInst<
35100 (outs VectorRegs128B:$Vd32),
35101 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
35102 "$Vd32 = vdelta($Vu32,$Vv32)",
35103 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
35104 let Inst{7-5} = 0b001;
35105 let Inst{13-13} = 0b0;
35106 let Inst{31-21} = 0b00011111001;
35107 let hasNewValue = 1;
35108 let opNewValue = 0;
35109 let DecoderNamespace = "EXT_mmvec";
35110 let isCodeGenOnly = 1;
35111 }
35112 def V6_vdmpybus : HInst<
35113 (outs VectorRegs:$Vd32),
35114 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35115 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
35116 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35117 let Inst{7-5} = 0b110;
35118 let Inst{13-13} = 0b0;
35119 let Inst{31-21} = 0b00011001000;
35120 let hasNewValue = 1;
35121 let opNewValue = 0;
35122 let DecoderNamespace = "EXT_mmvec";
35123 }
35124 def V6_vdmpybus_128B : HInst<
35125 (outs VectorRegs128B:$Vd32),
35126 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35127 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
35128 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35129 let Inst{7-5} = 0b110;
35130 let Inst{13-13} = 0b0;
35131 let Inst{31-21} = 0b00011001000;
35132 let hasNewValue = 1;
35133 let opNewValue = 0;
35134 let DecoderNamespace = "EXT_mmvec";
35135 let isCodeGenOnly = 1;
35136 }
35137 def V6_vdmpybus_acc : HInst<
35138 (outs VectorRegs:$Vx32),
35139 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35140 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
35141 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35142 let Inst{7-5} = 0b110;
35143 let Inst{13-13} = 0b1;
35144 let Inst{31-21} = 0b00011001000;
35145 let hasNewValue = 1;
35146 let opNewValue = 0;
35147 let isAccumulator = 1;
35148 let DecoderNamespace = "EXT_mmvec";
35149 let Constraints = "$Vx32 = $Vx32in";
35150 }
35151 def V6_vdmpybus_acc_128B : HInst<
35152 (outs VectorRegs128B:$Vx32),
35153 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35154 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
35155 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35156 let Inst{7-5} = 0b110;
35157 let Inst{13-13} = 0b1;
35158 let Inst{31-21} = 0b00011001000;
35159 let hasNewValue = 1;
35160 let opNewValue = 0;
35161 let isAccumulator = 1;
35162 let DecoderNamespace = "EXT_mmvec";
35163 let isCodeGenOnly = 1;
35164 let Constraints = "$Vx32 = $Vx32in";
35165 }
35166 def V6_vdmpybus_acc_alt : HInst<
35167 (outs VectorRegs:$Vx32),
35168 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35169 "$Vx32 += vdmpybus($Vu32,$Rt32)",
35170 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35171 let hasNewValue = 1;
35172 let opNewValue = 0;
35173 let isAccumulator = 1;
35174 let isPseudo = 1;
35175 let isCodeGenOnly = 1;
35176 let DecoderNamespace = "EXT_mmvec";
35177 let Constraints = "$Vx32 = $Vx32in";
35178 }
35179 def V6_vdmpybus_acc_alt_128B : HInst<
35180 (outs VectorRegs128B:$Vx32),
35181 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35182 "$Vx32 += vdmpybus($Vu32,$Rt32)",
35183 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35184 let hasNewValue = 1;
35185 let opNewValue = 0;
35186 let isAccumulator = 1;
35187 let isPseudo = 1;
35188 let isCodeGenOnly = 1;
35189 let DecoderNamespace = "EXT_mmvec";
35190 let isCodeGenOnly = 1;
35191 let Constraints = "$Vx32 = $Vx32in";
35192 }
35193 def V6_vdmpybus_alt : HInst<
35194 (outs VectorRegs:$Vd32),
35195 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35196 "$Vd32 = vdmpybus($Vu32,$Rt32)",
35197 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35198 let hasNewValue = 1;
35199 let opNewValue = 0;
35200 let isPseudo = 1;
35201 let isCodeGenOnly = 1;
35202 let DecoderNamespace = "EXT_mmvec";
35203 }
35204 def V6_vdmpybus_alt_128B : HInst<
35205 (outs VectorRegs128B:$Vd32),
35206 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35207 "$Vd32 = vdmpybus($Vu32,$Rt32)",
35208 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35209 let hasNewValue = 1;
35210 let opNewValue = 0;
35211 let isPseudo = 1;
35212 let isCodeGenOnly = 1;
35213 let DecoderNamespace = "EXT_mmvec";
35214 let isCodeGenOnly = 1;
35215 }
35216 def V6_vdmpybus_dv : HInst<
35217 (outs VecDblRegs:$Vdd32),
35218 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35219 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
35220 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
35221 let Inst{7-5} = 0b111;
35222 let Inst{13-13} = 0b0;
35223 let Inst{31-21} = 0b00011001000;
35224 let hasNewValue = 1;
35225 let opNewValue = 0;
35226 let DecoderNamespace = "EXT_mmvec";
35227 }
35228 def V6_vdmpybus_dv_128B : HInst<
35229 (outs VecDblRegs128B:$Vdd32),
35230 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35231 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
35232 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
35233 let Inst{7-5} = 0b111;
35234 let Inst{13-13} = 0b0;
35235 let Inst{31-21} = 0b00011001000;
35236 let hasNewValue = 1;
35237 let opNewValue = 0;
35238 let DecoderNamespace = "EXT_mmvec";
35239 let isCodeGenOnly = 1;
35240 }
35241 def V6_vdmpybus_dv_acc : HInst<
35242 (outs VecDblRegs:$Vxx32),
35243 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35244 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
35245 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
35246 let Inst{7-5} = 0b111;
35247 let Inst{13-13} = 0b1;
35248 let Inst{31-21} = 0b00011001000;
35249 let hasNewValue = 1;
35250 let opNewValue = 0;
35251 let isAccumulator = 1;
35252 let DecoderNamespace = "EXT_mmvec";
35253 let Constraints = "$Vxx32 = $Vxx32in";
35254 }
35255 def V6_vdmpybus_dv_acc_128B : HInst<
35256 (outs VecDblRegs128B:$Vxx32),
35257 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35258 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
35259 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
35260 let Inst{7-5} = 0b111;
35261 let Inst{13-13} = 0b1;
35262 let Inst{31-21} = 0b00011001000;
35263 let hasNewValue = 1;
35264 let opNewValue = 0;
35265 let isAccumulator = 1;
35266 let DecoderNamespace = "EXT_mmvec";
35267 let isCodeGenOnly = 1;
35268 let Constraints = "$Vxx32 = $Vxx32in";
35269 }
35270 def V6_vdmpybus_dv_acc_alt : HInst<
35271 (outs VecDblRegs:$Vxx32),
35272 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35273 "$Vxx32 += vdmpybus($Vuu32,$Rt32)",
35274 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35275 let hasNewValue = 1;
35276 let opNewValue = 0;
35277 let isAccumulator = 1;
35278 let isPseudo = 1;
35279 let isCodeGenOnly = 1;
35280 let DecoderNamespace = "EXT_mmvec";
35281 let Constraints = "$Vxx32 = $Vxx32in";
35282 }
35283 def V6_vdmpybus_dv_acc_alt_128B : HInst<
35284 (outs VecDblRegs128B:$Vxx32),
35285 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35286 "$Vxx32 += vdmpybus($Vuu32,$Rt32)",
35287 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35288 let hasNewValue = 1;
35289 let opNewValue = 0;
35290 let isAccumulator = 1;
35291 let isPseudo = 1;
35292 let isCodeGenOnly = 1;
35293 let DecoderNamespace = "EXT_mmvec";
35294 let isCodeGenOnly = 1;
35295 let Constraints = "$Vxx32 = $Vxx32in";
35296 }
35297 def V6_vdmpybus_dv_alt : HInst<
35298 (outs VecDblRegs:$Vdd32),
35299 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35300 "$Vdd32 = vdmpybus($Vuu32,$Rt32)",
35301 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35302 let hasNewValue = 1;
35303 let opNewValue = 0;
35304 let isPseudo = 1;
35305 let isCodeGenOnly = 1;
35306 let DecoderNamespace = "EXT_mmvec";
35307 }
35308 def V6_vdmpybus_dv_alt_128B : HInst<
35309 (outs VecDblRegs128B:$Vdd32),
35310 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35311 "$Vdd32 = vdmpybus($Vuu32,$Rt32)",
35312 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35313 let hasNewValue = 1;
35314 let opNewValue = 0;
35315 let isPseudo = 1;
35316 let isCodeGenOnly = 1;
35317 let DecoderNamespace = "EXT_mmvec";
35318 let isCodeGenOnly = 1;
35319 }
35320 def V6_vdmpyhb : HInst<
35321 (outs VectorRegs:$Vd32),
35322 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35323 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
35324 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35325 let Inst{7-5} = 0b010;
35326 let Inst{13-13} = 0b0;
35327 let Inst{31-21} = 0b00011001000;
35328 let hasNewValue = 1;
35329 let opNewValue = 0;
35330 let DecoderNamespace = "EXT_mmvec";
35331 }
35332 def V6_vdmpyhb_128B : HInst<
35333 (outs VectorRegs128B:$Vd32),
35334 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35335 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
35336 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35337 let Inst{7-5} = 0b010;
35338 let Inst{13-13} = 0b0;
35339 let Inst{31-21} = 0b00011001000;
35340 let hasNewValue = 1;
35341 let opNewValue = 0;
35342 let DecoderNamespace = "EXT_mmvec";
35343 let isCodeGenOnly = 1;
35344 }
35345 def V6_vdmpyhb_acc : HInst<
35346 (outs VectorRegs:$Vx32),
35347 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35348 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
35349 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35350 let Inst{7-5} = 0b011;
35351 let Inst{13-13} = 0b1;
35352 let Inst{31-21} = 0b00011001000;
35353 let hasNewValue = 1;
35354 let opNewValue = 0;
35355 let isAccumulator = 1;
35356 let DecoderNamespace = "EXT_mmvec";
35357 let Constraints = "$Vx32 = $Vx32in";
35358 }
35359 def V6_vdmpyhb_acc_128B : HInst<
35360 (outs VectorRegs128B:$Vx32),
35361 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35362 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
35363 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35364 let Inst{7-5} = 0b011;
35365 let Inst{13-13} = 0b1;
35366 let Inst{31-21} = 0b00011001000;
35367 let hasNewValue = 1;
35368 let opNewValue = 0;
35369 let isAccumulator = 1;
35370 let DecoderNamespace = "EXT_mmvec";
35371 let isCodeGenOnly = 1;
35372 let Constraints = "$Vx32 = $Vx32in";
35373 }
35374 def V6_vdmpyhb_acc_alt : HInst<
35375 (outs VectorRegs:$Vx32),
35376 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35377 "$Vx32 += vdmpyhb($Vu32,$Rt32)",
35378 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35379 let hasNewValue = 1;
35380 let opNewValue = 0;
35381 let isAccumulator = 1;
35382 let isPseudo = 1;
35383 let isCodeGenOnly = 1;
35384 let DecoderNamespace = "EXT_mmvec";
35385 let Constraints = "$Vx32 = $Vx32in";
35386 }
35387 def V6_vdmpyhb_acc_alt_128B : HInst<
35388 (outs VectorRegs128B:$Vx32),
35389 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35390 "$Vx32 += vdmpyhb($Vu32,$Rt32)",
35391 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35392 let hasNewValue = 1;
35393 let opNewValue = 0;
35394 let isAccumulator = 1;
35395 let isPseudo = 1;
35396 let isCodeGenOnly = 1;
35397 let DecoderNamespace = "EXT_mmvec";
35398 let isCodeGenOnly = 1;
35399 let Constraints = "$Vx32 = $Vx32in";
35400 }
35401 def V6_vdmpyhb_alt : HInst<
35402 (outs VectorRegs:$Vd32),
35403 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35404 "$Vd32 = vdmpyhb($Vu32,$Rt32)",
35405 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35406 let hasNewValue = 1;
35407 let opNewValue = 0;
35408 let isPseudo = 1;
35409 let isCodeGenOnly = 1;
35410 let DecoderNamespace = "EXT_mmvec";
35411 }
35412 def V6_vdmpyhb_alt_128B : HInst<
35413 (outs VectorRegs128B:$Vd32),
35414 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35415 "$Vd32 = vdmpyhb($Vu32,$Rt32)",
35416 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35417 let hasNewValue = 1;
35418 let opNewValue = 0;
35419 let isPseudo = 1;
35420 let isCodeGenOnly = 1;
35421 let DecoderNamespace = "EXT_mmvec";
35422 let isCodeGenOnly = 1;
35423 }
35424 def V6_vdmpyhb_dv : HInst<
35425 (outs VecDblRegs:$Vdd32),
35426 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35427 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
35428 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
35429 let Inst{7-5} = 0b100;
35430 let Inst{13-13} = 0b0;
35431 let Inst{31-21} = 0b00011001001;
35432 let hasNewValue = 1;
35433 let opNewValue = 0;
35434 let DecoderNamespace = "EXT_mmvec";
35435 }
35436 def V6_vdmpyhb_dv_128B : HInst<
35437 (outs VecDblRegs128B:$Vdd32),
35438 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35439 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
35440 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
35441 let Inst{7-5} = 0b100;
35442 let Inst{13-13} = 0b0;
35443 let Inst{31-21} = 0b00011001001;
35444 let hasNewValue = 1;
35445 let opNewValue = 0;
35446 let DecoderNamespace = "EXT_mmvec";
35447 let isCodeGenOnly = 1;
35448 }
35449 def V6_vdmpyhb_dv_acc : HInst<
35450 (outs VecDblRegs:$Vxx32),
35451 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35452 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
35453 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
35454 let Inst{7-5} = 0b100;
35455 let Inst{13-13} = 0b1;
35456 let Inst{31-21} = 0b00011001001;
35457 let hasNewValue = 1;
35458 let opNewValue = 0;
35459 let isAccumulator = 1;
35460 let DecoderNamespace = "EXT_mmvec";
35461 let Constraints = "$Vxx32 = $Vxx32in";
35462 }
35463 def V6_vdmpyhb_dv_acc_128B : HInst<
35464 (outs VecDblRegs128B:$Vxx32),
35465 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35466 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
35467 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
35468 let Inst{7-5} = 0b100;
35469 let Inst{13-13} = 0b1;
35470 let Inst{31-21} = 0b00011001001;
35471 let hasNewValue = 1;
35472 let opNewValue = 0;
35473 let isAccumulator = 1;
35474 let DecoderNamespace = "EXT_mmvec";
35475 let isCodeGenOnly = 1;
35476 let Constraints = "$Vxx32 = $Vxx32in";
35477 }
35478 def V6_vdmpyhb_dv_acc_alt : HInst<
35479 (outs VecDblRegs:$Vxx32),
35480 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35481 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
35482 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35483 let hasNewValue = 1;
35484 let opNewValue = 0;
35485 let isAccumulator = 1;
35486 let isPseudo = 1;
35487 let isCodeGenOnly = 1;
35488 let DecoderNamespace = "EXT_mmvec";
35489 let Constraints = "$Vxx32 = $Vxx32in";
35490 }
35491 def V6_vdmpyhb_dv_acc_alt_128B : HInst<
35492 (outs VecDblRegs128B:$Vxx32),
35493 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35494 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
35495 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35496 let hasNewValue = 1;
35497 let opNewValue = 0;
35498 let isAccumulator = 1;
35499 let isPseudo = 1;
35500 let isCodeGenOnly = 1;
35501 let DecoderNamespace = "EXT_mmvec";
35502 let isCodeGenOnly = 1;
35503 let Constraints = "$Vxx32 = $Vxx32in";
35504 }
35505 def V6_vdmpyhb_dv_alt : HInst<
35506 (outs VecDblRegs:$Vdd32),
35507 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35508 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
35509 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35510 let hasNewValue = 1;
35511 let opNewValue = 0;
35512 let isPseudo = 1;
35513 let isCodeGenOnly = 1;
35514 let DecoderNamespace = "EXT_mmvec";
35515 }
35516 def V6_vdmpyhb_dv_alt_128B : HInst<
35517 (outs VecDblRegs128B:$Vdd32),
35518 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35519 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
35520 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35521 let hasNewValue = 1;
35522 let opNewValue = 0;
35523 let isPseudo = 1;
35524 let isCodeGenOnly = 1;
35525 let DecoderNamespace = "EXT_mmvec";
35526 let isCodeGenOnly = 1;
35527 }
35528 def V6_vdmpyhisat : HInst<
35529 (outs VectorRegs:$Vd32),
35530 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35531 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
35532 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
35533 let Inst{7-5} = 0b011;
35534 let Inst{13-13} = 0b0;
35535 let Inst{31-21} = 0b00011001001;
35536 let hasNewValue = 1;
35537 let opNewValue = 0;
35538 let DecoderNamespace = "EXT_mmvec";
35539 }
35540 def V6_vdmpyhisat_128B : HInst<
35541 (outs VectorRegs128B:$Vd32),
35542 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35543 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
35544 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
35545 let Inst{7-5} = 0b011;
35546 let Inst{13-13} = 0b0;
35547 let Inst{31-21} = 0b00011001001;
35548 let hasNewValue = 1;
35549 let opNewValue = 0;
35550 let DecoderNamespace = "EXT_mmvec";
35551 let isCodeGenOnly = 1;
35552 }
35553 def V6_vdmpyhisat_acc : HInst<
35554 (outs VectorRegs:$Vx32),
35555 (ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35556 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
35557 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
35558 let Inst{7-5} = 0b010;
35559 let Inst{13-13} = 0b1;
35560 let Inst{31-21} = 0b00011001001;
35561 let hasNewValue = 1;
35562 let opNewValue = 0;
35563 let isAccumulator = 1;
35564 let DecoderNamespace = "EXT_mmvec";
35565 let Constraints = "$Vx32 = $Vx32in";
35566 }
35567 def V6_vdmpyhisat_acc_128B : HInst<
35568 (outs VectorRegs128B:$Vx32),
35569 (ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35570 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
35571 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
35572 let Inst{7-5} = 0b010;
35573 let Inst{13-13} = 0b1;
35574 let Inst{31-21} = 0b00011001001;
35575 let hasNewValue = 1;
35576 let opNewValue = 0;
35577 let isAccumulator = 1;
35578 let DecoderNamespace = "EXT_mmvec";
35579 let isCodeGenOnly = 1;
35580 let Constraints = "$Vx32 = $Vx32in";
35581 }
35582 def V6_vdmpyhisat_acc_alt : HInst<
35583 (outs VectorRegs:$Vx32),
35584 (ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35585 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
35586 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35587 let hasNewValue = 1;
35588 let opNewValue = 0;
35589 let isAccumulator = 1;
35590 let isPseudo = 1;
35591 let isCodeGenOnly = 1;
35592 let DecoderNamespace = "EXT_mmvec";
35593 let Constraints = "$Vx32 = $Vx32in";
35594 }
35595 def V6_vdmpyhisat_acc_alt_128B : HInst<
35596 (outs VectorRegs128B:$Vx32),
35597 (ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35598 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
35599 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35600 let hasNewValue = 1;
35601 let opNewValue = 0;
35602 let isAccumulator = 1;
35603 let isPseudo = 1;
35604 let isCodeGenOnly = 1;
35605 let DecoderNamespace = "EXT_mmvec";
35606 let isCodeGenOnly = 1;
35607 let Constraints = "$Vx32 = $Vx32in";
35608 }
35609 def V6_vdmpyhisat_alt : HInst<
35610 (outs VectorRegs:$Vd32),
35611 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35612 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
35613 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35614 let hasNewValue = 1;
35615 let opNewValue = 0;
35616 let isPseudo = 1;
35617 let isCodeGenOnly = 1;
35618 let DecoderNamespace = "EXT_mmvec";
35619 }
35620 def V6_vdmpyhisat_alt_128B : HInst<
35621 (outs VectorRegs128B:$Vd32),
35622 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35623 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
35624 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35625 let hasNewValue = 1;
35626 let opNewValue = 0;
35627 let isPseudo = 1;
35628 let isCodeGenOnly = 1;
35629 let DecoderNamespace = "EXT_mmvec";
35630 let isCodeGenOnly = 1;
35631 }
35632 def V6_vdmpyhsat : HInst<
35633 (outs VectorRegs:$Vd32),
35634 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35635 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
35636 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35637 let Inst{7-5} = 0b010;
35638 let Inst{13-13} = 0b0;
35639 let Inst{31-21} = 0b00011001001;
35640 let hasNewValue = 1;
35641 let opNewValue = 0;
35642 let DecoderNamespace = "EXT_mmvec";
35643 }
35644 def V6_vdmpyhsat_128B : HInst<
35645 (outs VectorRegs128B:$Vd32),
35646 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35647 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
35648 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35649 let Inst{7-5} = 0b010;
35650 let Inst{13-13} = 0b0;
35651 let Inst{31-21} = 0b00011001001;
35652 let hasNewValue = 1;
35653 let opNewValue = 0;
35654 let DecoderNamespace = "EXT_mmvec";
35655 let isCodeGenOnly = 1;
35656 }
35657 def V6_vdmpyhsat_acc : HInst<
35658 (outs VectorRegs:$Vx32),
35659 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35660 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
35661 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35662 let Inst{7-5} = 0b011;
35663 let Inst{13-13} = 0b1;
35664 let Inst{31-21} = 0b00011001001;
35665 let hasNewValue = 1;
35666 let opNewValue = 0;
35667 let isAccumulator = 1;
35668 let DecoderNamespace = "EXT_mmvec";
35669 let Constraints = "$Vx32 = $Vx32in";
35670 }
35671 def V6_vdmpyhsat_acc_128B : HInst<
35672 (outs VectorRegs128B:$Vx32),
35673 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35674 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
35675 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35676 let Inst{7-5} = 0b011;
35677 let Inst{13-13} = 0b1;
35678 let Inst{31-21} = 0b00011001001;
35679 let hasNewValue = 1;
35680 let opNewValue = 0;
35681 let isAccumulator = 1;
35682 let DecoderNamespace = "EXT_mmvec";
35683 let isCodeGenOnly = 1;
35684 let Constraints = "$Vx32 = $Vx32in";
35685 }
35686 def V6_vdmpyhsat_acc_alt : HInst<
35687 (outs VectorRegs:$Vx32),
35688 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35689 "$Vx32 += vdmpyh($Vu32,$Rt32):sat",
35690 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35691 let hasNewValue = 1;
35692 let opNewValue = 0;
35693 let isAccumulator = 1;
35694 let isPseudo = 1;
35695 let isCodeGenOnly = 1;
35696 let DecoderNamespace = "EXT_mmvec";
35697 let Constraints = "$Vx32 = $Vx32in";
35698 }
35699 def V6_vdmpyhsat_acc_alt_128B : HInst<
35700 (outs VectorRegs128B:$Vx32),
35701 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35702 "$Vx32 += vdmpyh($Vu32,$Rt32):sat",
35703 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35704 let hasNewValue = 1;
35705 let opNewValue = 0;
35706 let isAccumulator = 1;
35707 let isPseudo = 1;
35708 let isCodeGenOnly = 1;
35709 let DecoderNamespace = "EXT_mmvec";
35710 let isCodeGenOnly = 1;
35711 let Constraints = "$Vx32 = $Vx32in";
35712 }
35713 def V6_vdmpyhsat_alt : HInst<
35714 (outs VectorRegs:$Vd32),
35715 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35716 "$Vd32 = vdmpyh($Vu32,$Rt32):sat",
35717 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35718 let hasNewValue = 1;
35719 let opNewValue = 0;
35720 let isPseudo = 1;
35721 let isCodeGenOnly = 1;
35722 let DecoderNamespace = "EXT_mmvec";
35723 }
35724 def V6_vdmpyhsat_alt_128B : HInst<
35725 (outs VectorRegs128B:$Vd32),
35726 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35727 "$Vd32 = vdmpyh($Vu32,$Rt32):sat",
35728 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35729 let hasNewValue = 1;
35730 let opNewValue = 0;
35731 let isPseudo = 1;
35732 let isCodeGenOnly = 1;
35733 let DecoderNamespace = "EXT_mmvec";
35734 let isCodeGenOnly = 1;
35735 }
35736 def V6_vdmpyhsuisat : HInst<
35737 (outs VectorRegs:$Vd32),
35738 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35739 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
35740 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
35741 let Inst{7-5} = 0b001;
35742 let Inst{13-13} = 0b0;
35743 let Inst{31-21} = 0b00011001001;
35744 let hasNewValue = 1;
35745 let opNewValue = 0;
35746 let DecoderNamespace = "EXT_mmvec";
35747 }
35748 def V6_vdmpyhsuisat_128B : HInst<
35749 (outs VectorRegs128B:$Vd32),
35750 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35751 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
35752 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[HasV60T,UseHVX]> {
35753 let Inst{7-5} = 0b001;
35754 let Inst{13-13} = 0b0;
35755 let Inst{31-21} = 0b00011001001;
35756 let hasNewValue = 1;
35757 let opNewValue = 0;
35758 let DecoderNamespace = "EXT_mmvec";
35759 let isCodeGenOnly = 1;
35760 }
35761 def V6_vdmpyhsuisat_acc : HInst<
35762 (outs VectorRegs:$Vx32),
35763 (ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35764 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
35765 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
35766 let Inst{7-5} = 0b001;
35767 let Inst{13-13} = 0b1;
35768 let Inst{31-21} = 0b00011001001;
35769 let hasNewValue = 1;
35770 let opNewValue = 0;
35771 let isAccumulator = 1;
35772 let DecoderNamespace = "EXT_mmvec";
35773 let Constraints = "$Vx32 = $Vx32in";
35774 }
35775 def V6_vdmpyhsuisat_acc_128B : HInst<
35776 (outs VectorRegs128B:$Vx32),
35777 (ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35778 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
35779 tc_d98f4d63, TypeCVI_VX_DV>, Enc_cc857d, Requires<[HasV60T,UseHVX]> {
35780 let Inst{7-5} = 0b001;
35781 let Inst{13-13} = 0b1;
35782 let Inst{31-21} = 0b00011001001;
35783 let hasNewValue = 1;
35784 let opNewValue = 0;
35785 let isAccumulator = 1;
35786 let DecoderNamespace = "EXT_mmvec";
35787 let isCodeGenOnly = 1;
35788 let Constraints = "$Vx32 = $Vx32in";
35789 }
35790 def V6_vdmpyhsuisat_acc_alt : HInst<
35791 (outs VectorRegs:$Vx32),
35792 (ins VectorRegs:$Vx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
35793 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
35794 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35795 let hasNewValue = 1;
35796 let opNewValue = 0;
35797 let isAccumulator = 1;
35798 let isPseudo = 1;
35799 let isCodeGenOnly = 1;
35800 let DecoderNamespace = "EXT_mmvec";
35801 let Constraints = "$Vx32 = $Vx32in";
35802 }
35803 def V6_vdmpyhsuisat_acc_alt_128B : HInst<
35804 (outs VectorRegs128B:$Vx32),
35805 (ins VectorRegs128B:$Vx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35806 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
35807 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35808 let hasNewValue = 1;
35809 let opNewValue = 0;
35810 let isAccumulator = 1;
35811 let isPseudo = 1;
35812 let isCodeGenOnly = 1;
35813 let DecoderNamespace = "EXT_mmvec";
35814 let isCodeGenOnly = 1;
35815 let Constraints = "$Vx32 = $Vx32in";
35816 }
35817 def V6_vdmpyhsuisat_alt : HInst<
35818 (outs VectorRegs:$Vd32),
35819 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
35820 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
35821 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35822 let hasNewValue = 1;
35823 let opNewValue = 0;
35824 let isPseudo = 1;
35825 let isCodeGenOnly = 1;
35826 let DecoderNamespace = "EXT_mmvec";
35827 }
35828 def V6_vdmpyhsuisat_alt_128B : HInst<
35829 (outs VectorRegs128B:$Vd32),
35830 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
35831 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
35832 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35833 let hasNewValue = 1;
35834 let opNewValue = 0;
35835 let isPseudo = 1;
35836 let isCodeGenOnly = 1;
35837 let DecoderNamespace = "EXT_mmvec";
35838 let isCodeGenOnly = 1;
35839 }
35840 def V6_vdmpyhsusat : HInst<
35841 (outs VectorRegs:$Vd32),
35842 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35843 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
35844 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35845 let Inst{7-5} = 0b000;
35846 let Inst{13-13} = 0b0;
35847 let Inst{31-21} = 0b00011001001;
35848 let hasNewValue = 1;
35849 let opNewValue = 0;
35850 let DecoderNamespace = "EXT_mmvec";
35851 }
35852 def V6_vdmpyhsusat_128B : HInst<
35853 (outs VectorRegs128B:$Vd32),
35854 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35855 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
35856 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
35857 let Inst{7-5} = 0b000;
35858 let Inst{13-13} = 0b0;
35859 let Inst{31-21} = 0b00011001001;
35860 let hasNewValue = 1;
35861 let opNewValue = 0;
35862 let DecoderNamespace = "EXT_mmvec";
35863 let isCodeGenOnly = 1;
35864 }
35865 def V6_vdmpyhsusat_acc : HInst<
35866 (outs VectorRegs:$Vx32),
35867 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35868 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
35869 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35870 let Inst{7-5} = 0b000;
35871 let Inst{13-13} = 0b1;
35872 let Inst{31-21} = 0b00011001001;
35873 let hasNewValue = 1;
35874 let opNewValue = 0;
35875 let isAccumulator = 1;
35876 let DecoderNamespace = "EXT_mmvec";
35877 let Constraints = "$Vx32 = $Vx32in";
35878 }
35879 def V6_vdmpyhsusat_acc_128B : HInst<
35880 (outs VectorRegs128B:$Vx32),
35881 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35882 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
35883 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
35884 let Inst{7-5} = 0b000;
35885 let Inst{13-13} = 0b1;
35886 let Inst{31-21} = 0b00011001001;
35887 let hasNewValue = 1;
35888 let opNewValue = 0;
35889 let isAccumulator = 1;
35890 let DecoderNamespace = "EXT_mmvec";
35891 let isCodeGenOnly = 1;
35892 let Constraints = "$Vx32 = $Vx32in";
35893 }
35894 def V6_vdmpyhsusat_acc_alt : HInst<
35895 (outs VectorRegs:$Vx32),
35896 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
35897 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
35898 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35899 let hasNewValue = 1;
35900 let opNewValue = 0;
35901 let isAccumulator = 1;
35902 let isPseudo = 1;
35903 let isCodeGenOnly = 1;
35904 let DecoderNamespace = "EXT_mmvec";
35905 let Constraints = "$Vx32 = $Vx32in";
35906 }
35907 def V6_vdmpyhsusat_acc_alt_128B : HInst<
35908 (outs VectorRegs128B:$Vx32),
35909 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
35910 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
35911 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35912 let hasNewValue = 1;
35913 let opNewValue = 0;
35914 let isAccumulator = 1;
35915 let isPseudo = 1;
35916 let isCodeGenOnly = 1;
35917 let DecoderNamespace = "EXT_mmvec";
35918 let isCodeGenOnly = 1;
35919 let Constraints = "$Vx32 = $Vx32in";
35920 }
35921 def V6_vdmpyhsusat_alt : HInst<
35922 (outs VectorRegs:$Vd32),
35923 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
35924 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
35925 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35926 let hasNewValue = 1;
35927 let opNewValue = 0;
35928 let isPseudo = 1;
35929 let isCodeGenOnly = 1;
35930 let DecoderNamespace = "EXT_mmvec";
35931 }
35932 def V6_vdmpyhsusat_alt_128B : HInst<
35933 (outs VectorRegs128B:$Vd32),
35934 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
35935 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
35936 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
35937 let hasNewValue = 1;
35938 let opNewValue = 0;
35939 let isPseudo = 1;
35940 let isCodeGenOnly = 1;
35941 let DecoderNamespace = "EXT_mmvec";
35942 let isCodeGenOnly = 1;
35943 }
35944 def V6_vdmpyhvsat : HInst<
35945 (outs VectorRegs:$Vd32),
35946 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
35947 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
35948 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
35949 let Inst{7-5} = 0b011;
35950 let Inst{13-13} = 0b0;
35951 let Inst{31-21} = 0b00011100000;
35952 let hasNewValue = 1;
35953 let opNewValue = 0;
35954 let DecoderNamespace = "EXT_mmvec";
35955 }
35956 def V6_vdmpyhvsat_128B : HInst<
35957 (outs VectorRegs128B:$Vd32),
35958 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
35959 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
35960 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
35961 let Inst{7-5} = 0b011;
35962 let Inst{13-13} = 0b0;
35963 let Inst{31-21} = 0b00011100000;
35964 let hasNewValue = 1;
35965 let opNewValue = 0;
35966 let DecoderNamespace = "EXT_mmvec";
35967 let isCodeGenOnly = 1;
35968 }
35969 def V6_vdmpyhvsat_acc : HInst<
35970 (outs VectorRegs:$Vx32),
35971 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
35972 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
35973 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
35974 let Inst{7-5} = 0b011;
35975 let Inst{13-13} = 0b1;
35976 let Inst{31-21} = 0b00011100000;
35977 let hasNewValue = 1;
35978 let opNewValue = 0;
35979 let isAccumulator = 1;
35980 let DecoderNamespace = "EXT_mmvec";
35981 let Constraints = "$Vx32 = $Vx32in";
35982 }
35983 def V6_vdmpyhvsat_acc_128B : HInst<
35984 (outs VectorRegs128B:$Vx32),
35985 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
35986 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
35987 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
35988 let Inst{7-5} = 0b011;
35989 let Inst{13-13} = 0b1;
35990 let Inst{31-21} = 0b00011100000;
35991 let hasNewValue = 1;
35992 let opNewValue = 0;
35993 let isAccumulator = 1;
35994 let DecoderNamespace = "EXT_mmvec";
35995 let isCodeGenOnly = 1;
35996 let Constraints = "$Vx32 = $Vx32in";
35997 }
35998 def V6_vdmpyhvsat_acc_alt : HInst<
35999 (outs VectorRegs:$Vx32),
36000 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36001 "$Vx32 += vdmpyh($Vu32,$Vv32):sat",
36002 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36003 let hasNewValue = 1;
36004 let opNewValue = 0;
36005 let isAccumulator = 1;
36006 let isPseudo = 1;
36007 let isCodeGenOnly = 1;
36008 let DecoderNamespace = "EXT_mmvec";
36009 let Constraints = "$Vx32 = $Vx32in";
36010 }
36011 def V6_vdmpyhvsat_acc_alt_128B : HInst<
36012 (outs VectorRegs128B:$Vx32),
36013 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36014 "$Vx32 += vdmpyh($Vu32,$Vv32):sat",
36015 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36016 let hasNewValue = 1;
36017 let opNewValue = 0;
36018 let isAccumulator = 1;
36019 let isPseudo = 1;
36020 let isCodeGenOnly = 1;
36021 let DecoderNamespace = "EXT_mmvec";
36022 let isCodeGenOnly = 1;
36023 let Constraints = "$Vx32 = $Vx32in";
36024 }
36025 def V6_vdmpyhvsat_alt : HInst<
36026 (outs VectorRegs:$Vd32),
36027 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36028 "$Vd32 = vdmpyh($Vu32,$Vv32):sat",
36029 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36030 let hasNewValue = 1;
36031 let opNewValue = 0;
36032 let isPseudo = 1;
36033 let isCodeGenOnly = 1;
36034 let DecoderNamespace = "EXT_mmvec";
36035 }
36036 def V6_vdmpyhvsat_alt_128B : HInst<
36037 (outs VectorRegs128B:$Vd32),
36038 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36039 "$Vd32 = vdmpyh($Vu32,$Vv32):sat",
36040 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36041 let hasNewValue = 1;
36042 let opNewValue = 0;
36043 let isPseudo = 1;
36044 let isCodeGenOnly = 1;
36045 let DecoderNamespace = "EXT_mmvec";
36046 let isCodeGenOnly = 1;
36047 }
36048 def V6_vdsaduh : HInst<
36049 (outs VecDblRegs:$Vdd32),
36050 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
36051 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
36052 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
36053 let Inst{7-5} = 0b101;
36054 let Inst{13-13} = 0b0;
36055 let Inst{31-21} = 0b00011001000;
36056 let hasNewValue = 1;
36057 let opNewValue = 0;
36058 let DecoderNamespace = "EXT_mmvec";
36059 }
36060 def V6_vdsaduh_128B : HInst<
36061 (outs VecDblRegs128B:$Vdd32),
36062 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
36063 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
36064 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
36065 let Inst{7-5} = 0b101;
36066 let Inst{13-13} = 0b0;
36067 let Inst{31-21} = 0b00011001000;
36068 let hasNewValue = 1;
36069 let opNewValue = 0;
36070 let DecoderNamespace = "EXT_mmvec";
36071 let isCodeGenOnly = 1;
36072 }
36073 def V6_vdsaduh_acc : HInst<
36074 (outs VecDblRegs:$Vxx32),
36075 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
36076 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
36077 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
36078 let Inst{7-5} = 0b000;
36079 let Inst{13-13} = 0b1;
36080 let Inst{31-21} = 0b00011001011;
36081 let hasNewValue = 1;
36082 let opNewValue = 0;
36083 let isAccumulator = 1;
36084 let DecoderNamespace = "EXT_mmvec";
36085 let Constraints = "$Vxx32 = $Vxx32in";
36086 }
36087 def V6_vdsaduh_acc_128B : HInst<
36088 (outs VecDblRegs128B:$Vxx32),
36089 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
36090 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
36091 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
36092 let Inst{7-5} = 0b000;
36093 let Inst{13-13} = 0b1;
36094 let Inst{31-21} = 0b00011001011;
36095 let hasNewValue = 1;
36096 let opNewValue = 0;
36097 let isAccumulator = 1;
36098 let DecoderNamespace = "EXT_mmvec";
36099 let isCodeGenOnly = 1;
36100 let Constraints = "$Vxx32 = $Vxx32in";
36101 }
36102 def V6_vdsaduh_acc_alt : HInst<
36103 (outs VecDblRegs:$Vxx32),
36104 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
36105 "$Vxx32 += vdsaduh($Vuu32,$Rt32)",
36106 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36107 let hasNewValue = 1;
36108 let opNewValue = 0;
36109 let isAccumulator = 1;
36110 let isPseudo = 1;
36111 let isCodeGenOnly = 1;
36112 let DecoderNamespace = "EXT_mmvec";
36113 let Constraints = "$Vxx32 = $Vxx32in";
36114 }
36115 def V6_vdsaduh_acc_alt_128B : HInst<
36116 (outs VecDblRegs128B:$Vxx32),
36117 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
36118 "$Vxx32 += vdsaduh($Vuu32,$Rt32)",
36119 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36120 let hasNewValue = 1;
36121 let opNewValue = 0;
36122 let isAccumulator = 1;
36123 let isPseudo = 1;
36124 let isCodeGenOnly = 1;
36125 let DecoderNamespace = "EXT_mmvec";
36126 let isCodeGenOnly = 1;
36127 let Constraints = "$Vxx32 = $Vxx32in";
36128 }
36129 def V6_vdsaduh_alt : HInst<
36130 (outs VecDblRegs:$Vdd32),
36131 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
36132 "$Vdd32 = vdsaduh($Vuu32,$Rt32)",
36133 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36134 let hasNewValue = 1;
36135 let opNewValue = 0;
36136 let isPseudo = 1;
36137 let isCodeGenOnly = 1;
36138 let DecoderNamespace = "EXT_mmvec";
36139 }
36140 def V6_vdsaduh_alt_128B : HInst<
36141 (outs VecDblRegs128B:$Vdd32),
36142 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
36143 "$Vdd32 = vdsaduh($Vuu32,$Rt32)",
36144 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
36145 let hasNewValue = 1;
36146 let opNewValue = 0;
36147 let isPseudo = 1;
36148 let isCodeGenOnly = 1;
36149 let DecoderNamespace = "EXT_mmvec";
36150 let isCodeGenOnly = 1;
36151 }
36152 def V6_veqb : HInst<
36153 (outs VecPredRegs:$Qd4),
36154 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36155 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
36156 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36157 let Inst{7-2} = 0b000000;
36158 let Inst{13-13} = 0b0;
36159 let Inst{31-21} = 0b00011111100;
36160 let hasNewValue = 1;
36161 let opNewValue = 0;
36162 let DecoderNamespace = "EXT_mmvec";
36163 }
36164 def V6_veqb_128B : HInst<
36165 (outs VecPredRegs128B:$Qd4),
36166 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36167 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
36168 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36169 let Inst{7-2} = 0b000000;
36170 let Inst{13-13} = 0b0;
36171 let Inst{31-21} = 0b00011111100;
36172 let hasNewValue = 1;
36173 let opNewValue = 0;
36174 let DecoderNamespace = "EXT_mmvec";
36175 let isCodeGenOnly = 1;
36176 }
36177 def V6_veqb_and : HInst<
36178 (outs VecPredRegs:$Qx4),
36179 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36180 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
36181 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36182 let Inst{7-2} = 0b000000;
36183 let Inst{13-13} = 0b1;
36184 let Inst{31-21} = 0b00011100100;
36185 let hasNewValue = 1;
36186 let opNewValue = 0;
36187 let DecoderNamespace = "EXT_mmvec";
36188 let Constraints = "$Qx4 = $Qx4in";
36189 }
36190 def V6_veqb_and_128B : HInst<
36191 (outs VecPredRegs128B:$Qx4),
36192 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36193 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
36194 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36195 let Inst{7-2} = 0b000000;
36196 let Inst{13-13} = 0b1;
36197 let Inst{31-21} = 0b00011100100;
36198 let hasNewValue = 1;
36199 let opNewValue = 0;
36200 let DecoderNamespace = "EXT_mmvec";
36201 let isCodeGenOnly = 1;
36202 let Constraints = "$Qx4 = $Qx4in";
36203 }
36204 def V6_veqb_or : HInst<
36205 (outs VecPredRegs:$Qx4),
36206 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36207 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
36208 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36209 let Inst{7-2} = 0b010000;
36210 let Inst{13-13} = 0b1;
36211 let Inst{31-21} = 0b00011100100;
36212 let hasNewValue = 1;
36213 let opNewValue = 0;
36214 let isAccumulator = 1;
36215 let DecoderNamespace = "EXT_mmvec";
36216 let Constraints = "$Qx4 = $Qx4in";
36217 }
36218 def V6_veqb_or_128B : HInst<
36219 (outs VecPredRegs128B:$Qx4),
36220 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36221 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
36222 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36223 let Inst{7-2} = 0b010000;
36224 let Inst{13-13} = 0b1;
36225 let Inst{31-21} = 0b00011100100;
36226 let hasNewValue = 1;
36227 let opNewValue = 0;
36228 let isAccumulator = 1;
36229 let DecoderNamespace = "EXT_mmvec";
36230 let isCodeGenOnly = 1;
36231 let Constraints = "$Qx4 = $Qx4in";
36232 }
36233 def V6_veqb_xor : HInst<
36234 (outs VecPredRegs:$Qx4),
36235 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36236 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
36237 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36238 let Inst{7-2} = 0b100000;
36239 let Inst{13-13} = 0b1;
36240 let Inst{31-21} = 0b00011100100;
36241 let hasNewValue = 1;
36242 let opNewValue = 0;
36243 let DecoderNamespace = "EXT_mmvec";
36244 let Constraints = "$Qx4 = $Qx4in";
36245 }
36246 def V6_veqb_xor_128B : HInst<
36247 (outs VecPredRegs128B:$Qx4),
36248 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36249 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
36250 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36251 let Inst{7-2} = 0b100000;
36252 let Inst{13-13} = 0b1;
36253 let Inst{31-21} = 0b00011100100;
36254 let hasNewValue = 1;
36255 let opNewValue = 0;
36256 let DecoderNamespace = "EXT_mmvec";
36257 let isCodeGenOnly = 1;
36258 let Constraints = "$Qx4 = $Qx4in";
36259 }
36260 def V6_veqh : HInst<
36261 (outs VecPredRegs:$Qd4),
36262 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36263 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
36264 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36265 let Inst{7-2} = 0b000001;
36266 let Inst{13-13} = 0b0;
36267 let Inst{31-21} = 0b00011111100;
36268 let hasNewValue = 1;
36269 let opNewValue = 0;
36270 let DecoderNamespace = "EXT_mmvec";
36271 }
36272 def V6_veqh_128B : HInst<
36273 (outs VecPredRegs128B:$Qd4),
36274 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36275 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
36276 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36277 let Inst{7-2} = 0b000001;
36278 let Inst{13-13} = 0b0;
36279 let Inst{31-21} = 0b00011111100;
36280 let hasNewValue = 1;
36281 let opNewValue = 0;
36282 let DecoderNamespace = "EXT_mmvec";
36283 let isCodeGenOnly = 1;
36284 }
36285 def V6_veqh_and : HInst<
36286 (outs VecPredRegs:$Qx4),
36287 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36288 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
36289 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36290 let Inst{7-2} = 0b000001;
36291 let Inst{13-13} = 0b1;
36292 let Inst{31-21} = 0b00011100100;
36293 let hasNewValue = 1;
36294 let opNewValue = 0;
36295 let DecoderNamespace = "EXT_mmvec";
36296 let Constraints = "$Qx4 = $Qx4in";
36297 }
36298 def V6_veqh_and_128B : HInst<
36299 (outs VecPredRegs128B:$Qx4),
36300 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36301 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
36302 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36303 let Inst{7-2} = 0b000001;
36304 let Inst{13-13} = 0b1;
36305 let Inst{31-21} = 0b00011100100;
36306 let hasNewValue = 1;
36307 let opNewValue = 0;
36308 let DecoderNamespace = "EXT_mmvec";
36309 let isCodeGenOnly = 1;
36310 let Constraints = "$Qx4 = $Qx4in";
36311 }
36312 def V6_veqh_or : HInst<
36313 (outs VecPredRegs:$Qx4),
36314 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36315 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
36316 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36317 let Inst{7-2} = 0b010001;
36318 let Inst{13-13} = 0b1;
36319 let Inst{31-21} = 0b00011100100;
36320 let hasNewValue = 1;
36321 let opNewValue = 0;
36322 let isAccumulator = 1;
36323 let DecoderNamespace = "EXT_mmvec";
36324 let Constraints = "$Qx4 = $Qx4in";
36325 }
36326 def V6_veqh_or_128B : HInst<
36327 (outs VecPredRegs128B:$Qx4),
36328 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36329 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
36330 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36331 let Inst{7-2} = 0b010001;
36332 let Inst{13-13} = 0b1;
36333 let Inst{31-21} = 0b00011100100;
36334 let hasNewValue = 1;
36335 let opNewValue = 0;
36336 let isAccumulator = 1;
36337 let DecoderNamespace = "EXT_mmvec";
36338 let isCodeGenOnly = 1;
36339 let Constraints = "$Qx4 = $Qx4in";
36340 }
36341 def V6_veqh_xor : HInst<
36342 (outs VecPredRegs:$Qx4),
36343 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36344 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
36345 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36346 let Inst{7-2} = 0b100001;
36347 let Inst{13-13} = 0b1;
36348 let Inst{31-21} = 0b00011100100;
36349 let hasNewValue = 1;
36350 let opNewValue = 0;
36351 let DecoderNamespace = "EXT_mmvec";
36352 let Constraints = "$Qx4 = $Qx4in";
36353 }
36354 def V6_veqh_xor_128B : HInst<
36355 (outs VecPredRegs128B:$Qx4),
36356 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36357 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
36358 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36359 let Inst{7-2} = 0b100001;
36360 let Inst{13-13} = 0b1;
36361 let Inst{31-21} = 0b00011100100;
36362 let hasNewValue = 1;
36363 let opNewValue = 0;
36364 let DecoderNamespace = "EXT_mmvec";
36365 let isCodeGenOnly = 1;
36366 let Constraints = "$Qx4 = $Qx4in";
36367 }
36368 def V6_veqw : HInst<
36369 (outs VecPredRegs:$Qd4),
36370 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36371 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
36372 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36373 let Inst{7-2} = 0b000010;
36374 let Inst{13-13} = 0b0;
36375 let Inst{31-21} = 0b00011111100;
36376 let hasNewValue = 1;
36377 let opNewValue = 0;
36378 let DecoderNamespace = "EXT_mmvec";
36379 }
36380 def V6_veqw_128B : HInst<
36381 (outs VecPredRegs128B:$Qd4),
36382 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36383 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
36384 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36385 let Inst{7-2} = 0b000010;
36386 let Inst{13-13} = 0b0;
36387 let Inst{31-21} = 0b00011111100;
36388 let hasNewValue = 1;
36389 let opNewValue = 0;
36390 let DecoderNamespace = "EXT_mmvec";
36391 let isCodeGenOnly = 1;
36392 }
36393 def V6_veqw_and : HInst<
36394 (outs VecPredRegs:$Qx4),
36395 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36396 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
36397 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36398 let Inst{7-2} = 0b000010;
36399 let Inst{13-13} = 0b1;
36400 let Inst{31-21} = 0b00011100100;
36401 let hasNewValue = 1;
36402 let opNewValue = 0;
36403 let DecoderNamespace = "EXT_mmvec";
36404 let Constraints = "$Qx4 = $Qx4in";
36405 }
36406 def V6_veqw_and_128B : HInst<
36407 (outs VecPredRegs128B:$Qx4),
36408 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36409 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
36410 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36411 let Inst{7-2} = 0b000010;
36412 let Inst{13-13} = 0b1;
36413 let Inst{31-21} = 0b00011100100;
36414 let hasNewValue = 1;
36415 let opNewValue = 0;
36416 let DecoderNamespace = "EXT_mmvec";
36417 let isCodeGenOnly = 1;
36418 let Constraints = "$Qx4 = $Qx4in";
36419 }
36420 def V6_veqw_or : HInst<
36421 (outs VecPredRegs:$Qx4),
36422 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36423 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
36424 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36425 let Inst{7-2} = 0b010010;
36426 let Inst{13-13} = 0b1;
36427 let Inst{31-21} = 0b00011100100;
36428 let hasNewValue = 1;
36429 let opNewValue = 0;
36430 let isAccumulator = 1;
36431 let DecoderNamespace = "EXT_mmvec";
36432 let Constraints = "$Qx4 = $Qx4in";
36433 }
36434 def V6_veqw_or_128B : HInst<
36435 (outs VecPredRegs128B:$Qx4),
36436 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36437 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
36438 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36439 let Inst{7-2} = 0b010010;
36440 let Inst{13-13} = 0b1;
36441 let Inst{31-21} = 0b00011100100;
36442 let hasNewValue = 1;
36443 let opNewValue = 0;
36444 let isAccumulator = 1;
36445 let DecoderNamespace = "EXT_mmvec";
36446 let isCodeGenOnly = 1;
36447 let Constraints = "$Qx4 = $Qx4in";
36448 }
36449 def V6_veqw_xor : HInst<
36450 (outs VecPredRegs:$Qx4),
36451 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36452 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
36453 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36454 let Inst{7-2} = 0b100010;
36455 let Inst{13-13} = 0b1;
36456 let Inst{31-21} = 0b00011100100;
36457 let hasNewValue = 1;
36458 let opNewValue = 0;
36459 let DecoderNamespace = "EXT_mmvec";
36460 let Constraints = "$Qx4 = $Qx4in";
36461 }
36462 def V6_veqw_xor_128B : HInst<
36463 (outs VecPredRegs128B:$Qx4),
36464 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36465 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
36466 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36467 let Inst{7-2} = 0b100010;
36468 let Inst{13-13} = 0b1;
36469 let Inst{31-21} = 0b00011100100;
36470 let hasNewValue = 1;
36471 let opNewValue = 0;
36472 let DecoderNamespace = "EXT_mmvec";
36473 let isCodeGenOnly = 1;
36474 let Constraints = "$Qx4 = $Qx4in";
36475 }
36476 def V6_vgtb : HInst<
36477 (outs VecPredRegs:$Qd4),
36478 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36479 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
36480 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36481 let Inst{7-2} = 0b000100;
36482 let Inst{13-13} = 0b0;
36483 let Inst{31-21} = 0b00011111100;
36484 let hasNewValue = 1;
36485 let opNewValue = 0;
36486 let DecoderNamespace = "EXT_mmvec";
36487 }
36488 def V6_vgtb_128B : HInst<
36489 (outs VecPredRegs128B:$Qd4),
36490 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36491 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
36492 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36493 let Inst{7-2} = 0b000100;
36494 let Inst{13-13} = 0b0;
36495 let Inst{31-21} = 0b00011111100;
36496 let hasNewValue = 1;
36497 let opNewValue = 0;
36498 let DecoderNamespace = "EXT_mmvec";
36499 let isCodeGenOnly = 1;
36500 }
36501 def V6_vgtb_and : HInst<
36502 (outs VecPredRegs:$Qx4),
36503 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36504 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
36505 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36506 let Inst{7-2} = 0b000100;
36507 let Inst{13-13} = 0b1;
36508 let Inst{31-21} = 0b00011100100;
36509 let hasNewValue = 1;
36510 let opNewValue = 0;
36511 let DecoderNamespace = "EXT_mmvec";
36512 let Constraints = "$Qx4 = $Qx4in";
36513 }
36514 def V6_vgtb_and_128B : HInst<
36515 (outs VecPredRegs128B:$Qx4),
36516 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36517 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
36518 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36519 let Inst{7-2} = 0b000100;
36520 let Inst{13-13} = 0b1;
36521 let Inst{31-21} = 0b00011100100;
36522 let hasNewValue = 1;
36523 let opNewValue = 0;
36524 let DecoderNamespace = "EXT_mmvec";
36525 let isCodeGenOnly = 1;
36526 let Constraints = "$Qx4 = $Qx4in";
36527 }
36528 def V6_vgtb_or : HInst<
36529 (outs VecPredRegs:$Qx4),
36530 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36531 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
36532 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36533 let Inst{7-2} = 0b010100;
36534 let Inst{13-13} = 0b1;
36535 let Inst{31-21} = 0b00011100100;
36536 let hasNewValue = 1;
36537 let opNewValue = 0;
36538 let isAccumulator = 1;
36539 let DecoderNamespace = "EXT_mmvec";
36540 let Constraints = "$Qx4 = $Qx4in";
36541 }
36542 def V6_vgtb_or_128B : HInst<
36543 (outs VecPredRegs128B:$Qx4),
36544 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36545 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
36546 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36547 let Inst{7-2} = 0b010100;
36548 let Inst{13-13} = 0b1;
36549 let Inst{31-21} = 0b00011100100;
36550 let hasNewValue = 1;
36551 let opNewValue = 0;
36552 let isAccumulator = 1;
36553 let DecoderNamespace = "EXT_mmvec";
36554 let isCodeGenOnly = 1;
36555 let Constraints = "$Qx4 = $Qx4in";
36556 }
36557 def V6_vgtb_xor : HInst<
36558 (outs VecPredRegs:$Qx4),
36559 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36560 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
36561 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36562 let Inst{7-2} = 0b100100;
36563 let Inst{13-13} = 0b1;
36564 let Inst{31-21} = 0b00011100100;
36565 let hasNewValue = 1;
36566 let opNewValue = 0;
36567 let DecoderNamespace = "EXT_mmvec";
36568 let Constraints = "$Qx4 = $Qx4in";
36569 }
36570 def V6_vgtb_xor_128B : HInst<
36571 (outs VecPredRegs128B:$Qx4),
36572 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36573 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
36574 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36575 let Inst{7-2} = 0b100100;
36576 let Inst{13-13} = 0b1;
36577 let Inst{31-21} = 0b00011100100;
36578 let hasNewValue = 1;
36579 let opNewValue = 0;
36580 let DecoderNamespace = "EXT_mmvec";
36581 let isCodeGenOnly = 1;
36582 let Constraints = "$Qx4 = $Qx4in";
36583 }
36584 def V6_vgth : HInst<
36585 (outs VecPredRegs:$Qd4),
36586 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36587 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
36588 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36589 let Inst{7-2} = 0b000101;
36590 let Inst{13-13} = 0b0;
36591 let Inst{31-21} = 0b00011111100;
36592 let hasNewValue = 1;
36593 let opNewValue = 0;
36594 let DecoderNamespace = "EXT_mmvec";
36595 }
36596 def V6_vgth_128B : HInst<
36597 (outs VecPredRegs128B:$Qd4),
36598 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36599 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
36600 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36601 let Inst{7-2} = 0b000101;
36602 let Inst{13-13} = 0b0;
36603 let Inst{31-21} = 0b00011111100;
36604 let hasNewValue = 1;
36605 let opNewValue = 0;
36606 let DecoderNamespace = "EXT_mmvec";
36607 let isCodeGenOnly = 1;
36608 }
36609 def V6_vgth_and : HInst<
36610 (outs VecPredRegs:$Qx4),
36611 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36612 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
36613 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36614 let Inst{7-2} = 0b000101;
36615 let Inst{13-13} = 0b1;
36616 let Inst{31-21} = 0b00011100100;
36617 let hasNewValue = 1;
36618 let opNewValue = 0;
36619 let DecoderNamespace = "EXT_mmvec";
36620 let Constraints = "$Qx4 = $Qx4in";
36621 }
36622 def V6_vgth_and_128B : HInst<
36623 (outs VecPredRegs128B:$Qx4),
36624 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36625 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
36626 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36627 let Inst{7-2} = 0b000101;
36628 let Inst{13-13} = 0b1;
36629 let Inst{31-21} = 0b00011100100;
36630 let hasNewValue = 1;
36631 let opNewValue = 0;
36632 let DecoderNamespace = "EXT_mmvec";
36633 let isCodeGenOnly = 1;
36634 let Constraints = "$Qx4 = $Qx4in";
36635 }
36636 def V6_vgth_or : HInst<
36637 (outs VecPredRegs:$Qx4),
36638 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36639 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
36640 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36641 let Inst{7-2} = 0b010101;
36642 let Inst{13-13} = 0b1;
36643 let Inst{31-21} = 0b00011100100;
36644 let hasNewValue = 1;
36645 let opNewValue = 0;
36646 let isAccumulator = 1;
36647 let DecoderNamespace = "EXT_mmvec";
36648 let Constraints = "$Qx4 = $Qx4in";
36649 }
36650 def V6_vgth_or_128B : HInst<
36651 (outs VecPredRegs128B:$Qx4),
36652 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36653 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
36654 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36655 let Inst{7-2} = 0b010101;
36656 let Inst{13-13} = 0b1;
36657 let Inst{31-21} = 0b00011100100;
36658 let hasNewValue = 1;
36659 let opNewValue = 0;
36660 let isAccumulator = 1;
36661 let DecoderNamespace = "EXT_mmvec";
36662 let isCodeGenOnly = 1;
36663 let Constraints = "$Qx4 = $Qx4in";
36664 }
36665 def V6_vgth_xor : HInst<
36666 (outs VecPredRegs:$Qx4),
36667 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36668 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
36669 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36670 let Inst{7-2} = 0b100101;
36671 let Inst{13-13} = 0b1;
36672 let Inst{31-21} = 0b00011100100;
36673 let hasNewValue = 1;
36674 let opNewValue = 0;
36675 let DecoderNamespace = "EXT_mmvec";
36676 let Constraints = "$Qx4 = $Qx4in";
36677 }
36678 def V6_vgth_xor_128B : HInst<
36679 (outs VecPredRegs128B:$Qx4),
36680 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36681 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
36682 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36683 let Inst{7-2} = 0b100101;
36684 let Inst{13-13} = 0b1;
36685 let Inst{31-21} = 0b00011100100;
36686 let hasNewValue = 1;
36687 let opNewValue = 0;
36688 let DecoderNamespace = "EXT_mmvec";
36689 let isCodeGenOnly = 1;
36690 let Constraints = "$Qx4 = $Qx4in";
36691 }
36692 def V6_vgtub : HInst<
36693 (outs VecPredRegs:$Qd4),
36694 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36695 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
36696 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36697 let Inst{7-2} = 0b001000;
36698 let Inst{13-13} = 0b0;
36699 let Inst{31-21} = 0b00011111100;
36700 let hasNewValue = 1;
36701 let opNewValue = 0;
36702 let DecoderNamespace = "EXT_mmvec";
36703 }
36704 def V6_vgtub_128B : HInst<
36705 (outs VecPredRegs128B:$Qd4),
36706 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36707 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
36708 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36709 let Inst{7-2} = 0b001000;
36710 let Inst{13-13} = 0b0;
36711 let Inst{31-21} = 0b00011111100;
36712 let hasNewValue = 1;
36713 let opNewValue = 0;
36714 let DecoderNamespace = "EXT_mmvec";
36715 let isCodeGenOnly = 1;
36716 }
36717 def V6_vgtub_and : HInst<
36718 (outs VecPredRegs:$Qx4),
36719 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36720 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
36721 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36722 let Inst{7-2} = 0b001000;
36723 let Inst{13-13} = 0b1;
36724 let Inst{31-21} = 0b00011100100;
36725 let hasNewValue = 1;
36726 let opNewValue = 0;
36727 let DecoderNamespace = "EXT_mmvec";
36728 let Constraints = "$Qx4 = $Qx4in";
36729 }
36730 def V6_vgtub_and_128B : HInst<
36731 (outs VecPredRegs128B:$Qx4),
36732 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36733 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
36734 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36735 let Inst{7-2} = 0b001000;
36736 let Inst{13-13} = 0b1;
36737 let Inst{31-21} = 0b00011100100;
36738 let hasNewValue = 1;
36739 let opNewValue = 0;
36740 let DecoderNamespace = "EXT_mmvec";
36741 let isCodeGenOnly = 1;
36742 let Constraints = "$Qx4 = $Qx4in";
36743 }
36744 def V6_vgtub_or : HInst<
36745 (outs VecPredRegs:$Qx4),
36746 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36747 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
36748 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36749 let Inst{7-2} = 0b011000;
36750 let Inst{13-13} = 0b1;
36751 let Inst{31-21} = 0b00011100100;
36752 let hasNewValue = 1;
36753 let opNewValue = 0;
36754 let isAccumulator = 1;
36755 let DecoderNamespace = "EXT_mmvec";
36756 let Constraints = "$Qx4 = $Qx4in";
36757 }
36758 def V6_vgtub_or_128B : HInst<
36759 (outs VecPredRegs128B:$Qx4),
36760 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36761 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
36762 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36763 let Inst{7-2} = 0b011000;
36764 let Inst{13-13} = 0b1;
36765 let Inst{31-21} = 0b00011100100;
36766 let hasNewValue = 1;
36767 let opNewValue = 0;
36768 let isAccumulator = 1;
36769 let DecoderNamespace = "EXT_mmvec";
36770 let isCodeGenOnly = 1;
36771 let Constraints = "$Qx4 = $Qx4in";
36772 }
36773 def V6_vgtub_xor : HInst<
36774 (outs VecPredRegs:$Qx4),
36775 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36776 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
36777 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36778 let Inst{7-2} = 0b101000;
36779 let Inst{13-13} = 0b1;
36780 let Inst{31-21} = 0b00011100100;
36781 let hasNewValue = 1;
36782 let opNewValue = 0;
36783 let DecoderNamespace = "EXT_mmvec";
36784 let Constraints = "$Qx4 = $Qx4in";
36785 }
36786 def V6_vgtub_xor_128B : HInst<
36787 (outs VecPredRegs128B:$Qx4),
36788 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36789 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
36790 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36791 let Inst{7-2} = 0b101000;
36792 let Inst{13-13} = 0b1;
36793 let Inst{31-21} = 0b00011100100;
36794 let hasNewValue = 1;
36795 let opNewValue = 0;
36796 let DecoderNamespace = "EXT_mmvec";
36797 let isCodeGenOnly = 1;
36798 let Constraints = "$Qx4 = $Qx4in";
36799 }
36800 def V6_vgtuh : HInst<
36801 (outs VecPredRegs:$Qd4),
36802 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36803 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
36804 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36805 let Inst{7-2} = 0b001001;
36806 let Inst{13-13} = 0b0;
36807 let Inst{31-21} = 0b00011111100;
36808 let hasNewValue = 1;
36809 let opNewValue = 0;
36810 let DecoderNamespace = "EXT_mmvec";
36811 }
36812 def V6_vgtuh_128B : HInst<
36813 (outs VecPredRegs128B:$Qd4),
36814 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36815 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
36816 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36817 let Inst{7-2} = 0b001001;
36818 let Inst{13-13} = 0b0;
36819 let Inst{31-21} = 0b00011111100;
36820 let hasNewValue = 1;
36821 let opNewValue = 0;
36822 let DecoderNamespace = "EXT_mmvec";
36823 let isCodeGenOnly = 1;
36824 }
36825 def V6_vgtuh_and : HInst<
36826 (outs VecPredRegs:$Qx4),
36827 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36828 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
36829 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36830 let Inst{7-2} = 0b001001;
36831 let Inst{13-13} = 0b1;
36832 let Inst{31-21} = 0b00011100100;
36833 let hasNewValue = 1;
36834 let opNewValue = 0;
36835 let DecoderNamespace = "EXT_mmvec";
36836 let Constraints = "$Qx4 = $Qx4in";
36837 }
36838 def V6_vgtuh_and_128B : HInst<
36839 (outs VecPredRegs128B:$Qx4),
36840 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36841 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
36842 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36843 let Inst{7-2} = 0b001001;
36844 let Inst{13-13} = 0b1;
36845 let Inst{31-21} = 0b00011100100;
36846 let hasNewValue = 1;
36847 let opNewValue = 0;
36848 let DecoderNamespace = "EXT_mmvec";
36849 let isCodeGenOnly = 1;
36850 let Constraints = "$Qx4 = $Qx4in";
36851 }
36852 def V6_vgtuh_or : HInst<
36853 (outs VecPredRegs:$Qx4),
36854 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36855 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
36856 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36857 let Inst{7-2} = 0b011001;
36858 let Inst{13-13} = 0b1;
36859 let Inst{31-21} = 0b00011100100;
36860 let hasNewValue = 1;
36861 let opNewValue = 0;
36862 let isAccumulator = 1;
36863 let DecoderNamespace = "EXT_mmvec";
36864 let Constraints = "$Qx4 = $Qx4in";
36865 }
36866 def V6_vgtuh_or_128B : HInst<
36867 (outs VecPredRegs128B:$Qx4),
36868 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36869 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
36870 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36871 let Inst{7-2} = 0b011001;
36872 let Inst{13-13} = 0b1;
36873 let Inst{31-21} = 0b00011100100;
36874 let hasNewValue = 1;
36875 let opNewValue = 0;
36876 let isAccumulator = 1;
36877 let DecoderNamespace = "EXT_mmvec";
36878 let isCodeGenOnly = 1;
36879 let Constraints = "$Qx4 = $Qx4in";
36880 }
36881 def V6_vgtuh_xor : HInst<
36882 (outs VecPredRegs:$Qx4),
36883 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36884 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
36885 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36886 let Inst{7-2} = 0b101001;
36887 let Inst{13-13} = 0b1;
36888 let Inst{31-21} = 0b00011100100;
36889 let hasNewValue = 1;
36890 let opNewValue = 0;
36891 let DecoderNamespace = "EXT_mmvec";
36892 let Constraints = "$Qx4 = $Qx4in";
36893 }
36894 def V6_vgtuh_xor_128B : HInst<
36895 (outs VecPredRegs128B:$Qx4),
36896 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36897 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
36898 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36899 let Inst{7-2} = 0b101001;
36900 let Inst{13-13} = 0b1;
36901 let Inst{31-21} = 0b00011100100;
36902 let hasNewValue = 1;
36903 let opNewValue = 0;
36904 let DecoderNamespace = "EXT_mmvec";
36905 let isCodeGenOnly = 1;
36906 let Constraints = "$Qx4 = $Qx4in";
36907 }
36908 def V6_vgtuw : HInst<
36909 (outs VecPredRegs:$Qd4),
36910 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
36911 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
36912 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36913 let Inst{7-2} = 0b001010;
36914 let Inst{13-13} = 0b0;
36915 let Inst{31-21} = 0b00011111100;
36916 let hasNewValue = 1;
36917 let opNewValue = 0;
36918 let DecoderNamespace = "EXT_mmvec";
36919 }
36920 def V6_vgtuw_128B : HInst<
36921 (outs VecPredRegs128B:$Qd4),
36922 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36923 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
36924 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
36925 let Inst{7-2} = 0b001010;
36926 let Inst{13-13} = 0b0;
36927 let Inst{31-21} = 0b00011111100;
36928 let hasNewValue = 1;
36929 let opNewValue = 0;
36930 let DecoderNamespace = "EXT_mmvec";
36931 let isCodeGenOnly = 1;
36932 }
36933 def V6_vgtuw_and : HInst<
36934 (outs VecPredRegs:$Qx4),
36935 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36936 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
36937 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36938 let Inst{7-2} = 0b001010;
36939 let Inst{13-13} = 0b1;
36940 let Inst{31-21} = 0b00011100100;
36941 let hasNewValue = 1;
36942 let opNewValue = 0;
36943 let DecoderNamespace = "EXT_mmvec";
36944 let Constraints = "$Qx4 = $Qx4in";
36945 }
36946 def V6_vgtuw_and_128B : HInst<
36947 (outs VecPredRegs128B:$Qx4),
36948 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36949 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
36950 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36951 let Inst{7-2} = 0b001010;
36952 let Inst{13-13} = 0b1;
36953 let Inst{31-21} = 0b00011100100;
36954 let hasNewValue = 1;
36955 let opNewValue = 0;
36956 let DecoderNamespace = "EXT_mmvec";
36957 let isCodeGenOnly = 1;
36958 let Constraints = "$Qx4 = $Qx4in";
36959 }
36960 def V6_vgtuw_or : HInst<
36961 (outs VecPredRegs:$Qx4),
36962 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36963 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
36964 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36965 let Inst{7-2} = 0b011010;
36966 let Inst{13-13} = 0b1;
36967 let Inst{31-21} = 0b00011100100;
36968 let hasNewValue = 1;
36969 let opNewValue = 0;
36970 let isAccumulator = 1;
36971 let DecoderNamespace = "EXT_mmvec";
36972 let Constraints = "$Qx4 = $Qx4in";
36973 }
36974 def V6_vgtuw_or_128B : HInst<
36975 (outs VecPredRegs128B:$Qx4),
36976 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
36977 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
36978 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36979 let Inst{7-2} = 0b011010;
36980 let Inst{13-13} = 0b1;
36981 let Inst{31-21} = 0b00011100100;
36982 let hasNewValue = 1;
36983 let opNewValue = 0;
36984 let isAccumulator = 1;
36985 let DecoderNamespace = "EXT_mmvec";
36986 let isCodeGenOnly = 1;
36987 let Constraints = "$Qx4 = $Qx4in";
36988 }
36989 def V6_vgtuw_xor : HInst<
36990 (outs VecPredRegs:$Qx4),
36991 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
36992 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
36993 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
36994 let Inst{7-2} = 0b101010;
36995 let Inst{13-13} = 0b1;
36996 let Inst{31-21} = 0b00011100100;
36997 let hasNewValue = 1;
36998 let opNewValue = 0;
36999 let DecoderNamespace = "EXT_mmvec";
37000 let Constraints = "$Qx4 = $Qx4in";
37001 }
37002 def V6_vgtuw_xor_128B : HInst<
37003 (outs VecPredRegs128B:$Qx4),
37004 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37005 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
37006 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37007 let Inst{7-2} = 0b101010;
37008 let Inst{13-13} = 0b1;
37009 let Inst{31-21} = 0b00011100100;
37010 let hasNewValue = 1;
37011 let opNewValue = 0;
37012 let DecoderNamespace = "EXT_mmvec";
37013 let isCodeGenOnly = 1;
37014 let Constraints = "$Qx4 = $Qx4in";
37015 }
37016 def V6_vgtw : HInst<
37017 (outs VecPredRegs:$Qd4),
37018 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37019 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
37020 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
37021 let Inst{7-2} = 0b000110;
37022 let Inst{13-13} = 0b0;
37023 let Inst{31-21} = 0b00011111100;
37024 let hasNewValue = 1;
37025 let opNewValue = 0;
37026 let DecoderNamespace = "EXT_mmvec";
37027 }
37028 def V6_vgtw_128B : HInst<
37029 (outs VecPredRegs128B:$Qd4),
37030 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37031 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
37032 tc_bbaf280e, TypeCVI_VA>, Enc_95441f, Requires<[HasV60T,UseHVX]> {
37033 let Inst{7-2} = 0b000110;
37034 let Inst{13-13} = 0b0;
37035 let Inst{31-21} = 0b00011111100;
37036 let hasNewValue = 1;
37037 let opNewValue = 0;
37038 let DecoderNamespace = "EXT_mmvec";
37039 let isCodeGenOnly = 1;
37040 }
37041 def V6_vgtw_and : HInst<
37042 (outs VecPredRegs:$Qx4),
37043 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
37044 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
37045 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37046 let Inst{7-2} = 0b000110;
37047 let Inst{13-13} = 0b1;
37048 let Inst{31-21} = 0b00011100100;
37049 let hasNewValue = 1;
37050 let opNewValue = 0;
37051 let DecoderNamespace = "EXT_mmvec";
37052 let Constraints = "$Qx4 = $Qx4in";
37053 }
37054 def V6_vgtw_and_128B : HInst<
37055 (outs VecPredRegs128B:$Qx4),
37056 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37057 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
37058 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37059 let Inst{7-2} = 0b000110;
37060 let Inst{13-13} = 0b1;
37061 let Inst{31-21} = 0b00011100100;
37062 let hasNewValue = 1;
37063 let opNewValue = 0;
37064 let DecoderNamespace = "EXT_mmvec";
37065 let isCodeGenOnly = 1;
37066 let Constraints = "$Qx4 = $Qx4in";
37067 }
37068 def V6_vgtw_or : HInst<
37069 (outs VecPredRegs:$Qx4),
37070 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
37071 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
37072 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37073 let Inst{7-2} = 0b010110;
37074 let Inst{13-13} = 0b1;
37075 let Inst{31-21} = 0b00011100100;
37076 let hasNewValue = 1;
37077 let opNewValue = 0;
37078 let isAccumulator = 1;
37079 let DecoderNamespace = "EXT_mmvec";
37080 let Constraints = "$Qx4 = $Qx4in";
37081 }
37082 def V6_vgtw_or_128B : HInst<
37083 (outs VecPredRegs128B:$Qx4),
37084 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37085 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
37086 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37087 let Inst{7-2} = 0b010110;
37088 let Inst{13-13} = 0b1;
37089 let Inst{31-21} = 0b00011100100;
37090 let hasNewValue = 1;
37091 let opNewValue = 0;
37092 let isAccumulator = 1;
37093 let DecoderNamespace = "EXT_mmvec";
37094 let isCodeGenOnly = 1;
37095 let Constraints = "$Qx4 = $Qx4in";
37096 }
37097 def V6_vgtw_xor : HInst<
37098 (outs VecPredRegs:$Qx4),
37099 (ins VecPredRegs:$Qx4in, VectorRegs:$Vu32, VectorRegs:$Vv32),
37100 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
37101 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37102 let Inst{7-2} = 0b100110;
37103 let Inst{13-13} = 0b1;
37104 let Inst{31-21} = 0b00011100100;
37105 let hasNewValue = 1;
37106 let opNewValue = 0;
37107 let DecoderNamespace = "EXT_mmvec";
37108 let Constraints = "$Qx4 = $Qx4in";
37109 }
37110 def V6_vgtw_xor_128B : HInst<
37111 (outs VecPredRegs128B:$Qx4),
37112 (ins VecPredRegs128B:$Qx4in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37113 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
37114 tc_a3127e12, TypeCVI_VA>, Enc_eaa9f8, Requires<[HasV60T,UseHVX]> {
37115 let Inst{7-2} = 0b100110;
37116 let Inst{13-13} = 0b1;
37117 let Inst{31-21} = 0b00011100100;
37118 let hasNewValue = 1;
37119 let opNewValue = 0;
37120 let DecoderNamespace = "EXT_mmvec";
37121 let isCodeGenOnly = 1;
37122 let Constraints = "$Qx4 = $Qx4in";
37123 }
37124 def V6_vhist : HInst<
37125 (outs),
37126 (ins),
37127 "vhist",
37128 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV60T,UseHVX]> {
37129 let Inst{13-0} = 0b10000010000000;
37130 let Inst{31-16} = 0b0001111000000000;
37131 let DecoderNamespace = "EXT_mmvec";
37132 }
37133 def V6_vhist_128B : HInst<
37134 (outs),
37135 (ins),
37136 "vhist",
37137 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV60T,UseHVX]> {
37138 let Inst{13-0} = 0b10000010000000;
37139 let Inst{31-16} = 0b0001111000000000;
37140 let DecoderNamespace = "EXT_mmvec";
37141 let isCodeGenOnly = 1;
37142 }
37143 def V6_vhistq : HInst<
37144 (outs),
37145 (ins VecPredRegs:$Qv4),
37146 "vhist($Qv4)",
37147 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV60T,UseHVX]> {
37148 let Inst{13-0} = 0b10000010000000;
37149 let Inst{21-16} = 0b000010;
37150 let Inst{31-24} = 0b00011110;
37151 let DecoderNamespace = "EXT_mmvec";
37152 }
37153 def V6_vhistq_128B : HInst<
37154 (outs),
37155 (ins VecPredRegs128B:$Qv4),
37156 "vhist($Qv4)",
37157 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV60T,UseHVX]> {
37158 let Inst{13-0} = 0b10000010000000;
37159 let Inst{21-16} = 0b000010;
37160 let Inst{31-24} = 0b00011110;
37161 let DecoderNamespace = "EXT_mmvec";
37162 let isCodeGenOnly = 1;
37163 }
37164 def V6_vinsertwr : HInst<
37165 (outs VectorRegs:$Vx32),
37166 (ins VectorRegs:$Vx32in, IntRegs:$Rt32),
37167 "$Vx32.w = vinsert($Rt32)",
37168 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[HasV60T,UseHVX]> {
37169 let Inst{13-5} = 0b100000001;
37170 let Inst{31-21} = 0b00011001101;
37171 let hasNewValue = 1;
37172 let opNewValue = 0;
37173 let DecoderNamespace = "EXT_mmvec";
37174 let Constraints = "$Vx32 = $Vx32in";
37175 }
37176 def V6_vinsertwr_128B : HInst<
37177 (outs VectorRegs128B:$Vx32),
37178 (ins VectorRegs128B:$Vx32in, IntRegs:$Rt32),
37179 "$Vx32.w = vinsert($Rt32)",
37180 tc_e231aa4f, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[HasV60T,UseHVX]> {
37181 let Inst{13-5} = 0b100000001;
37182 let Inst{31-21} = 0b00011001101;
37183 let hasNewValue = 1;
37184 let opNewValue = 0;
37185 let DecoderNamespace = "EXT_mmvec";
37186 let isCodeGenOnly = 1;
37187 let Constraints = "$Vx32 = $Vx32in";
37188 }
37189 def V6_vlalignb : HInst<
37190 (outs VectorRegs:$Vd32),
37191 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37192 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
37193 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
37194 let Inst{7-5} = 0b001;
37195 let Inst{13-13} = 0b0;
37196 let Inst{31-24} = 0b00011011;
37197 let hasNewValue = 1;
37198 let opNewValue = 0;
37199 let DecoderNamespace = "EXT_mmvec";
37200 }
37201 def V6_vlalignb_128B : HInst<
37202 (outs VectorRegs128B:$Vd32),
37203 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37204 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
37205 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
37206 let Inst{7-5} = 0b001;
37207 let Inst{13-13} = 0b0;
37208 let Inst{31-24} = 0b00011011;
37209 let hasNewValue = 1;
37210 let opNewValue = 0;
37211 let DecoderNamespace = "EXT_mmvec";
37212 let isCodeGenOnly = 1;
37213 }
37214 def V6_vlalignbi : HInst<
37215 (outs VectorRegs:$Vd32),
37216 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
37217 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
37218 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
37219 let Inst{13-13} = 0b1;
37220 let Inst{31-21} = 0b00011110011;
37221 let hasNewValue = 1;
37222 let opNewValue = 0;
37223 let DecoderNamespace = "EXT_mmvec";
37224 }
37225 def V6_vlalignbi_128B : HInst<
37226 (outs VectorRegs128B:$Vd32),
37227 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
37228 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
37229 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV60T,UseHVX]> {
37230 let Inst{13-13} = 0b1;
37231 let Inst{31-21} = 0b00011110011;
37232 let hasNewValue = 1;
37233 let opNewValue = 0;
37234 let DecoderNamespace = "EXT_mmvec";
37235 let isCodeGenOnly = 1;
37236 }
37237 def V6_vlsrb : HInst<
37238 (outs VectorRegs:$Vd32),
37239 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
37240 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
37241 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
37242 let Inst{7-5} = 0b011;
37243 let Inst{13-13} = 0b0;
37244 let Inst{31-21} = 0b00011001100;
37245 let hasNewValue = 1;
37246 let opNewValue = 0;
37247 let DecoderNamespace = "EXT_mmvec";
37248 }
37249 def V6_vlsrb_128B : HInst<
37250 (outs VectorRegs128B:$Vd32),
37251 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
37252 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
37253 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
37254 let Inst{7-5} = 0b011;
37255 let Inst{13-13} = 0b0;
37256 let Inst{31-21} = 0b00011001100;
37257 let hasNewValue = 1;
37258 let opNewValue = 0;
37259 let DecoderNamespace = "EXT_mmvec";
37260 let isCodeGenOnly = 1;
37261 }
37262 def V6_vlsrh : HInst<
37263 (outs VectorRegs:$Vd32),
37264 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
37265 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
37266 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
37267 let Inst{7-5} = 0b010;
37268 let Inst{13-13} = 0b0;
37269 let Inst{31-21} = 0b00011001100;
37270 let hasNewValue = 1;
37271 let opNewValue = 0;
37272 let DecoderNamespace = "EXT_mmvec";
37273 }
37274 def V6_vlsrh_128B : HInst<
37275 (outs VectorRegs128B:$Vd32),
37276 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
37277 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
37278 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
37279 let Inst{7-5} = 0b010;
37280 let Inst{13-13} = 0b0;
37281 let Inst{31-21} = 0b00011001100;
37282 let hasNewValue = 1;
37283 let opNewValue = 0;
37284 let DecoderNamespace = "EXT_mmvec";
37285 let isCodeGenOnly = 1;
37286 }
37287 def V6_vlsrh_alt : HInst<
37288 (outs VectorRegs:$Vd32),
37289 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
37290 "$Vd32 = vlsrh($Vu32,$Rt32)",
37291 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37292 let hasNewValue = 1;
37293 let opNewValue = 0;
37294 let isPseudo = 1;
37295 let isCodeGenOnly = 1;
37296 let DecoderNamespace = "EXT_mmvec";
37297 }
37298 def V6_vlsrh_alt_128B : HInst<
37299 (outs VectorRegs128B:$Vd32),
37300 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
37301 "$Vd32 = vlsrh($Vu32,$Rt32)",
37302 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37303 let hasNewValue = 1;
37304 let opNewValue = 0;
37305 let isPseudo = 1;
37306 let isCodeGenOnly = 1;
37307 let DecoderNamespace = "EXT_mmvec";
37308 let isCodeGenOnly = 1;
37309 }
37310 def V6_vlsrhv : HInst<
37311 (outs VectorRegs:$Vd32),
37312 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37313 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
37314 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37315 let Inst{7-5} = 0b010;
37316 let Inst{13-13} = 0b0;
37317 let Inst{31-21} = 0b00011111101;
37318 let hasNewValue = 1;
37319 let opNewValue = 0;
37320 let DecoderNamespace = "EXT_mmvec";
37321 }
37322 def V6_vlsrhv_128B : HInst<
37323 (outs VectorRegs128B:$Vd32),
37324 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37325 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
37326 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37327 let Inst{7-5} = 0b010;
37328 let Inst{13-13} = 0b0;
37329 let Inst{31-21} = 0b00011111101;
37330 let hasNewValue = 1;
37331 let opNewValue = 0;
37332 let DecoderNamespace = "EXT_mmvec";
37333 let isCodeGenOnly = 1;
37334 }
37335 def V6_vlsrhv_alt : HInst<
37336 (outs VectorRegs:$Vd32),
37337 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37338 "$Vd32 = vlsrh($Vu32,$Vv32)",
37339 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37340 let hasNewValue = 1;
37341 let opNewValue = 0;
37342 let isPseudo = 1;
37343 let isCodeGenOnly = 1;
37344 let DecoderNamespace = "EXT_mmvec";
37345 }
37346 def V6_vlsrhv_alt_128B : HInst<
37347 (outs VectorRegs128B:$Vd32),
37348 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37349 "$Vd32 = vlsrh($Vu32,$Vv32)",
37350 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37351 let hasNewValue = 1;
37352 let opNewValue = 0;
37353 let isPseudo = 1;
37354 let isCodeGenOnly = 1;
37355 let DecoderNamespace = "EXT_mmvec";
37356 let isCodeGenOnly = 1;
37357 }
37358 def V6_vlsrw : HInst<
37359 (outs VectorRegs:$Vd32),
37360 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
37361 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
37362 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
37363 let Inst{7-5} = 0b001;
37364 let Inst{13-13} = 0b0;
37365 let Inst{31-21} = 0b00011001100;
37366 let hasNewValue = 1;
37367 let opNewValue = 0;
37368 let DecoderNamespace = "EXT_mmvec";
37369 }
37370 def V6_vlsrw_128B : HInst<
37371 (outs VectorRegs128B:$Vd32),
37372 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
37373 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
37374 tc_41f4b64e, TypeCVI_VS>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
37375 let Inst{7-5} = 0b001;
37376 let Inst{13-13} = 0b0;
37377 let Inst{31-21} = 0b00011001100;
37378 let hasNewValue = 1;
37379 let opNewValue = 0;
37380 let DecoderNamespace = "EXT_mmvec";
37381 let isCodeGenOnly = 1;
37382 }
37383 def V6_vlsrw_alt : HInst<
37384 (outs VectorRegs:$Vd32),
37385 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
37386 "$Vd32 = vlsrw($Vu32,$Rt32)",
37387 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37388 let hasNewValue = 1;
37389 let opNewValue = 0;
37390 let isPseudo = 1;
37391 let isCodeGenOnly = 1;
37392 let DecoderNamespace = "EXT_mmvec";
37393 }
37394 def V6_vlsrw_alt_128B : HInst<
37395 (outs VectorRegs128B:$Vd32),
37396 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
37397 "$Vd32 = vlsrw($Vu32,$Rt32)",
37398 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37399 let hasNewValue = 1;
37400 let opNewValue = 0;
37401 let isPseudo = 1;
37402 let isCodeGenOnly = 1;
37403 let DecoderNamespace = "EXT_mmvec";
37404 let isCodeGenOnly = 1;
37405 }
37406 def V6_vlsrwv : HInst<
37407 (outs VectorRegs:$Vd32),
37408 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37409 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
37410 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37411 let Inst{7-5} = 0b001;
37412 let Inst{13-13} = 0b0;
37413 let Inst{31-21} = 0b00011111101;
37414 let hasNewValue = 1;
37415 let opNewValue = 0;
37416 let DecoderNamespace = "EXT_mmvec";
37417 }
37418 def V6_vlsrwv_128B : HInst<
37419 (outs VectorRegs128B:$Vd32),
37420 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37421 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
37422 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37423 let Inst{7-5} = 0b001;
37424 let Inst{13-13} = 0b0;
37425 let Inst{31-21} = 0b00011111101;
37426 let hasNewValue = 1;
37427 let opNewValue = 0;
37428 let DecoderNamespace = "EXT_mmvec";
37429 let isCodeGenOnly = 1;
37430 }
37431 def V6_vlsrwv_alt : HInst<
37432 (outs VectorRegs:$Vd32),
37433 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37434 "$Vd32 = vlsrw($Vu32,$Vv32)",
37435 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37436 let hasNewValue = 1;
37437 let opNewValue = 0;
37438 let isPseudo = 1;
37439 let isCodeGenOnly = 1;
37440 let DecoderNamespace = "EXT_mmvec";
37441 }
37442 def V6_vlsrwv_alt_128B : HInst<
37443 (outs VectorRegs128B:$Vd32),
37444 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37445 "$Vd32 = vlsrw($Vu32,$Vv32)",
37446 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37447 let hasNewValue = 1;
37448 let opNewValue = 0;
37449 let isPseudo = 1;
37450 let isCodeGenOnly = 1;
37451 let DecoderNamespace = "EXT_mmvec";
37452 let isCodeGenOnly = 1;
37453 }
37454 def V6_vlutvvb : HInst<
37455 (outs VectorRegs:$Vd32),
37456 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37457 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
37458 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
37459 let Inst{7-5} = 0b001;
37460 let Inst{13-13} = 0b1;
37461 let Inst{31-24} = 0b00011011;
37462 let hasNewValue = 1;
37463 let opNewValue = 0;
37464 let DecoderNamespace = "EXT_mmvec";
37465 }
37466 def V6_vlutvvb_128B : HInst<
37467 (outs VectorRegs128B:$Vd32),
37468 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37469 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
37470 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV60T,UseHVX]> {
37471 let Inst{7-5} = 0b001;
37472 let Inst{13-13} = 0b1;
37473 let Inst{31-24} = 0b00011011;
37474 let hasNewValue = 1;
37475 let opNewValue = 0;
37476 let DecoderNamespace = "EXT_mmvec";
37477 let isCodeGenOnly = 1;
37478 }
37479 def V6_vlutvvb_nm : HInst<
37480 (outs VectorRegs:$Vd32),
37481 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37482 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
37483 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
37484 let Inst{7-5} = 0b011;
37485 let Inst{13-13} = 0b0;
37486 let Inst{31-24} = 0b00011000;
37487 let hasNewValue = 1;
37488 let opNewValue = 0;
37489 let DecoderNamespace = "EXT_mmvec";
37490 }
37491 def V6_vlutvvb_nm_128B : HInst<
37492 (outs VectorRegs128B:$Vd32),
37493 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37494 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
37495 tc_c4b515c5, TypeCVI_VP>, Enc_a30110, Requires<[HasV62T,UseHVX]> {
37496 let Inst{7-5} = 0b011;
37497 let Inst{13-13} = 0b0;
37498 let Inst{31-24} = 0b00011000;
37499 let hasNewValue = 1;
37500 let opNewValue = 0;
37501 let DecoderNamespace = "EXT_mmvec";
37502 let isCodeGenOnly = 1;
37503 }
37504 def V6_vlutvvb_oracc : HInst<
37505 (outs VectorRegs:$Vx32),
37506 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37507 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
37508 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_245865, Requires<[HasV60T,UseHVX]> {
37509 let Inst{7-5} = 0b101;
37510 let Inst{13-13} = 0b1;
37511 let Inst{31-24} = 0b00011011;
37512 let hasNewValue = 1;
37513 let opNewValue = 0;
37514 let isAccumulator = 1;
37515 let DecoderNamespace = "EXT_mmvec";
37516 let Constraints = "$Vx32 = $Vx32in";
37517 }
37518 def V6_vlutvvb_oracc_128B : HInst<
37519 (outs VectorRegs128B:$Vx32),
37520 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37521 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
37522 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_245865, Requires<[HasV60T,UseHVX]> {
37523 let Inst{7-5} = 0b101;
37524 let Inst{13-13} = 0b1;
37525 let Inst{31-24} = 0b00011011;
37526 let hasNewValue = 1;
37527 let opNewValue = 0;
37528 let isAccumulator = 1;
37529 let DecoderNamespace = "EXT_mmvec";
37530 let isCodeGenOnly = 1;
37531 let Constraints = "$Vx32 = $Vx32in";
37532 }
37533 def V6_vlutvvb_oracci : HInst<
37534 (outs VectorRegs:$Vx32),
37535 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
37536 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
37537 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_cd4705, Requires<[HasV62T,UseHVX]> {
37538 let Inst{13-13} = 0b1;
37539 let Inst{31-21} = 0b00011100110;
37540 let hasNewValue = 1;
37541 let opNewValue = 0;
37542 let isAccumulator = 1;
37543 let DecoderNamespace = "EXT_mmvec";
37544 let Constraints = "$Vx32 = $Vx32in";
37545 }
37546 def V6_vlutvvb_oracci_128B : HInst<
37547 (outs VectorRegs128B:$Vx32),
37548 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
37549 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
37550 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_cd4705, Requires<[HasV62T,UseHVX]> {
37551 let Inst{13-13} = 0b1;
37552 let Inst{31-21} = 0b00011100110;
37553 let hasNewValue = 1;
37554 let opNewValue = 0;
37555 let isAccumulator = 1;
37556 let DecoderNamespace = "EXT_mmvec";
37557 let isCodeGenOnly = 1;
37558 let Constraints = "$Vx32 = $Vx32in";
37559 }
37560 def V6_vlutvvbi : HInst<
37561 (outs VectorRegs:$Vd32),
37562 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
37563 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
37564 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV62T,UseHVX]> {
37565 let Inst{13-13} = 0b0;
37566 let Inst{31-21} = 0b00011110001;
37567 let hasNewValue = 1;
37568 let opNewValue = 0;
37569 let DecoderNamespace = "EXT_mmvec";
37570 }
37571 def V6_vlutvvbi_128B : HInst<
37572 (outs VectorRegs128B:$Vd32),
37573 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
37574 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
37575 tc_c4b515c5, TypeCVI_VP>, Enc_0b2e5b, Requires<[HasV62T,UseHVX]> {
37576 let Inst{13-13} = 0b0;
37577 let Inst{31-21} = 0b00011110001;
37578 let hasNewValue = 1;
37579 let opNewValue = 0;
37580 let DecoderNamespace = "EXT_mmvec";
37581 let isCodeGenOnly = 1;
37582 }
37583 def V6_vlutvwh : HInst<
37584 (outs VecDblRegs:$Vdd32),
37585 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37586 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
37587 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
37588 let Inst{7-5} = 0b110;
37589 let Inst{13-13} = 0b1;
37590 let Inst{31-24} = 0b00011011;
37591 let hasNewValue = 1;
37592 let opNewValue = 0;
37593 let DecoderNamespace = "EXT_mmvec";
37594 }
37595 def V6_vlutvwh_128B : HInst<
37596 (outs VecDblRegs128B:$Vdd32),
37597 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37598 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
37599 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
37600 let Inst{7-5} = 0b110;
37601 let Inst{13-13} = 0b1;
37602 let Inst{31-24} = 0b00011011;
37603 let hasNewValue = 1;
37604 let opNewValue = 0;
37605 let DecoderNamespace = "EXT_mmvec";
37606 let isCodeGenOnly = 1;
37607 }
37608 def V6_vlutvwh_nm : HInst<
37609 (outs VecDblRegs:$Vdd32),
37610 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37611 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
37612 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV62T,UseHVX]> {
37613 let Inst{7-5} = 0b100;
37614 let Inst{13-13} = 0b0;
37615 let Inst{31-24} = 0b00011000;
37616 let hasNewValue = 1;
37617 let opNewValue = 0;
37618 let DecoderNamespace = "EXT_mmvec";
37619 }
37620 def V6_vlutvwh_nm_128B : HInst<
37621 (outs VecDblRegs128B:$Vdd32),
37622 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37623 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
37624 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV62T,UseHVX]> {
37625 let Inst{7-5} = 0b100;
37626 let Inst{13-13} = 0b0;
37627 let Inst{31-24} = 0b00011000;
37628 let hasNewValue = 1;
37629 let opNewValue = 0;
37630 let DecoderNamespace = "EXT_mmvec";
37631 let isCodeGenOnly = 1;
37632 }
37633 def V6_vlutvwh_oracc : HInst<
37634 (outs VecDblRegs:$Vxx32),
37635 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
37636 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
37637 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_7b523d, Requires<[HasV60T,UseHVX]> {
37638 let Inst{7-5} = 0b111;
37639 let Inst{13-13} = 0b1;
37640 let Inst{31-24} = 0b00011011;
37641 let hasNewValue = 1;
37642 let opNewValue = 0;
37643 let isAccumulator = 1;
37644 let DecoderNamespace = "EXT_mmvec";
37645 let Constraints = "$Vxx32 = $Vxx32in";
37646 }
37647 def V6_vlutvwh_oracc_128B : HInst<
37648 (outs VecDblRegs128B:$Vxx32),
37649 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
37650 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
37651 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_7b523d, Requires<[HasV60T,UseHVX]> {
37652 let Inst{7-5} = 0b111;
37653 let Inst{13-13} = 0b1;
37654 let Inst{31-24} = 0b00011011;
37655 let hasNewValue = 1;
37656 let opNewValue = 0;
37657 let isAccumulator = 1;
37658 let DecoderNamespace = "EXT_mmvec";
37659 let isCodeGenOnly = 1;
37660 let Constraints = "$Vxx32 = $Vxx32in";
37661 }
37662 def V6_vlutvwh_oracci : HInst<
37663 (outs VecDblRegs:$Vxx32),
37664 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
37665 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
37666 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_1178da, Requires<[HasV62T,UseHVX]> {
37667 let Inst{13-13} = 0b1;
37668 let Inst{31-21} = 0b00011100111;
37669 let hasNewValue = 1;
37670 let opNewValue = 0;
37671 let isAccumulator = 1;
37672 let DecoderNamespace = "EXT_mmvec";
37673 let Constraints = "$Vxx32 = $Vxx32in";
37674 }
37675 def V6_vlutvwh_oracci_128B : HInst<
37676 (outs VecDblRegs128B:$Vxx32),
37677 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
37678 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
37679 tc_cbf6d1dc, TypeCVI_VP_VS>, Enc_1178da, Requires<[HasV62T,UseHVX]> {
37680 let Inst{13-13} = 0b1;
37681 let Inst{31-21} = 0b00011100111;
37682 let hasNewValue = 1;
37683 let opNewValue = 0;
37684 let isAccumulator = 1;
37685 let DecoderNamespace = "EXT_mmvec";
37686 let isCodeGenOnly = 1;
37687 let Constraints = "$Vxx32 = $Vxx32in";
37688 }
37689 def V6_vlutvwhi : HInst<
37690 (outs VecDblRegs:$Vdd32),
37691 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, u3_0Imm:$Ii),
37692 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
37693 tc_4e2a5159, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[HasV62T,UseHVX]> {
37694 let Inst{13-13} = 0b0;
37695 let Inst{31-21} = 0b00011110011;
37696 let hasNewValue = 1;
37697 let opNewValue = 0;
37698 let DecoderNamespace = "EXT_mmvec";
37699 }
37700 def V6_vlutvwhi_128B : HInst<
37701 (outs VecDblRegs128B:$Vdd32),
37702 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, u3_0Imm:$Ii),
37703 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
37704 tc_4e2a5159, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[HasV62T,UseHVX]> {
37705 let Inst{13-13} = 0b0;
37706 let Inst{31-21} = 0b00011110011;
37707 let hasNewValue = 1;
37708 let opNewValue = 0;
37709 let DecoderNamespace = "EXT_mmvec";
37710 let isCodeGenOnly = 1;
37711 }
37712 def V6_vmaxb : HInst<
37713 (outs VectorRegs:$Vd32),
37714 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37715 "$Vd32.b = vmax($Vu32.b,$Vv32.b)",
37716 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
37717 let Inst{7-5} = 0b101;
37718 let Inst{13-13} = 0b0;
37719 let Inst{31-21} = 0b00011111001;
37720 let hasNewValue = 1;
37721 let opNewValue = 0;
37722 let DecoderNamespace = "EXT_mmvec";
37723 }
37724 def V6_vmaxb_128B : HInst<
37725 (outs VectorRegs128B:$Vd32),
37726 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37727 "$Vd32.b = vmax($Vu32.b,$Vv32.b)",
37728 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
37729 let Inst{7-5} = 0b101;
37730 let Inst{13-13} = 0b0;
37731 let Inst{31-21} = 0b00011111001;
37732 let hasNewValue = 1;
37733 let opNewValue = 0;
37734 let DecoderNamespace = "EXT_mmvec";
37735 let isCodeGenOnly = 1;
37736 }
37737 def V6_vmaxb_alt : HInst<
37738 (outs VectorRegs:$Vd32),
37739 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37740 "$Vd32 = vmaxb($Vu32,$Vv32)",
37741 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
37742 let hasNewValue = 1;
37743 let opNewValue = 0;
37744 let isPseudo = 1;
37745 let isCodeGenOnly = 1;
37746 let DecoderNamespace = "EXT_mmvec";
37747 }
37748 def V6_vmaxb_alt_128B : HInst<
37749 (outs VectorRegs128B:$Vd32),
37750 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37751 "$Vd32 = vmaxb($Vu32,$Vv32)",
37752 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
37753 let hasNewValue = 1;
37754 let opNewValue = 0;
37755 let isPseudo = 1;
37756 let isCodeGenOnly = 1;
37757 let DecoderNamespace = "EXT_mmvec";
37758 let isCodeGenOnly = 1;
37759 }
37760 def V6_vmaxh : HInst<
37761 (outs VectorRegs:$Vd32),
37762 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37763 "$Vd32.h = vmax($Vu32.h,$Vv32.h)",
37764 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37765 let Inst{7-5} = 0b111;
37766 let Inst{13-13} = 0b0;
37767 let Inst{31-21} = 0b00011111000;
37768 let hasNewValue = 1;
37769 let opNewValue = 0;
37770 let DecoderNamespace = "EXT_mmvec";
37771 }
37772 def V6_vmaxh_128B : HInst<
37773 (outs VectorRegs128B:$Vd32),
37774 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37775 "$Vd32.h = vmax($Vu32.h,$Vv32.h)",
37776 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37777 let Inst{7-5} = 0b111;
37778 let Inst{13-13} = 0b0;
37779 let Inst{31-21} = 0b00011111000;
37780 let hasNewValue = 1;
37781 let opNewValue = 0;
37782 let DecoderNamespace = "EXT_mmvec";
37783 let isCodeGenOnly = 1;
37784 }
37785 def V6_vmaxh_alt : HInst<
37786 (outs VectorRegs:$Vd32),
37787 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37788 "$Vd32 = vmaxh($Vu32,$Vv32)",
37789 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37790 let hasNewValue = 1;
37791 let opNewValue = 0;
37792 let isPseudo = 1;
37793 let isCodeGenOnly = 1;
37794 let DecoderNamespace = "EXT_mmvec";
37795 }
37796 def V6_vmaxh_alt_128B : HInst<
37797 (outs VectorRegs128B:$Vd32),
37798 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37799 "$Vd32 = vmaxh($Vu32,$Vv32)",
37800 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37801 let hasNewValue = 1;
37802 let opNewValue = 0;
37803 let isPseudo = 1;
37804 let isCodeGenOnly = 1;
37805 let DecoderNamespace = "EXT_mmvec";
37806 let isCodeGenOnly = 1;
37807 }
37808 def V6_vmaxub : HInst<
37809 (outs VectorRegs:$Vd32),
37810 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37811 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
37812 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37813 let Inst{7-5} = 0b101;
37814 let Inst{13-13} = 0b0;
37815 let Inst{31-21} = 0b00011111000;
37816 let hasNewValue = 1;
37817 let opNewValue = 0;
37818 let DecoderNamespace = "EXT_mmvec";
37819 }
37820 def V6_vmaxub_128B : HInst<
37821 (outs VectorRegs128B:$Vd32),
37822 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37823 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
37824 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37825 let Inst{7-5} = 0b101;
37826 let Inst{13-13} = 0b0;
37827 let Inst{31-21} = 0b00011111000;
37828 let hasNewValue = 1;
37829 let opNewValue = 0;
37830 let DecoderNamespace = "EXT_mmvec";
37831 let isCodeGenOnly = 1;
37832 }
37833 def V6_vmaxub_alt : HInst<
37834 (outs VectorRegs:$Vd32),
37835 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37836 "$Vd32 = vmaxub($Vu32,$Vv32)",
37837 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37838 let hasNewValue = 1;
37839 let opNewValue = 0;
37840 let isPseudo = 1;
37841 let isCodeGenOnly = 1;
37842 let DecoderNamespace = "EXT_mmvec";
37843 }
37844 def V6_vmaxub_alt_128B : HInst<
37845 (outs VectorRegs128B:$Vd32),
37846 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37847 "$Vd32 = vmaxub($Vu32,$Vv32)",
37848 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37849 let hasNewValue = 1;
37850 let opNewValue = 0;
37851 let isPseudo = 1;
37852 let isCodeGenOnly = 1;
37853 let DecoderNamespace = "EXT_mmvec";
37854 let isCodeGenOnly = 1;
37855 }
37856 def V6_vmaxuh : HInst<
37857 (outs VectorRegs:$Vd32),
37858 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37859 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
37860 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37861 let Inst{7-5} = 0b110;
37862 let Inst{13-13} = 0b0;
37863 let Inst{31-21} = 0b00011111000;
37864 let hasNewValue = 1;
37865 let opNewValue = 0;
37866 let DecoderNamespace = "EXT_mmvec";
37867 }
37868 def V6_vmaxuh_128B : HInst<
37869 (outs VectorRegs128B:$Vd32),
37870 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37871 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
37872 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37873 let Inst{7-5} = 0b110;
37874 let Inst{13-13} = 0b0;
37875 let Inst{31-21} = 0b00011111000;
37876 let hasNewValue = 1;
37877 let opNewValue = 0;
37878 let DecoderNamespace = "EXT_mmvec";
37879 let isCodeGenOnly = 1;
37880 }
37881 def V6_vmaxuh_alt : HInst<
37882 (outs VectorRegs:$Vd32),
37883 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37884 "$Vd32 = vmaxuh($Vu32,$Vv32)",
37885 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37886 let hasNewValue = 1;
37887 let opNewValue = 0;
37888 let isPseudo = 1;
37889 let isCodeGenOnly = 1;
37890 let DecoderNamespace = "EXT_mmvec";
37891 }
37892 def V6_vmaxuh_alt_128B : HInst<
37893 (outs VectorRegs128B:$Vd32),
37894 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37895 "$Vd32 = vmaxuh($Vu32,$Vv32)",
37896 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37897 let hasNewValue = 1;
37898 let opNewValue = 0;
37899 let isPseudo = 1;
37900 let isCodeGenOnly = 1;
37901 let DecoderNamespace = "EXT_mmvec";
37902 let isCodeGenOnly = 1;
37903 }
37904 def V6_vmaxw : HInst<
37905 (outs VectorRegs:$Vd32),
37906 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37907 "$Vd32.w = vmax($Vu32.w,$Vv32.w)",
37908 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37909 let Inst{7-5} = 0b000;
37910 let Inst{13-13} = 0b0;
37911 let Inst{31-21} = 0b00011111001;
37912 let hasNewValue = 1;
37913 let opNewValue = 0;
37914 let DecoderNamespace = "EXT_mmvec";
37915 }
37916 def V6_vmaxw_128B : HInst<
37917 (outs VectorRegs128B:$Vd32),
37918 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37919 "$Vd32.w = vmax($Vu32.w,$Vv32.w)",
37920 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
37921 let Inst{7-5} = 0b000;
37922 let Inst{13-13} = 0b0;
37923 let Inst{31-21} = 0b00011111001;
37924 let hasNewValue = 1;
37925 let opNewValue = 0;
37926 let DecoderNamespace = "EXT_mmvec";
37927 let isCodeGenOnly = 1;
37928 }
37929 def V6_vmaxw_alt : HInst<
37930 (outs VectorRegs:$Vd32),
37931 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37932 "$Vd32 = vmaxw($Vu32,$Vv32)",
37933 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37934 let hasNewValue = 1;
37935 let opNewValue = 0;
37936 let isPseudo = 1;
37937 let isCodeGenOnly = 1;
37938 let DecoderNamespace = "EXT_mmvec";
37939 }
37940 def V6_vmaxw_alt_128B : HInst<
37941 (outs VectorRegs128B:$Vd32),
37942 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37943 "$Vd32 = vmaxw($Vu32,$Vv32)",
37944 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
37945 let hasNewValue = 1;
37946 let opNewValue = 0;
37947 let isPseudo = 1;
37948 let isCodeGenOnly = 1;
37949 let DecoderNamespace = "EXT_mmvec";
37950 let isCodeGenOnly = 1;
37951 }
37952 def V6_vminb : HInst<
37953 (outs VectorRegs:$Vd32),
37954 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37955 "$Vd32.b = vmin($Vu32.b,$Vv32.b)",
37956 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
37957 let Inst{7-5} = 0b100;
37958 let Inst{13-13} = 0b0;
37959 let Inst{31-21} = 0b00011111001;
37960 let hasNewValue = 1;
37961 let opNewValue = 0;
37962 let DecoderNamespace = "EXT_mmvec";
37963 }
37964 def V6_vminb_128B : HInst<
37965 (outs VectorRegs128B:$Vd32),
37966 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37967 "$Vd32.b = vmin($Vu32.b,$Vv32.b)",
37968 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
37969 let Inst{7-5} = 0b100;
37970 let Inst{13-13} = 0b0;
37971 let Inst{31-21} = 0b00011111001;
37972 let hasNewValue = 1;
37973 let opNewValue = 0;
37974 let DecoderNamespace = "EXT_mmvec";
37975 let isCodeGenOnly = 1;
37976 }
37977 def V6_vminb_alt : HInst<
37978 (outs VectorRegs:$Vd32),
37979 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
37980 "$Vd32 = vminb($Vu32,$Vv32)",
37981 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
37982 let hasNewValue = 1;
37983 let opNewValue = 0;
37984 let isPseudo = 1;
37985 let isCodeGenOnly = 1;
37986 let DecoderNamespace = "EXT_mmvec";
37987 }
37988 def V6_vminb_alt_128B : HInst<
37989 (outs VectorRegs128B:$Vd32),
37990 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
37991 "$Vd32 = vminb($Vu32,$Vv32)",
37992 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
37993 let hasNewValue = 1;
37994 let opNewValue = 0;
37995 let isPseudo = 1;
37996 let isCodeGenOnly = 1;
37997 let DecoderNamespace = "EXT_mmvec";
37998 let isCodeGenOnly = 1;
37999 }
38000 def V6_vminh : HInst<
38001 (outs VectorRegs:$Vd32),
38002 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38003 "$Vd32.h = vmin($Vu32.h,$Vv32.h)",
38004 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38005 let Inst{7-5} = 0b011;
38006 let Inst{13-13} = 0b0;
38007 let Inst{31-21} = 0b00011111000;
38008 let hasNewValue = 1;
38009 let opNewValue = 0;
38010 let DecoderNamespace = "EXT_mmvec";
38011 }
38012 def V6_vminh_128B : HInst<
38013 (outs VectorRegs128B:$Vd32),
38014 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38015 "$Vd32.h = vmin($Vu32.h,$Vv32.h)",
38016 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38017 let Inst{7-5} = 0b011;
38018 let Inst{13-13} = 0b0;
38019 let Inst{31-21} = 0b00011111000;
38020 let hasNewValue = 1;
38021 let opNewValue = 0;
38022 let DecoderNamespace = "EXT_mmvec";
38023 let isCodeGenOnly = 1;
38024 }
38025 def V6_vminh_alt : HInst<
38026 (outs VectorRegs:$Vd32),
38027 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38028 "$Vd32 = vminh($Vu32,$Vv32)",
38029 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38030 let hasNewValue = 1;
38031 let opNewValue = 0;
38032 let isPseudo = 1;
38033 let isCodeGenOnly = 1;
38034 let DecoderNamespace = "EXT_mmvec";
38035 }
38036 def V6_vminh_alt_128B : HInst<
38037 (outs VectorRegs128B:$Vd32),
38038 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38039 "$Vd32 = vminh($Vu32,$Vv32)",
38040 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38041 let hasNewValue = 1;
38042 let opNewValue = 0;
38043 let isPseudo = 1;
38044 let isCodeGenOnly = 1;
38045 let DecoderNamespace = "EXT_mmvec";
38046 let isCodeGenOnly = 1;
38047 }
38048 def V6_vminub : HInst<
38049 (outs VectorRegs:$Vd32),
38050 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38051 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
38052 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38053 let Inst{7-5} = 0b001;
38054 let Inst{13-13} = 0b0;
38055 let Inst{31-21} = 0b00011111000;
38056 let hasNewValue = 1;
38057 let opNewValue = 0;
38058 let DecoderNamespace = "EXT_mmvec";
38059 }
38060 def V6_vminub_128B : HInst<
38061 (outs VectorRegs128B:$Vd32),
38062 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38063 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
38064 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38065 let Inst{7-5} = 0b001;
38066 let Inst{13-13} = 0b0;
38067 let Inst{31-21} = 0b00011111000;
38068 let hasNewValue = 1;
38069 let opNewValue = 0;
38070 let DecoderNamespace = "EXT_mmvec";
38071 let isCodeGenOnly = 1;
38072 }
38073 def V6_vminub_alt : HInst<
38074 (outs VectorRegs:$Vd32),
38075 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38076 "$Vd32 = vminub($Vu32,$Vv32)",
38077 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38078 let hasNewValue = 1;
38079 let opNewValue = 0;
38080 let isPseudo = 1;
38081 let isCodeGenOnly = 1;
38082 let DecoderNamespace = "EXT_mmvec";
38083 }
38084 def V6_vminub_alt_128B : HInst<
38085 (outs VectorRegs128B:$Vd32),
38086 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38087 "$Vd32 = vminub($Vu32,$Vv32)",
38088 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38089 let hasNewValue = 1;
38090 let opNewValue = 0;
38091 let isPseudo = 1;
38092 let isCodeGenOnly = 1;
38093 let DecoderNamespace = "EXT_mmvec";
38094 let isCodeGenOnly = 1;
38095 }
38096 def V6_vminuh : HInst<
38097 (outs VectorRegs:$Vd32),
38098 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38099 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
38100 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38101 let Inst{7-5} = 0b010;
38102 let Inst{13-13} = 0b0;
38103 let Inst{31-21} = 0b00011111000;
38104 let hasNewValue = 1;
38105 let opNewValue = 0;
38106 let DecoderNamespace = "EXT_mmvec";
38107 }
38108 def V6_vminuh_128B : HInst<
38109 (outs VectorRegs128B:$Vd32),
38110 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38111 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
38112 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38113 let Inst{7-5} = 0b010;
38114 let Inst{13-13} = 0b0;
38115 let Inst{31-21} = 0b00011111000;
38116 let hasNewValue = 1;
38117 let opNewValue = 0;
38118 let DecoderNamespace = "EXT_mmvec";
38119 let isCodeGenOnly = 1;
38120 }
38121 def V6_vminuh_alt : HInst<
38122 (outs VectorRegs:$Vd32),
38123 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38124 "$Vd32 = vminuh($Vu32,$Vv32)",
38125 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38126 let hasNewValue = 1;
38127 let opNewValue = 0;
38128 let isPseudo = 1;
38129 let isCodeGenOnly = 1;
38130 let DecoderNamespace = "EXT_mmvec";
38131 }
38132 def V6_vminuh_alt_128B : HInst<
38133 (outs VectorRegs128B:$Vd32),
38134 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38135 "$Vd32 = vminuh($Vu32,$Vv32)",
38136 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38137 let hasNewValue = 1;
38138 let opNewValue = 0;
38139 let isPseudo = 1;
38140 let isCodeGenOnly = 1;
38141 let DecoderNamespace = "EXT_mmvec";
38142 let isCodeGenOnly = 1;
38143 }
38144 def V6_vminw : HInst<
38145 (outs VectorRegs:$Vd32),
38146 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38147 "$Vd32.w = vmin($Vu32.w,$Vv32.w)",
38148 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38149 let Inst{7-5} = 0b100;
38150 let Inst{13-13} = 0b0;
38151 let Inst{31-21} = 0b00011111000;
38152 let hasNewValue = 1;
38153 let opNewValue = 0;
38154 let DecoderNamespace = "EXT_mmvec";
38155 }
38156 def V6_vminw_128B : HInst<
38157 (outs VectorRegs128B:$Vd32),
38158 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38159 "$Vd32.w = vmin($Vu32.w,$Vv32.w)",
38160 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38161 let Inst{7-5} = 0b100;
38162 let Inst{13-13} = 0b0;
38163 let Inst{31-21} = 0b00011111000;
38164 let hasNewValue = 1;
38165 let opNewValue = 0;
38166 let DecoderNamespace = "EXT_mmvec";
38167 let isCodeGenOnly = 1;
38168 }
38169 def V6_vminw_alt : HInst<
38170 (outs VectorRegs:$Vd32),
38171 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38172 "$Vd32 = vminw($Vu32,$Vv32)",
38173 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38174 let hasNewValue = 1;
38175 let opNewValue = 0;
38176 let isPseudo = 1;
38177 let isCodeGenOnly = 1;
38178 let DecoderNamespace = "EXT_mmvec";
38179 }
38180 def V6_vminw_alt_128B : HInst<
38181 (outs VectorRegs128B:$Vd32),
38182 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38183 "$Vd32 = vminw($Vu32,$Vv32)",
38184 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38185 let hasNewValue = 1;
38186 let opNewValue = 0;
38187 let isPseudo = 1;
38188 let isCodeGenOnly = 1;
38189 let DecoderNamespace = "EXT_mmvec";
38190 let isCodeGenOnly = 1;
38191 }
38192 def V6_vmpabus : HInst<
38193 (outs VecDblRegs:$Vdd32),
38194 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38195 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
38196 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
38197 let Inst{7-5} = 0b110;
38198 let Inst{13-13} = 0b0;
38199 let Inst{31-21} = 0b00011001001;
38200 let hasNewValue = 1;
38201 let opNewValue = 0;
38202 let DecoderNamespace = "EXT_mmvec";
38203 }
38204 def V6_vmpabus_128B : HInst<
38205 (outs VecDblRegs128B:$Vdd32),
38206 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38207 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
38208 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
38209 let Inst{7-5} = 0b110;
38210 let Inst{13-13} = 0b0;
38211 let Inst{31-21} = 0b00011001001;
38212 let hasNewValue = 1;
38213 let opNewValue = 0;
38214 let DecoderNamespace = "EXT_mmvec";
38215 let isCodeGenOnly = 1;
38216 }
38217 def V6_vmpabus_acc : HInst<
38218 (outs VecDblRegs:$Vxx32),
38219 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38220 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
38221 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
38222 let Inst{7-5} = 0b110;
38223 let Inst{13-13} = 0b1;
38224 let Inst{31-21} = 0b00011001001;
38225 let hasNewValue = 1;
38226 let opNewValue = 0;
38227 let isAccumulator = 1;
38228 let DecoderNamespace = "EXT_mmvec";
38229 let Constraints = "$Vxx32 = $Vxx32in";
38230 }
38231 def V6_vmpabus_acc_128B : HInst<
38232 (outs VecDblRegs128B:$Vxx32),
38233 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38234 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
38235 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
38236 let Inst{7-5} = 0b110;
38237 let Inst{13-13} = 0b1;
38238 let Inst{31-21} = 0b00011001001;
38239 let hasNewValue = 1;
38240 let opNewValue = 0;
38241 let isAccumulator = 1;
38242 let DecoderNamespace = "EXT_mmvec";
38243 let isCodeGenOnly = 1;
38244 let Constraints = "$Vxx32 = $Vxx32in";
38245 }
38246 def V6_vmpabus_acc_alt : HInst<
38247 (outs VecDblRegs:$Vxx32),
38248 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38249 "$Vxx32 += vmpabus($Vuu32,$Rt32)",
38250 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38251 let hasNewValue = 1;
38252 let opNewValue = 0;
38253 let isAccumulator = 1;
38254 let isPseudo = 1;
38255 let isCodeGenOnly = 1;
38256 let DecoderNamespace = "EXT_mmvec";
38257 let Constraints = "$Vxx32 = $Vxx32in";
38258 }
38259 def V6_vmpabus_acc_alt_128B : HInst<
38260 (outs VecDblRegs128B:$Vxx32),
38261 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38262 "$Vxx32 += vmpabus($Vuu32,$Rt32)",
38263 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38264 let hasNewValue = 1;
38265 let opNewValue = 0;
38266 let isAccumulator = 1;
38267 let isPseudo = 1;
38268 let isCodeGenOnly = 1;
38269 let DecoderNamespace = "EXT_mmvec";
38270 let isCodeGenOnly = 1;
38271 let Constraints = "$Vxx32 = $Vxx32in";
38272 }
38273 def V6_vmpabus_alt : HInst<
38274 (outs VecDblRegs:$Vdd32),
38275 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38276 "$Vdd32 = vmpabus($Vuu32,$Rt32)",
38277 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38278 let hasNewValue = 1;
38279 let opNewValue = 0;
38280 let isPseudo = 1;
38281 let isCodeGenOnly = 1;
38282 let DecoderNamespace = "EXT_mmvec";
38283 }
38284 def V6_vmpabus_alt_128B : HInst<
38285 (outs VecDblRegs128B:$Vdd32),
38286 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38287 "$Vdd32 = vmpabus($Vuu32,$Rt32)",
38288 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38289 let hasNewValue = 1;
38290 let opNewValue = 0;
38291 let isPseudo = 1;
38292 let isCodeGenOnly = 1;
38293 let DecoderNamespace = "EXT_mmvec";
38294 let isCodeGenOnly = 1;
38295 }
38296 def V6_vmpabusv : HInst<
38297 (outs VecDblRegs:$Vdd32),
38298 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
38299 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
38300 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
38301 let Inst{7-5} = 0b011;
38302 let Inst{13-13} = 0b0;
38303 let Inst{31-21} = 0b00011100001;
38304 let hasNewValue = 1;
38305 let opNewValue = 0;
38306 let DecoderNamespace = "EXT_mmvec";
38307 }
38308 def V6_vmpabusv_128B : HInst<
38309 (outs VecDblRegs128B:$Vdd32),
38310 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
38311 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
38312 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
38313 let Inst{7-5} = 0b011;
38314 let Inst{13-13} = 0b0;
38315 let Inst{31-21} = 0b00011100001;
38316 let hasNewValue = 1;
38317 let opNewValue = 0;
38318 let DecoderNamespace = "EXT_mmvec";
38319 let isCodeGenOnly = 1;
38320 }
38321 def V6_vmpabusv_alt : HInst<
38322 (outs VecDblRegs:$Vdd32),
38323 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
38324 "$Vdd32 = vmpabus($Vuu32,$Vvv32)",
38325 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38326 let hasNewValue = 1;
38327 let opNewValue = 0;
38328 let isPseudo = 1;
38329 let isCodeGenOnly = 1;
38330 let DecoderNamespace = "EXT_mmvec";
38331 }
38332 def V6_vmpabusv_alt_128B : HInst<
38333 (outs VecDblRegs128B:$Vdd32),
38334 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
38335 "$Vdd32 = vmpabus($Vuu32,$Vvv32)",
38336 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38337 let hasNewValue = 1;
38338 let opNewValue = 0;
38339 let isPseudo = 1;
38340 let isCodeGenOnly = 1;
38341 let DecoderNamespace = "EXT_mmvec";
38342 let isCodeGenOnly = 1;
38343 }
38344 def V6_vmpabuuv : HInst<
38345 (outs VecDblRegs:$Vdd32),
38346 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
38347 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
38348 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
38349 let Inst{7-5} = 0b111;
38350 let Inst{13-13} = 0b0;
38351 let Inst{31-21} = 0b00011100111;
38352 let hasNewValue = 1;
38353 let opNewValue = 0;
38354 let DecoderNamespace = "EXT_mmvec";
38355 }
38356 def V6_vmpabuuv_128B : HInst<
38357 (outs VecDblRegs128B:$Vdd32),
38358 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
38359 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
38360 tc_eda67dcd, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
38361 let Inst{7-5} = 0b111;
38362 let Inst{13-13} = 0b0;
38363 let Inst{31-21} = 0b00011100111;
38364 let hasNewValue = 1;
38365 let opNewValue = 0;
38366 let DecoderNamespace = "EXT_mmvec";
38367 let isCodeGenOnly = 1;
38368 }
38369 def V6_vmpabuuv_alt : HInst<
38370 (outs VecDblRegs:$Vdd32),
38371 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
38372 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
38373 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38374 let hasNewValue = 1;
38375 let opNewValue = 0;
38376 let isPseudo = 1;
38377 let isCodeGenOnly = 1;
38378 let DecoderNamespace = "EXT_mmvec";
38379 }
38380 def V6_vmpabuuv_alt_128B : HInst<
38381 (outs VecDblRegs128B:$Vdd32),
38382 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
38383 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
38384 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38385 let hasNewValue = 1;
38386 let opNewValue = 0;
38387 let isPseudo = 1;
38388 let isCodeGenOnly = 1;
38389 let DecoderNamespace = "EXT_mmvec";
38390 let isCodeGenOnly = 1;
38391 }
38392 def V6_vmpahb : HInst<
38393 (outs VecDblRegs:$Vdd32),
38394 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38395 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
38396 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
38397 let Inst{7-5} = 0b111;
38398 let Inst{13-13} = 0b0;
38399 let Inst{31-21} = 0b00011001001;
38400 let hasNewValue = 1;
38401 let opNewValue = 0;
38402 let DecoderNamespace = "EXT_mmvec";
38403 }
38404 def V6_vmpahb_128B : HInst<
38405 (outs VecDblRegs128B:$Vdd32),
38406 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38407 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
38408 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
38409 let Inst{7-5} = 0b111;
38410 let Inst{13-13} = 0b0;
38411 let Inst{31-21} = 0b00011001001;
38412 let hasNewValue = 1;
38413 let opNewValue = 0;
38414 let DecoderNamespace = "EXT_mmvec";
38415 let isCodeGenOnly = 1;
38416 }
38417 def V6_vmpahb_acc : HInst<
38418 (outs VecDblRegs:$Vxx32),
38419 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38420 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
38421 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
38422 let Inst{7-5} = 0b111;
38423 let Inst{13-13} = 0b1;
38424 let Inst{31-21} = 0b00011001001;
38425 let hasNewValue = 1;
38426 let opNewValue = 0;
38427 let isAccumulator = 1;
38428 let DecoderNamespace = "EXT_mmvec";
38429 let Constraints = "$Vxx32 = $Vxx32in";
38430 }
38431 def V6_vmpahb_acc_128B : HInst<
38432 (outs VecDblRegs128B:$Vxx32),
38433 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38434 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
38435 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
38436 let Inst{7-5} = 0b111;
38437 let Inst{13-13} = 0b1;
38438 let Inst{31-21} = 0b00011001001;
38439 let hasNewValue = 1;
38440 let opNewValue = 0;
38441 let isAccumulator = 1;
38442 let DecoderNamespace = "EXT_mmvec";
38443 let isCodeGenOnly = 1;
38444 let Constraints = "$Vxx32 = $Vxx32in";
38445 }
38446 def V6_vmpahb_acc_alt : HInst<
38447 (outs VecDblRegs:$Vxx32),
38448 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38449 "$Vxx32 += vmpahb($Vuu32,$Rt32)",
38450 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38451 let hasNewValue = 1;
38452 let opNewValue = 0;
38453 let isAccumulator = 1;
38454 let isPseudo = 1;
38455 let isCodeGenOnly = 1;
38456 let DecoderNamespace = "EXT_mmvec";
38457 let Constraints = "$Vxx32 = $Vxx32in";
38458 }
38459 def V6_vmpahb_acc_alt_128B : HInst<
38460 (outs VecDblRegs128B:$Vxx32),
38461 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38462 "$Vxx32 += vmpahb($Vuu32,$Rt32)",
38463 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38464 let hasNewValue = 1;
38465 let opNewValue = 0;
38466 let isAccumulator = 1;
38467 let isPseudo = 1;
38468 let isCodeGenOnly = 1;
38469 let DecoderNamespace = "EXT_mmvec";
38470 let isCodeGenOnly = 1;
38471 let Constraints = "$Vxx32 = $Vxx32in";
38472 }
38473 def V6_vmpahb_alt : HInst<
38474 (outs VecDblRegs:$Vdd32),
38475 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38476 "$Vdd32 = vmpahb($Vuu32,$Rt32)",
38477 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38478 let hasNewValue = 1;
38479 let opNewValue = 0;
38480 let isPseudo = 1;
38481 let isCodeGenOnly = 1;
38482 let DecoderNamespace = "EXT_mmvec";
38483 }
38484 def V6_vmpahb_alt_128B : HInst<
38485 (outs VecDblRegs128B:$Vdd32),
38486 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38487 "$Vdd32 = vmpahb($Vuu32,$Rt32)",
38488 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38489 let hasNewValue = 1;
38490 let opNewValue = 0;
38491 let isPseudo = 1;
38492 let isCodeGenOnly = 1;
38493 let DecoderNamespace = "EXT_mmvec";
38494 let isCodeGenOnly = 1;
38495 }
38496 def V6_vmpauhb : HInst<
38497 (outs VecDblRegs:$Vdd32),
38498 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38499 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
38500 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV62T,UseHVX]> {
38501 let Inst{7-5} = 0b101;
38502 let Inst{13-13} = 0b0;
38503 let Inst{31-21} = 0b00011001100;
38504 let hasNewValue = 1;
38505 let opNewValue = 0;
38506 let DecoderNamespace = "EXT_mmvec";
38507 }
38508 def V6_vmpauhb_128B : HInst<
38509 (outs VecDblRegs128B:$Vdd32),
38510 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38511 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
38512 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV62T,UseHVX]> {
38513 let Inst{7-5} = 0b101;
38514 let Inst{13-13} = 0b0;
38515 let Inst{31-21} = 0b00011001100;
38516 let hasNewValue = 1;
38517 let opNewValue = 0;
38518 let DecoderNamespace = "EXT_mmvec";
38519 let isCodeGenOnly = 1;
38520 }
38521 def V6_vmpauhb_acc : HInst<
38522 (outs VecDblRegs:$Vxx32),
38523 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38524 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
38525 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV62T,UseHVX]> {
38526 let Inst{7-5} = 0b010;
38527 let Inst{13-13} = 0b1;
38528 let Inst{31-21} = 0b00011001100;
38529 let hasNewValue = 1;
38530 let opNewValue = 0;
38531 let isAccumulator = 1;
38532 let DecoderNamespace = "EXT_mmvec";
38533 let Constraints = "$Vxx32 = $Vxx32in";
38534 }
38535 def V6_vmpauhb_acc_128B : HInst<
38536 (outs VecDblRegs128B:$Vxx32),
38537 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38538 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
38539 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV62T,UseHVX]> {
38540 let Inst{7-5} = 0b010;
38541 let Inst{13-13} = 0b1;
38542 let Inst{31-21} = 0b00011001100;
38543 let hasNewValue = 1;
38544 let opNewValue = 0;
38545 let isAccumulator = 1;
38546 let DecoderNamespace = "EXT_mmvec";
38547 let isCodeGenOnly = 1;
38548 let Constraints = "$Vxx32 = $Vxx32in";
38549 }
38550 def V6_vmpauhb_acc_alt : HInst<
38551 (outs VecDblRegs:$Vxx32),
38552 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
38553 "$Vxx32 += vmpauhb($Vuu32,$Rt32)",
38554 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
38555 let hasNewValue = 1;
38556 let opNewValue = 0;
38557 let isAccumulator = 1;
38558 let isPseudo = 1;
38559 let isCodeGenOnly = 1;
38560 let DecoderNamespace = "EXT_mmvec";
38561 let Constraints = "$Vxx32 = $Vxx32in";
38562 }
38563 def V6_vmpauhb_acc_alt_128B : HInst<
38564 (outs VecDblRegs128B:$Vxx32),
38565 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38566 "$Vxx32 += vmpauhb($Vuu32,$Rt32)",
38567 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
38568 let hasNewValue = 1;
38569 let opNewValue = 0;
38570 let isAccumulator = 1;
38571 let isPseudo = 1;
38572 let isCodeGenOnly = 1;
38573 let DecoderNamespace = "EXT_mmvec";
38574 let isCodeGenOnly = 1;
38575 let Constraints = "$Vxx32 = $Vxx32in";
38576 }
38577 def V6_vmpauhb_alt : HInst<
38578 (outs VecDblRegs:$Vdd32),
38579 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
38580 "$Vdd32 = vmpauhb($Vuu32,$Rt32)",
38581 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
38582 let hasNewValue = 1;
38583 let opNewValue = 0;
38584 let isPseudo = 1;
38585 let isCodeGenOnly = 1;
38586 let DecoderNamespace = "EXT_mmvec";
38587 }
38588 def V6_vmpauhb_alt_128B : HInst<
38589 (outs VecDblRegs128B:$Vdd32),
38590 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
38591 "$Vdd32 = vmpauhb($Vuu32,$Rt32)",
38592 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
38593 let hasNewValue = 1;
38594 let opNewValue = 0;
38595 let isPseudo = 1;
38596 let isCodeGenOnly = 1;
38597 let DecoderNamespace = "EXT_mmvec";
38598 let isCodeGenOnly = 1;
38599 }
38600 def V6_vmpybus : HInst<
38601 (outs VecDblRegs:$Vdd32),
38602 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
38603 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
38604 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
38605 let Inst{7-5} = 0b101;
38606 let Inst{13-13} = 0b0;
38607 let Inst{31-21} = 0b00011001001;
38608 let hasNewValue = 1;
38609 let opNewValue = 0;
38610 let DecoderNamespace = "EXT_mmvec";
38611 }
38612 def V6_vmpybus_128B : HInst<
38613 (outs VecDblRegs128B:$Vdd32),
38614 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
38615 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
38616 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
38617 let Inst{7-5} = 0b101;
38618 let Inst{13-13} = 0b0;
38619 let Inst{31-21} = 0b00011001001;
38620 let hasNewValue = 1;
38621 let opNewValue = 0;
38622 let DecoderNamespace = "EXT_mmvec";
38623 let isCodeGenOnly = 1;
38624 }
38625 def V6_vmpybus_acc : HInst<
38626 (outs VecDblRegs:$Vxx32),
38627 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
38628 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
38629 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
38630 let Inst{7-5} = 0b101;
38631 let Inst{13-13} = 0b1;
38632 let Inst{31-21} = 0b00011001001;
38633 let hasNewValue = 1;
38634 let opNewValue = 0;
38635 let isAccumulator = 1;
38636 let DecoderNamespace = "EXT_mmvec";
38637 let Constraints = "$Vxx32 = $Vxx32in";
38638 }
38639 def V6_vmpybus_acc_128B : HInst<
38640 (outs VecDblRegs128B:$Vxx32),
38641 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
38642 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
38643 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
38644 let Inst{7-5} = 0b101;
38645 let Inst{13-13} = 0b1;
38646 let Inst{31-21} = 0b00011001001;
38647 let hasNewValue = 1;
38648 let opNewValue = 0;
38649 let isAccumulator = 1;
38650 let DecoderNamespace = "EXT_mmvec";
38651 let isCodeGenOnly = 1;
38652 let Constraints = "$Vxx32 = $Vxx32in";
38653 }
38654 def V6_vmpybus_acc_alt : HInst<
38655 (outs VecDblRegs:$Vxx32),
38656 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
38657 "$Vxx32 += vmpybus($Vu32,$Rt32)",
38658 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38659 let hasNewValue = 1;
38660 let opNewValue = 0;
38661 let isAccumulator = 1;
38662 let isPseudo = 1;
38663 let isCodeGenOnly = 1;
38664 let DecoderNamespace = "EXT_mmvec";
38665 let Constraints = "$Vxx32 = $Vxx32in";
38666 }
38667 def V6_vmpybus_acc_alt_128B : HInst<
38668 (outs VecDblRegs128B:$Vxx32),
38669 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
38670 "$Vxx32 += vmpybus($Vu32,$Rt32)",
38671 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38672 let hasNewValue = 1;
38673 let opNewValue = 0;
38674 let isAccumulator = 1;
38675 let isPseudo = 1;
38676 let isCodeGenOnly = 1;
38677 let DecoderNamespace = "EXT_mmvec";
38678 let isCodeGenOnly = 1;
38679 let Constraints = "$Vxx32 = $Vxx32in";
38680 }
38681 def V6_vmpybus_alt : HInst<
38682 (outs VecDblRegs:$Vdd32),
38683 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
38684 "$Vdd32 = vmpybus($Vu32,$Rt32)",
38685 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38686 let hasNewValue = 1;
38687 let opNewValue = 0;
38688 let isPseudo = 1;
38689 let isCodeGenOnly = 1;
38690 let DecoderNamespace = "EXT_mmvec";
38691 }
38692 def V6_vmpybus_alt_128B : HInst<
38693 (outs VecDblRegs128B:$Vdd32),
38694 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
38695 "$Vdd32 = vmpybus($Vu32,$Rt32)",
38696 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38697 let hasNewValue = 1;
38698 let opNewValue = 0;
38699 let isPseudo = 1;
38700 let isCodeGenOnly = 1;
38701 let DecoderNamespace = "EXT_mmvec";
38702 let isCodeGenOnly = 1;
38703 }
38704 def V6_vmpybusv : HInst<
38705 (outs VecDblRegs:$Vdd32),
38706 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38707 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
38708 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
38709 let Inst{7-5} = 0b110;
38710 let Inst{13-13} = 0b0;
38711 let Inst{31-21} = 0b00011100000;
38712 let hasNewValue = 1;
38713 let opNewValue = 0;
38714 let DecoderNamespace = "EXT_mmvec";
38715 }
38716 def V6_vmpybusv_128B : HInst<
38717 (outs VecDblRegs128B:$Vdd32),
38718 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38719 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
38720 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
38721 let Inst{7-5} = 0b110;
38722 let Inst{13-13} = 0b0;
38723 let Inst{31-21} = 0b00011100000;
38724 let hasNewValue = 1;
38725 let opNewValue = 0;
38726 let DecoderNamespace = "EXT_mmvec";
38727 let isCodeGenOnly = 1;
38728 }
38729 def V6_vmpybusv_acc : HInst<
38730 (outs VecDblRegs:$Vxx32),
38731 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
38732 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
38733 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
38734 let Inst{7-5} = 0b110;
38735 let Inst{13-13} = 0b1;
38736 let Inst{31-21} = 0b00011100000;
38737 let hasNewValue = 1;
38738 let opNewValue = 0;
38739 let isAccumulator = 1;
38740 let DecoderNamespace = "EXT_mmvec";
38741 let Constraints = "$Vxx32 = $Vxx32in";
38742 }
38743 def V6_vmpybusv_acc_128B : HInst<
38744 (outs VecDblRegs128B:$Vxx32),
38745 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38746 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
38747 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
38748 let Inst{7-5} = 0b110;
38749 let Inst{13-13} = 0b1;
38750 let Inst{31-21} = 0b00011100000;
38751 let hasNewValue = 1;
38752 let opNewValue = 0;
38753 let isAccumulator = 1;
38754 let DecoderNamespace = "EXT_mmvec";
38755 let isCodeGenOnly = 1;
38756 let Constraints = "$Vxx32 = $Vxx32in";
38757 }
38758 def V6_vmpybusv_acc_alt : HInst<
38759 (outs VecDblRegs:$Vxx32),
38760 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
38761 "$Vxx32 += vmpybus($Vu32,$Vv32)",
38762 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38763 let hasNewValue = 1;
38764 let opNewValue = 0;
38765 let isAccumulator = 1;
38766 let isPseudo = 1;
38767 let isCodeGenOnly = 1;
38768 let DecoderNamespace = "EXT_mmvec";
38769 let Constraints = "$Vxx32 = $Vxx32in";
38770 }
38771 def V6_vmpybusv_acc_alt_128B : HInst<
38772 (outs VecDblRegs128B:$Vxx32),
38773 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38774 "$Vxx32 += vmpybus($Vu32,$Vv32)",
38775 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38776 let hasNewValue = 1;
38777 let opNewValue = 0;
38778 let isAccumulator = 1;
38779 let isPseudo = 1;
38780 let isCodeGenOnly = 1;
38781 let DecoderNamespace = "EXT_mmvec";
38782 let isCodeGenOnly = 1;
38783 let Constraints = "$Vxx32 = $Vxx32in";
38784 }
38785 def V6_vmpybusv_alt : HInst<
38786 (outs VecDblRegs:$Vdd32),
38787 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38788 "$Vdd32 = vmpybus($Vu32,$Vv32)",
38789 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38790 let hasNewValue = 1;
38791 let opNewValue = 0;
38792 let isPseudo = 1;
38793 let isCodeGenOnly = 1;
38794 let DecoderNamespace = "EXT_mmvec";
38795 }
38796 def V6_vmpybusv_alt_128B : HInst<
38797 (outs VecDblRegs128B:$Vdd32),
38798 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38799 "$Vdd32 = vmpybus($Vu32,$Vv32)",
38800 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38801 let hasNewValue = 1;
38802 let opNewValue = 0;
38803 let isPseudo = 1;
38804 let isCodeGenOnly = 1;
38805 let DecoderNamespace = "EXT_mmvec";
38806 let isCodeGenOnly = 1;
38807 }
38808 def V6_vmpybv : HInst<
38809 (outs VecDblRegs:$Vdd32),
38810 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38811 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
38812 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
38813 let Inst{7-5} = 0b100;
38814 let Inst{13-13} = 0b0;
38815 let Inst{31-21} = 0b00011100000;
38816 let hasNewValue = 1;
38817 let opNewValue = 0;
38818 let DecoderNamespace = "EXT_mmvec";
38819 }
38820 def V6_vmpybv_128B : HInst<
38821 (outs VecDblRegs128B:$Vdd32),
38822 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38823 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
38824 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
38825 let Inst{7-5} = 0b100;
38826 let Inst{13-13} = 0b0;
38827 let Inst{31-21} = 0b00011100000;
38828 let hasNewValue = 1;
38829 let opNewValue = 0;
38830 let DecoderNamespace = "EXT_mmvec";
38831 let isCodeGenOnly = 1;
38832 }
38833 def V6_vmpybv_acc : HInst<
38834 (outs VecDblRegs:$Vxx32),
38835 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
38836 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
38837 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
38838 let Inst{7-5} = 0b100;
38839 let Inst{13-13} = 0b1;
38840 let Inst{31-21} = 0b00011100000;
38841 let hasNewValue = 1;
38842 let opNewValue = 0;
38843 let isAccumulator = 1;
38844 let DecoderNamespace = "EXT_mmvec";
38845 let Constraints = "$Vxx32 = $Vxx32in";
38846 }
38847 def V6_vmpybv_acc_128B : HInst<
38848 (outs VecDblRegs128B:$Vxx32),
38849 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38850 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
38851 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
38852 let Inst{7-5} = 0b100;
38853 let Inst{13-13} = 0b1;
38854 let Inst{31-21} = 0b00011100000;
38855 let hasNewValue = 1;
38856 let opNewValue = 0;
38857 let isAccumulator = 1;
38858 let DecoderNamespace = "EXT_mmvec";
38859 let isCodeGenOnly = 1;
38860 let Constraints = "$Vxx32 = $Vxx32in";
38861 }
38862 def V6_vmpybv_acc_alt : HInst<
38863 (outs VecDblRegs:$Vxx32),
38864 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
38865 "$Vxx32 += vmpyb($Vu32,$Vv32)",
38866 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38867 let hasNewValue = 1;
38868 let opNewValue = 0;
38869 let isAccumulator = 1;
38870 let isPseudo = 1;
38871 let isCodeGenOnly = 1;
38872 let DecoderNamespace = "EXT_mmvec";
38873 let Constraints = "$Vxx32 = $Vxx32in";
38874 }
38875 def V6_vmpybv_acc_alt_128B : HInst<
38876 (outs VecDblRegs128B:$Vxx32),
38877 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38878 "$Vxx32 += vmpyb($Vu32,$Vv32)",
38879 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38880 let hasNewValue = 1;
38881 let opNewValue = 0;
38882 let isAccumulator = 1;
38883 let isPseudo = 1;
38884 let isCodeGenOnly = 1;
38885 let DecoderNamespace = "EXT_mmvec";
38886 let isCodeGenOnly = 1;
38887 let Constraints = "$Vxx32 = $Vxx32in";
38888 }
38889 def V6_vmpybv_alt : HInst<
38890 (outs VecDblRegs:$Vdd32),
38891 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38892 "$Vdd32 = vmpyb($Vu32,$Vv32)",
38893 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38894 let hasNewValue = 1;
38895 let opNewValue = 0;
38896 let isPseudo = 1;
38897 let isCodeGenOnly = 1;
38898 let DecoderNamespace = "EXT_mmvec";
38899 }
38900 def V6_vmpybv_alt_128B : HInst<
38901 (outs VecDblRegs128B:$Vdd32),
38902 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38903 "$Vdd32 = vmpyb($Vu32,$Vv32)",
38904 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38905 let hasNewValue = 1;
38906 let opNewValue = 0;
38907 let isPseudo = 1;
38908 let isCodeGenOnly = 1;
38909 let DecoderNamespace = "EXT_mmvec";
38910 let isCodeGenOnly = 1;
38911 }
38912 def V6_vmpyewuh : HInst<
38913 (outs VectorRegs:$Vd32),
38914 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38915 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
38916 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38917 let Inst{7-5} = 0b101;
38918 let Inst{13-13} = 0b0;
38919 let Inst{31-21} = 0b00011111111;
38920 let hasNewValue = 1;
38921 let opNewValue = 0;
38922 let DecoderNamespace = "EXT_mmvec";
38923 }
38924 def V6_vmpyewuh_128B : HInst<
38925 (outs VectorRegs128B:$Vd32),
38926 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38927 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
38928 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
38929 let Inst{7-5} = 0b101;
38930 let Inst{13-13} = 0b0;
38931 let Inst{31-21} = 0b00011111111;
38932 let hasNewValue = 1;
38933 let opNewValue = 0;
38934 let DecoderNamespace = "EXT_mmvec";
38935 let isCodeGenOnly = 1;
38936 }
38937 def V6_vmpyewuh_64 : HInst<
38938 (outs VecDblRegs:$Vdd32),
38939 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38940 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
38941 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV62T,UseHVX]> {
38942 let Inst{7-5} = 0b110;
38943 let Inst{13-13} = 0b0;
38944 let Inst{31-21} = 0b00011110101;
38945 let hasNewValue = 1;
38946 let opNewValue = 0;
38947 let DecoderNamespace = "EXT_mmvec";
38948 }
38949 def V6_vmpyewuh_64_128B : HInst<
38950 (outs VecDblRegs128B:$Vdd32),
38951 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38952 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
38953 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV62T,UseHVX]> {
38954 let Inst{7-5} = 0b110;
38955 let Inst{13-13} = 0b0;
38956 let Inst{31-21} = 0b00011110101;
38957 let hasNewValue = 1;
38958 let opNewValue = 0;
38959 let DecoderNamespace = "EXT_mmvec";
38960 let isCodeGenOnly = 1;
38961 }
38962 def V6_vmpyewuh_alt : HInst<
38963 (outs VectorRegs:$Vd32),
38964 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
38965 "$Vd32 = vmpyewuh($Vu32,$Vv32)",
38966 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38967 let hasNewValue = 1;
38968 let opNewValue = 0;
38969 let isPseudo = 1;
38970 let isCodeGenOnly = 1;
38971 let DecoderNamespace = "EXT_mmvec";
38972 }
38973 def V6_vmpyewuh_alt_128B : HInst<
38974 (outs VectorRegs128B:$Vd32),
38975 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
38976 "$Vd32 = vmpyewuh($Vu32,$Vv32)",
38977 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
38978 let hasNewValue = 1;
38979 let opNewValue = 0;
38980 let isPseudo = 1;
38981 let isCodeGenOnly = 1;
38982 let DecoderNamespace = "EXT_mmvec";
38983 let isCodeGenOnly = 1;
38984 }
38985 def V6_vmpyh : HInst<
38986 (outs VecDblRegs:$Vdd32),
38987 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
38988 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
38989 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
38990 let Inst{7-5} = 0b000;
38991 let Inst{13-13} = 0b0;
38992 let Inst{31-21} = 0b00011001010;
38993 let hasNewValue = 1;
38994 let opNewValue = 0;
38995 let DecoderNamespace = "EXT_mmvec";
38996 }
38997 def V6_vmpyh_128B : HInst<
38998 (outs VecDblRegs128B:$Vdd32),
38999 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39000 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
39001 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
39002 let Inst{7-5} = 0b000;
39003 let Inst{13-13} = 0b0;
39004 let Inst{31-21} = 0b00011001010;
39005 let hasNewValue = 1;
39006 let opNewValue = 0;
39007 let DecoderNamespace = "EXT_mmvec";
39008 let isCodeGenOnly = 1;
39009 }
39010 def V6_vmpyh_alt : HInst<
39011 (outs VecDblRegs:$Vdd32),
39012 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39013 "$Vdd32 = vmpyh($Vu32,$Rt32)",
39014 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39015 let hasNewValue = 1;
39016 let opNewValue = 0;
39017 let isPseudo = 1;
39018 let isCodeGenOnly = 1;
39019 let DecoderNamespace = "EXT_mmvec";
39020 }
39021 def V6_vmpyh_alt_128B : HInst<
39022 (outs VecDblRegs128B:$Vdd32),
39023 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39024 "$Vdd32 = vmpyh($Vu32,$Rt32)",
39025 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39026 let hasNewValue = 1;
39027 let opNewValue = 0;
39028 let isPseudo = 1;
39029 let isCodeGenOnly = 1;
39030 let DecoderNamespace = "EXT_mmvec";
39031 let isCodeGenOnly = 1;
39032 }
39033 def V6_vmpyhsat_acc : HInst<
39034 (outs VecDblRegs:$Vxx32),
39035 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39036 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
39037 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
39038 let Inst{7-5} = 0b000;
39039 let Inst{13-13} = 0b1;
39040 let Inst{31-21} = 0b00011001010;
39041 let hasNewValue = 1;
39042 let opNewValue = 0;
39043 let isAccumulator = 1;
39044 let DecoderNamespace = "EXT_mmvec";
39045 let Constraints = "$Vxx32 = $Vxx32in";
39046 }
39047 def V6_vmpyhsat_acc_128B : HInst<
39048 (outs VecDblRegs128B:$Vxx32),
39049 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39050 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
39051 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
39052 let Inst{7-5} = 0b000;
39053 let Inst{13-13} = 0b1;
39054 let Inst{31-21} = 0b00011001010;
39055 let hasNewValue = 1;
39056 let opNewValue = 0;
39057 let isAccumulator = 1;
39058 let DecoderNamespace = "EXT_mmvec";
39059 let isCodeGenOnly = 1;
39060 let Constraints = "$Vxx32 = $Vxx32in";
39061 }
39062 def V6_vmpyhsat_acc_alt : HInst<
39063 (outs VecDblRegs:$Vxx32),
39064 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39065 "$Vxx32 += vmpyh($Vu32,$Rt32):sat",
39066 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39067 let hasNewValue = 1;
39068 let opNewValue = 0;
39069 let isAccumulator = 1;
39070 let isPseudo = 1;
39071 let isCodeGenOnly = 1;
39072 let DecoderNamespace = "EXT_mmvec";
39073 let Constraints = "$Vxx32 = $Vxx32in";
39074 }
39075 def V6_vmpyhsat_acc_alt_128B : HInst<
39076 (outs VecDblRegs128B:$Vxx32),
39077 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39078 "$Vxx32 += vmpyh($Vu32,$Rt32):sat",
39079 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39080 let hasNewValue = 1;
39081 let opNewValue = 0;
39082 let isAccumulator = 1;
39083 let isPseudo = 1;
39084 let isCodeGenOnly = 1;
39085 let DecoderNamespace = "EXT_mmvec";
39086 let isCodeGenOnly = 1;
39087 let Constraints = "$Vxx32 = $Vxx32in";
39088 }
39089 def V6_vmpyhsrs : HInst<
39090 (outs VectorRegs:$Vd32),
39091 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39092 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
39093 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39094 let Inst{7-5} = 0b010;
39095 let Inst{13-13} = 0b0;
39096 let Inst{31-21} = 0b00011001010;
39097 let hasNewValue = 1;
39098 let opNewValue = 0;
39099 let DecoderNamespace = "EXT_mmvec";
39100 }
39101 def V6_vmpyhsrs_128B : HInst<
39102 (outs VectorRegs128B:$Vd32),
39103 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39104 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
39105 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39106 let Inst{7-5} = 0b010;
39107 let Inst{13-13} = 0b0;
39108 let Inst{31-21} = 0b00011001010;
39109 let hasNewValue = 1;
39110 let opNewValue = 0;
39111 let DecoderNamespace = "EXT_mmvec";
39112 let isCodeGenOnly = 1;
39113 }
39114 def V6_vmpyhsrs_alt : HInst<
39115 (outs VectorRegs:$Vd32),
39116 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39117 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
39118 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39119 let hasNewValue = 1;
39120 let opNewValue = 0;
39121 let isPseudo = 1;
39122 let isCodeGenOnly = 1;
39123 let DecoderNamespace = "EXT_mmvec";
39124 }
39125 def V6_vmpyhsrs_alt_128B : HInst<
39126 (outs VectorRegs128B:$Vd32),
39127 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39128 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
39129 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39130 let hasNewValue = 1;
39131 let opNewValue = 0;
39132 let isPseudo = 1;
39133 let isCodeGenOnly = 1;
39134 let DecoderNamespace = "EXT_mmvec";
39135 let isCodeGenOnly = 1;
39136 }
39137 def V6_vmpyhss : HInst<
39138 (outs VectorRegs:$Vd32),
39139 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39140 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
39141 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39142 let Inst{7-5} = 0b001;
39143 let Inst{13-13} = 0b0;
39144 let Inst{31-21} = 0b00011001010;
39145 let hasNewValue = 1;
39146 let opNewValue = 0;
39147 let DecoderNamespace = "EXT_mmvec";
39148 }
39149 def V6_vmpyhss_128B : HInst<
39150 (outs VectorRegs128B:$Vd32),
39151 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39152 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
39153 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39154 let Inst{7-5} = 0b001;
39155 let Inst{13-13} = 0b0;
39156 let Inst{31-21} = 0b00011001010;
39157 let hasNewValue = 1;
39158 let opNewValue = 0;
39159 let DecoderNamespace = "EXT_mmvec";
39160 let isCodeGenOnly = 1;
39161 }
39162 def V6_vmpyhss_alt : HInst<
39163 (outs VectorRegs:$Vd32),
39164 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39165 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
39166 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39167 let hasNewValue = 1;
39168 let opNewValue = 0;
39169 let isPseudo = 1;
39170 let isCodeGenOnly = 1;
39171 let DecoderNamespace = "EXT_mmvec";
39172 }
39173 def V6_vmpyhss_alt_128B : HInst<
39174 (outs VectorRegs128B:$Vd32),
39175 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39176 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
39177 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39178 let hasNewValue = 1;
39179 let opNewValue = 0;
39180 let isPseudo = 1;
39181 let isCodeGenOnly = 1;
39182 let DecoderNamespace = "EXT_mmvec";
39183 let isCodeGenOnly = 1;
39184 }
39185 def V6_vmpyhus : HInst<
39186 (outs VecDblRegs:$Vdd32),
39187 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39188 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
39189 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
39190 let Inst{7-5} = 0b010;
39191 let Inst{13-13} = 0b0;
39192 let Inst{31-21} = 0b00011100001;
39193 let hasNewValue = 1;
39194 let opNewValue = 0;
39195 let DecoderNamespace = "EXT_mmvec";
39196 }
39197 def V6_vmpyhus_128B : HInst<
39198 (outs VecDblRegs128B:$Vdd32),
39199 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39200 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
39201 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
39202 let Inst{7-5} = 0b010;
39203 let Inst{13-13} = 0b0;
39204 let Inst{31-21} = 0b00011100001;
39205 let hasNewValue = 1;
39206 let opNewValue = 0;
39207 let DecoderNamespace = "EXT_mmvec";
39208 let isCodeGenOnly = 1;
39209 }
39210 def V6_vmpyhus_acc : HInst<
39211 (outs VecDblRegs:$Vxx32),
39212 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39213 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
39214 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
39215 let Inst{7-5} = 0b001;
39216 let Inst{13-13} = 0b1;
39217 let Inst{31-21} = 0b00011100001;
39218 let hasNewValue = 1;
39219 let opNewValue = 0;
39220 let isAccumulator = 1;
39221 let DecoderNamespace = "EXT_mmvec";
39222 let Constraints = "$Vxx32 = $Vxx32in";
39223 }
39224 def V6_vmpyhus_acc_128B : HInst<
39225 (outs VecDblRegs128B:$Vxx32),
39226 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39227 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
39228 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
39229 let Inst{7-5} = 0b001;
39230 let Inst{13-13} = 0b1;
39231 let Inst{31-21} = 0b00011100001;
39232 let hasNewValue = 1;
39233 let opNewValue = 0;
39234 let isAccumulator = 1;
39235 let DecoderNamespace = "EXT_mmvec";
39236 let isCodeGenOnly = 1;
39237 let Constraints = "$Vxx32 = $Vxx32in";
39238 }
39239 def V6_vmpyhus_acc_alt : HInst<
39240 (outs VecDblRegs:$Vxx32),
39241 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39242 "$Vxx32 += vmpyhus($Vu32,$Vv32)",
39243 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39244 let hasNewValue = 1;
39245 let opNewValue = 0;
39246 let isAccumulator = 1;
39247 let isPseudo = 1;
39248 let isCodeGenOnly = 1;
39249 let DecoderNamespace = "EXT_mmvec";
39250 let Constraints = "$Vxx32 = $Vxx32in";
39251 }
39252 def V6_vmpyhus_acc_alt_128B : HInst<
39253 (outs VecDblRegs128B:$Vxx32),
39254 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39255 "$Vxx32 += vmpyhus($Vu32,$Vv32)",
39256 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39257 let hasNewValue = 1;
39258 let opNewValue = 0;
39259 let isAccumulator = 1;
39260 let isPseudo = 1;
39261 let isCodeGenOnly = 1;
39262 let DecoderNamespace = "EXT_mmvec";
39263 let isCodeGenOnly = 1;
39264 let Constraints = "$Vxx32 = $Vxx32in";
39265 }
39266 def V6_vmpyhus_alt : HInst<
39267 (outs VecDblRegs:$Vdd32),
39268 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39269 "$Vdd32 = vmpyhus($Vu32,$Vv32)",
39270 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39271 let hasNewValue = 1;
39272 let opNewValue = 0;
39273 let isPseudo = 1;
39274 let isCodeGenOnly = 1;
39275 let DecoderNamespace = "EXT_mmvec";
39276 }
39277 def V6_vmpyhus_alt_128B : HInst<
39278 (outs VecDblRegs128B:$Vdd32),
39279 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39280 "$Vdd32 = vmpyhus($Vu32,$Vv32)",
39281 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39282 let hasNewValue = 1;
39283 let opNewValue = 0;
39284 let isPseudo = 1;
39285 let isCodeGenOnly = 1;
39286 let DecoderNamespace = "EXT_mmvec";
39287 let isCodeGenOnly = 1;
39288 }
39289 def V6_vmpyhv : HInst<
39290 (outs VecDblRegs:$Vdd32),
39291 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39292 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
39293 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
39294 let Inst{7-5} = 0b111;
39295 let Inst{13-13} = 0b0;
39296 let Inst{31-21} = 0b00011100000;
39297 let hasNewValue = 1;
39298 let opNewValue = 0;
39299 let DecoderNamespace = "EXT_mmvec";
39300 }
39301 def V6_vmpyhv_128B : HInst<
39302 (outs VecDblRegs128B:$Vdd32),
39303 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39304 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
39305 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
39306 let Inst{7-5} = 0b111;
39307 let Inst{13-13} = 0b0;
39308 let Inst{31-21} = 0b00011100000;
39309 let hasNewValue = 1;
39310 let opNewValue = 0;
39311 let DecoderNamespace = "EXT_mmvec";
39312 let isCodeGenOnly = 1;
39313 }
39314 def V6_vmpyhv_acc : HInst<
39315 (outs VecDblRegs:$Vxx32),
39316 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39317 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
39318 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
39319 let Inst{7-5} = 0b111;
39320 let Inst{13-13} = 0b1;
39321 let Inst{31-21} = 0b00011100000;
39322 let hasNewValue = 1;
39323 let opNewValue = 0;
39324 let isAccumulator = 1;
39325 let DecoderNamespace = "EXT_mmvec";
39326 let Constraints = "$Vxx32 = $Vxx32in";
39327 }
39328 def V6_vmpyhv_acc_128B : HInst<
39329 (outs VecDblRegs128B:$Vxx32),
39330 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39331 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
39332 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
39333 let Inst{7-5} = 0b111;
39334 let Inst{13-13} = 0b1;
39335 let Inst{31-21} = 0b00011100000;
39336 let hasNewValue = 1;
39337 let opNewValue = 0;
39338 let isAccumulator = 1;
39339 let DecoderNamespace = "EXT_mmvec";
39340 let isCodeGenOnly = 1;
39341 let Constraints = "$Vxx32 = $Vxx32in";
39342 }
39343 def V6_vmpyhv_acc_alt : HInst<
39344 (outs VecDblRegs:$Vxx32),
39345 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39346 "$Vxx32 += vmpyh($Vu32,$Vv32)",
39347 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39348 let hasNewValue = 1;
39349 let opNewValue = 0;
39350 let isAccumulator = 1;
39351 let isPseudo = 1;
39352 let isCodeGenOnly = 1;
39353 let DecoderNamespace = "EXT_mmvec";
39354 let Constraints = "$Vxx32 = $Vxx32in";
39355 }
39356 def V6_vmpyhv_acc_alt_128B : HInst<
39357 (outs VecDblRegs128B:$Vxx32),
39358 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39359 "$Vxx32 += vmpyh($Vu32,$Vv32)",
39360 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39361 let hasNewValue = 1;
39362 let opNewValue = 0;
39363 let isAccumulator = 1;
39364 let isPseudo = 1;
39365 let isCodeGenOnly = 1;
39366 let DecoderNamespace = "EXT_mmvec";
39367 let isCodeGenOnly = 1;
39368 let Constraints = "$Vxx32 = $Vxx32in";
39369 }
39370 def V6_vmpyhv_alt : HInst<
39371 (outs VecDblRegs:$Vdd32),
39372 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39373 "$Vdd32 = vmpyh($Vu32,$Vv32)",
39374 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39375 let hasNewValue = 1;
39376 let opNewValue = 0;
39377 let isPseudo = 1;
39378 let isCodeGenOnly = 1;
39379 let DecoderNamespace = "EXT_mmvec";
39380 }
39381 def V6_vmpyhv_alt_128B : HInst<
39382 (outs VecDblRegs128B:$Vdd32),
39383 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39384 "$Vdd32 = vmpyh($Vu32,$Vv32)",
39385 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39386 let hasNewValue = 1;
39387 let opNewValue = 0;
39388 let isPseudo = 1;
39389 let isCodeGenOnly = 1;
39390 let DecoderNamespace = "EXT_mmvec";
39391 let isCodeGenOnly = 1;
39392 }
39393 def V6_vmpyhvsrs : HInst<
39394 (outs VectorRegs:$Vd32),
39395 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39396 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
39397 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39398 let Inst{7-5} = 0b001;
39399 let Inst{13-13} = 0b0;
39400 let Inst{31-21} = 0b00011100001;
39401 let hasNewValue = 1;
39402 let opNewValue = 0;
39403 let DecoderNamespace = "EXT_mmvec";
39404 }
39405 def V6_vmpyhvsrs_128B : HInst<
39406 (outs VectorRegs128B:$Vd32),
39407 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39408 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
39409 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39410 let Inst{7-5} = 0b001;
39411 let Inst{13-13} = 0b0;
39412 let Inst{31-21} = 0b00011100001;
39413 let hasNewValue = 1;
39414 let opNewValue = 0;
39415 let DecoderNamespace = "EXT_mmvec";
39416 let isCodeGenOnly = 1;
39417 }
39418 def V6_vmpyhvsrs_alt : HInst<
39419 (outs VectorRegs:$Vd32),
39420 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39421 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
39422 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39423 let hasNewValue = 1;
39424 let opNewValue = 0;
39425 let isPseudo = 1;
39426 let isCodeGenOnly = 1;
39427 let DecoderNamespace = "EXT_mmvec";
39428 }
39429 def V6_vmpyhvsrs_alt_128B : HInst<
39430 (outs VectorRegs128B:$Vd32),
39431 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39432 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
39433 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39434 let hasNewValue = 1;
39435 let opNewValue = 0;
39436 let isPseudo = 1;
39437 let isCodeGenOnly = 1;
39438 let DecoderNamespace = "EXT_mmvec";
39439 let isCodeGenOnly = 1;
39440 }
39441 def V6_vmpyieoh : HInst<
39442 (outs VectorRegs:$Vd32),
39443 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39444 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
39445 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39446 let Inst{7-5} = 0b000;
39447 let Inst{13-13} = 0b0;
39448 let Inst{31-21} = 0b00011111011;
39449 let hasNewValue = 1;
39450 let opNewValue = 0;
39451 let DecoderNamespace = "EXT_mmvec";
39452 }
39453 def V6_vmpyieoh_128B : HInst<
39454 (outs VectorRegs128B:$Vd32),
39455 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39456 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
39457 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39458 let Inst{7-5} = 0b000;
39459 let Inst{13-13} = 0b0;
39460 let Inst{31-21} = 0b00011111011;
39461 let hasNewValue = 1;
39462 let opNewValue = 0;
39463 let DecoderNamespace = "EXT_mmvec";
39464 let isCodeGenOnly = 1;
39465 }
39466 def V6_vmpyiewh_acc : HInst<
39467 (outs VectorRegs:$Vx32),
39468 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39469 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
39470 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39471 let Inst{7-5} = 0b000;
39472 let Inst{13-13} = 0b1;
39473 let Inst{31-21} = 0b00011100010;
39474 let hasNewValue = 1;
39475 let opNewValue = 0;
39476 let isAccumulator = 1;
39477 let DecoderNamespace = "EXT_mmvec";
39478 let Constraints = "$Vx32 = $Vx32in";
39479 }
39480 def V6_vmpyiewh_acc_128B : HInst<
39481 (outs VectorRegs128B:$Vx32),
39482 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39483 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
39484 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39485 let Inst{7-5} = 0b000;
39486 let Inst{13-13} = 0b1;
39487 let Inst{31-21} = 0b00011100010;
39488 let hasNewValue = 1;
39489 let opNewValue = 0;
39490 let isAccumulator = 1;
39491 let DecoderNamespace = "EXT_mmvec";
39492 let isCodeGenOnly = 1;
39493 let Constraints = "$Vx32 = $Vx32in";
39494 }
39495 def V6_vmpyiewh_acc_alt : HInst<
39496 (outs VectorRegs:$Vx32),
39497 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39498 "$Vx32 += vmpyiewh($Vu32,$Vv32)",
39499 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39500 let hasNewValue = 1;
39501 let opNewValue = 0;
39502 let isAccumulator = 1;
39503 let isPseudo = 1;
39504 let isCodeGenOnly = 1;
39505 let DecoderNamespace = "EXT_mmvec";
39506 let Constraints = "$Vx32 = $Vx32in";
39507 }
39508 def V6_vmpyiewh_acc_alt_128B : HInst<
39509 (outs VectorRegs128B:$Vx32),
39510 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39511 "$Vx32 += vmpyiewh($Vu32,$Vv32)",
39512 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39513 let hasNewValue = 1;
39514 let opNewValue = 0;
39515 let isAccumulator = 1;
39516 let isPseudo = 1;
39517 let isCodeGenOnly = 1;
39518 let DecoderNamespace = "EXT_mmvec";
39519 let isCodeGenOnly = 1;
39520 let Constraints = "$Vx32 = $Vx32in";
39521 }
39522 def V6_vmpyiewuh : HInst<
39523 (outs VectorRegs:$Vd32),
39524 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39525 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
39526 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39527 let Inst{7-5} = 0b000;
39528 let Inst{13-13} = 0b0;
39529 let Inst{31-21} = 0b00011111110;
39530 let hasNewValue = 1;
39531 let opNewValue = 0;
39532 let DecoderNamespace = "EXT_mmvec";
39533 }
39534 def V6_vmpyiewuh_128B : HInst<
39535 (outs VectorRegs128B:$Vd32),
39536 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39537 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
39538 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39539 let Inst{7-5} = 0b000;
39540 let Inst{13-13} = 0b0;
39541 let Inst{31-21} = 0b00011111110;
39542 let hasNewValue = 1;
39543 let opNewValue = 0;
39544 let DecoderNamespace = "EXT_mmvec";
39545 let isCodeGenOnly = 1;
39546 }
39547 def V6_vmpyiewuh_acc : HInst<
39548 (outs VectorRegs:$Vx32),
39549 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39550 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
39551 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39552 let Inst{7-5} = 0b101;
39553 let Inst{13-13} = 0b1;
39554 let Inst{31-21} = 0b00011100001;
39555 let hasNewValue = 1;
39556 let opNewValue = 0;
39557 let isAccumulator = 1;
39558 let DecoderNamespace = "EXT_mmvec";
39559 let Constraints = "$Vx32 = $Vx32in";
39560 }
39561 def V6_vmpyiewuh_acc_128B : HInst<
39562 (outs VectorRegs128B:$Vx32),
39563 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39564 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
39565 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39566 let Inst{7-5} = 0b101;
39567 let Inst{13-13} = 0b1;
39568 let Inst{31-21} = 0b00011100001;
39569 let hasNewValue = 1;
39570 let opNewValue = 0;
39571 let isAccumulator = 1;
39572 let DecoderNamespace = "EXT_mmvec";
39573 let isCodeGenOnly = 1;
39574 let Constraints = "$Vx32 = $Vx32in";
39575 }
39576 def V6_vmpyiewuh_acc_alt : HInst<
39577 (outs VectorRegs:$Vx32),
39578 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39579 "$Vx32 += vmpyiewuh($Vu32,$Vv32)",
39580 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39581 let hasNewValue = 1;
39582 let opNewValue = 0;
39583 let isAccumulator = 1;
39584 let isPseudo = 1;
39585 let isCodeGenOnly = 1;
39586 let DecoderNamespace = "EXT_mmvec";
39587 let Constraints = "$Vx32 = $Vx32in";
39588 }
39589 def V6_vmpyiewuh_acc_alt_128B : HInst<
39590 (outs VectorRegs128B:$Vx32),
39591 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39592 "$Vx32 += vmpyiewuh($Vu32,$Vv32)",
39593 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39594 let hasNewValue = 1;
39595 let opNewValue = 0;
39596 let isAccumulator = 1;
39597 let isPseudo = 1;
39598 let isCodeGenOnly = 1;
39599 let DecoderNamespace = "EXT_mmvec";
39600 let isCodeGenOnly = 1;
39601 let Constraints = "$Vx32 = $Vx32in";
39602 }
39603 def V6_vmpyiewuh_alt : HInst<
39604 (outs VectorRegs:$Vd32),
39605 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39606 "$Vd32 = vmpyiewuh($Vu32,$Vv32)",
39607 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39608 let hasNewValue = 1;
39609 let opNewValue = 0;
39610 let isPseudo = 1;
39611 let isCodeGenOnly = 1;
39612 let DecoderNamespace = "EXT_mmvec";
39613 }
39614 def V6_vmpyiewuh_alt_128B : HInst<
39615 (outs VectorRegs128B:$Vd32),
39616 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39617 "$Vd32 = vmpyiewuh($Vu32,$Vv32)",
39618 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39619 let hasNewValue = 1;
39620 let opNewValue = 0;
39621 let isPseudo = 1;
39622 let isCodeGenOnly = 1;
39623 let DecoderNamespace = "EXT_mmvec";
39624 let isCodeGenOnly = 1;
39625 }
39626 def V6_vmpyih : HInst<
39627 (outs VectorRegs:$Vd32),
39628 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39629 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
39630 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39631 let Inst{7-5} = 0b100;
39632 let Inst{13-13} = 0b0;
39633 let Inst{31-21} = 0b00011100001;
39634 let hasNewValue = 1;
39635 let opNewValue = 0;
39636 let DecoderNamespace = "EXT_mmvec";
39637 }
39638 def V6_vmpyih_128B : HInst<
39639 (outs VectorRegs128B:$Vd32),
39640 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39641 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
39642 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39643 let Inst{7-5} = 0b100;
39644 let Inst{13-13} = 0b0;
39645 let Inst{31-21} = 0b00011100001;
39646 let hasNewValue = 1;
39647 let opNewValue = 0;
39648 let DecoderNamespace = "EXT_mmvec";
39649 let isCodeGenOnly = 1;
39650 }
39651 def V6_vmpyih_acc : HInst<
39652 (outs VectorRegs:$Vx32),
39653 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39654 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
39655 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39656 let Inst{7-5} = 0b100;
39657 let Inst{13-13} = 0b1;
39658 let Inst{31-21} = 0b00011100001;
39659 let hasNewValue = 1;
39660 let opNewValue = 0;
39661 let isAccumulator = 1;
39662 let DecoderNamespace = "EXT_mmvec";
39663 let Constraints = "$Vx32 = $Vx32in";
39664 }
39665 def V6_vmpyih_acc_128B : HInst<
39666 (outs VectorRegs128B:$Vx32),
39667 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39668 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
39669 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
39670 let Inst{7-5} = 0b100;
39671 let Inst{13-13} = 0b1;
39672 let Inst{31-21} = 0b00011100001;
39673 let hasNewValue = 1;
39674 let opNewValue = 0;
39675 let isAccumulator = 1;
39676 let DecoderNamespace = "EXT_mmvec";
39677 let isCodeGenOnly = 1;
39678 let Constraints = "$Vx32 = $Vx32in";
39679 }
39680 def V6_vmpyih_acc_alt : HInst<
39681 (outs VectorRegs:$Vx32),
39682 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
39683 "$Vx32 += vmpyih($Vu32,$Vv32)",
39684 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39685 let hasNewValue = 1;
39686 let opNewValue = 0;
39687 let isAccumulator = 1;
39688 let isPseudo = 1;
39689 let isCodeGenOnly = 1;
39690 let DecoderNamespace = "EXT_mmvec";
39691 let Constraints = "$Vx32 = $Vx32in";
39692 }
39693 def V6_vmpyih_acc_alt_128B : HInst<
39694 (outs VectorRegs128B:$Vx32),
39695 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39696 "$Vx32 += vmpyih($Vu32,$Vv32)",
39697 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39698 let hasNewValue = 1;
39699 let opNewValue = 0;
39700 let isAccumulator = 1;
39701 let isPseudo = 1;
39702 let isCodeGenOnly = 1;
39703 let DecoderNamespace = "EXT_mmvec";
39704 let isCodeGenOnly = 1;
39705 let Constraints = "$Vx32 = $Vx32in";
39706 }
39707 def V6_vmpyih_alt : HInst<
39708 (outs VectorRegs:$Vd32),
39709 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39710 "$Vd32 = vmpyih($Vu32,$Vv32)",
39711 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39712 let hasNewValue = 1;
39713 let opNewValue = 0;
39714 let isPseudo = 1;
39715 let isCodeGenOnly = 1;
39716 let DecoderNamespace = "EXT_mmvec";
39717 }
39718 def V6_vmpyih_alt_128B : HInst<
39719 (outs VectorRegs128B:$Vd32),
39720 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39721 "$Vd32 = vmpyih($Vu32,$Vv32)",
39722 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39723 let hasNewValue = 1;
39724 let opNewValue = 0;
39725 let isPseudo = 1;
39726 let isCodeGenOnly = 1;
39727 let DecoderNamespace = "EXT_mmvec";
39728 let isCodeGenOnly = 1;
39729 }
39730 def V6_vmpyihb : HInst<
39731 (outs VectorRegs:$Vd32),
39732 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39733 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
39734 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39735 let Inst{7-5} = 0b000;
39736 let Inst{13-13} = 0b0;
39737 let Inst{31-21} = 0b00011001011;
39738 let hasNewValue = 1;
39739 let opNewValue = 0;
39740 let DecoderNamespace = "EXT_mmvec";
39741 }
39742 def V6_vmpyihb_128B : HInst<
39743 (outs VectorRegs128B:$Vd32),
39744 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39745 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
39746 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39747 let Inst{7-5} = 0b000;
39748 let Inst{13-13} = 0b0;
39749 let Inst{31-21} = 0b00011001011;
39750 let hasNewValue = 1;
39751 let opNewValue = 0;
39752 let DecoderNamespace = "EXT_mmvec";
39753 let isCodeGenOnly = 1;
39754 }
39755 def V6_vmpyihb_acc : HInst<
39756 (outs VectorRegs:$Vx32),
39757 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39758 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
39759 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
39760 let Inst{7-5} = 0b001;
39761 let Inst{13-13} = 0b1;
39762 let Inst{31-21} = 0b00011001011;
39763 let hasNewValue = 1;
39764 let opNewValue = 0;
39765 let isAccumulator = 1;
39766 let DecoderNamespace = "EXT_mmvec";
39767 let Constraints = "$Vx32 = $Vx32in";
39768 }
39769 def V6_vmpyihb_acc_128B : HInst<
39770 (outs VectorRegs128B:$Vx32),
39771 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39772 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
39773 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
39774 let Inst{7-5} = 0b001;
39775 let Inst{13-13} = 0b1;
39776 let Inst{31-21} = 0b00011001011;
39777 let hasNewValue = 1;
39778 let opNewValue = 0;
39779 let isAccumulator = 1;
39780 let DecoderNamespace = "EXT_mmvec";
39781 let isCodeGenOnly = 1;
39782 let Constraints = "$Vx32 = $Vx32in";
39783 }
39784 def V6_vmpyihb_acc_alt : HInst<
39785 (outs VectorRegs:$Vx32),
39786 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39787 "$Vx32 += vmpyihb($Vu32,$Rt32)",
39788 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39789 let hasNewValue = 1;
39790 let opNewValue = 0;
39791 let isAccumulator = 1;
39792 let isPseudo = 1;
39793 let isCodeGenOnly = 1;
39794 let DecoderNamespace = "EXT_mmvec";
39795 let Constraints = "$Vx32 = $Vx32in";
39796 }
39797 def V6_vmpyihb_acc_alt_128B : HInst<
39798 (outs VectorRegs128B:$Vx32),
39799 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39800 "$Vx32 += vmpyihb($Vu32,$Rt32)",
39801 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39802 let hasNewValue = 1;
39803 let opNewValue = 0;
39804 let isAccumulator = 1;
39805 let isPseudo = 1;
39806 let isCodeGenOnly = 1;
39807 let DecoderNamespace = "EXT_mmvec";
39808 let isCodeGenOnly = 1;
39809 let Constraints = "$Vx32 = $Vx32in";
39810 }
39811 def V6_vmpyihb_alt : HInst<
39812 (outs VectorRegs:$Vd32),
39813 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39814 "$Vd32 = vmpyihb($Vu32,$Rt32)",
39815 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39816 let hasNewValue = 1;
39817 let opNewValue = 0;
39818 let isPseudo = 1;
39819 let isCodeGenOnly = 1;
39820 let DecoderNamespace = "EXT_mmvec";
39821 }
39822 def V6_vmpyihb_alt_128B : HInst<
39823 (outs VectorRegs128B:$Vd32),
39824 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39825 "$Vd32 = vmpyihb($Vu32,$Rt32)",
39826 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39827 let hasNewValue = 1;
39828 let opNewValue = 0;
39829 let isPseudo = 1;
39830 let isCodeGenOnly = 1;
39831 let DecoderNamespace = "EXT_mmvec";
39832 let isCodeGenOnly = 1;
39833 }
39834 def V6_vmpyiowh : HInst<
39835 (outs VectorRegs:$Vd32),
39836 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39837 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
39838 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39839 let Inst{7-5} = 0b001;
39840 let Inst{13-13} = 0b0;
39841 let Inst{31-21} = 0b00011111110;
39842 let hasNewValue = 1;
39843 let opNewValue = 0;
39844 let DecoderNamespace = "EXT_mmvec";
39845 }
39846 def V6_vmpyiowh_128B : HInst<
39847 (outs VectorRegs128B:$Vd32),
39848 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39849 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
39850 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
39851 let Inst{7-5} = 0b001;
39852 let Inst{13-13} = 0b0;
39853 let Inst{31-21} = 0b00011111110;
39854 let hasNewValue = 1;
39855 let opNewValue = 0;
39856 let DecoderNamespace = "EXT_mmvec";
39857 let isCodeGenOnly = 1;
39858 }
39859 def V6_vmpyiowh_alt : HInst<
39860 (outs VectorRegs:$Vd32),
39861 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
39862 "$Vd32 = vmpyiowh($Vu32,$Vv32)",
39863 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39864 let hasNewValue = 1;
39865 let opNewValue = 0;
39866 let isPseudo = 1;
39867 let isCodeGenOnly = 1;
39868 let DecoderNamespace = "EXT_mmvec";
39869 }
39870 def V6_vmpyiowh_alt_128B : HInst<
39871 (outs VectorRegs128B:$Vd32),
39872 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
39873 "$Vd32 = vmpyiowh($Vu32,$Vv32)",
39874 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39875 let hasNewValue = 1;
39876 let opNewValue = 0;
39877 let isPseudo = 1;
39878 let isCodeGenOnly = 1;
39879 let DecoderNamespace = "EXT_mmvec";
39880 let isCodeGenOnly = 1;
39881 }
39882 def V6_vmpyiwb : HInst<
39883 (outs VectorRegs:$Vd32),
39884 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39885 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
39886 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39887 let Inst{7-5} = 0b000;
39888 let Inst{13-13} = 0b0;
39889 let Inst{31-21} = 0b00011001101;
39890 let hasNewValue = 1;
39891 let opNewValue = 0;
39892 let DecoderNamespace = "EXT_mmvec";
39893 }
39894 def V6_vmpyiwb_128B : HInst<
39895 (outs VectorRegs128B:$Vd32),
39896 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39897 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
39898 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39899 let Inst{7-5} = 0b000;
39900 let Inst{13-13} = 0b0;
39901 let Inst{31-21} = 0b00011001101;
39902 let hasNewValue = 1;
39903 let opNewValue = 0;
39904 let DecoderNamespace = "EXT_mmvec";
39905 let isCodeGenOnly = 1;
39906 }
39907 def V6_vmpyiwb_acc : HInst<
39908 (outs VectorRegs:$Vx32),
39909 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39910 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
39911 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
39912 let Inst{7-5} = 0b010;
39913 let Inst{13-13} = 0b1;
39914 let Inst{31-21} = 0b00011001010;
39915 let hasNewValue = 1;
39916 let opNewValue = 0;
39917 let isAccumulator = 1;
39918 let DecoderNamespace = "EXT_mmvec";
39919 let Constraints = "$Vx32 = $Vx32in";
39920 }
39921 def V6_vmpyiwb_acc_128B : HInst<
39922 (outs VectorRegs128B:$Vx32),
39923 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39924 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
39925 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
39926 let Inst{7-5} = 0b010;
39927 let Inst{13-13} = 0b1;
39928 let Inst{31-21} = 0b00011001010;
39929 let hasNewValue = 1;
39930 let opNewValue = 0;
39931 let isAccumulator = 1;
39932 let DecoderNamespace = "EXT_mmvec";
39933 let isCodeGenOnly = 1;
39934 let Constraints = "$Vx32 = $Vx32in";
39935 }
39936 def V6_vmpyiwb_acc_alt : HInst<
39937 (outs VectorRegs:$Vx32),
39938 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
39939 "$Vx32 += vmpyiwb($Vu32,$Rt32)",
39940 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39941 let hasNewValue = 1;
39942 let opNewValue = 0;
39943 let isAccumulator = 1;
39944 let isPseudo = 1;
39945 let isCodeGenOnly = 1;
39946 let DecoderNamespace = "EXT_mmvec";
39947 let Constraints = "$Vx32 = $Vx32in";
39948 }
39949 def V6_vmpyiwb_acc_alt_128B : HInst<
39950 (outs VectorRegs128B:$Vx32),
39951 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
39952 "$Vx32 += vmpyiwb($Vu32,$Rt32)",
39953 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39954 let hasNewValue = 1;
39955 let opNewValue = 0;
39956 let isAccumulator = 1;
39957 let isPseudo = 1;
39958 let isCodeGenOnly = 1;
39959 let DecoderNamespace = "EXT_mmvec";
39960 let isCodeGenOnly = 1;
39961 let Constraints = "$Vx32 = $Vx32in";
39962 }
39963 def V6_vmpyiwb_alt : HInst<
39964 (outs VectorRegs:$Vd32),
39965 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39966 "$Vd32 = vmpyiwb($Vu32,$Rt32)",
39967 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39968 let hasNewValue = 1;
39969 let opNewValue = 0;
39970 let isPseudo = 1;
39971 let isCodeGenOnly = 1;
39972 let DecoderNamespace = "EXT_mmvec";
39973 }
39974 def V6_vmpyiwb_alt_128B : HInst<
39975 (outs VectorRegs128B:$Vd32),
39976 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
39977 "$Vd32 = vmpyiwb($Vu32,$Rt32)",
39978 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
39979 let hasNewValue = 1;
39980 let opNewValue = 0;
39981 let isPseudo = 1;
39982 let isCodeGenOnly = 1;
39983 let DecoderNamespace = "EXT_mmvec";
39984 let isCodeGenOnly = 1;
39985 }
39986 def V6_vmpyiwh : HInst<
39987 (outs VectorRegs:$Vd32),
39988 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
39989 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
39990 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
39991 let Inst{7-5} = 0b111;
39992 let Inst{13-13} = 0b0;
39993 let Inst{31-21} = 0b00011001100;
39994 let hasNewValue = 1;
39995 let opNewValue = 0;
39996 let DecoderNamespace = "EXT_mmvec";
39997 }
39998 def V6_vmpyiwh_128B : HInst<
39999 (outs VectorRegs128B:$Vd32),
40000 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40001 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
40002 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
40003 let Inst{7-5} = 0b111;
40004 let Inst{13-13} = 0b0;
40005 let Inst{31-21} = 0b00011001100;
40006 let hasNewValue = 1;
40007 let opNewValue = 0;
40008 let DecoderNamespace = "EXT_mmvec";
40009 let isCodeGenOnly = 1;
40010 }
40011 def V6_vmpyiwh_acc : HInst<
40012 (outs VectorRegs:$Vx32),
40013 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40014 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
40015 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
40016 let Inst{7-5} = 0b011;
40017 let Inst{13-13} = 0b1;
40018 let Inst{31-21} = 0b00011001010;
40019 let hasNewValue = 1;
40020 let opNewValue = 0;
40021 let isAccumulator = 1;
40022 let DecoderNamespace = "EXT_mmvec";
40023 let Constraints = "$Vx32 = $Vx32in";
40024 }
40025 def V6_vmpyiwh_acc_128B : HInst<
40026 (outs VectorRegs128B:$Vx32),
40027 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40028 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
40029 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
40030 let Inst{7-5} = 0b011;
40031 let Inst{13-13} = 0b1;
40032 let Inst{31-21} = 0b00011001010;
40033 let hasNewValue = 1;
40034 let opNewValue = 0;
40035 let isAccumulator = 1;
40036 let DecoderNamespace = "EXT_mmvec";
40037 let isCodeGenOnly = 1;
40038 let Constraints = "$Vx32 = $Vx32in";
40039 }
40040 def V6_vmpyiwh_acc_alt : HInst<
40041 (outs VectorRegs:$Vx32),
40042 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40043 "$Vx32 += vmpyiwh($Vu32,$Rt32)",
40044 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40045 let hasNewValue = 1;
40046 let opNewValue = 0;
40047 let isAccumulator = 1;
40048 let isPseudo = 1;
40049 let isCodeGenOnly = 1;
40050 let DecoderNamespace = "EXT_mmvec";
40051 let Constraints = "$Vx32 = $Vx32in";
40052 }
40053 def V6_vmpyiwh_acc_alt_128B : HInst<
40054 (outs VectorRegs128B:$Vx32),
40055 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40056 "$Vx32 += vmpyiwh($Vu32,$Rt32)",
40057 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40058 let hasNewValue = 1;
40059 let opNewValue = 0;
40060 let isAccumulator = 1;
40061 let isPseudo = 1;
40062 let isCodeGenOnly = 1;
40063 let DecoderNamespace = "EXT_mmvec";
40064 let isCodeGenOnly = 1;
40065 let Constraints = "$Vx32 = $Vx32in";
40066 }
40067 def V6_vmpyiwh_alt : HInst<
40068 (outs VectorRegs:$Vd32),
40069 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40070 "$Vd32 = vmpyiwh($Vu32,$Rt32)",
40071 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40072 let hasNewValue = 1;
40073 let opNewValue = 0;
40074 let isPseudo = 1;
40075 let isCodeGenOnly = 1;
40076 let DecoderNamespace = "EXT_mmvec";
40077 }
40078 def V6_vmpyiwh_alt_128B : HInst<
40079 (outs VectorRegs128B:$Vd32),
40080 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40081 "$Vd32 = vmpyiwh($Vu32,$Rt32)",
40082 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40083 let hasNewValue = 1;
40084 let opNewValue = 0;
40085 let isPseudo = 1;
40086 let isCodeGenOnly = 1;
40087 let DecoderNamespace = "EXT_mmvec";
40088 let isCodeGenOnly = 1;
40089 }
40090 def V6_vmpyiwub : HInst<
40091 (outs VectorRegs:$Vd32),
40092 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40093 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
40094 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
40095 let Inst{7-5} = 0b110;
40096 let Inst{13-13} = 0b0;
40097 let Inst{31-21} = 0b00011001100;
40098 let hasNewValue = 1;
40099 let opNewValue = 0;
40100 let DecoderNamespace = "EXT_mmvec";
40101 }
40102 def V6_vmpyiwub_128B : HInst<
40103 (outs VectorRegs128B:$Vd32),
40104 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40105 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
40106 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV62T,UseHVX]> {
40107 let Inst{7-5} = 0b110;
40108 let Inst{13-13} = 0b0;
40109 let Inst{31-21} = 0b00011001100;
40110 let hasNewValue = 1;
40111 let opNewValue = 0;
40112 let DecoderNamespace = "EXT_mmvec";
40113 let isCodeGenOnly = 1;
40114 }
40115 def V6_vmpyiwub_acc : HInst<
40116 (outs VectorRegs:$Vx32),
40117 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40118 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
40119 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV62T,UseHVX]> {
40120 let Inst{7-5} = 0b001;
40121 let Inst{13-13} = 0b1;
40122 let Inst{31-21} = 0b00011001100;
40123 let hasNewValue = 1;
40124 let opNewValue = 0;
40125 let isAccumulator = 1;
40126 let DecoderNamespace = "EXT_mmvec";
40127 let Constraints = "$Vx32 = $Vx32in";
40128 }
40129 def V6_vmpyiwub_acc_128B : HInst<
40130 (outs VectorRegs128B:$Vx32),
40131 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40132 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
40133 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV62T,UseHVX]> {
40134 let Inst{7-5} = 0b001;
40135 let Inst{13-13} = 0b1;
40136 let Inst{31-21} = 0b00011001100;
40137 let hasNewValue = 1;
40138 let opNewValue = 0;
40139 let isAccumulator = 1;
40140 let DecoderNamespace = "EXT_mmvec";
40141 let isCodeGenOnly = 1;
40142 let Constraints = "$Vx32 = $Vx32in";
40143 }
40144 def V6_vmpyiwub_acc_alt : HInst<
40145 (outs VectorRegs:$Vx32),
40146 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40147 "$Vx32 += vmpyiwub($Vu32,$Rt32)",
40148 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
40149 let hasNewValue = 1;
40150 let opNewValue = 0;
40151 let isAccumulator = 1;
40152 let isPseudo = 1;
40153 let isCodeGenOnly = 1;
40154 let DecoderNamespace = "EXT_mmvec";
40155 let Constraints = "$Vx32 = $Vx32in";
40156 }
40157 def V6_vmpyiwub_acc_alt_128B : HInst<
40158 (outs VectorRegs128B:$Vx32),
40159 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40160 "$Vx32 += vmpyiwub($Vu32,$Rt32)",
40161 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
40162 let hasNewValue = 1;
40163 let opNewValue = 0;
40164 let isAccumulator = 1;
40165 let isPseudo = 1;
40166 let isCodeGenOnly = 1;
40167 let DecoderNamespace = "EXT_mmvec";
40168 let isCodeGenOnly = 1;
40169 let Constraints = "$Vx32 = $Vx32in";
40170 }
40171 def V6_vmpyiwub_alt : HInst<
40172 (outs VectorRegs:$Vd32),
40173 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40174 "$Vd32 = vmpyiwub($Vu32,$Rt32)",
40175 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
40176 let hasNewValue = 1;
40177 let opNewValue = 0;
40178 let isPseudo = 1;
40179 let isCodeGenOnly = 1;
40180 let DecoderNamespace = "EXT_mmvec";
40181 }
40182 def V6_vmpyiwub_alt_128B : HInst<
40183 (outs VectorRegs128B:$Vd32),
40184 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40185 "$Vd32 = vmpyiwub($Vu32,$Rt32)",
40186 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
40187 let hasNewValue = 1;
40188 let opNewValue = 0;
40189 let isPseudo = 1;
40190 let isCodeGenOnly = 1;
40191 let DecoderNamespace = "EXT_mmvec";
40192 let isCodeGenOnly = 1;
40193 }
40194 def V6_vmpyowh : HInst<
40195 (outs VectorRegs:$Vd32),
40196 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40197 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
40198 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40199 let Inst{7-5} = 0b111;
40200 let Inst{13-13} = 0b0;
40201 let Inst{31-21} = 0b00011111111;
40202 let hasNewValue = 1;
40203 let opNewValue = 0;
40204 let DecoderNamespace = "EXT_mmvec";
40205 }
40206 def V6_vmpyowh_128B : HInst<
40207 (outs VectorRegs128B:$Vd32),
40208 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40209 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
40210 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40211 let Inst{7-5} = 0b111;
40212 let Inst{13-13} = 0b0;
40213 let Inst{31-21} = 0b00011111111;
40214 let hasNewValue = 1;
40215 let opNewValue = 0;
40216 let DecoderNamespace = "EXT_mmvec";
40217 let isCodeGenOnly = 1;
40218 }
40219 def V6_vmpyowh_64_acc : HInst<
40220 (outs VecDblRegs:$Vxx32),
40221 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40222 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
40223 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
40224 let Inst{7-5} = 0b011;
40225 let Inst{13-13} = 0b1;
40226 let Inst{31-21} = 0b00011100001;
40227 let hasNewValue = 1;
40228 let opNewValue = 0;
40229 let isAccumulator = 1;
40230 let DecoderNamespace = "EXT_mmvec";
40231 let Constraints = "$Vxx32 = $Vxx32in";
40232 }
40233 def V6_vmpyowh_64_acc_128B : HInst<
40234 (outs VecDblRegs128B:$Vxx32),
40235 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40236 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
40237 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV62T,UseHVX]> {
40238 let Inst{7-5} = 0b011;
40239 let Inst{13-13} = 0b1;
40240 let Inst{31-21} = 0b00011100001;
40241 let hasNewValue = 1;
40242 let opNewValue = 0;
40243 let isAccumulator = 1;
40244 let DecoderNamespace = "EXT_mmvec";
40245 let isCodeGenOnly = 1;
40246 let Constraints = "$Vxx32 = $Vxx32in";
40247 }
40248 def V6_vmpyowh_alt : HInst<
40249 (outs VectorRegs:$Vd32),
40250 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40251 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
40252 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40253 let hasNewValue = 1;
40254 let opNewValue = 0;
40255 let isPseudo = 1;
40256 let isCodeGenOnly = 1;
40257 let DecoderNamespace = "EXT_mmvec";
40258 }
40259 def V6_vmpyowh_alt_128B : HInst<
40260 (outs VectorRegs128B:$Vd32),
40261 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40262 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
40263 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40264 let hasNewValue = 1;
40265 let opNewValue = 0;
40266 let isPseudo = 1;
40267 let isCodeGenOnly = 1;
40268 let DecoderNamespace = "EXT_mmvec";
40269 let isCodeGenOnly = 1;
40270 }
40271 def V6_vmpyowh_rnd : HInst<
40272 (outs VectorRegs:$Vd32),
40273 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40274 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
40275 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40276 let Inst{7-5} = 0b000;
40277 let Inst{13-13} = 0b0;
40278 let Inst{31-21} = 0b00011111010;
40279 let hasNewValue = 1;
40280 let opNewValue = 0;
40281 let DecoderNamespace = "EXT_mmvec";
40282 }
40283 def V6_vmpyowh_rnd_128B : HInst<
40284 (outs VectorRegs128B:$Vd32),
40285 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40286 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
40287 tc_eda67dcd, TypeCVI_VX_DV>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40288 let Inst{7-5} = 0b000;
40289 let Inst{13-13} = 0b0;
40290 let Inst{31-21} = 0b00011111010;
40291 let hasNewValue = 1;
40292 let opNewValue = 0;
40293 let DecoderNamespace = "EXT_mmvec";
40294 let isCodeGenOnly = 1;
40295 }
40296 def V6_vmpyowh_rnd_alt : HInst<
40297 (outs VectorRegs:$Vd32),
40298 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40299 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
40300 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40301 let hasNewValue = 1;
40302 let opNewValue = 0;
40303 let isPseudo = 1;
40304 let isCodeGenOnly = 1;
40305 let DecoderNamespace = "EXT_mmvec";
40306 }
40307 def V6_vmpyowh_rnd_alt_128B : HInst<
40308 (outs VectorRegs128B:$Vd32),
40309 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40310 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
40311 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40312 let hasNewValue = 1;
40313 let opNewValue = 0;
40314 let isPseudo = 1;
40315 let isCodeGenOnly = 1;
40316 let DecoderNamespace = "EXT_mmvec";
40317 let isCodeGenOnly = 1;
40318 }
40319 def V6_vmpyowh_rnd_sacc : HInst<
40320 (outs VectorRegs:$Vx32),
40321 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40322 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
40323 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
40324 let Inst{7-5} = 0b111;
40325 let Inst{13-13} = 0b1;
40326 let Inst{31-21} = 0b00011100001;
40327 let hasNewValue = 1;
40328 let opNewValue = 0;
40329 let isAccumulator = 1;
40330 let DecoderNamespace = "EXT_mmvec";
40331 let Constraints = "$Vx32 = $Vx32in";
40332 }
40333 def V6_vmpyowh_rnd_sacc_128B : HInst<
40334 (outs VectorRegs128B:$Vx32),
40335 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40336 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
40337 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
40338 let Inst{7-5} = 0b111;
40339 let Inst{13-13} = 0b1;
40340 let Inst{31-21} = 0b00011100001;
40341 let hasNewValue = 1;
40342 let opNewValue = 0;
40343 let isAccumulator = 1;
40344 let DecoderNamespace = "EXT_mmvec";
40345 let isCodeGenOnly = 1;
40346 let Constraints = "$Vx32 = $Vx32in";
40347 }
40348 def V6_vmpyowh_rnd_sacc_alt : HInst<
40349 (outs VectorRegs:$Vx32),
40350 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40351 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
40352 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40353 let hasNewValue = 1;
40354 let opNewValue = 0;
40355 let isAccumulator = 1;
40356 let isPseudo = 1;
40357 let DecoderNamespace = "EXT_mmvec";
40358 let Constraints = "$Vx32 = $Vx32in";
40359 }
40360 def V6_vmpyowh_rnd_sacc_alt_128B : HInst<
40361 (outs VectorRegs128B:$Vx32),
40362 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40363 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
40364 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40365 let hasNewValue = 1;
40366 let opNewValue = 0;
40367 let isAccumulator = 1;
40368 let isPseudo = 1;
40369 let DecoderNamespace = "EXT_mmvec";
40370 let isCodeGenOnly = 1;
40371 let Constraints = "$Vx32 = $Vx32in";
40372 }
40373 def V6_vmpyowh_sacc : HInst<
40374 (outs VectorRegs:$Vx32),
40375 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40376 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
40377 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
40378 let Inst{7-5} = 0b110;
40379 let Inst{13-13} = 0b1;
40380 let Inst{31-21} = 0b00011100001;
40381 let hasNewValue = 1;
40382 let opNewValue = 0;
40383 let isAccumulator = 1;
40384 let DecoderNamespace = "EXT_mmvec";
40385 let Constraints = "$Vx32 = $Vx32in";
40386 }
40387 def V6_vmpyowh_sacc_128B : HInst<
40388 (outs VectorRegs128B:$Vx32),
40389 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40390 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
40391 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
40392 let Inst{7-5} = 0b110;
40393 let Inst{13-13} = 0b1;
40394 let Inst{31-21} = 0b00011100001;
40395 let hasNewValue = 1;
40396 let opNewValue = 0;
40397 let isAccumulator = 1;
40398 let DecoderNamespace = "EXT_mmvec";
40399 let isCodeGenOnly = 1;
40400 let Constraints = "$Vx32 = $Vx32in";
40401 }
40402 def V6_vmpyowh_sacc_alt : HInst<
40403 (outs VectorRegs:$Vx32),
40404 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40405 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
40406 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40407 let hasNewValue = 1;
40408 let opNewValue = 0;
40409 let isAccumulator = 1;
40410 let isPseudo = 1;
40411 let DecoderNamespace = "EXT_mmvec";
40412 let Constraints = "$Vx32 = $Vx32in";
40413 }
40414 def V6_vmpyowh_sacc_alt_128B : HInst<
40415 (outs VectorRegs128B:$Vx32),
40416 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40417 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
40418 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40419 let hasNewValue = 1;
40420 let opNewValue = 0;
40421 let isAccumulator = 1;
40422 let isPseudo = 1;
40423 let DecoderNamespace = "EXT_mmvec";
40424 let isCodeGenOnly = 1;
40425 let Constraints = "$Vx32 = $Vx32in";
40426 }
40427 def V6_vmpyub : HInst<
40428 (outs VecDblRegs:$Vdd32),
40429 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40430 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
40431 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
40432 let Inst{7-5} = 0b000;
40433 let Inst{13-13} = 0b0;
40434 let Inst{31-21} = 0b00011001110;
40435 let hasNewValue = 1;
40436 let opNewValue = 0;
40437 let DecoderNamespace = "EXT_mmvec";
40438 }
40439 def V6_vmpyub_128B : HInst<
40440 (outs VecDblRegs128B:$Vdd32),
40441 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40442 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
40443 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
40444 let Inst{7-5} = 0b000;
40445 let Inst{13-13} = 0b0;
40446 let Inst{31-21} = 0b00011001110;
40447 let hasNewValue = 1;
40448 let opNewValue = 0;
40449 let DecoderNamespace = "EXT_mmvec";
40450 let isCodeGenOnly = 1;
40451 }
40452 def V6_vmpyub_acc : HInst<
40453 (outs VecDblRegs:$Vxx32),
40454 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40455 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
40456 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
40457 let Inst{7-5} = 0b000;
40458 let Inst{13-13} = 0b1;
40459 let Inst{31-21} = 0b00011001100;
40460 let hasNewValue = 1;
40461 let opNewValue = 0;
40462 let isAccumulator = 1;
40463 let DecoderNamespace = "EXT_mmvec";
40464 let Constraints = "$Vxx32 = $Vxx32in";
40465 }
40466 def V6_vmpyub_acc_128B : HInst<
40467 (outs VecDblRegs128B:$Vxx32),
40468 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40469 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
40470 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
40471 let Inst{7-5} = 0b000;
40472 let Inst{13-13} = 0b1;
40473 let Inst{31-21} = 0b00011001100;
40474 let hasNewValue = 1;
40475 let opNewValue = 0;
40476 let isAccumulator = 1;
40477 let DecoderNamespace = "EXT_mmvec";
40478 let isCodeGenOnly = 1;
40479 let Constraints = "$Vxx32 = $Vxx32in";
40480 }
40481 def V6_vmpyub_acc_alt : HInst<
40482 (outs VecDblRegs:$Vxx32),
40483 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40484 "$Vxx32 += vmpyub($Vu32,$Rt32)",
40485 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40486 let hasNewValue = 1;
40487 let opNewValue = 0;
40488 let isAccumulator = 1;
40489 let isPseudo = 1;
40490 let isCodeGenOnly = 1;
40491 let DecoderNamespace = "EXT_mmvec";
40492 let Constraints = "$Vxx32 = $Vxx32in";
40493 }
40494 def V6_vmpyub_acc_alt_128B : HInst<
40495 (outs VecDblRegs128B:$Vxx32),
40496 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40497 "$Vxx32 += vmpyub($Vu32,$Rt32)",
40498 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40499 let hasNewValue = 1;
40500 let opNewValue = 0;
40501 let isAccumulator = 1;
40502 let isPseudo = 1;
40503 let isCodeGenOnly = 1;
40504 let DecoderNamespace = "EXT_mmvec";
40505 let isCodeGenOnly = 1;
40506 let Constraints = "$Vxx32 = $Vxx32in";
40507 }
40508 def V6_vmpyub_alt : HInst<
40509 (outs VecDblRegs:$Vdd32),
40510 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40511 "$Vdd32 = vmpyub($Vu32,$Rt32)",
40512 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40513 let hasNewValue = 1;
40514 let opNewValue = 0;
40515 let isPseudo = 1;
40516 let isCodeGenOnly = 1;
40517 let DecoderNamespace = "EXT_mmvec";
40518 }
40519 def V6_vmpyub_alt_128B : HInst<
40520 (outs VecDblRegs128B:$Vdd32),
40521 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40522 "$Vdd32 = vmpyub($Vu32,$Rt32)",
40523 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40524 let hasNewValue = 1;
40525 let opNewValue = 0;
40526 let isPseudo = 1;
40527 let isCodeGenOnly = 1;
40528 let DecoderNamespace = "EXT_mmvec";
40529 let isCodeGenOnly = 1;
40530 }
40531 def V6_vmpyubv : HInst<
40532 (outs VecDblRegs:$Vdd32),
40533 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40534 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
40535 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
40536 let Inst{7-5} = 0b101;
40537 let Inst{13-13} = 0b0;
40538 let Inst{31-21} = 0b00011100000;
40539 let hasNewValue = 1;
40540 let opNewValue = 0;
40541 let DecoderNamespace = "EXT_mmvec";
40542 }
40543 def V6_vmpyubv_128B : HInst<
40544 (outs VecDblRegs128B:$Vdd32),
40545 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40546 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
40547 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
40548 let Inst{7-5} = 0b101;
40549 let Inst{13-13} = 0b0;
40550 let Inst{31-21} = 0b00011100000;
40551 let hasNewValue = 1;
40552 let opNewValue = 0;
40553 let DecoderNamespace = "EXT_mmvec";
40554 let isCodeGenOnly = 1;
40555 }
40556 def V6_vmpyubv_acc : HInst<
40557 (outs VecDblRegs:$Vxx32),
40558 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40559 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
40560 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
40561 let Inst{7-5} = 0b101;
40562 let Inst{13-13} = 0b1;
40563 let Inst{31-21} = 0b00011100000;
40564 let hasNewValue = 1;
40565 let opNewValue = 0;
40566 let isAccumulator = 1;
40567 let DecoderNamespace = "EXT_mmvec";
40568 let Constraints = "$Vxx32 = $Vxx32in";
40569 }
40570 def V6_vmpyubv_acc_128B : HInst<
40571 (outs VecDblRegs128B:$Vxx32),
40572 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40573 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
40574 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
40575 let Inst{7-5} = 0b101;
40576 let Inst{13-13} = 0b1;
40577 let Inst{31-21} = 0b00011100000;
40578 let hasNewValue = 1;
40579 let opNewValue = 0;
40580 let isAccumulator = 1;
40581 let DecoderNamespace = "EXT_mmvec";
40582 let isCodeGenOnly = 1;
40583 let Constraints = "$Vxx32 = $Vxx32in";
40584 }
40585 def V6_vmpyubv_acc_alt : HInst<
40586 (outs VecDblRegs:$Vxx32),
40587 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40588 "$Vxx32 += vmpyub($Vu32,$Vv32)",
40589 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40590 let hasNewValue = 1;
40591 let opNewValue = 0;
40592 let isAccumulator = 1;
40593 let isPseudo = 1;
40594 let isCodeGenOnly = 1;
40595 let DecoderNamespace = "EXT_mmvec";
40596 let Constraints = "$Vxx32 = $Vxx32in";
40597 }
40598 def V6_vmpyubv_acc_alt_128B : HInst<
40599 (outs VecDblRegs128B:$Vxx32),
40600 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40601 "$Vxx32 += vmpyub($Vu32,$Vv32)",
40602 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40603 let hasNewValue = 1;
40604 let opNewValue = 0;
40605 let isAccumulator = 1;
40606 let isPseudo = 1;
40607 let isCodeGenOnly = 1;
40608 let DecoderNamespace = "EXT_mmvec";
40609 let isCodeGenOnly = 1;
40610 let Constraints = "$Vxx32 = $Vxx32in";
40611 }
40612 def V6_vmpyubv_alt : HInst<
40613 (outs VecDblRegs:$Vdd32),
40614 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40615 "$Vdd32 = vmpyub($Vu32,$Vv32)",
40616 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40617 let hasNewValue = 1;
40618 let opNewValue = 0;
40619 let isPseudo = 1;
40620 let isCodeGenOnly = 1;
40621 let DecoderNamespace = "EXT_mmvec";
40622 }
40623 def V6_vmpyubv_alt_128B : HInst<
40624 (outs VecDblRegs128B:$Vdd32),
40625 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40626 "$Vdd32 = vmpyub($Vu32,$Vv32)",
40627 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40628 let hasNewValue = 1;
40629 let opNewValue = 0;
40630 let isPseudo = 1;
40631 let isCodeGenOnly = 1;
40632 let DecoderNamespace = "EXT_mmvec";
40633 let isCodeGenOnly = 1;
40634 }
40635 def V6_vmpyuh : HInst<
40636 (outs VecDblRegs:$Vdd32),
40637 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40638 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
40639 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
40640 let Inst{7-5} = 0b011;
40641 let Inst{13-13} = 0b0;
40642 let Inst{31-21} = 0b00011001010;
40643 let hasNewValue = 1;
40644 let opNewValue = 0;
40645 let DecoderNamespace = "EXT_mmvec";
40646 }
40647 def V6_vmpyuh_128B : HInst<
40648 (outs VecDblRegs128B:$Vdd32),
40649 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40650 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
40651 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[HasV60T,UseHVX]> {
40652 let Inst{7-5} = 0b011;
40653 let Inst{13-13} = 0b0;
40654 let Inst{31-21} = 0b00011001010;
40655 let hasNewValue = 1;
40656 let opNewValue = 0;
40657 let DecoderNamespace = "EXT_mmvec";
40658 let isCodeGenOnly = 1;
40659 }
40660 def V6_vmpyuh_acc : HInst<
40661 (outs VecDblRegs:$Vxx32),
40662 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40663 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
40664 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
40665 let Inst{7-5} = 0b001;
40666 let Inst{13-13} = 0b1;
40667 let Inst{31-21} = 0b00011001010;
40668 let hasNewValue = 1;
40669 let opNewValue = 0;
40670 let isAccumulator = 1;
40671 let DecoderNamespace = "EXT_mmvec";
40672 let Constraints = "$Vxx32 = $Vxx32in";
40673 }
40674 def V6_vmpyuh_acc_128B : HInst<
40675 (outs VecDblRegs128B:$Vxx32),
40676 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40677 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
40678 tc_d98f4d63, TypeCVI_VX_DV>, Enc_5e8512, Requires<[HasV60T,UseHVX]> {
40679 let Inst{7-5} = 0b001;
40680 let Inst{13-13} = 0b1;
40681 let Inst{31-21} = 0b00011001010;
40682 let hasNewValue = 1;
40683 let opNewValue = 0;
40684 let isAccumulator = 1;
40685 let DecoderNamespace = "EXT_mmvec";
40686 let isCodeGenOnly = 1;
40687 let Constraints = "$Vxx32 = $Vxx32in";
40688 }
40689 def V6_vmpyuh_acc_alt : HInst<
40690 (outs VecDblRegs:$Vxx32),
40691 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
40692 "$Vxx32 += vmpyuh($Vu32,$Rt32)",
40693 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40694 let hasNewValue = 1;
40695 let opNewValue = 0;
40696 let isAccumulator = 1;
40697 let isPseudo = 1;
40698 let isCodeGenOnly = 1;
40699 let DecoderNamespace = "EXT_mmvec";
40700 let Constraints = "$Vxx32 = $Vxx32in";
40701 }
40702 def V6_vmpyuh_acc_alt_128B : HInst<
40703 (outs VecDblRegs128B:$Vxx32),
40704 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
40705 "$Vxx32 += vmpyuh($Vu32,$Rt32)",
40706 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40707 let hasNewValue = 1;
40708 let opNewValue = 0;
40709 let isAccumulator = 1;
40710 let isPseudo = 1;
40711 let isCodeGenOnly = 1;
40712 let DecoderNamespace = "EXT_mmvec";
40713 let isCodeGenOnly = 1;
40714 let Constraints = "$Vxx32 = $Vxx32in";
40715 }
40716 def V6_vmpyuh_alt : HInst<
40717 (outs VecDblRegs:$Vdd32),
40718 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
40719 "$Vdd32 = vmpyuh($Vu32,$Rt32)",
40720 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40721 let hasNewValue = 1;
40722 let opNewValue = 0;
40723 let isPseudo = 1;
40724 let isCodeGenOnly = 1;
40725 let DecoderNamespace = "EXT_mmvec";
40726 }
40727 def V6_vmpyuh_alt_128B : HInst<
40728 (outs VecDblRegs128B:$Vdd32),
40729 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
40730 "$Vdd32 = vmpyuh($Vu32,$Rt32)",
40731 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40732 let hasNewValue = 1;
40733 let opNewValue = 0;
40734 let isPseudo = 1;
40735 let isCodeGenOnly = 1;
40736 let DecoderNamespace = "EXT_mmvec";
40737 let isCodeGenOnly = 1;
40738 }
40739 def V6_vmpyuhv : HInst<
40740 (outs VecDblRegs:$Vdd32),
40741 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40742 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
40743 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
40744 let Inst{7-5} = 0b000;
40745 let Inst{13-13} = 0b0;
40746 let Inst{31-21} = 0b00011100001;
40747 let hasNewValue = 1;
40748 let opNewValue = 0;
40749 let DecoderNamespace = "EXT_mmvec";
40750 }
40751 def V6_vmpyuhv_128B : HInst<
40752 (outs VecDblRegs128B:$Vdd32),
40753 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40754 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
40755 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
40756 let Inst{7-5} = 0b000;
40757 let Inst{13-13} = 0b0;
40758 let Inst{31-21} = 0b00011100001;
40759 let hasNewValue = 1;
40760 let opNewValue = 0;
40761 let DecoderNamespace = "EXT_mmvec";
40762 let isCodeGenOnly = 1;
40763 }
40764 def V6_vmpyuhv_acc : HInst<
40765 (outs VecDblRegs:$Vxx32),
40766 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40767 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
40768 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
40769 let Inst{7-5} = 0b000;
40770 let Inst{13-13} = 0b1;
40771 let Inst{31-21} = 0b00011100001;
40772 let hasNewValue = 1;
40773 let opNewValue = 0;
40774 let isAccumulator = 1;
40775 let DecoderNamespace = "EXT_mmvec";
40776 let Constraints = "$Vxx32 = $Vxx32in";
40777 }
40778 def V6_vmpyuhv_acc_128B : HInst<
40779 (outs VecDblRegs128B:$Vxx32),
40780 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40781 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
40782 tc_e172d86a, TypeCVI_VX_DV>, Enc_3fc427, Requires<[HasV60T,UseHVX]> {
40783 let Inst{7-5} = 0b000;
40784 let Inst{13-13} = 0b1;
40785 let Inst{31-21} = 0b00011100001;
40786 let hasNewValue = 1;
40787 let opNewValue = 0;
40788 let isAccumulator = 1;
40789 let DecoderNamespace = "EXT_mmvec";
40790 let isCodeGenOnly = 1;
40791 let Constraints = "$Vxx32 = $Vxx32in";
40792 }
40793 def V6_vmpyuhv_acc_alt : HInst<
40794 (outs VecDblRegs:$Vxx32),
40795 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
40796 "$Vxx32 += vmpyuh($Vu32,$Vv32)",
40797 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40798 let hasNewValue = 1;
40799 let opNewValue = 0;
40800 let isAccumulator = 1;
40801 let isPseudo = 1;
40802 let isCodeGenOnly = 1;
40803 let DecoderNamespace = "EXT_mmvec";
40804 let Constraints = "$Vxx32 = $Vxx32in";
40805 }
40806 def V6_vmpyuhv_acc_alt_128B : HInst<
40807 (outs VecDblRegs128B:$Vxx32),
40808 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40809 "$Vxx32 += vmpyuh($Vu32,$Vv32)",
40810 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40811 let hasNewValue = 1;
40812 let opNewValue = 0;
40813 let isAccumulator = 1;
40814 let isPseudo = 1;
40815 let isCodeGenOnly = 1;
40816 let DecoderNamespace = "EXT_mmvec";
40817 let isCodeGenOnly = 1;
40818 let Constraints = "$Vxx32 = $Vxx32in";
40819 }
40820 def V6_vmpyuhv_alt : HInst<
40821 (outs VecDblRegs:$Vdd32),
40822 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40823 "$Vdd32 = vmpyuh($Vu32,$Vv32)",
40824 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40825 let hasNewValue = 1;
40826 let opNewValue = 0;
40827 let isPseudo = 1;
40828 let isCodeGenOnly = 1;
40829 let DecoderNamespace = "EXT_mmvec";
40830 }
40831 def V6_vmpyuhv_alt_128B : HInst<
40832 (outs VecDblRegs128B:$Vdd32),
40833 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40834 "$Vdd32 = vmpyuh($Vu32,$Vv32)",
40835 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40836 let hasNewValue = 1;
40837 let opNewValue = 0;
40838 let isPseudo = 1;
40839 let isCodeGenOnly = 1;
40840 let DecoderNamespace = "EXT_mmvec";
40841 let isCodeGenOnly = 1;
40842 }
40843 def V6_vmux : HInst<
40844 (outs VectorRegs:$Vd32),
40845 (ins VecPredRegs:$Qt4, VectorRegs:$Vu32, VectorRegs:$Vv32),
40846 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
40847 tc_a3127e12, TypeCVI_VA>, Enc_31db33, Requires<[HasV60T,UseHVX]> {
40848 let Inst{7-7} = 0b0;
40849 let Inst{13-13} = 0b1;
40850 let Inst{31-21} = 0b00011110111;
40851 let hasNewValue = 1;
40852 let opNewValue = 0;
40853 let DecoderNamespace = "EXT_mmvec";
40854 }
40855 def V6_vmux_128B : HInst<
40856 (outs VectorRegs128B:$Vd32),
40857 (ins VecPredRegs128B:$Qt4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40858 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
40859 tc_a3127e12, TypeCVI_VA>, Enc_31db33, Requires<[HasV60T,UseHVX]> {
40860 let Inst{7-7} = 0b0;
40861 let Inst{13-13} = 0b1;
40862 let Inst{31-21} = 0b00011110111;
40863 let hasNewValue = 1;
40864 let opNewValue = 0;
40865 let DecoderNamespace = "EXT_mmvec";
40866 let isCodeGenOnly = 1;
40867 }
40868 def V6_vnavgh : HInst<
40869 (outs VectorRegs:$Vd32),
40870 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40871 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
40872 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40873 let Inst{7-5} = 0b001;
40874 let Inst{13-13} = 0b0;
40875 let Inst{31-21} = 0b00011100111;
40876 let hasNewValue = 1;
40877 let opNewValue = 0;
40878 let DecoderNamespace = "EXT_mmvec";
40879 }
40880 def V6_vnavgh_128B : HInst<
40881 (outs VectorRegs128B:$Vd32),
40882 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40883 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
40884 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40885 let Inst{7-5} = 0b001;
40886 let Inst{13-13} = 0b0;
40887 let Inst{31-21} = 0b00011100111;
40888 let hasNewValue = 1;
40889 let opNewValue = 0;
40890 let DecoderNamespace = "EXT_mmvec";
40891 let isCodeGenOnly = 1;
40892 }
40893 def V6_vnavgh_alt : HInst<
40894 (outs VectorRegs:$Vd32),
40895 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40896 "$Vd32 = vnavgh($Vu32,$Vv32)",
40897 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40898 let hasNewValue = 1;
40899 let opNewValue = 0;
40900 let isPseudo = 1;
40901 let isCodeGenOnly = 1;
40902 let DecoderNamespace = "EXT_mmvec";
40903 }
40904 def V6_vnavgh_alt_128B : HInst<
40905 (outs VectorRegs128B:$Vd32),
40906 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40907 "$Vd32 = vnavgh($Vu32,$Vv32)",
40908 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40909 let hasNewValue = 1;
40910 let opNewValue = 0;
40911 let isPseudo = 1;
40912 let isCodeGenOnly = 1;
40913 let DecoderNamespace = "EXT_mmvec";
40914 let isCodeGenOnly = 1;
40915 }
40916 def V6_vnavgub : HInst<
40917 (outs VectorRegs:$Vd32),
40918 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40919 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
40920 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40921 let Inst{7-5} = 0b000;
40922 let Inst{13-13} = 0b0;
40923 let Inst{31-21} = 0b00011100111;
40924 let hasNewValue = 1;
40925 let opNewValue = 0;
40926 let DecoderNamespace = "EXT_mmvec";
40927 }
40928 def V6_vnavgub_128B : HInst<
40929 (outs VectorRegs128B:$Vd32),
40930 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40931 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
40932 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40933 let Inst{7-5} = 0b000;
40934 let Inst{13-13} = 0b0;
40935 let Inst{31-21} = 0b00011100111;
40936 let hasNewValue = 1;
40937 let opNewValue = 0;
40938 let DecoderNamespace = "EXT_mmvec";
40939 let isCodeGenOnly = 1;
40940 }
40941 def V6_vnavgub_alt : HInst<
40942 (outs VectorRegs:$Vd32),
40943 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40944 "$Vd32 = vnavgub($Vu32,$Vv32)",
40945 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40946 let hasNewValue = 1;
40947 let opNewValue = 0;
40948 let isPseudo = 1;
40949 let isCodeGenOnly = 1;
40950 let DecoderNamespace = "EXT_mmvec";
40951 }
40952 def V6_vnavgub_alt_128B : HInst<
40953 (outs VectorRegs128B:$Vd32),
40954 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40955 "$Vd32 = vnavgub($Vu32,$Vv32)",
40956 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40957 let hasNewValue = 1;
40958 let opNewValue = 0;
40959 let isPseudo = 1;
40960 let isCodeGenOnly = 1;
40961 let DecoderNamespace = "EXT_mmvec";
40962 let isCodeGenOnly = 1;
40963 }
40964 def V6_vnavgw : HInst<
40965 (outs VectorRegs:$Vd32),
40966 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40967 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
40968 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40969 let Inst{7-5} = 0b010;
40970 let Inst{13-13} = 0b0;
40971 let Inst{31-21} = 0b00011100111;
40972 let hasNewValue = 1;
40973 let opNewValue = 0;
40974 let DecoderNamespace = "EXT_mmvec";
40975 }
40976 def V6_vnavgw_128B : HInst<
40977 (outs VectorRegs128B:$Vd32),
40978 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
40979 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
40980 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
40981 let Inst{7-5} = 0b010;
40982 let Inst{13-13} = 0b0;
40983 let Inst{31-21} = 0b00011100111;
40984 let hasNewValue = 1;
40985 let opNewValue = 0;
40986 let DecoderNamespace = "EXT_mmvec";
40987 let isCodeGenOnly = 1;
40988 }
40989 def V6_vnavgw_alt : HInst<
40990 (outs VectorRegs:$Vd32),
40991 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
40992 "$Vd32 = vnavgw($Vu32,$Vv32)",
40993 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
40994 let hasNewValue = 1;
40995 let opNewValue = 0;
40996 let isPseudo = 1;
40997 let isCodeGenOnly = 1;
40998 let DecoderNamespace = "EXT_mmvec";
40999 }
41000 def V6_vnavgw_alt_128B : HInst<
41001 (outs VectorRegs128B:$Vd32),
41002 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41003 "$Vd32 = vnavgw($Vu32,$Vv32)",
41004 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41005 let hasNewValue = 1;
41006 let opNewValue = 0;
41007 let isPseudo = 1;
41008 let isCodeGenOnly = 1;
41009 let DecoderNamespace = "EXT_mmvec";
41010 let isCodeGenOnly = 1;
41011 }
41012 def V6_vnccombine : HInst<
41013 (outs VecDblRegs:$Vdd32),
41014 (ins PredRegs:$Ps4, VectorRegs:$Vu32, VectorRegs:$Vv32),
41015 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
41016 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
41017 let Inst{7-7} = 0b0;
41018 let Inst{13-13} = 0b0;
41019 let Inst{31-21} = 0b00011010010;
41020 let isPredicated = 1;
41021 let isPredicatedFalse = 1;
41022 let hasNewValue = 1;
41023 let opNewValue = 0;
41024 let DecoderNamespace = "EXT_mmvec";
41025 }
41026 def V6_vnccombine_128B : HInst<
41027 (outs VecDblRegs128B:$Vdd32),
41028 (ins PredRegs:$Ps4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41029 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
41030 tc_2171ebae, TypeCVI_VA_DV>, Enc_8c2412, Requires<[HasV60T,UseHVX]> {
41031 let Inst{7-7} = 0b0;
41032 let Inst{13-13} = 0b0;
41033 let Inst{31-21} = 0b00011010010;
41034 let isPredicated = 1;
41035 let isPredicatedFalse = 1;
41036 let hasNewValue = 1;
41037 let opNewValue = 0;
41038 let DecoderNamespace = "EXT_mmvec";
41039 let isCodeGenOnly = 1;
41040 }
41041 def V6_vncmov : HInst<
41042 (outs VectorRegs:$Vd32),
41043 (ins PredRegs:$Ps4, VectorRegs:$Vu32),
41044 "if (!$Ps4) $Vd32 = $Vu32",
41045 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
41046 let Inst{7-7} = 0b0;
41047 let Inst{13-13} = 0b0;
41048 let Inst{31-16} = 0b0001101000100000;
41049 let isPredicated = 1;
41050 let isPredicatedFalse = 1;
41051 let hasNewValue = 1;
41052 let opNewValue = 0;
41053 let DecoderNamespace = "EXT_mmvec";
41054 }
41055 def V6_vncmov_128B : HInst<
41056 (outs VectorRegs128B:$Vd32),
41057 (ins PredRegs:$Ps4, VectorRegs128B:$Vu32),
41058 "if (!$Ps4) $Vd32 = $Vu32",
41059 tc_b06ab583, TypeCVI_VA>, Enc_770858, Requires<[HasV60T,UseHVX]> {
41060 let Inst{7-7} = 0b0;
41061 let Inst{13-13} = 0b0;
41062 let Inst{31-16} = 0b0001101000100000;
41063 let isPredicated = 1;
41064 let isPredicatedFalse = 1;
41065 let hasNewValue = 1;
41066 let opNewValue = 0;
41067 let DecoderNamespace = "EXT_mmvec";
41068 let isCodeGenOnly = 1;
41069 }
41070 def V6_vnormamth : HInst<
41071 (outs VectorRegs:$Vd32),
41072 (ins VectorRegs:$Vu32),
41073 "$Vd32.h = vnormamt($Vu32.h)",
41074 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41075 let Inst{7-5} = 0b101;
41076 let Inst{13-13} = 0b0;
41077 let Inst{31-16} = 0b0001111000000011;
41078 let hasNewValue = 1;
41079 let opNewValue = 0;
41080 let DecoderNamespace = "EXT_mmvec";
41081 }
41082 def V6_vnormamth_128B : HInst<
41083 (outs VectorRegs128B:$Vd32),
41084 (ins VectorRegs128B:$Vu32),
41085 "$Vd32.h = vnormamt($Vu32.h)",
41086 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41087 let Inst{7-5} = 0b101;
41088 let Inst{13-13} = 0b0;
41089 let Inst{31-16} = 0b0001111000000011;
41090 let hasNewValue = 1;
41091 let opNewValue = 0;
41092 let DecoderNamespace = "EXT_mmvec";
41093 let isCodeGenOnly = 1;
41094 }
41095 def V6_vnormamth_alt : HInst<
41096 (outs VectorRegs:$Vd32),
41097 (ins VectorRegs:$Vu32),
41098 "$Vd32 = vnormamth($Vu32)",
41099 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41100 let hasNewValue = 1;
41101 let opNewValue = 0;
41102 let isPseudo = 1;
41103 let isCodeGenOnly = 1;
41104 let DecoderNamespace = "EXT_mmvec";
41105 }
41106 def V6_vnormamth_alt_128B : HInst<
41107 (outs VectorRegs128B:$Vd32),
41108 (ins VectorRegs128B:$Vu32),
41109 "$Vd32 = vnormamth($Vu32)",
41110 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41111 let hasNewValue = 1;
41112 let opNewValue = 0;
41113 let isPseudo = 1;
41114 let isCodeGenOnly = 1;
41115 let DecoderNamespace = "EXT_mmvec";
41116 let isCodeGenOnly = 1;
41117 }
41118 def V6_vnormamtw : HInst<
41119 (outs VectorRegs:$Vd32),
41120 (ins VectorRegs:$Vu32),
41121 "$Vd32.w = vnormamt($Vu32.w)",
41122 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41123 let Inst{7-5} = 0b100;
41124 let Inst{13-13} = 0b0;
41125 let Inst{31-16} = 0b0001111000000011;
41126 let hasNewValue = 1;
41127 let opNewValue = 0;
41128 let DecoderNamespace = "EXT_mmvec";
41129 }
41130 def V6_vnormamtw_128B : HInst<
41131 (outs VectorRegs128B:$Vd32),
41132 (ins VectorRegs128B:$Vu32),
41133 "$Vd32.w = vnormamt($Vu32.w)",
41134 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41135 let Inst{7-5} = 0b100;
41136 let Inst{13-13} = 0b0;
41137 let Inst{31-16} = 0b0001111000000011;
41138 let hasNewValue = 1;
41139 let opNewValue = 0;
41140 let DecoderNamespace = "EXT_mmvec";
41141 let isCodeGenOnly = 1;
41142 }
41143 def V6_vnormamtw_alt : HInst<
41144 (outs VectorRegs:$Vd32),
41145 (ins VectorRegs:$Vu32),
41146 "$Vd32 = vnormamtw($Vu32)",
41147 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41148 let hasNewValue = 1;
41149 let opNewValue = 0;
41150 let isPseudo = 1;
41151 let isCodeGenOnly = 1;
41152 let DecoderNamespace = "EXT_mmvec";
41153 }
41154 def V6_vnormamtw_alt_128B : HInst<
41155 (outs VectorRegs128B:$Vd32),
41156 (ins VectorRegs128B:$Vu32),
41157 "$Vd32 = vnormamtw($Vu32)",
41158 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41159 let hasNewValue = 1;
41160 let opNewValue = 0;
41161 let isPseudo = 1;
41162 let isCodeGenOnly = 1;
41163 let DecoderNamespace = "EXT_mmvec";
41164 let isCodeGenOnly = 1;
41165 }
41166 def V6_vnot : HInst<
41167 (outs VectorRegs:$Vd32),
41168 (ins VectorRegs:$Vu32),
41169 "$Vd32 = vnot($Vu32)",
41170 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41171 let Inst{7-5} = 0b100;
41172 let Inst{13-13} = 0b0;
41173 let Inst{31-16} = 0b0001111000000000;
41174 let hasNewValue = 1;
41175 let opNewValue = 0;
41176 let DecoderNamespace = "EXT_mmvec";
41177 }
41178 def V6_vnot_128B : HInst<
41179 (outs VectorRegs128B:$Vd32),
41180 (ins VectorRegs128B:$Vu32),
41181 "$Vd32 = vnot($Vu32)",
41182 tc_71337255, TypeCVI_VA>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41183 let Inst{7-5} = 0b100;
41184 let Inst{13-13} = 0b0;
41185 let Inst{31-16} = 0b0001111000000000;
41186 let hasNewValue = 1;
41187 let opNewValue = 0;
41188 let DecoderNamespace = "EXT_mmvec";
41189 let isCodeGenOnly = 1;
41190 }
41191 def V6_vor : HInst<
41192 (outs VectorRegs:$Vd32),
41193 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41194 "$Vd32 = vor($Vu32,$Vv32)",
41195 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41196 let Inst{7-5} = 0b110;
41197 let Inst{13-13} = 0b0;
41198 let Inst{31-21} = 0b00011100001;
41199 let hasNewValue = 1;
41200 let opNewValue = 0;
41201 let DecoderNamespace = "EXT_mmvec";
41202 }
41203 def V6_vor_128B : HInst<
41204 (outs VectorRegs128B:$Vd32),
41205 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41206 "$Vd32 = vor($Vu32,$Vv32)",
41207 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41208 let Inst{7-5} = 0b110;
41209 let Inst{13-13} = 0b0;
41210 let Inst{31-21} = 0b00011100001;
41211 let hasNewValue = 1;
41212 let opNewValue = 0;
41213 let DecoderNamespace = "EXT_mmvec";
41214 let isCodeGenOnly = 1;
41215 }
41216 def V6_vpackeb : HInst<
41217 (outs VectorRegs:$Vd32),
41218 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41219 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
41220 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41221 let Inst{7-5} = 0b010;
41222 let Inst{13-13} = 0b0;
41223 let Inst{31-21} = 0b00011111110;
41224 let hasNewValue = 1;
41225 let opNewValue = 0;
41226 let DecoderNamespace = "EXT_mmvec";
41227 }
41228 def V6_vpackeb_128B : HInst<
41229 (outs VectorRegs128B:$Vd32),
41230 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41231 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
41232 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41233 let Inst{7-5} = 0b010;
41234 let Inst{13-13} = 0b0;
41235 let Inst{31-21} = 0b00011111110;
41236 let hasNewValue = 1;
41237 let opNewValue = 0;
41238 let DecoderNamespace = "EXT_mmvec";
41239 let isCodeGenOnly = 1;
41240 }
41241 def V6_vpackeb_alt : HInst<
41242 (outs VectorRegs:$Vd32),
41243 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41244 "$Vd32 = vpackeb($Vu32,$Vv32)",
41245 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41246 let hasNewValue = 1;
41247 let opNewValue = 0;
41248 let isPseudo = 1;
41249 let isCodeGenOnly = 1;
41250 let DecoderNamespace = "EXT_mmvec";
41251 }
41252 def V6_vpackeb_alt_128B : HInst<
41253 (outs VectorRegs128B:$Vd32),
41254 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41255 "$Vd32 = vpackeb($Vu32,$Vv32)",
41256 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41257 let hasNewValue = 1;
41258 let opNewValue = 0;
41259 let isPseudo = 1;
41260 let isCodeGenOnly = 1;
41261 let DecoderNamespace = "EXT_mmvec";
41262 let isCodeGenOnly = 1;
41263 }
41264 def V6_vpackeh : HInst<
41265 (outs VectorRegs:$Vd32),
41266 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41267 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
41268 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41269 let Inst{7-5} = 0b011;
41270 let Inst{13-13} = 0b0;
41271 let Inst{31-21} = 0b00011111110;
41272 let hasNewValue = 1;
41273 let opNewValue = 0;
41274 let DecoderNamespace = "EXT_mmvec";
41275 }
41276 def V6_vpackeh_128B : HInst<
41277 (outs VectorRegs128B:$Vd32),
41278 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41279 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
41280 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41281 let Inst{7-5} = 0b011;
41282 let Inst{13-13} = 0b0;
41283 let Inst{31-21} = 0b00011111110;
41284 let hasNewValue = 1;
41285 let opNewValue = 0;
41286 let DecoderNamespace = "EXT_mmvec";
41287 let isCodeGenOnly = 1;
41288 }
41289 def V6_vpackeh_alt : HInst<
41290 (outs VectorRegs:$Vd32),
41291 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41292 "$Vd32 = vpackeh($Vu32,$Vv32)",
41293 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41294 let hasNewValue = 1;
41295 let opNewValue = 0;
41296 let isPseudo = 1;
41297 let isCodeGenOnly = 1;
41298 let DecoderNamespace = "EXT_mmvec";
41299 }
41300 def V6_vpackeh_alt_128B : HInst<
41301 (outs VectorRegs128B:$Vd32),
41302 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41303 "$Vd32 = vpackeh($Vu32,$Vv32)",
41304 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41305 let hasNewValue = 1;
41306 let opNewValue = 0;
41307 let isPseudo = 1;
41308 let isCodeGenOnly = 1;
41309 let DecoderNamespace = "EXT_mmvec";
41310 let isCodeGenOnly = 1;
41311 }
41312 def V6_vpackhb_sat : HInst<
41313 (outs VectorRegs:$Vd32),
41314 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41315 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
41316 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41317 let Inst{7-5} = 0b110;
41318 let Inst{13-13} = 0b0;
41319 let Inst{31-21} = 0b00011111110;
41320 let hasNewValue = 1;
41321 let opNewValue = 0;
41322 let DecoderNamespace = "EXT_mmvec";
41323 }
41324 def V6_vpackhb_sat_128B : HInst<
41325 (outs VectorRegs128B:$Vd32),
41326 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41327 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
41328 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41329 let Inst{7-5} = 0b110;
41330 let Inst{13-13} = 0b0;
41331 let Inst{31-21} = 0b00011111110;
41332 let hasNewValue = 1;
41333 let opNewValue = 0;
41334 let DecoderNamespace = "EXT_mmvec";
41335 let isCodeGenOnly = 1;
41336 }
41337 def V6_vpackhb_sat_alt : HInst<
41338 (outs VectorRegs:$Vd32),
41339 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41340 "$Vd32 = vpackhb($Vu32,$Vv32):sat",
41341 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41342 let hasNewValue = 1;
41343 let opNewValue = 0;
41344 let isPseudo = 1;
41345 let isCodeGenOnly = 1;
41346 let DecoderNamespace = "EXT_mmvec";
41347 }
41348 def V6_vpackhb_sat_alt_128B : HInst<
41349 (outs VectorRegs128B:$Vd32),
41350 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41351 "$Vd32 = vpackhb($Vu32,$Vv32):sat",
41352 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41353 let hasNewValue = 1;
41354 let opNewValue = 0;
41355 let isPseudo = 1;
41356 let isCodeGenOnly = 1;
41357 let DecoderNamespace = "EXT_mmvec";
41358 let isCodeGenOnly = 1;
41359 }
41360 def V6_vpackhub_sat : HInst<
41361 (outs VectorRegs:$Vd32),
41362 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41363 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
41364 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41365 let Inst{7-5} = 0b101;
41366 let Inst{13-13} = 0b0;
41367 let Inst{31-21} = 0b00011111110;
41368 let hasNewValue = 1;
41369 let opNewValue = 0;
41370 let DecoderNamespace = "EXT_mmvec";
41371 }
41372 def V6_vpackhub_sat_128B : HInst<
41373 (outs VectorRegs128B:$Vd32),
41374 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41375 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
41376 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41377 let Inst{7-5} = 0b101;
41378 let Inst{13-13} = 0b0;
41379 let Inst{31-21} = 0b00011111110;
41380 let hasNewValue = 1;
41381 let opNewValue = 0;
41382 let DecoderNamespace = "EXT_mmvec";
41383 let isCodeGenOnly = 1;
41384 }
41385 def V6_vpackhub_sat_alt : HInst<
41386 (outs VectorRegs:$Vd32),
41387 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41388 "$Vd32 = vpackhub($Vu32,$Vv32):sat",
41389 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41390 let hasNewValue = 1;
41391 let opNewValue = 0;
41392 let isPseudo = 1;
41393 let isCodeGenOnly = 1;
41394 let DecoderNamespace = "EXT_mmvec";
41395 }
41396 def V6_vpackhub_sat_alt_128B : HInst<
41397 (outs VectorRegs128B:$Vd32),
41398 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41399 "$Vd32 = vpackhub($Vu32,$Vv32):sat",
41400 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41401 let hasNewValue = 1;
41402 let opNewValue = 0;
41403 let isPseudo = 1;
41404 let isCodeGenOnly = 1;
41405 let DecoderNamespace = "EXT_mmvec";
41406 let isCodeGenOnly = 1;
41407 }
41408 def V6_vpackob : HInst<
41409 (outs VectorRegs:$Vd32),
41410 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41411 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
41412 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41413 let Inst{7-5} = 0b001;
41414 let Inst{13-13} = 0b0;
41415 let Inst{31-21} = 0b00011111111;
41416 let hasNewValue = 1;
41417 let opNewValue = 0;
41418 let DecoderNamespace = "EXT_mmvec";
41419 }
41420 def V6_vpackob_128B : HInst<
41421 (outs VectorRegs128B:$Vd32),
41422 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41423 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
41424 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41425 let Inst{7-5} = 0b001;
41426 let Inst{13-13} = 0b0;
41427 let Inst{31-21} = 0b00011111111;
41428 let hasNewValue = 1;
41429 let opNewValue = 0;
41430 let DecoderNamespace = "EXT_mmvec";
41431 let isCodeGenOnly = 1;
41432 }
41433 def V6_vpackob_alt : HInst<
41434 (outs VectorRegs:$Vd32),
41435 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41436 "$Vd32 = vpackob($Vu32,$Vv32)",
41437 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41438 let hasNewValue = 1;
41439 let opNewValue = 0;
41440 let isPseudo = 1;
41441 let isCodeGenOnly = 1;
41442 let DecoderNamespace = "EXT_mmvec";
41443 }
41444 def V6_vpackob_alt_128B : HInst<
41445 (outs VectorRegs128B:$Vd32),
41446 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41447 "$Vd32 = vpackob($Vu32,$Vv32)",
41448 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41449 let hasNewValue = 1;
41450 let opNewValue = 0;
41451 let isPseudo = 1;
41452 let isCodeGenOnly = 1;
41453 let DecoderNamespace = "EXT_mmvec";
41454 let isCodeGenOnly = 1;
41455 }
41456 def V6_vpackoh : HInst<
41457 (outs VectorRegs:$Vd32),
41458 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41459 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
41460 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41461 let Inst{7-5} = 0b010;
41462 let Inst{13-13} = 0b0;
41463 let Inst{31-21} = 0b00011111111;
41464 let hasNewValue = 1;
41465 let opNewValue = 0;
41466 let DecoderNamespace = "EXT_mmvec";
41467 }
41468 def V6_vpackoh_128B : HInst<
41469 (outs VectorRegs128B:$Vd32),
41470 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41471 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
41472 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41473 let Inst{7-5} = 0b010;
41474 let Inst{13-13} = 0b0;
41475 let Inst{31-21} = 0b00011111111;
41476 let hasNewValue = 1;
41477 let opNewValue = 0;
41478 let DecoderNamespace = "EXT_mmvec";
41479 let isCodeGenOnly = 1;
41480 }
41481 def V6_vpackoh_alt : HInst<
41482 (outs VectorRegs:$Vd32),
41483 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41484 "$Vd32 = vpackoh($Vu32,$Vv32)",
41485 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41486 let hasNewValue = 1;
41487 let opNewValue = 0;
41488 let isPseudo = 1;
41489 let isCodeGenOnly = 1;
41490 let DecoderNamespace = "EXT_mmvec";
41491 }
41492 def V6_vpackoh_alt_128B : HInst<
41493 (outs VectorRegs128B:$Vd32),
41494 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41495 "$Vd32 = vpackoh($Vu32,$Vv32)",
41496 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41497 let hasNewValue = 1;
41498 let opNewValue = 0;
41499 let isPseudo = 1;
41500 let isCodeGenOnly = 1;
41501 let DecoderNamespace = "EXT_mmvec";
41502 let isCodeGenOnly = 1;
41503 }
41504 def V6_vpackwh_sat : HInst<
41505 (outs VectorRegs:$Vd32),
41506 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41507 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
41508 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41509 let Inst{7-5} = 0b000;
41510 let Inst{13-13} = 0b0;
41511 let Inst{31-21} = 0b00011111111;
41512 let hasNewValue = 1;
41513 let opNewValue = 0;
41514 let DecoderNamespace = "EXT_mmvec";
41515 }
41516 def V6_vpackwh_sat_128B : HInst<
41517 (outs VectorRegs128B:$Vd32),
41518 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41519 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
41520 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41521 let Inst{7-5} = 0b000;
41522 let Inst{13-13} = 0b0;
41523 let Inst{31-21} = 0b00011111111;
41524 let hasNewValue = 1;
41525 let opNewValue = 0;
41526 let DecoderNamespace = "EXT_mmvec";
41527 let isCodeGenOnly = 1;
41528 }
41529 def V6_vpackwh_sat_alt : HInst<
41530 (outs VectorRegs:$Vd32),
41531 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41532 "$Vd32 = vpackwh($Vu32,$Vv32):sat",
41533 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41534 let hasNewValue = 1;
41535 let opNewValue = 0;
41536 let isPseudo = 1;
41537 let isCodeGenOnly = 1;
41538 let DecoderNamespace = "EXT_mmvec";
41539 }
41540 def V6_vpackwh_sat_alt_128B : HInst<
41541 (outs VectorRegs128B:$Vd32),
41542 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41543 "$Vd32 = vpackwh($Vu32,$Vv32):sat",
41544 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41545 let hasNewValue = 1;
41546 let opNewValue = 0;
41547 let isPseudo = 1;
41548 let isCodeGenOnly = 1;
41549 let DecoderNamespace = "EXT_mmvec";
41550 let isCodeGenOnly = 1;
41551 }
41552 def V6_vpackwuh_sat : HInst<
41553 (outs VectorRegs:$Vd32),
41554 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41555 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
41556 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41557 let Inst{7-5} = 0b111;
41558 let Inst{13-13} = 0b0;
41559 let Inst{31-21} = 0b00011111110;
41560 let hasNewValue = 1;
41561 let opNewValue = 0;
41562 let DecoderNamespace = "EXT_mmvec";
41563 }
41564 def V6_vpackwuh_sat_128B : HInst<
41565 (outs VectorRegs128B:$Vd32),
41566 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41567 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
41568 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41569 let Inst{7-5} = 0b111;
41570 let Inst{13-13} = 0b0;
41571 let Inst{31-21} = 0b00011111110;
41572 let hasNewValue = 1;
41573 let opNewValue = 0;
41574 let DecoderNamespace = "EXT_mmvec";
41575 let isCodeGenOnly = 1;
41576 }
41577 def V6_vpackwuh_sat_alt : HInst<
41578 (outs VectorRegs:$Vd32),
41579 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41580 "$Vd32 = vpackwuh($Vu32,$Vv32):sat",
41581 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41582 let hasNewValue = 1;
41583 let opNewValue = 0;
41584 let isPseudo = 1;
41585 let isCodeGenOnly = 1;
41586 let DecoderNamespace = "EXT_mmvec";
41587 }
41588 def V6_vpackwuh_sat_alt_128B : HInst<
41589 (outs VectorRegs128B:$Vd32),
41590 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41591 "$Vd32 = vpackwuh($Vu32,$Vv32):sat",
41592 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41593 let hasNewValue = 1;
41594 let opNewValue = 0;
41595 let isPseudo = 1;
41596 let isCodeGenOnly = 1;
41597 let DecoderNamespace = "EXT_mmvec";
41598 let isCodeGenOnly = 1;
41599 }
41600 def V6_vpopcounth : HInst<
41601 (outs VectorRegs:$Vd32),
41602 (ins VectorRegs:$Vu32),
41603 "$Vd32.h = vpopcount($Vu32.h)",
41604 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41605 let Inst{7-5} = 0b110;
41606 let Inst{13-13} = 0b0;
41607 let Inst{31-16} = 0b0001111000000010;
41608 let hasNewValue = 1;
41609 let opNewValue = 0;
41610 let DecoderNamespace = "EXT_mmvec";
41611 }
41612 def V6_vpopcounth_128B : HInst<
41613 (outs VectorRegs128B:$Vd32),
41614 (ins VectorRegs128B:$Vu32),
41615 "$Vd32.h = vpopcount($Vu32.h)",
41616 tc_d2cb81ea, TypeCVI_VS>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
41617 let Inst{7-5} = 0b110;
41618 let Inst{13-13} = 0b0;
41619 let Inst{31-16} = 0b0001111000000010;
41620 let hasNewValue = 1;
41621 let opNewValue = 0;
41622 let DecoderNamespace = "EXT_mmvec";
41623 let isCodeGenOnly = 1;
41624 }
41625 def V6_vpopcounth_alt : HInst<
41626 (outs VectorRegs:$Vd32),
41627 (ins VectorRegs:$Vu32),
41628 "$Vd32 = vpopcounth($Vu32)",
41629 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41630 let hasNewValue = 1;
41631 let opNewValue = 0;
41632 let isPseudo = 1;
41633 let isCodeGenOnly = 1;
41634 let DecoderNamespace = "EXT_mmvec";
41635 }
41636 def V6_vpopcounth_alt_128B : HInst<
41637 (outs VectorRegs128B:$Vd32),
41638 (ins VectorRegs128B:$Vu32),
41639 "$Vd32 = vpopcounth($Vu32)",
41640 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41641 let hasNewValue = 1;
41642 let opNewValue = 0;
41643 let isPseudo = 1;
41644 let isCodeGenOnly = 1;
41645 let DecoderNamespace = "EXT_mmvec";
41646 let isCodeGenOnly = 1;
41647 }
41648 def V6_vrdelta : HInst<
41649 (outs VectorRegs:$Vd32),
41650 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41651 "$Vd32 = vrdelta($Vu32,$Vv32)",
41652 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41653 let Inst{7-5} = 0b011;
41654 let Inst{13-13} = 0b0;
41655 let Inst{31-21} = 0b00011111001;
41656 let hasNewValue = 1;
41657 let opNewValue = 0;
41658 let DecoderNamespace = "EXT_mmvec";
41659 }
41660 def V6_vrdelta_128B : HInst<
41661 (outs VectorRegs128B:$Vd32),
41662 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41663 "$Vd32 = vrdelta($Vu32,$Vv32)",
41664 tc_f3fc3f83, TypeCVI_VP>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41665 let Inst{7-5} = 0b011;
41666 let Inst{13-13} = 0b0;
41667 let Inst{31-21} = 0b00011111001;
41668 let hasNewValue = 1;
41669 let opNewValue = 0;
41670 let DecoderNamespace = "EXT_mmvec";
41671 let isCodeGenOnly = 1;
41672 }
41673 def V6_vrmpybus : HInst<
41674 (outs VectorRegs:$Vd32),
41675 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
41676 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
41677 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
41678 let Inst{7-5} = 0b100;
41679 let Inst{13-13} = 0b0;
41680 let Inst{31-21} = 0b00011001000;
41681 let hasNewValue = 1;
41682 let opNewValue = 0;
41683 let DecoderNamespace = "EXT_mmvec";
41684 }
41685 def V6_vrmpybus_128B : HInst<
41686 (outs VectorRegs128B:$Vd32),
41687 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
41688 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
41689 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
41690 let Inst{7-5} = 0b100;
41691 let Inst{13-13} = 0b0;
41692 let Inst{31-21} = 0b00011001000;
41693 let hasNewValue = 1;
41694 let opNewValue = 0;
41695 let DecoderNamespace = "EXT_mmvec";
41696 let isCodeGenOnly = 1;
41697 }
41698 def V6_vrmpybus_acc : HInst<
41699 (outs VectorRegs:$Vx32),
41700 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
41701 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
41702 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
41703 let Inst{7-5} = 0b101;
41704 let Inst{13-13} = 0b1;
41705 let Inst{31-21} = 0b00011001000;
41706 let hasNewValue = 1;
41707 let opNewValue = 0;
41708 let isAccumulator = 1;
41709 let DecoderNamespace = "EXT_mmvec";
41710 let Constraints = "$Vx32 = $Vx32in";
41711 }
41712 def V6_vrmpybus_acc_128B : HInst<
41713 (outs VectorRegs128B:$Vx32),
41714 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
41715 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
41716 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
41717 let Inst{7-5} = 0b101;
41718 let Inst{13-13} = 0b1;
41719 let Inst{31-21} = 0b00011001000;
41720 let hasNewValue = 1;
41721 let opNewValue = 0;
41722 let isAccumulator = 1;
41723 let DecoderNamespace = "EXT_mmvec";
41724 let isCodeGenOnly = 1;
41725 let Constraints = "$Vx32 = $Vx32in";
41726 }
41727 def V6_vrmpybus_acc_alt : HInst<
41728 (outs VectorRegs:$Vx32),
41729 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
41730 "$Vx32 += vrmpybus($Vu32,$Rt32)",
41731 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41732 let hasNewValue = 1;
41733 let opNewValue = 0;
41734 let isAccumulator = 1;
41735 let isPseudo = 1;
41736 let isCodeGenOnly = 1;
41737 let DecoderNamespace = "EXT_mmvec";
41738 let Constraints = "$Vx32 = $Vx32in";
41739 }
41740 def V6_vrmpybus_acc_alt_128B : HInst<
41741 (outs VectorRegs128B:$Vx32),
41742 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
41743 "$Vx32 += vrmpybus($Vu32,$Rt32)",
41744 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41745 let hasNewValue = 1;
41746 let opNewValue = 0;
41747 let isAccumulator = 1;
41748 let isPseudo = 1;
41749 let isCodeGenOnly = 1;
41750 let DecoderNamespace = "EXT_mmvec";
41751 let isCodeGenOnly = 1;
41752 let Constraints = "$Vx32 = $Vx32in";
41753 }
41754 def V6_vrmpybus_alt : HInst<
41755 (outs VectorRegs:$Vd32),
41756 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
41757 "$Vd32 = vrmpybus($Vu32,$Rt32)",
41758 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41759 let hasNewValue = 1;
41760 let opNewValue = 0;
41761 let isPseudo = 1;
41762 let isCodeGenOnly = 1;
41763 let DecoderNamespace = "EXT_mmvec";
41764 }
41765 def V6_vrmpybus_alt_128B : HInst<
41766 (outs VectorRegs128B:$Vd32),
41767 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
41768 "$Vd32 = vrmpybus($Vu32,$Rt32)",
41769 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41770 let hasNewValue = 1;
41771 let opNewValue = 0;
41772 let isPseudo = 1;
41773 let isCodeGenOnly = 1;
41774 let DecoderNamespace = "EXT_mmvec";
41775 let isCodeGenOnly = 1;
41776 }
41777 def V6_vrmpybusi : HInst<
41778 (outs VecDblRegs:$Vdd32),
41779 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41780 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
41781 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
41782 let Inst{7-6} = 0b10;
41783 let Inst{13-13} = 0b0;
41784 let Inst{31-21} = 0b00011001010;
41785 let hasNewValue = 1;
41786 let opNewValue = 0;
41787 let DecoderNamespace = "EXT_mmvec";
41788 }
41789 def V6_vrmpybusi_128B : HInst<
41790 (outs VecDblRegs128B:$Vdd32),
41791 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41792 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
41793 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
41794 let Inst{7-6} = 0b10;
41795 let Inst{13-13} = 0b0;
41796 let Inst{31-21} = 0b00011001010;
41797 let hasNewValue = 1;
41798 let opNewValue = 0;
41799 let DecoderNamespace = "EXT_mmvec";
41800 let isCodeGenOnly = 1;
41801 }
41802 def V6_vrmpybusi_acc : HInst<
41803 (outs VecDblRegs:$Vxx32),
41804 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41805 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
41806 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
41807 let Inst{7-6} = 0b10;
41808 let Inst{13-13} = 0b1;
41809 let Inst{31-21} = 0b00011001010;
41810 let hasNewValue = 1;
41811 let opNewValue = 0;
41812 let isAccumulator = 1;
41813 let DecoderNamespace = "EXT_mmvec";
41814 let Constraints = "$Vxx32 = $Vxx32in";
41815 }
41816 def V6_vrmpybusi_acc_128B : HInst<
41817 (outs VecDblRegs128B:$Vxx32),
41818 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41819 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
41820 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
41821 let Inst{7-6} = 0b10;
41822 let Inst{13-13} = 0b1;
41823 let Inst{31-21} = 0b00011001010;
41824 let hasNewValue = 1;
41825 let opNewValue = 0;
41826 let isAccumulator = 1;
41827 let DecoderNamespace = "EXT_mmvec";
41828 let isCodeGenOnly = 1;
41829 let Constraints = "$Vxx32 = $Vxx32in";
41830 }
41831 def V6_vrmpybusi_acc_alt : HInst<
41832 (outs VecDblRegs:$Vxx32),
41833 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41834 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
41835 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41836 let hasNewValue = 1;
41837 let opNewValue = 0;
41838 let isAccumulator = 1;
41839 let isPseudo = 1;
41840 let isCodeGenOnly = 1;
41841 let DecoderNamespace = "EXT_mmvec";
41842 let Constraints = "$Vxx32 = $Vxx32in";
41843 }
41844 def V6_vrmpybusi_acc_alt_128B : HInst<
41845 (outs VecDblRegs128B:$Vxx32),
41846 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41847 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
41848 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41849 let hasNewValue = 1;
41850 let opNewValue = 0;
41851 let isAccumulator = 1;
41852 let isPseudo = 1;
41853 let isCodeGenOnly = 1;
41854 let DecoderNamespace = "EXT_mmvec";
41855 let isCodeGenOnly = 1;
41856 let Constraints = "$Vxx32 = $Vxx32in";
41857 }
41858 def V6_vrmpybusi_alt : HInst<
41859 (outs VecDblRegs:$Vdd32),
41860 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41861 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
41862 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41863 let hasNewValue = 1;
41864 let opNewValue = 0;
41865 let isPseudo = 1;
41866 let isCodeGenOnly = 1;
41867 let DecoderNamespace = "EXT_mmvec";
41868 }
41869 def V6_vrmpybusi_alt_128B : HInst<
41870 (outs VecDblRegs128B:$Vdd32),
41871 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
41872 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
41873 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41874 let hasNewValue = 1;
41875 let opNewValue = 0;
41876 let isPseudo = 1;
41877 let isCodeGenOnly = 1;
41878 let DecoderNamespace = "EXT_mmvec";
41879 let isCodeGenOnly = 1;
41880 }
41881 def V6_vrmpybusv : HInst<
41882 (outs VectorRegs:$Vd32),
41883 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41884 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
41885 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41886 let Inst{7-5} = 0b010;
41887 let Inst{13-13} = 0b0;
41888 let Inst{31-21} = 0b00011100000;
41889 let hasNewValue = 1;
41890 let opNewValue = 0;
41891 let DecoderNamespace = "EXT_mmvec";
41892 }
41893 def V6_vrmpybusv_128B : HInst<
41894 (outs VectorRegs128B:$Vd32),
41895 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41896 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
41897 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41898 let Inst{7-5} = 0b010;
41899 let Inst{13-13} = 0b0;
41900 let Inst{31-21} = 0b00011100000;
41901 let hasNewValue = 1;
41902 let opNewValue = 0;
41903 let DecoderNamespace = "EXT_mmvec";
41904 let isCodeGenOnly = 1;
41905 }
41906 def V6_vrmpybusv_acc : HInst<
41907 (outs VectorRegs:$Vx32),
41908 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
41909 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
41910 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
41911 let Inst{7-5} = 0b010;
41912 let Inst{13-13} = 0b1;
41913 let Inst{31-21} = 0b00011100000;
41914 let hasNewValue = 1;
41915 let opNewValue = 0;
41916 let isAccumulator = 1;
41917 let DecoderNamespace = "EXT_mmvec";
41918 let Constraints = "$Vx32 = $Vx32in";
41919 }
41920 def V6_vrmpybusv_acc_128B : HInst<
41921 (outs VectorRegs128B:$Vx32),
41922 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41923 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
41924 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
41925 let Inst{7-5} = 0b010;
41926 let Inst{13-13} = 0b1;
41927 let Inst{31-21} = 0b00011100000;
41928 let hasNewValue = 1;
41929 let opNewValue = 0;
41930 let isAccumulator = 1;
41931 let DecoderNamespace = "EXT_mmvec";
41932 let isCodeGenOnly = 1;
41933 let Constraints = "$Vx32 = $Vx32in";
41934 }
41935 def V6_vrmpybusv_acc_alt : HInst<
41936 (outs VectorRegs:$Vx32),
41937 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
41938 "$Vx32 += vrmpybus($Vu32,$Vv32)",
41939 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41940 let hasNewValue = 1;
41941 let opNewValue = 0;
41942 let isAccumulator = 1;
41943 let isPseudo = 1;
41944 let isCodeGenOnly = 1;
41945 let DecoderNamespace = "EXT_mmvec";
41946 let Constraints = "$Vx32 = $Vx32in";
41947 }
41948 def V6_vrmpybusv_acc_alt_128B : HInst<
41949 (outs VectorRegs128B:$Vx32),
41950 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41951 "$Vx32 += vrmpybus($Vu32,$Vv32)",
41952 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41953 let hasNewValue = 1;
41954 let opNewValue = 0;
41955 let isAccumulator = 1;
41956 let isPseudo = 1;
41957 let isCodeGenOnly = 1;
41958 let DecoderNamespace = "EXT_mmvec";
41959 let isCodeGenOnly = 1;
41960 let Constraints = "$Vx32 = $Vx32in";
41961 }
41962 def V6_vrmpybusv_alt : HInst<
41963 (outs VectorRegs:$Vd32),
41964 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41965 "$Vd32 = vrmpybus($Vu32,$Vv32)",
41966 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41967 let hasNewValue = 1;
41968 let opNewValue = 0;
41969 let isPseudo = 1;
41970 let isCodeGenOnly = 1;
41971 let DecoderNamespace = "EXT_mmvec";
41972 }
41973 def V6_vrmpybusv_alt_128B : HInst<
41974 (outs VectorRegs128B:$Vd32),
41975 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
41976 "$Vd32 = vrmpybus($Vu32,$Vv32)",
41977 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
41978 let hasNewValue = 1;
41979 let opNewValue = 0;
41980 let isPseudo = 1;
41981 let isCodeGenOnly = 1;
41982 let DecoderNamespace = "EXT_mmvec";
41983 let isCodeGenOnly = 1;
41984 }
41985 def V6_vrmpybv : HInst<
41986 (outs VectorRegs:$Vd32),
41987 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
41988 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
41989 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
41990 let Inst{7-5} = 0b001;
41991 let Inst{13-13} = 0b0;
41992 let Inst{31-21} = 0b00011100000;
41993 let hasNewValue = 1;
41994 let opNewValue = 0;
41995 let DecoderNamespace = "EXT_mmvec";
41996 }
41997 def V6_vrmpybv_128B : HInst<
41998 (outs VectorRegs128B:$Vd32),
41999 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42000 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
42001 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42002 let Inst{7-5} = 0b001;
42003 let Inst{13-13} = 0b0;
42004 let Inst{31-21} = 0b00011100000;
42005 let hasNewValue = 1;
42006 let opNewValue = 0;
42007 let DecoderNamespace = "EXT_mmvec";
42008 let isCodeGenOnly = 1;
42009 }
42010 def V6_vrmpybv_acc : HInst<
42011 (outs VectorRegs:$Vx32),
42012 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
42013 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
42014 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
42015 let Inst{7-5} = 0b001;
42016 let Inst{13-13} = 0b1;
42017 let Inst{31-21} = 0b00011100000;
42018 let hasNewValue = 1;
42019 let opNewValue = 0;
42020 let isAccumulator = 1;
42021 let DecoderNamespace = "EXT_mmvec";
42022 let Constraints = "$Vx32 = $Vx32in";
42023 }
42024 def V6_vrmpybv_acc_128B : HInst<
42025 (outs VectorRegs128B:$Vx32),
42026 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42027 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
42028 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
42029 let Inst{7-5} = 0b001;
42030 let Inst{13-13} = 0b1;
42031 let Inst{31-21} = 0b00011100000;
42032 let hasNewValue = 1;
42033 let opNewValue = 0;
42034 let isAccumulator = 1;
42035 let DecoderNamespace = "EXT_mmvec";
42036 let isCodeGenOnly = 1;
42037 let Constraints = "$Vx32 = $Vx32in";
42038 }
42039 def V6_vrmpybv_acc_alt : HInst<
42040 (outs VectorRegs:$Vx32),
42041 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
42042 "$Vx32 += vrmpyb($Vu32,$Vv32)",
42043 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42044 let hasNewValue = 1;
42045 let opNewValue = 0;
42046 let isAccumulator = 1;
42047 let isPseudo = 1;
42048 let isCodeGenOnly = 1;
42049 let DecoderNamespace = "EXT_mmvec";
42050 let Constraints = "$Vx32 = $Vx32in";
42051 }
42052 def V6_vrmpybv_acc_alt_128B : HInst<
42053 (outs VectorRegs128B:$Vx32),
42054 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42055 "$Vx32 += vrmpyb($Vu32,$Vv32)",
42056 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42057 let hasNewValue = 1;
42058 let opNewValue = 0;
42059 let isAccumulator = 1;
42060 let isPseudo = 1;
42061 let isCodeGenOnly = 1;
42062 let DecoderNamespace = "EXT_mmvec";
42063 let isCodeGenOnly = 1;
42064 let Constraints = "$Vx32 = $Vx32in";
42065 }
42066 def V6_vrmpybv_alt : HInst<
42067 (outs VectorRegs:$Vd32),
42068 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42069 "$Vd32 = vrmpyb($Vu32,$Vv32)",
42070 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42071 let hasNewValue = 1;
42072 let opNewValue = 0;
42073 let isPseudo = 1;
42074 let isCodeGenOnly = 1;
42075 let DecoderNamespace = "EXT_mmvec";
42076 }
42077 def V6_vrmpybv_alt_128B : HInst<
42078 (outs VectorRegs128B:$Vd32),
42079 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42080 "$Vd32 = vrmpyb($Vu32,$Vv32)",
42081 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42082 let hasNewValue = 1;
42083 let opNewValue = 0;
42084 let isPseudo = 1;
42085 let isCodeGenOnly = 1;
42086 let DecoderNamespace = "EXT_mmvec";
42087 let isCodeGenOnly = 1;
42088 }
42089 def V6_vrmpyub : HInst<
42090 (outs VectorRegs:$Vd32),
42091 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
42092 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
42093 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
42094 let Inst{7-5} = 0b011;
42095 let Inst{13-13} = 0b0;
42096 let Inst{31-21} = 0b00011001000;
42097 let hasNewValue = 1;
42098 let opNewValue = 0;
42099 let DecoderNamespace = "EXT_mmvec";
42100 }
42101 def V6_vrmpyub_128B : HInst<
42102 (outs VectorRegs128B:$Vd32),
42103 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
42104 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
42105 tc_69b6dd20, TypeCVI_VX>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
42106 let Inst{7-5} = 0b011;
42107 let Inst{13-13} = 0b0;
42108 let Inst{31-21} = 0b00011001000;
42109 let hasNewValue = 1;
42110 let opNewValue = 0;
42111 let DecoderNamespace = "EXT_mmvec";
42112 let isCodeGenOnly = 1;
42113 }
42114 def V6_vrmpyub_acc : HInst<
42115 (outs VectorRegs:$Vx32),
42116 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
42117 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
42118 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
42119 let Inst{7-5} = 0b100;
42120 let Inst{13-13} = 0b1;
42121 let Inst{31-21} = 0b00011001000;
42122 let hasNewValue = 1;
42123 let opNewValue = 0;
42124 let isAccumulator = 1;
42125 let DecoderNamespace = "EXT_mmvec";
42126 let Constraints = "$Vx32 = $Vx32in";
42127 }
42128 def V6_vrmpyub_acc_128B : HInst<
42129 (outs VectorRegs128B:$Vx32),
42130 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
42131 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
42132 tc_d725e5b0, TypeCVI_VX>, Enc_5138b3, Requires<[HasV60T,UseHVX]> {
42133 let Inst{7-5} = 0b100;
42134 let Inst{13-13} = 0b1;
42135 let Inst{31-21} = 0b00011001000;
42136 let hasNewValue = 1;
42137 let opNewValue = 0;
42138 let isAccumulator = 1;
42139 let DecoderNamespace = "EXT_mmvec";
42140 let isCodeGenOnly = 1;
42141 let Constraints = "$Vx32 = $Vx32in";
42142 }
42143 def V6_vrmpyub_acc_alt : HInst<
42144 (outs VectorRegs:$Vx32),
42145 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, IntRegs:$Rt32),
42146 "$Vx32 += vrmpyub($Vu32,$Rt32)",
42147 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42148 let hasNewValue = 1;
42149 let opNewValue = 0;
42150 let isAccumulator = 1;
42151 let isPseudo = 1;
42152 let isCodeGenOnly = 1;
42153 let DecoderNamespace = "EXT_mmvec";
42154 let Constraints = "$Vx32 = $Vx32in";
42155 }
42156 def V6_vrmpyub_acc_alt_128B : HInst<
42157 (outs VectorRegs128B:$Vx32),
42158 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, IntRegs:$Rt32),
42159 "$Vx32 += vrmpyub($Vu32,$Rt32)",
42160 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42161 let hasNewValue = 1;
42162 let opNewValue = 0;
42163 let isAccumulator = 1;
42164 let isPseudo = 1;
42165 let isCodeGenOnly = 1;
42166 let DecoderNamespace = "EXT_mmvec";
42167 let isCodeGenOnly = 1;
42168 let Constraints = "$Vx32 = $Vx32in";
42169 }
42170 def V6_vrmpyub_alt : HInst<
42171 (outs VectorRegs:$Vd32),
42172 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
42173 "$Vd32 = vrmpyub($Vu32,$Rt32)",
42174 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42175 let hasNewValue = 1;
42176 let opNewValue = 0;
42177 let isPseudo = 1;
42178 let isCodeGenOnly = 1;
42179 let DecoderNamespace = "EXT_mmvec";
42180 }
42181 def V6_vrmpyub_alt_128B : HInst<
42182 (outs VectorRegs128B:$Vd32),
42183 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
42184 "$Vd32 = vrmpyub($Vu32,$Rt32)",
42185 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42186 let hasNewValue = 1;
42187 let opNewValue = 0;
42188 let isPseudo = 1;
42189 let isCodeGenOnly = 1;
42190 let DecoderNamespace = "EXT_mmvec";
42191 let isCodeGenOnly = 1;
42192 }
42193 def V6_vrmpyubi : HInst<
42194 (outs VecDblRegs:$Vdd32),
42195 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42196 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
42197 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
42198 let Inst{7-6} = 0b11;
42199 let Inst{13-13} = 0b0;
42200 let Inst{31-21} = 0b00011001101;
42201 let hasNewValue = 1;
42202 let opNewValue = 0;
42203 let DecoderNamespace = "EXT_mmvec";
42204 }
42205 def V6_vrmpyubi_128B : HInst<
42206 (outs VecDblRegs128B:$Vdd32),
42207 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42208 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
42209 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
42210 let Inst{7-6} = 0b11;
42211 let Inst{13-13} = 0b0;
42212 let Inst{31-21} = 0b00011001101;
42213 let hasNewValue = 1;
42214 let opNewValue = 0;
42215 let DecoderNamespace = "EXT_mmvec";
42216 let isCodeGenOnly = 1;
42217 }
42218 def V6_vrmpyubi_acc : HInst<
42219 (outs VecDblRegs:$Vxx32),
42220 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42221 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
42222 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
42223 let Inst{7-6} = 0b11;
42224 let Inst{13-13} = 0b1;
42225 let Inst{31-21} = 0b00011001011;
42226 let hasNewValue = 1;
42227 let opNewValue = 0;
42228 let isAccumulator = 1;
42229 let DecoderNamespace = "EXT_mmvec";
42230 let Constraints = "$Vxx32 = $Vxx32in";
42231 }
42232 def V6_vrmpyubi_acc_128B : HInst<
42233 (outs VecDblRegs128B:$Vxx32),
42234 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42235 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
42236 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
42237 let Inst{7-6} = 0b11;
42238 let Inst{13-13} = 0b1;
42239 let Inst{31-21} = 0b00011001011;
42240 let hasNewValue = 1;
42241 let opNewValue = 0;
42242 let isAccumulator = 1;
42243 let DecoderNamespace = "EXT_mmvec";
42244 let isCodeGenOnly = 1;
42245 let Constraints = "$Vxx32 = $Vxx32in";
42246 }
42247 def V6_vrmpyubi_acc_alt : HInst<
42248 (outs VecDblRegs:$Vxx32),
42249 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42250 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
42251 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42252 let hasNewValue = 1;
42253 let opNewValue = 0;
42254 let isAccumulator = 1;
42255 let isPseudo = 1;
42256 let isCodeGenOnly = 1;
42257 let DecoderNamespace = "EXT_mmvec";
42258 let Constraints = "$Vxx32 = $Vxx32in";
42259 }
42260 def V6_vrmpyubi_acc_alt_128B : HInst<
42261 (outs VecDblRegs128B:$Vxx32),
42262 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42263 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
42264 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42265 let hasNewValue = 1;
42266 let opNewValue = 0;
42267 let isAccumulator = 1;
42268 let isPseudo = 1;
42269 let isCodeGenOnly = 1;
42270 let DecoderNamespace = "EXT_mmvec";
42271 let isCodeGenOnly = 1;
42272 let Constraints = "$Vxx32 = $Vxx32in";
42273 }
42274 def V6_vrmpyubi_alt : HInst<
42275 (outs VecDblRegs:$Vdd32),
42276 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42277 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
42278 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42279 let hasNewValue = 1;
42280 let opNewValue = 0;
42281 let isPseudo = 1;
42282 let isCodeGenOnly = 1;
42283 let DecoderNamespace = "EXT_mmvec";
42284 }
42285 def V6_vrmpyubi_alt_128B : HInst<
42286 (outs VecDblRegs128B:$Vdd32),
42287 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42288 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
42289 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42290 let hasNewValue = 1;
42291 let opNewValue = 0;
42292 let isPseudo = 1;
42293 let isCodeGenOnly = 1;
42294 let DecoderNamespace = "EXT_mmvec";
42295 let isCodeGenOnly = 1;
42296 }
42297 def V6_vrmpyubv : HInst<
42298 (outs VectorRegs:$Vd32),
42299 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42300 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
42301 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42302 let Inst{7-5} = 0b000;
42303 let Inst{13-13} = 0b0;
42304 let Inst{31-21} = 0b00011100000;
42305 let hasNewValue = 1;
42306 let opNewValue = 0;
42307 let DecoderNamespace = "EXT_mmvec";
42308 }
42309 def V6_vrmpyubv_128B : HInst<
42310 (outs VectorRegs128B:$Vd32),
42311 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42312 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
42313 tc_908a4c8c, TypeCVI_VX>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42314 let Inst{7-5} = 0b000;
42315 let Inst{13-13} = 0b0;
42316 let Inst{31-21} = 0b00011100000;
42317 let hasNewValue = 1;
42318 let opNewValue = 0;
42319 let DecoderNamespace = "EXT_mmvec";
42320 let isCodeGenOnly = 1;
42321 }
42322 def V6_vrmpyubv_acc : HInst<
42323 (outs VectorRegs:$Vx32),
42324 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
42325 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
42326 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
42327 let Inst{7-5} = 0b000;
42328 let Inst{13-13} = 0b1;
42329 let Inst{31-21} = 0b00011100000;
42330 let hasNewValue = 1;
42331 let opNewValue = 0;
42332 let isAccumulator = 1;
42333 let DecoderNamespace = "EXT_mmvec";
42334 let Constraints = "$Vx32 = $Vx32in";
42335 }
42336 def V6_vrmpyubv_acc_128B : HInst<
42337 (outs VectorRegs128B:$Vx32),
42338 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42339 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
42340 tc_e172d86a, TypeCVI_VX_DV>, Enc_a7341a, Requires<[HasV60T,UseHVX]> {
42341 let Inst{7-5} = 0b000;
42342 let Inst{13-13} = 0b1;
42343 let Inst{31-21} = 0b00011100000;
42344 let hasNewValue = 1;
42345 let opNewValue = 0;
42346 let isAccumulator = 1;
42347 let DecoderNamespace = "EXT_mmvec";
42348 let isCodeGenOnly = 1;
42349 let Constraints = "$Vx32 = $Vx32in";
42350 }
42351 def V6_vrmpyubv_acc_alt : HInst<
42352 (outs VectorRegs:$Vx32),
42353 (ins VectorRegs:$Vx32in, VectorRegs:$Vu32, VectorRegs:$Vv32),
42354 "$Vx32 += vrmpyub($Vu32,$Vv32)",
42355 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42356 let hasNewValue = 1;
42357 let opNewValue = 0;
42358 let isAccumulator = 1;
42359 let isPseudo = 1;
42360 let isCodeGenOnly = 1;
42361 let DecoderNamespace = "EXT_mmvec";
42362 let Constraints = "$Vx32 = $Vx32in";
42363 }
42364 def V6_vrmpyubv_acc_alt_128B : HInst<
42365 (outs VectorRegs128B:$Vx32),
42366 (ins VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42367 "$Vx32 += vrmpyub($Vu32,$Vv32)",
42368 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42369 let hasNewValue = 1;
42370 let opNewValue = 0;
42371 let isAccumulator = 1;
42372 let isPseudo = 1;
42373 let isCodeGenOnly = 1;
42374 let DecoderNamespace = "EXT_mmvec";
42375 let isCodeGenOnly = 1;
42376 let Constraints = "$Vx32 = $Vx32in";
42377 }
42378 def V6_vrmpyubv_alt : HInst<
42379 (outs VectorRegs:$Vd32),
42380 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42381 "$Vd32 = vrmpyub($Vu32,$Vv32)",
42382 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42383 let hasNewValue = 1;
42384 let opNewValue = 0;
42385 let isPseudo = 1;
42386 let isCodeGenOnly = 1;
42387 let DecoderNamespace = "EXT_mmvec";
42388 }
42389 def V6_vrmpyubv_alt_128B : HInst<
42390 (outs VectorRegs128B:$Vd32),
42391 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42392 "$Vd32 = vrmpyub($Vu32,$Vv32)",
42393 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42394 let hasNewValue = 1;
42395 let opNewValue = 0;
42396 let isPseudo = 1;
42397 let isCodeGenOnly = 1;
42398 let DecoderNamespace = "EXT_mmvec";
42399 let isCodeGenOnly = 1;
42400 }
42401 def V6_vror : HInst<
42402 (outs VectorRegs:$Vd32),
42403 (ins VectorRegs:$Vu32, IntRegs:$Rt32),
42404 "$Vd32 = vror($Vu32,$Rt32)",
42405 tc_bf142ae2, TypeCVI_VP>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
42406 let Inst{7-5} = 0b001;
42407 let Inst{13-13} = 0b0;
42408 let Inst{31-21} = 0b00011001011;
42409 let hasNewValue = 1;
42410 let opNewValue = 0;
42411 let DecoderNamespace = "EXT_mmvec";
42412 }
42413 def V6_vror_128B : HInst<
42414 (outs VectorRegs128B:$Vd32),
42415 (ins VectorRegs128B:$Vu32, IntRegs:$Rt32),
42416 "$Vd32 = vror($Vu32,$Rt32)",
42417 tc_bf142ae2, TypeCVI_VP>, Enc_b087ac, Requires<[HasV60T,UseHVX]> {
42418 let Inst{7-5} = 0b001;
42419 let Inst{13-13} = 0b0;
42420 let Inst{31-21} = 0b00011001011;
42421 let hasNewValue = 1;
42422 let opNewValue = 0;
42423 let DecoderNamespace = "EXT_mmvec";
42424 let isCodeGenOnly = 1;
42425 }
42426 def V6_vroundhb : HInst<
42427 (outs VectorRegs:$Vd32),
42428 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42429 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
42430 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42431 let Inst{7-5} = 0b110;
42432 let Inst{13-13} = 0b0;
42433 let Inst{31-21} = 0b00011111011;
42434 let hasNewValue = 1;
42435 let opNewValue = 0;
42436 let DecoderNamespace = "EXT_mmvec";
42437 }
42438 def V6_vroundhb_128B : HInst<
42439 (outs VectorRegs128B:$Vd32),
42440 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42441 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
42442 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42443 let Inst{7-5} = 0b110;
42444 let Inst{13-13} = 0b0;
42445 let Inst{31-21} = 0b00011111011;
42446 let hasNewValue = 1;
42447 let opNewValue = 0;
42448 let DecoderNamespace = "EXT_mmvec";
42449 let isCodeGenOnly = 1;
42450 }
42451 def V6_vroundhb_alt : HInst<
42452 (outs VectorRegs:$Vd32),
42453 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42454 "$Vd32 = vroundhb($Vu32,$Vv32):sat",
42455 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42456 let hasNewValue = 1;
42457 let opNewValue = 0;
42458 let isPseudo = 1;
42459 let isCodeGenOnly = 1;
42460 let DecoderNamespace = "EXT_mmvec";
42461 }
42462 def V6_vroundhb_alt_128B : HInst<
42463 (outs VectorRegs128B:$Vd32),
42464 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42465 "$Vd32 = vroundhb($Vu32,$Vv32):sat",
42466 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42467 let hasNewValue = 1;
42468 let opNewValue = 0;
42469 let isPseudo = 1;
42470 let isCodeGenOnly = 1;
42471 let DecoderNamespace = "EXT_mmvec";
42472 let isCodeGenOnly = 1;
42473 }
42474 def V6_vroundhub : HInst<
42475 (outs VectorRegs:$Vd32),
42476 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42477 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
42478 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42479 let Inst{7-5} = 0b111;
42480 let Inst{13-13} = 0b0;
42481 let Inst{31-21} = 0b00011111011;
42482 let hasNewValue = 1;
42483 let opNewValue = 0;
42484 let DecoderNamespace = "EXT_mmvec";
42485 }
42486 def V6_vroundhub_128B : HInst<
42487 (outs VectorRegs128B:$Vd32),
42488 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42489 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
42490 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42491 let Inst{7-5} = 0b111;
42492 let Inst{13-13} = 0b0;
42493 let Inst{31-21} = 0b00011111011;
42494 let hasNewValue = 1;
42495 let opNewValue = 0;
42496 let DecoderNamespace = "EXT_mmvec";
42497 let isCodeGenOnly = 1;
42498 }
42499 def V6_vroundhub_alt : HInst<
42500 (outs VectorRegs:$Vd32),
42501 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42502 "$Vd32 = vroundhub($Vu32,$Vv32):sat",
42503 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42504 let hasNewValue = 1;
42505 let opNewValue = 0;
42506 let isPseudo = 1;
42507 let isCodeGenOnly = 1;
42508 let DecoderNamespace = "EXT_mmvec";
42509 }
42510 def V6_vroundhub_alt_128B : HInst<
42511 (outs VectorRegs128B:$Vd32),
42512 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42513 "$Vd32 = vroundhub($Vu32,$Vv32):sat",
42514 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42515 let hasNewValue = 1;
42516 let opNewValue = 0;
42517 let isPseudo = 1;
42518 let isCodeGenOnly = 1;
42519 let DecoderNamespace = "EXT_mmvec";
42520 let isCodeGenOnly = 1;
42521 }
42522 def V6_vrounduhub : HInst<
42523 (outs VectorRegs:$Vd32),
42524 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42525 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
42526 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42527 let Inst{7-5} = 0b011;
42528 let Inst{13-13} = 0b0;
42529 let Inst{31-21} = 0b00011111111;
42530 let hasNewValue = 1;
42531 let opNewValue = 0;
42532 let DecoderNamespace = "EXT_mmvec";
42533 }
42534 def V6_vrounduhub_128B : HInst<
42535 (outs VectorRegs128B:$Vd32),
42536 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42537 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
42538 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42539 let Inst{7-5} = 0b011;
42540 let Inst{13-13} = 0b0;
42541 let Inst{31-21} = 0b00011111111;
42542 let hasNewValue = 1;
42543 let opNewValue = 0;
42544 let DecoderNamespace = "EXT_mmvec";
42545 let isCodeGenOnly = 1;
42546 }
42547 def V6_vrounduhub_alt : HInst<
42548 (outs VectorRegs:$Vd32),
42549 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42550 "$Vd32 = vrounduhub($Vu32,$Vv32):sat",
42551 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42552 let hasNewValue = 1;
42553 let opNewValue = 0;
42554 let isPseudo = 1;
42555 let isCodeGenOnly = 1;
42556 let DecoderNamespace = "EXT_mmvec";
42557 }
42558 def V6_vrounduhub_alt_128B : HInst<
42559 (outs VectorRegs128B:$Vd32),
42560 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42561 "$Vd32 = vrounduhub($Vu32,$Vv32):sat",
42562 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42563 let hasNewValue = 1;
42564 let opNewValue = 0;
42565 let isPseudo = 1;
42566 let isCodeGenOnly = 1;
42567 let DecoderNamespace = "EXT_mmvec";
42568 let isCodeGenOnly = 1;
42569 }
42570 def V6_vrounduwuh : HInst<
42571 (outs VectorRegs:$Vd32),
42572 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42573 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
42574 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42575 let Inst{7-5} = 0b100;
42576 let Inst{13-13} = 0b0;
42577 let Inst{31-21} = 0b00011111111;
42578 let hasNewValue = 1;
42579 let opNewValue = 0;
42580 let DecoderNamespace = "EXT_mmvec";
42581 }
42582 def V6_vrounduwuh_128B : HInst<
42583 (outs VectorRegs128B:$Vd32),
42584 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42585 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
42586 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42587 let Inst{7-5} = 0b100;
42588 let Inst{13-13} = 0b0;
42589 let Inst{31-21} = 0b00011111111;
42590 let hasNewValue = 1;
42591 let opNewValue = 0;
42592 let DecoderNamespace = "EXT_mmvec";
42593 let isCodeGenOnly = 1;
42594 }
42595 def V6_vrounduwuh_alt : HInst<
42596 (outs VectorRegs:$Vd32),
42597 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42598 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
42599 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42600 let hasNewValue = 1;
42601 let opNewValue = 0;
42602 let isPseudo = 1;
42603 let isCodeGenOnly = 1;
42604 let DecoderNamespace = "EXT_mmvec";
42605 }
42606 def V6_vrounduwuh_alt_128B : HInst<
42607 (outs VectorRegs128B:$Vd32),
42608 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42609 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
42610 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42611 let hasNewValue = 1;
42612 let opNewValue = 0;
42613 let isPseudo = 1;
42614 let isCodeGenOnly = 1;
42615 let DecoderNamespace = "EXT_mmvec";
42616 let isCodeGenOnly = 1;
42617 }
42618 def V6_vroundwh : HInst<
42619 (outs VectorRegs:$Vd32),
42620 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42621 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
42622 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42623 let Inst{7-5} = 0b100;
42624 let Inst{13-13} = 0b0;
42625 let Inst{31-21} = 0b00011111011;
42626 let hasNewValue = 1;
42627 let opNewValue = 0;
42628 let DecoderNamespace = "EXT_mmvec";
42629 }
42630 def V6_vroundwh_128B : HInst<
42631 (outs VectorRegs128B:$Vd32),
42632 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42633 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
42634 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42635 let Inst{7-5} = 0b100;
42636 let Inst{13-13} = 0b0;
42637 let Inst{31-21} = 0b00011111011;
42638 let hasNewValue = 1;
42639 let opNewValue = 0;
42640 let DecoderNamespace = "EXT_mmvec";
42641 let isCodeGenOnly = 1;
42642 }
42643 def V6_vroundwh_alt : HInst<
42644 (outs VectorRegs:$Vd32),
42645 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42646 "$Vd32 = vroundwh($Vu32,$Vv32):sat",
42647 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42648 let hasNewValue = 1;
42649 let opNewValue = 0;
42650 let isPseudo = 1;
42651 let isCodeGenOnly = 1;
42652 let DecoderNamespace = "EXT_mmvec";
42653 }
42654 def V6_vroundwh_alt_128B : HInst<
42655 (outs VectorRegs128B:$Vd32),
42656 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42657 "$Vd32 = vroundwh($Vu32,$Vv32):sat",
42658 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42659 let hasNewValue = 1;
42660 let opNewValue = 0;
42661 let isPseudo = 1;
42662 let isCodeGenOnly = 1;
42663 let DecoderNamespace = "EXT_mmvec";
42664 let isCodeGenOnly = 1;
42665 }
42666 def V6_vroundwuh : HInst<
42667 (outs VectorRegs:$Vd32),
42668 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42669 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
42670 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42671 let Inst{7-5} = 0b101;
42672 let Inst{13-13} = 0b0;
42673 let Inst{31-21} = 0b00011111011;
42674 let hasNewValue = 1;
42675 let opNewValue = 0;
42676 let DecoderNamespace = "EXT_mmvec";
42677 }
42678 def V6_vroundwuh_128B : HInst<
42679 (outs VectorRegs128B:$Vd32),
42680 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42681 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
42682 tc_45453b98, TypeCVI_VS>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42683 let Inst{7-5} = 0b101;
42684 let Inst{13-13} = 0b0;
42685 let Inst{31-21} = 0b00011111011;
42686 let hasNewValue = 1;
42687 let opNewValue = 0;
42688 let DecoderNamespace = "EXT_mmvec";
42689 let isCodeGenOnly = 1;
42690 }
42691 def V6_vroundwuh_alt : HInst<
42692 (outs VectorRegs:$Vd32),
42693 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42694 "$Vd32 = vroundwuh($Vu32,$Vv32):sat",
42695 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42696 let hasNewValue = 1;
42697 let opNewValue = 0;
42698 let isPseudo = 1;
42699 let isCodeGenOnly = 1;
42700 let DecoderNamespace = "EXT_mmvec";
42701 }
42702 def V6_vroundwuh_alt_128B : HInst<
42703 (outs VectorRegs128B:$Vd32),
42704 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42705 "$Vd32 = vroundwuh($Vu32,$Vv32):sat",
42706 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42707 let hasNewValue = 1;
42708 let opNewValue = 0;
42709 let isPseudo = 1;
42710 let isCodeGenOnly = 1;
42711 let DecoderNamespace = "EXT_mmvec";
42712 let isCodeGenOnly = 1;
42713 }
42714 def V6_vrsadubi : HInst<
42715 (outs VecDblRegs:$Vdd32),
42716 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42717 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
42718 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
42719 let Inst{7-6} = 0b11;
42720 let Inst{13-13} = 0b0;
42721 let Inst{31-21} = 0b00011001010;
42722 let hasNewValue = 1;
42723 let opNewValue = 0;
42724 let DecoderNamespace = "EXT_mmvec";
42725 }
42726 def V6_vrsadubi_128B : HInst<
42727 (outs VecDblRegs128B:$Vdd32),
42728 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42729 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
42730 tc_7e9f581b, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[HasV60T,UseHVX]> {
42731 let Inst{7-6} = 0b11;
42732 let Inst{13-13} = 0b0;
42733 let Inst{31-21} = 0b00011001010;
42734 let hasNewValue = 1;
42735 let opNewValue = 0;
42736 let DecoderNamespace = "EXT_mmvec";
42737 let isCodeGenOnly = 1;
42738 }
42739 def V6_vrsadubi_acc : HInst<
42740 (outs VecDblRegs:$Vxx32),
42741 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42742 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
42743 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
42744 let Inst{7-6} = 0b11;
42745 let Inst{13-13} = 0b1;
42746 let Inst{31-21} = 0b00011001010;
42747 let hasNewValue = 1;
42748 let opNewValue = 0;
42749 let isAccumulator = 1;
42750 let DecoderNamespace = "EXT_mmvec";
42751 let Constraints = "$Vxx32 = $Vxx32in";
42752 }
42753 def V6_vrsadubi_acc_128B : HInst<
42754 (outs VecDblRegs128B:$Vxx32),
42755 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42756 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
42757 tc_41f99e1c, TypeCVI_VX_DV>, Enc_d483b9, Requires<[HasV60T,UseHVX]> {
42758 let Inst{7-6} = 0b11;
42759 let Inst{13-13} = 0b1;
42760 let Inst{31-21} = 0b00011001010;
42761 let hasNewValue = 1;
42762 let opNewValue = 0;
42763 let isAccumulator = 1;
42764 let DecoderNamespace = "EXT_mmvec";
42765 let isCodeGenOnly = 1;
42766 let Constraints = "$Vxx32 = $Vxx32in";
42767 }
42768 def V6_vrsadubi_acc_alt : HInst<
42769 (outs VecDblRegs:$Vxx32),
42770 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42771 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
42772 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42773 let hasNewValue = 1;
42774 let opNewValue = 0;
42775 let isAccumulator = 1;
42776 let isPseudo = 1;
42777 let isCodeGenOnly = 1;
42778 let DecoderNamespace = "EXT_mmvec";
42779 let Constraints = "$Vxx32 = $Vxx32in";
42780 }
42781 def V6_vrsadubi_acc_alt_128B : HInst<
42782 (outs VecDblRegs128B:$Vxx32),
42783 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42784 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
42785 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42786 let hasNewValue = 1;
42787 let opNewValue = 0;
42788 let isAccumulator = 1;
42789 let isPseudo = 1;
42790 let isCodeGenOnly = 1;
42791 let DecoderNamespace = "EXT_mmvec";
42792 let isCodeGenOnly = 1;
42793 let Constraints = "$Vxx32 = $Vxx32in";
42794 }
42795 def V6_vrsadubi_alt : HInst<
42796 (outs VecDblRegs:$Vdd32),
42797 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42798 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
42799 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42800 let hasNewValue = 1;
42801 let opNewValue = 0;
42802 let isPseudo = 1;
42803 let isCodeGenOnly = 1;
42804 let DecoderNamespace = "EXT_mmvec";
42805 }
42806 def V6_vrsadubi_alt_128B : HInst<
42807 (outs VecDblRegs128B:$Vdd32),
42808 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
42809 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
42810 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42811 let hasNewValue = 1;
42812 let opNewValue = 0;
42813 let isPseudo = 1;
42814 let isCodeGenOnly = 1;
42815 let DecoderNamespace = "EXT_mmvec";
42816 let isCodeGenOnly = 1;
42817 }
42818 def V6_vsathub : HInst<
42819 (outs VectorRegs:$Vd32),
42820 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42821 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
42822 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42823 let Inst{7-5} = 0b010;
42824 let Inst{13-13} = 0b0;
42825 let Inst{31-21} = 0b00011111011;
42826 let hasNewValue = 1;
42827 let opNewValue = 0;
42828 let DecoderNamespace = "EXT_mmvec";
42829 }
42830 def V6_vsathub_128B : HInst<
42831 (outs VectorRegs128B:$Vd32),
42832 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42833 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
42834 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42835 let Inst{7-5} = 0b010;
42836 let Inst{13-13} = 0b0;
42837 let Inst{31-21} = 0b00011111011;
42838 let hasNewValue = 1;
42839 let opNewValue = 0;
42840 let DecoderNamespace = "EXT_mmvec";
42841 let isCodeGenOnly = 1;
42842 }
42843 def V6_vsathub_alt : HInst<
42844 (outs VectorRegs:$Vd32),
42845 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42846 "$Vd32 = vsathub($Vu32,$Vv32)",
42847 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42848 let hasNewValue = 1;
42849 let opNewValue = 0;
42850 let isPseudo = 1;
42851 let isCodeGenOnly = 1;
42852 let DecoderNamespace = "EXT_mmvec";
42853 }
42854 def V6_vsathub_alt_128B : HInst<
42855 (outs VectorRegs128B:$Vd32),
42856 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42857 "$Vd32 = vsathub($Vu32,$Vv32)",
42858 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42859 let hasNewValue = 1;
42860 let opNewValue = 0;
42861 let isPseudo = 1;
42862 let isCodeGenOnly = 1;
42863 let DecoderNamespace = "EXT_mmvec";
42864 let isCodeGenOnly = 1;
42865 }
42866 def V6_vsatuwuh : HInst<
42867 (outs VectorRegs:$Vd32),
42868 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42869 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
42870 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42871 let Inst{7-5} = 0b110;
42872 let Inst{13-13} = 0b0;
42873 let Inst{31-21} = 0b00011111001;
42874 let hasNewValue = 1;
42875 let opNewValue = 0;
42876 let DecoderNamespace = "EXT_mmvec";
42877 }
42878 def V6_vsatuwuh_128B : HInst<
42879 (outs VectorRegs128B:$Vd32),
42880 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42881 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
42882 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
42883 let Inst{7-5} = 0b110;
42884 let Inst{13-13} = 0b0;
42885 let Inst{31-21} = 0b00011111001;
42886 let hasNewValue = 1;
42887 let opNewValue = 0;
42888 let DecoderNamespace = "EXT_mmvec";
42889 let isCodeGenOnly = 1;
42890 }
42891 def V6_vsatuwuh_alt : HInst<
42892 (outs VectorRegs:$Vd32),
42893 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42894 "$Vd32 = vsatuwuh($Vu32,$Vv32)",
42895 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42896 let hasNewValue = 1;
42897 let opNewValue = 0;
42898 let isPseudo = 1;
42899 let isCodeGenOnly = 1;
42900 let DecoderNamespace = "EXT_mmvec";
42901 }
42902 def V6_vsatuwuh_alt_128B : HInst<
42903 (outs VectorRegs128B:$Vd32),
42904 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42905 "$Vd32 = vsatuwuh($Vu32,$Vv32)",
42906 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
42907 let hasNewValue = 1;
42908 let opNewValue = 0;
42909 let isPseudo = 1;
42910 let isCodeGenOnly = 1;
42911 let DecoderNamespace = "EXT_mmvec";
42912 let isCodeGenOnly = 1;
42913 }
42914 def V6_vsatwh : HInst<
42915 (outs VectorRegs:$Vd32),
42916 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42917 "$Vd32.h = vsat($Vu32.w,$Vv32.w)",
42918 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42919 let Inst{7-5} = 0b011;
42920 let Inst{13-13} = 0b0;
42921 let Inst{31-21} = 0b00011111011;
42922 let hasNewValue = 1;
42923 let opNewValue = 0;
42924 let DecoderNamespace = "EXT_mmvec";
42925 }
42926 def V6_vsatwh_128B : HInst<
42927 (outs VectorRegs128B:$Vd32),
42928 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42929 "$Vd32.h = vsat($Vu32.w,$Vv32.w)",
42930 tc_9b9642a1, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
42931 let Inst{7-5} = 0b011;
42932 let Inst{13-13} = 0b0;
42933 let Inst{31-21} = 0b00011111011;
42934 let hasNewValue = 1;
42935 let opNewValue = 0;
42936 let DecoderNamespace = "EXT_mmvec";
42937 let isCodeGenOnly = 1;
42938 }
42939 def V6_vsatwh_alt : HInst<
42940 (outs VectorRegs:$Vd32),
42941 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
42942 "$Vd32 = vsatwh($Vu32,$Vv32)",
42943 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42944 let hasNewValue = 1;
42945 let opNewValue = 0;
42946 let isPseudo = 1;
42947 let isCodeGenOnly = 1;
42948 let DecoderNamespace = "EXT_mmvec";
42949 }
42950 def V6_vsatwh_alt_128B : HInst<
42951 (outs VectorRegs128B:$Vd32),
42952 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
42953 "$Vd32 = vsatwh($Vu32,$Vv32)",
42954 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42955 let hasNewValue = 1;
42956 let opNewValue = 0;
42957 let isPseudo = 1;
42958 let isCodeGenOnly = 1;
42959 let DecoderNamespace = "EXT_mmvec";
42960 let isCodeGenOnly = 1;
42961 }
42962 def V6_vsb : HInst<
42963 (outs VecDblRegs:$Vdd32),
42964 (ins VectorRegs:$Vu32),
42965 "$Vdd32.h = vsxt($Vu32.b)",
42966 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
42967 let Inst{7-5} = 0b011;
42968 let Inst{13-13} = 0b0;
42969 let Inst{31-16} = 0b0001111000000010;
42970 let hasNewValue = 1;
42971 let opNewValue = 0;
42972 let DecoderNamespace = "EXT_mmvec";
42973 }
42974 def V6_vsb_128B : HInst<
42975 (outs VecDblRegs128B:$Vdd32),
42976 (ins VectorRegs128B:$Vu32),
42977 "$Vdd32.h = vsxt($Vu32.b)",
42978 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
42979 let Inst{7-5} = 0b011;
42980 let Inst{13-13} = 0b0;
42981 let Inst{31-16} = 0b0001111000000010;
42982 let hasNewValue = 1;
42983 let opNewValue = 0;
42984 let DecoderNamespace = "EXT_mmvec";
42985 let isCodeGenOnly = 1;
42986 }
42987 def V6_vsb_alt : HInst<
42988 (outs VecDblRegs:$Vdd32),
42989 (ins VectorRegs:$Vu32),
42990 "$Vdd32 = vsxtb($Vu32)",
42991 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
42992 let hasNewValue = 1;
42993 let opNewValue = 0;
42994 let isPseudo = 1;
42995 let isCodeGenOnly = 1;
42996 let DecoderNamespace = "EXT_mmvec";
42997 }
42998 def V6_vsb_alt_128B : HInst<
42999 (outs VecDblRegs128B:$Vdd32),
43000 (ins VectorRegs128B:$Vu32),
43001 "$Vdd32 = vsxtb($Vu32)",
43002 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43003 let hasNewValue = 1;
43004 let opNewValue = 0;
43005 let isPseudo = 1;
43006 let isCodeGenOnly = 1;
43007 let DecoderNamespace = "EXT_mmvec";
43008 let isCodeGenOnly = 1;
43009 }
43010 def V6_vsh : HInst<
43011 (outs VecDblRegs:$Vdd32),
43012 (ins VectorRegs:$Vu32),
43013 "$Vdd32.w = vsxt($Vu32.h)",
43014 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
43015 let Inst{7-5} = 0b100;
43016 let Inst{13-13} = 0b0;
43017 let Inst{31-16} = 0b0001111000000010;
43018 let hasNewValue = 1;
43019 let opNewValue = 0;
43020 let DecoderNamespace = "EXT_mmvec";
43021 }
43022 def V6_vsh_128B : HInst<
43023 (outs VecDblRegs128B:$Vdd32),
43024 (ins VectorRegs128B:$Vu32),
43025 "$Vdd32.w = vsxt($Vu32.h)",
43026 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
43027 let Inst{7-5} = 0b100;
43028 let Inst{13-13} = 0b0;
43029 let Inst{31-16} = 0b0001111000000010;
43030 let hasNewValue = 1;
43031 let opNewValue = 0;
43032 let DecoderNamespace = "EXT_mmvec";
43033 let isCodeGenOnly = 1;
43034 }
43035 def V6_vsh_alt : HInst<
43036 (outs VecDblRegs:$Vdd32),
43037 (ins VectorRegs:$Vu32),
43038 "$Vdd32 = vsxth($Vu32)",
43039 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43040 let hasNewValue = 1;
43041 let opNewValue = 0;
43042 let isPseudo = 1;
43043 let isCodeGenOnly = 1;
43044 let DecoderNamespace = "EXT_mmvec";
43045 }
43046 def V6_vsh_alt_128B : HInst<
43047 (outs VecDblRegs128B:$Vdd32),
43048 (ins VectorRegs128B:$Vu32),
43049 "$Vdd32 = vsxth($Vu32)",
43050 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43051 let hasNewValue = 1;
43052 let opNewValue = 0;
43053 let isPseudo = 1;
43054 let isCodeGenOnly = 1;
43055 let DecoderNamespace = "EXT_mmvec";
43056 let isCodeGenOnly = 1;
43057 }
43058 def V6_vshufeh : HInst<
43059 (outs VectorRegs:$Vd32),
43060 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43061 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
43062 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43063 let Inst{7-5} = 0b011;
43064 let Inst{13-13} = 0b0;
43065 let Inst{31-21} = 0b00011111010;
43066 let hasNewValue = 1;
43067 let opNewValue = 0;
43068 let DecoderNamespace = "EXT_mmvec";
43069 }
43070 def V6_vshufeh_128B : HInst<
43071 (outs VectorRegs128B:$Vd32),
43072 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43073 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
43074 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43075 let Inst{7-5} = 0b011;
43076 let Inst{13-13} = 0b0;
43077 let Inst{31-21} = 0b00011111010;
43078 let hasNewValue = 1;
43079 let opNewValue = 0;
43080 let DecoderNamespace = "EXT_mmvec";
43081 let isCodeGenOnly = 1;
43082 }
43083 def V6_vshufeh_alt : HInst<
43084 (outs VectorRegs:$Vd32),
43085 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43086 "$Vd32 = vshuffeh($Vu32,$Vv32)",
43087 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43088 let hasNewValue = 1;
43089 let opNewValue = 0;
43090 let isPseudo = 1;
43091 let isCodeGenOnly = 1;
43092 let DecoderNamespace = "EXT_mmvec";
43093 }
43094 def V6_vshufeh_alt_128B : HInst<
43095 (outs VectorRegs128B:$Vd32),
43096 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43097 "$Vd32 = vshuffeh($Vu32,$Vv32)",
43098 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43099 let hasNewValue = 1;
43100 let opNewValue = 0;
43101 let isPseudo = 1;
43102 let isCodeGenOnly = 1;
43103 let DecoderNamespace = "EXT_mmvec";
43104 let isCodeGenOnly = 1;
43105 }
43106 def V6_vshuff : HInst<
43107 (outs VectorRegs:$Vy32, VectorRegs:$Vx32),
43108 (ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
43109 "vshuff($Vy32,$Vx32,$Rt32)",
43110 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
43111 let Inst{7-5} = 0b001;
43112 let Inst{13-13} = 0b1;
43113 let Inst{31-21} = 0b00011001111;
43114 let hasNewValue = 1;
43115 let opNewValue = 0;
43116 let hasNewValue2 = 1;
43117 let opNewValue2 = 1;
43118 let DecoderNamespace = "EXT_mmvec";
43119 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
43120 }
43121 def V6_vshuff_128B : HInst<
43122 (outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
43123 (ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
43124 "vshuff($Vy32,$Vx32,$Rt32)",
43125 tc_5c120602, TypeCVI_VP_VS>, Enc_989021, Requires<[HasV60T,UseHVX]> {
43126 let Inst{7-5} = 0b001;
43127 let Inst{13-13} = 0b1;
43128 let Inst{31-21} = 0b00011001111;
43129 let hasNewValue = 1;
43130 let opNewValue = 0;
43131 let hasNewValue2 = 1;
43132 let opNewValue2 = 1;
43133 let DecoderNamespace = "EXT_mmvec";
43134 let isCodeGenOnly = 1;
43135 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
43136 }
43137 def V6_vshuffb : HInst<
43138 (outs VectorRegs:$Vd32),
43139 (ins VectorRegs:$Vu32),
43140 "$Vd32.b = vshuff($Vu32.b)",
43141 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
43142 let Inst{7-5} = 0b000;
43143 let Inst{13-13} = 0b0;
43144 let Inst{31-16} = 0b0001111000000010;
43145 let hasNewValue = 1;
43146 let opNewValue = 0;
43147 let DecoderNamespace = "EXT_mmvec";
43148 }
43149 def V6_vshuffb_128B : HInst<
43150 (outs VectorRegs128B:$Vd32),
43151 (ins VectorRegs128B:$Vu32),
43152 "$Vd32.b = vshuff($Vu32.b)",
43153 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
43154 let Inst{7-5} = 0b000;
43155 let Inst{13-13} = 0b0;
43156 let Inst{31-16} = 0b0001111000000010;
43157 let hasNewValue = 1;
43158 let opNewValue = 0;
43159 let DecoderNamespace = "EXT_mmvec";
43160 let isCodeGenOnly = 1;
43161 }
43162 def V6_vshuffb_alt : HInst<
43163 (outs VectorRegs:$Vd32),
43164 (ins VectorRegs:$Vu32),
43165 "$Vd32 = vshuffb($Vu32)",
43166 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43167 let hasNewValue = 1;
43168 let opNewValue = 0;
43169 let isPseudo = 1;
43170 let isCodeGenOnly = 1;
43171 let DecoderNamespace = "EXT_mmvec";
43172 }
43173 def V6_vshuffb_alt_128B : HInst<
43174 (outs VectorRegs128B:$Vd32),
43175 (ins VectorRegs128B:$Vu32),
43176 "$Vd32 = vshuffb($Vu32)",
43177 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43178 let hasNewValue = 1;
43179 let opNewValue = 0;
43180 let isPseudo = 1;
43181 let isCodeGenOnly = 1;
43182 let DecoderNamespace = "EXT_mmvec";
43183 let isCodeGenOnly = 1;
43184 }
43185 def V6_vshuffeb : HInst<
43186 (outs VectorRegs:$Vd32),
43187 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43188 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
43189 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43190 let Inst{7-5} = 0b001;
43191 let Inst{13-13} = 0b0;
43192 let Inst{31-21} = 0b00011111010;
43193 let hasNewValue = 1;
43194 let opNewValue = 0;
43195 let DecoderNamespace = "EXT_mmvec";
43196 }
43197 def V6_vshuffeb_128B : HInst<
43198 (outs VectorRegs128B:$Vd32),
43199 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43200 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
43201 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43202 let Inst{7-5} = 0b001;
43203 let Inst{13-13} = 0b0;
43204 let Inst{31-21} = 0b00011111010;
43205 let hasNewValue = 1;
43206 let opNewValue = 0;
43207 let DecoderNamespace = "EXT_mmvec";
43208 let isCodeGenOnly = 1;
43209 }
43210 def V6_vshuffeb_alt : HInst<
43211 (outs VectorRegs:$Vd32),
43212 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43213 "$Vd32 = vshuffeb($Vu32,$Vv32)",
43214 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43215 let hasNewValue = 1;
43216 let opNewValue = 0;
43217 let isPseudo = 1;
43218 let isCodeGenOnly = 1;
43219 let DecoderNamespace = "EXT_mmvec";
43220 }
43221 def V6_vshuffeb_alt_128B : HInst<
43222 (outs VectorRegs128B:$Vd32),
43223 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43224 "$Vd32 = vshuffeb($Vu32,$Vv32)",
43225 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43226 let hasNewValue = 1;
43227 let opNewValue = 0;
43228 let isPseudo = 1;
43229 let isCodeGenOnly = 1;
43230 let DecoderNamespace = "EXT_mmvec";
43231 let isCodeGenOnly = 1;
43232 }
43233 def V6_vshuffh : HInst<
43234 (outs VectorRegs:$Vd32),
43235 (ins VectorRegs:$Vu32),
43236 "$Vd32.h = vshuff($Vu32.h)",
43237 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
43238 let Inst{7-5} = 0b111;
43239 let Inst{13-13} = 0b0;
43240 let Inst{31-16} = 0b0001111000000001;
43241 let hasNewValue = 1;
43242 let opNewValue = 0;
43243 let DecoderNamespace = "EXT_mmvec";
43244 }
43245 def V6_vshuffh_128B : HInst<
43246 (outs VectorRegs128B:$Vd32),
43247 (ins VectorRegs128B:$Vu32),
43248 "$Vd32.h = vshuff($Vu32.h)",
43249 tc_e6299d16, TypeCVI_VP>, Enc_e7581c, Requires<[HasV60T,UseHVX]> {
43250 let Inst{7-5} = 0b111;
43251 let Inst{13-13} = 0b0;
43252 let Inst{31-16} = 0b0001111000000001;
43253 let hasNewValue = 1;
43254 let opNewValue = 0;
43255 let DecoderNamespace = "EXT_mmvec";
43256 let isCodeGenOnly = 1;
43257 }
43258 def V6_vshuffh_alt : HInst<
43259 (outs VectorRegs:$Vd32),
43260 (ins VectorRegs:$Vu32),
43261 "$Vd32 = vshuffh($Vu32)",
43262 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43263 let hasNewValue = 1;
43264 let opNewValue = 0;
43265 let isPseudo = 1;
43266 let isCodeGenOnly = 1;
43267 let DecoderNamespace = "EXT_mmvec";
43268 }
43269 def V6_vshuffh_alt_128B : HInst<
43270 (outs VectorRegs128B:$Vd32),
43271 (ins VectorRegs128B:$Vu32),
43272 "$Vd32 = vshuffh($Vu32)",
43273 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43274 let hasNewValue = 1;
43275 let opNewValue = 0;
43276 let isPseudo = 1;
43277 let isCodeGenOnly = 1;
43278 let DecoderNamespace = "EXT_mmvec";
43279 let isCodeGenOnly = 1;
43280 }
43281 def V6_vshuffob : HInst<
43282 (outs VectorRegs:$Vd32),
43283 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43284 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
43285 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43286 let Inst{7-5} = 0b010;
43287 let Inst{13-13} = 0b0;
43288 let Inst{31-21} = 0b00011111010;
43289 let hasNewValue = 1;
43290 let opNewValue = 0;
43291 let DecoderNamespace = "EXT_mmvec";
43292 }
43293 def V6_vshuffob_128B : HInst<
43294 (outs VectorRegs128B:$Vd32),
43295 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43296 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
43297 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43298 let Inst{7-5} = 0b010;
43299 let Inst{13-13} = 0b0;
43300 let Inst{31-21} = 0b00011111010;
43301 let hasNewValue = 1;
43302 let opNewValue = 0;
43303 let DecoderNamespace = "EXT_mmvec";
43304 let isCodeGenOnly = 1;
43305 }
43306 def V6_vshuffob_alt : HInst<
43307 (outs VectorRegs:$Vd32),
43308 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43309 "$Vd32 = vshuffob($Vu32,$Vv32)",
43310 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43311 let hasNewValue = 1;
43312 let opNewValue = 0;
43313 let isPseudo = 1;
43314 let isCodeGenOnly = 1;
43315 let DecoderNamespace = "EXT_mmvec";
43316 }
43317 def V6_vshuffob_alt_128B : HInst<
43318 (outs VectorRegs128B:$Vd32),
43319 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43320 "$Vd32 = vshuffob($Vu32,$Vv32)",
43321 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43322 let hasNewValue = 1;
43323 let opNewValue = 0;
43324 let isPseudo = 1;
43325 let isCodeGenOnly = 1;
43326 let DecoderNamespace = "EXT_mmvec";
43327 let isCodeGenOnly = 1;
43328 }
43329 def V6_vshuffvdd : HInst<
43330 (outs VecDblRegs:$Vdd32),
43331 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, IntRegsLow8:$Rt8),
43332 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
43333 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
43334 let Inst{7-5} = 0b011;
43335 let Inst{13-13} = 0b1;
43336 let Inst{31-24} = 0b00011011;
43337 let hasNewValue = 1;
43338 let opNewValue = 0;
43339 let DecoderNamespace = "EXT_mmvec";
43340 }
43341 def V6_vshuffvdd_128B : HInst<
43342 (outs VecDblRegs128B:$Vdd32),
43343 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, IntRegsLow8:$Rt8),
43344 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
43345 tc_4e2a5159, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[HasV60T,UseHVX]> {
43346 let Inst{7-5} = 0b011;
43347 let Inst{13-13} = 0b1;
43348 let Inst{31-24} = 0b00011011;
43349 let hasNewValue = 1;
43350 let opNewValue = 0;
43351 let DecoderNamespace = "EXT_mmvec";
43352 let isCodeGenOnly = 1;
43353 }
43354 def V6_vshufoeb : HInst<
43355 (outs VecDblRegs:$Vdd32),
43356 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43357 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
43358 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
43359 let Inst{7-5} = 0b110;
43360 let Inst{13-13} = 0b0;
43361 let Inst{31-21} = 0b00011111010;
43362 let hasNewValue = 1;
43363 let opNewValue = 0;
43364 let DecoderNamespace = "EXT_mmvec";
43365 }
43366 def V6_vshufoeb_128B : HInst<
43367 (outs VecDblRegs128B:$Vdd32),
43368 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43369 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
43370 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
43371 let Inst{7-5} = 0b110;
43372 let Inst{13-13} = 0b0;
43373 let Inst{31-21} = 0b00011111010;
43374 let hasNewValue = 1;
43375 let opNewValue = 0;
43376 let DecoderNamespace = "EXT_mmvec";
43377 let isCodeGenOnly = 1;
43378 }
43379 def V6_vshufoeb_alt : HInst<
43380 (outs VecDblRegs:$Vdd32),
43381 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43382 "$Vdd32 = vshuffoeb($Vu32,$Vv32)",
43383 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43384 let hasNewValue = 1;
43385 let opNewValue = 0;
43386 let isPseudo = 1;
43387 let isCodeGenOnly = 1;
43388 let DecoderNamespace = "EXT_mmvec";
43389 }
43390 def V6_vshufoeb_alt_128B : HInst<
43391 (outs VecDblRegs128B:$Vdd32),
43392 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43393 "$Vdd32 = vshuffoeb($Vu32,$Vv32)",
43394 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43395 let hasNewValue = 1;
43396 let opNewValue = 0;
43397 let isPseudo = 1;
43398 let isCodeGenOnly = 1;
43399 let DecoderNamespace = "EXT_mmvec";
43400 let isCodeGenOnly = 1;
43401 }
43402 def V6_vshufoeh : HInst<
43403 (outs VecDblRegs:$Vdd32),
43404 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43405 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
43406 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
43407 let Inst{7-5} = 0b101;
43408 let Inst{13-13} = 0b0;
43409 let Inst{31-21} = 0b00011111010;
43410 let hasNewValue = 1;
43411 let opNewValue = 0;
43412 let DecoderNamespace = "EXT_mmvec";
43413 }
43414 def V6_vshufoeh_128B : HInst<
43415 (outs VecDblRegs128B:$Vdd32),
43416 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43417 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
43418 tc_97c165b9, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
43419 let Inst{7-5} = 0b101;
43420 let Inst{13-13} = 0b0;
43421 let Inst{31-21} = 0b00011111010;
43422 let hasNewValue = 1;
43423 let opNewValue = 0;
43424 let DecoderNamespace = "EXT_mmvec";
43425 let isCodeGenOnly = 1;
43426 }
43427 def V6_vshufoeh_alt : HInst<
43428 (outs VecDblRegs:$Vdd32),
43429 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43430 "$Vdd32 = vshuffoeh($Vu32,$Vv32)",
43431 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43432 let hasNewValue = 1;
43433 let opNewValue = 0;
43434 let isPseudo = 1;
43435 let isCodeGenOnly = 1;
43436 let DecoderNamespace = "EXT_mmvec";
43437 }
43438 def V6_vshufoeh_alt_128B : HInst<
43439 (outs VecDblRegs128B:$Vdd32),
43440 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43441 "$Vdd32 = vshuffoeh($Vu32,$Vv32)",
43442 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43443 let hasNewValue = 1;
43444 let opNewValue = 0;
43445 let isPseudo = 1;
43446 let isCodeGenOnly = 1;
43447 let DecoderNamespace = "EXT_mmvec";
43448 let isCodeGenOnly = 1;
43449 }
43450 def V6_vshufoh : HInst<
43451 (outs VectorRegs:$Vd32),
43452 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43453 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
43454 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43455 let Inst{7-5} = 0b100;
43456 let Inst{13-13} = 0b0;
43457 let Inst{31-21} = 0b00011111010;
43458 let hasNewValue = 1;
43459 let opNewValue = 0;
43460 let DecoderNamespace = "EXT_mmvec";
43461 }
43462 def V6_vshufoh_128B : HInst<
43463 (outs VectorRegs128B:$Vd32),
43464 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43465 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
43466 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43467 let Inst{7-5} = 0b100;
43468 let Inst{13-13} = 0b0;
43469 let Inst{31-21} = 0b00011111010;
43470 let hasNewValue = 1;
43471 let opNewValue = 0;
43472 let DecoderNamespace = "EXT_mmvec";
43473 let isCodeGenOnly = 1;
43474 }
43475 def V6_vshufoh_alt : HInst<
43476 (outs VectorRegs:$Vd32),
43477 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43478 "$Vd32 = vshuffoh($Vu32,$Vv32)",
43479 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43480 let hasNewValue = 1;
43481 let opNewValue = 0;
43482 let isPseudo = 1;
43483 let isCodeGenOnly = 1;
43484 let DecoderNamespace = "EXT_mmvec";
43485 }
43486 def V6_vshufoh_alt_128B : HInst<
43487 (outs VectorRegs128B:$Vd32),
43488 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43489 "$Vd32 = vshuffoh($Vu32,$Vv32)",
43490 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43491 let hasNewValue = 1;
43492 let opNewValue = 0;
43493 let isPseudo = 1;
43494 let isCodeGenOnly = 1;
43495 let DecoderNamespace = "EXT_mmvec";
43496 let isCodeGenOnly = 1;
43497 }
43498 def V6_vsubb : HInst<
43499 (outs VectorRegs:$Vd32),
43500 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43501 "$Vd32.b = vsub($Vu32.b,$Vv32.b)",
43502 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43503 let Inst{7-5} = 0b101;
43504 let Inst{13-13} = 0b0;
43505 let Inst{31-21} = 0b00011100010;
43506 let hasNewValue = 1;
43507 let opNewValue = 0;
43508 let DecoderNamespace = "EXT_mmvec";
43509 }
43510 def V6_vsubb_128B : HInst<
43511 (outs VectorRegs128B:$Vd32),
43512 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43513 "$Vd32.b = vsub($Vu32.b,$Vv32.b)",
43514 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43515 let Inst{7-5} = 0b101;
43516 let Inst{13-13} = 0b0;
43517 let Inst{31-21} = 0b00011100010;
43518 let hasNewValue = 1;
43519 let opNewValue = 0;
43520 let DecoderNamespace = "EXT_mmvec";
43521 let isCodeGenOnly = 1;
43522 }
43523 def V6_vsubb_alt : HInst<
43524 (outs VectorRegs:$Vd32),
43525 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43526 "$Vd32 = vsubb($Vu32,$Vv32)",
43527 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43528 let hasNewValue = 1;
43529 let opNewValue = 0;
43530 let isPseudo = 1;
43531 let isCodeGenOnly = 1;
43532 let DecoderNamespace = "EXT_mmvec";
43533 }
43534 def V6_vsubb_alt_128B : HInst<
43535 (outs VectorRegs128B:$Vd32),
43536 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43537 "$Vd32 = vsubb($Vu32,$Vv32)",
43538 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43539 let hasNewValue = 1;
43540 let opNewValue = 0;
43541 let isPseudo = 1;
43542 let isCodeGenOnly = 1;
43543 let DecoderNamespace = "EXT_mmvec";
43544 let isCodeGenOnly = 1;
43545 }
43546 def V6_vsubb_dv : HInst<
43547 (outs VecDblRegs:$Vdd32),
43548 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43549 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
43550 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
43551 let Inst{7-5} = 0b011;
43552 let Inst{13-13} = 0b0;
43553 let Inst{31-21} = 0b00011100100;
43554 let hasNewValue = 1;
43555 let opNewValue = 0;
43556 let DecoderNamespace = "EXT_mmvec";
43557 }
43558 def V6_vsubb_dv_128B : HInst<
43559 (outs VecDblRegs128B:$Vdd32),
43560 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43561 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
43562 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
43563 let Inst{7-5} = 0b011;
43564 let Inst{13-13} = 0b0;
43565 let Inst{31-21} = 0b00011100100;
43566 let hasNewValue = 1;
43567 let opNewValue = 0;
43568 let DecoderNamespace = "EXT_mmvec";
43569 let isCodeGenOnly = 1;
43570 }
43571 def V6_vsubb_dv_alt : HInst<
43572 (outs VecDblRegs:$Vdd32),
43573 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43574 "$Vdd32 = vsubb($Vuu32,$Vvv32)",
43575 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43576 let hasNewValue = 1;
43577 let opNewValue = 0;
43578 let isPseudo = 1;
43579 let isCodeGenOnly = 1;
43580 let DecoderNamespace = "EXT_mmvec";
43581 }
43582 def V6_vsubb_dv_alt_128B : HInst<
43583 (outs VecDblRegs128B:$Vdd32),
43584 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43585 "$Vdd32 = vsubb($Vuu32,$Vvv32)",
43586 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43587 let hasNewValue = 1;
43588 let opNewValue = 0;
43589 let isPseudo = 1;
43590 let isCodeGenOnly = 1;
43591 let DecoderNamespace = "EXT_mmvec";
43592 let isCodeGenOnly = 1;
43593 }
43594 def V6_vsubbnq : HInst<
43595 (outs VectorRegs:$Vx32),
43596 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43597 "if (!$Qv4) $Vx32.b -= $Vu32.b",
43598 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43599 let Inst{7-5} = 0b001;
43600 let Inst{13-13} = 0b1;
43601 let Inst{21-16} = 0b000010;
43602 let Inst{31-24} = 0b00011110;
43603 let hasNewValue = 1;
43604 let opNewValue = 0;
43605 let DecoderNamespace = "EXT_mmvec";
43606 let Constraints = "$Vx32 = $Vx32in";
43607 }
43608 def V6_vsubbnq_128B : HInst<
43609 (outs VectorRegs128B:$Vx32),
43610 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43611 "if (!$Qv4) $Vx32.b -= $Vu32.b",
43612 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43613 let Inst{7-5} = 0b001;
43614 let Inst{13-13} = 0b1;
43615 let Inst{21-16} = 0b000010;
43616 let Inst{31-24} = 0b00011110;
43617 let hasNewValue = 1;
43618 let opNewValue = 0;
43619 let DecoderNamespace = "EXT_mmvec";
43620 let isCodeGenOnly = 1;
43621 let Constraints = "$Vx32 = $Vx32in";
43622 }
43623 def V6_vsubbnq_alt : HInst<
43624 (outs VectorRegs:$Vx32),
43625 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43626 "if (!$Qv4.b) $Vx32.b -= $Vu32.b",
43627 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43628 let hasNewValue = 1;
43629 let opNewValue = 0;
43630 let isPseudo = 1;
43631 let isCodeGenOnly = 1;
43632 let DecoderNamespace = "EXT_mmvec";
43633 let Constraints = "$Vx32 = $Vx32in";
43634 }
43635 def V6_vsubbnq_alt_128B : HInst<
43636 (outs VectorRegs128B:$Vx32),
43637 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43638 "if (!$Qv4.b) $Vx32.b -= $Vu32.b",
43639 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43640 let hasNewValue = 1;
43641 let opNewValue = 0;
43642 let isPseudo = 1;
43643 let isCodeGenOnly = 1;
43644 let DecoderNamespace = "EXT_mmvec";
43645 let isCodeGenOnly = 1;
43646 let Constraints = "$Vx32 = $Vx32in";
43647 }
43648 def V6_vsubbq : HInst<
43649 (outs VectorRegs:$Vx32),
43650 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43651 "if ($Qv4) $Vx32.b -= $Vu32.b",
43652 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43653 let Inst{7-5} = 0b110;
43654 let Inst{13-13} = 0b1;
43655 let Inst{21-16} = 0b000001;
43656 let Inst{31-24} = 0b00011110;
43657 let hasNewValue = 1;
43658 let opNewValue = 0;
43659 let DecoderNamespace = "EXT_mmvec";
43660 let Constraints = "$Vx32 = $Vx32in";
43661 }
43662 def V6_vsubbq_128B : HInst<
43663 (outs VectorRegs128B:$Vx32),
43664 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43665 "if ($Qv4) $Vx32.b -= $Vu32.b",
43666 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43667 let Inst{7-5} = 0b110;
43668 let Inst{13-13} = 0b1;
43669 let Inst{21-16} = 0b000001;
43670 let Inst{31-24} = 0b00011110;
43671 let hasNewValue = 1;
43672 let opNewValue = 0;
43673 let DecoderNamespace = "EXT_mmvec";
43674 let isCodeGenOnly = 1;
43675 let Constraints = "$Vx32 = $Vx32in";
43676 }
43677 def V6_vsubbq_alt : HInst<
43678 (outs VectorRegs:$Vx32),
43679 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43680 "if ($Qv4.b) $Vx32.b -= $Vu32.b",
43681 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43682 let hasNewValue = 1;
43683 let opNewValue = 0;
43684 let isPseudo = 1;
43685 let isCodeGenOnly = 1;
43686 let DecoderNamespace = "EXT_mmvec";
43687 let Constraints = "$Vx32 = $Vx32in";
43688 }
43689 def V6_vsubbq_alt_128B : HInst<
43690 (outs VectorRegs128B:$Vx32),
43691 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43692 "if ($Qv4.b) $Vx32.b -= $Vu32.b",
43693 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43694 let hasNewValue = 1;
43695 let opNewValue = 0;
43696 let isPseudo = 1;
43697 let isCodeGenOnly = 1;
43698 let DecoderNamespace = "EXT_mmvec";
43699 let isCodeGenOnly = 1;
43700 let Constraints = "$Vx32 = $Vx32in";
43701 }
43702 def V6_vsubbsat : HInst<
43703 (outs VectorRegs:$Vd32),
43704 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43705 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
43706 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
43707 let Inst{7-5} = 0b010;
43708 let Inst{13-13} = 0b0;
43709 let Inst{31-21} = 0b00011111001;
43710 let hasNewValue = 1;
43711 let opNewValue = 0;
43712 let DecoderNamespace = "EXT_mmvec";
43713 }
43714 def V6_vsubbsat_128B : HInst<
43715 (outs VectorRegs128B:$Vd32),
43716 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43717 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
43718 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
43719 let Inst{7-5} = 0b010;
43720 let Inst{13-13} = 0b0;
43721 let Inst{31-21} = 0b00011111001;
43722 let hasNewValue = 1;
43723 let opNewValue = 0;
43724 let DecoderNamespace = "EXT_mmvec";
43725 let isCodeGenOnly = 1;
43726 }
43727 def V6_vsubbsat_alt : HInst<
43728 (outs VectorRegs:$Vd32),
43729 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43730 "$Vd32 = vsubb($Vu32,$Vv32):sat",
43731 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
43732 let hasNewValue = 1;
43733 let opNewValue = 0;
43734 let isPseudo = 1;
43735 let isCodeGenOnly = 1;
43736 let DecoderNamespace = "EXT_mmvec";
43737 }
43738 def V6_vsubbsat_alt_128B : HInst<
43739 (outs VectorRegs128B:$Vd32),
43740 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43741 "$Vd32 = vsubb($Vu32,$Vv32):sat",
43742 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
43743 let hasNewValue = 1;
43744 let opNewValue = 0;
43745 let isPseudo = 1;
43746 let isCodeGenOnly = 1;
43747 let DecoderNamespace = "EXT_mmvec";
43748 let isCodeGenOnly = 1;
43749 }
43750 def V6_vsubbsat_dv : HInst<
43751 (outs VecDblRegs:$Vdd32),
43752 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43753 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
43754 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
43755 let Inst{7-5} = 0b001;
43756 let Inst{13-13} = 0b0;
43757 let Inst{31-21} = 0b00011110101;
43758 let hasNewValue = 1;
43759 let opNewValue = 0;
43760 let DecoderNamespace = "EXT_mmvec";
43761 }
43762 def V6_vsubbsat_dv_128B : HInst<
43763 (outs VecDblRegs128B:$Vdd32),
43764 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43765 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
43766 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
43767 let Inst{7-5} = 0b001;
43768 let Inst{13-13} = 0b0;
43769 let Inst{31-21} = 0b00011110101;
43770 let hasNewValue = 1;
43771 let opNewValue = 0;
43772 let DecoderNamespace = "EXT_mmvec";
43773 let isCodeGenOnly = 1;
43774 }
43775 def V6_vsubbsat_dv_alt : HInst<
43776 (outs VecDblRegs:$Vdd32),
43777 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43778 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
43779 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
43780 let hasNewValue = 1;
43781 let opNewValue = 0;
43782 let isPseudo = 1;
43783 let isCodeGenOnly = 1;
43784 let DecoderNamespace = "EXT_mmvec";
43785 }
43786 def V6_vsubbsat_dv_alt_128B : HInst<
43787 (outs VecDblRegs128B:$Vdd32),
43788 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43789 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
43790 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
43791 let hasNewValue = 1;
43792 let opNewValue = 0;
43793 let isPseudo = 1;
43794 let isCodeGenOnly = 1;
43795 let DecoderNamespace = "EXT_mmvec";
43796 let isCodeGenOnly = 1;
43797 }
43798 def V6_vsubcarry : HInst<
43799 (outs VectorRegs:$Vd32, VecPredRegs:$Qx4),
43800 (ins VectorRegs:$Vu32, VectorRegs:$Vv32, VecPredRegs:$Qx4in),
43801 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
43802 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
43803 let Inst{7-7} = 0b1;
43804 let Inst{13-13} = 0b1;
43805 let Inst{31-21} = 0b00011100101;
43806 let hasNewValue = 1;
43807 let opNewValue = 0;
43808 let hasNewValue2 = 1;
43809 let opNewValue2 = 1;
43810 let DecoderNamespace = "EXT_mmvec";
43811 let Constraints = "$Qx4 = $Qx4in";
43812 }
43813 def V6_vsubcarry_128B : HInst<
43814 (outs VectorRegs128B:$Vd32, VecPredRegs128B:$Qx4),
43815 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32, VecPredRegs128B:$Qx4in),
43816 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
43817 tc_5a9fc4ec, TypeCVI_VA>, Enc_b43b67, Requires<[HasV62T,UseHVX]> {
43818 let Inst{7-7} = 0b1;
43819 let Inst{13-13} = 0b1;
43820 let Inst{31-21} = 0b00011100101;
43821 let hasNewValue = 1;
43822 let opNewValue = 0;
43823 let hasNewValue2 = 1;
43824 let opNewValue2 = 1;
43825 let DecoderNamespace = "EXT_mmvec";
43826 let isCodeGenOnly = 1;
43827 let Constraints = "$Qx4 = $Qx4in";
43828 }
43829 def V6_vsubh : HInst<
43830 (outs VectorRegs:$Vd32),
43831 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43832 "$Vd32.h = vsub($Vu32.h,$Vv32.h)",
43833 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43834 let Inst{7-5} = 0b110;
43835 let Inst{13-13} = 0b0;
43836 let Inst{31-21} = 0b00011100010;
43837 let hasNewValue = 1;
43838 let opNewValue = 0;
43839 let DecoderNamespace = "EXT_mmvec";
43840 }
43841 def V6_vsubh_128B : HInst<
43842 (outs VectorRegs128B:$Vd32),
43843 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43844 "$Vd32.h = vsub($Vu32.h,$Vv32.h)",
43845 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
43846 let Inst{7-5} = 0b110;
43847 let Inst{13-13} = 0b0;
43848 let Inst{31-21} = 0b00011100010;
43849 let hasNewValue = 1;
43850 let opNewValue = 0;
43851 let DecoderNamespace = "EXT_mmvec";
43852 let isCodeGenOnly = 1;
43853 }
43854 def V6_vsubh_alt : HInst<
43855 (outs VectorRegs:$Vd32),
43856 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
43857 "$Vd32 = vsubh($Vu32,$Vv32)",
43858 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43859 let hasNewValue = 1;
43860 let opNewValue = 0;
43861 let isPseudo = 1;
43862 let isCodeGenOnly = 1;
43863 let DecoderNamespace = "EXT_mmvec";
43864 }
43865 def V6_vsubh_alt_128B : HInst<
43866 (outs VectorRegs128B:$Vd32),
43867 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
43868 "$Vd32 = vsubh($Vu32,$Vv32)",
43869 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43870 let hasNewValue = 1;
43871 let opNewValue = 0;
43872 let isPseudo = 1;
43873 let isCodeGenOnly = 1;
43874 let DecoderNamespace = "EXT_mmvec";
43875 let isCodeGenOnly = 1;
43876 }
43877 def V6_vsubh_dv : HInst<
43878 (outs VecDblRegs:$Vdd32),
43879 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43880 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
43881 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
43882 let Inst{7-5} = 0b100;
43883 let Inst{13-13} = 0b0;
43884 let Inst{31-21} = 0b00011100100;
43885 let hasNewValue = 1;
43886 let opNewValue = 0;
43887 let DecoderNamespace = "EXT_mmvec";
43888 }
43889 def V6_vsubh_dv_128B : HInst<
43890 (outs VecDblRegs128B:$Vdd32),
43891 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43892 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
43893 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
43894 let Inst{7-5} = 0b100;
43895 let Inst{13-13} = 0b0;
43896 let Inst{31-21} = 0b00011100100;
43897 let hasNewValue = 1;
43898 let opNewValue = 0;
43899 let DecoderNamespace = "EXT_mmvec";
43900 let isCodeGenOnly = 1;
43901 }
43902 def V6_vsubh_dv_alt : HInst<
43903 (outs VecDblRegs:$Vdd32),
43904 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
43905 "$Vdd32 = vsubh($Vuu32,$Vvv32)",
43906 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43907 let hasNewValue = 1;
43908 let opNewValue = 0;
43909 let isPseudo = 1;
43910 let isCodeGenOnly = 1;
43911 let DecoderNamespace = "EXT_mmvec";
43912 }
43913 def V6_vsubh_dv_alt_128B : HInst<
43914 (outs VecDblRegs128B:$Vdd32),
43915 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
43916 "$Vdd32 = vsubh($Vuu32,$Vvv32)",
43917 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43918 let hasNewValue = 1;
43919 let opNewValue = 0;
43920 let isPseudo = 1;
43921 let isCodeGenOnly = 1;
43922 let DecoderNamespace = "EXT_mmvec";
43923 let isCodeGenOnly = 1;
43924 }
43925 def V6_vsubhnq : HInst<
43926 (outs VectorRegs:$Vx32),
43927 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43928 "if (!$Qv4) $Vx32.h -= $Vu32.h",
43929 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43930 let Inst{7-5} = 0b010;
43931 let Inst{13-13} = 0b1;
43932 let Inst{21-16} = 0b000010;
43933 let Inst{31-24} = 0b00011110;
43934 let hasNewValue = 1;
43935 let opNewValue = 0;
43936 let DecoderNamespace = "EXT_mmvec";
43937 let Constraints = "$Vx32 = $Vx32in";
43938 }
43939 def V6_vsubhnq_128B : HInst<
43940 (outs VectorRegs128B:$Vx32),
43941 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43942 "if (!$Qv4) $Vx32.h -= $Vu32.h",
43943 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43944 let Inst{7-5} = 0b010;
43945 let Inst{13-13} = 0b1;
43946 let Inst{21-16} = 0b000010;
43947 let Inst{31-24} = 0b00011110;
43948 let hasNewValue = 1;
43949 let opNewValue = 0;
43950 let DecoderNamespace = "EXT_mmvec";
43951 let isCodeGenOnly = 1;
43952 let Constraints = "$Vx32 = $Vx32in";
43953 }
43954 def V6_vsubhnq_alt : HInst<
43955 (outs VectorRegs:$Vx32),
43956 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43957 "if (!$Qv4.h) $Vx32.h -= $Vu32.h",
43958 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43959 let hasNewValue = 1;
43960 let opNewValue = 0;
43961 let isPseudo = 1;
43962 let isCodeGenOnly = 1;
43963 let DecoderNamespace = "EXT_mmvec";
43964 let Constraints = "$Vx32 = $Vx32in";
43965 }
43966 def V6_vsubhnq_alt_128B : HInst<
43967 (outs VectorRegs128B:$Vx32),
43968 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43969 "if (!$Qv4.h) $Vx32.h -= $Vu32.h",
43970 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
43971 let hasNewValue = 1;
43972 let opNewValue = 0;
43973 let isPseudo = 1;
43974 let isCodeGenOnly = 1;
43975 let DecoderNamespace = "EXT_mmvec";
43976 let isCodeGenOnly = 1;
43977 let Constraints = "$Vx32 = $Vx32in";
43978 }
43979 def V6_vsubhq : HInst<
43980 (outs VectorRegs:$Vx32),
43981 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
43982 "if ($Qv4) $Vx32.h -= $Vu32.h",
43983 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43984 let Inst{7-5} = 0b111;
43985 let Inst{13-13} = 0b1;
43986 let Inst{21-16} = 0b000001;
43987 let Inst{31-24} = 0b00011110;
43988 let hasNewValue = 1;
43989 let opNewValue = 0;
43990 let DecoderNamespace = "EXT_mmvec";
43991 let Constraints = "$Vx32 = $Vx32in";
43992 }
43993 def V6_vsubhq_128B : HInst<
43994 (outs VectorRegs128B:$Vx32),
43995 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
43996 "if ($Qv4) $Vx32.h -= $Vu32.h",
43997 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
43998 let Inst{7-5} = 0b111;
43999 let Inst{13-13} = 0b1;
44000 let Inst{21-16} = 0b000001;
44001 let Inst{31-24} = 0b00011110;
44002 let hasNewValue = 1;
44003 let opNewValue = 0;
44004 let DecoderNamespace = "EXT_mmvec";
44005 let isCodeGenOnly = 1;
44006 let Constraints = "$Vx32 = $Vx32in";
44007 }
44008 def V6_vsubhq_alt : HInst<
44009 (outs VectorRegs:$Vx32),
44010 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
44011 "if ($Qv4.h) $Vx32.h -= $Vu32.h",
44012 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44013 let hasNewValue = 1;
44014 let opNewValue = 0;
44015 let isPseudo = 1;
44016 let isCodeGenOnly = 1;
44017 let DecoderNamespace = "EXT_mmvec";
44018 let Constraints = "$Vx32 = $Vx32in";
44019 }
44020 def V6_vsubhq_alt_128B : HInst<
44021 (outs VectorRegs128B:$Vx32),
44022 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
44023 "if ($Qv4.h) $Vx32.h -= $Vu32.h",
44024 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44025 let hasNewValue = 1;
44026 let opNewValue = 0;
44027 let isPseudo = 1;
44028 let isCodeGenOnly = 1;
44029 let DecoderNamespace = "EXT_mmvec";
44030 let isCodeGenOnly = 1;
44031 let Constraints = "$Vx32 = $Vx32in";
44032 }
44033 def V6_vsubhsat : HInst<
44034 (outs VectorRegs:$Vd32),
44035 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44036 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
44037 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44038 let Inst{7-5} = 0b010;
44039 let Inst{13-13} = 0b0;
44040 let Inst{31-21} = 0b00011100011;
44041 let hasNewValue = 1;
44042 let opNewValue = 0;
44043 let DecoderNamespace = "EXT_mmvec";
44044 }
44045 def V6_vsubhsat_128B : HInst<
44046 (outs VectorRegs128B:$Vd32),
44047 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44048 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
44049 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44050 let Inst{7-5} = 0b010;
44051 let Inst{13-13} = 0b0;
44052 let Inst{31-21} = 0b00011100011;
44053 let hasNewValue = 1;
44054 let opNewValue = 0;
44055 let DecoderNamespace = "EXT_mmvec";
44056 let isCodeGenOnly = 1;
44057 }
44058 def V6_vsubhsat_alt : HInst<
44059 (outs VectorRegs:$Vd32),
44060 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44061 "$Vd32 = vsubh($Vu32,$Vv32):sat",
44062 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44063 let hasNewValue = 1;
44064 let opNewValue = 0;
44065 let isPseudo = 1;
44066 let isCodeGenOnly = 1;
44067 let DecoderNamespace = "EXT_mmvec";
44068 }
44069 def V6_vsubhsat_alt_128B : HInst<
44070 (outs VectorRegs128B:$Vd32),
44071 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44072 "$Vd32 = vsubh($Vu32,$Vv32):sat",
44073 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44074 let hasNewValue = 1;
44075 let opNewValue = 0;
44076 let isPseudo = 1;
44077 let isCodeGenOnly = 1;
44078 let DecoderNamespace = "EXT_mmvec";
44079 let isCodeGenOnly = 1;
44080 }
44081 def V6_vsubhsat_dv : HInst<
44082 (outs VecDblRegs:$Vdd32),
44083 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44084 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
44085 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44086 let Inst{7-5} = 0b000;
44087 let Inst{13-13} = 0b0;
44088 let Inst{31-21} = 0b00011100101;
44089 let hasNewValue = 1;
44090 let opNewValue = 0;
44091 let DecoderNamespace = "EXT_mmvec";
44092 }
44093 def V6_vsubhsat_dv_128B : HInst<
44094 (outs VecDblRegs128B:$Vdd32),
44095 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44096 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
44097 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44098 let Inst{7-5} = 0b000;
44099 let Inst{13-13} = 0b0;
44100 let Inst{31-21} = 0b00011100101;
44101 let hasNewValue = 1;
44102 let opNewValue = 0;
44103 let DecoderNamespace = "EXT_mmvec";
44104 let isCodeGenOnly = 1;
44105 }
44106 def V6_vsubhsat_dv_alt : HInst<
44107 (outs VecDblRegs:$Vdd32),
44108 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44109 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
44110 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44111 let hasNewValue = 1;
44112 let opNewValue = 0;
44113 let isPseudo = 1;
44114 let isCodeGenOnly = 1;
44115 let DecoderNamespace = "EXT_mmvec";
44116 }
44117 def V6_vsubhsat_dv_alt_128B : HInst<
44118 (outs VecDblRegs128B:$Vdd32),
44119 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44120 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
44121 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44122 let hasNewValue = 1;
44123 let opNewValue = 0;
44124 let isPseudo = 1;
44125 let isCodeGenOnly = 1;
44126 let DecoderNamespace = "EXT_mmvec";
44127 let isCodeGenOnly = 1;
44128 }
44129 def V6_vsubhw : HInst<
44130 (outs VecDblRegs:$Vdd32),
44131 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44132 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
44133 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44134 let Inst{7-5} = 0b111;
44135 let Inst{13-13} = 0b0;
44136 let Inst{31-21} = 0b00011100101;
44137 let hasNewValue = 1;
44138 let opNewValue = 0;
44139 let DecoderNamespace = "EXT_mmvec";
44140 }
44141 def V6_vsubhw_128B : HInst<
44142 (outs VecDblRegs128B:$Vdd32),
44143 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44144 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
44145 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44146 let Inst{7-5} = 0b111;
44147 let Inst{13-13} = 0b0;
44148 let Inst{31-21} = 0b00011100101;
44149 let hasNewValue = 1;
44150 let opNewValue = 0;
44151 let DecoderNamespace = "EXT_mmvec";
44152 let isCodeGenOnly = 1;
44153 }
44154 def V6_vsubhw_alt : HInst<
44155 (outs VecDblRegs:$Vdd32),
44156 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44157 "$Vdd32 = vsubh($Vu32,$Vv32)",
44158 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44159 let hasNewValue = 1;
44160 let opNewValue = 0;
44161 let isPseudo = 1;
44162 let isCodeGenOnly = 1;
44163 let DecoderNamespace = "EXT_mmvec";
44164 }
44165 def V6_vsubhw_alt_128B : HInst<
44166 (outs VecDblRegs128B:$Vdd32),
44167 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44168 "$Vdd32 = vsubh($Vu32,$Vv32)",
44169 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44170 let hasNewValue = 1;
44171 let opNewValue = 0;
44172 let isPseudo = 1;
44173 let isCodeGenOnly = 1;
44174 let DecoderNamespace = "EXT_mmvec";
44175 let isCodeGenOnly = 1;
44176 }
44177 def V6_vsububh : HInst<
44178 (outs VecDblRegs:$Vdd32),
44179 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44180 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
44181 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44182 let Inst{7-5} = 0b101;
44183 let Inst{13-13} = 0b0;
44184 let Inst{31-21} = 0b00011100101;
44185 let hasNewValue = 1;
44186 let opNewValue = 0;
44187 let DecoderNamespace = "EXT_mmvec";
44188 }
44189 def V6_vsububh_128B : HInst<
44190 (outs VecDblRegs128B:$Vdd32),
44191 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44192 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
44193 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44194 let Inst{7-5} = 0b101;
44195 let Inst{13-13} = 0b0;
44196 let Inst{31-21} = 0b00011100101;
44197 let hasNewValue = 1;
44198 let opNewValue = 0;
44199 let DecoderNamespace = "EXT_mmvec";
44200 let isCodeGenOnly = 1;
44201 }
44202 def V6_vsububh_alt : HInst<
44203 (outs VecDblRegs:$Vdd32),
44204 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44205 "$Vdd32 = vsubub($Vu32,$Vv32)",
44206 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44207 let hasNewValue = 1;
44208 let opNewValue = 0;
44209 let isPseudo = 1;
44210 let isCodeGenOnly = 1;
44211 let DecoderNamespace = "EXT_mmvec";
44212 }
44213 def V6_vsububh_alt_128B : HInst<
44214 (outs VecDblRegs128B:$Vdd32),
44215 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44216 "$Vdd32 = vsubub($Vu32,$Vv32)",
44217 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44218 let hasNewValue = 1;
44219 let opNewValue = 0;
44220 let isPseudo = 1;
44221 let isCodeGenOnly = 1;
44222 let DecoderNamespace = "EXT_mmvec";
44223 let isCodeGenOnly = 1;
44224 }
44225 def V6_vsububsat : HInst<
44226 (outs VectorRegs:$Vd32),
44227 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44228 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
44229 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44230 let Inst{7-5} = 0b000;
44231 let Inst{13-13} = 0b0;
44232 let Inst{31-21} = 0b00011100011;
44233 let hasNewValue = 1;
44234 let opNewValue = 0;
44235 let DecoderNamespace = "EXT_mmvec";
44236 }
44237 def V6_vsububsat_128B : HInst<
44238 (outs VectorRegs128B:$Vd32),
44239 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44240 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
44241 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44242 let Inst{7-5} = 0b000;
44243 let Inst{13-13} = 0b0;
44244 let Inst{31-21} = 0b00011100011;
44245 let hasNewValue = 1;
44246 let opNewValue = 0;
44247 let DecoderNamespace = "EXT_mmvec";
44248 let isCodeGenOnly = 1;
44249 }
44250 def V6_vsububsat_alt : HInst<
44251 (outs VectorRegs:$Vd32),
44252 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44253 "$Vd32 = vsubub($Vu32,$Vv32):sat",
44254 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44255 let hasNewValue = 1;
44256 let opNewValue = 0;
44257 let isPseudo = 1;
44258 let isCodeGenOnly = 1;
44259 let DecoderNamespace = "EXT_mmvec";
44260 }
44261 def V6_vsububsat_alt_128B : HInst<
44262 (outs VectorRegs128B:$Vd32),
44263 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44264 "$Vd32 = vsubub($Vu32,$Vv32):sat",
44265 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44266 let hasNewValue = 1;
44267 let opNewValue = 0;
44268 let isPseudo = 1;
44269 let isCodeGenOnly = 1;
44270 let DecoderNamespace = "EXT_mmvec";
44271 let isCodeGenOnly = 1;
44272 }
44273 def V6_vsububsat_dv : HInst<
44274 (outs VecDblRegs:$Vdd32),
44275 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44276 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
44277 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44278 let Inst{7-5} = 0b110;
44279 let Inst{13-13} = 0b0;
44280 let Inst{31-21} = 0b00011100100;
44281 let hasNewValue = 1;
44282 let opNewValue = 0;
44283 let DecoderNamespace = "EXT_mmvec";
44284 }
44285 def V6_vsububsat_dv_128B : HInst<
44286 (outs VecDblRegs128B:$Vdd32),
44287 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44288 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
44289 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44290 let Inst{7-5} = 0b110;
44291 let Inst{13-13} = 0b0;
44292 let Inst{31-21} = 0b00011100100;
44293 let hasNewValue = 1;
44294 let opNewValue = 0;
44295 let DecoderNamespace = "EXT_mmvec";
44296 let isCodeGenOnly = 1;
44297 }
44298 def V6_vsububsat_dv_alt : HInst<
44299 (outs VecDblRegs:$Vdd32),
44300 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44301 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
44302 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44303 let hasNewValue = 1;
44304 let opNewValue = 0;
44305 let isPseudo = 1;
44306 let isCodeGenOnly = 1;
44307 let DecoderNamespace = "EXT_mmvec";
44308 }
44309 def V6_vsububsat_dv_alt_128B : HInst<
44310 (outs VecDblRegs128B:$Vdd32),
44311 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44312 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
44313 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44314 let hasNewValue = 1;
44315 let opNewValue = 0;
44316 let isPseudo = 1;
44317 let isCodeGenOnly = 1;
44318 let DecoderNamespace = "EXT_mmvec";
44319 let isCodeGenOnly = 1;
44320 }
44321 def V6_vsubububb_sat : HInst<
44322 (outs VectorRegs:$Vd32),
44323 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44324 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
44325 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
44326 let Inst{7-5} = 0b101;
44327 let Inst{13-13} = 0b0;
44328 let Inst{31-21} = 0b00011110101;
44329 let hasNewValue = 1;
44330 let opNewValue = 0;
44331 let DecoderNamespace = "EXT_mmvec";
44332 }
44333 def V6_vsubububb_sat_128B : HInst<
44334 (outs VectorRegs128B:$Vd32),
44335 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44336 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
44337 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
44338 let Inst{7-5} = 0b101;
44339 let Inst{13-13} = 0b0;
44340 let Inst{31-21} = 0b00011110101;
44341 let hasNewValue = 1;
44342 let opNewValue = 0;
44343 let DecoderNamespace = "EXT_mmvec";
44344 let isCodeGenOnly = 1;
44345 }
44346 def V6_vsubuhsat : HInst<
44347 (outs VectorRegs:$Vd32),
44348 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44349 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
44350 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44351 let Inst{7-5} = 0b001;
44352 let Inst{13-13} = 0b0;
44353 let Inst{31-21} = 0b00011100011;
44354 let hasNewValue = 1;
44355 let opNewValue = 0;
44356 let DecoderNamespace = "EXT_mmvec";
44357 }
44358 def V6_vsubuhsat_128B : HInst<
44359 (outs VectorRegs128B:$Vd32),
44360 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44361 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
44362 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44363 let Inst{7-5} = 0b001;
44364 let Inst{13-13} = 0b0;
44365 let Inst{31-21} = 0b00011100011;
44366 let hasNewValue = 1;
44367 let opNewValue = 0;
44368 let DecoderNamespace = "EXT_mmvec";
44369 let isCodeGenOnly = 1;
44370 }
44371 def V6_vsubuhsat_alt : HInst<
44372 (outs VectorRegs:$Vd32),
44373 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44374 "$Vd32 = vsubuh($Vu32,$Vv32):sat",
44375 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44376 let hasNewValue = 1;
44377 let opNewValue = 0;
44378 let isPseudo = 1;
44379 let isCodeGenOnly = 1;
44380 let DecoderNamespace = "EXT_mmvec";
44381 }
44382 def V6_vsubuhsat_alt_128B : HInst<
44383 (outs VectorRegs128B:$Vd32),
44384 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44385 "$Vd32 = vsubuh($Vu32,$Vv32):sat",
44386 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44387 let hasNewValue = 1;
44388 let opNewValue = 0;
44389 let isPseudo = 1;
44390 let isCodeGenOnly = 1;
44391 let DecoderNamespace = "EXT_mmvec";
44392 let isCodeGenOnly = 1;
44393 }
44394 def V6_vsubuhsat_dv : HInst<
44395 (outs VecDblRegs:$Vdd32),
44396 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44397 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
44398 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44399 let Inst{7-5} = 0b111;
44400 let Inst{13-13} = 0b0;
44401 let Inst{31-21} = 0b00011100100;
44402 let hasNewValue = 1;
44403 let opNewValue = 0;
44404 let DecoderNamespace = "EXT_mmvec";
44405 }
44406 def V6_vsubuhsat_dv_128B : HInst<
44407 (outs VecDblRegs128B:$Vdd32),
44408 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44409 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
44410 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44411 let Inst{7-5} = 0b111;
44412 let Inst{13-13} = 0b0;
44413 let Inst{31-21} = 0b00011100100;
44414 let hasNewValue = 1;
44415 let opNewValue = 0;
44416 let DecoderNamespace = "EXT_mmvec";
44417 let isCodeGenOnly = 1;
44418 }
44419 def V6_vsubuhsat_dv_alt : HInst<
44420 (outs VecDblRegs:$Vdd32),
44421 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44422 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
44423 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44424 let hasNewValue = 1;
44425 let opNewValue = 0;
44426 let isPseudo = 1;
44427 let isCodeGenOnly = 1;
44428 let DecoderNamespace = "EXT_mmvec";
44429 }
44430 def V6_vsubuhsat_dv_alt_128B : HInst<
44431 (outs VecDblRegs128B:$Vdd32),
44432 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44433 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
44434 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44435 let hasNewValue = 1;
44436 let opNewValue = 0;
44437 let isPseudo = 1;
44438 let isCodeGenOnly = 1;
44439 let DecoderNamespace = "EXT_mmvec";
44440 let isCodeGenOnly = 1;
44441 }
44442 def V6_vsubuhw : HInst<
44443 (outs VecDblRegs:$Vdd32),
44444 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44445 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
44446 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44447 let Inst{7-5} = 0b110;
44448 let Inst{13-13} = 0b0;
44449 let Inst{31-21} = 0b00011100101;
44450 let hasNewValue = 1;
44451 let opNewValue = 0;
44452 let DecoderNamespace = "EXT_mmvec";
44453 }
44454 def V6_vsubuhw_128B : HInst<
44455 (outs VecDblRegs128B:$Vdd32),
44456 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44457 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
44458 tc_eda67dcd, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[HasV60T,UseHVX]> {
44459 let Inst{7-5} = 0b110;
44460 let Inst{13-13} = 0b0;
44461 let Inst{31-21} = 0b00011100101;
44462 let hasNewValue = 1;
44463 let opNewValue = 0;
44464 let DecoderNamespace = "EXT_mmvec";
44465 let isCodeGenOnly = 1;
44466 }
44467 def V6_vsubuhw_alt : HInst<
44468 (outs VecDblRegs:$Vdd32),
44469 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44470 "$Vdd32 = vsubuh($Vu32,$Vv32)",
44471 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44472 let hasNewValue = 1;
44473 let opNewValue = 0;
44474 let isPseudo = 1;
44475 let isCodeGenOnly = 1;
44476 let DecoderNamespace = "EXT_mmvec";
44477 }
44478 def V6_vsubuhw_alt_128B : HInst<
44479 (outs VecDblRegs128B:$Vdd32),
44480 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44481 "$Vdd32 = vsubuh($Vu32,$Vv32)",
44482 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44483 let hasNewValue = 1;
44484 let opNewValue = 0;
44485 let isPseudo = 1;
44486 let isCodeGenOnly = 1;
44487 let DecoderNamespace = "EXT_mmvec";
44488 let isCodeGenOnly = 1;
44489 }
44490 def V6_vsubuwsat : HInst<
44491 (outs VectorRegs:$Vd32),
44492 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44493 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
44494 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
44495 let Inst{7-5} = 0b100;
44496 let Inst{13-13} = 0b0;
44497 let Inst{31-21} = 0b00011111110;
44498 let hasNewValue = 1;
44499 let opNewValue = 0;
44500 let DecoderNamespace = "EXT_mmvec";
44501 }
44502 def V6_vsubuwsat_128B : HInst<
44503 (outs VectorRegs128B:$Vd32),
44504 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44505 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
44506 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV62T,UseHVX]> {
44507 let Inst{7-5} = 0b100;
44508 let Inst{13-13} = 0b0;
44509 let Inst{31-21} = 0b00011111110;
44510 let hasNewValue = 1;
44511 let opNewValue = 0;
44512 let DecoderNamespace = "EXT_mmvec";
44513 let isCodeGenOnly = 1;
44514 }
44515 def V6_vsubuwsat_alt : HInst<
44516 (outs VectorRegs:$Vd32),
44517 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44518 "$Vd32 = vsubuw($Vu32,$Vv32):sat",
44519 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
44520 let hasNewValue = 1;
44521 let opNewValue = 0;
44522 let isPseudo = 1;
44523 let isCodeGenOnly = 1;
44524 let DecoderNamespace = "EXT_mmvec";
44525 }
44526 def V6_vsubuwsat_alt_128B : HInst<
44527 (outs VectorRegs128B:$Vd32),
44528 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44529 "$Vd32 = vsubuw($Vu32,$Vv32):sat",
44530 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
44531 let hasNewValue = 1;
44532 let opNewValue = 0;
44533 let isPseudo = 1;
44534 let isCodeGenOnly = 1;
44535 let DecoderNamespace = "EXT_mmvec";
44536 let isCodeGenOnly = 1;
44537 }
44538 def V6_vsubuwsat_dv : HInst<
44539 (outs VecDblRegs:$Vdd32),
44540 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44541 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
44542 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
44543 let Inst{7-5} = 0b011;
44544 let Inst{13-13} = 0b0;
44545 let Inst{31-21} = 0b00011110101;
44546 let hasNewValue = 1;
44547 let opNewValue = 0;
44548 let DecoderNamespace = "EXT_mmvec";
44549 }
44550 def V6_vsubuwsat_dv_128B : HInst<
44551 (outs VecDblRegs128B:$Vdd32),
44552 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44553 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
44554 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV62T,UseHVX]> {
44555 let Inst{7-5} = 0b011;
44556 let Inst{13-13} = 0b0;
44557 let Inst{31-21} = 0b00011110101;
44558 let hasNewValue = 1;
44559 let opNewValue = 0;
44560 let DecoderNamespace = "EXT_mmvec";
44561 let isCodeGenOnly = 1;
44562 }
44563 def V6_vsubuwsat_dv_alt : HInst<
44564 (outs VecDblRegs:$Vdd32),
44565 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44566 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
44567 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
44568 let hasNewValue = 1;
44569 let opNewValue = 0;
44570 let isPseudo = 1;
44571 let isCodeGenOnly = 1;
44572 let DecoderNamespace = "EXT_mmvec";
44573 }
44574 def V6_vsubuwsat_dv_alt_128B : HInst<
44575 (outs VecDblRegs128B:$Vdd32),
44576 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44577 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
44578 PSEUDO, TypeMAPPING>, Requires<[HasV62T,UseHVX]> {
44579 let hasNewValue = 1;
44580 let opNewValue = 0;
44581 let isPseudo = 1;
44582 let isCodeGenOnly = 1;
44583 let DecoderNamespace = "EXT_mmvec";
44584 let isCodeGenOnly = 1;
44585 }
44586 def V6_vsubw : HInst<
44587 (outs VectorRegs:$Vd32),
44588 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44589 "$Vd32.w = vsub($Vu32.w,$Vv32.w)",
44590 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44591 let Inst{7-5} = 0b111;
44592 let Inst{13-13} = 0b0;
44593 let Inst{31-21} = 0b00011100010;
44594 let hasNewValue = 1;
44595 let opNewValue = 0;
44596 let DecoderNamespace = "EXT_mmvec";
44597 }
44598 def V6_vsubw_128B : HInst<
44599 (outs VectorRegs128B:$Vd32),
44600 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44601 "$Vd32.w = vsub($Vu32.w,$Vv32.w)",
44602 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44603 let Inst{7-5} = 0b111;
44604 let Inst{13-13} = 0b0;
44605 let Inst{31-21} = 0b00011100010;
44606 let hasNewValue = 1;
44607 let opNewValue = 0;
44608 let DecoderNamespace = "EXT_mmvec";
44609 let isCodeGenOnly = 1;
44610 }
44611 def V6_vsubw_alt : HInst<
44612 (outs VectorRegs:$Vd32),
44613 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44614 "$Vd32 = vsubw($Vu32,$Vv32)",
44615 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44616 let hasNewValue = 1;
44617 let opNewValue = 0;
44618 let isPseudo = 1;
44619 let isCodeGenOnly = 1;
44620 let DecoderNamespace = "EXT_mmvec";
44621 }
44622 def V6_vsubw_alt_128B : HInst<
44623 (outs VectorRegs128B:$Vd32),
44624 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44625 "$Vd32 = vsubw($Vu32,$Vv32)",
44626 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44627 let hasNewValue = 1;
44628 let opNewValue = 0;
44629 let isPseudo = 1;
44630 let isCodeGenOnly = 1;
44631 let DecoderNamespace = "EXT_mmvec";
44632 let isCodeGenOnly = 1;
44633 }
44634 def V6_vsubw_dv : HInst<
44635 (outs VecDblRegs:$Vdd32),
44636 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44637 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
44638 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44639 let Inst{7-5} = 0b101;
44640 let Inst{13-13} = 0b0;
44641 let Inst{31-21} = 0b00011100100;
44642 let hasNewValue = 1;
44643 let opNewValue = 0;
44644 let DecoderNamespace = "EXT_mmvec";
44645 }
44646 def V6_vsubw_dv_128B : HInst<
44647 (outs VecDblRegs128B:$Vdd32),
44648 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44649 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
44650 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44651 let Inst{7-5} = 0b101;
44652 let Inst{13-13} = 0b0;
44653 let Inst{31-21} = 0b00011100100;
44654 let hasNewValue = 1;
44655 let opNewValue = 0;
44656 let DecoderNamespace = "EXT_mmvec";
44657 let isCodeGenOnly = 1;
44658 }
44659 def V6_vsubw_dv_alt : HInst<
44660 (outs VecDblRegs:$Vdd32),
44661 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44662 "$Vdd32 = vsubw($Vuu32,$Vvv32)",
44663 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44664 let hasNewValue = 1;
44665 let opNewValue = 0;
44666 let isPseudo = 1;
44667 let isCodeGenOnly = 1;
44668 let DecoderNamespace = "EXT_mmvec";
44669 }
44670 def V6_vsubw_dv_alt_128B : HInst<
44671 (outs VecDblRegs128B:$Vdd32),
44672 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44673 "$Vdd32 = vsubw($Vuu32,$Vvv32)",
44674 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44675 let hasNewValue = 1;
44676 let opNewValue = 0;
44677 let isPseudo = 1;
44678 let isCodeGenOnly = 1;
44679 let DecoderNamespace = "EXT_mmvec";
44680 let isCodeGenOnly = 1;
44681 }
44682 def V6_vsubwnq : HInst<
44683 (outs VectorRegs:$Vx32),
44684 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
44685 "if (!$Qv4) $Vx32.w -= $Vu32.w",
44686 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
44687 let Inst{7-5} = 0b011;
44688 let Inst{13-13} = 0b1;
44689 let Inst{21-16} = 0b000010;
44690 let Inst{31-24} = 0b00011110;
44691 let hasNewValue = 1;
44692 let opNewValue = 0;
44693 let DecoderNamespace = "EXT_mmvec";
44694 let Constraints = "$Vx32 = $Vx32in";
44695 }
44696 def V6_vsubwnq_128B : HInst<
44697 (outs VectorRegs128B:$Vx32),
44698 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
44699 "if (!$Qv4) $Vx32.w -= $Vu32.w",
44700 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
44701 let Inst{7-5} = 0b011;
44702 let Inst{13-13} = 0b1;
44703 let Inst{21-16} = 0b000010;
44704 let Inst{31-24} = 0b00011110;
44705 let hasNewValue = 1;
44706 let opNewValue = 0;
44707 let DecoderNamespace = "EXT_mmvec";
44708 let isCodeGenOnly = 1;
44709 let Constraints = "$Vx32 = $Vx32in";
44710 }
44711 def V6_vsubwnq_alt : HInst<
44712 (outs VectorRegs:$Vx32),
44713 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
44714 "if (!$Qv4.w) $Vx32.w -= $Vu32.w",
44715 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44716 let hasNewValue = 1;
44717 let opNewValue = 0;
44718 let isPseudo = 1;
44719 let isCodeGenOnly = 1;
44720 let DecoderNamespace = "EXT_mmvec";
44721 let Constraints = "$Vx32 = $Vx32in";
44722 }
44723 def V6_vsubwnq_alt_128B : HInst<
44724 (outs VectorRegs128B:$Vx32),
44725 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
44726 "if (!$Qv4.w) $Vx32.w -= $Vu32.w",
44727 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44728 let hasNewValue = 1;
44729 let opNewValue = 0;
44730 let isPseudo = 1;
44731 let isCodeGenOnly = 1;
44732 let DecoderNamespace = "EXT_mmvec";
44733 let isCodeGenOnly = 1;
44734 let Constraints = "$Vx32 = $Vx32in";
44735 }
44736 def V6_vsubwq : HInst<
44737 (outs VectorRegs:$Vx32),
44738 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
44739 "if ($Qv4) $Vx32.w -= $Vu32.w",
44740 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
44741 let Inst{7-5} = 0b000;
44742 let Inst{13-13} = 0b1;
44743 let Inst{21-16} = 0b000010;
44744 let Inst{31-24} = 0b00011110;
44745 let hasNewValue = 1;
44746 let opNewValue = 0;
44747 let DecoderNamespace = "EXT_mmvec";
44748 let Constraints = "$Vx32 = $Vx32in";
44749 }
44750 def V6_vsubwq_128B : HInst<
44751 (outs VectorRegs128B:$Vx32),
44752 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
44753 "if ($Qv4) $Vx32.w -= $Vu32.w",
44754 tc_a3127e12, TypeCVI_VA>, Enc_a90628, Requires<[HasV60T,UseHVX]> {
44755 let Inst{7-5} = 0b000;
44756 let Inst{13-13} = 0b1;
44757 let Inst{21-16} = 0b000010;
44758 let Inst{31-24} = 0b00011110;
44759 let hasNewValue = 1;
44760 let opNewValue = 0;
44761 let DecoderNamespace = "EXT_mmvec";
44762 let isCodeGenOnly = 1;
44763 let Constraints = "$Vx32 = $Vx32in";
44764 }
44765 def V6_vsubwq_alt : HInst<
44766 (outs VectorRegs:$Vx32),
44767 (ins VecPredRegs:$Qv4, VectorRegs:$Vx32in, VectorRegs:$Vu32),
44768 "if ($Qv4.w) $Vx32.w -= $Vu32.w",
44769 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44770 let hasNewValue = 1;
44771 let opNewValue = 0;
44772 let isPseudo = 1;
44773 let isCodeGenOnly = 1;
44774 let DecoderNamespace = "EXT_mmvec";
44775 let Constraints = "$Vx32 = $Vx32in";
44776 }
44777 def V6_vsubwq_alt_128B : HInst<
44778 (outs VectorRegs128B:$Vx32),
44779 (ins VecPredRegs128B:$Qv4, VectorRegs128B:$Vx32in, VectorRegs128B:$Vu32),
44780 "if ($Qv4.w) $Vx32.w -= $Vu32.w",
44781 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44782 let hasNewValue = 1;
44783 let opNewValue = 0;
44784 let isPseudo = 1;
44785 let isCodeGenOnly = 1;
44786 let DecoderNamespace = "EXT_mmvec";
44787 let isCodeGenOnly = 1;
44788 let Constraints = "$Vx32 = $Vx32in";
44789 }
44790 def V6_vsubwsat : HInst<
44791 (outs VectorRegs:$Vd32),
44792 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44793 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
44794 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44795 let Inst{7-5} = 0b011;
44796 let Inst{13-13} = 0b0;
44797 let Inst{31-21} = 0b00011100011;
44798 let hasNewValue = 1;
44799 let opNewValue = 0;
44800 let DecoderNamespace = "EXT_mmvec";
44801 }
44802 def V6_vsubwsat_128B : HInst<
44803 (outs VectorRegs128B:$Vd32),
44804 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44805 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
44806 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
44807 let Inst{7-5} = 0b011;
44808 let Inst{13-13} = 0b0;
44809 let Inst{31-21} = 0b00011100011;
44810 let hasNewValue = 1;
44811 let opNewValue = 0;
44812 let DecoderNamespace = "EXT_mmvec";
44813 let isCodeGenOnly = 1;
44814 }
44815 def V6_vsubwsat_alt : HInst<
44816 (outs VectorRegs:$Vd32),
44817 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
44818 "$Vd32 = vsubw($Vu32,$Vv32):sat",
44819 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44820 let hasNewValue = 1;
44821 let opNewValue = 0;
44822 let isPseudo = 1;
44823 let isCodeGenOnly = 1;
44824 let DecoderNamespace = "EXT_mmvec";
44825 }
44826 def V6_vsubwsat_alt_128B : HInst<
44827 (outs VectorRegs128B:$Vd32),
44828 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44829 "$Vd32 = vsubw($Vu32,$Vv32):sat",
44830 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44831 let hasNewValue = 1;
44832 let opNewValue = 0;
44833 let isPseudo = 1;
44834 let isCodeGenOnly = 1;
44835 let DecoderNamespace = "EXT_mmvec";
44836 let isCodeGenOnly = 1;
44837 }
44838 def V6_vsubwsat_dv : HInst<
44839 (outs VecDblRegs:$Vdd32),
44840 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44841 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
44842 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44843 let Inst{7-5} = 0b001;
44844 let Inst{13-13} = 0b0;
44845 let Inst{31-21} = 0b00011100101;
44846 let hasNewValue = 1;
44847 let opNewValue = 0;
44848 let DecoderNamespace = "EXT_mmvec";
44849 }
44850 def V6_vsubwsat_dv_128B : HInst<
44851 (outs VecDblRegs128B:$Vdd32),
44852 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44853 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
44854 tc_97c165b9, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[HasV60T,UseHVX]> {
44855 let Inst{7-5} = 0b001;
44856 let Inst{13-13} = 0b0;
44857 let Inst{31-21} = 0b00011100101;
44858 let hasNewValue = 1;
44859 let opNewValue = 0;
44860 let DecoderNamespace = "EXT_mmvec";
44861 let isCodeGenOnly = 1;
44862 }
44863 def V6_vsubwsat_dv_alt : HInst<
44864 (outs VecDblRegs:$Vdd32),
44865 (ins VecDblRegs:$Vuu32, VecDblRegs:$Vvv32),
44866 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
44867 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44868 let hasNewValue = 1;
44869 let opNewValue = 0;
44870 let isPseudo = 1;
44871 let isCodeGenOnly = 1;
44872 let DecoderNamespace = "EXT_mmvec";
44873 }
44874 def V6_vsubwsat_dv_alt_128B : HInst<
44875 (outs VecDblRegs128B:$Vdd32),
44876 (ins VecDblRegs128B:$Vuu32, VecDblRegs128B:$Vvv32),
44877 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
44878 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44879 let hasNewValue = 1;
44880 let opNewValue = 0;
44881 let isPseudo = 1;
44882 let isCodeGenOnly = 1;
44883 let DecoderNamespace = "EXT_mmvec";
44884 let isCodeGenOnly = 1;
44885 }
44886 def V6_vswap : HInst<
44887 (outs VecDblRegs:$Vdd32),
44888 (ins VecPredRegs:$Qt4, VectorRegs:$Vu32, VectorRegs:$Vv32),
44889 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
44890 tc_316c637c, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[HasV60T,UseHVX]> {
44891 let Inst{7-7} = 0b0;
44892 let Inst{13-13} = 0b1;
44893 let Inst{31-21} = 0b00011110101;
44894 let hasNewValue = 1;
44895 let opNewValue = 0;
44896 let DecoderNamespace = "EXT_mmvec";
44897 }
44898 def V6_vswap_128B : HInst<
44899 (outs VecDblRegs128B:$Vdd32),
44900 (ins VecPredRegs128B:$Qt4, VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
44901 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
44902 tc_316c637c, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[HasV60T,UseHVX]> {
44903 let Inst{7-7} = 0b0;
44904 let Inst{13-13} = 0b1;
44905 let Inst{31-21} = 0b00011110101;
44906 let hasNewValue = 1;
44907 let opNewValue = 0;
44908 let DecoderNamespace = "EXT_mmvec";
44909 let isCodeGenOnly = 1;
44910 }
44911 def V6_vtmpyb : HInst<
44912 (outs VecDblRegs:$Vdd32),
44913 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
44914 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
44915 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
44916 let Inst{7-5} = 0b000;
44917 let Inst{13-13} = 0b0;
44918 let Inst{31-21} = 0b00011001000;
44919 let hasNewValue = 1;
44920 let opNewValue = 0;
44921 let DecoderNamespace = "EXT_mmvec";
44922 }
44923 def V6_vtmpyb_128B : HInst<
44924 (outs VecDblRegs128B:$Vdd32),
44925 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
44926 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
44927 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
44928 let Inst{7-5} = 0b000;
44929 let Inst{13-13} = 0b0;
44930 let Inst{31-21} = 0b00011001000;
44931 let hasNewValue = 1;
44932 let opNewValue = 0;
44933 let DecoderNamespace = "EXT_mmvec";
44934 let isCodeGenOnly = 1;
44935 }
44936 def V6_vtmpyb_acc : HInst<
44937 (outs VecDblRegs:$Vxx32),
44938 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
44939 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
44940 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
44941 let Inst{7-5} = 0b000;
44942 let Inst{13-13} = 0b1;
44943 let Inst{31-21} = 0b00011001000;
44944 let hasNewValue = 1;
44945 let opNewValue = 0;
44946 let isAccumulator = 1;
44947 let DecoderNamespace = "EXT_mmvec";
44948 let Constraints = "$Vxx32 = $Vxx32in";
44949 }
44950 def V6_vtmpyb_acc_128B : HInst<
44951 (outs VecDblRegs128B:$Vxx32),
44952 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
44953 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
44954 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
44955 let Inst{7-5} = 0b000;
44956 let Inst{13-13} = 0b1;
44957 let Inst{31-21} = 0b00011001000;
44958 let hasNewValue = 1;
44959 let opNewValue = 0;
44960 let isAccumulator = 1;
44961 let DecoderNamespace = "EXT_mmvec";
44962 let isCodeGenOnly = 1;
44963 let Constraints = "$Vxx32 = $Vxx32in";
44964 }
44965 def V6_vtmpyb_acc_alt : HInst<
44966 (outs VecDblRegs:$Vxx32),
44967 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
44968 "$Vxx32 += vtmpyb($Vuu32,$Rt32)",
44969 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44970 let hasNewValue = 1;
44971 let opNewValue = 0;
44972 let isAccumulator = 1;
44973 let isPseudo = 1;
44974 let isCodeGenOnly = 1;
44975 let DecoderNamespace = "EXT_mmvec";
44976 let Constraints = "$Vxx32 = $Vxx32in";
44977 }
44978 def V6_vtmpyb_acc_alt_128B : HInst<
44979 (outs VecDblRegs128B:$Vxx32),
44980 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
44981 "$Vxx32 += vtmpyb($Vuu32,$Rt32)",
44982 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44983 let hasNewValue = 1;
44984 let opNewValue = 0;
44985 let isAccumulator = 1;
44986 let isPseudo = 1;
44987 let isCodeGenOnly = 1;
44988 let DecoderNamespace = "EXT_mmvec";
44989 let isCodeGenOnly = 1;
44990 let Constraints = "$Vxx32 = $Vxx32in";
44991 }
44992 def V6_vtmpyb_alt : HInst<
44993 (outs VecDblRegs:$Vdd32),
44994 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
44995 "$Vdd32 = vtmpyb($Vuu32,$Rt32)",
44996 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
44997 let hasNewValue = 1;
44998 let opNewValue = 0;
44999 let isPseudo = 1;
45000 let isCodeGenOnly = 1;
45001 let DecoderNamespace = "EXT_mmvec";
45002 }
45003 def V6_vtmpyb_alt_128B : HInst<
45004 (outs VecDblRegs128B:$Vdd32),
45005 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45006 "$Vdd32 = vtmpyb($Vuu32,$Rt32)",
45007 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45008 let hasNewValue = 1;
45009 let opNewValue = 0;
45010 let isPseudo = 1;
45011 let isCodeGenOnly = 1;
45012 let DecoderNamespace = "EXT_mmvec";
45013 let isCodeGenOnly = 1;
45014 }
45015 def V6_vtmpybus : HInst<
45016 (outs VecDblRegs:$Vdd32),
45017 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
45018 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
45019 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
45020 let Inst{7-5} = 0b001;
45021 let Inst{13-13} = 0b0;
45022 let Inst{31-21} = 0b00011001000;
45023 let hasNewValue = 1;
45024 let opNewValue = 0;
45025 let DecoderNamespace = "EXT_mmvec";
45026 }
45027 def V6_vtmpybus_128B : HInst<
45028 (outs VecDblRegs128B:$Vdd32),
45029 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45030 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
45031 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
45032 let Inst{7-5} = 0b001;
45033 let Inst{13-13} = 0b0;
45034 let Inst{31-21} = 0b00011001000;
45035 let hasNewValue = 1;
45036 let opNewValue = 0;
45037 let DecoderNamespace = "EXT_mmvec";
45038 let isCodeGenOnly = 1;
45039 }
45040 def V6_vtmpybus_acc : HInst<
45041 (outs VecDblRegs:$Vxx32),
45042 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
45043 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
45044 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
45045 let Inst{7-5} = 0b001;
45046 let Inst{13-13} = 0b1;
45047 let Inst{31-21} = 0b00011001000;
45048 let hasNewValue = 1;
45049 let opNewValue = 0;
45050 let isAccumulator = 1;
45051 let DecoderNamespace = "EXT_mmvec";
45052 let Constraints = "$Vxx32 = $Vxx32in";
45053 }
45054 def V6_vtmpybus_acc_128B : HInst<
45055 (outs VecDblRegs128B:$Vxx32),
45056 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45057 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
45058 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
45059 let Inst{7-5} = 0b001;
45060 let Inst{13-13} = 0b1;
45061 let Inst{31-21} = 0b00011001000;
45062 let hasNewValue = 1;
45063 let opNewValue = 0;
45064 let isAccumulator = 1;
45065 let DecoderNamespace = "EXT_mmvec";
45066 let isCodeGenOnly = 1;
45067 let Constraints = "$Vxx32 = $Vxx32in";
45068 }
45069 def V6_vtmpybus_acc_alt : HInst<
45070 (outs VecDblRegs:$Vxx32),
45071 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
45072 "$Vxx32 += vtmpybus($Vuu32,$Rt32)",
45073 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45074 let hasNewValue = 1;
45075 let opNewValue = 0;
45076 let isAccumulator = 1;
45077 let isPseudo = 1;
45078 let isCodeGenOnly = 1;
45079 let DecoderNamespace = "EXT_mmvec";
45080 let Constraints = "$Vxx32 = $Vxx32in";
45081 }
45082 def V6_vtmpybus_acc_alt_128B : HInst<
45083 (outs VecDblRegs128B:$Vxx32),
45084 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45085 "$Vxx32 += vtmpybus($Vuu32,$Rt32)",
45086 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45087 let hasNewValue = 1;
45088 let opNewValue = 0;
45089 let isAccumulator = 1;
45090 let isPseudo = 1;
45091 let isCodeGenOnly = 1;
45092 let DecoderNamespace = "EXT_mmvec";
45093 let isCodeGenOnly = 1;
45094 let Constraints = "$Vxx32 = $Vxx32in";
45095 }
45096 def V6_vtmpybus_alt : HInst<
45097 (outs VecDblRegs:$Vdd32),
45098 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
45099 "$Vdd32 = vtmpybus($Vuu32,$Rt32)",
45100 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45101 let hasNewValue = 1;
45102 let opNewValue = 0;
45103 let isPseudo = 1;
45104 let isCodeGenOnly = 1;
45105 let DecoderNamespace = "EXT_mmvec";
45106 }
45107 def V6_vtmpybus_alt_128B : HInst<
45108 (outs VecDblRegs128B:$Vdd32),
45109 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45110 "$Vdd32 = vtmpybus($Vuu32,$Rt32)",
45111 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45112 let hasNewValue = 1;
45113 let opNewValue = 0;
45114 let isPseudo = 1;
45115 let isCodeGenOnly = 1;
45116 let DecoderNamespace = "EXT_mmvec";
45117 let isCodeGenOnly = 1;
45118 }
45119 def V6_vtmpyhb : HInst<
45120 (outs VecDblRegs:$Vdd32),
45121 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
45122 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
45123 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
45124 let Inst{7-5} = 0b100;
45125 let Inst{13-13} = 0b0;
45126 let Inst{31-21} = 0b00011001101;
45127 let hasNewValue = 1;
45128 let opNewValue = 0;
45129 let DecoderNamespace = "EXT_mmvec";
45130 }
45131 def V6_vtmpyhb_128B : HInst<
45132 (outs VecDblRegs128B:$Vdd32),
45133 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45134 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
45135 tc_7c3f55c4, TypeCVI_VX_DV>, Enc_aad80c, Requires<[HasV60T,UseHVX]> {
45136 let Inst{7-5} = 0b100;
45137 let Inst{13-13} = 0b0;
45138 let Inst{31-21} = 0b00011001101;
45139 let hasNewValue = 1;
45140 let opNewValue = 0;
45141 let DecoderNamespace = "EXT_mmvec";
45142 let isCodeGenOnly = 1;
45143 }
45144 def V6_vtmpyhb_acc : HInst<
45145 (outs VecDblRegs:$Vxx32),
45146 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
45147 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
45148 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
45149 let Inst{7-5} = 0b010;
45150 let Inst{13-13} = 0b1;
45151 let Inst{31-21} = 0b00011001000;
45152 let hasNewValue = 1;
45153 let opNewValue = 0;
45154 let isAccumulator = 1;
45155 let DecoderNamespace = "EXT_mmvec";
45156 let Constraints = "$Vxx32 = $Vxx32in";
45157 }
45158 def V6_vtmpyhb_acc_128B : HInst<
45159 (outs VecDblRegs128B:$Vxx32),
45160 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45161 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
45162 tc_d98f4d63, TypeCVI_VX_DV>, Enc_d6990d, Requires<[HasV60T,UseHVX]> {
45163 let Inst{7-5} = 0b010;
45164 let Inst{13-13} = 0b1;
45165 let Inst{31-21} = 0b00011001000;
45166 let hasNewValue = 1;
45167 let opNewValue = 0;
45168 let isAccumulator = 1;
45169 let DecoderNamespace = "EXT_mmvec";
45170 let isCodeGenOnly = 1;
45171 let Constraints = "$Vxx32 = $Vxx32in";
45172 }
45173 def V6_vtmpyhb_acc_alt : HInst<
45174 (outs VecDblRegs:$Vxx32),
45175 (ins VecDblRegs:$Vxx32in, VecDblRegs:$Vuu32, IntRegs:$Rt32),
45176 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
45177 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45178 let hasNewValue = 1;
45179 let opNewValue = 0;
45180 let isAccumulator = 1;
45181 let isPseudo = 1;
45182 let isCodeGenOnly = 1;
45183 let DecoderNamespace = "EXT_mmvec";
45184 let Constraints = "$Vxx32 = $Vxx32in";
45185 }
45186 def V6_vtmpyhb_acc_alt_128B : HInst<
45187 (outs VecDblRegs128B:$Vxx32),
45188 (ins VecDblRegs128B:$Vxx32in, VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45189 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
45190 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45191 let hasNewValue = 1;
45192 let opNewValue = 0;
45193 let isAccumulator = 1;
45194 let isPseudo = 1;
45195 let isCodeGenOnly = 1;
45196 let DecoderNamespace = "EXT_mmvec";
45197 let isCodeGenOnly = 1;
45198 let Constraints = "$Vxx32 = $Vxx32in";
45199 }
45200 def V6_vtmpyhb_alt : HInst<
45201 (outs VecDblRegs:$Vdd32),
45202 (ins VecDblRegs:$Vuu32, IntRegs:$Rt32),
45203 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
45204 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45205 let hasNewValue = 1;
45206 let opNewValue = 0;
45207 let isPseudo = 1;
45208 let isCodeGenOnly = 1;
45209 let DecoderNamespace = "EXT_mmvec";
45210 }
45211 def V6_vtmpyhb_alt_128B : HInst<
45212 (outs VecDblRegs128B:$Vdd32),
45213 (ins VecDblRegs128B:$Vuu32, IntRegs:$Rt32),
45214 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
45215 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45216 let hasNewValue = 1;
45217 let opNewValue = 0;
45218 let isPseudo = 1;
45219 let isCodeGenOnly = 1;
45220 let DecoderNamespace = "EXT_mmvec";
45221 let isCodeGenOnly = 1;
45222 }
45223 def V6_vtran2x2_map : HInst<
45224 (outs VectorRegs:$Vy32, VectorRegs:$Vx32),
45225 (ins VectorRegs:$Vy32in, VectorRegs:$Vx32in, IntRegs:$Rt32),
45226 "vtrans2x2($Vy32,$Vx32,$Rt32)",
45227 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45228 let hasNewValue = 1;
45229 let opNewValue = 0;
45230 let hasNewValue2 = 1;
45231 let opNewValue2 = 1;
45232 let isPseudo = 1;
45233 let isCodeGenOnly = 1;
45234 let DecoderNamespace = "EXT_mmvec";
45235 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
45236 }
45237 def V6_vtran2x2_map_128B : HInst<
45238 (outs VectorRegs128B:$Vy32, VectorRegs128B:$Vx32),
45239 (ins VectorRegs128B:$Vy32in, VectorRegs128B:$Vx32in, IntRegs:$Rt32),
45240 "vtrans2x2($Vy32,$Vx32,$Rt32)",
45241 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45242 let hasNewValue = 1;
45243 let opNewValue = 0;
45244 let hasNewValue2 = 1;
45245 let opNewValue2 = 1;
45246 let isPseudo = 1;
45247 let isCodeGenOnly = 1;
45248 let DecoderNamespace = "EXT_mmvec";
45249 let isCodeGenOnly = 1;
45250 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
45251 }
45252 def V6_vunpackb : HInst<
45253 (outs VecDblRegs:$Vdd32),
45254 (ins VectorRegs:$Vu32),
45255 "$Vdd32.h = vunpack($Vu32.b)",
45256 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45257 let Inst{7-5} = 0b010;
45258 let Inst{13-13} = 0b0;
45259 let Inst{31-16} = 0b0001111000000001;
45260 let hasNewValue = 1;
45261 let opNewValue = 0;
45262 let DecoderNamespace = "EXT_mmvec";
45263 }
45264 def V6_vunpackb_128B : HInst<
45265 (outs VecDblRegs128B:$Vdd32),
45266 (ins VectorRegs128B:$Vu32),
45267 "$Vdd32.h = vunpack($Vu32.b)",
45268 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45269 let Inst{7-5} = 0b010;
45270 let Inst{13-13} = 0b0;
45271 let Inst{31-16} = 0b0001111000000001;
45272 let hasNewValue = 1;
45273 let opNewValue = 0;
45274 let DecoderNamespace = "EXT_mmvec";
45275 let isCodeGenOnly = 1;
45276 }
45277 def V6_vunpackb_alt : HInst<
45278 (outs VecDblRegs:$Vdd32),
45279 (ins VectorRegs:$Vu32),
45280 "$Vdd32 = vunpackb($Vu32)",
45281 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45282 let hasNewValue = 1;
45283 let opNewValue = 0;
45284 let isPseudo = 1;
45285 let isCodeGenOnly = 1;
45286 let DecoderNamespace = "EXT_mmvec";
45287 }
45288 def V6_vunpackb_alt_128B : HInst<
45289 (outs VecDblRegs128B:$Vdd32),
45290 (ins VectorRegs128B:$Vu32),
45291 "$Vdd32 = vunpackb($Vu32)",
45292 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45293 let hasNewValue = 1;
45294 let opNewValue = 0;
45295 let isPseudo = 1;
45296 let isCodeGenOnly = 1;
45297 let DecoderNamespace = "EXT_mmvec";
45298 let isCodeGenOnly = 1;
45299 }
45300 def V6_vunpackh : HInst<
45301 (outs VecDblRegs:$Vdd32),
45302 (ins VectorRegs:$Vu32),
45303 "$Vdd32.w = vunpack($Vu32.h)",
45304 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45305 let Inst{7-5} = 0b011;
45306 let Inst{13-13} = 0b0;
45307 let Inst{31-16} = 0b0001111000000001;
45308 let hasNewValue = 1;
45309 let opNewValue = 0;
45310 let DecoderNamespace = "EXT_mmvec";
45311 }
45312 def V6_vunpackh_128B : HInst<
45313 (outs VecDblRegs128B:$Vdd32),
45314 (ins VectorRegs128B:$Vu32),
45315 "$Vdd32.w = vunpack($Vu32.h)",
45316 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45317 let Inst{7-5} = 0b011;
45318 let Inst{13-13} = 0b0;
45319 let Inst{31-16} = 0b0001111000000001;
45320 let hasNewValue = 1;
45321 let opNewValue = 0;
45322 let DecoderNamespace = "EXT_mmvec";
45323 let isCodeGenOnly = 1;
45324 }
45325 def V6_vunpackh_alt : HInst<
45326 (outs VecDblRegs:$Vdd32),
45327 (ins VectorRegs:$Vu32),
45328 "$Vdd32 = vunpackh($Vu32)",
45329 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45330 let hasNewValue = 1;
45331 let opNewValue = 0;
45332 let isPseudo = 1;
45333 let isCodeGenOnly = 1;
45334 let DecoderNamespace = "EXT_mmvec";
45335 }
45336 def V6_vunpackh_alt_128B : HInst<
45337 (outs VecDblRegs128B:$Vdd32),
45338 (ins VectorRegs128B:$Vu32),
45339 "$Vdd32 = vunpackh($Vu32)",
45340 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45341 let hasNewValue = 1;
45342 let opNewValue = 0;
45343 let isPseudo = 1;
45344 let isCodeGenOnly = 1;
45345 let DecoderNamespace = "EXT_mmvec";
45346 let isCodeGenOnly = 1;
45347 }
45348 def V6_vunpackob : HInst<
45349 (outs VecDblRegs:$Vxx32),
45350 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
45351 "$Vxx32.h |= vunpacko($Vu32.b)",
45352 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
45353 let Inst{7-5} = 0b000;
45354 let Inst{13-13} = 0b1;
45355 let Inst{31-16} = 0b0001111000000000;
45356 let hasNewValue = 1;
45357 let opNewValue = 0;
45358 let isAccumulator = 1;
45359 let DecoderNamespace = "EXT_mmvec";
45360 let Constraints = "$Vxx32 = $Vxx32in";
45361 }
45362 def V6_vunpackob_128B : HInst<
45363 (outs VecDblRegs128B:$Vxx32),
45364 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
45365 "$Vxx32.h |= vunpacko($Vu32.b)",
45366 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
45367 let Inst{7-5} = 0b000;
45368 let Inst{13-13} = 0b1;
45369 let Inst{31-16} = 0b0001111000000000;
45370 let hasNewValue = 1;
45371 let opNewValue = 0;
45372 let isAccumulator = 1;
45373 let DecoderNamespace = "EXT_mmvec";
45374 let isCodeGenOnly = 1;
45375 let Constraints = "$Vxx32 = $Vxx32in";
45376 }
45377 def V6_vunpackob_alt : HInst<
45378 (outs VecDblRegs:$Vxx32),
45379 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
45380 "$Vxx32 |= vunpackob($Vu32)",
45381 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45382 let hasNewValue = 1;
45383 let opNewValue = 0;
45384 let isAccumulator = 1;
45385 let isPseudo = 1;
45386 let DecoderNamespace = "EXT_mmvec";
45387 let Constraints = "$Vxx32 = $Vxx32in";
45388 }
45389 def V6_vunpackob_alt_128B : HInst<
45390 (outs VecDblRegs128B:$Vxx32),
45391 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
45392 "$Vxx32 |= vunpackob($Vu32)",
45393 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45394 let hasNewValue = 1;
45395 let opNewValue = 0;
45396 let isAccumulator = 1;
45397 let isPseudo = 1;
45398 let DecoderNamespace = "EXT_mmvec";
45399 let isCodeGenOnly = 1;
45400 let Constraints = "$Vxx32 = $Vxx32in";
45401 }
45402 def V6_vunpackoh : HInst<
45403 (outs VecDblRegs:$Vxx32),
45404 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
45405 "$Vxx32.w |= vunpacko($Vu32.h)",
45406 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
45407 let Inst{7-5} = 0b001;
45408 let Inst{13-13} = 0b1;
45409 let Inst{31-16} = 0b0001111000000000;
45410 let hasNewValue = 1;
45411 let opNewValue = 0;
45412 let isAccumulator = 1;
45413 let DecoderNamespace = "EXT_mmvec";
45414 let Constraints = "$Vxx32 = $Vxx32in";
45415 }
45416 def V6_vunpackoh_128B : HInst<
45417 (outs VecDblRegs128B:$Vxx32),
45418 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
45419 "$Vxx32.w |= vunpacko($Vu32.h)",
45420 tc_72ad7b54, TypeCVI_VP_VS>, Enc_500cb0, Requires<[HasV60T,UseHVX]> {
45421 let Inst{7-5} = 0b001;
45422 let Inst{13-13} = 0b1;
45423 let Inst{31-16} = 0b0001111000000000;
45424 let hasNewValue = 1;
45425 let opNewValue = 0;
45426 let isAccumulator = 1;
45427 let DecoderNamespace = "EXT_mmvec";
45428 let isCodeGenOnly = 1;
45429 let Constraints = "$Vxx32 = $Vxx32in";
45430 }
45431 def V6_vunpackoh_alt : HInst<
45432 (outs VecDblRegs:$Vxx32),
45433 (ins VecDblRegs:$Vxx32in, VectorRegs:$Vu32),
45434 "$Vxx32 |= vunpackoh($Vu32)",
45435 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45436 let hasNewValue = 1;
45437 let opNewValue = 0;
45438 let isAccumulator = 1;
45439 let isPseudo = 1;
45440 let isCodeGenOnly = 1;
45441 let DecoderNamespace = "EXT_mmvec";
45442 let Constraints = "$Vxx32 = $Vxx32in";
45443 }
45444 def V6_vunpackoh_alt_128B : HInst<
45445 (outs VecDblRegs128B:$Vxx32),
45446 (ins VecDblRegs128B:$Vxx32in, VectorRegs128B:$Vu32),
45447 "$Vxx32 |= vunpackoh($Vu32)",
45448 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45449 let hasNewValue = 1;
45450 let opNewValue = 0;
45451 let isAccumulator = 1;
45452 let isPseudo = 1;
45453 let isCodeGenOnly = 1;
45454 let DecoderNamespace = "EXT_mmvec";
45455 let isCodeGenOnly = 1;
45456 let Constraints = "$Vxx32 = $Vxx32in";
45457 }
45458 def V6_vunpackub : HInst<
45459 (outs VecDblRegs:$Vdd32),
45460 (ins VectorRegs:$Vu32),
45461 "$Vdd32.uh = vunpack($Vu32.ub)",
45462 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45463 let Inst{7-5} = 0b000;
45464 let Inst{13-13} = 0b0;
45465 let Inst{31-16} = 0b0001111000000001;
45466 let hasNewValue = 1;
45467 let opNewValue = 0;
45468 let DecoderNamespace = "EXT_mmvec";
45469 }
45470 def V6_vunpackub_128B : HInst<
45471 (outs VecDblRegs128B:$Vdd32),
45472 (ins VectorRegs128B:$Vu32),
45473 "$Vdd32.uh = vunpack($Vu32.ub)",
45474 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45475 let Inst{7-5} = 0b000;
45476 let Inst{13-13} = 0b0;
45477 let Inst{31-16} = 0b0001111000000001;
45478 let hasNewValue = 1;
45479 let opNewValue = 0;
45480 let DecoderNamespace = "EXT_mmvec";
45481 let isCodeGenOnly = 1;
45482 }
45483 def V6_vunpackub_alt : HInst<
45484 (outs VecDblRegs:$Vdd32),
45485 (ins VectorRegs:$Vu32),
45486 "$Vdd32 = vunpackub($Vu32)",
45487 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45488 let hasNewValue = 1;
45489 let opNewValue = 0;
45490 let isPseudo = 1;
45491 let isCodeGenOnly = 1;
45492 let DecoderNamespace = "EXT_mmvec";
45493 }
45494 def V6_vunpackub_alt_128B : HInst<
45495 (outs VecDblRegs128B:$Vdd32),
45496 (ins VectorRegs128B:$Vu32),
45497 "$Vdd32 = vunpackub($Vu32)",
45498 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45499 let hasNewValue = 1;
45500 let opNewValue = 0;
45501 let isPseudo = 1;
45502 let isCodeGenOnly = 1;
45503 let DecoderNamespace = "EXT_mmvec";
45504 let isCodeGenOnly = 1;
45505 }
45506 def V6_vunpackuh : HInst<
45507 (outs VecDblRegs:$Vdd32),
45508 (ins VectorRegs:$Vu32),
45509 "$Vdd32.uw = vunpack($Vu32.uh)",
45510 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45511 let Inst{7-5} = 0b001;
45512 let Inst{13-13} = 0b0;
45513 let Inst{31-16} = 0b0001111000000001;
45514 let hasNewValue = 1;
45515 let opNewValue = 0;
45516 let DecoderNamespace = "EXT_mmvec";
45517 }
45518 def V6_vunpackuh_128B : HInst<
45519 (outs VecDblRegs128B:$Vdd32),
45520 (ins VectorRegs128B:$Vu32),
45521 "$Vdd32.uw = vunpack($Vu32.uh)",
45522 tc_d7bea0ec, TypeCVI_VP_VS>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45523 let Inst{7-5} = 0b001;
45524 let Inst{13-13} = 0b0;
45525 let Inst{31-16} = 0b0001111000000001;
45526 let hasNewValue = 1;
45527 let opNewValue = 0;
45528 let DecoderNamespace = "EXT_mmvec";
45529 let isCodeGenOnly = 1;
45530 }
45531 def V6_vunpackuh_alt : HInst<
45532 (outs VecDblRegs:$Vdd32),
45533 (ins VectorRegs:$Vu32),
45534 "$Vdd32 = vunpackuh($Vu32)",
45535 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45536 let hasNewValue = 1;
45537 let opNewValue = 0;
45538 let isPseudo = 1;
45539 let isCodeGenOnly = 1;
45540 let DecoderNamespace = "EXT_mmvec";
45541 }
45542 def V6_vunpackuh_alt_128B : HInst<
45543 (outs VecDblRegs128B:$Vdd32),
45544 (ins VectorRegs128B:$Vu32),
45545 "$Vdd32 = vunpackuh($Vu32)",
45546 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45547 let hasNewValue = 1;
45548 let opNewValue = 0;
45549 let isPseudo = 1;
45550 let isCodeGenOnly = 1;
45551 let DecoderNamespace = "EXT_mmvec";
45552 let isCodeGenOnly = 1;
45553 }
45554 def V6_vwhist128 : HInst<
45555 (outs),
45556 (ins),
45557 "vwhist128",
45558 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45559 let Inst{13-0} = 0b10010010000000;
45560 let Inst{31-16} = 0b0001111000000000;
45561 let DecoderNamespace = "EXT_mmvec";
45562 }
45563 def V6_vwhist128_128B : HInst<
45564 (outs),
45565 (ins),
45566 "vwhist128",
45567 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45568 let Inst{13-0} = 0b10010010000000;
45569 let Inst{31-16} = 0b0001111000000000;
45570 let DecoderNamespace = "EXT_mmvec";
45571 let isCodeGenOnly = 1;
45572 }
45573 def V6_vwhist128m : HInst<
45574 (outs),
45575 (ins u1_0Imm:$Ii),
45576 "vwhist128(#$Ii)",
45577 tc_b77635b4, TypeCVI_HIST>, Enc_efaed8, Requires<[HasV62T,UseHVX]> {
45578 let Inst{7-0} = 0b10000000;
45579 let Inst{13-9} = 0b10011;
45580 let Inst{31-16} = 0b0001111000000000;
45581 let DecoderNamespace = "EXT_mmvec";
45582 }
45583 def V6_vwhist128m_128B : HInst<
45584 (outs),
45585 (ins u1_0Imm:$Ii),
45586 "vwhist128(#$Ii)",
45587 tc_b77635b4, TypeCVI_HIST>, Enc_efaed8, Requires<[HasV62T,UseHVX]> {
45588 let Inst{7-0} = 0b10000000;
45589 let Inst{13-9} = 0b10011;
45590 let Inst{31-16} = 0b0001111000000000;
45591 let DecoderNamespace = "EXT_mmvec";
45592 let isCodeGenOnly = 1;
45593 }
45594 def V6_vwhist128q : HInst<
45595 (outs),
45596 (ins VecPredRegs:$Qv4),
45597 "vwhist128($Qv4)",
45598 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45599 let Inst{13-0} = 0b10010010000000;
45600 let Inst{21-16} = 0b000010;
45601 let Inst{31-24} = 0b00011110;
45602 let DecoderNamespace = "EXT_mmvec";
45603 }
45604 def V6_vwhist128q_128B : HInst<
45605 (outs),
45606 (ins VecPredRegs128B:$Qv4),
45607 "vwhist128($Qv4)",
45608 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45609 let Inst{13-0} = 0b10010010000000;
45610 let Inst{21-16} = 0b000010;
45611 let Inst{31-24} = 0b00011110;
45612 let DecoderNamespace = "EXT_mmvec";
45613 let isCodeGenOnly = 1;
45614 }
45615 def V6_vwhist128qm : HInst<
45616 (outs),
45617 (ins VecPredRegs:$Qv4, u1_0Imm:$Ii),
45618 "vwhist128($Qv4,#$Ii)",
45619 tc_28978789, TypeCVI_HIST>, Enc_802dc0, Requires<[HasV62T,UseHVX]> {
45620 let Inst{7-0} = 0b10000000;
45621 let Inst{13-9} = 0b10011;
45622 let Inst{21-16} = 0b000010;
45623 let Inst{31-24} = 0b00011110;
45624 let DecoderNamespace = "EXT_mmvec";
45625 }
45626 def V6_vwhist128qm_128B : HInst<
45627 (outs),
45628 (ins VecPredRegs128B:$Qv4, u1_0Imm:$Ii),
45629 "vwhist128($Qv4,#$Ii)",
45630 tc_28978789, TypeCVI_HIST>, Enc_802dc0, Requires<[HasV62T,UseHVX]> {
45631 let Inst{7-0} = 0b10000000;
45632 let Inst{13-9} = 0b10011;
45633 let Inst{21-16} = 0b000010;
45634 let Inst{31-24} = 0b00011110;
45635 let DecoderNamespace = "EXT_mmvec";
45636 let isCodeGenOnly = 1;
45637 }
45638 def V6_vwhist256 : HInst<
45639 (outs),
45640 (ins),
45641 "vwhist256",
45642 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45643 let Inst{13-0} = 0b10001010000000;
45644 let Inst{31-16} = 0b0001111000000000;
45645 let DecoderNamespace = "EXT_mmvec";
45646 }
45647 def V6_vwhist256_128B : HInst<
45648 (outs),
45649 (ins),
45650 "vwhist256",
45651 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45652 let Inst{13-0} = 0b10001010000000;
45653 let Inst{31-16} = 0b0001111000000000;
45654 let DecoderNamespace = "EXT_mmvec";
45655 let isCodeGenOnly = 1;
45656 }
45657 def V6_vwhist256_sat : HInst<
45658 (outs),
45659 (ins),
45660 "vwhist256:sat",
45661 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45662 let Inst{13-0} = 0b10001110000000;
45663 let Inst{31-16} = 0b0001111000000000;
45664 let DecoderNamespace = "EXT_mmvec";
45665 }
45666 def V6_vwhist256_sat_128B : HInst<
45667 (outs),
45668 (ins),
45669 "vwhist256:sat",
45670 tc_e5053c8f, TypeCVI_HIST>, Enc_e3b0c4, Requires<[HasV62T,UseHVX]> {
45671 let Inst{13-0} = 0b10001110000000;
45672 let Inst{31-16} = 0b0001111000000000;
45673 let DecoderNamespace = "EXT_mmvec";
45674 let isCodeGenOnly = 1;
45675 }
45676 def V6_vwhist256q : HInst<
45677 (outs),
45678 (ins VecPredRegs:$Qv4),
45679 "vwhist256($Qv4)",
45680 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45681 let Inst{13-0} = 0b10001010000000;
45682 let Inst{21-16} = 0b000010;
45683 let Inst{31-24} = 0b00011110;
45684 let DecoderNamespace = "EXT_mmvec";
45685 }
45686 def V6_vwhist256q_128B : HInst<
45687 (outs),
45688 (ins VecPredRegs128B:$Qv4),
45689 "vwhist256($Qv4)",
45690 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45691 let Inst{13-0} = 0b10001010000000;
45692 let Inst{21-16} = 0b000010;
45693 let Inst{31-24} = 0b00011110;
45694 let DecoderNamespace = "EXT_mmvec";
45695 let isCodeGenOnly = 1;
45696 }
45697 def V6_vwhist256q_sat : HInst<
45698 (outs),
45699 (ins VecPredRegs:$Qv4),
45700 "vwhist256($Qv4):sat",
45701 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45702 let Inst{13-0} = 0b10001110000000;
45703 let Inst{21-16} = 0b000010;
45704 let Inst{31-24} = 0b00011110;
45705 let DecoderNamespace = "EXT_mmvec";
45706 }
45707 def V6_vwhist256q_sat_128B : HInst<
45708 (outs),
45709 (ins VecPredRegs128B:$Qv4),
45710 "vwhist256($Qv4):sat",
45711 tc_cedf314b, TypeCVI_HIST>, Enc_217147, Requires<[HasV62T,UseHVX]> {
45712 let Inst{13-0} = 0b10001110000000;
45713 let Inst{21-16} = 0b000010;
45714 let Inst{31-24} = 0b00011110;
45715 let DecoderNamespace = "EXT_mmvec";
45716 let isCodeGenOnly = 1;
45717 }
45718 def V6_vxor : HInst<
45719 (outs VectorRegs:$Vd32),
45720 (ins VectorRegs:$Vu32, VectorRegs:$Vv32),
45721 "$Vd32 = vxor($Vu32,$Vv32)",
45722 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
45723 let Inst{7-5} = 0b111;
45724 let Inst{13-13} = 0b0;
45725 let Inst{31-21} = 0b00011100001;
45726 let hasNewValue = 1;
45727 let opNewValue = 0;
45728 let DecoderNamespace = "EXT_mmvec";
45729 }
45730 def V6_vxor_128B : HInst<
45731 (outs VectorRegs128B:$Vd32),
45732 (ins VectorRegs128B:$Vu32, VectorRegs128B:$Vv32),
45733 "$Vd32 = vxor($Vu32,$Vv32)",
45734 tc_bbaf280e, TypeCVI_VA>, Enc_45364e, Requires<[HasV60T,UseHVX]> {
45735 let Inst{7-5} = 0b111;
45736 let Inst{13-13} = 0b0;
45737 let Inst{31-21} = 0b00011100001;
45738 let hasNewValue = 1;
45739 let opNewValue = 0;
45740 let DecoderNamespace = "EXT_mmvec";
45741 let isCodeGenOnly = 1;
45742 }
45743 def V6_vzb : HInst<
45744 (outs VecDblRegs:$Vdd32),
45745 (ins VectorRegs:$Vu32),
45746 "$Vdd32.uh = vzxt($Vu32.ub)",
45747 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45748 let Inst{7-5} = 0b001;
45749 let Inst{13-13} = 0b0;
45750 let Inst{31-16} = 0b0001111000000010;
45751 let hasNewValue = 1;
45752 let opNewValue = 0;
45753 let DecoderNamespace = "EXT_mmvec";
45754 }
45755 def V6_vzb_128B : HInst<
45756 (outs VecDblRegs128B:$Vdd32),
45757 (ins VectorRegs128B:$Vu32),
45758 "$Vdd32.uh = vzxt($Vu32.ub)",
45759 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45760 let Inst{7-5} = 0b001;
45761 let Inst{13-13} = 0b0;
45762 let Inst{31-16} = 0b0001111000000010;
45763 let hasNewValue = 1;
45764 let opNewValue = 0;
45765 let DecoderNamespace = "EXT_mmvec";
45766 let isCodeGenOnly = 1;
45767 }
45768 def V6_vzb_alt : HInst<
45769 (outs VecDblRegs:$Vdd32),
45770 (ins VectorRegs:$Vu32),
45771 "$Vdd32 = vzxtb($Vu32)",
45772 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45773 let hasNewValue = 1;
45774 let opNewValue = 0;
45775 let isPseudo = 1;
45776 let isCodeGenOnly = 1;
45777 let DecoderNamespace = "EXT_mmvec";
45778 }
45779 def V6_vzb_alt_128B : HInst<
45780 (outs VecDblRegs128B:$Vdd32),
45781 (ins VectorRegs128B:$Vu32),
45782 "$Vdd32 = vzxtb($Vu32)",
45783 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45784 let hasNewValue = 1;
45785 let opNewValue = 0;
45786 let isPseudo = 1;
45787 let isCodeGenOnly = 1;
45788 let DecoderNamespace = "EXT_mmvec";
45789 let isCodeGenOnly = 1;
45790 }
45791 def V6_vzh : HInst<
45792 (outs VecDblRegs:$Vdd32),
45793 (ins VectorRegs:$Vu32),
45794 "$Vdd32.uw = vzxt($Vu32.uh)",
45795 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45796 let Inst{7-5} = 0b010;
45797 let Inst{13-13} = 0b0;
45798 let Inst{31-16} = 0b0001111000000010;
45799 let hasNewValue = 1;
45800 let opNewValue = 0;
45801 let DecoderNamespace = "EXT_mmvec";
45802 }
45803 def V6_vzh_128B : HInst<
45804 (outs VecDblRegs128B:$Vdd32),
45805 (ins VectorRegs128B:$Vu32),
45806 "$Vdd32.uw = vzxt($Vu32.uh)",
45807 tc_644584f8, TypeCVI_VA_DV>, Enc_dd766a, Requires<[HasV60T,UseHVX]> {
45808 let Inst{7-5} = 0b010;
45809 let Inst{13-13} = 0b0;
45810 let Inst{31-16} = 0b0001111000000010;
45811 let hasNewValue = 1;
45812 let opNewValue = 0;
45813 let DecoderNamespace = "EXT_mmvec";
45814 let isCodeGenOnly = 1;
45815 }
45816 def V6_vzh_alt : HInst<
45817 (outs VecDblRegs:$Vdd32),
45818 (ins VectorRegs:$Vu32),
45819 "$Vdd32 = vzxth($Vu32)",
45820 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45821 let hasNewValue = 1;
45822 let opNewValue = 0;
45823 let isPseudo = 1;
45824 let isCodeGenOnly = 1;
45825 let DecoderNamespace = "EXT_mmvec";
45826 }
45827 def V6_vzh_alt_128B : HInst<
45828 (outs VecDblRegs128B:$Vdd32),
45829 (ins VectorRegs128B:$Vu32),
45830 "$Vdd32 = vzxth($Vu32)",
45831 PSEUDO, TypeMAPPING>, Requires<[HasV60T,UseHVX]> {
45832 let hasNewValue = 1;
45833 let opNewValue = 0;
45834 let isPseudo = 1;
45835 let isCodeGenOnly = 1;
45836 let DecoderNamespace = "EXT_mmvec";
45837 let isCodeGenOnly = 1;
45838 }
45839 def Y2_barrier : HInst<
45840 (outs),
45841 (ins),
45842 "barrier",
45843 tc_ef2676fd, TypeST>, Enc_e3b0c4 {
45844 let Inst{13-0} = 0b00000000000000;
45845 let Inst{31-16} = 0b1010100000000000;
45846 let isSoloAX = 1;
45847 let hasSideEffects = 1;
45848 }
45849 def Y2_break : HInst<
45850 (outs),
45851 (ins),
45852 "brkpt",
45853 tc_bcf0e36e, TypeCR>, Enc_e3b0c4 {
45854 let Inst{13-0} = 0b00000000000000;
45855 let Inst{31-16} = 0b0110110000100000;
45856 let isSolo = 1;
45857 }
45858 def Y2_dccleana : HInst<
45859 (outs),
45860 (ins IntRegs:$Rs32),
45861 "dccleana($Rs32)",
45862 tc_30665cb0, TypeST>, Enc_ecbcc8 {
45863 let Inst{13-0} = 0b00000000000000;
45864 let Inst{31-21} = 0b10100000000;
45865 let isSoloAin1 = 1;
45866 }
45867 def Y2_dccleaninva : HInst<
45868 (outs),
45869 (ins IntRegs:$Rs32),
45870 "dccleaninva($Rs32)",
45871 tc_30665cb0, TypeST>, Enc_ecbcc8 {
45872 let Inst{13-0} = 0b00000000000000;
45873 let Inst{31-21} = 0b10100000010;
45874 let isSoloAin1 = 1;
45875 }
45876 def Y2_dcfetch : HInst<
45877 (outs),
45878 (ins IntRegs:$Rs32),
45879 "dcfetch($Rs32)",
45880 tc_34e882a4, TypeMAPPING> {
45881 let hasSideEffects = 1;
45882 let isPseudo = 1;
45883 let isCodeGenOnly = 1;
45884 }
45885 def Y2_dcfetchbo : HInst<
45886 (outs),
45887 (ins IntRegs:$Rs32, u11_3Imm:$Ii),
45888 "dcfetch($Rs32+#$Ii)",
45889 tc_ef0ebaaa, TypeLD>, Enc_2d829e {
45890 let Inst{13-11} = 0b000;
45891 let Inst{31-21} = 0b10010100000;
45892 let addrMode = BaseImmOffset;
45893 let hasSideEffects = 1;
45894 }
45895 def Y2_dcinva : HInst<
45896 (outs),
45897 (ins IntRegs:$Rs32),
45898 "dcinva($Rs32)",
45899 tc_30665cb0, TypeST>, Enc_ecbcc8 {
45900 let Inst{13-0} = 0b00000000000000;
45901 let Inst{31-21} = 0b10100000001;
45902 let isSoloAin1 = 1;
45903 }
45904 def Y2_dczeroa : HInst<
45905 (outs),
45906 (ins IntRegs:$Rs32),
45907 "dczeroa($Rs32)",
45908 tc_30665cb0, TypeST>, Enc_ecbcc8 {
45909 let Inst{13-0} = 0b00000000000000;
45910 let Inst{31-21} = 0b10100000110;
45911 let isSoloAin1 = 1;
45912 let mayStore = 1;
45913 }
45914 def Y2_icinva : HInst<
45915 (outs),
45916 (ins IntRegs:$Rs32),
45917 "icinva($Rs32)",
45918 tc_049dfb74, TypeJ>, Enc_ecbcc8 {
45919 let Inst{13-0} = 0b00000000000000;
45920 let Inst{31-21} = 0b01010110110;
45921 let isSolo = 1;
45922 }
45923 def Y2_isync : HInst<
45924 (outs),
45925 (ins),
45926 "isync",
45927 tc_d267fa19, TypeJ>, Enc_e3b0c4 {
45928 let Inst{13-0} = 0b00000000000010;
45929 let Inst{31-16} = 0b0101011111000000;
45930 let isSolo = 1;
45931 }
45932 def Y2_syncht : HInst<
45933 (outs),
45934 (ins),
45935 "syncht",
45936 tc_ef2676fd, TypeST>, Enc_e3b0c4 {
45937 let Inst{13-0} = 0b00000000000000;
45938 let Inst{31-16} = 0b1010100001000000;
45939 let isSolo = 1;
45940 }
45941 def Y4_l2fetch : HInst<
45942 (outs),
45943 (ins IntRegs:$Rs32, IntRegs:$Rt32),
45944 "l2fetch($Rs32,$Rt32)",
45945 tc_f4608adc, TypeST>, Enc_ca3887 {
45946 let Inst{7-0} = 0b00000000;
45947 let Inst{13-13} = 0b0;
45948 let Inst{31-21} = 0b10100110000;
45949 let isSoloAX = 1;
45950 let mayStore = 1;
45951 let hasSideEffects = 1;
45952 }
45953 def Y4_trace : HInst<
45954 (outs),
45955 (ins IntRegs:$Rs32),
45956 "trace($Rs32)",
45957 tc_4997da4a, TypeCR>, Enc_ecbcc8 {
45958 let Inst{13-0} = 0b00000000000000;
45959 let Inst{31-21} = 0b01100010010;
45960 let isSoloAX = 1;
45961 }
45962 def Y5_l2fetch : HInst<
45963 (outs),
45964 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
45965 "l2fetch($Rs32,$Rtt32)",
45966 tc_f4608adc, TypeST>, Enc_e6abcf, Requires<[HasV5T]> {
45967 let Inst{7-0} = 0b00000000;
45968 let Inst{13-13} = 0b0;
45969 let Inst{31-21} = 0b10100110100;
45970 let isSoloAX = 1;
45971 let mayStore = 1;
45972 let hasSideEffects = 1;
45973 }
45974 def dep_A2_addsat : HInst<
45975 (outs IntRegs:$Rd32),
45976 (ins IntRegs:$Rs32, IntRegs:$Rt32),
45977 "$Rd32 = add($Rs32,$Rt32):sat:deprecated",
45978 tc_47ab9233, TypeALU64>, Enc_5ab2be {
45979 let Inst{7-5} = 0b000;
45980 let Inst{13-13} = 0b0;
45981 let Inst{31-21} = 0b11010101100;
45982 let hasNewValue = 1;
45983 let opNewValue = 0;
45984 let prefersSlot3 = 1;
45985 let Defs = [USR_OVF];
45986 }
45987 def dep_A2_subsat : HInst<
45988 (outs IntRegs:$Rd32),
45989 (ins IntRegs:$Rt32, IntRegs:$Rs32),
45990 "$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
45991 tc_47ab9233, TypeALU64>, Enc_bd6011 {
45992 let Inst{7-5} = 0b100;
45993 let Inst{13-13} = 0b0;
45994 let Inst{31-21} = 0b11010101100;
45995 let hasNewValue = 1;
45996 let opNewValue = 0;
45997 let prefersSlot3 = 1;
45998 let Defs = [USR_OVF];
45999 }
46000 def dep_S2_packhl : HInst<
46001 (outs DoubleRegs:$Rdd32),
46002 (ins IntRegs:$Rs32, IntRegs:$Rt32),
46003 "$Rdd32 = packhl($Rs32,$Rt32):deprecated",
46004 tc_9c18c9a5, TypeALU64>, Enc_be32a5 {
46005 let Inst{7-5} = 0b000;
46006 let Inst{13-13} = 0b0;
46007 let Inst{31-21} = 0b11010100000;
46008 }