]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - contrib/llvm/lib/Target/Hexagon/HexagonDepInstrInfo.td
Merge llvm trunk r351319, resolve conflicts, and update FREEBSD-Xlist.
[FreeBSD/FreeBSD.git] / contrib / llvm / lib / Target / Hexagon / HexagonDepInstrInfo.td
1 //===----------------------------------------------------------------------===//
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 // Automatically generated file, please consult code owner before editing.
10 //===----------------------------------------------------------------------===//
11
12 def A2_abs : HInst<
13 (outs IntRegs:$Rd32),
14 (ins IntRegs:$Rs32),
15 "$Rd32 = abs($Rs32)",
16 tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
17 let Inst{13-5} = 0b000000100;
18 let Inst{31-21} = 0b10001100100;
19 let hasNewValue = 1;
20 let opNewValue = 0;
21 let prefersSlot3 = 1;
22 }
23 def A2_absp : HInst<
24 (outs DoubleRegs:$Rdd32),
25 (ins DoubleRegs:$Rss32),
26 "$Rdd32 = abs($Rss32)",
27 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
28 let Inst{13-5} = 0b000000110;
29 let Inst{31-21} = 0b10000000100;
30 let prefersSlot3 = 1;
31 }
32 def A2_abssat : HInst<
33 (outs IntRegs:$Rd32),
34 (ins IntRegs:$Rs32),
35 "$Rd32 = abs($Rs32):sat",
36 tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
37 let Inst{13-5} = 0b000000101;
38 let Inst{31-21} = 0b10001100100;
39 let hasNewValue = 1;
40 let opNewValue = 0;
41 let prefersSlot3 = 1;
42 let Defs = [USR_OVF];
43 }
44 def A2_add : HInst<
45 (outs IntRegs:$Rd32),
46 (ins IntRegs:$Rs32, IntRegs:$Rt32),
47 "$Rd32 = add($Rs32,$Rt32)",
48 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
49 let Inst{7-5} = 0b000;
50 let Inst{13-13} = 0b0;
51 let Inst{31-21} = 0b11110011000;
52 let hasNewValue = 1;
53 let opNewValue = 0;
54 let CextOpcode = "A2_add";
55 let InputType = "reg";
56 let BaseOpcode = "A2_add";
57 let isCommutable = 1;
58 let isPredicable = 1;
59 }
60 def A2_addh_h16_hh : HInst<
61 (outs IntRegs:$Rd32),
62 (ins IntRegs:$Rt32, IntRegs:$Rs32),
63 "$Rd32 = add($Rt32.h,$Rs32.h):<<16",
64 tc_679309b8, TypeALU64>, Enc_bd6011 {
65 let Inst{7-5} = 0b011;
66 let Inst{13-13} = 0b0;
67 let Inst{31-21} = 0b11010101010;
68 let hasNewValue = 1;
69 let opNewValue = 0;
70 let prefersSlot3 = 1;
71 }
72 def A2_addh_h16_hl : HInst<
73 (outs IntRegs:$Rd32),
74 (ins IntRegs:$Rt32, IntRegs:$Rs32),
75 "$Rd32 = add($Rt32.h,$Rs32.l):<<16",
76 tc_679309b8, TypeALU64>, Enc_bd6011 {
77 let Inst{7-5} = 0b010;
78 let Inst{13-13} = 0b0;
79 let Inst{31-21} = 0b11010101010;
80 let hasNewValue = 1;
81 let opNewValue = 0;
82 let prefersSlot3 = 1;
83 }
84 def A2_addh_h16_lh : HInst<
85 (outs IntRegs:$Rd32),
86 (ins IntRegs:$Rt32, IntRegs:$Rs32),
87 "$Rd32 = add($Rt32.l,$Rs32.h):<<16",
88 tc_679309b8, TypeALU64>, Enc_bd6011 {
89 let Inst{7-5} = 0b001;
90 let Inst{13-13} = 0b0;
91 let Inst{31-21} = 0b11010101010;
92 let hasNewValue = 1;
93 let opNewValue = 0;
94 let prefersSlot3 = 1;
95 }
96 def A2_addh_h16_ll : HInst<
97 (outs IntRegs:$Rd32),
98 (ins IntRegs:$Rt32, IntRegs:$Rs32),
99 "$Rd32 = add($Rt32.l,$Rs32.l):<<16",
100 tc_679309b8, TypeALU64>, Enc_bd6011 {
101 let Inst{7-5} = 0b000;
102 let Inst{13-13} = 0b0;
103 let Inst{31-21} = 0b11010101010;
104 let hasNewValue = 1;
105 let opNewValue = 0;
106 let prefersSlot3 = 1;
107 }
108 def A2_addh_h16_sat_hh : HInst<
109 (outs IntRegs:$Rd32),
110 (ins IntRegs:$Rt32, IntRegs:$Rs32),
111 "$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16",
112 tc_779080bf, TypeALU64>, Enc_bd6011 {
113 let Inst{7-5} = 0b111;
114 let Inst{13-13} = 0b0;
115 let Inst{31-21} = 0b11010101010;
116 let hasNewValue = 1;
117 let opNewValue = 0;
118 let prefersSlot3 = 1;
119 let Defs = [USR_OVF];
120 }
121 def A2_addh_h16_sat_hl : HInst<
122 (outs IntRegs:$Rd32),
123 (ins IntRegs:$Rt32, IntRegs:$Rs32),
124 "$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16",
125 tc_779080bf, TypeALU64>, Enc_bd6011 {
126 let Inst{7-5} = 0b110;
127 let Inst{13-13} = 0b0;
128 let Inst{31-21} = 0b11010101010;
129 let hasNewValue = 1;
130 let opNewValue = 0;
131 let prefersSlot3 = 1;
132 let Defs = [USR_OVF];
133 }
134 def A2_addh_h16_sat_lh : HInst<
135 (outs IntRegs:$Rd32),
136 (ins IntRegs:$Rt32, IntRegs:$Rs32),
137 "$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16",
138 tc_779080bf, TypeALU64>, Enc_bd6011 {
139 let Inst{7-5} = 0b101;
140 let Inst{13-13} = 0b0;
141 let Inst{31-21} = 0b11010101010;
142 let hasNewValue = 1;
143 let opNewValue = 0;
144 let prefersSlot3 = 1;
145 let Defs = [USR_OVF];
146 }
147 def A2_addh_h16_sat_ll : HInst<
148 (outs IntRegs:$Rd32),
149 (ins IntRegs:$Rt32, IntRegs:$Rs32),
150 "$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16",
151 tc_779080bf, TypeALU64>, Enc_bd6011 {
152 let Inst{7-5} = 0b100;
153 let Inst{13-13} = 0b0;
154 let Inst{31-21} = 0b11010101010;
155 let hasNewValue = 1;
156 let opNewValue = 0;
157 let prefersSlot3 = 1;
158 let Defs = [USR_OVF];
159 }
160 def A2_addh_l16_hl : HInst<
161 (outs IntRegs:$Rd32),
162 (ins IntRegs:$Rt32, IntRegs:$Rs32),
163 "$Rd32 = add($Rt32.l,$Rs32.h)",
164 tc_4414d8b1, TypeALU64>, Enc_bd6011 {
165 let Inst{7-5} = 0b010;
166 let Inst{13-13} = 0b0;
167 let Inst{31-21} = 0b11010101000;
168 let hasNewValue = 1;
169 let opNewValue = 0;
170 let prefersSlot3 = 1;
171 }
172 def A2_addh_l16_ll : HInst<
173 (outs IntRegs:$Rd32),
174 (ins IntRegs:$Rt32, IntRegs:$Rs32),
175 "$Rd32 = add($Rt32.l,$Rs32.l)",
176 tc_4414d8b1, TypeALU64>, Enc_bd6011 {
177 let Inst{7-5} = 0b000;
178 let Inst{13-13} = 0b0;
179 let Inst{31-21} = 0b11010101000;
180 let hasNewValue = 1;
181 let opNewValue = 0;
182 let prefersSlot3 = 1;
183 }
184 def A2_addh_l16_sat_hl : HInst<
185 (outs IntRegs:$Rd32),
186 (ins IntRegs:$Rt32, IntRegs:$Rs32),
187 "$Rd32 = add($Rt32.l,$Rs32.h):sat",
188 tc_779080bf, TypeALU64>, Enc_bd6011 {
189 let Inst{7-5} = 0b110;
190 let Inst{13-13} = 0b0;
191 let Inst{31-21} = 0b11010101000;
192 let hasNewValue = 1;
193 let opNewValue = 0;
194 let prefersSlot3 = 1;
195 let Defs = [USR_OVF];
196 }
197 def A2_addh_l16_sat_ll : HInst<
198 (outs IntRegs:$Rd32),
199 (ins IntRegs:$Rt32, IntRegs:$Rs32),
200 "$Rd32 = add($Rt32.l,$Rs32.l):sat",
201 tc_779080bf, TypeALU64>, Enc_bd6011 {
202 let Inst{7-5} = 0b100;
203 let Inst{13-13} = 0b0;
204 let Inst{31-21} = 0b11010101000;
205 let hasNewValue = 1;
206 let opNewValue = 0;
207 let prefersSlot3 = 1;
208 let Defs = [USR_OVF];
209 }
210 def A2_addi : HInst<
211 (outs IntRegs:$Rd32),
212 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
213 "$Rd32 = add($Rs32,#$Ii)",
214 tc_5a2711e5, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel {
215 let Inst{31-28} = 0b1011;
216 let hasNewValue = 1;
217 let opNewValue = 0;
218 let CextOpcode = "A2_add";
219 let InputType = "imm";
220 let BaseOpcode = "A2_addi";
221 let isPredicable = 1;
222 let isAdd = 1;
223 let isExtendable = 1;
224 let opExtendable = 2;
225 let isExtentSigned = 1;
226 let opExtentBits = 16;
227 let opExtentAlign = 0;
228 }
229 def A2_addp : HInst<
230 (outs DoubleRegs:$Rdd32),
231 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
232 "$Rdd32 = add($Rss32,$Rtt32)",
233 tc_946df596, TypeALU64>, Enc_a56825 {
234 let Inst{7-5} = 0b111;
235 let Inst{13-13} = 0b0;
236 let Inst{31-21} = 0b11010011000;
237 let isCommutable = 1;
238 let isAdd = 1;
239 }
240 def A2_addpsat : HInst<
241 (outs DoubleRegs:$Rdd32),
242 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
243 "$Rdd32 = add($Rss32,$Rtt32):sat",
244 tc_779080bf, TypeALU64>, Enc_a56825 {
245 let Inst{7-5} = 0b101;
246 let Inst{13-13} = 0b0;
247 let Inst{31-21} = 0b11010011011;
248 let prefersSlot3 = 1;
249 let Defs = [USR_OVF];
250 let isCommutable = 1;
251 }
252 def A2_addsat : HInst<
253 (outs IntRegs:$Rd32),
254 (ins IntRegs:$Rs32, IntRegs:$Rt32),
255 "$Rd32 = add($Rs32,$Rt32):sat",
256 tc_61830035, TypeALU32_3op>, Enc_5ab2be {
257 let Inst{7-5} = 0b000;
258 let Inst{13-13} = 0b0;
259 let Inst{31-21} = 0b11110110010;
260 let hasNewValue = 1;
261 let opNewValue = 0;
262 let prefersSlot3 = 1;
263 let Defs = [USR_OVF];
264 let InputType = "reg";
265 let isCommutable = 1;
266 }
267 def A2_addsp : HInst<
268 (outs DoubleRegs:$Rdd32),
269 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
270 "$Rdd32 = add($Rs32,$Rtt32)",
271 tc_679309b8, TypeALU64> {
272 let isPseudo = 1;
273 }
274 def A2_addsph : HInst<
275 (outs DoubleRegs:$Rdd32),
276 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
277 "$Rdd32 = add($Rss32,$Rtt32):raw:hi",
278 tc_679309b8, TypeALU64>, Enc_a56825 {
279 let Inst{7-5} = 0b111;
280 let Inst{13-13} = 0b0;
281 let Inst{31-21} = 0b11010011011;
282 let prefersSlot3 = 1;
283 }
284 def A2_addspl : HInst<
285 (outs DoubleRegs:$Rdd32),
286 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
287 "$Rdd32 = add($Rss32,$Rtt32):raw:lo",
288 tc_679309b8, TypeALU64>, Enc_a56825 {
289 let Inst{7-5} = 0b110;
290 let Inst{13-13} = 0b0;
291 let Inst{31-21} = 0b11010011011;
292 let prefersSlot3 = 1;
293 }
294 def A2_and : HInst<
295 (outs IntRegs:$Rd32),
296 (ins IntRegs:$Rs32, IntRegs:$Rt32),
297 "$Rd32 = and($Rs32,$Rt32)",
298 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
299 let Inst{7-5} = 0b000;
300 let Inst{13-13} = 0b0;
301 let Inst{31-21} = 0b11110001000;
302 let hasNewValue = 1;
303 let opNewValue = 0;
304 let CextOpcode = "A2_and";
305 let InputType = "reg";
306 let BaseOpcode = "A2_and";
307 let isCommutable = 1;
308 let isPredicable = 1;
309 }
310 def A2_andir : HInst<
311 (outs IntRegs:$Rd32),
312 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
313 "$Rd32 = and($Rs32,#$Ii)",
314 tc_5a2711e5, TypeALU32_2op>, Enc_140c83, ImmRegRel {
315 let Inst{31-22} = 0b0111011000;
316 let hasNewValue = 1;
317 let opNewValue = 0;
318 let CextOpcode = "A2_and";
319 let InputType = "imm";
320 let isExtendable = 1;
321 let opExtendable = 2;
322 let isExtentSigned = 1;
323 let opExtentBits = 10;
324 let opExtentAlign = 0;
325 }
326 def A2_andp : HInst<
327 (outs DoubleRegs:$Rdd32),
328 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
329 "$Rdd32 = and($Rss32,$Rtt32)",
330 tc_946df596, TypeALU64>, Enc_a56825 {
331 let Inst{7-5} = 0b000;
332 let Inst{13-13} = 0b0;
333 let Inst{31-21} = 0b11010011111;
334 let isCommutable = 1;
335 }
336 def A2_aslh : HInst<
337 (outs IntRegs:$Rd32),
338 (ins IntRegs:$Rs32),
339 "$Rd32 = aslh($Rs32)",
340 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
341 let Inst{13-5} = 0b000000000;
342 let Inst{31-21} = 0b01110000000;
343 let hasNewValue = 1;
344 let opNewValue = 0;
345 let BaseOpcode = "A2_aslh";
346 let isPredicable = 1;
347 }
348 def A2_asrh : HInst<
349 (outs IntRegs:$Rd32),
350 (ins IntRegs:$Rs32),
351 "$Rd32 = asrh($Rs32)",
352 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
353 let Inst{13-5} = 0b000000000;
354 let Inst{31-21} = 0b01110000001;
355 let hasNewValue = 1;
356 let opNewValue = 0;
357 let BaseOpcode = "A2_asrh";
358 let isPredicable = 1;
359 }
360 def A2_combine_hh : HInst<
361 (outs IntRegs:$Rd32),
362 (ins IntRegs:$Rt32, IntRegs:$Rs32),
363 "$Rd32 = combine($Rt32.h,$Rs32.h)",
364 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
365 let Inst{7-5} = 0b000;
366 let Inst{13-13} = 0b0;
367 let Inst{31-21} = 0b11110011100;
368 let hasNewValue = 1;
369 let opNewValue = 0;
370 let InputType = "reg";
371 }
372 def A2_combine_hl : HInst<
373 (outs IntRegs:$Rd32),
374 (ins IntRegs:$Rt32, IntRegs:$Rs32),
375 "$Rd32 = combine($Rt32.h,$Rs32.l)",
376 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
377 let Inst{7-5} = 0b000;
378 let Inst{13-13} = 0b0;
379 let Inst{31-21} = 0b11110011101;
380 let hasNewValue = 1;
381 let opNewValue = 0;
382 let InputType = "reg";
383 }
384 def A2_combine_lh : HInst<
385 (outs IntRegs:$Rd32),
386 (ins IntRegs:$Rt32, IntRegs:$Rs32),
387 "$Rd32 = combine($Rt32.l,$Rs32.h)",
388 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
389 let Inst{7-5} = 0b000;
390 let Inst{13-13} = 0b0;
391 let Inst{31-21} = 0b11110011110;
392 let hasNewValue = 1;
393 let opNewValue = 0;
394 let InputType = "reg";
395 }
396 def A2_combine_ll : HInst<
397 (outs IntRegs:$Rd32),
398 (ins IntRegs:$Rt32, IntRegs:$Rs32),
399 "$Rd32 = combine($Rt32.l,$Rs32.l)",
400 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
401 let Inst{7-5} = 0b000;
402 let Inst{13-13} = 0b0;
403 let Inst{31-21} = 0b11110011111;
404 let hasNewValue = 1;
405 let opNewValue = 0;
406 let InputType = "reg";
407 }
408 def A2_combineii : HInst<
409 (outs DoubleRegs:$Rdd32),
410 (ins s32_0Imm:$Ii, s8_0Imm:$II),
411 "$Rdd32 = combine(#$Ii,#$II)",
412 tc_5a2711e5, TypeALU32_2op>, Enc_18c338 {
413 let Inst{31-23} = 0b011111000;
414 let isReMaterializable = 1;
415 let isAsCheapAsAMove = 1;
416 let isMoveImm = 1;
417 let isExtendable = 1;
418 let opExtendable = 1;
419 let isExtentSigned = 1;
420 let opExtentBits = 8;
421 let opExtentAlign = 0;
422 }
423 def A2_combinew : HInst<
424 (outs DoubleRegs:$Rdd32),
425 (ins IntRegs:$Rs32, IntRegs:$Rt32),
426 "$Rdd32 = combine($Rs32,$Rt32)",
427 tc_5a2711e5, TypeALU32_3op>, Enc_be32a5, PredNewRel {
428 let Inst{7-5} = 0b000;
429 let Inst{13-13} = 0b0;
430 let Inst{31-21} = 0b11110101000;
431 let InputType = "reg";
432 let BaseOpcode = "A2_combinew";
433 let isPredicable = 1;
434 }
435 def A2_max : HInst<
436 (outs IntRegs:$Rd32),
437 (ins IntRegs:$Rs32, IntRegs:$Rt32),
438 "$Rd32 = max($Rs32,$Rt32)",
439 tc_779080bf, TypeALU64>, Enc_5ab2be {
440 let Inst{7-5} = 0b000;
441 let Inst{13-13} = 0b0;
442 let Inst{31-21} = 0b11010101110;
443 let hasNewValue = 1;
444 let opNewValue = 0;
445 let prefersSlot3 = 1;
446 }
447 def A2_maxp : HInst<
448 (outs DoubleRegs:$Rdd32),
449 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
450 "$Rdd32 = max($Rss32,$Rtt32)",
451 tc_779080bf, TypeALU64>, Enc_a56825 {
452 let Inst{7-5} = 0b100;
453 let Inst{13-13} = 0b0;
454 let Inst{31-21} = 0b11010011110;
455 let prefersSlot3 = 1;
456 }
457 def A2_maxu : HInst<
458 (outs IntRegs:$Rd32),
459 (ins IntRegs:$Rs32, IntRegs:$Rt32),
460 "$Rd32 = maxu($Rs32,$Rt32)",
461 tc_779080bf, TypeALU64>, Enc_5ab2be {
462 let Inst{7-5} = 0b100;
463 let Inst{13-13} = 0b0;
464 let Inst{31-21} = 0b11010101110;
465 let hasNewValue = 1;
466 let opNewValue = 0;
467 let prefersSlot3 = 1;
468 }
469 def A2_maxup : HInst<
470 (outs DoubleRegs:$Rdd32),
471 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
472 "$Rdd32 = maxu($Rss32,$Rtt32)",
473 tc_779080bf, TypeALU64>, Enc_a56825 {
474 let Inst{7-5} = 0b101;
475 let Inst{13-13} = 0b0;
476 let Inst{31-21} = 0b11010011110;
477 let prefersSlot3 = 1;
478 }
479 def A2_min : HInst<
480 (outs IntRegs:$Rd32),
481 (ins IntRegs:$Rt32, IntRegs:$Rs32),
482 "$Rd32 = min($Rt32,$Rs32)",
483 tc_779080bf, TypeALU64>, Enc_bd6011 {
484 let Inst{7-5} = 0b000;
485 let Inst{13-13} = 0b0;
486 let Inst{31-21} = 0b11010101101;
487 let hasNewValue = 1;
488 let opNewValue = 0;
489 let prefersSlot3 = 1;
490 }
491 def A2_minp : HInst<
492 (outs DoubleRegs:$Rdd32),
493 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
494 "$Rdd32 = min($Rtt32,$Rss32)",
495 tc_779080bf, TypeALU64>, Enc_ea23e4 {
496 let Inst{7-5} = 0b110;
497 let Inst{13-13} = 0b0;
498 let Inst{31-21} = 0b11010011101;
499 let prefersSlot3 = 1;
500 }
501 def A2_minu : HInst<
502 (outs IntRegs:$Rd32),
503 (ins IntRegs:$Rt32, IntRegs:$Rs32),
504 "$Rd32 = minu($Rt32,$Rs32)",
505 tc_779080bf, TypeALU64>, Enc_bd6011 {
506 let Inst{7-5} = 0b100;
507 let Inst{13-13} = 0b0;
508 let Inst{31-21} = 0b11010101101;
509 let hasNewValue = 1;
510 let opNewValue = 0;
511 let prefersSlot3 = 1;
512 }
513 def A2_minup : HInst<
514 (outs DoubleRegs:$Rdd32),
515 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
516 "$Rdd32 = minu($Rtt32,$Rss32)",
517 tc_779080bf, TypeALU64>, Enc_ea23e4 {
518 let Inst{7-5} = 0b111;
519 let Inst{13-13} = 0b0;
520 let Inst{31-21} = 0b11010011101;
521 let prefersSlot3 = 1;
522 }
523 def A2_neg : HInst<
524 (outs IntRegs:$Rd32),
525 (ins IntRegs:$Rs32),
526 "$Rd32 = neg($Rs32)",
527 tc_57890846, TypeALU32_2op> {
528 let hasNewValue = 1;
529 let opNewValue = 0;
530 let isPseudo = 1;
531 let isCodeGenOnly = 1;
532 }
533 def A2_negp : HInst<
534 (outs DoubleRegs:$Rdd32),
535 (ins DoubleRegs:$Rss32),
536 "$Rdd32 = neg($Rss32)",
537 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
538 let Inst{13-5} = 0b000000101;
539 let Inst{31-21} = 0b10000000100;
540 }
541 def A2_negsat : HInst<
542 (outs IntRegs:$Rd32),
543 (ins IntRegs:$Rs32),
544 "$Rd32 = neg($Rs32):sat",
545 tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
546 let Inst{13-5} = 0b000000110;
547 let Inst{31-21} = 0b10001100100;
548 let hasNewValue = 1;
549 let opNewValue = 0;
550 let prefersSlot3 = 1;
551 let Defs = [USR_OVF];
552 }
553 def A2_nop : HInst<
554 (outs),
555 (ins),
556 "nop",
557 tc_2eabeebe, TypeALU32_2op>, Enc_e3b0c4 {
558 let Inst{13-0} = 0b00000000000000;
559 let Inst{31-16} = 0b0111111100000000;
560 }
561 def A2_not : HInst<
562 (outs IntRegs:$Rd32),
563 (ins IntRegs:$Rs32),
564 "$Rd32 = not($Rs32)",
565 tc_57890846, TypeALU32_2op> {
566 let hasNewValue = 1;
567 let opNewValue = 0;
568 let isPseudo = 1;
569 let isCodeGenOnly = 1;
570 }
571 def A2_notp : HInst<
572 (outs DoubleRegs:$Rdd32),
573 (ins DoubleRegs:$Rss32),
574 "$Rdd32 = not($Rss32)",
575 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
576 let Inst{13-5} = 0b000000100;
577 let Inst{31-21} = 0b10000000100;
578 }
579 def A2_or : HInst<
580 (outs IntRegs:$Rd32),
581 (ins IntRegs:$Rs32, IntRegs:$Rt32),
582 "$Rd32 = or($Rs32,$Rt32)",
583 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
584 let Inst{7-5} = 0b000;
585 let Inst{13-13} = 0b0;
586 let Inst{31-21} = 0b11110001001;
587 let hasNewValue = 1;
588 let opNewValue = 0;
589 let CextOpcode = "A2_or";
590 let InputType = "reg";
591 let BaseOpcode = "A2_or";
592 let isCommutable = 1;
593 let isPredicable = 1;
594 }
595 def A2_orir : HInst<
596 (outs IntRegs:$Rd32),
597 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
598 "$Rd32 = or($Rs32,#$Ii)",
599 tc_5a2711e5, TypeALU32_2op>, Enc_140c83, ImmRegRel {
600 let Inst{31-22} = 0b0111011010;
601 let hasNewValue = 1;
602 let opNewValue = 0;
603 let CextOpcode = "A2_or";
604 let InputType = "imm";
605 let isExtendable = 1;
606 let opExtendable = 2;
607 let isExtentSigned = 1;
608 let opExtentBits = 10;
609 let opExtentAlign = 0;
610 }
611 def A2_orp : HInst<
612 (outs DoubleRegs:$Rdd32),
613 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
614 "$Rdd32 = or($Rss32,$Rtt32)",
615 tc_946df596, TypeALU64>, Enc_a56825 {
616 let Inst{7-5} = 0b010;
617 let Inst{13-13} = 0b0;
618 let Inst{31-21} = 0b11010011111;
619 let isCommutable = 1;
620 }
621 def A2_paddf : HInst<
622 (outs IntRegs:$Rd32),
623 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
624 "if (!$Pu4) $Rd32 = add($Rs32,$Rt32)",
625 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
626 let Inst{7-7} = 0b1;
627 let Inst{13-13} = 0b0;
628 let Inst{31-21} = 0b11111011000;
629 let isPredicated = 1;
630 let isPredicatedFalse = 1;
631 let hasNewValue = 1;
632 let opNewValue = 0;
633 let CextOpcode = "A2_add";
634 let InputType = "reg";
635 let BaseOpcode = "A2_add";
636 }
637 def A2_paddfnew : HInst<
638 (outs IntRegs:$Rd32),
639 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
640 "if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)",
641 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
642 let Inst{7-7} = 0b1;
643 let Inst{13-13} = 0b1;
644 let Inst{31-21} = 0b11111011000;
645 let isPredicated = 1;
646 let isPredicatedFalse = 1;
647 let hasNewValue = 1;
648 let opNewValue = 0;
649 let isPredicatedNew = 1;
650 let CextOpcode = "A2_add";
651 let InputType = "reg";
652 let BaseOpcode = "A2_add";
653 }
654 def A2_paddif : HInst<
655 (outs IntRegs:$Rd32),
656 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
657 "if (!$Pu4) $Rd32 = add($Rs32,#$Ii)",
658 tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
659 let Inst{13-13} = 0b0;
660 let Inst{31-23} = 0b011101001;
661 let isPredicated = 1;
662 let isPredicatedFalse = 1;
663 let hasNewValue = 1;
664 let opNewValue = 0;
665 let CextOpcode = "A2_add";
666 let InputType = "imm";
667 let BaseOpcode = "A2_addi";
668 let isExtendable = 1;
669 let opExtendable = 3;
670 let isExtentSigned = 1;
671 let opExtentBits = 8;
672 let opExtentAlign = 0;
673 }
674 def A2_paddifnew : HInst<
675 (outs IntRegs:$Rd32),
676 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
677 "if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)",
678 tc_05c070ec, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
679 let Inst{13-13} = 0b1;
680 let Inst{31-23} = 0b011101001;
681 let isPredicated = 1;
682 let isPredicatedFalse = 1;
683 let hasNewValue = 1;
684 let opNewValue = 0;
685 let isPredicatedNew = 1;
686 let CextOpcode = "A2_add";
687 let InputType = "imm";
688 let BaseOpcode = "A2_addi";
689 let isExtendable = 1;
690 let opExtendable = 3;
691 let isExtentSigned = 1;
692 let opExtentBits = 8;
693 let opExtentAlign = 0;
694 }
695 def A2_paddit : HInst<
696 (outs IntRegs:$Rd32),
697 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
698 "if ($Pu4) $Rd32 = add($Rs32,#$Ii)",
699 tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
700 let Inst{13-13} = 0b0;
701 let Inst{31-23} = 0b011101000;
702 let isPredicated = 1;
703 let hasNewValue = 1;
704 let opNewValue = 0;
705 let CextOpcode = "A2_add";
706 let InputType = "imm";
707 let BaseOpcode = "A2_addi";
708 let isExtendable = 1;
709 let opExtendable = 3;
710 let isExtentSigned = 1;
711 let opExtentBits = 8;
712 let opExtentAlign = 0;
713 }
714 def A2_padditnew : HInst<
715 (outs IntRegs:$Rd32),
716 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
717 "if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)",
718 tc_05c070ec, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
719 let Inst{13-13} = 0b1;
720 let Inst{31-23} = 0b011101000;
721 let isPredicated = 1;
722 let hasNewValue = 1;
723 let opNewValue = 0;
724 let isPredicatedNew = 1;
725 let CextOpcode = "A2_add";
726 let InputType = "imm";
727 let BaseOpcode = "A2_addi";
728 let isExtendable = 1;
729 let opExtendable = 3;
730 let isExtentSigned = 1;
731 let opExtentBits = 8;
732 let opExtentAlign = 0;
733 }
734 def A2_paddt : HInst<
735 (outs IntRegs:$Rd32),
736 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
737 "if ($Pu4) $Rd32 = add($Rs32,$Rt32)",
738 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
739 let Inst{7-7} = 0b0;
740 let Inst{13-13} = 0b0;
741 let Inst{31-21} = 0b11111011000;
742 let isPredicated = 1;
743 let hasNewValue = 1;
744 let opNewValue = 0;
745 let CextOpcode = "A2_add";
746 let InputType = "reg";
747 let BaseOpcode = "A2_add";
748 }
749 def A2_paddtnew : HInst<
750 (outs IntRegs:$Rd32),
751 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
752 "if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)",
753 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
754 let Inst{7-7} = 0b0;
755 let Inst{13-13} = 0b1;
756 let Inst{31-21} = 0b11111011000;
757 let isPredicated = 1;
758 let hasNewValue = 1;
759 let opNewValue = 0;
760 let isPredicatedNew = 1;
761 let CextOpcode = "A2_add";
762 let InputType = "reg";
763 let BaseOpcode = "A2_add";
764 }
765 def A2_pandf : HInst<
766 (outs IntRegs:$Rd32),
767 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
768 "if (!$Pu4) $Rd32 = and($Rs32,$Rt32)",
769 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
770 let Inst{7-7} = 0b1;
771 let Inst{13-13} = 0b0;
772 let Inst{31-21} = 0b11111001000;
773 let isPredicated = 1;
774 let isPredicatedFalse = 1;
775 let hasNewValue = 1;
776 let opNewValue = 0;
777 let BaseOpcode = "A2_and";
778 }
779 def A2_pandfnew : HInst<
780 (outs IntRegs:$Rd32),
781 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
782 "if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)",
783 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
784 let Inst{7-7} = 0b1;
785 let Inst{13-13} = 0b1;
786 let Inst{31-21} = 0b11111001000;
787 let isPredicated = 1;
788 let isPredicatedFalse = 1;
789 let hasNewValue = 1;
790 let opNewValue = 0;
791 let isPredicatedNew = 1;
792 let BaseOpcode = "A2_and";
793 }
794 def A2_pandt : HInst<
795 (outs IntRegs:$Rd32),
796 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
797 "if ($Pu4) $Rd32 = and($Rs32,$Rt32)",
798 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
799 let Inst{7-7} = 0b0;
800 let Inst{13-13} = 0b0;
801 let Inst{31-21} = 0b11111001000;
802 let isPredicated = 1;
803 let hasNewValue = 1;
804 let opNewValue = 0;
805 let BaseOpcode = "A2_and";
806 }
807 def A2_pandtnew : HInst<
808 (outs IntRegs:$Rd32),
809 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
810 "if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)",
811 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
812 let Inst{7-7} = 0b0;
813 let Inst{13-13} = 0b1;
814 let Inst{31-21} = 0b11111001000;
815 let isPredicated = 1;
816 let hasNewValue = 1;
817 let opNewValue = 0;
818 let isPredicatedNew = 1;
819 let BaseOpcode = "A2_and";
820 }
821 def A2_porf : HInst<
822 (outs IntRegs:$Rd32),
823 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
824 "if (!$Pu4) $Rd32 = or($Rs32,$Rt32)",
825 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
826 let Inst{7-7} = 0b1;
827 let Inst{13-13} = 0b0;
828 let Inst{31-21} = 0b11111001001;
829 let isPredicated = 1;
830 let isPredicatedFalse = 1;
831 let hasNewValue = 1;
832 let opNewValue = 0;
833 let BaseOpcode = "A2_or";
834 }
835 def A2_porfnew : HInst<
836 (outs IntRegs:$Rd32),
837 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
838 "if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)",
839 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
840 let Inst{7-7} = 0b1;
841 let Inst{13-13} = 0b1;
842 let Inst{31-21} = 0b11111001001;
843 let isPredicated = 1;
844 let isPredicatedFalse = 1;
845 let hasNewValue = 1;
846 let opNewValue = 0;
847 let isPredicatedNew = 1;
848 let BaseOpcode = "A2_or";
849 }
850 def A2_port : HInst<
851 (outs IntRegs:$Rd32),
852 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
853 "if ($Pu4) $Rd32 = or($Rs32,$Rt32)",
854 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
855 let Inst{7-7} = 0b0;
856 let Inst{13-13} = 0b0;
857 let Inst{31-21} = 0b11111001001;
858 let isPredicated = 1;
859 let hasNewValue = 1;
860 let opNewValue = 0;
861 let BaseOpcode = "A2_or";
862 }
863 def A2_portnew : HInst<
864 (outs IntRegs:$Rd32),
865 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
866 "if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)",
867 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
868 let Inst{7-7} = 0b0;
869 let Inst{13-13} = 0b1;
870 let Inst{31-21} = 0b11111001001;
871 let isPredicated = 1;
872 let hasNewValue = 1;
873 let opNewValue = 0;
874 let isPredicatedNew = 1;
875 let BaseOpcode = "A2_or";
876 }
877 def A2_psubf : HInst<
878 (outs IntRegs:$Rd32),
879 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
880 "if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)",
881 tc_4c5ba658, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
882 let Inst{7-7} = 0b1;
883 let Inst{13-13} = 0b0;
884 let Inst{31-21} = 0b11111011001;
885 let isPredicated = 1;
886 let isPredicatedFalse = 1;
887 let hasNewValue = 1;
888 let opNewValue = 0;
889 let BaseOpcode = "A2_sub";
890 }
891 def A2_psubfnew : HInst<
892 (outs IntRegs:$Rd32),
893 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
894 "if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
895 tc_05c070ec, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
896 let Inst{7-7} = 0b1;
897 let Inst{13-13} = 0b1;
898 let Inst{31-21} = 0b11111011001;
899 let isPredicated = 1;
900 let isPredicatedFalse = 1;
901 let hasNewValue = 1;
902 let opNewValue = 0;
903 let isPredicatedNew = 1;
904 let BaseOpcode = "A2_sub";
905 }
906 def A2_psubt : HInst<
907 (outs IntRegs:$Rd32),
908 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
909 "if ($Pu4) $Rd32 = sub($Rt32,$Rs32)",
910 tc_4c5ba658, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
911 let Inst{7-7} = 0b0;
912 let Inst{13-13} = 0b0;
913 let Inst{31-21} = 0b11111011001;
914 let isPredicated = 1;
915 let hasNewValue = 1;
916 let opNewValue = 0;
917 let BaseOpcode = "A2_sub";
918 }
919 def A2_psubtnew : HInst<
920 (outs IntRegs:$Rd32),
921 (ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
922 "if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
923 tc_05c070ec, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
924 let Inst{7-7} = 0b0;
925 let Inst{13-13} = 0b1;
926 let Inst{31-21} = 0b11111011001;
927 let isPredicated = 1;
928 let hasNewValue = 1;
929 let opNewValue = 0;
930 let isPredicatedNew = 1;
931 let BaseOpcode = "A2_sub";
932 }
933 def A2_pxorf : HInst<
934 (outs IntRegs:$Rd32),
935 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
936 "if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)",
937 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
938 let Inst{7-7} = 0b1;
939 let Inst{13-13} = 0b0;
940 let Inst{31-21} = 0b11111001011;
941 let isPredicated = 1;
942 let isPredicatedFalse = 1;
943 let hasNewValue = 1;
944 let opNewValue = 0;
945 let BaseOpcode = "A2_xor";
946 }
947 def A2_pxorfnew : HInst<
948 (outs IntRegs:$Rd32),
949 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
950 "if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
951 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
952 let Inst{7-7} = 0b1;
953 let Inst{13-13} = 0b1;
954 let Inst{31-21} = 0b11111001011;
955 let isPredicated = 1;
956 let isPredicatedFalse = 1;
957 let hasNewValue = 1;
958 let opNewValue = 0;
959 let isPredicatedNew = 1;
960 let BaseOpcode = "A2_xor";
961 }
962 def A2_pxort : HInst<
963 (outs IntRegs:$Rd32),
964 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
965 "if ($Pu4) $Rd32 = xor($Rs32,$Rt32)",
966 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
967 let Inst{7-7} = 0b0;
968 let Inst{13-13} = 0b0;
969 let Inst{31-21} = 0b11111001011;
970 let isPredicated = 1;
971 let hasNewValue = 1;
972 let opNewValue = 0;
973 let BaseOpcode = "A2_xor";
974 }
975 def A2_pxortnew : HInst<
976 (outs IntRegs:$Rd32),
977 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
978 "if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
979 tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
980 let Inst{7-7} = 0b0;
981 let Inst{13-13} = 0b1;
982 let Inst{31-21} = 0b11111001011;
983 let isPredicated = 1;
984 let hasNewValue = 1;
985 let opNewValue = 0;
986 let isPredicatedNew = 1;
987 let BaseOpcode = "A2_xor";
988 }
989 def A2_roundsat : HInst<
990 (outs IntRegs:$Rd32),
991 (ins DoubleRegs:$Rss32),
992 "$Rd32 = round($Rss32):sat",
993 tc_cf8126ae, TypeS_2op>, Enc_90cd8b {
994 let Inst{13-5} = 0b000000001;
995 let Inst{31-21} = 0b10001000110;
996 let hasNewValue = 1;
997 let opNewValue = 0;
998 let prefersSlot3 = 1;
999 let Defs = [USR_OVF];
1000 }
1001 def A2_sat : HInst<
1002 (outs IntRegs:$Rd32),
1003 (ins DoubleRegs:$Rss32),
1004 "$Rd32 = sat($Rss32)",
1005 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
1006 let Inst{13-5} = 0b000000000;
1007 let Inst{31-21} = 0b10001000110;
1008 let hasNewValue = 1;
1009 let opNewValue = 0;
1010 let Defs = [USR_OVF];
1011 }
1012 def A2_satb : HInst<
1013 (outs IntRegs:$Rd32),
1014 (ins IntRegs:$Rs32),
1015 "$Rd32 = satb($Rs32)",
1016 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1017 let Inst{13-5} = 0b000000111;
1018 let Inst{31-21} = 0b10001100110;
1019 let hasNewValue = 1;
1020 let opNewValue = 0;
1021 let Defs = [USR_OVF];
1022 }
1023 def A2_sath : HInst<
1024 (outs IntRegs:$Rd32),
1025 (ins IntRegs:$Rs32),
1026 "$Rd32 = sath($Rs32)",
1027 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1028 let Inst{13-5} = 0b000000100;
1029 let Inst{31-21} = 0b10001100110;
1030 let hasNewValue = 1;
1031 let opNewValue = 0;
1032 let Defs = [USR_OVF];
1033 }
1034 def A2_satub : HInst<
1035 (outs IntRegs:$Rd32),
1036 (ins IntRegs:$Rs32),
1037 "$Rd32 = satub($Rs32)",
1038 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1039 let Inst{13-5} = 0b000000110;
1040 let Inst{31-21} = 0b10001100110;
1041 let hasNewValue = 1;
1042 let opNewValue = 0;
1043 let Defs = [USR_OVF];
1044 }
1045 def A2_satuh : HInst<
1046 (outs IntRegs:$Rd32),
1047 (ins IntRegs:$Rs32),
1048 "$Rd32 = satuh($Rs32)",
1049 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1050 let Inst{13-5} = 0b000000101;
1051 let Inst{31-21} = 0b10001100110;
1052 let hasNewValue = 1;
1053 let opNewValue = 0;
1054 let Defs = [USR_OVF];
1055 }
1056 def A2_sub : HInst<
1057 (outs IntRegs:$Rd32),
1058 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1059 "$Rd32 = sub($Rt32,$Rs32)",
1060 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel {
1061 let Inst{7-5} = 0b000;
1062 let Inst{13-13} = 0b0;
1063 let Inst{31-21} = 0b11110011001;
1064 let hasNewValue = 1;
1065 let opNewValue = 0;
1066 let CextOpcode = "A2_sub";
1067 let InputType = "reg";
1068 let BaseOpcode = "A2_sub";
1069 let isPredicable = 1;
1070 }
1071 def A2_subh_h16_hh : HInst<
1072 (outs IntRegs:$Rd32),
1073 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1074 "$Rd32 = sub($Rt32.h,$Rs32.h):<<16",
1075 tc_679309b8, TypeALU64>, Enc_bd6011 {
1076 let Inst{7-5} = 0b011;
1077 let Inst{13-13} = 0b0;
1078 let Inst{31-21} = 0b11010101011;
1079 let hasNewValue = 1;
1080 let opNewValue = 0;
1081 let prefersSlot3 = 1;
1082 }
1083 def A2_subh_h16_hl : HInst<
1084 (outs IntRegs:$Rd32),
1085 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1086 "$Rd32 = sub($Rt32.h,$Rs32.l):<<16",
1087 tc_679309b8, TypeALU64>, Enc_bd6011 {
1088 let Inst{7-5} = 0b010;
1089 let Inst{13-13} = 0b0;
1090 let Inst{31-21} = 0b11010101011;
1091 let hasNewValue = 1;
1092 let opNewValue = 0;
1093 let prefersSlot3 = 1;
1094 }
1095 def A2_subh_h16_lh : HInst<
1096 (outs IntRegs:$Rd32),
1097 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1098 "$Rd32 = sub($Rt32.l,$Rs32.h):<<16",
1099 tc_679309b8, TypeALU64>, Enc_bd6011 {
1100 let Inst{7-5} = 0b001;
1101 let Inst{13-13} = 0b0;
1102 let Inst{31-21} = 0b11010101011;
1103 let hasNewValue = 1;
1104 let opNewValue = 0;
1105 let prefersSlot3 = 1;
1106 }
1107 def A2_subh_h16_ll : HInst<
1108 (outs IntRegs:$Rd32),
1109 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1110 "$Rd32 = sub($Rt32.l,$Rs32.l):<<16",
1111 tc_679309b8, TypeALU64>, Enc_bd6011 {
1112 let Inst{7-5} = 0b000;
1113 let Inst{13-13} = 0b0;
1114 let Inst{31-21} = 0b11010101011;
1115 let hasNewValue = 1;
1116 let opNewValue = 0;
1117 let prefersSlot3 = 1;
1118 }
1119 def A2_subh_h16_sat_hh : HInst<
1120 (outs IntRegs:$Rd32),
1121 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1122 "$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16",
1123 tc_779080bf, TypeALU64>, Enc_bd6011 {
1124 let Inst{7-5} = 0b111;
1125 let Inst{13-13} = 0b0;
1126 let Inst{31-21} = 0b11010101011;
1127 let hasNewValue = 1;
1128 let opNewValue = 0;
1129 let prefersSlot3 = 1;
1130 let Defs = [USR_OVF];
1131 }
1132 def A2_subh_h16_sat_hl : HInst<
1133 (outs IntRegs:$Rd32),
1134 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1135 "$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16",
1136 tc_779080bf, TypeALU64>, Enc_bd6011 {
1137 let Inst{7-5} = 0b110;
1138 let Inst{13-13} = 0b0;
1139 let Inst{31-21} = 0b11010101011;
1140 let hasNewValue = 1;
1141 let opNewValue = 0;
1142 let prefersSlot3 = 1;
1143 let Defs = [USR_OVF];
1144 }
1145 def A2_subh_h16_sat_lh : HInst<
1146 (outs IntRegs:$Rd32),
1147 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1148 "$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16",
1149 tc_779080bf, TypeALU64>, Enc_bd6011 {
1150 let Inst{7-5} = 0b101;
1151 let Inst{13-13} = 0b0;
1152 let Inst{31-21} = 0b11010101011;
1153 let hasNewValue = 1;
1154 let opNewValue = 0;
1155 let prefersSlot3 = 1;
1156 let Defs = [USR_OVF];
1157 }
1158 def A2_subh_h16_sat_ll : HInst<
1159 (outs IntRegs:$Rd32),
1160 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1161 "$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16",
1162 tc_779080bf, TypeALU64>, Enc_bd6011 {
1163 let Inst{7-5} = 0b100;
1164 let Inst{13-13} = 0b0;
1165 let Inst{31-21} = 0b11010101011;
1166 let hasNewValue = 1;
1167 let opNewValue = 0;
1168 let prefersSlot3 = 1;
1169 let Defs = [USR_OVF];
1170 }
1171 def A2_subh_l16_hl : HInst<
1172 (outs IntRegs:$Rd32),
1173 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1174 "$Rd32 = sub($Rt32.l,$Rs32.h)",
1175 tc_4414d8b1, TypeALU64>, Enc_bd6011 {
1176 let Inst{7-5} = 0b010;
1177 let Inst{13-13} = 0b0;
1178 let Inst{31-21} = 0b11010101001;
1179 let hasNewValue = 1;
1180 let opNewValue = 0;
1181 let prefersSlot3 = 1;
1182 }
1183 def A2_subh_l16_ll : HInst<
1184 (outs IntRegs:$Rd32),
1185 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1186 "$Rd32 = sub($Rt32.l,$Rs32.l)",
1187 tc_4414d8b1, TypeALU64>, Enc_bd6011 {
1188 let Inst{7-5} = 0b000;
1189 let Inst{13-13} = 0b0;
1190 let Inst{31-21} = 0b11010101001;
1191 let hasNewValue = 1;
1192 let opNewValue = 0;
1193 let prefersSlot3 = 1;
1194 }
1195 def A2_subh_l16_sat_hl : HInst<
1196 (outs IntRegs:$Rd32),
1197 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1198 "$Rd32 = sub($Rt32.l,$Rs32.h):sat",
1199 tc_779080bf, TypeALU64>, Enc_bd6011 {
1200 let Inst{7-5} = 0b110;
1201 let Inst{13-13} = 0b0;
1202 let Inst{31-21} = 0b11010101001;
1203 let hasNewValue = 1;
1204 let opNewValue = 0;
1205 let prefersSlot3 = 1;
1206 let Defs = [USR_OVF];
1207 }
1208 def A2_subh_l16_sat_ll : HInst<
1209 (outs IntRegs:$Rd32),
1210 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1211 "$Rd32 = sub($Rt32.l,$Rs32.l):sat",
1212 tc_779080bf, TypeALU64>, Enc_bd6011 {
1213 let Inst{7-5} = 0b100;
1214 let Inst{13-13} = 0b0;
1215 let Inst{31-21} = 0b11010101001;
1216 let hasNewValue = 1;
1217 let opNewValue = 0;
1218 let prefersSlot3 = 1;
1219 let Defs = [USR_OVF];
1220 }
1221 def A2_subp : HInst<
1222 (outs DoubleRegs:$Rdd32),
1223 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1224 "$Rdd32 = sub($Rtt32,$Rss32)",
1225 tc_946df596, TypeALU64>, Enc_ea23e4 {
1226 let Inst{7-5} = 0b111;
1227 let Inst{13-13} = 0b0;
1228 let Inst{31-21} = 0b11010011001;
1229 }
1230 def A2_subri : HInst<
1231 (outs IntRegs:$Rd32),
1232 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
1233 "$Rd32 = sub(#$Ii,$Rs32)",
1234 tc_5a2711e5, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel {
1235 let Inst{31-22} = 0b0111011001;
1236 let hasNewValue = 1;
1237 let opNewValue = 0;
1238 let CextOpcode = "A2_sub";
1239 let InputType = "imm";
1240 let isExtendable = 1;
1241 let opExtendable = 1;
1242 let isExtentSigned = 1;
1243 let opExtentBits = 10;
1244 let opExtentAlign = 0;
1245 }
1246 def A2_subsat : HInst<
1247 (outs IntRegs:$Rd32),
1248 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1249 "$Rd32 = sub($Rt32,$Rs32):sat",
1250 tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1251 let Inst{7-5} = 0b000;
1252 let Inst{13-13} = 0b0;
1253 let Inst{31-21} = 0b11110110110;
1254 let hasNewValue = 1;
1255 let opNewValue = 0;
1256 let prefersSlot3 = 1;
1257 let Defs = [USR_OVF];
1258 let InputType = "reg";
1259 }
1260 def A2_svaddh : HInst<
1261 (outs IntRegs:$Rd32),
1262 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1263 "$Rd32 = vaddh($Rs32,$Rt32)",
1264 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be {
1265 let Inst{7-5} = 0b000;
1266 let Inst{13-13} = 0b0;
1267 let Inst{31-21} = 0b11110110000;
1268 let hasNewValue = 1;
1269 let opNewValue = 0;
1270 let InputType = "reg";
1271 let isCommutable = 1;
1272 }
1273 def A2_svaddhs : HInst<
1274 (outs IntRegs:$Rd32),
1275 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1276 "$Rd32 = vaddh($Rs32,$Rt32):sat",
1277 tc_61830035, TypeALU32_3op>, Enc_5ab2be {
1278 let Inst{7-5} = 0b000;
1279 let Inst{13-13} = 0b0;
1280 let Inst{31-21} = 0b11110110001;
1281 let hasNewValue = 1;
1282 let opNewValue = 0;
1283 let prefersSlot3 = 1;
1284 let Defs = [USR_OVF];
1285 let InputType = "reg";
1286 let isCommutable = 1;
1287 }
1288 def A2_svadduhs : HInst<
1289 (outs IntRegs:$Rd32),
1290 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1291 "$Rd32 = vadduh($Rs32,$Rt32):sat",
1292 tc_61830035, TypeALU32_3op>, Enc_5ab2be {
1293 let Inst{7-5} = 0b000;
1294 let Inst{13-13} = 0b0;
1295 let Inst{31-21} = 0b11110110011;
1296 let hasNewValue = 1;
1297 let opNewValue = 0;
1298 let prefersSlot3 = 1;
1299 let Defs = [USR_OVF];
1300 let InputType = "reg";
1301 let isCommutable = 1;
1302 }
1303 def A2_svavgh : HInst<
1304 (outs IntRegs:$Rd32),
1305 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1306 "$Rd32 = vavgh($Rs32,$Rt32)",
1307 tc_1c80410a, TypeALU32_3op>, Enc_5ab2be {
1308 let Inst{7-5} = 0b000;
1309 let Inst{13-13} = 0b0;
1310 let Inst{31-21} = 0b11110111000;
1311 let hasNewValue = 1;
1312 let opNewValue = 0;
1313 let prefersSlot3 = 1;
1314 let InputType = "reg";
1315 let isCommutable = 1;
1316 }
1317 def A2_svavghs : HInst<
1318 (outs IntRegs:$Rd32),
1319 (ins IntRegs:$Rs32, IntRegs:$Rt32),
1320 "$Rd32 = vavgh($Rs32,$Rt32):rnd",
1321 tc_d08ee0f4, TypeALU32_3op>, Enc_5ab2be {
1322 let Inst{7-5} = 0b000;
1323 let Inst{13-13} = 0b0;
1324 let Inst{31-21} = 0b11110111001;
1325 let hasNewValue = 1;
1326 let opNewValue = 0;
1327 let prefersSlot3 = 1;
1328 let InputType = "reg";
1329 let isCommutable = 1;
1330 }
1331 def A2_svnavgh : HInst<
1332 (outs IntRegs:$Rd32),
1333 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1334 "$Rd32 = vnavgh($Rt32,$Rs32)",
1335 tc_1c80410a, TypeALU32_3op>, Enc_bd6011 {
1336 let Inst{7-5} = 0b000;
1337 let Inst{13-13} = 0b0;
1338 let Inst{31-21} = 0b11110111011;
1339 let hasNewValue = 1;
1340 let opNewValue = 0;
1341 let prefersSlot3 = 1;
1342 let InputType = "reg";
1343 }
1344 def A2_svsubh : HInst<
1345 (outs IntRegs:$Rd32),
1346 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1347 "$Rd32 = vsubh($Rt32,$Rs32)",
1348 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
1349 let Inst{7-5} = 0b000;
1350 let Inst{13-13} = 0b0;
1351 let Inst{31-21} = 0b11110110100;
1352 let hasNewValue = 1;
1353 let opNewValue = 0;
1354 let InputType = "reg";
1355 }
1356 def A2_svsubhs : HInst<
1357 (outs IntRegs:$Rd32),
1358 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1359 "$Rd32 = vsubh($Rt32,$Rs32):sat",
1360 tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1361 let Inst{7-5} = 0b000;
1362 let Inst{13-13} = 0b0;
1363 let Inst{31-21} = 0b11110110101;
1364 let hasNewValue = 1;
1365 let opNewValue = 0;
1366 let prefersSlot3 = 1;
1367 let Defs = [USR_OVF];
1368 let InputType = "reg";
1369 }
1370 def A2_svsubuhs : HInst<
1371 (outs IntRegs:$Rd32),
1372 (ins IntRegs:$Rt32, IntRegs:$Rs32),
1373 "$Rd32 = vsubuh($Rt32,$Rs32):sat",
1374 tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1375 let Inst{7-5} = 0b000;
1376 let Inst{13-13} = 0b0;
1377 let Inst{31-21} = 0b11110110111;
1378 let hasNewValue = 1;
1379 let opNewValue = 0;
1380 let prefersSlot3 = 1;
1381 let Defs = [USR_OVF];
1382 let InputType = "reg";
1383 }
1384 def A2_swiz : HInst<
1385 (outs IntRegs:$Rd32),
1386 (ins IntRegs:$Rs32),
1387 "$Rd32 = swiz($Rs32)",
1388 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1389 let Inst{13-5} = 0b000000111;
1390 let Inst{31-21} = 0b10001100100;
1391 let hasNewValue = 1;
1392 let opNewValue = 0;
1393 }
1394 def A2_sxtb : HInst<
1395 (outs IntRegs:$Rd32),
1396 (ins IntRegs:$Rs32),
1397 "$Rd32 = sxtb($Rs32)",
1398 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1399 let Inst{13-5} = 0b000000000;
1400 let Inst{31-21} = 0b01110000101;
1401 let hasNewValue = 1;
1402 let opNewValue = 0;
1403 let BaseOpcode = "A2_sxtb";
1404 let isPredicable = 1;
1405 }
1406 def A2_sxth : HInst<
1407 (outs IntRegs:$Rd32),
1408 (ins IntRegs:$Rs32),
1409 "$Rd32 = sxth($Rs32)",
1410 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1411 let Inst{13-5} = 0b000000000;
1412 let Inst{31-21} = 0b01110000111;
1413 let hasNewValue = 1;
1414 let opNewValue = 0;
1415 let BaseOpcode = "A2_sxth";
1416 let isPredicable = 1;
1417 }
1418 def A2_sxtw : HInst<
1419 (outs DoubleRegs:$Rdd32),
1420 (ins IntRegs:$Rs32),
1421 "$Rdd32 = sxtw($Rs32)",
1422 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
1423 let Inst{13-5} = 0b000000000;
1424 let Inst{31-21} = 0b10000100010;
1425 }
1426 def A2_tfr : HInst<
1427 (outs IntRegs:$Rd32),
1428 (ins IntRegs:$Rs32),
1429 "$Rd32 = $Rs32",
1430 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1431 let Inst{13-5} = 0b000000000;
1432 let Inst{31-21} = 0b01110000011;
1433 let hasNewValue = 1;
1434 let opNewValue = 0;
1435 let InputType = "reg";
1436 let BaseOpcode = "A2_tfr";
1437 let isPredicable = 1;
1438 }
1439 def A2_tfrcrr : HInst<
1440 (outs IntRegs:$Rd32),
1441 (ins CtrRegs:$Cs32),
1442 "$Rd32 = $Cs32",
1443 tc_b9272d6c, TypeCR>, Enc_0cb018 {
1444 let Inst{13-5} = 0b000000000;
1445 let Inst{31-21} = 0b01101010000;
1446 let hasNewValue = 1;
1447 let opNewValue = 0;
1448 }
1449 def A2_tfrf : HInst<
1450 (outs IntRegs:$Rd32),
1451 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1452 "if (!$Pu4) $Rd32 = $Rs32",
1453 tc_4c5ba658, TypeALU32_2op>, PredNewRel, ImmRegRel {
1454 let isPredicated = 1;
1455 let isPredicatedFalse = 1;
1456 let hasNewValue = 1;
1457 let opNewValue = 0;
1458 let CextOpcode = "A2_tfr";
1459 let InputType = "reg";
1460 let BaseOpcode = "A2_tfr";
1461 let isPseudo = 1;
1462 let isCodeGenOnly = 1;
1463 }
1464 def A2_tfrfnew : HInst<
1465 (outs IntRegs:$Rd32),
1466 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1467 "if (!$Pu4.new) $Rd32 = $Rs32",
1468 tc_05c070ec, TypeALU32_2op>, PredNewRel, ImmRegRel {
1469 let isPredicated = 1;
1470 let isPredicatedFalse = 1;
1471 let hasNewValue = 1;
1472 let opNewValue = 0;
1473 let isPredicatedNew = 1;
1474 let CextOpcode = "A2_tfr";
1475 let InputType = "reg";
1476 let BaseOpcode = "A2_tfr";
1477 let isPseudo = 1;
1478 let isCodeGenOnly = 1;
1479 }
1480 def A2_tfrih : HInst<
1481 (outs IntRegs:$Rx32),
1482 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1483 "$Rx32.h = #$Ii",
1484 tc_5a2711e5, TypeALU32_2op>, Enc_51436c {
1485 let Inst{21-21} = 0b1;
1486 let Inst{31-24} = 0b01110010;
1487 let hasNewValue = 1;
1488 let opNewValue = 0;
1489 let Constraints = "$Rx32 = $Rx32in";
1490 }
1491 def A2_tfril : HInst<
1492 (outs IntRegs:$Rx32),
1493 (ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1494 "$Rx32.l = #$Ii",
1495 tc_5a2711e5, TypeALU32_2op>, Enc_51436c {
1496 let Inst{21-21} = 0b1;
1497 let Inst{31-24} = 0b01110001;
1498 let hasNewValue = 1;
1499 let opNewValue = 0;
1500 let Constraints = "$Rx32 = $Rx32in";
1501 }
1502 def A2_tfrp : HInst<
1503 (outs DoubleRegs:$Rdd32),
1504 (ins DoubleRegs:$Rss32),
1505 "$Rdd32 = $Rss32",
1506 tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1507 let BaseOpcode = "A2_tfrp";
1508 let isPredicable = 1;
1509 let isPseudo = 1;
1510 }
1511 def A2_tfrpf : HInst<
1512 (outs DoubleRegs:$Rdd32),
1513 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1514 "if (!$Pu4) $Rdd32 = $Rss32",
1515 tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1516 let isPredicated = 1;
1517 let isPredicatedFalse = 1;
1518 let BaseOpcode = "A2_tfrp";
1519 let isPseudo = 1;
1520 }
1521 def A2_tfrpfnew : HInst<
1522 (outs DoubleRegs:$Rdd32),
1523 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1524 "if (!$Pu4.new) $Rdd32 = $Rss32",
1525 tc_1ae57e39, TypeALU32_2op>, PredNewRel {
1526 let isPredicated = 1;
1527 let isPredicatedFalse = 1;
1528 let isPredicatedNew = 1;
1529 let BaseOpcode = "A2_tfrp";
1530 let isPseudo = 1;
1531 }
1532 def A2_tfrpi : HInst<
1533 (outs DoubleRegs:$Rdd32),
1534 (ins s8_0Imm:$Ii),
1535 "$Rdd32 = #$Ii",
1536 tc_5a2711e5, TypeALU64> {
1537 let isReMaterializable = 1;
1538 let isAsCheapAsAMove = 1;
1539 let isMoveImm = 1;
1540 let isPseudo = 1;
1541 }
1542 def A2_tfrpt : HInst<
1543 (outs DoubleRegs:$Rdd32),
1544 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1545 "if ($Pu4) $Rdd32 = $Rss32",
1546 tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1547 let isPredicated = 1;
1548 let BaseOpcode = "A2_tfrp";
1549 let isPseudo = 1;
1550 }
1551 def A2_tfrptnew : HInst<
1552 (outs DoubleRegs:$Rdd32),
1553 (ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1554 "if ($Pu4.new) $Rdd32 = $Rss32",
1555 tc_1ae57e39, TypeALU32_2op>, PredNewRel {
1556 let isPredicated = 1;
1557 let isPredicatedNew = 1;
1558 let BaseOpcode = "A2_tfrp";
1559 let isPseudo = 1;
1560 }
1561 def A2_tfrrcr : HInst<
1562 (outs CtrRegs:$Cd32),
1563 (ins IntRegs:$Rs32),
1564 "$Cd32 = $Rs32",
1565 tc_434c8e1e, TypeCR>, Enc_bd811a {
1566 let Inst{13-5} = 0b000000000;
1567 let Inst{31-21} = 0b01100010001;
1568 let hasNewValue = 1;
1569 let opNewValue = 0;
1570 }
1571 def A2_tfrsi : HInst<
1572 (outs IntRegs:$Rd32),
1573 (ins s32_0Imm:$Ii),
1574 "$Rd32 = #$Ii",
1575 tc_57890846, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel {
1576 let Inst{21-21} = 0b0;
1577 let Inst{31-24} = 0b01111000;
1578 let hasNewValue = 1;
1579 let opNewValue = 0;
1580 let CextOpcode = "A2_tfr";
1581 let InputType = "imm";
1582 let BaseOpcode = "A2_tfrsi";
1583 let isPredicable = 1;
1584 let isReMaterializable = 1;
1585 let isAsCheapAsAMove = 1;
1586 let isMoveImm = 1;
1587 let isExtendable = 1;
1588 let opExtendable = 1;
1589 let isExtentSigned = 1;
1590 let opExtentBits = 16;
1591 let opExtentAlign = 0;
1592 }
1593 def A2_tfrt : HInst<
1594 (outs IntRegs:$Rd32),
1595 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1596 "if ($Pu4) $Rd32 = $Rs32",
1597 tc_4c5ba658, TypeALU32_2op>, PredNewRel, ImmRegRel {
1598 let isPredicated = 1;
1599 let hasNewValue = 1;
1600 let opNewValue = 0;
1601 let CextOpcode = "A2_tfr";
1602 let InputType = "reg";
1603 let BaseOpcode = "A2_tfr";
1604 let isPseudo = 1;
1605 let isCodeGenOnly = 1;
1606 }
1607 def A2_tfrtnew : HInst<
1608 (outs IntRegs:$Rd32),
1609 (ins PredRegs:$Pu4, IntRegs:$Rs32),
1610 "if ($Pu4.new) $Rd32 = $Rs32",
1611 tc_05c070ec, TypeALU32_2op>, PredNewRel, ImmRegRel {
1612 let isPredicated = 1;
1613 let hasNewValue = 1;
1614 let opNewValue = 0;
1615 let isPredicatedNew = 1;
1616 let CextOpcode = "A2_tfr";
1617 let InputType = "reg";
1618 let BaseOpcode = "A2_tfr";
1619 let isPseudo = 1;
1620 let isCodeGenOnly = 1;
1621 }
1622 def A2_vabsh : HInst<
1623 (outs DoubleRegs:$Rdd32),
1624 (ins DoubleRegs:$Rss32),
1625 "$Rdd32 = vabsh($Rss32)",
1626 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1627 let Inst{13-5} = 0b000000100;
1628 let Inst{31-21} = 0b10000000010;
1629 let prefersSlot3 = 1;
1630 }
1631 def A2_vabshsat : HInst<
1632 (outs DoubleRegs:$Rdd32),
1633 (ins DoubleRegs:$Rss32),
1634 "$Rdd32 = vabsh($Rss32):sat",
1635 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1636 let Inst{13-5} = 0b000000101;
1637 let Inst{31-21} = 0b10000000010;
1638 let prefersSlot3 = 1;
1639 let Defs = [USR_OVF];
1640 }
1641 def A2_vabsw : HInst<
1642 (outs DoubleRegs:$Rdd32),
1643 (ins DoubleRegs:$Rss32),
1644 "$Rdd32 = vabsw($Rss32)",
1645 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1646 let Inst{13-5} = 0b000000110;
1647 let Inst{31-21} = 0b10000000010;
1648 let prefersSlot3 = 1;
1649 }
1650 def A2_vabswsat : HInst<
1651 (outs DoubleRegs:$Rdd32),
1652 (ins DoubleRegs:$Rss32),
1653 "$Rdd32 = vabsw($Rss32):sat",
1654 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1655 let Inst{13-5} = 0b000000111;
1656 let Inst{31-21} = 0b10000000010;
1657 let prefersSlot3 = 1;
1658 let Defs = [USR_OVF];
1659 }
1660 def A2_vaddb_map : HInst<
1661 (outs DoubleRegs:$Rdd32),
1662 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1663 "$Rdd32 = vaddb($Rss32,$Rtt32)",
1664 tc_946df596, TypeMAPPING> {
1665 let isPseudo = 1;
1666 let isCodeGenOnly = 1;
1667 }
1668 def A2_vaddh : HInst<
1669 (outs DoubleRegs:$Rdd32),
1670 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1671 "$Rdd32 = vaddh($Rss32,$Rtt32)",
1672 tc_946df596, TypeALU64>, Enc_a56825 {
1673 let Inst{7-5} = 0b010;
1674 let Inst{13-13} = 0b0;
1675 let Inst{31-21} = 0b11010011000;
1676 }
1677 def A2_vaddhs : HInst<
1678 (outs DoubleRegs:$Rdd32),
1679 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1680 "$Rdd32 = vaddh($Rss32,$Rtt32):sat",
1681 tc_779080bf, TypeALU64>, Enc_a56825 {
1682 let Inst{7-5} = 0b011;
1683 let Inst{13-13} = 0b0;
1684 let Inst{31-21} = 0b11010011000;
1685 let prefersSlot3 = 1;
1686 let Defs = [USR_OVF];
1687 }
1688 def A2_vaddub : HInst<
1689 (outs DoubleRegs:$Rdd32),
1690 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1691 "$Rdd32 = vaddub($Rss32,$Rtt32)",
1692 tc_946df596, TypeALU64>, Enc_a56825 {
1693 let Inst{7-5} = 0b000;
1694 let Inst{13-13} = 0b0;
1695 let Inst{31-21} = 0b11010011000;
1696 }
1697 def A2_vaddubs : HInst<
1698 (outs DoubleRegs:$Rdd32),
1699 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1700 "$Rdd32 = vaddub($Rss32,$Rtt32):sat",
1701 tc_779080bf, TypeALU64>, Enc_a56825 {
1702 let Inst{7-5} = 0b001;
1703 let Inst{13-13} = 0b0;
1704 let Inst{31-21} = 0b11010011000;
1705 let prefersSlot3 = 1;
1706 let Defs = [USR_OVF];
1707 }
1708 def A2_vadduhs : HInst<
1709 (outs DoubleRegs:$Rdd32),
1710 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1711 "$Rdd32 = vadduh($Rss32,$Rtt32):sat",
1712 tc_779080bf, TypeALU64>, Enc_a56825 {
1713 let Inst{7-5} = 0b100;
1714 let Inst{13-13} = 0b0;
1715 let Inst{31-21} = 0b11010011000;
1716 let prefersSlot3 = 1;
1717 let Defs = [USR_OVF];
1718 }
1719 def A2_vaddw : HInst<
1720 (outs DoubleRegs:$Rdd32),
1721 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1722 "$Rdd32 = vaddw($Rss32,$Rtt32)",
1723 tc_946df596, TypeALU64>, Enc_a56825 {
1724 let Inst{7-5} = 0b101;
1725 let Inst{13-13} = 0b0;
1726 let Inst{31-21} = 0b11010011000;
1727 }
1728 def A2_vaddws : HInst<
1729 (outs DoubleRegs:$Rdd32),
1730 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1731 "$Rdd32 = vaddw($Rss32,$Rtt32):sat",
1732 tc_779080bf, TypeALU64>, Enc_a56825 {
1733 let Inst{7-5} = 0b110;
1734 let Inst{13-13} = 0b0;
1735 let Inst{31-21} = 0b11010011000;
1736 let prefersSlot3 = 1;
1737 let Defs = [USR_OVF];
1738 }
1739 def A2_vavgh : HInst<
1740 (outs DoubleRegs:$Rdd32),
1741 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1742 "$Rdd32 = vavgh($Rss32,$Rtt32)",
1743 tc_6132ba3d, TypeALU64>, Enc_a56825 {
1744 let Inst{7-5} = 0b010;
1745 let Inst{13-13} = 0b0;
1746 let Inst{31-21} = 0b11010011010;
1747 let prefersSlot3 = 1;
1748 }
1749 def A2_vavghcr : HInst<
1750 (outs DoubleRegs:$Rdd32),
1751 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1752 "$Rdd32 = vavgh($Rss32,$Rtt32):crnd",
1753 tc_002cb246, TypeALU64>, Enc_a56825 {
1754 let Inst{7-5} = 0b100;
1755 let Inst{13-13} = 0b0;
1756 let Inst{31-21} = 0b11010011010;
1757 let prefersSlot3 = 1;
1758 }
1759 def A2_vavghr : HInst<
1760 (outs DoubleRegs:$Rdd32),
1761 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1762 "$Rdd32 = vavgh($Rss32,$Rtt32):rnd",
1763 tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1764 let Inst{7-5} = 0b011;
1765 let Inst{13-13} = 0b0;
1766 let Inst{31-21} = 0b11010011010;
1767 let prefersSlot3 = 1;
1768 }
1769 def A2_vavgub : HInst<
1770 (outs DoubleRegs:$Rdd32),
1771 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1772 "$Rdd32 = vavgub($Rss32,$Rtt32)",
1773 tc_6132ba3d, TypeALU64>, Enc_a56825 {
1774 let Inst{7-5} = 0b000;
1775 let Inst{13-13} = 0b0;
1776 let Inst{31-21} = 0b11010011010;
1777 let prefersSlot3 = 1;
1778 }
1779 def A2_vavgubr : HInst<
1780 (outs DoubleRegs:$Rdd32),
1781 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1782 "$Rdd32 = vavgub($Rss32,$Rtt32):rnd",
1783 tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1784 let Inst{7-5} = 0b001;
1785 let Inst{13-13} = 0b0;
1786 let Inst{31-21} = 0b11010011010;
1787 let prefersSlot3 = 1;
1788 }
1789 def A2_vavguh : HInst<
1790 (outs DoubleRegs:$Rdd32),
1791 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1792 "$Rdd32 = vavguh($Rss32,$Rtt32)",
1793 tc_6132ba3d, TypeALU64>, Enc_a56825 {
1794 let Inst{7-5} = 0b101;
1795 let Inst{13-13} = 0b0;
1796 let Inst{31-21} = 0b11010011010;
1797 let prefersSlot3 = 1;
1798 }
1799 def A2_vavguhr : HInst<
1800 (outs DoubleRegs:$Rdd32),
1801 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1802 "$Rdd32 = vavguh($Rss32,$Rtt32):rnd",
1803 tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1804 let Inst{7-5} = 0b110;
1805 let Inst{13-13} = 0b0;
1806 let Inst{31-21} = 0b11010011010;
1807 let prefersSlot3 = 1;
1808 }
1809 def A2_vavguw : HInst<
1810 (outs DoubleRegs:$Rdd32),
1811 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1812 "$Rdd32 = vavguw($Rss32,$Rtt32)",
1813 tc_6132ba3d, TypeALU64>, Enc_a56825 {
1814 let Inst{7-5} = 0b011;
1815 let Inst{13-13} = 0b0;
1816 let Inst{31-21} = 0b11010011011;
1817 let prefersSlot3 = 1;
1818 }
1819 def A2_vavguwr : HInst<
1820 (outs DoubleRegs:$Rdd32),
1821 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1822 "$Rdd32 = vavguw($Rss32,$Rtt32):rnd",
1823 tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1824 let Inst{7-5} = 0b100;
1825 let Inst{13-13} = 0b0;
1826 let Inst{31-21} = 0b11010011011;
1827 let prefersSlot3 = 1;
1828 }
1829 def A2_vavgw : HInst<
1830 (outs DoubleRegs:$Rdd32),
1831 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1832 "$Rdd32 = vavgw($Rss32,$Rtt32)",
1833 tc_6132ba3d, TypeALU64>, Enc_a56825 {
1834 let Inst{7-5} = 0b000;
1835 let Inst{13-13} = 0b0;
1836 let Inst{31-21} = 0b11010011011;
1837 let prefersSlot3 = 1;
1838 }
1839 def A2_vavgwcr : HInst<
1840 (outs DoubleRegs:$Rdd32),
1841 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1842 "$Rdd32 = vavgw($Rss32,$Rtt32):crnd",
1843 tc_002cb246, TypeALU64>, Enc_a56825 {
1844 let Inst{7-5} = 0b010;
1845 let Inst{13-13} = 0b0;
1846 let Inst{31-21} = 0b11010011011;
1847 let prefersSlot3 = 1;
1848 }
1849 def A2_vavgwr : HInst<
1850 (outs DoubleRegs:$Rdd32),
1851 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1852 "$Rdd32 = vavgw($Rss32,$Rtt32):rnd",
1853 tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1854 let Inst{7-5} = 0b001;
1855 let Inst{13-13} = 0b0;
1856 let Inst{31-21} = 0b11010011011;
1857 let prefersSlot3 = 1;
1858 }
1859 def A2_vcmpbeq : HInst<
1860 (outs PredRegs:$Pd4),
1861 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1862 "$Pd4 = vcmpb.eq($Rss32,$Rtt32)",
1863 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1864 let Inst{7-2} = 0b110000;
1865 let Inst{13-13} = 0b0;
1866 let Inst{31-21} = 0b11010010000;
1867 }
1868 def A2_vcmpbgtu : HInst<
1869 (outs PredRegs:$Pd4),
1870 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1871 "$Pd4 = vcmpb.gtu($Rss32,$Rtt32)",
1872 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1873 let Inst{7-2} = 0b111000;
1874 let Inst{13-13} = 0b0;
1875 let Inst{31-21} = 0b11010010000;
1876 }
1877 def A2_vcmpheq : HInst<
1878 (outs PredRegs:$Pd4),
1879 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1880 "$Pd4 = vcmph.eq($Rss32,$Rtt32)",
1881 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1882 let Inst{7-2} = 0b011000;
1883 let Inst{13-13} = 0b0;
1884 let Inst{31-21} = 0b11010010000;
1885 }
1886 def A2_vcmphgt : HInst<
1887 (outs PredRegs:$Pd4),
1888 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1889 "$Pd4 = vcmph.gt($Rss32,$Rtt32)",
1890 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1891 let Inst{7-2} = 0b100000;
1892 let Inst{13-13} = 0b0;
1893 let Inst{31-21} = 0b11010010000;
1894 }
1895 def A2_vcmphgtu : HInst<
1896 (outs PredRegs:$Pd4),
1897 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1898 "$Pd4 = vcmph.gtu($Rss32,$Rtt32)",
1899 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1900 let Inst{7-2} = 0b101000;
1901 let Inst{13-13} = 0b0;
1902 let Inst{31-21} = 0b11010010000;
1903 }
1904 def A2_vcmpweq : HInst<
1905 (outs PredRegs:$Pd4),
1906 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1907 "$Pd4 = vcmpw.eq($Rss32,$Rtt32)",
1908 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1909 let Inst{7-2} = 0b000000;
1910 let Inst{13-13} = 0b0;
1911 let Inst{31-21} = 0b11010010000;
1912 }
1913 def A2_vcmpwgt : HInst<
1914 (outs PredRegs:$Pd4),
1915 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1916 "$Pd4 = vcmpw.gt($Rss32,$Rtt32)",
1917 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1918 let Inst{7-2} = 0b001000;
1919 let Inst{13-13} = 0b0;
1920 let Inst{31-21} = 0b11010010000;
1921 }
1922 def A2_vcmpwgtu : HInst<
1923 (outs PredRegs:$Pd4),
1924 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1925 "$Pd4 = vcmpw.gtu($Rss32,$Rtt32)",
1926 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1927 let Inst{7-2} = 0b010000;
1928 let Inst{13-13} = 0b0;
1929 let Inst{31-21} = 0b11010010000;
1930 }
1931 def A2_vconj : HInst<
1932 (outs DoubleRegs:$Rdd32),
1933 (ins DoubleRegs:$Rss32),
1934 "$Rdd32 = vconj($Rss32):sat",
1935 tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1936 let Inst{13-5} = 0b000000111;
1937 let Inst{31-21} = 0b10000000100;
1938 let prefersSlot3 = 1;
1939 let Defs = [USR_OVF];
1940 }
1941 def A2_vmaxb : HInst<
1942 (outs DoubleRegs:$Rdd32),
1943 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1944 "$Rdd32 = vmaxb($Rtt32,$Rss32)",
1945 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1946 let Inst{7-5} = 0b110;
1947 let Inst{13-13} = 0b0;
1948 let Inst{31-21} = 0b11010011110;
1949 let prefersSlot3 = 1;
1950 }
1951 def A2_vmaxh : HInst<
1952 (outs DoubleRegs:$Rdd32),
1953 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1954 "$Rdd32 = vmaxh($Rtt32,$Rss32)",
1955 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1956 let Inst{7-5} = 0b001;
1957 let Inst{13-13} = 0b0;
1958 let Inst{31-21} = 0b11010011110;
1959 let prefersSlot3 = 1;
1960 }
1961 def A2_vmaxub : HInst<
1962 (outs DoubleRegs:$Rdd32),
1963 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1964 "$Rdd32 = vmaxub($Rtt32,$Rss32)",
1965 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1966 let Inst{7-5} = 0b000;
1967 let Inst{13-13} = 0b0;
1968 let Inst{31-21} = 0b11010011110;
1969 let prefersSlot3 = 1;
1970 }
1971 def A2_vmaxuh : HInst<
1972 (outs DoubleRegs:$Rdd32),
1973 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1974 "$Rdd32 = vmaxuh($Rtt32,$Rss32)",
1975 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1976 let Inst{7-5} = 0b010;
1977 let Inst{13-13} = 0b0;
1978 let Inst{31-21} = 0b11010011110;
1979 let prefersSlot3 = 1;
1980 }
1981 def A2_vmaxuw : HInst<
1982 (outs DoubleRegs:$Rdd32),
1983 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1984 "$Rdd32 = vmaxuw($Rtt32,$Rss32)",
1985 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1986 let Inst{7-5} = 0b101;
1987 let Inst{13-13} = 0b0;
1988 let Inst{31-21} = 0b11010011101;
1989 let prefersSlot3 = 1;
1990 }
1991 def A2_vmaxw : HInst<
1992 (outs DoubleRegs:$Rdd32),
1993 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1994 "$Rdd32 = vmaxw($Rtt32,$Rss32)",
1995 tc_779080bf, TypeALU64>, Enc_ea23e4 {
1996 let Inst{7-5} = 0b011;
1997 let Inst{13-13} = 0b0;
1998 let Inst{31-21} = 0b11010011110;
1999 let prefersSlot3 = 1;
2000 }
2001 def A2_vminb : HInst<
2002 (outs DoubleRegs:$Rdd32),
2003 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2004 "$Rdd32 = vminb($Rtt32,$Rss32)",
2005 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2006 let Inst{7-5} = 0b111;
2007 let Inst{13-13} = 0b0;
2008 let Inst{31-21} = 0b11010011110;
2009 let prefersSlot3 = 1;
2010 }
2011 def A2_vminh : HInst<
2012 (outs DoubleRegs:$Rdd32),
2013 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2014 "$Rdd32 = vminh($Rtt32,$Rss32)",
2015 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2016 let Inst{7-5} = 0b001;
2017 let Inst{13-13} = 0b0;
2018 let Inst{31-21} = 0b11010011101;
2019 let prefersSlot3 = 1;
2020 }
2021 def A2_vminub : HInst<
2022 (outs DoubleRegs:$Rdd32),
2023 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2024 "$Rdd32 = vminub($Rtt32,$Rss32)",
2025 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2026 let Inst{7-5} = 0b000;
2027 let Inst{13-13} = 0b0;
2028 let Inst{31-21} = 0b11010011101;
2029 let prefersSlot3 = 1;
2030 }
2031 def A2_vminuh : HInst<
2032 (outs DoubleRegs:$Rdd32),
2033 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2034 "$Rdd32 = vminuh($Rtt32,$Rss32)",
2035 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2036 let Inst{7-5} = 0b010;
2037 let Inst{13-13} = 0b0;
2038 let Inst{31-21} = 0b11010011101;
2039 let prefersSlot3 = 1;
2040 }
2041 def A2_vminuw : HInst<
2042 (outs DoubleRegs:$Rdd32),
2043 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2044 "$Rdd32 = vminuw($Rtt32,$Rss32)",
2045 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2046 let Inst{7-5} = 0b100;
2047 let Inst{13-13} = 0b0;
2048 let Inst{31-21} = 0b11010011101;
2049 let prefersSlot3 = 1;
2050 }
2051 def A2_vminw : HInst<
2052 (outs DoubleRegs:$Rdd32),
2053 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2054 "$Rdd32 = vminw($Rtt32,$Rss32)",
2055 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2056 let Inst{7-5} = 0b011;
2057 let Inst{13-13} = 0b0;
2058 let Inst{31-21} = 0b11010011101;
2059 let prefersSlot3 = 1;
2060 }
2061 def A2_vnavgh : HInst<
2062 (outs DoubleRegs:$Rdd32),
2063 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2064 "$Rdd32 = vnavgh($Rtt32,$Rss32)",
2065 tc_6132ba3d, TypeALU64>, Enc_ea23e4 {
2066 let Inst{7-5} = 0b000;
2067 let Inst{13-13} = 0b0;
2068 let Inst{31-21} = 0b11010011100;
2069 let prefersSlot3 = 1;
2070 }
2071 def A2_vnavghcr : HInst<
2072 (outs DoubleRegs:$Rdd32),
2073 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2074 "$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat",
2075 tc_002cb246, TypeALU64>, Enc_ea23e4 {
2076 let Inst{7-5} = 0b010;
2077 let Inst{13-13} = 0b0;
2078 let Inst{31-21} = 0b11010011100;
2079 let prefersSlot3 = 1;
2080 let Defs = [USR_OVF];
2081 }
2082 def A2_vnavghr : HInst<
2083 (outs DoubleRegs:$Rdd32),
2084 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2085 "$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat",
2086 tc_002cb246, TypeALU64>, Enc_ea23e4 {
2087 let Inst{7-5} = 0b001;
2088 let Inst{13-13} = 0b0;
2089 let Inst{31-21} = 0b11010011100;
2090 let prefersSlot3 = 1;
2091 let Defs = [USR_OVF];
2092 }
2093 def A2_vnavgw : HInst<
2094 (outs DoubleRegs:$Rdd32),
2095 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2096 "$Rdd32 = vnavgw($Rtt32,$Rss32)",
2097 tc_6132ba3d, TypeALU64>, Enc_ea23e4 {
2098 let Inst{7-5} = 0b011;
2099 let Inst{13-13} = 0b0;
2100 let Inst{31-21} = 0b11010011100;
2101 let prefersSlot3 = 1;
2102 }
2103 def A2_vnavgwcr : HInst<
2104 (outs DoubleRegs:$Rdd32),
2105 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2106 "$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat",
2107 tc_002cb246, TypeALU64>, Enc_ea23e4 {
2108 let Inst{7-5} = 0b110;
2109 let Inst{13-13} = 0b0;
2110 let Inst{31-21} = 0b11010011100;
2111 let prefersSlot3 = 1;
2112 let Defs = [USR_OVF];
2113 }
2114 def A2_vnavgwr : HInst<
2115 (outs DoubleRegs:$Rdd32),
2116 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2117 "$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat",
2118 tc_002cb246, TypeALU64>, Enc_ea23e4 {
2119 let Inst{7-5} = 0b100;
2120 let Inst{13-13} = 0b0;
2121 let Inst{31-21} = 0b11010011100;
2122 let prefersSlot3 = 1;
2123 let Defs = [USR_OVF];
2124 }
2125 def A2_vraddub : HInst<
2126 (outs DoubleRegs:$Rdd32),
2127 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2128 "$Rdd32 = vraddub($Rss32,$Rtt32)",
2129 tc_bafaade3, TypeM>, Enc_a56825 {
2130 let Inst{7-5} = 0b001;
2131 let Inst{13-13} = 0b0;
2132 let Inst{31-21} = 0b11101000010;
2133 let prefersSlot3 = 1;
2134 }
2135 def A2_vraddub_acc : HInst<
2136 (outs DoubleRegs:$Rxx32),
2137 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2138 "$Rxx32 += vraddub($Rss32,$Rtt32)",
2139 tc_d773585a, TypeM>, Enc_88c16c {
2140 let Inst{7-5} = 0b001;
2141 let Inst{13-13} = 0b0;
2142 let Inst{31-21} = 0b11101010010;
2143 let prefersSlot3 = 1;
2144 let Constraints = "$Rxx32 = $Rxx32in";
2145 }
2146 def A2_vrsadub : HInst<
2147 (outs DoubleRegs:$Rdd32),
2148 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2149 "$Rdd32 = vrsadub($Rss32,$Rtt32)",
2150 tc_bafaade3, TypeM>, Enc_a56825 {
2151 let Inst{7-5} = 0b010;
2152 let Inst{13-13} = 0b0;
2153 let Inst{31-21} = 0b11101000010;
2154 let prefersSlot3 = 1;
2155 }
2156 def A2_vrsadub_acc : HInst<
2157 (outs DoubleRegs:$Rxx32),
2158 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2159 "$Rxx32 += vrsadub($Rss32,$Rtt32)",
2160 tc_d773585a, TypeM>, Enc_88c16c {
2161 let Inst{7-5} = 0b010;
2162 let Inst{13-13} = 0b0;
2163 let Inst{31-21} = 0b11101010010;
2164 let prefersSlot3 = 1;
2165 let Constraints = "$Rxx32 = $Rxx32in";
2166 }
2167 def A2_vsubb_map : HInst<
2168 (outs DoubleRegs:$Rdd32),
2169 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2170 "$Rdd32 = vsubb($Rss32,$Rtt32)",
2171 tc_946df596, TypeMAPPING> {
2172 let isPseudo = 1;
2173 let isCodeGenOnly = 1;
2174 }
2175 def A2_vsubh : HInst<
2176 (outs DoubleRegs:$Rdd32),
2177 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2178 "$Rdd32 = vsubh($Rtt32,$Rss32)",
2179 tc_946df596, TypeALU64>, Enc_ea23e4 {
2180 let Inst{7-5} = 0b010;
2181 let Inst{13-13} = 0b0;
2182 let Inst{31-21} = 0b11010011001;
2183 }
2184 def A2_vsubhs : HInst<
2185 (outs DoubleRegs:$Rdd32),
2186 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2187 "$Rdd32 = vsubh($Rtt32,$Rss32):sat",
2188 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2189 let Inst{7-5} = 0b011;
2190 let Inst{13-13} = 0b0;
2191 let Inst{31-21} = 0b11010011001;
2192 let prefersSlot3 = 1;
2193 let Defs = [USR_OVF];
2194 }
2195 def A2_vsubub : HInst<
2196 (outs DoubleRegs:$Rdd32),
2197 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2198 "$Rdd32 = vsubub($Rtt32,$Rss32)",
2199 tc_946df596, TypeALU64>, Enc_ea23e4 {
2200 let Inst{7-5} = 0b000;
2201 let Inst{13-13} = 0b0;
2202 let Inst{31-21} = 0b11010011001;
2203 }
2204 def A2_vsububs : HInst<
2205 (outs DoubleRegs:$Rdd32),
2206 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2207 "$Rdd32 = vsubub($Rtt32,$Rss32):sat",
2208 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2209 let Inst{7-5} = 0b001;
2210 let Inst{13-13} = 0b0;
2211 let Inst{31-21} = 0b11010011001;
2212 let prefersSlot3 = 1;
2213 let Defs = [USR_OVF];
2214 }
2215 def A2_vsubuhs : HInst<
2216 (outs DoubleRegs:$Rdd32),
2217 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2218 "$Rdd32 = vsubuh($Rtt32,$Rss32):sat",
2219 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2220 let Inst{7-5} = 0b100;
2221 let Inst{13-13} = 0b0;
2222 let Inst{31-21} = 0b11010011001;
2223 let prefersSlot3 = 1;
2224 let Defs = [USR_OVF];
2225 }
2226 def A2_vsubw : HInst<
2227 (outs DoubleRegs:$Rdd32),
2228 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2229 "$Rdd32 = vsubw($Rtt32,$Rss32)",
2230 tc_946df596, TypeALU64>, Enc_ea23e4 {
2231 let Inst{7-5} = 0b101;
2232 let Inst{13-13} = 0b0;
2233 let Inst{31-21} = 0b11010011001;
2234 }
2235 def A2_vsubws : HInst<
2236 (outs DoubleRegs:$Rdd32),
2237 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2238 "$Rdd32 = vsubw($Rtt32,$Rss32):sat",
2239 tc_779080bf, TypeALU64>, Enc_ea23e4 {
2240 let Inst{7-5} = 0b110;
2241 let Inst{13-13} = 0b0;
2242 let Inst{31-21} = 0b11010011001;
2243 let prefersSlot3 = 1;
2244 let Defs = [USR_OVF];
2245 }
2246 def A2_xor : HInst<
2247 (outs IntRegs:$Rd32),
2248 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2249 "$Rd32 = xor($Rs32,$Rt32)",
2250 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel {
2251 let Inst{7-5} = 0b000;
2252 let Inst{13-13} = 0b0;
2253 let Inst{31-21} = 0b11110001011;
2254 let hasNewValue = 1;
2255 let opNewValue = 0;
2256 let InputType = "reg";
2257 let BaseOpcode = "A2_xor";
2258 let isCommutable = 1;
2259 let isPredicable = 1;
2260 }
2261 def A2_xorp : HInst<
2262 (outs DoubleRegs:$Rdd32),
2263 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2264 "$Rdd32 = xor($Rss32,$Rtt32)",
2265 tc_946df596, TypeALU64>, Enc_a56825 {
2266 let Inst{7-5} = 0b100;
2267 let Inst{13-13} = 0b0;
2268 let Inst{31-21} = 0b11010011111;
2269 let isCommutable = 1;
2270 }
2271 def A2_zxtb : HInst<
2272 (outs IntRegs:$Rd32),
2273 (ins IntRegs:$Rs32),
2274 "$Rd32 = zxtb($Rs32)",
2275 tc_5a2711e5, TypeALU32_2op>, PredNewRel {
2276 let hasNewValue = 1;
2277 let opNewValue = 0;
2278 let BaseOpcode = "A2_zxtb";
2279 let isPredicable = 1;
2280 let isPseudo = 1;
2281 let isCodeGenOnly = 1;
2282 }
2283 def A2_zxth : HInst<
2284 (outs IntRegs:$Rd32),
2285 (ins IntRegs:$Rs32),
2286 "$Rd32 = zxth($Rs32)",
2287 tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
2288 let Inst{13-5} = 0b000000000;
2289 let Inst{31-21} = 0b01110000110;
2290 let hasNewValue = 1;
2291 let opNewValue = 0;
2292 let BaseOpcode = "A2_zxth";
2293 let isPredicable = 1;
2294 }
2295 def A4_addp_c : HInst<
2296 (outs DoubleRegs:$Rdd32, PredRegs:$Px4),
2297 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
2298 "$Rdd32 = add($Rss32,$Rtt32,$Px4):carry",
2299 tc_9c3ecd83, TypeS_3op>, Enc_2b3f60 {
2300 let Inst{7-7} = 0b0;
2301 let Inst{13-13} = 0b0;
2302 let Inst{31-21} = 0b11000010110;
2303 let isPredicateLate = 1;
2304 let Constraints = "$Px4 = $Px4in";
2305 }
2306 def A4_andn : HInst<
2307 (outs IntRegs:$Rd32),
2308 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2309 "$Rd32 = and($Rt32,~$Rs32)",
2310 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
2311 let Inst{7-5} = 0b000;
2312 let Inst{13-13} = 0b0;
2313 let Inst{31-21} = 0b11110001100;
2314 let hasNewValue = 1;
2315 let opNewValue = 0;
2316 let InputType = "reg";
2317 }
2318 def A4_andnp : HInst<
2319 (outs DoubleRegs:$Rdd32),
2320 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2321 "$Rdd32 = and($Rtt32,~$Rss32)",
2322 tc_946df596, TypeALU64>, Enc_ea23e4 {
2323 let Inst{7-5} = 0b001;
2324 let Inst{13-13} = 0b0;
2325 let Inst{31-21} = 0b11010011111;
2326 }
2327 def A4_bitsplit : HInst<
2328 (outs DoubleRegs:$Rdd32),
2329 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2330 "$Rdd32 = bitsplit($Rs32,$Rt32)",
2331 tc_4414d8b1, TypeALU64>, Enc_be32a5 {
2332 let Inst{7-5} = 0b000;
2333 let Inst{13-13} = 0b0;
2334 let Inst{31-21} = 0b11010100001;
2335 let prefersSlot3 = 1;
2336 }
2337 def A4_bitspliti : HInst<
2338 (outs DoubleRegs:$Rdd32),
2339 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2340 "$Rdd32 = bitsplit($Rs32,#$Ii)",
2341 tc_4414d8b1, TypeS_2op>, Enc_311abd {
2342 let Inst{7-5} = 0b100;
2343 let Inst{13-13} = 0b0;
2344 let Inst{31-21} = 0b10001000110;
2345 let prefersSlot3 = 1;
2346 }
2347 def A4_boundscheck : HInst<
2348 (outs PredRegs:$Pd4),
2349 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
2350 "$Pd4 = boundscheck($Rs32,$Rtt32)",
2351 tc_85d5d03f, TypeALU64> {
2352 let isPseudo = 1;
2353 }
2354 def A4_boundscheck_hi : HInst<
2355 (outs PredRegs:$Pd4),
2356 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2357 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi",
2358 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
2359 let Inst{7-2} = 0b101000;
2360 let Inst{13-13} = 0b1;
2361 let Inst{31-21} = 0b11010010000;
2362 }
2363 def A4_boundscheck_lo : HInst<
2364 (outs PredRegs:$Pd4),
2365 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2366 "$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo",
2367 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
2368 let Inst{7-2} = 0b100000;
2369 let Inst{13-13} = 0b1;
2370 let Inst{31-21} = 0b11010010000;
2371 }
2372 def A4_cmpbeq : HInst<
2373 (outs PredRegs:$Pd4),
2374 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2375 "$Pd4 = cmpb.eq($Rs32,$Rt32)",
2376 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2377 let Inst{7-2} = 0b110000;
2378 let Inst{13-13} = 0b0;
2379 let Inst{31-21} = 0b11000111110;
2380 let CextOpcode = "A4_cmpbeq";
2381 let InputType = "reg";
2382 let isCommutable = 1;
2383 let isCompare = 1;
2384 }
2385 def A4_cmpbeqi : HInst<
2386 (outs PredRegs:$Pd4),
2387 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
2388 "$Pd4 = cmpb.eq($Rs32,#$Ii)",
2389 tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2390 let Inst{4-2} = 0b000;
2391 let Inst{13-13} = 0b0;
2392 let Inst{31-21} = 0b11011101000;
2393 let CextOpcode = "A4_cmpbeq";
2394 let InputType = "imm";
2395 let isCommutable = 1;
2396 let isCompare = 1;
2397 }
2398 def A4_cmpbgt : HInst<
2399 (outs PredRegs:$Pd4),
2400 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2401 "$Pd4 = cmpb.gt($Rs32,$Rt32)",
2402 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2403 let Inst{7-2} = 0b010000;
2404 let Inst{13-13} = 0b0;
2405 let Inst{31-21} = 0b11000111110;
2406 let CextOpcode = "A4_cmpbgt";
2407 let InputType = "reg";
2408 let isCompare = 1;
2409 }
2410 def A4_cmpbgti : HInst<
2411 (outs PredRegs:$Pd4),
2412 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
2413 "$Pd4 = cmpb.gt($Rs32,#$Ii)",
2414 tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2415 let Inst{4-2} = 0b000;
2416 let Inst{13-13} = 0b0;
2417 let Inst{31-21} = 0b11011101001;
2418 let CextOpcode = "A4_cmpbgt";
2419 let InputType = "imm";
2420 let isCompare = 1;
2421 }
2422 def A4_cmpbgtu : HInst<
2423 (outs PredRegs:$Pd4),
2424 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2425 "$Pd4 = cmpb.gtu($Rs32,$Rt32)",
2426 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2427 let Inst{7-2} = 0b111000;
2428 let Inst{13-13} = 0b0;
2429 let Inst{31-21} = 0b11000111110;
2430 let CextOpcode = "A4_cmpbgtu";
2431 let InputType = "reg";
2432 let isCompare = 1;
2433 }
2434 def A4_cmpbgtui : HInst<
2435 (outs PredRegs:$Pd4),
2436 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2437 "$Pd4 = cmpb.gtu($Rs32,#$Ii)",
2438 tc_643b4717, TypeALU64>, Enc_02553a, ImmRegRel {
2439 let Inst{4-2} = 0b000;
2440 let Inst{13-12} = 0b00;
2441 let Inst{31-21} = 0b11011101010;
2442 let CextOpcode = "A4_cmpbgtu";
2443 let InputType = "imm";
2444 let isCompare = 1;
2445 let isExtendable = 1;
2446 let opExtendable = 2;
2447 let isExtentSigned = 0;
2448 let opExtentBits = 7;
2449 let opExtentAlign = 0;
2450 }
2451 def A4_cmpheq : HInst<
2452 (outs PredRegs:$Pd4),
2453 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2454 "$Pd4 = cmph.eq($Rs32,$Rt32)",
2455 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2456 let Inst{7-2} = 0b011000;
2457 let Inst{13-13} = 0b0;
2458 let Inst{31-21} = 0b11000111110;
2459 let CextOpcode = "A4_cmpheq";
2460 let InputType = "reg";
2461 let isCommutable = 1;
2462 let isCompare = 1;
2463 }
2464 def A4_cmpheqi : HInst<
2465 (outs PredRegs:$Pd4),
2466 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2467 "$Pd4 = cmph.eq($Rs32,#$Ii)",
2468 tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2469 let Inst{4-2} = 0b010;
2470 let Inst{13-13} = 0b0;
2471 let Inst{31-21} = 0b11011101000;
2472 let CextOpcode = "A4_cmpheq";
2473 let InputType = "imm";
2474 let isCommutable = 1;
2475 let isCompare = 1;
2476 let isExtendable = 1;
2477 let opExtendable = 2;
2478 let isExtentSigned = 1;
2479 let opExtentBits = 8;
2480 let opExtentAlign = 0;
2481 }
2482 def A4_cmphgt : HInst<
2483 (outs PredRegs:$Pd4),
2484 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2485 "$Pd4 = cmph.gt($Rs32,$Rt32)",
2486 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2487 let Inst{7-2} = 0b100000;
2488 let Inst{13-13} = 0b0;
2489 let Inst{31-21} = 0b11000111110;
2490 let CextOpcode = "A4_cmphgt";
2491 let InputType = "reg";
2492 let isCompare = 1;
2493 }
2494 def A4_cmphgti : HInst<
2495 (outs PredRegs:$Pd4),
2496 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2497 "$Pd4 = cmph.gt($Rs32,#$Ii)",
2498 tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2499 let Inst{4-2} = 0b010;
2500 let Inst{13-13} = 0b0;
2501 let Inst{31-21} = 0b11011101001;
2502 let CextOpcode = "A4_cmphgt";
2503 let InputType = "imm";
2504 let isCompare = 1;
2505 let isExtendable = 1;
2506 let opExtendable = 2;
2507 let isExtentSigned = 1;
2508 let opExtentBits = 8;
2509 let opExtentAlign = 0;
2510 }
2511 def A4_cmphgtu : HInst<
2512 (outs PredRegs:$Pd4),
2513 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2514 "$Pd4 = cmph.gtu($Rs32,$Rt32)",
2515 tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2516 let Inst{7-2} = 0b101000;
2517 let Inst{13-13} = 0b0;
2518 let Inst{31-21} = 0b11000111110;
2519 let CextOpcode = "A4_cmphgtu";
2520 let InputType = "reg";
2521 let isCompare = 1;
2522 }
2523 def A4_cmphgtui : HInst<
2524 (outs PredRegs:$Pd4),
2525 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
2526 "$Pd4 = cmph.gtu($Rs32,#$Ii)",
2527 tc_643b4717, TypeALU64>, Enc_02553a, ImmRegRel {
2528 let Inst{4-2} = 0b010;
2529 let Inst{13-12} = 0b00;
2530 let Inst{31-21} = 0b11011101010;
2531 let CextOpcode = "A4_cmphgtu";
2532 let InputType = "imm";
2533 let isCompare = 1;
2534 let isExtendable = 1;
2535 let opExtendable = 2;
2536 let isExtentSigned = 0;
2537 let opExtentBits = 7;
2538 let opExtentAlign = 0;
2539 }
2540 def A4_combineii : HInst<
2541 (outs DoubleRegs:$Rdd32),
2542 (ins s8_0Imm:$Ii, u32_0Imm:$II),
2543 "$Rdd32 = combine(#$Ii,#$II)",
2544 tc_5a2711e5, TypeALU32_2op>, Enc_f0cca7 {
2545 let Inst{31-21} = 0b01111100100;
2546 let isExtendable = 1;
2547 let opExtendable = 2;
2548 let isExtentSigned = 0;
2549 let opExtentBits = 6;
2550 let opExtentAlign = 0;
2551 }
2552 def A4_combineir : HInst<
2553 (outs DoubleRegs:$Rdd32),
2554 (ins s32_0Imm:$Ii, IntRegs:$Rs32),
2555 "$Rdd32 = combine(#$Ii,$Rs32)",
2556 tc_5a2711e5, TypeALU32_2op>, Enc_9cdba7 {
2557 let Inst{13-13} = 0b1;
2558 let Inst{31-21} = 0b01110011001;
2559 let isExtendable = 1;
2560 let opExtendable = 1;
2561 let isExtentSigned = 1;
2562 let opExtentBits = 8;
2563 let opExtentAlign = 0;
2564 }
2565 def A4_combineri : HInst<
2566 (outs DoubleRegs:$Rdd32),
2567 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2568 "$Rdd32 = combine($Rs32,#$Ii)",
2569 tc_5a2711e5, TypeALU32_2op>, Enc_9cdba7 {
2570 let Inst{13-13} = 0b1;
2571 let Inst{31-21} = 0b01110011000;
2572 let isExtendable = 1;
2573 let opExtendable = 2;
2574 let isExtentSigned = 1;
2575 let opExtentBits = 8;
2576 let opExtentAlign = 0;
2577 }
2578 def A4_cround_ri : HInst<
2579 (outs IntRegs:$Rd32),
2580 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
2581 "$Rd32 = cround($Rs32,#$Ii)",
2582 tc_002cb246, TypeS_2op>, Enc_a05677 {
2583 let Inst{7-5} = 0b000;
2584 let Inst{13-13} = 0b0;
2585 let Inst{31-21} = 0b10001100111;
2586 let hasNewValue = 1;
2587 let opNewValue = 0;
2588 let prefersSlot3 = 1;
2589 }
2590 def A4_cround_rr : HInst<
2591 (outs IntRegs:$Rd32),
2592 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2593 "$Rd32 = cround($Rs32,$Rt32)",
2594 tc_002cb246, TypeS_3op>, Enc_5ab2be {
2595 let Inst{7-5} = 0b000;
2596 let Inst{13-13} = 0b0;
2597 let Inst{31-21} = 0b11000110110;
2598 let hasNewValue = 1;
2599 let opNewValue = 0;
2600 let prefersSlot3 = 1;
2601 }
2602 def A4_ext : HInst<
2603 (outs),
2604 (ins u26_6Imm:$Ii),
2605 "immext(#$Ii)",
2606 tc_862b3e70, TypeEXTENDER>, Enc_2b518f {
2607 let Inst{31-28} = 0b0000;
2608 }
2609 def A4_modwrapu : HInst<
2610 (outs IntRegs:$Rd32),
2611 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2612 "$Rd32 = modwrap($Rs32,$Rt32)",
2613 tc_779080bf, TypeALU64>, Enc_5ab2be {
2614 let Inst{7-5} = 0b111;
2615 let Inst{13-13} = 0b0;
2616 let Inst{31-21} = 0b11010011111;
2617 let hasNewValue = 1;
2618 let opNewValue = 0;
2619 let prefersSlot3 = 1;
2620 }
2621 def A4_orn : HInst<
2622 (outs IntRegs:$Rd32),
2623 (ins IntRegs:$Rt32, IntRegs:$Rs32),
2624 "$Rd32 = or($Rt32,~$Rs32)",
2625 tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
2626 let Inst{7-5} = 0b000;
2627 let Inst{13-13} = 0b0;
2628 let Inst{31-21} = 0b11110001101;
2629 let hasNewValue = 1;
2630 let opNewValue = 0;
2631 let InputType = "reg";
2632 }
2633 def A4_ornp : HInst<
2634 (outs DoubleRegs:$Rdd32),
2635 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2636 "$Rdd32 = or($Rtt32,~$Rss32)",
2637 tc_946df596, TypeALU64>, Enc_ea23e4 {
2638 let Inst{7-5} = 0b011;
2639 let Inst{13-13} = 0b0;
2640 let Inst{31-21} = 0b11010011111;
2641 }
2642 def A4_paslhf : HInst<
2643 (outs IntRegs:$Rd32),
2644 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2645 "if (!$Pu4) $Rd32 = aslh($Rs32)",
2646 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2647 let Inst{7-5} = 0b000;
2648 let Inst{13-10} = 0b1010;
2649 let Inst{31-21} = 0b01110000000;
2650 let isPredicated = 1;
2651 let isPredicatedFalse = 1;
2652 let hasNewValue = 1;
2653 let opNewValue = 0;
2654 let BaseOpcode = "A2_aslh";
2655 }
2656 def A4_paslhfnew : HInst<
2657 (outs IntRegs:$Rd32),
2658 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2659 "if (!$Pu4.new) $Rd32 = aslh($Rs32)",
2660 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2661 let Inst{7-5} = 0b000;
2662 let Inst{13-10} = 0b1011;
2663 let Inst{31-21} = 0b01110000000;
2664 let isPredicated = 1;
2665 let isPredicatedFalse = 1;
2666 let hasNewValue = 1;
2667 let opNewValue = 0;
2668 let isPredicatedNew = 1;
2669 let BaseOpcode = "A2_aslh";
2670 }
2671 def A4_paslht : HInst<
2672 (outs IntRegs:$Rd32),
2673 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2674 "if ($Pu4) $Rd32 = aslh($Rs32)",
2675 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2676 let Inst{7-5} = 0b000;
2677 let Inst{13-10} = 0b1000;
2678 let Inst{31-21} = 0b01110000000;
2679 let isPredicated = 1;
2680 let hasNewValue = 1;
2681 let opNewValue = 0;
2682 let BaseOpcode = "A2_aslh";
2683 }
2684 def A4_paslhtnew : HInst<
2685 (outs IntRegs:$Rd32),
2686 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2687 "if ($Pu4.new) $Rd32 = aslh($Rs32)",
2688 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2689 let Inst{7-5} = 0b000;
2690 let Inst{13-10} = 0b1001;
2691 let Inst{31-21} = 0b01110000000;
2692 let isPredicated = 1;
2693 let hasNewValue = 1;
2694 let opNewValue = 0;
2695 let isPredicatedNew = 1;
2696 let BaseOpcode = "A2_aslh";
2697 }
2698 def A4_pasrhf : HInst<
2699 (outs IntRegs:$Rd32),
2700 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2701 "if (!$Pu4) $Rd32 = asrh($Rs32)",
2702 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2703 let Inst{7-5} = 0b000;
2704 let Inst{13-10} = 0b1010;
2705 let Inst{31-21} = 0b01110000001;
2706 let isPredicated = 1;
2707 let isPredicatedFalse = 1;
2708 let hasNewValue = 1;
2709 let opNewValue = 0;
2710 let BaseOpcode = "A2_asrh";
2711 }
2712 def A4_pasrhfnew : HInst<
2713 (outs IntRegs:$Rd32),
2714 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2715 "if (!$Pu4.new) $Rd32 = asrh($Rs32)",
2716 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2717 let Inst{7-5} = 0b000;
2718 let Inst{13-10} = 0b1011;
2719 let Inst{31-21} = 0b01110000001;
2720 let isPredicated = 1;
2721 let isPredicatedFalse = 1;
2722 let hasNewValue = 1;
2723 let opNewValue = 0;
2724 let isPredicatedNew = 1;
2725 let BaseOpcode = "A2_asrh";
2726 }
2727 def A4_pasrht : HInst<
2728 (outs IntRegs:$Rd32),
2729 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2730 "if ($Pu4) $Rd32 = asrh($Rs32)",
2731 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2732 let Inst{7-5} = 0b000;
2733 let Inst{13-10} = 0b1000;
2734 let Inst{31-21} = 0b01110000001;
2735 let isPredicated = 1;
2736 let hasNewValue = 1;
2737 let opNewValue = 0;
2738 let BaseOpcode = "A2_asrh";
2739 }
2740 def A4_pasrhtnew : HInst<
2741 (outs IntRegs:$Rd32),
2742 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2743 "if ($Pu4.new) $Rd32 = asrh($Rs32)",
2744 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2745 let Inst{7-5} = 0b000;
2746 let Inst{13-10} = 0b1001;
2747 let Inst{31-21} = 0b01110000001;
2748 let isPredicated = 1;
2749 let hasNewValue = 1;
2750 let opNewValue = 0;
2751 let isPredicatedNew = 1;
2752 let BaseOpcode = "A2_asrh";
2753 }
2754 def A4_psxtbf : HInst<
2755 (outs IntRegs:$Rd32),
2756 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2757 "if (!$Pu4) $Rd32 = sxtb($Rs32)",
2758 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2759 let Inst{7-5} = 0b000;
2760 let Inst{13-10} = 0b1010;
2761 let Inst{31-21} = 0b01110000101;
2762 let isPredicated = 1;
2763 let isPredicatedFalse = 1;
2764 let hasNewValue = 1;
2765 let opNewValue = 0;
2766 let BaseOpcode = "A2_sxtb";
2767 }
2768 def A4_psxtbfnew : HInst<
2769 (outs IntRegs:$Rd32),
2770 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2771 "if (!$Pu4.new) $Rd32 = sxtb($Rs32)",
2772 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2773 let Inst{7-5} = 0b000;
2774 let Inst{13-10} = 0b1011;
2775 let Inst{31-21} = 0b01110000101;
2776 let isPredicated = 1;
2777 let isPredicatedFalse = 1;
2778 let hasNewValue = 1;
2779 let opNewValue = 0;
2780 let isPredicatedNew = 1;
2781 let BaseOpcode = "A2_sxtb";
2782 }
2783 def A4_psxtbt : HInst<
2784 (outs IntRegs:$Rd32),
2785 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2786 "if ($Pu4) $Rd32 = sxtb($Rs32)",
2787 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2788 let Inst{7-5} = 0b000;
2789 let Inst{13-10} = 0b1000;
2790 let Inst{31-21} = 0b01110000101;
2791 let isPredicated = 1;
2792 let hasNewValue = 1;
2793 let opNewValue = 0;
2794 let BaseOpcode = "A2_sxtb";
2795 }
2796 def A4_psxtbtnew : HInst<
2797 (outs IntRegs:$Rd32),
2798 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2799 "if ($Pu4.new) $Rd32 = sxtb($Rs32)",
2800 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2801 let Inst{7-5} = 0b000;
2802 let Inst{13-10} = 0b1001;
2803 let Inst{31-21} = 0b01110000101;
2804 let isPredicated = 1;
2805 let hasNewValue = 1;
2806 let opNewValue = 0;
2807 let isPredicatedNew = 1;
2808 let BaseOpcode = "A2_sxtb";
2809 }
2810 def A4_psxthf : HInst<
2811 (outs IntRegs:$Rd32),
2812 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2813 "if (!$Pu4) $Rd32 = sxth($Rs32)",
2814 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2815 let Inst{7-5} = 0b000;
2816 let Inst{13-10} = 0b1010;
2817 let Inst{31-21} = 0b01110000111;
2818 let isPredicated = 1;
2819 let isPredicatedFalse = 1;
2820 let hasNewValue = 1;
2821 let opNewValue = 0;
2822 let BaseOpcode = "A2_sxth";
2823 }
2824 def A4_psxthfnew : HInst<
2825 (outs IntRegs:$Rd32),
2826 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2827 "if (!$Pu4.new) $Rd32 = sxth($Rs32)",
2828 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2829 let Inst{7-5} = 0b000;
2830 let Inst{13-10} = 0b1011;
2831 let Inst{31-21} = 0b01110000111;
2832 let isPredicated = 1;
2833 let isPredicatedFalse = 1;
2834 let hasNewValue = 1;
2835 let opNewValue = 0;
2836 let isPredicatedNew = 1;
2837 let BaseOpcode = "A2_sxth";
2838 }
2839 def A4_psxtht : HInst<
2840 (outs IntRegs:$Rd32),
2841 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2842 "if ($Pu4) $Rd32 = sxth($Rs32)",
2843 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2844 let Inst{7-5} = 0b000;
2845 let Inst{13-10} = 0b1000;
2846 let Inst{31-21} = 0b01110000111;
2847 let isPredicated = 1;
2848 let hasNewValue = 1;
2849 let opNewValue = 0;
2850 let BaseOpcode = "A2_sxth";
2851 }
2852 def A4_psxthtnew : HInst<
2853 (outs IntRegs:$Rd32),
2854 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2855 "if ($Pu4.new) $Rd32 = sxth($Rs32)",
2856 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2857 let Inst{7-5} = 0b000;
2858 let Inst{13-10} = 0b1001;
2859 let Inst{31-21} = 0b01110000111;
2860 let isPredicated = 1;
2861 let hasNewValue = 1;
2862 let opNewValue = 0;
2863 let isPredicatedNew = 1;
2864 let BaseOpcode = "A2_sxth";
2865 }
2866 def A4_pzxtbf : HInst<
2867 (outs IntRegs:$Rd32),
2868 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2869 "if (!$Pu4) $Rd32 = zxtb($Rs32)",
2870 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2871 let Inst{7-5} = 0b000;
2872 let Inst{13-10} = 0b1010;
2873 let Inst{31-21} = 0b01110000100;
2874 let isPredicated = 1;
2875 let isPredicatedFalse = 1;
2876 let hasNewValue = 1;
2877 let opNewValue = 0;
2878 let BaseOpcode = "A2_zxtb";
2879 }
2880 def A4_pzxtbfnew : HInst<
2881 (outs IntRegs:$Rd32),
2882 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2883 "if (!$Pu4.new) $Rd32 = zxtb($Rs32)",
2884 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2885 let Inst{7-5} = 0b000;
2886 let Inst{13-10} = 0b1011;
2887 let Inst{31-21} = 0b01110000100;
2888 let isPredicated = 1;
2889 let isPredicatedFalse = 1;
2890 let hasNewValue = 1;
2891 let opNewValue = 0;
2892 let isPredicatedNew = 1;
2893 let BaseOpcode = "A2_zxtb";
2894 }
2895 def A4_pzxtbt : HInst<
2896 (outs IntRegs:$Rd32),
2897 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2898 "if ($Pu4) $Rd32 = zxtb($Rs32)",
2899 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2900 let Inst{7-5} = 0b000;
2901 let Inst{13-10} = 0b1000;
2902 let Inst{31-21} = 0b01110000100;
2903 let isPredicated = 1;
2904 let hasNewValue = 1;
2905 let opNewValue = 0;
2906 let BaseOpcode = "A2_zxtb";
2907 }
2908 def A4_pzxtbtnew : HInst<
2909 (outs IntRegs:$Rd32),
2910 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2911 "if ($Pu4.new) $Rd32 = zxtb($Rs32)",
2912 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2913 let Inst{7-5} = 0b000;
2914 let Inst{13-10} = 0b1001;
2915 let Inst{31-21} = 0b01110000100;
2916 let isPredicated = 1;
2917 let hasNewValue = 1;
2918 let opNewValue = 0;
2919 let isPredicatedNew = 1;
2920 let BaseOpcode = "A2_zxtb";
2921 }
2922 def A4_pzxthf : HInst<
2923 (outs IntRegs:$Rd32),
2924 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2925 "if (!$Pu4) $Rd32 = zxth($Rs32)",
2926 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2927 let Inst{7-5} = 0b000;
2928 let Inst{13-10} = 0b1010;
2929 let Inst{31-21} = 0b01110000110;
2930 let isPredicated = 1;
2931 let isPredicatedFalse = 1;
2932 let hasNewValue = 1;
2933 let opNewValue = 0;
2934 let BaseOpcode = "A2_zxth";
2935 }
2936 def A4_pzxthfnew : HInst<
2937 (outs IntRegs:$Rd32),
2938 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2939 "if (!$Pu4.new) $Rd32 = zxth($Rs32)",
2940 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2941 let Inst{7-5} = 0b000;
2942 let Inst{13-10} = 0b1011;
2943 let Inst{31-21} = 0b01110000110;
2944 let isPredicated = 1;
2945 let isPredicatedFalse = 1;
2946 let hasNewValue = 1;
2947 let opNewValue = 0;
2948 let isPredicatedNew = 1;
2949 let BaseOpcode = "A2_zxth";
2950 }
2951 def A4_pzxtht : HInst<
2952 (outs IntRegs:$Rd32),
2953 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2954 "if ($Pu4) $Rd32 = zxth($Rs32)",
2955 tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2956 let Inst{7-5} = 0b000;
2957 let Inst{13-10} = 0b1000;
2958 let Inst{31-21} = 0b01110000110;
2959 let isPredicated = 1;
2960 let hasNewValue = 1;
2961 let opNewValue = 0;
2962 let BaseOpcode = "A2_zxth";
2963 }
2964 def A4_pzxthtnew : HInst<
2965 (outs IntRegs:$Rd32),
2966 (ins PredRegs:$Pu4, IntRegs:$Rs32),
2967 "if ($Pu4.new) $Rd32 = zxth($Rs32)",
2968 tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2969 let Inst{7-5} = 0b000;
2970 let Inst{13-10} = 0b1001;
2971 let Inst{31-21} = 0b01110000110;
2972 let isPredicated = 1;
2973 let hasNewValue = 1;
2974 let opNewValue = 0;
2975 let isPredicatedNew = 1;
2976 let BaseOpcode = "A2_zxth";
2977 }
2978 def A4_rcmpeq : HInst<
2979 (outs IntRegs:$Rd32),
2980 (ins IntRegs:$Rs32, IntRegs:$Rt32),
2981 "$Rd32 = cmp.eq($Rs32,$Rt32)",
2982 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
2983 let Inst{7-5} = 0b000;
2984 let Inst{13-13} = 0b0;
2985 let Inst{31-21} = 0b11110011010;
2986 let hasNewValue = 1;
2987 let opNewValue = 0;
2988 let CextOpcode = "A4_rcmpeq";
2989 let InputType = "reg";
2990 let isCommutable = 1;
2991 }
2992 def A4_rcmpeqi : HInst<
2993 (outs IntRegs:$Rd32),
2994 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
2995 "$Rd32 = cmp.eq($Rs32,#$Ii)",
2996 tc_5a2711e5, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
2997 let Inst{13-13} = 0b1;
2998 let Inst{31-21} = 0b01110011010;
2999 let hasNewValue = 1;
3000 let opNewValue = 0;
3001 let CextOpcode = "A4_rcmpeqi";
3002 let InputType = "imm";
3003 let isExtendable = 1;
3004 let opExtendable = 2;
3005 let isExtentSigned = 1;
3006 let opExtentBits = 8;
3007 let opExtentAlign = 0;
3008 }
3009 def A4_rcmpneq : HInst<
3010 (outs IntRegs:$Rd32),
3011 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3012 "$Rd32 = !cmp.eq($Rs32,$Rt32)",
3013 tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
3014 let Inst{7-5} = 0b000;
3015 let Inst{13-13} = 0b0;
3016 let Inst{31-21} = 0b11110011011;
3017 let hasNewValue = 1;
3018 let opNewValue = 0;
3019 let CextOpcode = "A4_rcmpneq";
3020 let InputType = "reg";
3021 let isCommutable = 1;
3022 }
3023 def A4_rcmpneqi : HInst<
3024 (outs IntRegs:$Rd32),
3025 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3026 "$Rd32 = !cmp.eq($Rs32,#$Ii)",
3027 tc_5a2711e5, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
3028 let Inst{13-13} = 0b1;
3029 let Inst{31-21} = 0b01110011011;
3030 let hasNewValue = 1;
3031 let opNewValue = 0;
3032 let CextOpcode = "A4_rcmpeqi";
3033 let InputType = "imm";
3034 let isExtendable = 1;
3035 let opExtendable = 2;
3036 let isExtentSigned = 1;
3037 let opExtentBits = 8;
3038 let opExtentAlign = 0;
3039 }
3040 def A4_round_ri : HInst<
3041 (outs IntRegs:$Rd32),
3042 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3043 "$Rd32 = round($Rs32,#$Ii)",
3044 tc_002cb246, TypeS_2op>, Enc_a05677 {
3045 let Inst{7-5} = 0b100;
3046 let Inst{13-13} = 0b0;
3047 let Inst{31-21} = 0b10001100111;
3048 let hasNewValue = 1;
3049 let opNewValue = 0;
3050 let prefersSlot3 = 1;
3051 }
3052 def A4_round_ri_sat : HInst<
3053 (outs IntRegs:$Rd32),
3054 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
3055 "$Rd32 = round($Rs32,#$Ii):sat",
3056 tc_002cb246, TypeS_2op>, Enc_a05677 {
3057 let Inst{7-5} = 0b110;
3058 let Inst{13-13} = 0b0;
3059 let Inst{31-21} = 0b10001100111;
3060 let hasNewValue = 1;
3061 let opNewValue = 0;
3062 let prefersSlot3 = 1;
3063 let Defs = [USR_OVF];
3064 }
3065 def A4_round_rr : HInst<
3066 (outs IntRegs:$Rd32),
3067 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3068 "$Rd32 = round($Rs32,$Rt32)",
3069 tc_002cb246, TypeS_3op>, Enc_5ab2be {
3070 let Inst{7-5} = 0b100;
3071 let Inst{13-13} = 0b0;
3072 let Inst{31-21} = 0b11000110110;
3073 let hasNewValue = 1;
3074 let opNewValue = 0;
3075 let prefersSlot3 = 1;
3076 }
3077 def A4_round_rr_sat : HInst<
3078 (outs IntRegs:$Rd32),
3079 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3080 "$Rd32 = round($Rs32,$Rt32):sat",
3081 tc_002cb246, TypeS_3op>, Enc_5ab2be {
3082 let Inst{7-5} = 0b110;
3083 let Inst{13-13} = 0b0;
3084 let Inst{31-21} = 0b11000110110;
3085 let hasNewValue = 1;
3086 let opNewValue = 0;
3087 let prefersSlot3 = 1;
3088 let Defs = [USR_OVF];
3089 }
3090 def A4_subp_c : HInst<
3091 (outs DoubleRegs:$Rdd32, PredRegs:$Px4),
3092 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
3093 "$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry",
3094 tc_9c3ecd83, TypeS_3op>, Enc_2b3f60 {
3095 let Inst{7-7} = 0b0;
3096 let Inst{13-13} = 0b0;
3097 let Inst{31-21} = 0b11000010111;
3098 let isPredicateLate = 1;
3099 let Constraints = "$Px4 = $Px4in";
3100 }
3101 def A4_tfrcpp : HInst<
3102 (outs DoubleRegs:$Rdd32),
3103 (ins CtrRegs64:$Css32),
3104 "$Rdd32 = $Css32",
3105 tc_b9272d6c, TypeCR>, Enc_667b39 {
3106 let Inst{13-5} = 0b000000000;
3107 let Inst{31-21} = 0b01101000000;
3108 }
3109 def A4_tfrpcp : HInst<
3110 (outs CtrRegs64:$Cdd32),
3111 (ins DoubleRegs:$Rss32),
3112 "$Cdd32 = $Rss32",
3113 tc_434c8e1e, TypeCR>, Enc_0ed752 {
3114 let Inst{13-5} = 0b000000000;
3115 let Inst{31-21} = 0b01100011001;
3116 }
3117 def A4_tlbmatch : HInst<
3118 (outs PredRegs:$Pd4),
3119 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3120 "$Pd4 = tlbmatch($Rss32,$Rt32)",
3121 tc_4837eefb, TypeALU64>, Enc_03833b {
3122 let Inst{7-2} = 0b011000;
3123 let Inst{13-13} = 0b1;
3124 let Inst{31-21} = 0b11010010000;
3125 let isPredicateLate = 1;
3126 }
3127 def A4_vcmpbeq_any : HInst<
3128 (outs PredRegs:$Pd4),
3129 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3130 "$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))",
3131 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3132 let Inst{7-2} = 0b000000;
3133 let Inst{13-13} = 0b1;
3134 let Inst{31-21} = 0b11010010000;
3135 }
3136 def A4_vcmpbeqi : HInst<
3137 (outs PredRegs:$Pd4),
3138 (ins DoubleRegs:$Rss32, u8_0Imm:$Ii),
3139 "$Pd4 = vcmpb.eq($Rss32,#$Ii)",
3140 tc_643b4717, TypeALU64>, Enc_0d8adb {
3141 let Inst{4-2} = 0b000;
3142 let Inst{13-13} = 0b0;
3143 let Inst{31-21} = 0b11011100000;
3144 }
3145 def A4_vcmpbgt : HInst<
3146 (outs PredRegs:$Pd4),
3147 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3148 "$Pd4 = vcmpb.gt($Rss32,$Rtt32)",
3149 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3150 let Inst{7-2} = 0b010000;
3151 let Inst{13-13} = 0b1;
3152 let Inst{31-21} = 0b11010010000;
3153 }
3154 def A4_vcmpbgti : HInst<
3155 (outs PredRegs:$Pd4),
3156 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3157 "$Pd4 = vcmpb.gt($Rss32,#$Ii)",
3158 tc_643b4717, TypeALU64>, Enc_0d8adb {
3159 let Inst{4-2} = 0b000;
3160 let Inst{13-13} = 0b0;
3161 let Inst{31-21} = 0b11011100001;
3162 }
3163 def A4_vcmpbgtui : HInst<
3164 (outs PredRegs:$Pd4),
3165 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3166 "$Pd4 = vcmpb.gtu($Rss32,#$Ii)",
3167 tc_643b4717, TypeALU64>, Enc_3680c2 {
3168 let Inst{4-2} = 0b000;
3169 let Inst{13-12} = 0b00;
3170 let Inst{31-21} = 0b11011100010;
3171 }
3172 def A4_vcmpheqi : HInst<
3173 (outs PredRegs:$Pd4),
3174 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3175 "$Pd4 = vcmph.eq($Rss32,#$Ii)",
3176 tc_643b4717, TypeALU64>, Enc_0d8adb {
3177 let Inst{4-2} = 0b010;
3178 let Inst{13-13} = 0b0;
3179 let Inst{31-21} = 0b11011100000;
3180 }
3181 def A4_vcmphgti : HInst<
3182 (outs PredRegs:$Pd4),
3183 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3184 "$Pd4 = vcmph.gt($Rss32,#$Ii)",
3185 tc_643b4717, TypeALU64>, Enc_0d8adb {
3186 let Inst{4-2} = 0b010;
3187 let Inst{13-13} = 0b0;
3188 let Inst{31-21} = 0b11011100001;
3189 }
3190 def A4_vcmphgtui : HInst<
3191 (outs PredRegs:$Pd4),
3192 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3193 "$Pd4 = vcmph.gtu($Rss32,#$Ii)",
3194 tc_643b4717, TypeALU64>, Enc_3680c2 {
3195 let Inst{4-2} = 0b010;
3196 let Inst{13-12} = 0b00;
3197 let Inst{31-21} = 0b11011100010;
3198 }
3199 def A4_vcmpweqi : HInst<
3200 (outs PredRegs:$Pd4),
3201 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3202 "$Pd4 = vcmpw.eq($Rss32,#$Ii)",
3203 tc_643b4717, TypeALU64>, Enc_0d8adb {
3204 let Inst{4-2} = 0b100;
3205 let Inst{13-13} = 0b0;
3206 let Inst{31-21} = 0b11011100000;
3207 }
3208 def A4_vcmpwgti : HInst<
3209 (outs PredRegs:$Pd4),
3210 (ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3211 "$Pd4 = vcmpw.gt($Rss32,#$Ii)",
3212 tc_643b4717, TypeALU64>, Enc_0d8adb {
3213 let Inst{4-2} = 0b100;
3214 let Inst{13-13} = 0b0;
3215 let Inst{31-21} = 0b11011100001;
3216 }
3217 def A4_vcmpwgtui : HInst<
3218 (outs PredRegs:$Pd4),
3219 (ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3220 "$Pd4 = vcmpw.gtu($Rss32,#$Ii)",
3221 tc_643b4717, TypeALU64>, Enc_3680c2 {
3222 let Inst{4-2} = 0b100;
3223 let Inst{13-12} = 0b00;
3224 let Inst{31-21} = 0b11011100010;
3225 }
3226 def A4_vrmaxh : HInst<
3227 (outs DoubleRegs:$Rxx32),
3228 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3229 "$Rxx32 = vrmaxh($Rss32,$Ru32)",
3230 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3231 let Inst{7-5} = 0b001;
3232 let Inst{13-13} = 0b0;
3233 let Inst{31-21} = 0b11001011001;
3234 let prefersSlot3 = 1;
3235 let Constraints = "$Rxx32 = $Rxx32in";
3236 }
3237 def A4_vrmaxuh : HInst<
3238 (outs DoubleRegs:$Rxx32),
3239 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3240 "$Rxx32 = vrmaxuh($Rss32,$Ru32)",
3241 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3242 let Inst{7-5} = 0b001;
3243 let Inst{13-13} = 0b1;
3244 let Inst{31-21} = 0b11001011001;
3245 let prefersSlot3 = 1;
3246 let Constraints = "$Rxx32 = $Rxx32in";
3247 }
3248 def A4_vrmaxuw : HInst<
3249 (outs DoubleRegs:$Rxx32),
3250 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3251 "$Rxx32 = vrmaxuw($Rss32,$Ru32)",
3252 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3253 let Inst{7-5} = 0b010;
3254 let Inst{13-13} = 0b1;
3255 let Inst{31-21} = 0b11001011001;
3256 let prefersSlot3 = 1;
3257 let Constraints = "$Rxx32 = $Rxx32in";
3258 }
3259 def A4_vrmaxw : HInst<
3260 (outs DoubleRegs:$Rxx32),
3261 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3262 "$Rxx32 = vrmaxw($Rss32,$Ru32)",
3263 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3264 let Inst{7-5} = 0b010;
3265 let Inst{13-13} = 0b0;
3266 let Inst{31-21} = 0b11001011001;
3267 let prefersSlot3 = 1;
3268 let Constraints = "$Rxx32 = $Rxx32in";
3269 }
3270 def A4_vrminh : HInst<
3271 (outs DoubleRegs:$Rxx32),
3272 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3273 "$Rxx32 = vrminh($Rss32,$Ru32)",
3274 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3275 let Inst{7-5} = 0b101;
3276 let Inst{13-13} = 0b0;
3277 let Inst{31-21} = 0b11001011001;
3278 let prefersSlot3 = 1;
3279 let Constraints = "$Rxx32 = $Rxx32in";
3280 }
3281 def A4_vrminuh : HInst<
3282 (outs DoubleRegs:$Rxx32),
3283 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3284 "$Rxx32 = vrminuh($Rss32,$Ru32)",
3285 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3286 let Inst{7-5} = 0b101;
3287 let Inst{13-13} = 0b1;
3288 let Inst{31-21} = 0b11001011001;
3289 let prefersSlot3 = 1;
3290 let Constraints = "$Rxx32 = $Rxx32in";
3291 }
3292 def A4_vrminuw : HInst<
3293 (outs DoubleRegs:$Rxx32),
3294 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3295 "$Rxx32 = vrminuw($Rss32,$Ru32)",
3296 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3297 let Inst{7-5} = 0b110;
3298 let Inst{13-13} = 0b1;
3299 let Inst{31-21} = 0b11001011001;
3300 let prefersSlot3 = 1;
3301 let Constraints = "$Rxx32 = $Rxx32in";
3302 }
3303 def A4_vrminw : HInst<
3304 (outs DoubleRegs:$Rxx32),
3305 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3306 "$Rxx32 = vrminw($Rss32,$Ru32)",
3307 tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3308 let Inst{7-5} = 0b110;
3309 let Inst{13-13} = 0b0;
3310 let Inst{31-21} = 0b11001011001;
3311 let prefersSlot3 = 1;
3312 let Constraints = "$Rxx32 = $Rxx32in";
3313 }
3314 def A5_ACS : HInst<
3315 (outs DoubleRegs:$Rxx32, PredRegs:$Pe4),
3316 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3317 "$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)",
3318 tc_d1aa9eaa, TypeM>, Enc_831a7d, Requires<[HasV55]> {
3319 let Inst{7-7} = 0b0;
3320 let Inst{13-13} = 0b0;
3321 let Inst{31-21} = 0b11101010101;
3322 let isPredicateLate = 1;
3323 let prefersSlot3 = 1;
3324 let Defs = [USR_OVF];
3325 let Constraints = "$Rxx32 = $Rxx32in";
3326 }
3327 def A5_vaddhubs : HInst<
3328 (outs IntRegs:$Rd32),
3329 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3330 "$Rd32 = vaddhub($Rss32,$Rtt32):sat",
3331 tc_002cb246, TypeS_3op>, Enc_d2216a {
3332 let Inst{7-5} = 0b001;
3333 let Inst{13-13} = 0b0;
3334 let Inst{31-21} = 0b11000001010;
3335 let hasNewValue = 1;
3336 let opNewValue = 0;
3337 let prefersSlot3 = 1;
3338 let Defs = [USR_OVF];
3339 }
3340 def A6_vcmpbeq_notany : HInst<
3341 (outs PredRegs:$Pd4),
3342 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3343 "$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))",
3344 tc_1fc97744, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> {
3345 let Inst{7-2} = 0b001000;
3346 let Inst{13-13} = 0b1;
3347 let Inst{31-21} = 0b11010010000;
3348 }
3349 def A6_vminub_RdP : HInst<
3350 (outs DoubleRegs:$Rdd32, PredRegs:$Pe4),
3351 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
3352 "$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)",
3353 tc_f9058dd7, TypeM>, Enc_d2c7f1, Requires<[HasV62]> {
3354 let Inst{7-7} = 0b0;
3355 let Inst{13-13} = 0b0;
3356 let Inst{31-21} = 0b11101010111;
3357 let isPredicateLate = 1;
3358 let prefersSlot3 = 1;
3359 }
3360 def C2_all8 : HInst<
3361 (outs PredRegs:$Pd4),
3362 (ins PredRegs:$Ps4),
3363 "$Pd4 = all8($Ps4)",
3364 tc_de554571, TypeCR>, Enc_65d691 {
3365 let Inst{13-2} = 0b000000000000;
3366 let Inst{31-18} = 0b01101011101000;
3367 }
3368 def C2_and : HInst<
3369 (outs PredRegs:$Pd4),
3370 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3371 "$Pd4 = and($Pt4,$Ps4)",
3372 tc_640086b5, TypeCR>, Enc_454a26 {
3373 let Inst{7-2} = 0b000000;
3374 let Inst{13-10} = 0b0000;
3375 let Inst{31-18} = 0b01101011000000;
3376 }
3377 def C2_andn : HInst<
3378 (outs PredRegs:$Pd4),
3379 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3380 "$Pd4 = and($Pt4,!$Ps4)",
3381 tc_640086b5, TypeCR>, Enc_454a26 {
3382 let Inst{7-2} = 0b000000;
3383 let Inst{13-10} = 0b0000;
3384 let Inst{31-18} = 0b01101011011000;
3385 }
3386 def C2_any8 : HInst<
3387 (outs PredRegs:$Pd4),
3388 (ins PredRegs:$Ps4),
3389 "$Pd4 = any8($Ps4)",
3390 tc_de554571, TypeCR>, Enc_65d691 {
3391 let Inst{13-2} = 0b000000000000;
3392 let Inst{31-18} = 0b01101011100000;
3393 }
3394 def C2_bitsclr : HInst<
3395 (outs PredRegs:$Pd4),
3396 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3397 "$Pd4 = bitsclr($Rs32,$Rt32)",
3398 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
3399 let Inst{7-2} = 0b000000;
3400 let Inst{13-13} = 0b0;
3401 let Inst{31-21} = 0b11000111100;
3402 }
3403 def C2_bitsclri : HInst<
3404 (outs PredRegs:$Pd4),
3405 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
3406 "$Pd4 = bitsclr($Rs32,#$Ii)",
3407 tc_643b4717, TypeS_2op>, Enc_5d6c34 {
3408 let Inst{7-2} = 0b000000;
3409 let Inst{31-21} = 0b10000101100;
3410 }
3411 def C2_bitsset : HInst<
3412 (outs PredRegs:$Pd4),
3413 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3414 "$Pd4 = bitsset($Rs32,$Rt32)",
3415 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
3416 let Inst{7-2} = 0b000000;
3417 let Inst{13-13} = 0b0;
3418 let Inst{31-21} = 0b11000111010;
3419 }
3420 def C2_ccombinewf : HInst<
3421 (outs DoubleRegs:$Rdd32),
3422 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3423 "if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3424 tc_4c5ba658, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3425 let Inst{7-7} = 0b1;
3426 let Inst{13-13} = 0b0;
3427 let Inst{31-21} = 0b11111101000;
3428 let isPredicated = 1;
3429 let isPredicatedFalse = 1;
3430 let BaseOpcode = "A2_combinew";
3431 }
3432 def C2_ccombinewnewf : HInst<
3433 (outs DoubleRegs:$Rdd32),
3434 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3435 "if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3436 tc_05c070ec, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3437 let Inst{7-7} = 0b1;
3438 let Inst{13-13} = 0b1;
3439 let Inst{31-21} = 0b11111101000;
3440 let isPredicated = 1;
3441 let isPredicatedFalse = 1;
3442 let isPredicatedNew = 1;
3443 let BaseOpcode = "A2_combinew";
3444 }
3445 def C2_ccombinewnewt : HInst<
3446 (outs DoubleRegs:$Rdd32),
3447 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3448 "if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3449 tc_05c070ec, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3450 let Inst{7-7} = 0b0;
3451 let Inst{13-13} = 0b1;
3452 let Inst{31-21} = 0b11111101000;
3453 let isPredicated = 1;
3454 let isPredicatedNew = 1;
3455 let BaseOpcode = "A2_combinew";
3456 }
3457 def C2_ccombinewt : HInst<
3458 (outs DoubleRegs:$Rdd32),
3459 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3460 "if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3461 tc_4c5ba658, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3462 let Inst{7-7} = 0b0;
3463 let Inst{13-13} = 0b0;
3464 let Inst{31-21} = 0b11111101000;
3465 let isPredicated = 1;
3466 let BaseOpcode = "A2_combinew";
3467 }
3468 def C2_cmoveif : HInst<
3469 (outs IntRegs:$Rd32),
3470 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3471 "if (!$Pu4) $Rd32 = #$Ii",
3472 tc_5a2711e5, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3473 let Inst{13-13} = 0b0;
3474 let Inst{20-20} = 0b0;
3475 let Inst{31-23} = 0b011111101;
3476 let isPredicated = 1;
3477 let isPredicatedFalse = 1;
3478 let hasNewValue = 1;
3479 let opNewValue = 0;
3480 let CextOpcode = "A2_tfr";
3481 let InputType = "imm";
3482 let BaseOpcode = "A2_tfrsi";
3483 let isMoveImm = 1;
3484 let isExtendable = 1;
3485 let opExtendable = 2;
3486 let isExtentSigned = 1;
3487 let opExtentBits = 12;
3488 let opExtentAlign = 0;
3489 }
3490 def C2_cmoveit : HInst<
3491 (outs IntRegs:$Rd32),
3492 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3493 "if ($Pu4) $Rd32 = #$Ii",
3494 tc_5a2711e5, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3495 let Inst{13-13} = 0b0;
3496 let Inst{20-20} = 0b0;
3497 let Inst{31-23} = 0b011111100;
3498 let isPredicated = 1;
3499 let hasNewValue = 1;
3500 let opNewValue = 0;
3501 let CextOpcode = "A2_tfr";
3502 let InputType = "imm";
3503 let BaseOpcode = "A2_tfrsi";
3504 let isMoveImm = 1;
3505 let isExtendable = 1;
3506 let opExtendable = 2;
3507 let isExtentSigned = 1;
3508 let opExtentBits = 12;
3509 let opExtentAlign = 0;
3510 }
3511 def C2_cmovenewif : HInst<
3512 (outs IntRegs:$Rd32),
3513 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3514 "if (!$Pu4.new) $Rd32 = #$Ii",
3515 tc_1ae57e39, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3516 let Inst{13-13} = 0b1;
3517 let Inst{20-20} = 0b0;
3518 let Inst{31-23} = 0b011111101;
3519 let isPredicated = 1;
3520 let isPredicatedFalse = 1;
3521 let hasNewValue = 1;
3522 let opNewValue = 0;
3523 let isPredicatedNew = 1;
3524 let CextOpcode = "A2_tfr";
3525 let InputType = "imm";
3526 let BaseOpcode = "A2_tfrsi";
3527 let isMoveImm = 1;
3528 let isExtendable = 1;
3529 let opExtendable = 2;
3530 let isExtentSigned = 1;
3531 let opExtentBits = 12;
3532 let opExtentAlign = 0;
3533 }
3534 def C2_cmovenewit : HInst<
3535 (outs IntRegs:$Rd32),
3536 (ins PredRegs:$Pu4, s32_0Imm:$Ii),
3537 "if ($Pu4.new) $Rd32 = #$Ii",
3538 tc_1ae57e39, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3539 let Inst{13-13} = 0b1;
3540 let Inst{20-20} = 0b0;
3541 let Inst{31-23} = 0b011111100;
3542 let isPredicated = 1;
3543 let hasNewValue = 1;
3544 let opNewValue = 0;
3545 let isPredicatedNew = 1;
3546 let CextOpcode = "A2_tfr";
3547 let InputType = "imm";
3548 let BaseOpcode = "A2_tfrsi";
3549 let isMoveImm = 1;
3550 let isExtendable = 1;
3551 let opExtendable = 2;
3552 let isExtentSigned = 1;
3553 let opExtentBits = 12;
3554 let opExtentAlign = 0;
3555 }
3556 def C2_cmpeq : HInst<
3557 (outs PredRegs:$Pd4),
3558 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3559 "$Pd4 = cmp.eq($Rs32,$Rt32)",
3560 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3561 let Inst{7-2} = 0b000000;
3562 let Inst{13-13} = 0b0;
3563 let Inst{31-21} = 0b11110010000;
3564 let CextOpcode = "C2_cmpeq";
3565 let InputType = "reg";
3566 let isCommutable = 1;
3567 let isCompare = 1;
3568 }
3569 def C2_cmpeqi : HInst<
3570 (outs PredRegs:$Pd4),
3571 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3572 "$Pd4 = cmp.eq($Rs32,#$Ii)",
3573 tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3574 let Inst{4-2} = 0b000;
3575 let Inst{31-22} = 0b0111010100;
3576 let CextOpcode = "C2_cmpeq";
3577 let InputType = "imm";
3578 let isCompare = 1;
3579 let isExtendable = 1;
3580 let opExtendable = 2;
3581 let isExtentSigned = 1;
3582 let opExtentBits = 10;
3583 let opExtentAlign = 0;
3584 }
3585 def C2_cmpeqp : HInst<
3586 (outs PredRegs:$Pd4),
3587 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3588 "$Pd4 = cmp.eq($Rss32,$Rtt32)",
3589 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3590 let Inst{7-2} = 0b000000;
3591 let Inst{13-13} = 0b0;
3592 let Inst{31-21} = 0b11010010100;
3593 let isCommutable = 1;
3594 let isCompare = 1;
3595 }
3596 def C2_cmpgei : HInst<
3597 (outs PredRegs:$Pd4),
3598 (ins IntRegs:$Rs32, s8_0Imm:$Ii),
3599 "$Pd4 = cmp.ge($Rs32,#$Ii)",
3600 tc_56f114f4, TypeALU32_2op> {
3601 let isCompare = 1;
3602 let isPseudo = 1;
3603 }
3604 def C2_cmpgeui : HInst<
3605 (outs PredRegs:$Pd4),
3606 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
3607 "$Pd4 = cmp.geu($Rs32,#$Ii)",
3608 tc_56f114f4, TypeALU32_2op> {
3609 let isCompare = 1;
3610 let isPseudo = 1;
3611 }
3612 def C2_cmpgt : HInst<
3613 (outs PredRegs:$Pd4),
3614 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3615 "$Pd4 = cmp.gt($Rs32,$Rt32)",
3616 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3617 let Inst{7-2} = 0b000000;
3618 let Inst{13-13} = 0b0;
3619 let Inst{31-21} = 0b11110010010;
3620 let CextOpcode = "C2_cmpgt";
3621 let InputType = "reg";
3622 let isCompare = 1;
3623 }
3624 def C2_cmpgti : HInst<
3625 (outs PredRegs:$Pd4),
3626 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3627 "$Pd4 = cmp.gt($Rs32,#$Ii)",
3628 tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3629 let Inst{4-2} = 0b000;
3630 let Inst{31-22} = 0b0111010101;
3631 let CextOpcode = "C2_cmpgt";
3632 let InputType = "imm";
3633 let isCompare = 1;
3634 let isExtendable = 1;
3635 let opExtendable = 2;
3636 let isExtentSigned = 1;
3637 let opExtentBits = 10;
3638 let opExtentAlign = 0;
3639 }
3640 def C2_cmpgtp : HInst<
3641 (outs PredRegs:$Pd4),
3642 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3643 "$Pd4 = cmp.gt($Rss32,$Rtt32)",
3644 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3645 let Inst{7-2} = 0b010000;
3646 let Inst{13-13} = 0b0;
3647 let Inst{31-21} = 0b11010010100;
3648 let isCompare = 1;
3649 }
3650 def C2_cmpgtu : HInst<
3651 (outs PredRegs:$Pd4),
3652 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3653 "$Pd4 = cmp.gtu($Rs32,$Rt32)",
3654 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3655 let Inst{7-2} = 0b000000;
3656 let Inst{13-13} = 0b0;
3657 let Inst{31-21} = 0b11110010011;
3658 let CextOpcode = "C2_cmpgtu";
3659 let InputType = "reg";
3660 let isCompare = 1;
3661 }
3662 def C2_cmpgtui : HInst<
3663 (outs PredRegs:$Pd4),
3664 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3665 "$Pd4 = cmp.gtu($Rs32,#$Ii)",
3666 tc_56f114f4, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3667 let Inst{4-2} = 0b000;
3668 let Inst{31-21} = 0b01110101100;
3669 let CextOpcode = "C2_cmpgtu";
3670 let InputType = "imm";
3671 let isCompare = 1;
3672 let isExtendable = 1;
3673 let opExtendable = 2;
3674 let isExtentSigned = 0;
3675 let opExtentBits = 9;
3676 let opExtentAlign = 0;
3677 }
3678 def C2_cmpgtup : HInst<
3679 (outs PredRegs:$Pd4),
3680 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3681 "$Pd4 = cmp.gtu($Rss32,$Rtt32)",
3682 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3683 let Inst{7-2} = 0b100000;
3684 let Inst{13-13} = 0b0;
3685 let Inst{31-21} = 0b11010010100;
3686 let isCompare = 1;
3687 }
3688 def C2_cmplt : HInst<
3689 (outs PredRegs:$Pd4),
3690 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3691 "$Pd4 = cmp.lt($Rs32,$Rt32)",
3692 tc_56f114f4, TypeALU32_3op> {
3693 let isCompare = 1;
3694 let isPseudo = 1;
3695 let isCodeGenOnly = 1;
3696 }
3697 def C2_cmpltu : HInst<
3698 (outs PredRegs:$Pd4),
3699 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3700 "$Pd4 = cmp.ltu($Rs32,$Rt32)",
3701 tc_56f114f4, TypeALU32_3op> {
3702 let isCompare = 1;
3703 let isPseudo = 1;
3704 let isCodeGenOnly = 1;
3705 }
3706 def C2_mask : HInst<
3707 (outs DoubleRegs:$Rdd32),
3708 (ins PredRegs:$Pt4),
3709 "$Rdd32 = mask($Pt4)",
3710 tc_0ae0825c, TypeS_2op>, Enc_78e566 {
3711 let Inst{7-5} = 0b000;
3712 let Inst{13-10} = 0b0000;
3713 let Inst{31-16} = 0b1000011000000000;
3714 }
3715 def C2_mux : HInst<
3716 (outs IntRegs:$Rd32),
3717 (ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3718 "$Rd32 = mux($Pu4,$Rs32,$Rt32)",
3719 tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54 {
3720 let Inst{7-7} = 0b0;
3721 let Inst{13-13} = 0b0;
3722 let Inst{31-21} = 0b11110100000;
3723 let hasNewValue = 1;
3724 let opNewValue = 0;
3725 let InputType = "reg";
3726 }
3727 def C2_muxii : HInst<
3728 (outs IntRegs:$Rd32),
3729 (ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II),
3730 "$Rd32 = mux($Pu4,#$Ii,#$II)",
3731 tc_4c5ba658, TypeALU32_2op>, Enc_830e5d {
3732 let Inst{31-25} = 0b0111101;
3733 let hasNewValue = 1;
3734 let opNewValue = 0;
3735 let isExtendable = 1;
3736 let opExtendable = 2;
3737 let isExtentSigned = 1;
3738 let opExtentBits = 8;
3739 let opExtentAlign = 0;
3740 }
3741 def C2_muxir : HInst<
3742 (outs IntRegs:$Rd32),
3743 (ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
3744 "$Rd32 = mux($Pu4,$Rs32,#$Ii)",
3745 tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f {
3746 let Inst{13-13} = 0b0;
3747 let Inst{31-23} = 0b011100110;
3748 let hasNewValue = 1;
3749 let opNewValue = 0;
3750 let InputType = "imm";
3751 let isExtendable = 1;
3752 let opExtendable = 3;
3753 let isExtentSigned = 1;
3754 let opExtentBits = 8;
3755 let opExtentAlign = 0;
3756 }
3757 def C2_muxri : HInst<
3758 (outs IntRegs:$Rd32),
3759 (ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32),
3760 "$Rd32 = mux($Pu4,#$Ii,$Rs32)",
3761 tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f {
3762 let Inst{13-13} = 0b0;
3763 let Inst{31-23} = 0b011100111;
3764 let hasNewValue = 1;
3765 let opNewValue = 0;
3766 let InputType = "imm";
3767 let isExtendable = 1;
3768 let opExtendable = 2;
3769 let isExtentSigned = 1;
3770 let opExtentBits = 8;
3771 let opExtentAlign = 0;
3772 }
3773 def C2_not : HInst<
3774 (outs PredRegs:$Pd4),
3775 (ins PredRegs:$Ps4),
3776 "$Pd4 = not($Ps4)",
3777 tc_de554571, TypeCR>, Enc_65d691 {
3778 let Inst{13-2} = 0b000000000000;
3779 let Inst{31-18} = 0b01101011110000;
3780 }
3781 def C2_or : HInst<
3782 (outs PredRegs:$Pd4),
3783 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3784 "$Pd4 = or($Pt4,$Ps4)",
3785 tc_640086b5, TypeCR>, Enc_454a26 {
3786 let Inst{7-2} = 0b000000;
3787 let Inst{13-10} = 0b0000;
3788 let Inst{31-18} = 0b01101011001000;
3789 }
3790 def C2_orn : HInst<
3791 (outs PredRegs:$Pd4),
3792 (ins PredRegs:$Pt4, PredRegs:$Ps4),
3793 "$Pd4 = or($Pt4,!$Ps4)",
3794 tc_640086b5, TypeCR>, Enc_454a26 {
3795 let Inst{7-2} = 0b000000;
3796 let Inst{13-10} = 0b0000;
3797 let Inst{31-18} = 0b01101011111000;
3798 }
3799 def C2_pxfer_map : HInst<
3800 (outs PredRegs:$Pd4),
3801 (ins PredRegs:$Ps4),
3802 "$Pd4 = $Ps4",
3803 tc_640086b5, TypeMAPPING> {
3804 let isPseudo = 1;
3805 let isCodeGenOnly = 1;
3806 }
3807 def C2_tfrpr : HInst<
3808 (outs IntRegs:$Rd32),
3809 (ins PredRegs:$Ps4),
3810 "$Rd32 = $Ps4",
3811 tc_0ae0825c, TypeS_2op>, Enc_f5e933 {
3812 let Inst{13-5} = 0b000000000;
3813 let Inst{31-18} = 0b10001001010000;
3814 let hasNewValue = 1;
3815 let opNewValue = 0;
3816 }
3817 def C2_tfrrp : HInst<
3818 (outs PredRegs:$Pd4),
3819 (ins IntRegs:$Rs32),
3820 "$Pd4 = $Rs32",
3821 tc_cfd8378a, TypeS_2op>, Enc_48b75f {
3822 let Inst{13-2} = 0b000000000000;
3823 let Inst{31-21} = 0b10000101010;
3824 }
3825 def C2_vitpack : HInst<
3826 (outs IntRegs:$Rd32),
3827 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3828 "$Rd32 = vitpack($Ps4,$Pt4)",
3829 tc_4414d8b1, TypeS_2op>, Enc_527412 {
3830 let Inst{7-5} = 0b000;
3831 let Inst{13-10} = 0b0000;
3832 let Inst{31-18} = 0b10001001000000;
3833 let hasNewValue = 1;
3834 let opNewValue = 0;
3835 let prefersSlot3 = 1;
3836 }
3837 def C2_vmux : HInst<
3838 (outs DoubleRegs:$Rdd32),
3839 (ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3840 "$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)",
3841 tc_b4b5c03a, TypeALU64>, Enc_329361 {
3842 let Inst{7-7} = 0b0;
3843 let Inst{13-13} = 0b0;
3844 let Inst{31-21} = 0b11010001000;
3845 }
3846 def C2_xor : HInst<
3847 (outs PredRegs:$Pd4),
3848 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3849 "$Pd4 = xor($Ps4,$Pt4)",
3850 tc_640086b5, TypeCR>, Enc_284ebb {
3851 let Inst{7-2} = 0b000000;
3852 let Inst{13-10} = 0b0000;
3853 let Inst{31-18} = 0b01101011010000;
3854 }
3855 def C4_addipc : HInst<
3856 (outs IntRegs:$Rd32),
3857 (ins u32_0Imm:$Ii),
3858 "$Rd32 = add(pc,#$Ii)",
3859 tc_a813cf9a, TypeCR>, Enc_607661 {
3860 let Inst{6-5} = 0b00;
3861 let Inst{13-13} = 0b0;
3862 let Inst{31-16} = 0b0110101001001001;
3863 let hasNewValue = 1;
3864 let opNewValue = 0;
3865 let isExtendable = 1;
3866 let opExtendable = 1;
3867 let isExtentSigned = 0;
3868 let opExtentBits = 6;
3869 let opExtentAlign = 0;
3870 }
3871 def C4_and_and : HInst<
3872 (outs PredRegs:$Pd4),
3873 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3874 "$Pd4 = and($Ps4,and($Pt4,$Pu4))",
3875 tc_b31c2e97, TypeCR>, Enc_9ac432 {
3876 let Inst{5-2} = 0b0000;
3877 let Inst{13-10} = 0b0000;
3878 let Inst{31-18} = 0b01101011000100;
3879 }
3880 def C4_and_andn : HInst<
3881 (outs PredRegs:$Pd4),
3882 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3883 "$Pd4 = and($Ps4,and($Pt4,!$Pu4))",
3884 tc_b31c2e97, TypeCR>, Enc_9ac432 {
3885 let Inst{5-2} = 0b0000;
3886 let Inst{13-10} = 0b0000;
3887 let Inst{31-18} = 0b01101011100100;
3888 }
3889 def C4_and_or : HInst<
3890 (outs PredRegs:$Pd4),
3891 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3892 "$Pd4 = and($Ps4,or($Pt4,$Pu4))",
3893 tc_b31c2e97, TypeCR>, Enc_9ac432 {
3894 let Inst{5-2} = 0b0000;
3895 let Inst{13-10} = 0b0000;
3896 let Inst{31-18} = 0b01101011001100;
3897 }
3898 def C4_and_orn : HInst<
3899 (outs PredRegs:$Pd4),
3900 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3901 "$Pd4 = and($Ps4,or($Pt4,!$Pu4))",
3902 tc_b31c2e97, TypeCR>, Enc_9ac432 {
3903 let Inst{5-2} = 0b0000;
3904 let Inst{13-10} = 0b0000;
3905 let Inst{31-18} = 0b01101011101100;
3906 }
3907 def C4_cmplte : HInst<
3908 (outs PredRegs:$Pd4),
3909 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3910 "$Pd4 = !cmp.gt($Rs32,$Rt32)",
3911 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3912 let Inst{7-2} = 0b000100;
3913 let Inst{13-13} = 0b0;
3914 let Inst{31-21} = 0b11110010010;
3915 let CextOpcode = "C4_cmplte";
3916 let InputType = "reg";
3917 let isCompare = 1;
3918 }
3919 def C4_cmpltei : HInst<
3920 (outs PredRegs:$Pd4),
3921 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3922 "$Pd4 = !cmp.gt($Rs32,#$Ii)",
3923 tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3924 let Inst{4-2} = 0b100;
3925 let Inst{31-22} = 0b0111010101;
3926 let CextOpcode = "C4_cmplte";
3927 let InputType = "imm";
3928 let isCompare = 1;
3929 let isExtendable = 1;
3930 let opExtendable = 2;
3931 let isExtentSigned = 1;
3932 let opExtentBits = 10;
3933 let opExtentAlign = 0;
3934 }
3935 def C4_cmplteu : HInst<
3936 (outs PredRegs:$Pd4),
3937 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3938 "$Pd4 = !cmp.gtu($Rs32,$Rt32)",
3939 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3940 let Inst{7-2} = 0b000100;
3941 let Inst{13-13} = 0b0;
3942 let Inst{31-21} = 0b11110010011;
3943 let CextOpcode = "C4_cmplteu";
3944 let InputType = "reg";
3945 let isCompare = 1;
3946 }
3947 def C4_cmplteui : HInst<
3948 (outs PredRegs:$Pd4),
3949 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
3950 "$Pd4 = !cmp.gtu($Rs32,#$Ii)",
3951 tc_56f114f4, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3952 let Inst{4-2} = 0b100;
3953 let Inst{31-21} = 0b01110101100;
3954 let CextOpcode = "C4_cmplteu";
3955 let InputType = "imm";
3956 let isCompare = 1;
3957 let isExtendable = 1;
3958 let opExtendable = 2;
3959 let isExtentSigned = 0;
3960 let opExtentBits = 9;
3961 let opExtentAlign = 0;
3962 }
3963 def C4_cmpneq : HInst<
3964 (outs PredRegs:$Pd4),
3965 (ins IntRegs:$Rs32, IntRegs:$Rt32),
3966 "$Pd4 = !cmp.eq($Rs32,$Rt32)",
3967 tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3968 let Inst{7-2} = 0b000100;
3969 let Inst{13-13} = 0b0;
3970 let Inst{31-21} = 0b11110010000;
3971 let CextOpcode = "C4_cmpneq";
3972 let InputType = "reg";
3973 let isCommutable = 1;
3974 let isCompare = 1;
3975 }
3976 def C4_cmpneqi : HInst<
3977 (outs PredRegs:$Pd4),
3978 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
3979 "$Pd4 = !cmp.eq($Rs32,#$Ii)",
3980 tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3981 let Inst{4-2} = 0b100;
3982 let Inst{31-22} = 0b0111010100;
3983 let CextOpcode = "C4_cmpneq";
3984 let InputType = "imm";
3985 let isCompare = 1;
3986 let isExtendable = 1;
3987 let opExtendable = 2;
3988 let isExtentSigned = 1;
3989 let opExtentBits = 10;
3990 let opExtentAlign = 0;
3991 }
3992 def C4_fastcorner9 : HInst<
3993 (outs PredRegs:$Pd4),
3994 (ins PredRegs:$Ps4, PredRegs:$Pt4),
3995 "$Pd4 = fastcorner9($Ps4,$Pt4)",
3996 tc_640086b5, TypeCR>, Enc_284ebb {
3997 let Inst{7-2} = 0b100100;
3998 let Inst{13-10} = 0b1000;
3999 let Inst{31-18} = 0b01101011000000;
4000 }
4001 def C4_fastcorner9_not : HInst<
4002 (outs PredRegs:$Pd4),
4003 (ins PredRegs:$Ps4, PredRegs:$Pt4),
4004 "$Pd4 = !fastcorner9($Ps4,$Pt4)",
4005 tc_640086b5, TypeCR>, Enc_284ebb {
4006 let Inst{7-2} = 0b100100;
4007 let Inst{13-10} = 0b1000;
4008 let Inst{31-18} = 0b01101011000100;
4009 }
4010 def C4_nbitsclr : HInst<
4011 (outs PredRegs:$Pd4),
4012 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4013 "$Pd4 = !bitsclr($Rs32,$Rt32)",
4014 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4015 let Inst{7-2} = 0b000000;
4016 let Inst{13-13} = 0b0;
4017 let Inst{31-21} = 0b11000111101;
4018 }
4019 def C4_nbitsclri : HInst<
4020 (outs PredRegs:$Pd4),
4021 (ins IntRegs:$Rs32, u6_0Imm:$Ii),
4022 "$Pd4 = !bitsclr($Rs32,#$Ii)",
4023 tc_643b4717, TypeS_2op>, Enc_5d6c34 {
4024 let Inst{7-2} = 0b000000;
4025 let Inst{31-21} = 0b10000101101;
4026 }
4027 def C4_nbitsset : HInst<
4028 (outs PredRegs:$Pd4),
4029 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4030 "$Pd4 = !bitsset($Rs32,$Rt32)",
4031 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4032 let Inst{7-2} = 0b000000;
4033 let Inst{13-13} = 0b0;
4034 let Inst{31-21} = 0b11000111011;
4035 }
4036 def C4_or_and : HInst<
4037 (outs PredRegs:$Pd4),
4038 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4039 "$Pd4 = or($Ps4,and($Pt4,$Pu4))",
4040 tc_b31c2e97, TypeCR>, Enc_9ac432 {
4041 let Inst{5-2} = 0b0000;
4042 let Inst{13-10} = 0b0000;
4043 let Inst{31-18} = 0b01101011010100;
4044 }
4045 def C4_or_andn : HInst<
4046 (outs PredRegs:$Pd4),
4047 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4048 "$Pd4 = or($Ps4,and($Pt4,!$Pu4))",
4049 tc_b31c2e97, TypeCR>, Enc_9ac432 {
4050 let Inst{5-2} = 0b0000;
4051 let Inst{13-10} = 0b0000;
4052 let Inst{31-18} = 0b01101011110100;
4053 }
4054 def C4_or_or : HInst<
4055 (outs PredRegs:$Pd4),
4056 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4057 "$Pd4 = or($Ps4,or($Pt4,$Pu4))",
4058 tc_b31c2e97, TypeCR>, Enc_9ac432 {
4059 let Inst{5-2} = 0b0000;
4060 let Inst{13-10} = 0b0000;
4061 let Inst{31-18} = 0b01101011011100;
4062 }
4063 def C4_or_orn : HInst<
4064 (outs PredRegs:$Pd4),
4065 (ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4066 "$Pd4 = or($Ps4,or($Pt4,!$Pu4))",
4067 tc_b31c2e97, TypeCR>, Enc_9ac432 {
4068 let Inst{5-2} = 0b0000;
4069 let Inst{13-10} = 0b0000;
4070 let Inst{31-18} = 0b01101011111100;
4071 }
4072 def F2_conv_d2df : HInst<
4073 (outs DoubleRegs:$Rdd32),
4074 (ins DoubleRegs:$Rss32),
4075 "$Rdd32 = convert_d2df($Rss32)",
4076 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4077 let Inst{13-5} = 0b000000011;
4078 let Inst{31-21} = 0b10000000111;
4079 let isFP = 1;
4080 let Uses = [USR];
4081 }
4082 def F2_conv_d2sf : HInst<
4083 (outs IntRegs:$Rd32),
4084 (ins DoubleRegs:$Rss32),
4085 "$Rd32 = convert_d2sf($Rss32)",
4086 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4087 let Inst{13-5} = 0b000000001;
4088 let Inst{31-21} = 0b10001000010;
4089 let hasNewValue = 1;
4090 let opNewValue = 0;
4091 let isFP = 1;
4092 let Uses = [USR];
4093 }
4094 def F2_conv_df2d : HInst<
4095 (outs DoubleRegs:$Rdd32),
4096 (ins DoubleRegs:$Rss32),
4097 "$Rdd32 = convert_df2d($Rss32)",
4098 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4099 let Inst{13-5} = 0b000000000;
4100 let Inst{31-21} = 0b10000000111;
4101 let isFP = 1;
4102 let Uses = [USR];
4103 }
4104 def F2_conv_df2d_chop : HInst<
4105 (outs DoubleRegs:$Rdd32),
4106 (ins DoubleRegs:$Rss32),
4107 "$Rdd32 = convert_df2d($Rss32):chop",
4108 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4109 let Inst{13-5} = 0b000000110;
4110 let Inst{31-21} = 0b10000000111;
4111 let isFP = 1;
4112 let Uses = [USR];
4113 }
4114 def F2_conv_df2sf : HInst<
4115 (outs IntRegs:$Rd32),
4116 (ins DoubleRegs:$Rss32),
4117 "$Rd32 = convert_df2sf($Rss32)",
4118 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4119 let Inst{13-5} = 0b000000001;
4120 let Inst{31-21} = 0b10001000000;
4121 let hasNewValue = 1;
4122 let opNewValue = 0;
4123 let isFP = 1;
4124 let Uses = [USR];
4125 }
4126 def F2_conv_df2ud : HInst<
4127 (outs DoubleRegs:$Rdd32),
4128 (ins DoubleRegs:$Rss32),
4129 "$Rdd32 = convert_df2ud($Rss32)",
4130 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4131 let Inst{13-5} = 0b000000001;
4132 let Inst{31-21} = 0b10000000111;
4133 let isFP = 1;
4134 let Uses = [USR];
4135 }
4136 def F2_conv_df2ud_chop : HInst<
4137 (outs DoubleRegs:$Rdd32),
4138 (ins DoubleRegs:$Rss32),
4139 "$Rdd32 = convert_df2ud($Rss32):chop",
4140 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4141 let Inst{13-5} = 0b000000111;
4142 let Inst{31-21} = 0b10000000111;
4143 let isFP = 1;
4144 let Uses = [USR];
4145 }
4146 def F2_conv_df2uw : HInst<
4147 (outs IntRegs:$Rd32),
4148 (ins DoubleRegs:$Rss32),
4149 "$Rd32 = convert_df2uw($Rss32)",
4150 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4151 let Inst{13-5} = 0b000000001;
4152 let Inst{31-21} = 0b10001000011;
4153 let hasNewValue = 1;
4154 let opNewValue = 0;
4155 let isFP = 1;
4156 let Uses = [USR];
4157 }
4158 def F2_conv_df2uw_chop : HInst<
4159 (outs IntRegs:$Rd32),
4160 (ins DoubleRegs:$Rss32),
4161 "$Rd32 = convert_df2uw($Rss32):chop",
4162 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4163 let Inst{13-5} = 0b000000001;
4164 let Inst{31-21} = 0b10001000101;
4165 let hasNewValue = 1;
4166 let opNewValue = 0;
4167 let isFP = 1;
4168 let Uses = [USR];
4169 }
4170 def F2_conv_df2w : HInst<
4171 (outs IntRegs:$Rd32),
4172 (ins DoubleRegs:$Rss32),
4173 "$Rd32 = convert_df2w($Rss32)",
4174 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4175 let Inst{13-5} = 0b000000001;
4176 let Inst{31-21} = 0b10001000100;
4177 let hasNewValue = 1;
4178 let opNewValue = 0;
4179 let isFP = 1;
4180 let Uses = [USR];
4181 }
4182 def F2_conv_df2w_chop : HInst<
4183 (outs IntRegs:$Rd32),
4184 (ins DoubleRegs:$Rss32),
4185 "$Rd32 = convert_df2w($Rss32):chop",
4186 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4187 let Inst{13-5} = 0b000000001;
4188 let Inst{31-21} = 0b10001000111;
4189 let hasNewValue = 1;
4190 let opNewValue = 0;
4191 let isFP = 1;
4192 let Uses = [USR];
4193 }
4194 def F2_conv_sf2d : HInst<
4195 (outs DoubleRegs:$Rdd32),
4196 (ins IntRegs:$Rs32),
4197 "$Rdd32 = convert_sf2d($Rs32)",
4198 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4199 let Inst{13-5} = 0b000000100;
4200 let Inst{31-21} = 0b10000100100;
4201 let isFP = 1;
4202 let Uses = [USR];
4203 }
4204 def F2_conv_sf2d_chop : HInst<
4205 (outs DoubleRegs:$Rdd32),
4206 (ins IntRegs:$Rs32),
4207 "$Rdd32 = convert_sf2d($Rs32):chop",
4208 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4209 let Inst{13-5} = 0b000000110;
4210 let Inst{31-21} = 0b10000100100;
4211 let isFP = 1;
4212 let Uses = [USR];
4213 }
4214 def F2_conv_sf2df : HInst<
4215 (outs DoubleRegs:$Rdd32),
4216 (ins IntRegs:$Rs32),
4217 "$Rdd32 = convert_sf2df($Rs32)",
4218 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4219 let Inst{13-5} = 0b000000000;
4220 let Inst{31-21} = 0b10000100100;
4221 let isFP = 1;
4222 let Uses = [USR];
4223 }
4224 def F2_conv_sf2ud : HInst<
4225 (outs DoubleRegs:$Rdd32),
4226 (ins IntRegs:$Rs32),
4227 "$Rdd32 = convert_sf2ud($Rs32)",
4228 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4229 let Inst{13-5} = 0b000000011;
4230 let Inst{31-21} = 0b10000100100;
4231 let isFP = 1;
4232 let Uses = [USR];
4233 }
4234 def F2_conv_sf2ud_chop : HInst<
4235 (outs DoubleRegs:$Rdd32),
4236 (ins IntRegs:$Rs32),
4237 "$Rdd32 = convert_sf2ud($Rs32):chop",
4238 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4239 let Inst{13-5} = 0b000000101;
4240 let Inst{31-21} = 0b10000100100;
4241 let isFP = 1;
4242 let Uses = [USR];
4243 }
4244 def F2_conv_sf2uw : HInst<
4245 (outs IntRegs:$Rd32),
4246 (ins IntRegs:$Rs32),
4247 "$Rd32 = convert_sf2uw($Rs32)",
4248 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4249 let Inst{13-5} = 0b000000000;
4250 let Inst{31-21} = 0b10001011011;
4251 let hasNewValue = 1;
4252 let opNewValue = 0;
4253 let isFP = 1;
4254 let Uses = [USR];
4255 }
4256 def F2_conv_sf2uw_chop : HInst<
4257 (outs IntRegs:$Rd32),
4258 (ins IntRegs:$Rs32),
4259 "$Rd32 = convert_sf2uw($Rs32):chop",
4260 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4261 let Inst{13-5} = 0b000000001;
4262 let Inst{31-21} = 0b10001011011;
4263 let hasNewValue = 1;
4264 let opNewValue = 0;
4265 let isFP = 1;
4266 let Uses = [USR];
4267 }
4268 def F2_conv_sf2w : HInst<
4269 (outs IntRegs:$Rd32),
4270 (ins IntRegs:$Rs32),
4271 "$Rd32 = convert_sf2w($Rs32)",
4272 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4273 let Inst{13-5} = 0b000000000;
4274 let Inst{31-21} = 0b10001011100;
4275 let hasNewValue = 1;
4276 let opNewValue = 0;
4277 let isFP = 1;
4278 let Uses = [USR];
4279 }
4280 def F2_conv_sf2w_chop : HInst<
4281 (outs IntRegs:$Rd32),
4282 (ins IntRegs:$Rs32),
4283 "$Rd32 = convert_sf2w($Rs32):chop",
4284 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4285 let Inst{13-5} = 0b000000001;
4286 let Inst{31-21} = 0b10001011100;
4287 let hasNewValue = 1;
4288 let opNewValue = 0;
4289 let isFP = 1;
4290 let Uses = [USR];
4291 }
4292 def F2_conv_ud2df : HInst<
4293 (outs DoubleRegs:$Rdd32),
4294 (ins DoubleRegs:$Rss32),
4295 "$Rdd32 = convert_ud2df($Rss32)",
4296 tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4297 let Inst{13-5} = 0b000000010;
4298 let Inst{31-21} = 0b10000000111;
4299 let isFP = 1;
4300 let Uses = [USR];
4301 }
4302 def F2_conv_ud2sf : HInst<
4303 (outs IntRegs:$Rd32),
4304 (ins DoubleRegs:$Rss32),
4305 "$Rd32 = convert_ud2sf($Rss32)",
4306 tc_3a867367, TypeS_2op>, Enc_90cd8b {
4307 let Inst{13-5} = 0b000000001;
4308 let Inst{31-21} = 0b10001000001;
4309 let hasNewValue = 1;
4310 let opNewValue = 0;
4311 let isFP = 1;
4312 let Uses = [USR];
4313 }
4314 def F2_conv_uw2df : HInst<
4315 (outs DoubleRegs:$Rdd32),
4316 (ins IntRegs:$Rs32),
4317 "$Rdd32 = convert_uw2df($Rs32)",
4318 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4319 let Inst{13-5} = 0b000000001;
4320 let Inst{31-21} = 0b10000100100;
4321 let isFP = 1;
4322 let Uses = [USR];
4323 }
4324 def F2_conv_uw2sf : HInst<
4325 (outs IntRegs:$Rd32),
4326 (ins IntRegs:$Rs32),
4327 "$Rd32 = convert_uw2sf($Rs32)",
4328 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4329 let Inst{13-5} = 0b000000000;
4330 let Inst{31-21} = 0b10001011001;
4331 let hasNewValue = 1;
4332 let opNewValue = 0;
4333 let isFP = 1;
4334 let Uses = [USR];
4335 }
4336 def F2_conv_w2df : HInst<
4337 (outs DoubleRegs:$Rdd32),
4338 (ins IntRegs:$Rs32),
4339 "$Rdd32 = convert_w2df($Rs32)",
4340 tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4341 let Inst{13-5} = 0b000000010;
4342 let Inst{31-21} = 0b10000100100;
4343 let isFP = 1;
4344 let Uses = [USR];
4345 }
4346 def F2_conv_w2sf : HInst<
4347 (outs IntRegs:$Rd32),
4348 (ins IntRegs:$Rs32),
4349 "$Rd32 = convert_w2sf($Rs32)",
4350 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4351 let Inst{13-5} = 0b000000000;
4352 let Inst{31-21} = 0b10001011010;
4353 let hasNewValue = 1;
4354 let opNewValue = 0;
4355 let isFP = 1;
4356 let Uses = [USR];
4357 }
4358 def F2_dfadd : HInst<
4359 (outs DoubleRegs:$Rdd32),
4360 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4361 "$Rdd32 = dfadd($Rss32,$Rtt32)",
4362 tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> {
4363 let Inst{7-5} = 0b011;
4364 let Inst{13-13} = 0b0;
4365 let Inst{31-21} = 0b11101000000;
4366 let isFP = 1;
4367 let Uses = [USR];
4368 }
4369 def F2_dfclass : HInst<
4370 (outs PredRegs:$Pd4),
4371 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
4372 "$Pd4 = dfclass($Rss32,#$Ii)",
4373 tc_643b4717, TypeALU64>, Enc_1f19b5 {
4374 let Inst{4-2} = 0b100;
4375 let Inst{13-10} = 0b0000;
4376 let Inst{31-21} = 0b11011100100;
4377 let isFP = 1;
4378 let Uses = [USR];
4379 }
4380 def F2_dfcmpeq : HInst<
4381 (outs PredRegs:$Pd4),
4382 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4383 "$Pd4 = dfcmp.eq($Rss32,$Rtt32)",
4384 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4385 let Inst{7-2} = 0b000000;
4386 let Inst{13-13} = 0b0;
4387 let Inst{31-21} = 0b11010010111;
4388 let isFP = 1;
4389 let Uses = [USR];
4390 let isCompare = 1;
4391 }
4392 def F2_dfcmpge : HInst<
4393 (outs PredRegs:$Pd4),
4394 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4395 "$Pd4 = dfcmp.ge($Rss32,$Rtt32)",
4396 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4397 let Inst{7-2} = 0b010000;
4398 let Inst{13-13} = 0b0;
4399 let Inst{31-21} = 0b11010010111;
4400 let isFP = 1;
4401 let Uses = [USR];
4402 let isCompare = 1;
4403 }
4404 def F2_dfcmpgt : HInst<
4405 (outs PredRegs:$Pd4),
4406 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4407 "$Pd4 = dfcmp.gt($Rss32,$Rtt32)",
4408 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4409 let Inst{7-2} = 0b001000;
4410 let Inst{13-13} = 0b0;
4411 let Inst{31-21} = 0b11010010111;
4412 let isFP = 1;
4413 let Uses = [USR];
4414 let isCompare = 1;
4415 }
4416 def F2_dfcmpuo : HInst<
4417 (outs PredRegs:$Pd4),
4418 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4419 "$Pd4 = dfcmp.uo($Rss32,$Rtt32)",
4420 tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4421 let Inst{7-2} = 0b011000;
4422 let Inst{13-13} = 0b0;
4423 let Inst{31-21} = 0b11010010111;
4424 let isFP = 1;
4425 let Uses = [USR];
4426 let isCompare = 1;
4427 }
4428 def F2_dfimm_n : HInst<
4429 (outs DoubleRegs:$Rdd32),
4430 (ins u10_0Imm:$Ii),
4431 "$Rdd32 = dfmake(#$Ii):neg",
4432 tc_9e313203, TypeALU64>, Enc_e6c957 {
4433 let Inst{20-16} = 0b00000;
4434 let Inst{31-22} = 0b1101100101;
4435 let prefersSlot3 = 1;
4436 }
4437 def F2_dfimm_p : HInst<
4438 (outs DoubleRegs:$Rdd32),
4439 (ins u10_0Imm:$Ii),
4440 "$Rdd32 = dfmake(#$Ii):pos",
4441 tc_9e313203, TypeALU64>, Enc_e6c957 {
4442 let Inst{20-16} = 0b00000;
4443 let Inst{31-22} = 0b1101100100;
4444 let prefersSlot3 = 1;
4445 }
4446 def F2_dfsub : HInst<
4447 (outs DoubleRegs:$Rdd32),
4448 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4449 "$Rdd32 = dfsub($Rss32,$Rtt32)",
4450 tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> {
4451 let Inst{7-5} = 0b011;
4452 let Inst{13-13} = 0b0;
4453 let Inst{31-21} = 0b11101000100;
4454 let isFP = 1;
4455 let Uses = [USR];
4456 }
4457 def F2_sfadd : HInst<
4458 (outs IntRegs:$Rd32),
4459 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4460 "$Rd32 = sfadd($Rs32,$Rt32)",
4461 tc_3b470976, TypeM>, Enc_5ab2be {
4462 let Inst{7-5} = 0b000;
4463 let Inst{13-13} = 0b0;
4464 let Inst{31-21} = 0b11101011000;
4465 let hasNewValue = 1;
4466 let opNewValue = 0;
4467 let isFP = 1;
4468 let Uses = [USR];
4469 let isCommutable = 1;
4470 }
4471 def F2_sfclass : HInst<
4472 (outs PredRegs:$Pd4),
4473 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
4474 "$Pd4 = sfclass($Rs32,#$Ii)",
4475 tc_643b4717, TypeS_2op>, Enc_83ee64 {
4476 let Inst{7-2} = 0b000000;
4477 let Inst{13-13} = 0b0;
4478 let Inst{31-21} = 0b10000101111;
4479 let isFP = 1;
4480 let Uses = [USR];
4481 }
4482 def F2_sfcmpeq : HInst<
4483 (outs PredRegs:$Pd4),
4484 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4485 "$Pd4 = sfcmp.eq($Rs32,$Rt32)",
4486 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4487 let Inst{7-2} = 0b011000;
4488 let Inst{13-13} = 0b0;
4489 let Inst{31-21} = 0b11000111111;
4490 let isFP = 1;
4491 let Uses = [USR];
4492 let isCompare = 1;
4493 }
4494 def F2_sfcmpge : HInst<
4495 (outs PredRegs:$Pd4),
4496 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4497 "$Pd4 = sfcmp.ge($Rs32,$Rt32)",
4498 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4499 let Inst{7-2} = 0b000000;
4500 let Inst{13-13} = 0b0;
4501 let Inst{31-21} = 0b11000111111;
4502 let isFP = 1;
4503 let Uses = [USR];
4504 let isCompare = 1;
4505 }
4506 def F2_sfcmpgt : HInst<
4507 (outs PredRegs:$Pd4),
4508 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4509 "$Pd4 = sfcmp.gt($Rs32,$Rt32)",
4510 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4511 let Inst{7-2} = 0b100000;
4512 let Inst{13-13} = 0b0;
4513 let Inst{31-21} = 0b11000111111;
4514 let isFP = 1;
4515 let Uses = [USR];
4516 let isCompare = 1;
4517 }
4518 def F2_sfcmpuo : HInst<
4519 (outs PredRegs:$Pd4),
4520 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4521 "$Pd4 = sfcmp.uo($Rs32,$Rt32)",
4522 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4523 let Inst{7-2} = 0b001000;
4524 let Inst{13-13} = 0b0;
4525 let Inst{31-21} = 0b11000111111;
4526 let isFP = 1;
4527 let Uses = [USR];
4528 let isCompare = 1;
4529 }
4530 def F2_sffixupd : HInst<
4531 (outs IntRegs:$Rd32),
4532 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4533 "$Rd32 = sffixupd($Rs32,$Rt32)",
4534 tc_3b470976, TypeM>, Enc_5ab2be {
4535 let Inst{7-5} = 0b001;
4536 let Inst{13-13} = 0b0;
4537 let Inst{31-21} = 0b11101011110;
4538 let hasNewValue = 1;
4539 let opNewValue = 0;
4540 let isFP = 1;
4541 }
4542 def F2_sffixupn : HInst<
4543 (outs IntRegs:$Rd32),
4544 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4545 "$Rd32 = sffixupn($Rs32,$Rt32)",
4546 tc_3b470976, TypeM>, Enc_5ab2be {
4547 let Inst{7-5} = 0b000;
4548 let Inst{13-13} = 0b0;
4549 let Inst{31-21} = 0b11101011110;
4550 let hasNewValue = 1;
4551 let opNewValue = 0;
4552 let isFP = 1;
4553 }
4554 def F2_sffixupr : HInst<
4555 (outs IntRegs:$Rd32),
4556 (ins IntRegs:$Rs32),
4557 "$Rd32 = sffixupr($Rs32)",
4558 tc_3a867367, TypeS_2op>, Enc_5e2823 {
4559 let Inst{13-5} = 0b000000000;
4560 let Inst{31-21} = 0b10001011101;
4561 let hasNewValue = 1;
4562 let opNewValue = 0;
4563 let isFP = 1;
4564 }
4565 def F2_sffma : HInst<
4566 (outs IntRegs:$Rx32),
4567 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4568 "$Rx32 += sfmpy($Rs32,$Rt32)",
4569 tc_a58fd5cc, TypeM>, Enc_2ae154 {
4570 let Inst{7-5} = 0b100;
4571 let Inst{13-13} = 0b0;
4572 let Inst{31-21} = 0b11101111000;
4573 let hasNewValue = 1;
4574 let opNewValue = 0;
4575 let isFP = 1;
4576 let Uses = [USR];
4577 let Constraints = "$Rx32 = $Rx32in";
4578 }
4579 def F2_sffma_lib : HInst<
4580 (outs IntRegs:$Rx32),
4581 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4582 "$Rx32 += sfmpy($Rs32,$Rt32):lib",
4583 tc_a58fd5cc, TypeM>, Enc_2ae154 {
4584 let Inst{7-5} = 0b110;
4585 let Inst{13-13} = 0b0;
4586 let Inst{31-21} = 0b11101111000;
4587 let hasNewValue = 1;
4588 let opNewValue = 0;
4589 let isFP = 1;
4590 let Uses = [USR];
4591 let Constraints = "$Rx32 = $Rx32in";
4592 }
4593 def F2_sffma_sc : HInst<
4594 (outs IntRegs:$Rx32),
4595 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4),
4596 "$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale",
4597 tc_4560740b, TypeM>, Enc_437f33 {
4598 let Inst{7-7} = 0b1;
4599 let Inst{13-13} = 0b0;
4600 let Inst{31-21} = 0b11101111011;
4601 let hasNewValue = 1;
4602 let opNewValue = 0;
4603 let isFP = 1;
4604 let Uses = [USR];
4605 let Constraints = "$Rx32 = $Rx32in";
4606 }
4607 def F2_sffms : HInst<
4608 (outs IntRegs:$Rx32),
4609 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4610 "$Rx32 -= sfmpy($Rs32,$Rt32)",
4611 tc_a58fd5cc, TypeM>, Enc_2ae154 {
4612 let Inst{7-5} = 0b101;
4613 let Inst{13-13} = 0b0;
4614 let Inst{31-21} = 0b11101111000;
4615 let hasNewValue = 1;
4616 let opNewValue = 0;
4617 let isFP = 1;
4618 let Uses = [USR];
4619 let Constraints = "$Rx32 = $Rx32in";
4620 }
4621 def F2_sffms_lib : HInst<
4622 (outs IntRegs:$Rx32),
4623 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4624 "$Rx32 -= sfmpy($Rs32,$Rt32):lib",
4625 tc_a58fd5cc, TypeM>, Enc_2ae154 {
4626 let Inst{7-5} = 0b111;
4627 let Inst{13-13} = 0b0;
4628 let Inst{31-21} = 0b11101111000;
4629 let hasNewValue = 1;
4630 let opNewValue = 0;
4631 let isFP = 1;
4632 let Uses = [USR];
4633 let Constraints = "$Rx32 = $Rx32in";
4634 }
4635 def F2_sfimm_n : HInst<
4636 (outs IntRegs:$Rd32),
4637 (ins u10_0Imm:$Ii),
4638 "$Rd32 = sfmake(#$Ii):neg",
4639 tc_9e313203, TypeALU64>, Enc_6c9440 {
4640 let Inst{20-16} = 0b00000;
4641 let Inst{31-22} = 0b1101011001;
4642 let hasNewValue = 1;
4643 let opNewValue = 0;
4644 let prefersSlot3 = 1;
4645 }
4646 def F2_sfimm_p : HInst<
4647 (outs IntRegs:$Rd32),
4648 (ins u10_0Imm:$Ii),
4649 "$Rd32 = sfmake(#$Ii):pos",
4650 tc_9e313203, TypeALU64>, Enc_6c9440 {
4651 let Inst{20-16} = 0b00000;
4652 let Inst{31-22} = 0b1101011000;
4653 let hasNewValue = 1;
4654 let opNewValue = 0;
4655 let prefersSlot3 = 1;
4656 }
4657 def F2_sfinvsqrta : HInst<
4658 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4659 (ins IntRegs:$Rs32),
4660 "$Rd32,$Pe4 = sfinvsqrta($Rs32)",
4661 tc_b8bffe55, TypeS_2op>, Enc_890909 {
4662 let Inst{13-7} = 0b0000000;
4663 let Inst{31-21} = 0b10001011111;
4664 let hasNewValue = 1;
4665 let opNewValue = 0;
4666 let isFP = 1;
4667 let isPredicateLate = 1;
4668 }
4669 def F2_sfmax : HInst<
4670 (outs IntRegs:$Rd32),
4671 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4672 "$Rd32 = sfmax($Rs32,$Rt32)",
4673 tc_88b4f13d, TypeM>, Enc_5ab2be {
4674 let Inst{7-5} = 0b000;
4675 let Inst{13-13} = 0b0;
4676 let Inst{31-21} = 0b11101011100;
4677 let hasNewValue = 1;
4678 let opNewValue = 0;
4679 let isFP = 1;
4680 let prefersSlot3 = 1;
4681 let Uses = [USR];
4682 }
4683 def F2_sfmin : HInst<
4684 (outs IntRegs:$Rd32),
4685 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4686 "$Rd32 = sfmin($Rs32,$Rt32)",
4687 tc_88b4f13d, TypeM>, Enc_5ab2be {
4688 let Inst{7-5} = 0b001;
4689 let Inst{13-13} = 0b0;
4690 let Inst{31-21} = 0b11101011100;
4691 let hasNewValue = 1;
4692 let opNewValue = 0;
4693 let isFP = 1;
4694 let prefersSlot3 = 1;
4695 let Uses = [USR];
4696 }
4697 def F2_sfmpy : HInst<
4698 (outs IntRegs:$Rd32),
4699 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4700 "$Rd32 = sfmpy($Rs32,$Rt32)",
4701 tc_3b470976, TypeM>, Enc_5ab2be {
4702 let Inst{7-5} = 0b000;
4703 let Inst{13-13} = 0b0;
4704 let Inst{31-21} = 0b11101011010;
4705 let hasNewValue = 1;
4706 let opNewValue = 0;
4707 let isFP = 1;
4708 let Uses = [USR];
4709 let isCommutable = 1;
4710 }
4711 def F2_sfrecipa : HInst<
4712 (outs IntRegs:$Rd32, PredRegs:$Pe4),
4713 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4714 "$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)",
4715 tc_2ff964b4, TypeM>, Enc_a94f3b {
4716 let Inst{7-7} = 0b1;
4717 let Inst{13-13} = 0b0;
4718 let Inst{31-21} = 0b11101011111;
4719 let hasNewValue = 1;
4720 let opNewValue = 0;
4721 let isFP = 1;
4722 let isPredicateLate = 1;
4723 }
4724 def F2_sfsub : HInst<
4725 (outs IntRegs:$Rd32),
4726 (ins IntRegs:$Rs32, IntRegs:$Rt32),
4727 "$Rd32 = sfsub($Rs32,$Rt32)",
4728 tc_3b470976, TypeM>, Enc_5ab2be {
4729 let Inst{7-5} = 0b001;
4730 let Inst{13-13} = 0b0;
4731 let Inst{31-21} = 0b11101011000;
4732 let hasNewValue = 1;
4733 let opNewValue = 0;
4734 let isFP = 1;
4735 let Uses = [USR];
4736 }
4737 def G4_tfrgcpp : HInst<
4738 (outs DoubleRegs:$Rdd32),
4739 (ins GuestRegs64:$Gss32),
4740 "$Rdd32 = $Gss32",
4741 tc_0d8f5752, TypeCR>, Enc_0aa344 {
4742 let Inst{13-5} = 0b000000000;
4743 let Inst{31-21} = 0b01101000001;
4744 }
4745 def G4_tfrgcrr : HInst<
4746 (outs IntRegs:$Rd32),
4747 (ins GuestRegs:$Gs32),
4748 "$Rd32 = $Gs32",
4749 tc_0d8f5752, TypeCR>, Enc_44271f {
4750 let Inst{13-5} = 0b000000000;
4751 let Inst{31-21} = 0b01101010001;
4752 let hasNewValue = 1;
4753 let opNewValue = 0;
4754 }
4755 def G4_tfrgpcp : HInst<
4756 (outs GuestRegs64:$Gdd32),
4757 (ins DoubleRegs:$Rss32),
4758 "$Gdd32 = $Rss32",
4759 tc_bcf98408, TypeCR>, Enc_ed5027 {
4760 let Inst{13-5} = 0b000000000;
4761 let Inst{31-21} = 0b01100011000;
4762 let hasNewValue = 1;
4763 let opNewValue = 0;
4764 }
4765 def G4_tfrgrcr : HInst<
4766 (outs GuestRegs:$Gd32),
4767 (ins IntRegs:$Rs32),
4768 "$Gd32 = $Rs32",
4769 tc_bcf98408, TypeCR>, Enc_621fba {
4770 let Inst{13-5} = 0b000000000;
4771 let Inst{31-21} = 0b01100010000;
4772 let hasNewValue = 1;
4773 let opNewValue = 0;
4774 }
4775 def J2_call : HInst<
4776 (outs),
4777 (ins a30_2Imm:$Ii),
4778 "call $Ii",
4779 tc_4ae7b58b, TypeJ>, Enc_81ac1d, PredRel {
4780 let Inst{0-0} = 0b0;
4781 let Inst{31-25} = 0b0101101;
4782 let isCall = 1;
4783 let prefersSlot3 = 1;
4784 let cofRelax2 = 1;
4785 let cofMax1 = 1;
4786 let Uses = [R29];
4787 let Defs = [PC, R31];
4788 let BaseOpcode = "J2_call";
4789 let isPredicable = 1;
4790 let hasSideEffects = 1;
4791 let isExtendable = 1;
4792 let opExtendable = 0;
4793 let isExtentSigned = 1;
4794 let opExtentBits = 24;
4795 let opExtentAlign = 2;
4796 }
4797 def J2_callf : HInst<
4798 (outs),
4799 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4800 "if (!$Pu4) call $Ii",
4801 tc_1d81e60e, TypeJ>, Enc_daea09, PredRel {
4802 let Inst{0-0} = 0b0;
4803 let Inst{12-10} = 0b000;
4804 let Inst{21-21} = 0b1;
4805 let Inst{31-24} = 0b01011101;
4806 let isPredicated = 1;
4807 let isPredicatedFalse = 1;
4808 let isCall = 1;
4809 let prefersSlot3 = 1;
4810 let cofRelax1 = 1;
4811 let cofRelax2 = 1;
4812 let cofMax1 = 1;
4813 let Uses = [R29];
4814 let Defs = [PC, R31];
4815 let BaseOpcode = "J2_call";
4816 let hasSideEffects = 1;
4817 let isTaken = Inst{12};
4818 let isExtendable = 1;
4819 let opExtendable = 1;
4820 let isExtentSigned = 1;
4821 let opExtentBits = 17;
4822 let opExtentAlign = 2;
4823 }
4824 def J2_callr : HInst<
4825 (outs),
4826 (ins IntRegs:$Rs32),
4827 "callr $Rs32",
4828 tc_3bd75825, TypeJ>, Enc_ecbcc8 {
4829 let Inst{13-0} = 0b00000000000000;
4830 let Inst{31-21} = 0b01010000101;
4831 let isCall = 1;
4832 let prefersSlot3 = 1;
4833 let cofMax1 = 1;
4834 let Uses = [R29];
4835 let Defs = [PC, R31];
4836 let hasSideEffects = 1;
4837 }
4838 def J2_callrf : HInst<
4839 (outs),
4840 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4841 "if (!$Pu4) callr $Rs32",
4842 tc_1ad90acd, TypeJ>, Enc_88d4d9 {
4843 let Inst{7-0} = 0b00000000;
4844 let Inst{13-10} = 0b0000;
4845 let Inst{31-21} = 0b01010001001;
4846 let isPredicated = 1;
4847 let isPredicatedFalse = 1;
4848 let isCall = 1;
4849 let prefersSlot3 = 1;
4850 let cofMax1 = 1;
4851 let Uses = [R29];
4852 let Defs = [PC, R31];
4853 let hasSideEffects = 1;
4854 let isTaken = Inst{12};
4855 }
4856 def J2_callrt : HInst<
4857 (outs),
4858 (ins PredRegs:$Pu4, IntRegs:$Rs32),
4859 "if ($Pu4) callr $Rs32",
4860 tc_1ad90acd, TypeJ>, Enc_88d4d9 {
4861 let Inst{7-0} = 0b00000000;
4862 let Inst{13-10} = 0b0000;
4863 let Inst{31-21} = 0b01010001000;
4864 let isPredicated = 1;
4865 let isCall = 1;
4866 let prefersSlot3 = 1;
4867 let cofMax1 = 1;
4868 let Uses = [R29];
4869 let Defs = [PC, R31];
4870 let hasSideEffects = 1;
4871 let isTaken = Inst{12};
4872 }
4873 def J2_callt : HInst<
4874 (outs),
4875 (ins PredRegs:$Pu4, a30_2Imm:$Ii),
4876 "if ($Pu4) call $Ii",
4877 tc_1d81e60e, TypeJ>, Enc_daea09, PredRel {
4878 let Inst{0-0} = 0b0;
4879 let Inst{12-10} = 0b000;
4880 let Inst{21-21} = 0b0;
4881 let Inst{31-24} = 0b01011101;
4882 let isPredicated = 1;
4883 let isCall = 1;
4884 let prefersSlot3 = 1;
4885 let cofRelax1 = 1;
4886 let cofRelax2 = 1;
4887 let cofMax1 = 1;
4888 let Uses = [R29];
4889 let Defs = [PC, R31];
4890 let BaseOpcode = "J2_call";
4891 let hasSideEffects = 1;
4892 let isTaken = Inst{12};
4893 let isExtendable = 1;
4894 let opExtendable = 1;
4895 let isExtentSigned = 1;
4896 let opExtentBits = 17;
4897 let opExtentAlign = 2;
4898 }
4899 def J2_endloop0 : HInst<
4900 (outs),
4901 (ins),
4902 "endloop0",
4903 tc_1b6f7cec, TypeJ> {
4904 let Uses = [LC0, SA0];
4905 let Defs = [LC0, P3, PC, USR];
4906 let isBranch = 1;
4907 let isTerminator = 1;
4908 let isPseudo = 1;
4909 }
4910 def J2_endloop01 : HInst<
4911 (outs),
4912 (ins),
4913 "endloop01",
4914 tc_1b6f7cec, TypeJ> {
4915 let Uses = [LC0, LC1, SA0, SA1];
4916 let Defs = [LC0, LC1, P3, PC, USR];
4917 let isPseudo = 1;
4918 }
4919 def J2_endloop1 : HInst<
4920 (outs),
4921 (ins),
4922 "endloop1",
4923 tc_1b6f7cec, TypeJ> {
4924 let Uses = [LC1, SA1];
4925 let Defs = [LC1, PC];
4926 let isBranch = 1;
4927 let isTerminator = 1;
4928 let isPseudo = 1;
4929 }
4930 def J2_jump : HInst<
4931 (outs),
4932 (ins b30_2Imm:$Ii),
4933 "jump $Ii",
4934 tc_ae53734a, TypeJ>, Enc_81ac1d, PredNewRel {
4935 let Inst{0-0} = 0b0;
4936 let Inst{31-25} = 0b0101100;
4937 let isTerminator = 1;
4938 let isBranch = 1;
4939 let cofRelax2 = 1;
4940 let cofMax1 = 1;
4941 let Defs = [PC];
4942 let InputType = "imm";
4943 let BaseOpcode = "J2_jump";
4944 let isBarrier = 1;
4945 let isPredicable = 1;
4946 let isExtendable = 1;
4947 let opExtendable = 0;
4948 let isExtentSigned = 1;
4949 let opExtentBits = 24;
4950 let opExtentAlign = 2;
4951 }
4952 def J2_jumpf : HInst<
4953 (outs),
4954 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4955 "if (!$Pu4) jump:nt $Ii",
4956 tc_db2bce9c, TypeJ>, Enc_daea09, PredNewRel {
4957 let Inst{0-0} = 0b0;
4958 let Inst{12-10} = 0b000;
4959 let Inst{21-21} = 0b1;
4960 let Inst{31-24} = 0b01011100;
4961 let isPredicated = 1;
4962 let isPredicatedFalse = 1;
4963 let isTerminator = 1;
4964 let isBranch = 1;
4965 let cofRelax1 = 1;
4966 let cofRelax2 = 1;
4967 let cofMax1 = 1;
4968 let Defs = [PC];
4969 let InputType = "imm";
4970 let BaseOpcode = "J2_jump";
4971 let isTaken = Inst{12};
4972 let isExtendable = 1;
4973 let opExtendable = 1;
4974 let isExtentSigned = 1;
4975 let opExtentBits = 17;
4976 let opExtentAlign = 2;
4977 }
4978 def J2_jumpf_nopred_map : HInst<
4979 (outs),
4980 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
4981 "if (!$Pu4) jump $Ii",
4982 tc_db2bce9c, TypeMAPPING>, Requires<[HasV60]> {
4983 let isPseudo = 1;
4984 let isCodeGenOnly = 1;
4985 }
4986 def J2_jumpfnew : HInst<
4987 (outs),
4988 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
4989 "if (!$Pu4.new) jump:nt $Ii",
4990 tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
4991 let Inst{0-0} = 0b0;
4992 let Inst{12-10} = 0b010;
4993 let Inst{21-21} = 0b1;
4994 let Inst{31-24} = 0b01011100;
4995 let isPredicated = 1;
4996 let isPredicatedFalse = 1;
4997 let isTerminator = 1;
4998 let isBranch = 1;
4999 let isPredicatedNew = 1;
5000 let cofRelax1 = 1;
5001 let cofRelax2 = 1;
5002 let cofMax1 = 1;
5003 let Defs = [PC];
5004 let InputType = "imm";
5005 let BaseOpcode = "J2_jump";
5006 let isTaken = Inst{12};
5007 let isExtendable = 1;
5008 let opExtendable = 1;
5009 let isExtentSigned = 1;
5010 let opExtentBits = 17;
5011 let opExtentAlign = 2;
5012 }
5013 def J2_jumpfnewpt : HInst<
5014 (outs),
5015 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5016 "if (!$Pu4.new) jump:t $Ii",
5017 tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5018 let Inst{0-0} = 0b0;
5019 let Inst{12-10} = 0b110;
5020 let Inst{21-21} = 0b1;
5021 let Inst{31-24} = 0b01011100;
5022 let isPredicated = 1;
5023 let isPredicatedFalse = 1;
5024 let isTerminator = 1;
5025 let isBranch = 1;
5026 let isPredicatedNew = 1;
5027 let cofRelax1 = 1;
5028 let cofRelax2 = 1;
5029 let cofMax1 = 1;
5030 let Defs = [PC];
5031 let InputType = "imm";
5032 let BaseOpcode = "J2_jump";
5033 let isTaken = Inst{12};
5034 let isExtendable = 1;
5035 let opExtendable = 1;
5036 let isExtentSigned = 1;
5037 let opExtentBits = 17;
5038 let opExtentAlign = 2;
5039 }
5040 def J2_jumpfpt : HInst<
5041 (outs),
5042 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5043 "if (!$Pu4) jump:t $Ii",
5044 tc_cd374165, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5045 let Inst{0-0} = 0b0;
5046 let Inst{12-10} = 0b100;
5047 let Inst{21-21} = 0b1;
5048 let Inst{31-24} = 0b01011100;
5049 let isPredicated = 1;
5050 let isPredicatedFalse = 1;
5051 let isTerminator = 1;
5052 let isBranch = 1;
5053 let cofRelax1 = 1;
5054 let cofRelax2 = 1;
5055 let cofMax1 = 1;
5056 let Defs = [PC];
5057 let InputType = "imm";
5058 let BaseOpcode = "J2_jump";
5059 let isTaken = Inst{12};
5060 let isExtendable = 1;
5061 let opExtendable = 1;
5062 let isExtentSigned = 1;
5063 let opExtentBits = 17;
5064 let opExtentAlign = 2;
5065 }
5066 def J2_jumpr : HInst<
5067 (outs),
5068 (ins IntRegs:$Rs32),
5069 "jumpr $Rs32",
5070 tc_d5b7b0c1, TypeJ>, Enc_ecbcc8, PredNewRel {
5071 let Inst{13-0} = 0b00000000000000;
5072 let Inst{31-21} = 0b01010010100;
5073 let isTerminator = 1;
5074 let isIndirectBranch = 1;
5075 let isBranch = 1;
5076 let cofMax1 = 1;
5077 let Defs = [PC];
5078 let InputType = "reg";
5079 let BaseOpcode = "J2_jumpr";
5080 let isBarrier = 1;
5081 let isPredicable = 1;
5082 }
5083 def J2_jumprf : HInst<
5084 (outs),
5085 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5086 "if (!$Pu4) jumpr:nt $Rs32",
5087 tc_85c9c08f, TypeJ>, Enc_88d4d9, PredNewRel {
5088 let Inst{7-0} = 0b00000000;
5089 let Inst{13-10} = 0b0000;
5090 let Inst{31-21} = 0b01010011011;
5091 let isPredicated = 1;
5092 let isPredicatedFalse = 1;
5093 let isTerminator = 1;
5094 let isIndirectBranch = 1;
5095 let isBranch = 1;
5096 let cofMax1 = 1;
5097 let Defs = [PC];
5098 let InputType = "reg";
5099 let BaseOpcode = "J2_jumpr";
5100 let isTaken = Inst{12};
5101 }
5102 def J2_jumprf_nopred_map : HInst<
5103 (outs),
5104 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5105 "if (!$Pu4) jumpr $Rs32",
5106 tc_85c9c08f, TypeMAPPING>, Requires<[HasV60]> {
5107 let isPseudo = 1;
5108 let isCodeGenOnly = 1;
5109 }
5110 def J2_jumprfnew : HInst<
5111 (outs),
5112 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5113 "if (!$Pu4.new) jumpr:nt $Rs32",
5114 tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5115 let Inst{7-0} = 0b00000000;
5116 let Inst{13-10} = 0b0010;
5117 let Inst{31-21} = 0b01010011011;
5118 let isPredicated = 1;
5119 let isPredicatedFalse = 1;
5120 let isTerminator = 1;
5121 let isIndirectBranch = 1;
5122 let isBranch = 1;
5123 let isPredicatedNew = 1;
5124 let cofMax1 = 1;
5125 let Defs = [PC];
5126 let InputType = "reg";
5127 let BaseOpcode = "J2_jumpr";
5128 let isTaken = Inst{12};
5129 }
5130 def J2_jumprfnewpt : HInst<
5131 (outs),
5132 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5133 "if (!$Pu4.new) jumpr:t $Rs32",
5134 tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5135 let Inst{7-0} = 0b00000000;
5136 let Inst{13-10} = 0b0110;
5137 let Inst{31-21} = 0b01010011011;
5138 let isPredicated = 1;
5139 let isPredicatedFalse = 1;
5140 let isTerminator = 1;
5141 let isIndirectBranch = 1;
5142 let isBranch = 1;
5143 let isPredicatedNew = 1;
5144 let cofMax1 = 1;
5145 let Defs = [PC];
5146 let InputType = "reg";
5147 let BaseOpcode = "J2_jumpr";
5148 let isTaken = Inst{12};
5149 }
5150 def J2_jumprfpt : HInst<
5151 (outs),
5152 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5153 "if (!$Pu4) jumpr:t $Rs32",
5154 tc_e78647bd, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5155 let Inst{7-0} = 0b00000000;
5156 let Inst{13-10} = 0b0100;
5157 let Inst{31-21} = 0b01010011011;
5158 let isPredicated = 1;
5159 let isPredicatedFalse = 1;
5160 let isTerminator = 1;
5161 let isIndirectBranch = 1;
5162 let isBranch = 1;
5163 let cofMax1 = 1;
5164 let Defs = [PC];
5165 let InputType = "reg";
5166 let BaseOpcode = "J2_jumpr";
5167 let isTaken = Inst{12};
5168 }
5169 def J2_jumprgtez : HInst<
5170 (outs),
5171 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5172 "if ($Rs32>=#0) jump:nt $Ii",
5173 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5174 let Inst{0-0} = 0b0;
5175 let Inst{12-12} = 0b0;
5176 let Inst{31-22} = 0b0110000101;
5177 let isPredicated = 1;
5178 let isTerminator = 1;
5179 let isBranch = 1;
5180 let isPredicatedNew = 1;
5181 let cofRelax1 = 1;
5182 let cofRelax2 = 1;
5183 let cofMax1 = 1;
5184 let Defs = [PC];
5185 let isTaken = Inst{12};
5186 }
5187 def J2_jumprgtezpt : HInst<
5188 (outs),
5189 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5190 "if ($Rs32>=#0) jump:t $Ii",
5191 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5192 let Inst{0-0} = 0b0;
5193 let Inst{12-12} = 0b1;
5194 let Inst{31-22} = 0b0110000101;
5195 let isPredicated = 1;
5196 let isTerminator = 1;
5197 let isBranch = 1;
5198 let isPredicatedNew = 1;
5199 let cofRelax1 = 1;
5200 let cofRelax2 = 1;
5201 let cofMax1 = 1;
5202 let Defs = [PC];
5203 let isTaken = Inst{12};
5204 }
5205 def J2_jumprltez : HInst<
5206 (outs),
5207 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5208 "if ($Rs32<=#0) jump:nt $Ii",
5209 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5210 let Inst{0-0} = 0b0;
5211 let Inst{12-12} = 0b0;
5212 let Inst{31-22} = 0b0110000111;
5213 let isPredicated = 1;
5214 let isTerminator = 1;
5215 let isBranch = 1;
5216 let isPredicatedNew = 1;
5217 let cofRelax1 = 1;
5218 let cofRelax2 = 1;
5219 let cofMax1 = 1;
5220 let Defs = [PC];
5221 let isTaken = Inst{12};
5222 }
5223 def J2_jumprltezpt : HInst<
5224 (outs),
5225 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5226 "if ($Rs32<=#0) jump:t $Ii",
5227 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5228 let Inst{0-0} = 0b0;
5229 let Inst{12-12} = 0b1;
5230 let Inst{31-22} = 0b0110000111;
5231 let isPredicated = 1;
5232 let isTerminator = 1;
5233 let isBranch = 1;
5234 let isPredicatedNew = 1;
5235 let cofRelax1 = 1;
5236 let cofRelax2 = 1;
5237 let cofMax1 = 1;
5238 let Defs = [PC];
5239 let isTaken = Inst{12};
5240 }
5241 def J2_jumprnz : HInst<
5242 (outs),
5243 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5244 "if ($Rs32==#0) jump:nt $Ii",
5245 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5246 let Inst{0-0} = 0b0;
5247 let Inst{12-12} = 0b0;
5248 let Inst{31-22} = 0b0110000110;
5249 let isPredicated = 1;
5250 let isTerminator = 1;
5251 let isBranch = 1;
5252 let isPredicatedNew = 1;
5253 let cofRelax1 = 1;
5254 let cofRelax2 = 1;
5255 let cofMax1 = 1;
5256 let Defs = [PC];
5257 let isTaken = Inst{12};
5258 }
5259 def J2_jumprnzpt : HInst<
5260 (outs),
5261 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5262 "if ($Rs32==#0) jump:t $Ii",
5263 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5264 let Inst{0-0} = 0b0;
5265 let Inst{12-12} = 0b1;
5266 let Inst{31-22} = 0b0110000110;
5267 let isPredicated = 1;
5268 let isTerminator = 1;
5269 let isBranch = 1;
5270 let isPredicatedNew = 1;
5271 let cofRelax1 = 1;
5272 let cofRelax2 = 1;
5273 let cofMax1 = 1;
5274 let Defs = [PC];
5275 let isTaken = Inst{12};
5276 }
5277 def J2_jumprt : HInst<
5278 (outs),
5279 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5280 "if ($Pu4) jumpr:nt $Rs32",
5281 tc_85c9c08f, TypeJ>, Enc_88d4d9, PredNewRel {
5282 let Inst{7-0} = 0b00000000;
5283 let Inst{13-10} = 0b0000;
5284 let Inst{31-21} = 0b01010011010;
5285 let isPredicated = 1;
5286 let isTerminator = 1;
5287 let isIndirectBranch = 1;
5288 let isBranch = 1;
5289 let cofMax1 = 1;
5290 let Defs = [PC];
5291 let InputType = "reg";
5292 let BaseOpcode = "J2_jumpr";
5293 let isTaken = Inst{12};
5294 }
5295 def J2_jumprt_nopred_map : HInst<
5296 (outs),
5297 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5298 "if ($Pu4) jumpr $Rs32",
5299 tc_85c9c08f, TypeMAPPING>, Requires<[HasV60]> {
5300 let isPseudo = 1;
5301 let isCodeGenOnly = 1;
5302 }
5303 def J2_jumprtnew : HInst<
5304 (outs),
5305 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5306 "if ($Pu4.new) jumpr:nt $Rs32",
5307 tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5308 let Inst{7-0} = 0b00000000;
5309 let Inst{13-10} = 0b0010;
5310 let Inst{31-21} = 0b01010011010;
5311 let isPredicated = 1;
5312 let isTerminator = 1;
5313 let isIndirectBranch = 1;
5314 let isBranch = 1;
5315 let isPredicatedNew = 1;
5316 let cofMax1 = 1;
5317 let Defs = [PC];
5318 let InputType = "reg";
5319 let BaseOpcode = "J2_jumpr";
5320 let isTaken = Inst{12};
5321 }
5322 def J2_jumprtnewpt : HInst<
5323 (outs),
5324 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5325 "if ($Pu4.new) jumpr:t $Rs32",
5326 tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5327 let Inst{7-0} = 0b00000000;
5328 let Inst{13-10} = 0b0110;
5329 let Inst{31-21} = 0b01010011010;
5330 let isPredicated = 1;
5331 let isTerminator = 1;
5332 let isIndirectBranch = 1;
5333 let isBranch = 1;
5334 let isPredicatedNew = 1;
5335 let cofMax1 = 1;
5336 let Defs = [PC];
5337 let InputType = "reg";
5338 let BaseOpcode = "J2_jumpr";
5339 let isTaken = Inst{12};
5340 }
5341 def J2_jumprtpt : HInst<
5342 (outs),
5343 (ins PredRegs:$Pu4, IntRegs:$Rs32),
5344 "if ($Pu4) jumpr:t $Rs32",
5345 tc_e78647bd, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5346 let Inst{7-0} = 0b00000000;
5347 let Inst{13-10} = 0b0100;
5348 let Inst{31-21} = 0b01010011010;
5349 let isPredicated = 1;
5350 let isTerminator = 1;
5351 let isIndirectBranch = 1;
5352 let isBranch = 1;
5353 let cofMax1 = 1;
5354 let Defs = [PC];
5355 let InputType = "reg";
5356 let BaseOpcode = "J2_jumpr";
5357 let isTaken = Inst{12};
5358 }
5359 def J2_jumprz : HInst<
5360 (outs),
5361 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5362 "if ($Rs32!=#0) jump:nt $Ii",
5363 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5364 let Inst{0-0} = 0b0;
5365 let Inst{12-12} = 0b0;
5366 let Inst{31-22} = 0b0110000100;
5367 let isPredicated = 1;
5368 let isTerminator = 1;
5369 let isBranch = 1;
5370 let isPredicatedNew = 1;
5371 let cofRelax1 = 1;
5372 let cofRelax2 = 1;
5373 let cofMax1 = 1;
5374 let Defs = [PC];
5375 let isTaken = Inst{12};
5376 }
5377 def J2_jumprzpt : HInst<
5378 (outs),
5379 (ins IntRegs:$Rs32, b13_2Imm:$Ii),
5380 "if ($Rs32!=#0) jump:t $Ii",
5381 tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5382 let Inst{0-0} = 0b0;
5383 let Inst{12-12} = 0b1;
5384 let Inst{31-22} = 0b0110000100;
5385 let isPredicated = 1;
5386 let isTerminator = 1;
5387 let isBranch = 1;
5388 let isPredicatedNew = 1;
5389 let cofRelax1 = 1;
5390 let cofRelax2 = 1;
5391 let cofMax1 = 1;
5392 let Defs = [PC];
5393 let isTaken = Inst{12};
5394 }
5395 def J2_jumpt : HInst<
5396 (outs),
5397 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5398 "if ($Pu4) jump:nt $Ii",
5399 tc_db2bce9c, TypeJ>, Enc_daea09, PredNewRel {
5400 let Inst{0-0} = 0b0;
5401 let Inst{12-10} = 0b000;
5402 let Inst{21-21} = 0b0;
5403 let Inst{31-24} = 0b01011100;
5404 let isPredicated = 1;
5405 let isTerminator = 1;
5406 let isBranch = 1;
5407 let cofRelax1 = 1;
5408 let cofRelax2 = 1;
5409 let cofMax1 = 1;
5410 let Defs = [PC];
5411 let InputType = "imm";
5412 let BaseOpcode = "J2_jump";
5413 let isTaken = Inst{12};
5414 let isExtendable = 1;
5415 let opExtendable = 1;
5416 let isExtentSigned = 1;
5417 let opExtentBits = 17;
5418 let opExtentAlign = 2;
5419 }
5420 def J2_jumpt_nopred_map : HInst<
5421 (outs),
5422 (ins PredRegs:$Pu4, b15_2Imm:$Ii),
5423 "if ($Pu4) jump $Ii",
5424 tc_db2bce9c, TypeMAPPING>, Requires<[HasV60]> {
5425 let isPseudo = 1;
5426 let isCodeGenOnly = 1;
5427 }
5428 def J2_jumptnew : HInst<
5429 (outs),
5430 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5431 "if ($Pu4.new) jump:nt $Ii",
5432 tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5433 let Inst{0-0} = 0b0;
5434 let Inst{12-10} = 0b010;
5435 let Inst{21-21} = 0b0;
5436 let Inst{31-24} = 0b01011100;
5437 let isPredicated = 1;
5438 let isTerminator = 1;
5439 let isBranch = 1;
5440 let isPredicatedNew = 1;
5441 let cofRelax1 = 1;
5442 let cofRelax2 = 1;
5443 let cofMax1 = 1;
5444 let Defs = [PC];
5445 let InputType = "imm";
5446 let BaseOpcode = "J2_jump";
5447 let isTaken = Inst{12};
5448 let isExtendable = 1;
5449 let opExtendable = 1;
5450 let isExtentSigned = 1;
5451 let opExtentBits = 17;
5452 let opExtentAlign = 2;
5453 }
5454 def J2_jumptnewpt : HInst<
5455 (outs),
5456 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5457 "if ($Pu4.new) jump:t $Ii",
5458 tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5459 let Inst{0-0} = 0b0;
5460 let Inst{12-10} = 0b110;
5461 let Inst{21-21} = 0b0;
5462 let Inst{31-24} = 0b01011100;
5463 let isPredicated = 1;
5464 let isTerminator = 1;
5465 let isBranch = 1;
5466 let isPredicatedNew = 1;
5467 let cofRelax1 = 1;
5468 let cofRelax2 = 1;
5469 let cofMax1 = 1;
5470 let Defs = [PC];
5471 let InputType = "imm";
5472 let BaseOpcode = "J2_jump";
5473 let isTaken = Inst{12};
5474 let isExtendable = 1;
5475 let opExtendable = 1;
5476 let isExtentSigned = 1;
5477 let opExtentBits = 17;
5478 let opExtentAlign = 2;
5479 }
5480 def J2_jumptpt : HInst<
5481 (outs),
5482 (ins PredRegs:$Pu4, b30_2Imm:$Ii),
5483 "if ($Pu4) jump:t $Ii",
5484 tc_cd374165, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5485 let Inst{0-0} = 0b0;
5486 let Inst{12-10} = 0b100;
5487 let Inst{21-21} = 0b0;
5488 let Inst{31-24} = 0b01011100;
5489 let isPredicated = 1;
5490 let isTerminator = 1;
5491 let isBranch = 1;
5492 let cofRelax1 = 1;
5493 let cofRelax2 = 1;
5494 let cofMax1 = 1;
5495 let Defs = [PC];
5496 let InputType = "imm";
5497 let BaseOpcode = "J2_jump";
5498 let isTaken = Inst{12};
5499 let isExtendable = 1;
5500 let opExtendable = 1;
5501 let isExtentSigned = 1;
5502 let opExtentBits = 17;
5503 let opExtentAlign = 2;
5504 }
5505 def J2_loop0i : HInst<
5506 (outs),
5507 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5508 "loop0($Ii,#$II)",
5509 tc_a9d88b22, TypeCR>, Enc_4dc228 {
5510 let Inst{2-2} = 0b0;
5511 let Inst{13-13} = 0b0;
5512 let Inst{31-21} = 0b01101001000;
5513 let cofRelax1 = 1;
5514 let cofRelax2 = 1;
5515 let Defs = [LC0, SA0, USR];
5516 let isExtendable = 1;
5517 let opExtendable = 0;
5518 let isExtentSigned = 1;
5519 let opExtentBits = 9;
5520 let opExtentAlign = 2;
5521 }
5522 def J2_loop0r : HInst<
5523 (outs),
5524 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5525 "loop0($Ii,$Rs32)",
5526 tc_df3319ed, TypeCR>, Enc_864a5a {
5527 let Inst{2-0} = 0b000;
5528 let Inst{7-5} = 0b000;
5529 let Inst{13-13} = 0b0;
5530 let Inst{31-21} = 0b01100000000;
5531 let cofRelax1 = 1;
5532 let cofRelax2 = 1;
5533 let Defs = [LC0, SA0, USR];
5534 let isExtendable = 1;
5535 let opExtendable = 0;
5536 let isExtentSigned = 1;
5537 let opExtentBits = 9;
5538 let opExtentAlign = 2;
5539 }
5540 def J2_loop1i : HInst<
5541 (outs),
5542 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5543 "loop1($Ii,#$II)",
5544 tc_a9d88b22, TypeCR>, Enc_4dc228 {
5545 let Inst{2-2} = 0b0;
5546 let Inst{13-13} = 0b0;
5547 let Inst{31-21} = 0b01101001001;
5548 let cofRelax1 = 1;
5549 let cofRelax2 = 1;
5550 let Defs = [LC1, SA1];
5551 let isExtendable = 1;
5552 let opExtendable = 0;
5553 let isExtentSigned = 1;
5554 let opExtentBits = 9;
5555 let opExtentAlign = 2;
5556 }
5557 def J2_loop1r : HInst<
5558 (outs),
5559 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5560 "loop1($Ii,$Rs32)",
5561 tc_df3319ed, TypeCR>, Enc_864a5a {
5562 let Inst{2-0} = 0b000;
5563 let Inst{7-5} = 0b000;
5564 let Inst{13-13} = 0b0;
5565 let Inst{31-21} = 0b01100000001;
5566 let cofRelax1 = 1;
5567 let cofRelax2 = 1;
5568 let Defs = [LC1, SA1];
5569 let isExtendable = 1;
5570 let opExtendable = 0;
5571 let isExtentSigned = 1;
5572 let opExtentBits = 9;
5573 let opExtentAlign = 2;
5574 }
5575 def J2_pause : HInst<
5576 (outs),
5577 (ins u8_0Imm:$Ii),
5578 "pause(#$Ii)",
5579 tc_8d9d0154, TypeJ>, Enc_a51a9a {
5580 let Inst{1-0} = 0b00;
5581 let Inst{7-5} = 0b000;
5582 let Inst{13-13} = 0b0;
5583 let Inst{31-16} = 0b0101010001000000;
5584 let isSolo = 1;
5585 }
5586 def J2_ploop1si : HInst<
5587 (outs),
5588 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5589 "p3 = sp1loop0($Ii,#$II)",
5590 tc_1c4528a2, TypeCR>, Enc_4dc228 {
5591 let Inst{2-2} = 0b0;
5592 let Inst{13-13} = 0b0;
5593 let Inst{31-21} = 0b01101001101;
5594 let isPredicateLate = 1;
5595 let cofRelax1 = 1;
5596 let cofRelax2 = 1;
5597 let Defs = [LC0, P3, SA0, USR];
5598 let isExtendable = 1;
5599 let opExtendable = 0;
5600 let isExtentSigned = 1;
5601 let opExtentBits = 9;
5602 let opExtentAlign = 2;
5603 }
5604 def J2_ploop1sr : HInst<
5605 (outs),
5606 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5607 "p3 = sp1loop0($Ii,$Rs32)",
5608 tc_32779c6f, TypeCR>, Enc_864a5a {
5609 let Inst{2-0} = 0b000;
5610 let Inst{7-5} = 0b000;
5611 let Inst{13-13} = 0b0;
5612 let Inst{31-21} = 0b01100000101;
5613 let isPredicateLate = 1;
5614 let cofRelax1 = 1;
5615 let cofRelax2 = 1;
5616 let Defs = [LC0, P3, SA0, USR];
5617 let isExtendable = 1;
5618 let opExtendable = 0;
5619 let isExtentSigned = 1;
5620 let opExtentBits = 9;
5621 let opExtentAlign = 2;
5622 }
5623 def J2_ploop2si : HInst<
5624 (outs),
5625 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5626 "p3 = sp2loop0($Ii,#$II)",
5627 tc_1c4528a2, TypeCR>, Enc_4dc228 {
5628 let Inst{2-2} = 0b0;
5629 let Inst{13-13} = 0b0;
5630 let Inst{31-21} = 0b01101001110;
5631 let isPredicateLate = 1;
5632 let cofRelax1 = 1;
5633 let cofRelax2 = 1;
5634 let Defs = [LC0, P3, SA0, USR];
5635 let isExtendable = 1;
5636 let opExtendable = 0;
5637 let isExtentSigned = 1;
5638 let opExtentBits = 9;
5639 let opExtentAlign = 2;
5640 }
5641 def J2_ploop2sr : HInst<
5642 (outs),
5643 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5644 "p3 = sp2loop0($Ii,$Rs32)",
5645 tc_32779c6f, TypeCR>, Enc_864a5a {
5646 let Inst{2-0} = 0b000;
5647 let Inst{7-5} = 0b000;
5648 let Inst{13-13} = 0b0;
5649 let Inst{31-21} = 0b01100000110;
5650 let isPredicateLate = 1;
5651 let cofRelax1 = 1;
5652 let cofRelax2 = 1;
5653 let Defs = [LC0, P3, SA0, USR];
5654 let isExtendable = 1;
5655 let opExtendable = 0;
5656 let isExtentSigned = 1;
5657 let opExtentBits = 9;
5658 let opExtentAlign = 2;
5659 }
5660 def J2_ploop3si : HInst<
5661 (outs),
5662 (ins b30_2Imm:$Ii, u10_0Imm:$II),
5663 "p3 = sp3loop0($Ii,#$II)",
5664 tc_1c4528a2, TypeCR>, Enc_4dc228 {
5665 let Inst{2-2} = 0b0;
5666 let Inst{13-13} = 0b0;
5667 let Inst{31-21} = 0b01101001111;
5668 let isPredicateLate = 1;
5669 let cofRelax1 = 1;
5670 let cofRelax2 = 1;
5671 let Defs = [LC0, P3, SA0, USR];
5672 let isExtendable = 1;
5673 let opExtendable = 0;
5674 let isExtentSigned = 1;
5675 let opExtentBits = 9;
5676 let opExtentAlign = 2;
5677 }
5678 def J2_ploop3sr : HInst<
5679 (outs),
5680 (ins b30_2Imm:$Ii, IntRegs:$Rs32),
5681 "p3 = sp3loop0($Ii,$Rs32)",
5682 tc_32779c6f, TypeCR>, Enc_864a5a {
5683 let Inst{2-0} = 0b000;
5684 let Inst{7-5} = 0b000;
5685 let Inst{13-13} = 0b0;
5686 let Inst{31-21} = 0b01100000111;
5687 let isPredicateLate = 1;
5688 let cofRelax1 = 1;
5689 let cofRelax2 = 1;
5690 let Defs = [LC0, P3, SA0, USR];
5691 let isExtendable = 1;
5692 let opExtendable = 0;
5693 let isExtentSigned = 1;
5694 let opExtentBits = 9;
5695 let opExtentAlign = 2;
5696 }
5697 def J2_trap0 : HInst<
5698 (outs),
5699 (ins u8_0Imm:$Ii),
5700 "trap0(#$Ii)",
5701 tc_fc3999b4, TypeJ>, Enc_a51a9a {
5702 let Inst{1-0} = 0b00;
5703 let Inst{7-5} = 0b000;
5704 let Inst{13-13} = 0b0;
5705 let Inst{31-16} = 0b0101010000000000;
5706 let isSolo = 1;
5707 let hasSideEffects = 1;
5708 }
5709 def J2_trap1 : HInst<
5710 (outs IntRegs:$Rx32),
5711 (ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5712 "trap1($Rx32,#$Ii)",
5713 tc_b9e09e03, TypeJ>, Enc_33f8ba {
5714 let Inst{1-0} = 0b00;
5715 let Inst{7-5} = 0b000;
5716 let Inst{13-13} = 0b0;
5717 let Inst{31-21} = 0b01010100100;
5718 let hasNewValue = 1;
5719 let opNewValue = 0;
5720 let isSolo = 1;
5721 let Uses = [GOSP];
5722 let Defs = [GOSP, PC];
5723 let hasSideEffects = 1;
5724 let Constraints = "$Rx32 = $Rx32in";
5725 }
5726 def J2_trap1_noregmap : HInst<
5727 (outs),
5728 (ins u8_0Imm:$Ii),
5729 "trap1(#$Ii)",
5730 tc_b9e09e03, TypeMAPPING> {
5731 let hasSideEffects = 1;
5732 let isPseudo = 1;
5733 let isCodeGenOnly = 1;
5734 }
5735 def J4_cmpeq_f_jumpnv_nt : HInst<
5736 (outs),
5737 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5738 "if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5739 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5740 let Inst{0-0} = 0b0;
5741 let Inst{13-13} = 0b0;
5742 let Inst{19-19} = 0b0;
5743 let Inst{31-22} = 0b0010000001;
5744 let isPredicated = 1;
5745 let isPredicatedFalse = 1;
5746 let isTerminator = 1;
5747 let isBranch = 1;
5748 let isNewValue = 1;
5749 let cofMax1 = 1;
5750 let isRestrictNoSlot1Store = 1;
5751 let Defs = [PC];
5752 let BaseOpcode = "J4_cmpeqr";
5753 let isTaken = Inst{13};
5754 let isExtendable = 1;
5755 let opExtendable = 2;
5756 let isExtentSigned = 1;
5757 let opExtentBits = 11;
5758 let opExtentAlign = 2;
5759 let opNewValue = 0;
5760 }
5761 def J4_cmpeq_f_jumpnv_t : HInst<
5762 (outs),
5763 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5764 "if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5765 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5766 let Inst{0-0} = 0b0;
5767 let Inst{13-13} = 0b1;
5768 let Inst{19-19} = 0b0;
5769 let Inst{31-22} = 0b0010000001;
5770 let isPredicated = 1;
5771 let isPredicatedFalse = 1;
5772 let isTerminator = 1;
5773 let isBranch = 1;
5774 let isNewValue = 1;
5775 let cofMax1 = 1;
5776 let isRestrictNoSlot1Store = 1;
5777 let Defs = [PC];
5778 let BaseOpcode = "J4_cmpeqr";
5779 let isTaken = Inst{13};
5780 let isExtendable = 1;
5781 let opExtendable = 2;
5782 let isExtentSigned = 1;
5783 let opExtentBits = 11;
5784 let opExtentAlign = 2;
5785 let opNewValue = 0;
5786 }
5787 def J4_cmpeq_fp0_jump_nt : HInst<
5788 (outs),
5789 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5790 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5791 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5792 let Inst{0-0} = 0b0;
5793 let Inst{13-12} = 0b00;
5794 let Inst{31-22} = 0b0001010001;
5795 let isPredicated = 1;
5796 let isPredicatedFalse = 1;
5797 let isTerminator = 1;
5798 let isBranch = 1;
5799 let isPredicatedNew = 1;
5800 let cofRelax1 = 1;
5801 let cofRelax2 = 1;
5802 let cofMax1 = 1;
5803 let Uses = [P0];
5804 let Defs = [P0, PC];
5805 let BaseOpcode = "J4_cmpeqp0";
5806 let isTaken = Inst{13};
5807 let isExtendable = 1;
5808 let opExtendable = 2;
5809 let isExtentSigned = 1;
5810 let opExtentBits = 11;
5811 let opExtentAlign = 2;
5812 }
5813 def J4_cmpeq_fp0_jump_t : HInst<
5814 (outs),
5815 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5816 "p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5817 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5818 let Inst{0-0} = 0b0;
5819 let Inst{13-12} = 0b10;
5820 let Inst{31-22} = 0b0001010001;
5821 let isPredicated = 1;
5822 let isPredicatedFalse = 1;
5823 let isTerminator = 1;
5824 let isBranch = 1;
5825 let isPredicatedNew = 1;
5826 let cofRelax1 = 1;
5827 let cofRelax2 = 1;
5828 let cofMax1 = 1;
5829 let Uses = [P0];
5830 let Defs = [P0, PC];
5831 let BaseOpcode = "J4_cmpeqp0";
5832 let isTaken = Inst{13};
5833 let isExtendable = 1;
5834 let opExtendable = 2;
5835 let isExtentSigned = 1;
5836 let opExtentBits = 11;
5837 let opExtentAlign = 2;
5838 }
5839 def J4_cmpeq_fp1_jump_nt : HInst<
5840 (outs),
5841 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5842 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5843 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5844 let Inst{0-0} = 0b0;
5845 let Inst{13-12} = 0b01;
5846 let Inst{31-22} = 0b0001010001;
5847 let isPredicated = 1;
5848 let isPredicatedFalse = 1;
5849 let isTerminator = 1;
5850 let isBranch = 1;
5851 let isPredicatedNew = 1;
5852 let cofRelax1 = 1;
5853 let cofRelax2 = 1;
5854 let cofMax1 = 1;
5855 let Uses = [P1];
5856 let Defs = [P1, PC];
5857 let BaseOpcode = "J4_cmpeqp1";
5858 let isTaken = Inst{13};
5859 let isExtendable = 1;
5860 let opExtendable = 2;
5861 let isExtentSigned = 1;
5862 let opExtentBits = 11;
5863 let opExtentAlign = 2;
5864 }
5865 def J4_cmpeq_fp1_jump_t : HInst<
5866 (outs),
5867 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5868 "p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
5869 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5870 let Inst{0-0} = 0b0;
5871 let Inst{13-12} = 0b11;
5872 let Inst{31-22} = 0b0001010001;
5873 let isPredicated = 1;
5874 let isPredicatedFalse = 1;
5875 let isTerminator = 1;
5876 let isBranch = 1;
5877 let isPredicatedNew = 1;
5878 let cofRelax1 = 1;
5879 let cofRelax2 = 1;
5880 let cofMax1 = 1;
5881 let Uses = [P1];
5882 let Defs = [P1, PC];
5883 let BaseOpcode = "J4_cmpeqp1";
5884 let isTaken = Inst{13};
5885 let isExtendable = 1;
5886 let opExtendable = 2;
5887 let isExtentSigned = 1;
5888 let opExtentBits = 11;
5889 let opExtentAlign = 2;
5890 }
5891 def J4_cmpeq_t_jumpnv_nt : HInst<
5892 (outs),
5893 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5894 "if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5895 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5896 let Inst{0-0} = 0b0;
5897 let Inst{13-13} = 0b0;
5898 let Inst{19-19} = 0b0;
5899 let Inst{31-22} = 0b0010000000;
5900 let isPredicated = 1;
5901 let isTerminator = 1;
5902 let isBranch = 1;
5903 let isNewValue = 1;
5904 let cofMax1 = 1;
5905 let isRestrictNoSlot1Store = 1;
5906 let Defs = [PC];
5907 let BaseOpcode = "J4_cmpeqr";
5908 let isTaken = Inst{13};
5909 let isExtendable = 1;
5910 let opExtendable = 2;
5911 let isExtentSigned = 1;
5912 let opExtentBits = 11;
5913 let opExtentAlign = 2;
5914 let opNewValue = 0;
5915 }
5916 def J4_cmpeq_t_jumpnv_t : HInst<
5917 (outs),
5918 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5919 "if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5920 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5921 let Inst{0-0} = 0b0;
5922 let Inst{13-13} = 0b1;
5923 let Inst{19-19} = 0b0;
5924 let Inst{31-22} = 0b0010000000;
5925 let isPredicated = 1;
5926 let isTerminator = 1;
5927 let isBranch = 1;
5928 let isNewValue = 1;
5929 let cofMax1 = 1;
5930 let isRestrictNoSlot1Store = 1;
5931 let Defs = [PC];
5932 let BaseOpcode = "J4_cmpeqr";
5933 let isTaken = Inst{13};
5934 let isExtendable = 1;
5935 let opExtendable = 2;
5936 let isExtentSigned = 1;
5937 let opExtentBits = 11;
5938 let opExtentAlign = 2;
5939 let opNewValue = 0;
5940 }
5941 def J4_cmpeq_tp0_jump_nt : HInst<
5942 (outs),
5943 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5944 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
5945 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5946 let Inst{0-0} = 0b0;
5947 let Inst{13-12} = 0b00;
5948 let Inst{31-22} = 0b0001010000;
5949 let isPredicated = 1;
5950 let isTerminator = 1;
5951 let isBranch = 1;
5952 let isPredicatedNew = 1;
5953 let cofRelax1 = 1;
5954 let cofRelax2 = 1;
5955 let cofMax1 = 1;
5956 let Uses = [P0];
5957 let Defs = [P0, PC];
5958 let BaseOpcode = "J4_cmpeqp0";
5959 let isTaken = Inst{13};
5960 let isExtendable = 1;
5961 let opExtendable = 2;
5962 let isExtentSigned = 1;
5963 let opExtentBits = 11;
5964 let opExtentAlign = 2;
5965 }
5966 def J4_cmpeq_tp0_jump_t : HInst<
5967 (outs),
5968 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5969 "p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
5970 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5971 let Inst{0-0} = 0b0;
5972 let Inst{13-12} = 0b10;
5973 let Inst{31-22} = 0b0001010000;
5974 let isPredicated = 1;
5975 let isTerminator = 1;
5976 let isBranch = 1;
5977 let isPredicatedNew = 1;
5978 let cofRelax1 = 1;
5979 let cofRelax2 = 1;
5980 let cofMax1 = 1;
5981 let Uses = [P0];
5982 let Defs = [P0, PC];
5983 let BaseOpcode = "J4_cmpeqp0";
5984 let isTaken = Inst{13};
5985 let isExtendable = 1;
5986 let opExtendable = 2;
5987 let isExtentSigned = 1;
5988 let opExtentBits = 11;
5989 let opExtentAlign = 2;
5990 }
5991 def J4_cmpeq_tp1_jump_nt : HInst<
5992 (outs),
5993 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5994 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
5995 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5996 let Inst{0-0} = 0b0;
5997 let Inst{13-12} = 0b01;
5998 let Inst{31-22} = 0b0001010000;
5999 let isPredicated = 1;
6000 let isTerminator = 1;
6001 let isBranch = 1;
6002 let isPredicatedNew = 1;
6003 let cofRelax1 = 1;
6004 let cofRelax2 = 1;
6005 let cofMax1 = 1;
6006 let Uses = [P1];
6007 let Defs = [P1, PC];
6008 let BaseOpcode = "J4_cmpeqp1";
6009 let isTaken = Inst{13};
6010 let isExtendable = 1;
6011 let opExtendable = 2;
6012 let isExtentSigned = 1;
6013 let opExtentBits = 11;
6014 let opExtentAlign = 2;
6015 }
6016 def J4_cmpeq_tp1_jump_t : HInst<
6017 (outs),
6018 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6019 "p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6020 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6021 let Inst{0-0} = 0b0;
6022 let Inst{13-12} = 0b11;
6023 let Inst{31-22} = 0b0001010000;
6024 let isPredicated = 1;
6025 let isTerminator = 1;
6026 let isBranch = 1;
6027 let isPredicatedNew = 1;
6028 let cofRelax1 = 1;
6029 let cofRelax2 = 1;
6030 let cofMax1 = 1;
6031 let Uses = [P1];
6032 let Defs = [P1, PC];
6033 let BaseOpcode = "J4_cmpeqp1";
6034 let isTaken = Inst{13};
6035 let isExtendable = 1;
6036 let opExtendable = 2;
6037 let isExtentSigned = 1;
6038 let opExtentBits = 11;
6039 let opExtentAlign = 2;
6040 }
6041 def J4_cmpeqi_f_jumpnv_nt : HInst<
6042 (outs),
6043 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6044 "if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6045 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6046 let Inst{0-0} = 0b0;
6047 let Inst{13-13} = 0b0;
6048 let Inst{19-19} = 0b0;
6049 let Inst{31-22} = 0b0010010001;
6050 let isPredicated = 1;
6051 let isPredicatedFalse = 1;
6052 let isTerminator = 1;
6053 let isBranch = 1;
6054 let isNewValue = 1;
6055 let cofMax1 = 1;
6056 let isRestrictNoSlot1Store = 1;
6057 let Defs = [PC];
6058 let BaseOpcode = "J4_cmpeqi";
6059 let isTaken = Inst{13};
6060 let isExtendable = 1;
6061 let opExtendable = 2;
6062 let isExtentSigned = 1;
6063 let opExtentBits = 11;
6064 let opExtentAlign = 2;
6065 let opNewValue = 0;
6066 }
6067 def J4_cmpeqi_f_jumpnv_t : HInst<
6068 (outs),
6069 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6070 "if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6071 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6072 let Inst{0-0} = 0b0;
6073 let Inst{13-13} = 0b1;
6074 let Inst{19-19} = 0b0;
6075 let Inst{31-22} = 0b0010010001;
6076 let isPredicated = 1;
6077 let isPredicatedFalse = 1;
6078 let isTerminator = 1;
6079 let isBranch = 1;
6080 let isNewValue = 1;
6081 let cofMax1 = 1;
6082 let isRestrictNoSlot1Store = 1;
6083 let Defs = [PC];
6084 let BaseOpcode = "J4_cmpeqi";
6085 let isTaken = Inst{13};
6086 let isExtendable = 1;
6087 let opExtendable = 2;
6088 let isExtentSigned = 1;
6089 let opExtentBits = 11;
6090 let opExtentAlign = 2;
6091 let opNewValue = 0;
6092 }
6093 def J4_cmpeqi_fp0_jump_nt : HInst<
6094 (outs),
6095 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6096 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6097 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6098 let Inst{0-0} = 0b0;
6099 let Inst{13-13} = 0b0;
6100 let Inst{31-22} = 0b0001000001;
6101 let isPredicated = 1;
6102 let isPredicatedFalse = 1;
6103 let isTerminator = 1;
6104 let isBranch = 1;
6105 let isPredicatedNew = 1;
6106 let cofRelax1 = 1;
6107 let cofRelax2 = 1;
6108 let cofMax1 = 1;
6109 let Uses = [P0];
6110 let Defs = [P0, PC];
6111 let BaseOpcode = "J4_cmpeqip0";
6112 let isTaken = Inst{13};
6113 let isExtendable = 1;
6114 let opExtendable = 2;
6115 let isExtentSigned = 1;
6116 let opExtentBits = 11;
6117 let opExtentAlign = 2;
6118 }
6119 def J4_cmpeqi_fp0_jump_t : HInst<
6120 (outs),
6121 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6122 "p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
6123 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6124 let Inst{0-0} = 0b0;
6125 let Inst{13-13} = 0b1;
6126 let Inst{31-22} = 0b0001000001;
6127 let isPredicated = 1;
6128 let isPredicatedFalse = 1;
6129 let isTerminator = 1;
6130 let isBranch = 1;
6131 let isPredicatedNew = 1;
6132 let cofRelax1 = 1;
6133 let cofRelax2 = 1;
6134 let cofMax1 = 1;
6135 let Uses = [P0];
6136 let Defs = [P0, PC];
6137 let BaseOpcode = "J4_cmpeqip0";
6138 let isTaken = Inst{13};
6139 let isExtendable = 1;
6140 let opExtendable = 2;
6141 let isExtentSigned = 1;
6142 let opExtentBits = 11;
6143 let opExtentAlign = 2;
6144 }
6145 def J4_cmpeqi_fp1_jump_nt : HInst<
6146 (outs),
6147 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6148 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6149 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6150 let Inst{0-0} = 0b0;
6151 let Inst{13-13} = 0b0;
6152 let Inst{31-22} = 0b0001001001;
6153 let isPredicated = 1;
6154 let isPredicatedFalse = 1;
6155 let isTerminator = 1;
6156 let isBranch = 1;
6157 let isPredicatedNew = 1;
6158 let cofRelax1 = 1;
6159 let cofRelax2 = 1;
6160 let cofMax1 = 1;
6161 let Uses = [P1];
6162 let Defs = [P1, PC];
6163 let BaseOpcode = "J4_cmpeqip1";
6164 let isTaken = Inst{13};
6165 let isExtendable = 1;
6166 let opExtendable = 2;
6167 let isExtentSigned = 1;
6168 let opExtentBits = 11;
6169 let opExtentAlign = 2;
6170 }
6171 def J4_cmpeqi_fp1_jump_t : HInst<
6172 (outs),
6173 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6174 "p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
6175 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6176 let Inst{0-0} = 0b0;
6177 let Inst{13-13} = 0b1;
6178 let Inst{31-22} = 0b0001001001;
6179 let isPredicated = 1;
6180 let isPredicatedFalse = 1;
6181 let isTerminator = 1;
6182 let isBranch = 1;
6183 let isPredicatedNew = 1;
6184 let cofRelax1 = 1;
6185 let cofRelax2 = 1;
6186 let cofMax1 = 1;
6187 let Uses = [P1];
6188 let Defs = [P1, PC];
6189 let BaseOpcode = "J4_cmpeqip1";
6190 let isTaken = Inst{13};
6191 let isExtendable = 1;
6192 let opExtendable = 2;
6193 let isExtentSigned = 1;
6194 let opExtentBits = 11;
6195 let opExtentAlign = 2;
6196 }
6197 def J4_cmpeqi_t_jumpnv_nt : HInst<
6198 (outs),
6199 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6200 "if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6201 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6202 let Inst{0-0} = 0b0;
6203 let Inst{13-13} = 0b0;
6204 let Inst{19-19} = 0b0;
6205 let Inst{31-22} = 0b0010010000;
6206 let isPredicated = 1;
6207 let isTerminator = 1;
6208 let isBranch = 1;
6209 let isNewValue = 1;
6210 let cofMax1 = 1;
6211 let isRestrictNoSlot1Store = 1;
6212 let Defs = [PC];
6213 let BaseOpcode = "J4_cmpeqi";
6214 let isTaken = Inst{13};
6215 let isExtendable = 1;
6216 let opExtendable = 2;
6217 let isExtentSigned = 1;
6218 let opExtentBits = 11;
6219 let opExtentAlign = 2;
6220 let opNewValue = 0;
6221 }
6222 def J4_cmpeqi_t_jumpnv_t : HInst<
6223 (outs),
6224 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6225 "if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6226 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6227 let Inst{0-0} = 0b0;
6228 let Inst{13-13} = 0b1;
6229 let Inst{19-19} = 0b0;
6230 let Inst{31-22} = 0b0010010000;
6231 let isPredicated = 1;
6232 let isTerminator = 1;
6233 let isBranch = 1;
6234 let isNewValue = 1;
6235 let cofMax1 = 1;
6236 let isRestrictNoSlot1Store = 1;
6237 let Defs = [PC];
6238 let BaseOpcode = "J4_cmpeqi";
6239 let isTaken = Inst{13};
6240 let isExtendable = 1;
6241 let opExtendable = 2;
6242 let isExtentSigned = 1;
6243 let opExtentBits = 11;
6244 let opExtentAlign = 2;
6245 let opNewValue = 0;
6246 }
6247 def J4_cmpeqi_tp0_jump_nt : HInst<
6248 (outs),
6249 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6250 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6251 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6252 let Inst{0-0} = 0b0;
6253 let Inst{13-13} = 0b0;
6254 let Inst{31-22} = 0b0001000000;
6255 let isPredicated = 1;
6256 let isTerminator = 1;
6257 let isBranch = 1;
6258 let isPredicatedNew = 1;
6259 let cofRelax1 = 1;
6260 let cofRelax2 = 1;
6261 let cofMax1 = 1;
6262 let Uses = [P0];
6263 let Defs = [P0, PC];
6264 let BaseOpcode = "J4_cmpeqip0";
6265 let isTaken = Inst{13};
6266 let isExtendable = 1;
6267 let opExtendable = 2;
6268 let isExtentSigned = 1;
6269 let opExtentBits = 11;
6270 let opExtentAlign = 2;
6271 }
6272 def J4_cmpeqi_tp0_jump_t : HInst<
6273 (outs),
6274 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6275 "p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6276 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6277 let Inst{0-0} = 0b0;
6278 let Inst{13-13} = 0b1;
6279 let Inst{31-22} = 0b0001000000;
6280 let isPredicated = 1;
6281 let isTerminator = 1;
6282 let isBranch = 1;
6283 let isPredicatedNew = 1;
6284 let cofRelax1 = 1;
6285 let cofRelax2 = 1;
6286 let cofMax1 = 1;
6287 let Uses = [P0];
6288 let Defs = [P0, PC];
6289 let BaseOpcode = "J4_cmpeqip0";
6290 let isTaken = Inst{13};
6291 let isExtendable = 1;
6292 let opExtendable = 2;
6293 let isExtentSigned = 1;
6294 let opExtentBits = 11;
6295 let opExtentAlign = 2;
6296 }
6297 def J4_cmpeqi_tp1_jump_nt : HInst<
6298 (outs),
6299 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6300 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6301 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6302 let Inst{0-0} = 0b0;
6303 let Inst{13-13} = 0b0;
6304 let Inst{31-22} = 0b0001001000;
6305 let isPredicated = 1;
6306 let isTerminator = 1;
6307 let isBranch = 1;
6308 let isPredicatedNew = 1;
6309 let cofRelax1 = 1;
6310 let cofRelax2 = 1;
6311 let cofMax1 = 1;
6312 let Uses = [P1];
6313 let Defs = [P1, PC];
6314 let BaseOpcode = "J4_cmpeqip1";
6315 let isTaken = Inst{13};
6316 let isExtendable = 1;
6317 let opExtendable = 2;
6318 let isExtentSigned = 1;
6319 let opExtentBits = 11;
6320 let opExtentAlign = 2;
6321 }
6322 def J4_cmpeqi_tp1_jump_t : HInst<
6323 (outs),
6324 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6325 "p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6326 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6327 let Inst{0-0} = 0b0;
6328 let Inst{13-13} = 0b1;
6329 let Inst{31-22} = 0b0001001000;
6330 let isPredicated = 1;
6331 let isTerminator = 1;
6332 let isBranch = 1;
6333 let isPredicatedNew = 1;
6334 let cofRelax1 = 1;
6335 let cofRelax2 = 1;
6336 let cofMax1 = 1;
6337 let Uses = [P1];
6338 let Defs = [P1, PC];
6339 let BaseOpcode = "J4_cmpeqip1";
6340 let isTaken = Inst{13};
6341 let isExtendable = 1;
6342 let opExtendable = 2;
6343 let isExtentSigned = 1;
6344 let opExtentBits = 11;
6345 let opExtentAlign = 2;
6346 }
6347 def J4_cmpeqn1_f_jumpnv_nt : HInst<
6348 (outs),
6349 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6350 "if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6351 tc_bd8382d1, TypeNCJ>, Enc_e90a15, PredRel {
6352 let Inst{0-0} = 0b0;
6353 let Inst{13-8} = 0b000000;
6354 let Inst{19-19} = 0b0;
6355 let Inst{31-22} = 0b0010011001;
6356 let isPredicated = 1;
6357 let isPredicatedFalse = 1;
6358 let isTerminator = 1;
6359 let isBranch = 1;
6360 let isNewValue = 1;
6361 let cofMax1 = 1;
6362 let isRestrictNoSlot1Store = 1;
6363 let Defs = [PC];
6364 let BaseOpcode = "J4_cmpeqn1r";
6365 let isTaken = Inst{13};
6366 let isExtendable = 1;
6367 let opExtendable = 2;
6368 let isExtentSigned = 1;
6369 let opExtentBits = 11;
6370 let opExtentAlign = 2;
6371 let opNewValue = 0;
6372 }
6373 def J4_cmpeqn1_f_jumpnv_t : HInst<
6374 (outs),
6375 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6376 "if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6377 tc_bd8382d1, TypeNCJ>, Enc_5a18b3, PredRel {
6378 let Inst{0-0} = 0b0;
6379 let Inst{13-8} = 0b100000;
6380 let Inst{19-19} = 0b0;
6381 let Inst{31-22} = 0b0010011001;
6382 let isPredicated = 1;
6383 let isPredicatedFalse = 1;
6384 let isTerminator = 1;
6385 let isBranch = 1;
6386 let isNewValue = 1;
6387 let cofMax1 = 1;
6388 let isRestrictNoSlot1Store = 1;
6389 let Defs = [PC];
6390 let BaseOpcode = "J4_cmpeqn1r";
6391 let isTaken = Inst{13};
6392 let isExtendable = 1;
6393 let opExtendable = 2;
6394 let isExtentSigned = 1;
6395 let opExtentBits = 11;
6396 let opExtentAlign = 2;
6397 let opNewValue = 0;
6398 }
6399 def J4_cmpeqn1_fp0_jump_nt : HInst<
6400 (outs),
6401 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6402 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6403 tc_3d495a39, TypeCJ>, Enc_1de724, PredRel {
6404 let Inst{0-0} = 0b0;
6405 let Inst{13-8} = 0b000000;
6406 let Inst{31-22} = 0b0001000111;
6407 let isPredicated = 1;
6408 let isPredicatedFalse = 1;
6409 let isTerminator = 1;
6410 let isBranch = 1;
6411 let isPredicatedNew = 1;
6412 let cofRelax1 = 1;
6413 let cofRelax2 = 1;
6414 let cofMax1 = 1;
6415 let Uses = [P0];
6416 let Defs = [P0, PC];
6417 let BaseOpcode = "J4_cmpeqn1p0";
6418 let isTaken = Inst{13};
6419 let isExtendable = 1;
6420 let opExtendable = 2;
6421 let isExtentSigned = 1;
6422 let opExtentBits = 11;
6423 let opExtentAlign = 2;
6424 }
6425 def J4_cmpeqn1_fp0_jump_t : HInst<
6426 (outs),
6427 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6428 "p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6429 tc_3d495a39, TypeCJ>, Enc_14640c, PredRel {
6430 let Inst{0-0} = 0b0;
6431 let Inst{13-8} = 0b100000;
6432 let Inst{31-22} = 0b0001000111;
6433 let isPredicated = 1;
6434 let isPredicatedFalse = 1;
6435 let isTerminator = 1;
6436 let isBranch = 1;
6437 let isPredicatedNew = 1;
6438 let cofRelax1 = 1;
6439 let cofRelax2 = 1;
6440 let cofMax1 = 1;
6441 let Uses = [P0];
6442 let Defs = [P0, PC];
6443 let BaseOpcode = "J4_cmpeqn1p0";
6444 let isTaken = Inst{13};
6445 let isExtendable = 1;
6446 let opExtendable = 2;
6447 let isExtentSigned = 1;
6448 let opExtentBits = 11;
6449 let opExtentAlign = 2;
6450 }
6451 def J4_cmpeqn1_fp1_jump_nt : HInst<
6452 (outs),
6453 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6454 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6455 tc_3d495a39, TypeCJ>, Enc_668704, PredRel {
6456 let Inst{0-0} = 0b0;
6457 let Inst{13-8} = 0b000000;
6458 let Inst{31-22} = 0b0001001111;
6459 let isPredicated = 1;
6460 let isPredicatedFalse = 1;
6461 let isTerminator = 1;
6462 let isBranch = 1;
6463 let isPredicatedNew = 1;
6464 let cofRelax1 = 1;
6465 let cofRelax2 = 1;
6466 let cofMax1 = 1;
6467 let Uses = [P1];
6468 let Defs = [P1, PC];
6469 let BaseOpcode = "J4_cmpeqn1p1";
6470 let isTaken = Inst{13};
6471 let isExtendable = 1;
6472 let opExtendable = 2;
6473 let isExtentSigned = 1;
6474 let opExtentBits = 11;
6475 let opExtentAlign = 2;
6476 }
6477 def J4_cmpeqn1_fp1_jump_t : HInst<
6478 (outs),
6479 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6480 "p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6481 tc_3d495a39, TypeCJ>, Enc_800e04, PredRel {
6482 let Inst{0-0} = 0b0;
6483 let Inst{13-8} = 0b100000;
6484 let Inst{31-22} = 0b0001001111;
6485 let isPredicated = 1;
6486 let isPredicatedFalse = 1;
6487 let isTerminator = 1;
6488 let isBranch = 1;
6489 let isPredicatedNew = 1;
6490 let cofRelax1 = 1;
6491 let cofRelax2 = 1;
6492 let cofMax1 = 1;
6493 let Uses = [P1];
6494 let Defs = [P1, PC];
6495 let BaseOpcode = "J4_cmpeqn1p1";
6496 let isTaken = Inst{13};
6497 let isExtendable = 1;
6498 let opExtendable = 2;
6499 let isExtentSigned = 1;
6500 let opExtentBits = 11;
6501 let opExtentAlign = 2;
6502 }
6503 def J4_cmpeqn1_t_jumpnv_nt : HInst<
6504 (outs),
6505 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6506 "if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6507 tc_bd8382d1, TypeNCJ>, Enc_4aca3a, PredRel {
6508 let Inst{0-0} = 0b0;
6509 let Inst{13-8} = 0b000000;
6510 let Inst{19-19} = 0b0;
6511 let Inst{31-22} = 0b0010011000;
6512 let isPredicated = 1;
6513 let isTerminator = 1;
6514 let isBranch = 1;
6515 let isNewValue = 1;
6516 let cofMax1 = 1;
6517 let isRestrictNoSlot1Store = 1;
6518 let Defs = [PC];
6519 let BaseOpcode = "J4_cmpeqn1r";
6520 let isTaken = Inst{13};
6521 let isExtendable = 1;
6522 let opExtendable = 2;
6523 let isExtentSigned = 1;
6524 let opExtentBits = 11;
6525 let opExtentAlign = 2;
6526 let opNewValue = 0;
6527 }
6528 def J4_cmpeqn1_t_jumpnv_t : HInst<
6529 (outs),
6530 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6531 "if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6532 tc_bd8382d1, TypeNCJ>, Enc_f7ea77, PredRel {
6533 let Inst{0-0} = 0b0;
6534 let Inst{13-8} = 0b100000;
6535 let Inst{19-19} = 0b0;
6536 let Inst{31-22} = 0b0010011000;
6537 let isPredicated = 1;
6538 let isTerminator = 1;
6539 let isBranch = 1;
6540 let isNewValue = 1;
6541 let cofMax1 = 1;
6542 let isRestrictNoSlot1Store = 1;
6543 let Defs = [PC];
6544 let BaseOpcode = "J4_cmpeqn1r";
6545 let isTaken = Inst{13};
6546 let isExtendable = 1;
6547 let opExtendable = 2;
6548 let isExtentSigned = 1;
6549 let opExtentBits = 11;
6550 let opExtentAlign = 2;
6551 let opNewValue = 0;
6552 }
6553 def J4_cmpeqn1_tp0_jump_nt : HInst<
6554 (outs),
6555 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6556 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6557 tc_3d495a39, TypeCJ>, Enc_405228, PredRel {
6558 let Inst{0-0} = 0b0;
6559 let Inst{13-8} = 0b000000;
6560 let Inst{31-22} = 0b0001000110;
6561 let isPredicated = 1;
6562 let isTerminator = 1;
6563 let isBranch = 1;
6564 let isPredicatedNew = 1;
6565 let cofRelax1 = 1;
6566 let cofRelax2 = 1;
6567 let cofMax1 = 1;
6568 let Uses = [P0];
6569 let Defs = [P0, PC];
6570 let BaseOpcode = "J4_cmpeqn1p0";
6571 let isTaken = Inst{13};
6572 let isExtendable = 1;
6573 let opExtendable = 2;
6574 let isExtentSigned = 1;
6575 let opExtentBits = 11;
6576 let opExtentAlign = 2;
6577 }
6578 def J4_cmpeqn1_tp0_jump_t : HInst<
6579 (outs),
6580 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6581 "p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6582 tc_3d495a39, TypeCJ>, Enc_3a2484, PredRel {
6583 let Inst{0-0} = 0b0;
6584 let Inst{13-8} = 0b100000;
6585 let Inst{31-22} = 0b0001000110;
6586 let isPredicated = 1;
6587 let isTerminator = 1;
6588 let isBranch = 1;
6589 let isPredicatedNew = 1;
6590 let cofRelax1 = 1;
6591 let cofRelax2 = 1;
6592 let cofMax1 = 1;
6593 let Uses = [P0];
6594 let Defs = [P0, PC];
6595 let BaseOpcode = "J4_cmpeqn1p0";
6596 let isTaken = Inst{13};
6597 let isExtendable = 1;
6598 let opExtendable = 2;
6599 let isExtentSigned = 1;
6600 let opExtentBits = 11;
6601 let opExtentAlign = 2;
6602 }
6603 def J4_cmpeqn1_tp1_jump_nt : HInst<
6604 (outs),
6605 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6606 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6607 tc_3d495a39, TypeCJ>, Enc_736575, PredRel {
6608 let Inst{0-0} = 0b0;
6609 let Inst{13-8} = 0b000000;
6610 let Inst{31-22} = 0b0001001110;
6611 let isPredicated = 1;
6612 let isTerminator = 1;
6613 let isBranch = 1;
6614 let isPredicatedNew = 1;
6615 let cofRelax1 = 1;
6616 let cofRelax2 = 1;
6617 let cofMax1 = 1;
6618 let Uses = [P1];
6619 let Defs = [P1, PC];
6620 let BaseOpcode = "J4_cmpeqn1p1";
6621 let isTaken = Inst{13};
6622 let isExtendable = 1;
6623 let opExtendable = 2;
6624 let isExtentSigned = 1;
6625 let opExtentBits = 11;
6626 let opExtentAlign = 2;
6627 }
6628 def J4_cmpeqn1_tp1_jump_t : HInst<
6629 (outs),
6630 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6631 "p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6632 tc_3d495a39, TypeCJ>, Enc_8e583a, PredRel {
6633 let Inst{0-0} = 0b0;
6634 let Inst{13-8} = 0b100000;
6635 let Inst{31-22} = 0b0001001110;
6636 let isPredicated = 1;
6637 let isTerminator = 1;
6638 let isBranch = 1;
6639 let isPredicatedNew = 1;
6640 let cofRelax1 = 1;
6641 let cofRelax2 = 1;
6642 let cofMax1 = 1;
6643 let Uses = [P1];
6644 let Defs = [P1, PC];
6645 let BaseOpcode = "J4_cmpeqn1p1";
6646 let isTaken = Inst{13};
6647 let isExtendable = 1;
6648 let opExtendable = 2;
6649 let isExtentSigned = 1;
6650 let opExtentBits = 11;
6651 let opExtentAlign = 2;
6652 }
6653 def J4_cmpgt_f_jumpnv_nt : HInst<
6654 (outs),
6655 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6656 "if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6657 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6658 let Inst{0-0} = 0b0;
6659 let Inst{13-13} = 0b0;
6660 let Inst{19-19} = 0b0;
6661 let Inst{31-22} = 0b0010000011;
6662 let isPredicated = 1;
6663 let isPredicatedFalse = 1;
6664 let isTerminator = 1;
6665 let isBranch = 1;
6666 let isNewValue = 1;
6667 let cofMax1 = 1;
6668 let isRestrictNoSlot1Store = 1;
6669 let Defs = [PC];
6670 let BaseOpcode = "J4_cmpgtr";
6671 let isTaken = Inst{13};
6672 let isExtendable = 1;
6673 let opExtendable = 2;
6674 let isExtentSigned = 1;
6675 let opExtentBits = 11;
6676 let opExtentAlign = 2;
6677 let opNewValue = 0;
6678 }
6679 def J4_cmpgt_f_jumpnv_t : HInst<
6680 (outs),
6681 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6682 "if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6683 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6684 let Inst{0-0} = 0b0;
6685 let Inst{13-13} = 0b1;
6686 let Inst{19-19} = 0b0;
6687 let Inst{31-22} = 0b0010000011;
6688 let isPredicated = 1;
6689 let isPredicatedFalse = 1;
6690 let isTerminator = 1;
6691 let isBranch = 1;
6692 let isNewValue = 1;
6693 let cofMax1 = 1;
6694 let isRestrictNoSlot1Store = 1;
6695 let Defs = [PC];
6696 let BaseOpcode = "J4_cmpgtr";
6697 let isTaken = Inst{13};
6698 let isExtendable = 1;
6699 let opExtendable = 2;
6700 let isExtentSigned = 1;
6701 let opExtentBits = 11;
6702 let opExtentAlign = 2;
6703 let opNewValue = 0;
6704 }
6705 def J4_cmpgt_fp0_jump_nt : HInst<
6706 (outs),
6707 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6708 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6709 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6710 let Inst{0-0} = 0b0;
6711 let Inst{13-12} = 0b00;
6712 let Inst{31-22} = 0b0001010011;
6713 let isPredicated = 1;
6714 let isPredicatedFalse = 1;
6715 let isTerminator = 1;
6716 let isBranch = 1;
6717 let isPredicatedNew = 1;
6718 let cofRelax1 = 1;
6719 let cofRelax2 = 1;
6720 let cofMax1 = 1;
6721 let Uses = [P0];
6722 let Defs = [P0, PC];
6723 let BaseOpcode = "J4_cmpgtp0";
6724 let isTaken = Inst{13};
6725 let isExtendable = 1;
6726 let opExtendable = 2;
6727 let isExtentSigned = 1;
6728 let opExtentBits = 11;
6729 let opExtentAlign = 2;
6730 }
6731 def J4_cmpgt_fp0_jump_t : HInst<
6732 (outs),
6733 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6734 "p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6735 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6736 let Inst{0-0} = 0b0;
6737 let Inst{13-12} = 0b10;
6738 let Inst{31-22} = 0b0001010011;
6739 let isPredicated = 1;
6740 let isPredicatedFalse = 1;
6741 let isTerminator = 1;
6742 let isBranch = 1;
6743 let isPredicatedNew = 1;
6744 let cofRelax1 = 1;
6745 let cofRelax2 = 1;
6746 let cofMax1 = 1;
6747 let Uses = [P0];
6748 let Defs = [P0, PC];
6749 let BaseOpcode = "J4_cmpgtp0";
6750 let isTaken = Inst{13};
6751 let isExtendable = 1;
6752 let opExtendable = 2;
6753 let isExtentSigned = 1;
6754 let opExtentBits = 11;
6755 let opExtentAlign = 2;
6756 }
6757 def J4_cmpgt_fp1_jump_nt : HInst<
6758 (outs),
6759 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6760 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6761 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6762 let Inst{0-0} = 0b0;
6763 let Inst{13-12} = 0b01;
6764 let Inst{31-22} = 0b0001010011;
6765 let isPredicated = 1;
6766 let isPredicatedFalse = 1;
6767 let isTerminator = 1;
6768 let isBranch = 1;
6769 let isPredicatedNew = 1;
6770 let cofRelax1 = 1;
6771 let cofRelax2 = 1;
6772 let cofMax1 = 1;
6773 let Uses = [P1];
6774 let Defs = [P1, PC];
6775 let BaseOpcode = "J4_cmpgtp1";
6776 let isTaken = Inst{13};
6777 let isExtendable = 1;
6778 let opExtendable = 2;
6779 let isExtentSigned = 1;
6780 let opExtentBits = 11;
6781 let opExtentAlign = 2;
6782 }
6783 def J4_cmpgt_fp1_jump_t : HInst<
6784 (outs),
6785 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6786 "p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6787 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6788 let Inst{0-0} = 0b0;
6789 let Inst{13-12} = 0b11;
6790 let Inst{31-22} = 0b0001010011;
6791 let isPredicated = 1;
6792 let isPredicatedFalse = 1;
6793 let isTerminator = 1;
6794 let isBranch = 1;
6795 let isPredicatedNew = 1;
6796 let cofRelax1 = 1;
6797 let cofRelax2 = 1;
6798 let cofMax1 = 1;
6799 let Uses = [P1];
6800 let Defs = [P1, PC];
6801 let BaseOpcode = "J4_cmpgtp1";
6802 let isTaken = Inst{13};
6803 let isExtendable = 1;
6804 let opExtendable = 2;
6805 let isExtentSigned = 1;
6806 let opExtentBits = 11;
6807 let opExtentAlign = 2;
6808 }
6809 def J4_cmpgt_t_jumpnv_nt : HInst<
6810 (outs),
6811 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6812 "if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6813 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6814 let Inst{0-0} = 0b0;
6815 let Inst{13-13} = 0b0;
6816 let Inst{19-19} = 0b0;
6817 let Inst{31-22} = 0b0010000010;
6818 let isPredicated = 1;
6819 let isTerminator = 1;
6820 let isBranch = 1;
6821 let isNewValue = 1;
6822 let cofMax1 = 1;
6823 let isRestrictNoSlot1Store = 1;
6824 let Defs = [PC];
6825 let BaseOpcode = "J4_cmpgtr";
6826 let isTaken = Inst{13};
6827 let isExtendable = 1;
6828 let opExtendable = 2;
6829 let isExtentSigned = 1;
6830 let opExtentBits = 11;
6831 let opExtentAlign = 2;
6832 let opNewValue = 0;
6833 }
6834 def J4_cmpgt_t_jumpnv_t : HInst<
6835 (outs),
6836 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6837 "if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6838 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6839 let Inst{0-0} = 0b0;
6840 let Inst{13-13} = 0b1;
6841 let Inst{19-19} = 0b0;
6842 let Inst{31-22} = 0b0010000010;
6843 let isPredicated = 1;
6844 let isTerminator = 1;
6845 let isBranch = 1;
6846 let isNewValue = 1;
6847 let cofMax1 = 1;
6848 let isRestrictNoSlot1Store = 1;
6849 let Defs = [PC];
6850 let BaseOpcode = "J4_cmpgtr";
6851 let isTaken = Inst{13};
6852 let isExtendable = 1;
6853 let opExtendable = 2;
6854 let isExtentSigned = 1;
6855 let opExtentBits = 11;
6856 let opExtentAlign = 2;
6857 let opNewValue = 0;
6858 }
6859 def J4_cmpgt_tp0_jump_nt : HInst<
6860 (outs),
6861 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6862 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6863 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6864 let Inst{0-0} = 0b0;
6865 let Inst{13-12} = 0b00;
6866 let Inst{31-22} = 0b0001010010;
6867 let isPredicated = 1;
6868 let isTerminator = 1;
6869 let isBranch = 1;
6870 let isPredicatedNew = 1;
6871 let cofRelax1 = 1;
6872 let cofRelax2 = 1;
6873 let cofMax1 = 1;
6874 let Uses = [P0];
6875 let Defs = [P0, PC];
6876 let BaseOpcode = "J4_cmpgtp0";
6877 let isTaken = Inst{13};
6878 let isExtendable = 1;
6879 let opExtendable = 2;
6880 let isExtentSigned = 1;
6881 let opExtentBits = 11;
6882 let opExtentAlign = 2;
6883 }
6884 def J4_cmpgt_tp0_jump_t : HInst<
6885 (outs),
6886 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6887 "p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6888 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6889 let Inst{0-0} = 0b0;
6890 let Inst{13-12} = 0b10;
6891 let Inst{31-22} = 0b0001010010;
6892 let isPredicated = 1;
6893 let isTerminator = 1;
6894 let isBranch = 1;
6895 let isPredicatedNew = 1;
6896 let cofRelax1 = 1;
6897 let cofRelax2 = 1;
6898 let cofMax1 = 1;
6899 let Uses = [P0];
6900 let Defs = [P0, PC];
6901 let BaseOpcode = "J4_cmpgtp0";
6902 let isTaken = Inst{13};
6903 let isExtendable = 1;
6904 let opExtendable = 2;
6905 let isExtentSigned = 1;
6906 let opExtentBits = 11;
6907 let opExtentAlign = 2;
6908 }
6909 def J4_cmpgt_tp1_jump_nt : HInst<
6910 (outs),
6911 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6912 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6913 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6914 let Inst{0-0} = 0b0;
6915 let Inst{13-12} = 0b01;
6916 let Inst{31-22} = 0b0001010010;
6917 let isPredicated = 1;
6918 let isTerminator = 1;
6919 let isBranch = 1;
6920 let isPredicatedNew = 1;
6921 let cofRelax1 = 1;
6922 let cofRelax2 = 1;
6923 let cofMax1 = 1;
6924 let Uses = [P1];
6925 let Defs = [P1, PC];
6926 let BaseOpcode = "J4_cmpgtp1";
6927 let isTaken = Inst{13};
6928 let isExtendable = 1;
6929 let opExtendable = 2;
6930 let isExtentSigned = 1;
6931 let opExtentBits = 11;
6932 let opExtentAlign = 2;
6933 }
6934 def J4_cmpgt_tp1_jump_t : HInst<
6935 (outs),
6936 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6937 "p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6938 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6939 let Inst{0-0} = 0b0;
6940 let Inst{13-12} = 0b11;
6941 let Inst{31-22} = 0b0001010010;
6942 let isPredicated = 1;
6943 let isTerminator = 1;
6944 let isBranch = 1;
6945 let isPredicatedNew = 1;
6946 let cofRelax1 = 1;
6947 let cofRelax2 = 1;
6948 let cofMax1 = 1;
6949 let Uses = [P1];
6950 let Defs = [P1, PC];
6951 let BaseOpcode = "J4_cmpgtp1";
6952 let isTaken = Inst{13};
6953 let isExtendable = 1;
6954 let opExtendable = 2;
6955 let isExtentSigned = 1;
6956 let opExtentBits = 11;
6957 let opExtentAlign = 2;
6958 }
6959 def J4_cmpgti_f_jumpnv_nt : HInst<
6960 (outs),
6961 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6962 "if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
6963 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6964 let Inst{0-0} = 0b0;
6965 let Inst{13-13} = 0b0;
6966 let Inst{19-19} = 0b0;
6967 let Inst{31-22} = 0b0010010011;
6968 let isPredicated = 1;
6969 let isPredicatedFalse = 1;
6970 let isTerminator = 1;
6971 let isBranch = 1;
6972 let isNewValue = 1;
6973 let cofMax1 = 1;
6974 let isRestrictNoSlot1Store = 1;
6975 let Defs = [PC];
6976 let BaseOpcode = "J4_cmpgtir";
6977 let isTaken = Inst{13};
6978 let isExtendable = 1;
6979 let opExtendable = 2;
6980 let isExtentSigned = 1;
6981 let opExtentBits = 11;
6982 let opExtentAlign = 2;
6983 let opNewValue = 0;
6984 }
6985 def J4_cmpgti_f_jumpnv_t : HInst<
6986 (outs),
6987 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6988 "if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
6989 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6990 let Inst{0-0} = 0b0;
6991 let Inst{13-13} = 0b1;
6992 let Inst{19-19} = 0b0;
6993 let Inst{31-22} = 0b0010010011;
6994 let isPredicated = 1;
6995 let isPredicatedFalse = 1;
6996 let isTerminator = 1;
6997 let isBranch = 1;
6998 let isNewValue = 1;
6999 let cofMax1 = 1;
7000 let isRestrictNoSlot1Store = 1;
7001 let Defs = [PC];
7002 let BaseOpcode = "J4_cmpgtir";
7003 let isTaken = Inst{13};
7004 let isExtendable = 1;
7005 let opExtendable = 2;
7006 let isExtentSigned = 1;
7007 let opExtentBits = 11;
7008 let opExtentAlign = 2;
7009 let opNewValue = 0;
7010 }
7011 def J4_cmpgti_fp0_jump_nt : HInst<
7012 (outs),
7013 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7014 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7015 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7016 let Inst{0-0} = 0b0;
7017 let Inst{13-13} = 0b0;
7018 let Inst{31-22} = 0b0001000011;
7019 let isPredicated = 1;
7020 let isPredicatedFalse = 1;
7021 let isTerminator = 1;
7022 let isBranch = 1;
7023 let isPredicatedNew = 1;
7024 let cofRelax1 = 1;
7025 let cofRelax2 = 1;
7026 let cofMax1 = 1;
7027 let Uses = [P0];
7028 let Defs = [P0, PC];
7029 let BaseOpcode = "J4_cmpgtip0";
7030 let isTaken = Inst{13};
7031 let isExtendable = 1;
7032 let opExtendable = 2;
7033 let isExtentSigned = 1;
7034 let opExtentBits = 11;
7035 let opExtentAlign = 2;
7036 }
7037 def J4_cmpgti_fp0_jump_t : HInst<
7038 (outs),
7039 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7040 "p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
7041 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7042 let Inst{0-0} = 0b0;
7043 let Inst{13-13} = 0b1;
7044 let Inst{31-22} = 0b0001000011;
7045 let isPredicated = 1;
7046 let isPredicatedFalse = 1;
7047 let isTerminator = 1;
7048 let isBranch = 1;
7049 let isPredicatedNew = 1;
7050 let cofRelax1 = 1;
7051 let cofRelax2 = 1;
7052 let cofMax1 = 1;
7053 let Uses = [P0];
7054 let Defs = [P0, PC];
7055 let BaseOpcode = "J4_cmpgtip0";
7056 let isTaken = Inst{13};
7057 let isExtendable = 1;
7058 let opExtendable = 2;
7059 let isExtentSigned = 1;
7060 let opExtentBits = 11;
7061 let opExtentAlign = 2;
7062 }
7063 def J4_cmpgti_fp1_jump_nt : HInst<
7064 (outs),
7065 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7066 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7067 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7068 let Inst{0-0} = 0b0;
7069 let Inst{13-13} = 0b0;
7070 let Inst{31-22} = 0b0001001011;
7071 let isPredicated = 1;
7072 let isPredicatedFalse = 1;
7073 let isTerminator = 1;
7074 let isBranch = 1;
7075 let isPredicatedNew = 1;
7076 let cofRelax1 = 1;
7077 let cofRelax2 = 1;
7078 let cofMax1 = 1;
7079 let Uses = [P1];
7080 let Defs = [P1, PC];
7081 let BaseOpcode = "J4_cmpgtip1";
7082 let isTaken = Inst{13};
7083 let isExtendable = 1;
7084 let opExtendable = 2;
7085 let isExtentSigned = 1;
7086 let opExtentBits = 11;
7087 let opExtentAlign = 2;
7088 }
7089 def J4_cmpgti_fp1_jump_t : HInst<
7090 (outs),
7091 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7092 "p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
7093 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7094 let Inst{0-0} = 0b0;
7095 let Inst{13-13} = 0b1;
7096 let Inst{31-22} = 0b0001001011;
7097 let isPredicated = 1;
7098 let isPredicatedFalse = 1;
7099 let isTerminator = 1;
7100 let isBranch = 1;
7101 let isPredicatedNew = 1;
7102 let cofRelax1 = 1;
7103 let cofRelax2 = 1;
7104 let cofMax1 = 1;
7105 let Uses = [P1];
7106 let Defs = [P1, PC];
7107 let BaseOpcode = "J4_cmpgtip1";
7108 let isTaken = Inst{13};
7109 let isExtendable = 1;
7110 let opExtendable = 2;
7111 let isExtentSigned = 1;
7112 let opExtentBits = 11;
7113 let opExtentAlign = 2;
7114 }
7115 def J4_cmpgti_t_jumpnv_nt : HInst<
7116 (outs),
7117 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7118 "if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7119 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7120 let Inst{0-0} = 0b0;
7121 let Inst{13-13} = 0b0;
7122 let Inst{19-19} = 0b0;
7123 let Inst{31-22} = 0b0010010010;
7124 let isPredicated = 1;
7125 let isTerminator = 1;
7126 let isBranch = 1;
7127 let isNewValue = 1;
7128 let cofMax1 = 1;
7129 let isRestrictNoSlot1Store = 1;
7130 let Defs = [PC];
7131 let BaseOpcode = "J4_cmpgtir";
7132 let isTaken = Inst{13};
7133 let isExtendable = 1;
7134 let opExtendable = 2;
7135 let isExtentSigned = 1;
7136 let opExtentBits = 11;
7137 let opExtentAlign = 2;
7138 let opNewValue = 0;
7139 }
7140 def J4_cmpgti_t_jumpnv_t : HInst<
7141 (outs),
7142 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7143 "if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7144 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7145 let Inst{0-0} = 0b0;
7146 let Inst{13-13} = 0b1;
7147 let Inst{19-19} = 0b0;
7148 let Inst{31-22} = 0b0010010010;
7149 let isPredicated = 1;
7150 let isTerminator = 1;
7151 let isBranch = 1;
7152 let isNewValue = 1;
7153 let cofMax1 = 1;
7154 let isRestrictNoSlot1Store = 1;
7155 let Defs = [PC];
7156 let BaseOpcode = "J4_cmpgtir";
7157 let isTaken = Inst{13};
7158 let isExtendable = 1;
7159 let opExtendable = 2;
7160 let isExtentSigned = 1;
7161 let opExtentBits = 11;
7162 let opExtentAlign = 2;
7163 let opNewValue = 0;
7164 }
7165 def J4_cmpgti_tp0_jump_nt : HInst<
7166 (outs),
7167 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7168 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
7169 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7170 let Inst{0-0} = 0b0;
7171 let Inst{13-13} = 0b0;
7172 let Inst{31-22} = 0b0001000010;
7173 let isPredicated = 1;
7174 let isTerminator = 1;
7175 let isBranch = 1;
7176 let isPredicatedNew = 1;
7177 let cofRelax1 = 1;
7178 let cofRelax2 = 1;
7179 let cofMax1 = 1;
7180 let Uses = [P0];
7181 let Defs = [P0, PC];
7182 let BaseOpcode = "J4_cmpgtip0";
7183 let isTaken = Inst{13};
7184 let isExtendable = 1;
7185 let opExtendable = 2;
7186 let isExtentSigned = 1;
7187 let opExtentBits = 11;
7188 let opExtentAlign = 2;
7189 }
7190 def J4_cmpgti_tp0_jump_t : HInst<
7191 (outs),
7192 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7193 "p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
7194 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7195 let Inst{0-0} = 0b0;
7196 let Inst{13-13} = 0b1;
7197 let Inst{31-22} = 0b0001000010;
7198 let isPredicated = 1;
7199 let isTerminator = 1;
7200 let isBranch = 1;
7201 let isPredicatedNew = 1;
7202 let cofRelax1 = 1;
7203 let cofRelax2 = 1;
7204 let cofMax1 = 1;
7205 let Uses = [P0];
7206 let Defs = [P0, PC];
7207 let BaseOpcode = "J4_cmpgtip0";
7208 let isTaken = Inst{13};
7209 let isExtendable = 1;
7210 let opExtendable = 2;
7211 let isExtentSigned = 1;
7212 let opExtentBits = 11;
7213 let opExtentAlign = 2;
7214 }
7215 def J4_cmpgti_tp1_jump_nt : HInst<
7216 (outs),
7217 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7218 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
7219 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7220 let Inst{0-0} = 0b0;
7221 let Inst{13-13} = 0b0;
7222 let Inst{31-22} = 0b0001001010;
7223 let isPredicated = 1;
7224 let isTerminator = 1;
7225 let isBranch = 1;
7226 let isPredicatedNew = 1;
7227 let cofRelax1 = 1;
7228 let cofRelax2 = 1;
7229 let cofMax1 = 1;
7230 let Uses = [P1];
7231 let Defs = [P1, PC];
7232 let BaseOpcode = "J4_cmpgtip1";
7233 let isTaken = Inst{13};
7234 let isExtendable = 1;
7235 let opExtendable = 2;
7236 let isExtentSigned = 1;
7237 let opExtentBits = 11;
7238 let opExtentAlign = 2;
7239 }
7240 def J4_cmpgti_tp1_jump_t : HInst<
7241 (outs),
7242 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7243 "p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
7244 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7245 let Inst{0-0} = 0b0;
7246 let Inst{13-13} = 0b1;
7247 let Inst{31-22} = 0b0001001010;
7248 let isPredicated = 1;
7249 let isTerminator = 1;
7250 let isBranch = 1;
7251 let isPredicatedNew = 1;
7252 let cofRelax1 = 1;
7253 let cofRelax2 = 1;
7254 let cofMax1 = 1;
7255 let Uses = [P1];
7256 let Defs = [P1, PC];
7257 let BaseOpcode = "J4_cmpgtip1";
7258 let isTaken = Inst{13};
7259 let isExtendable = 1;
7260 let opExtendable = 2;
7261 let isExtentSigned = 1;
7262 let opExtentBits = 11;
7263 let opExtentAlign = 2;
7264 }
7265 def J4_cmpgtn1_f_jumpnv_nt : HInst<
7266 (outs),
7267 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7268 "if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7269 tc_bd8382d1, TypeNCJ>, Enc_3694bd, PredRel {
7270 let Inst{0-0} = 0b0;
7271 let Inst{13-8} = 0b000000;
7272 let Inst{19-19} = 0b0;
7273 let Inst{31-22} = 0b0010011011;
7274 let isPredicated = 1;
7275 let isPredicatedFalse = 1;
7276 let isTerminator = 1;
7277 let isBranch = 1;
7278 let isNewValue = 1;
7279 let cofMax1 = 1;
7280 let isRestrictNoSlot1Store = 1;
7281 let Defs = [PC];
7282 let BaseOpcode = "J4_cmpgtn1r";
7283 let isTaken = Inst{13};
7284 let isExtendable = 1;
7285 let opExtendable = 2;
7286 let isExtentSigned = 1;
7287 let opExtentBits = 11;
7288 let opExtentAlign = 2;
7289 let opNewValue = 0;
7290 }
7291 def J4_cmpgtn1_f_jumpnv_t : HInst<
7292 (outs),
7293 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7294 "if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7295 tc_bd8382d1, TypeNCJ>, Enc_a6853f, PredRel {
7296 let Inst{0-0} = 0b0;
7297 let Inst{13-8} = 0b100000;
7298 let Inst{19-19} = 0b0;
7299 let Inst{31-22} = 0b0010011011;
7300 let isPredicated = 1;
7301 let isPredicatedFalse = 1;
7302 let isTerminator = 1;
7303 let isBranch = 1;
7304 let isNewValue = 1;
7305 let cofMax1 = 1;
7306 let isRestrictNoSlot1Store = 1;
7307 let Defs = [PC];
7308 let BaseOpcode = "J4_cmpgtn1r";
7309 let isTaken = Inst{13};
7310 let isExtendable = 1;
7311 let opExtendable = 2;
7312 let isExtentSigned = 1;
7313 let opExtentBits = 11;
7314 let opExtentAlign = 2;
7315 let opNewValue = 0;
7316 }
7317 def J4_cmpgtn1_fp0_jump_nt : HInst<
7318 (outs),
7319 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7320 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7321 tc_3d495a39, TypeCJ>, Enc_a42857, PredRel {
7322 let Inst{0-0} = 0b0;
7323 let Inst{13-8} = 0b000001;
7324 let Inst{31-22} = 0b0001000111;
7325 let isPredicated = 1;
7326 let isPredicatedFalse = 1;
7327 let isTerminator = 1;
7328 let isBranch = 1;
7329 let isPredicatedNew = 1;
7330 let cofRelax1 = 1;
7331 let cofRelax2 = 1;
7332 let cofMax1 = 1;
7333 let Uses = [P0];
7334 let Defs = [P0, PC];
7335 let BaseOpcode = "J4_cmpgtn1p0";
7336 let isTaken = Inst{13};
7337 let isExtendable = 1;
7338 let opExtendable = 2;
7339 let isExtentSigned = 1;
7340 let opExtentBits = 11;
7341 let opExtentAlign = 2;
7342 }
7343 def J4_cmpgtn1_fp0_jump_t : HInst<
7344 (outs),
7345 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7346 "p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7347 tc_3d495a39, TypeCJ>, Enc_f6fe0b, PredRel {
7348 let Inst{0-0} = 0b0;
7349 let Inst{13-8} = 0b100001;
7350 let Inst{31-22} = 0b0001000111;
7351 let isPredicated = 1;
7352 let isPredicatedFalse = 1;
7353 let isTerminator = 1;
7354 let isBranch = 1;
7355 let isPredicatedNew = 1;
7356 let cofRelax1 = 1;
7357 let cofRelax2 = 1;
7358 let cofMax1 = 1;
7359 let Uses = [P0];
7360 let Defs = [P0, PC];
7361 let BaseOpcode = "J4_cmpgtn1p0";
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_cmpgtn1_fp1_jump_nt : HInst<
7370 (outs),
7371 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7372 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7373 tc_3d495a39, TypeCJ>, Enc_3e3989, PredRel {
7374 let Inst{0-0} = 0b0;
7375 let Inst{13-8} = 0b000001;
7376 let Inst{31-22} = 0b0001001111;
7377 let isPredicated = 1;
7378 let isPredicatedFalse = 1;
7379 let isTerminator = 1;
7380 let isBranch = 1;
7381 let isPredicatedNew = 1;
7382 let cofRelax1 = 1;
7383 let cofRelax2 = 1;
7384 let cofMax1 = 1;
7385 let Uses = [P1];
7386 let Defs = [P1, PC];
7387 let BaseOpcode = "J4_cmpgtn1p1";
7388 let isTaken = Inst{13};
7389 let isExtendable = 1;
7390 let opExtendable = 2;
7391 let isExtentSigned = 1;
7392 let opExtentBits = 11;
7393 let opExtentAlign = 2;
7394 }
7395 def J4_cmpgtn1_fp1_jump_t : HInst<
7396 (outs),
7397 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7398 "p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7399 tc_3d495a39, TypeCJ>, Enc_b909d2, PredRel {
7400 let Inst{0-0} = 0b0;
7401 let Inst{13-8} = 0b100001;
7402 let Inst{31-22} = 0b0001001111;
7403 let isPredicated = 1;
7404 let isPredicatedFalse = 1;
7405 let isTerminator = 1;
7406 let isBranch = 1;
7407 let isPredicatedNew = 1;
7408 let cofRelax1 = 1;
7409 let cofRelax2 = 1;
7410 let cofMax1 = 1;
7411 let Uses = [P1];
7412 let Defs = [P1, PC];
7413 let BaseOpcode = "J4_cmpgtn1p1";
7414 let isTaken = Inst{13};
7415 let isExtendable = 1;
7416 let opExtendable = 2;
7417 let isExtentSigned = 1;
7418 let opExtentBits = 11;
7419 let opExtentAlign = 2;
7420 }
7421 def J4_cmpgtn1_t_jumpnv_nt : HInst<
7422 (outs),
7423 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7424 "if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7425 tc_bd8382d1, TypeNCJ>, Enc_f82302, PredRel {
7426 let Inst{0-0} = 0b0;
7427 let Inst{13-8} = 0b000000;
7428 let Inst{19-19} = 0b0;
7429 let Inst{31-22} = 0b0010011010;
7430 let isPredicated = 1;
7431 let isTerminator = 1;
7432 let isBranch = 1;
7433 let isNewValue = 1;
7434 let cofMax1 = 1;
7435 let isRestrictNoSlot1Store = 1;
7436 let Defs = [PC];
7437 let BaseOpcode = "J4_cmpgtn1r";
7438 let isTaken = Inst{13};
7439 let isExtendable = 1;
7440 let opExtendable = 2;
7441 let isExtentSigned = 1;
7442 let opExtentBits = 11;
7443 let opExtentAlign = 2;
7444 let opNewValue = 0;
7445 }
7446 def J4_cmpgtn1_t_jumpnv_t : HInst<
7447 (outs),
7448 (ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7449 "if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7450 tc_bd8382d1, TypeNCJ>, Enc_6413b6, PredRel {
7451 let Inst{0-0} = 0b0;
7452 let Inst{13-8} = 0b100000;
7453 let Inst{19-19} = 0b0;
7454 let Inst{31-22} = 0b0010011010;
7455 let isPredicated = 1;
7456 let isTerminator = 1;
7457 let isBranch = 1;
7458 let isNewValue = 1;
7459 let cofMax1 = 1;
7460 let isRestrictNoSlot1Store = 1;
7461 let Defs = [PC];
7462 let BaseOpcode = "J4_cmpgtn1r";
7463 let isTaken = Inst{13};
7464 let isExtendable = 1;
7465 let opExtendable = 2;
7466 let isExtentSigned = 1;
7467 let opExtentBits = 11;
7468 let opExtentAlign = 2;
7469 let opNewValue = 0;
7470 }
7471 def J4_cmpgtn1_tp0_jump_nt : HInst<
7472 (outs),
7473 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7474 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7475 tc_3d495a39, TypeCJ>, Enc_b78edd, PredRel {
7476 let Inst{0-0} = 0b0;
7477 let Inst{13-8} = 0b000001;
7478 let Inst{31-22} = 0b0001000110;
7479 let isPredicated = 1;
7480 let isTerminator = 1;
7481 let isBranch = 1;
7482 let isPredicatedNew = 1;
7483 let cofRelax1 = 1;
7484 let cofRelax2 = 1;
7485 let cofMax1 = 1;
7486 let Uses = [P0];
7487 let Defs = [P0, PC];
7488 let BaseOpcode = "J4_cmpgtn1p0";
7489 let isTaken = Inst{13};
7490 let isExtendable = 1;
7491 let opExtendable = 2;
7492 let isExtentSigned = 1;
7493 let opExtentBits = 11;
7494 let opExtentAlign = 2;
7495 }
7496 def J4_cmpgtn1_tp0_jump_t : HInst<
7497 (outs),
7498 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7499 "p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7500 tc_3d495a39, TypeCJ>, Enc_041d7b, PredRel {
7501 let Inst{0-0} = 0b0;
7502 let Inst{13-8} = 0b100001;
7503 let Inst{31-22} = 0b0001000110;
7504 let isPredicated = 1;
7505 let isTerminator = 1;
7506 let isBranch = 1;
7507 let isPredicatedNew = 1;
7508 let cofRelax1 = 1;
7509 let cofRelax2 = 1;
7510 let cofMax1 = 1;
7511 let Uses = [P0];
7512 let Defs = [P0, PC];
7513 let BaseOpcode = "J4_cmpgtn1p0";
7514 let isTaken = Inst{13};
7515 let isExtendable = 1;
7516 let opExtendable = 2;
7517 let isExtentSigned = 1;
7518 let opExtentBits = 11;
7519 let opExtentAlign = 2;
7520 }
7521 def J4_cmpgtn1_tp1_jump_nt : HInst<
7522 (outs),
7523 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7524 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7525 tc_3d495a39, TypeCJ>, Enc_b1e1fb, PredRel {
7526 let Inst{0-0} = 0b0;
7527 let Inst{13-8} = 0b000001;
7528 let Inst{31-22} = 0b0001001110;
7529 let isPredicated = 1;
7530 let isTerminator = 1;
7531 let isBranch = 1;
7532 let isPredicatedNew = 1;
7533 let cofRelax1 = 1;
7534 let cofRelax2 = 1;
7535 let cofMax1 = 1;
7536 let Uses = [P1];
7537 let Defs = [P1, PC];
7538 let BaseOpcode = "J4_cmpgtn1p1";
7539 let isTaken = Inst{13};
7540 let isExtendable = 1;
7541 let opExtendable = 2;
7542 let isExtentSigned = 1;
7543 let opExtentBits = 11;
7544 let opExtentAlign = 2;
7545 }
7546 def J4_cmpgtn1_tp1_jump_t : HInst<
7547 (outs),
7548 (ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7549 "p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7550 tc_3d495a39, TypeCJ>, Enc_178717, PredRel {
7551 let Inst{0-0} = 0b0;
7552 let Inst{13-8} = 0b100001;
7553 let Inst{31-22} = 0b0001001110;
7554 let isPredicated = 1;
7555 let isTerminator = 1;
7556 let isBranch = 1;
7557 let isPredicatedNew = 1;
7558 let cofRelax1 = 1;
7559 let cofRelax2 = 1;
7560 let cofMax1 = 1;
7561 let Uses = [P1];
7562 let Defs = [P1, PC];
7563 let BaseOpcode = "J4_cmpgtn1p1";
7564 let isTaken = Inst{13};
7565 let isExtendable = 1;
7566 let opExtendable = 2;
7567 let isExtentSigned = 1;
7568 let opExtentBits = 11;
7569 let opExtentAlign = 2;
7570 }
7571 def J4_cmpgtu_f_jumpnv_nt : HInst<
7572 (outs),
7573 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7574 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7575 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7576 let Inst{0-0} = 0b0;
7577 let Inst{13-13} = 0b0;
7578 let Inst{19-19} = 0b0;
7579 let Inst{31-22} = 0b0010000101;
7580 let isPredicated = 1;
7581 let isPredicatedFalse = 1;
7582 let isTerminator = 1;
7583 let isBranch = 1;
7584 let isNewValue = 1;
7585 let cofMax1 = 1;
7586 let isRestrictNoSlot1Store = 1;
7587 let Defs = [PC];
7588 let BaseOpcode = "J4_cmpgtur";
7589 let isTaken = Inst{13};
7590 let isExtendable = 1;
7591 let opExtendable = 2;
7592 let isExtentSigned = 1;
7593 let opExtentBits = 11;
7594 let opExtentAlign = 2;
7595 let opNewValue = 0;
7596 }
7597 def J4_cmpgtu_f_jumpnv_t : HInst<
7598 (outs),
7599 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7600 "if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7601 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7602 let Inst{0-0} = 0b0;
7603 let Inst{13-13} = 0b1;
7604 let Inst{19-19} = 0b0;
7605 let Inst{31-22} = 0b0010000101;
7606 let isPredicated = 1;
7607 let isPredicatedFalse = 1;
7608 let isTerminator = 1;
7609 let isBranch = 1;
7610 let isNewValue = 1;
7611 let cofMax1 = 1;
7612 let isRestrictNoSlot1Store = 1;
7613 let Defs = [PC];
7614 let BaseOpcode = "J4_cmpgtur";
7615 let isTaken = Inst{13};
7616 let isExtendable = 1;
7617 let opExtendable = 2;
7618 let isExtentSigned = 1;
7619 let opExtentBits = 11;
7620 let opExtentAlign = 2;
7621 let opNewValue = 0;
7622 }
7623 def J4_cmpgtu_fp0_jump_nt : HInst<
7624 (outs),
7625 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7626 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7627 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7628 let Inst{0-0} = 0b0;
7629 let Inst{13-12} = 0b00;
7630 let Inst{31-22} = 0b0001010101;
7631 let isPredicated = 1;
7632 let isPredicatedFalse = 1;
7633 let isTerminator = 1;
7634 let isBranch = 1;
7635 let isPredicatedNew = 1;
7636 let cofRelax1 = 1;
7637 let cofRelax2 = 1;
7638 let cofMax1 = 1;
7639 let Uses = [P0];
7640 let Defs = [P0, PC];
7641 let BaseOpcode = "J4_cmpgtup0";
7642 let isTaken = Inst{13};
7643 let isExtendable = 1;
7644 let opExtendable = 2;
7645 let isExtentSigned = 1;
7646 let opExtentBits = 11;
7647 let opExtentAlign = 2;
7648 }
7649 def J4_cmpgtu_fp0_jump_t : HInst<
7650 (outs),
7651 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7652 "p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7653 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7654 let Inst{0-0} = 0b0;
7655 let Inst{13-12} = 0b10;
7656 let Inst{31-22} = 0b0001010101;
7657 let isPredicated = 1;
7658 let isPredicatedFalse = 1;
7659 let isTerminator = 1;
7660 let isBranch = 1;
7661 let isPredicatedNew = 1;
7662 let cofRelax1 = 1;
7663 let cofRelax2 = 1;
7664 let cofMax1 = 1;
7665 let Uses = [P0];
7666 let Defs = [P0, PC];
7667 let BaseOpcode = "J4_cmpgtup0";
7668 let isTaken = Inst{13};
7669 let isExtendable = 1;
7670 let opExtendable = 2;
7671 let isExtentSigned = 1;
7672 let opExtentBits = 11;
7673 let opExtentAlign = 2;
7674 }
7675 def J4_cmpgtu_fp1_jump_nt : HInst<
7676 (outs),
7677 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7678 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7679 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7680 let Inst{0-0} = 0b0;
7681 let Inst{13-12} = 0b01;
7682 let Inst{31-22} = 0b0001010101;
7683 let isPredicated = 1;
7684 let isPredicatedFalse = 1;
7685 let isTerminator = 1;
7686 let isBranch = 1;
7687 let isPredicatedNew = 1;
7688 let cofRelax1 = 1;
7689 let cofRelax2 = 1;
7690 let cofMax1 = 1;
7691 let Uses = [P1];
7692 let Defs = [P1, PC];
7693 let BaseOpcode = "J4_cmpgtup1";
7694 let isTaken = Inst{13};
7695 let isExtendable = 1;
7696 let opExtendable = 2;
7697 let isExtentSigned = 1;
7698 let opExtentBits = 11;
7699 let opExtentAlign = 2;
7700 }
7701 def J4_cmpgtu_fp1_jump_t : HInst<
7702 (outs),
7703 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7704 "p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7705 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7706 let Inst{0-0} = 0b0;
7707 let Inst{13-12} = 0b11;
7708 let Inst{31-22} = 0b0001010101;
7709 let isPredicated = 1;
7710 let isPredicatedFalse = 1;
7711 let isTerminator = 1;
7712 let isBranch = 1;
7713 let isPredicatedNew = 1;
7714 let cofRelax1 = 1;
7715 let cofRelax2 = 1;
7716 let cofMax1 = 1;
7717 let Uses = [P1];
7718 let Defs = [P1, PC];
7719 let BaseOpcode = "J4_cmpgtup1";
7720 let isTaken = Inst{13};
7721 let isExtendable = 1;
7722 let opExtendable = 2;
7723 let isExtentSigned = 1;
7724 let opExtentBits = 11;
7725 let opExtentAlign = 2;
7726 }
7727 def J4_cmpgtu_t_jumpnv_nt : HInst<
7728 (outs),
7729 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7730 "if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7731 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7732 let Inst{0-0} = 0b0;
7733 let Inst{13-13} = 0b0;
7734 let Inst{19-19} = 0b0;
7735 let Inst{31-22} = 0b0010000100;
7736 let isPredicated = 1;
7737 let isTerminator = 1;
7738 let isBranch = 1;
7739 let isNewValue = 1;
7740 let cofMax1 = 1;
7741 let isRestrictNoSlot1Store = 1;
7742 let Defs = [PC];
7743 let BaseOpcode = "J4_cmpgtur";
7744 let isTaken = Inst{13};
7745 let isExtendable = 1;
7746 let opExtendable = 2;
7747 let isExtentSigned = 1;
7748 let opExtentBits = 11;
7749 let opExtentAlign = 2;
7750 let opNewValue = 0;
7751 }
7752 def J4_cmpgtu_t_jumpnv_t : HInst<
7753 (outs),
7754 (ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7755 "if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7756 tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7757 let Inst{0-0} = 0b0;
7758 let Inst{13-13} = 0b1;
7759 let Inst{19-19} = 0b0;
7760 let Inst{31-22} = 0b0010000100;
7761 let isPredicated = 1;
7762 let isTerminator = 1;
7763 let isBranch = 1;
7764 let isNewValue = 1;
7765 let cofMax1 = 1;
7766 let isRestrictNoSlot1Store = 1;
7767 let Defs = [PC];
7768 let BaseOpcode = "J4_cmpgtur";
7769 let isTaken = Inst{13};
7770 let isExtendable = 1;
7771 let opExtendable = 2;
7772 let isExtentSigned = 1;
7773 let opExtentBits = 11;
7774 let opExtentAlign = 2;
7775 let opNewValue = 0;
7776 }
7777 def J4_cmpgtu_tp0_jump_nt : HInst<
7778 (outs),
7779 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7780 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7781 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7782 let Inst{0-0} = 0b0;
7783 let Inst{13-12} = 0b00;
7784 let Inst{31-22} = 0b0001010100;
7785 let isPredicated = 1;
7786 let isTerminator = 1;
7787 let isBranch = 1;
7788 let isPredicatedNew = 1;
7789 let cofRelax1 = 1;
7790 let cofRelax2 = 1;
7791 let cofMax1 = 1;
7792 let Uses = [P0];
7793 let Defs = [P0, PC];
7794 let BaseOpcode = "J4_cmpgtup0";
7795 let isTaken = Inst{13};
7796 let isExtendable = 1;
7797 let opExtendable = 2;
7798 let isExtentSigned = 1;
7799 let opExtentBits = 11;
7800 let opExtentAlign = 2;
7801 }
7802 def J4_cmpgtu_tp0_jump_t : HInst<
7803 (outs),
7804 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7805 "p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7806 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7807 let Inst{0-0} = 0b0;
7808 let Inst{13-12} = 0b10;
7809 let Inst{31-22} = 0b0001010100;
7810 let isPredicated = 1;
7811 let isTerminator = 1;
7812 let isBranch = 1;
7813 let isPredicatedNew = 1;
7814 let cofRelax1 = 1;
7815 let cofRelax2 = 1;
7816 let cofMax1 = 1;
7817 let Uses = [P0];
7818 let Defs = [P0, PC];
7819 let BaseOpcode = "J4_cmpgtup0";
7820 let isTaken = Inst{13};
7821 let isExtendable = 1;
7822 let opExtendable = 2;
7823 let isExtentSigned = 1;
7824 let opExtentBits = 11;
7825 let opExtentAlign = 2;
7826 }
7827 def J4_cmpgtu_tp1_jump_nt : HInst<
7828 (outs),
7829 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7830 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7831 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7832 let Inst{0-0} = 0b0;
7833 let Inst{13-12} = 0b01;
7834 let Inst{31-22} = 0b0001010100;
7835 let isPredicated = 1;
7836 let isTerminator = 1;
7837 let isBranch = 1;
7838 let isPredicatedNew = 1;
7839 let cofRelax1 = 1;
7840 let cofRelax2 = 1;
7841 let cofMax1 = 1;
7842 let Uses = [P1];
7843 let Defs = [P1, PC];
7844 let BaseOpcode = "J4_cmpgtup1";
7845 let isTaken = Inst{13};
7846 let isExtendable = 1;
7847 let opExtendable = 2;
7848 let isExtentSigned = 1;
7849 let opExtentBits = 11;
7850 let opExtentAlign = 2;
7851 }
7852 def J4_cmpgtu_tp1_jump_t : HInst<
7853 (outs),
7854 (ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7855 "p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7856 tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7857 let Inst{0-0} = 0b0;
7858 let Inst{13-12} = 0b11;
7859 let Inst{31-22} = 0b0001010100;
7860 let isPredicated = 1;
7861 let isTerminator = 1;
7862 let isBranch = 1;
7863 let isPredicatedNew = 1;
7864 let cofRelax1 = 1;
7865 let cofRelax2 = 1;
7866 let cofMax1 = 1;
7867 let Uses = [P1];
7868 let Defs = [P1, PC];
7869 let BaseOpcode = "J4_cmpgtup1";
7870 let isTaken = Inst{13};
7871 let isExtendable = 1;
7872 let opExtendable = 2;
7873 let isExtentSigned = 1;
7874 let opExtentBits = 11;
7875 let opExtentAlign = 2;
7876 }
7877 def J4_cmpgtui_f_jumpnv_nt : HInst<
7878 (outs),
7879 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7880 "if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
7881 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7882 let Inst{0-0} = 0b0;
7883 let Inst{13-13} = 0b0;
7884 let Inst{19-19} = 0b0;
7885 let Inst{31-22} = 0b0010010101;
7886 let isPredicated = 1;
7887 let isPredicatedFalse = 1;
7888 let isTerminator = 1;
7889 let isBranch = 1;
7890 let isNewValue = 1;
7891 let cofMax1 = 1;
7892 let isRestrictNoSlot1Store = 1;
7893 let Defs = [PC];
7894 let BaseOpcode = "J4_cmpgtuir";
7895 let isTaken = Inst{13};
7896 let isExtendable = 1;
7897 let opExtendable = 2;
7898 let isExtentSigned = 1;
7899 let opExtentBits = 11;
7900 let opExtentAlign = 2;
7901 let opNewValue = 0;
7902 }
7903 def J4_cmpgtui_f_jumpnv_t : HInst<
7904 (outs),
7905 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7906 "if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
7907 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7908 let Inst{0-0} = 0b0;
7909 let Inst{13-13} = 0b1;
7910 let Inst{19-19} = 0b0;
7911 let Inst{31-22} = 0b0010010101;
7912 let isPredicated = 1;
7913 let isPredicatedFalse = 1;
7914 let isTerminator = 1;
7915 let isBranch = 1;
7916 let isNewValue = 1;
7917 let cofMax1 = 1;
7918 let isRestrictNoSlot1Store = 1;
7919 let Defs = [PC];
7920 let BaseOpcode = "J4_cmpgtuir";
7921 let isTaken = Inst{13};
7922 let isExtendable = 1;
7923 let opExtendable = 2;
7924 let isExtentSigned = 1;
7925 let opExtentBits = 11;
7926 let opExtentAlign = 2;
7927 let opNewValue = 0;
7928 }
7929 def J4_cmpgtui_fp0_jump_nt : HInst<
7930 (outs),
7931 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7932 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7933 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7934 let Inst{0-0} = 0b0;
7935 let Inst{13-13} = 0b0;
7936 let Inst{31-22} = 0b0001000101;
7937 let isPredicated = 1;
7938 let isPredicatedFalse = 1;
7939 let isTerminator = 1;
7940 let isBranch = 1;
7941 let isPredicatedNew = 1;
7942 let cofRelax1 = 1;
7943 let cofRelax2 = 1;
7944 let cofMax1 = 1;
7945 let Uses = [P0];
7946 let Defs = [P0, PC];
7947 let BaseOpcode = "J4_cmpgtuip0";
7948 let isTaken = Inst{13};
7949 let isExtendable = 1;
7950 let opExtendable = 2;
7951 let isExtentSigned = 1;
7952 let opExtentBits = 11;
7953 let opExtentAlign = 2;
7954 }
7955 def J4_cmpgtui_fp0_jump_t : HInst<
7956 (outs),
7957 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7958 "p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
7959 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7960 let Inst{0-0} = 0b0;
7961 let Inst{13-13} = 0b1;
7962 let Inst{31-22} = 0b0001000101;
7963 let isPredicated = 1;
7964 let isPredicatedFalse = 1;
7965 let isTerminator = 1;
7966 let isBranch = 1;
7967 let isPredicatedNew = 1;
7968 let cofRelax1 = 1;
7969 let cofRelax2 = 1;
7970 let cofMax1 = 1;
7971 let Uses = [P0];
7972 let Defs = [P0, PC];
7973 let BaseOpcode = "J4_cmpgtuip0";
7974 let isTaken = Inst{13};
7975 let isExtendable = 1;
7976 let opExtendable = 2;
7977 let isExtentSigned = 1;
7978 let opExtentBits = 11;
7979 let opExtentAlign = 2;
7980 }
7981 def J4_cmpgtui_fp1_jump_nt : HInst<
7982 (outs),
7983 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7984 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7985 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7986 let Inst{0-0} = 0b0;
7987 let Inst{13-13} = 0b0;
7988 let Inst{31-22} = 0b0001001101;
7989 let isPredicated = 1;
7990 let isPredicatedFalse = 1;
7991 let isTerminator = 1;
7992 let isBranch = 1;
7993 let isPredicatedNew = 1;
7994 let cofRelax1 = 1;
7995 let cofRelax2 = 1;
7996 let cofMax1 = 1;
7997 let Uses = [P1];
7998 let Defs = [P1, PC];
7999 let BaseOpcode = "J4_cmpgtuip1";
8000 let isTaken = Inst{13};
8001 let isExtendable = 1;
8002 let opExtendable = 2;
8003 let isExtentSigned = 1;
8004 let opExtentBits = 11;
8005 let opExtentAlign = 2;
8006 }
8007 def J4_cmpgtui_fp1_jump_t : HInst<
8008 (outs),
8009 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8010 "p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
8011 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8012 let Inst{0-0} = 0b0;
8013 let Inst{13-13} = 0b1;
8014 let Inst{31-22} = 0b0001001101;
8015 let isPredicated = 1;
8016 let isPredicatedFalse = 1;
8017 let isTerminator = 1;
8018 let isBranch = 1;
8019 let isPredicatedNew = 1;
8020 let cofRelax1 = 1;
8021 let cofRelax2 = 1;
8022 let cofMax1 = 1;
8023 let Uses = [P1];
8024 let Defs = [P1, PC];
8025 let BaseOpcode = "J4_cmpgtuip1";
8026 let isTaken = Inst{13};
8027 let isExtendable = 1;
8028 let opExtendable = 2;
8029 let isExtentSigned = 1;
8030 let opExtentBits = 11;
8031 let opExtentAlign = 2;
8032 }
8033 def J4_cmpgtui_t_jumpnv_nt : HInst<
8034 (outs),
8035 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8036 "if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8037 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
8038 let Inst{0-0} = 0b0;
8039 let Inst{13-13} = 0b0;
8040 let Inst{19-19} = 0b0;
8041 let Inst{31-22} = 0b0010010100;
8042 let isPredicated = 1;
8043 let isTerminator = 1;
8044 let isBranch = 1;
8045 let isNewValue = 1;
8046 let cofMax1 = 1;
8047 let isRestrictNoSlot1Store = 1;
8048 let Defs = [PC];
8049 let BaseOpcode = "J4_cmpgtuir";
8050 let isTaken = Inst{13};
8051 let isExtendable = 1;
8052 let opExtendable = 2;
8053 let isExtentSigned = 1;
8054 let opExtentBits = 11;
8055 let opExtentAlign = 2;
8056 let opNewValue = 0;
8057 }
8058 def J4_cmpgtui_t_jumpnv_t : HInst<
8059 (outs),
8060 (ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8061 "if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8062 tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
8063 let Inst{0-0} = 0b0;
8064 let Inst{13-13} = 0b1;
8065 let Inst{19-19} = 0b0;
8066 let Inst{31-22} = 0b0010010100;
8067 let isPredicated = 1;
8068 let isTerminator = 1;
8069 let isBranch = 1;
8070 let isNewValue = 1;
8071 let cofMax1 = 1;
8072 let isRestrictNoSlot1Store = 1;
8073 let Defs = [PC];
8074 let BaseOpcode = "J4_cmpgtuir";
8075 let isTaken = Inst{13};
8076 let isExtendable = 1;
8077 let opExtendable = 2;
8078 let isExtentSigned = 1;
8079 let opExtentBits = 11;
8080 let opExtentAlign = 2;
8081 let opNewValue = 0;
8082 }
8083 def J4_cmpgtui_tp0_jump_nt : HInst<
8084 (outs),
8085 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8086 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
8087 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8088 let Inst{0-0} = 0b0;
8089 let Inst{13-13} = 0b0;
8090 let Inst{31-22} = 0b0001000100;
8091 let isPredicated = 1;
8092 let isTerminator = 1;
8093 let isBranch = 1;
8094 let isPredicatedNew = 1;
8095 let cofRelax1 = 1;
8096 let cofRelax2 = 1;
8097 let cofMax1 = 1;
8098 let Uses = [P0];
8099 let Defs = [P0, PC];
8100 let BaseOpcode = "J4_cmpgtuip0";
8101 let isTaken = Inst{13};
8102 let isExtendable = 1;
8103 let opExtendable = 2;
8104 let isExtentSigned = 1;
8105 let opExtentBits = 11;
8106 let opExtentAlign = 2;
8107 }
8108 def J4_cmpgtui_tp0_jump_t : HInst<
8109 (outs),
8110 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8111 "p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
8112 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8113 let Inst{0-0} = 0b0;
8114 let Inst{13-13} = 0b1;
8115 let Inst{31-22} = 0b0001000100;
8116 let isPredicated = 1;
8117 let isTerminator = 1;
8118 let isBranch = 1;
8119 let isPredicatedNew = 1;
8120 let cofRelax1 = 1;
8121 let cofRelax2 = 1;
8122 let cofMax1 = 1;
8123 let Uses = [P0];
8124 let Defs = [P0, PC];
8125 let BaseOpcode = "J4_cmpgtuip0";
8126 let isTaken = Inst{13};
8127 let isExtendable = 1;
8128 let opExtendable = 2;
8129 let isExtentSigned = 1;
8130 let opExtentBits = 11;
8131 let opExtentAlign = 2;
8132 }
8133 def J4_cmpgtui_tp1_jump_nt : HInst<
8134 (outs),
8135 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8136 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
8137 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8138 let Inst{0-0} = 0b0;
8139 let Inst{13-13} = 0b0;
8140 let Inst{31-22} = 0b0001001100;
8141 let isPredicated = 1;
8142 let isTerminator = 1;
8143 let isBranch = 1;
8144 let isPredicatedNew = 1;
8145 let cofRelax1 = 1;
8146 let cofRelax2 = 1;
8147 let cofMax1 = 1;
8148 let Uses = [P1];
8149 let Defs = [P1, PC];
8150 let BaseOpcode = "J4_cmpgtuip1";
8151 let isTaken = Inst{13};
8152 let isExtendable = 1;
8153 let opExtendable = 2;
8154 let isExtentSigned = 1;
8155 let opExtentBits = 11;
8156 let opExtentAlign = 2;
8157 }
8158 def J4_cmpgtui_tp1_jump_t : HInst<
8159 (outs),
8160 (ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8161 "p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
8162 tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8163 let Inst{0-0} = 0b0;
8164 let Inst{13-13} = 0b1;
8165 let Inst{31-22} = 0b0001001100;
8166 let isPredicated = 1;
8167 let isTerminator = 1;
8168 let isBranch = 1;
8169 let isPredicatedNew = 1;
8170 let cofRelax1 = 1;
8171 let cofRelax2 = 1;
8172 let cofMax1 = 1;
8173 let Uses = [P1];
8174 let Defs = [P1, PC];
8175 let BaseOpcode = "J4_cmpgtuip1";
8176 let isTaken = Inst{13};
8177 let isExtendable = 1;
8178 let opExtendable = 2;
8179 let isExtentSigned = 1;
8180 let opExtentBits = 11;
8181 let opExtentAlign = 2;
8182 }
8183 def J4_cmplt_f_jumpnv_nt : HInst<
8184 (outs),
8185 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8186 "if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8187 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8188 let Inst{0-0} = 0b0;
8189 let Inst{13-13} = 0b0;
8190 let Inst{19-19} = 0b0;
8191 let Inst{31-22} = 0b0010000111;
8192 let isPredicated = 1;
8193 let isPredicatedFalse = 1;
8194 let isTerminator = 1;
8195 let isBranch = 1;
8196 let isNewValue = 1;
8197 let cofMax1 = 1;
8198 let isRestrictNoSlot1Store = 1;
8199 let Defs = [PC];
8200 let BaseOpcode = "J4_cmpltr";
8201 let isTaken = Inst{13};
8202 let isExtendable = 1;
8203 let opExtendable = 2;
8204 let isExtentSigned = 1;
8205 let opExtentBits = 11;
8206 let opExtentAlign = 2;
8207 let opNewValue = 1;
8208 }
8209 def J4_cmplt_f_jumpnv_t : HInst<
8210 (outs),
8211 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8212 "if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8213 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8214 let Inst{0-0} = 0b0;
8215 let Inst{13-13} = 0b1;
8216 let Inst{19-19} = 0b0;
8217 let Inst{31-22} = 0b0010000111;
8218 let isPredicated = 1;
8219 let isPredicatedFalse = 1;
8220 let isTerminator = 1;
8221 let isBranch = 1;
8222 let isNewValue = 1;
8223 let cofMax1 = 1;
8224 let isRestrictNoSlot1Store = 1;
8225 let Defs = [PC];
8226 let BaseOpcode = "J4_cmpltr";
8227 let isTaken = Inst{13};
8228 let isExtendable = 1;
8229 let opExtendable = 2;
8230 let isExtentSigned = 1;
8231 let opExtentBits = 11;
8232 let opExtentAlign = 2;
8233 let opNewValue = 1;
8234 }
8235 def J4_cmplt_t_jumpnv_nt : HInst<
8236 (outs),
8237 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8238 "if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8239 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8240 let Inst{0-0} = 0b0;
8241 let Inst{13-13} = 0b0;
8242 let Inst{19-19} = 0b0;
8243 let Inst{31-22} = 0b0010000110;
8244 let isPredicated = 1;
8245 let isTerminator = 1;
8246 let isBranch = 1;
8247 let isNewValue = 1;
8248 let cofMax1 = 1;
8249 let isRestrictNoSlot1Store = 1;
8250 let Defs = [PC];
8251 let BaseOpcode = "J4_cmpltr";
8252 let isTaken = Inst{13};
8253 let isExtendable = 1;
8254 let opExtendable = 2;
8255 let isExtentSigned = 1;
8256 let opExtentBits = 11;
8257 let opExtentAlign = 2;
8258 let opNewValue = 1;
8259 }
8260 def J4_cmplt_t_jumpnv_t : HInst<
8261 (outs),
8262 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8263 "if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8264 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8265 let Inst{0-0} = 0b0;
8266 let Inst{13-13} = 0b1;
8267 let Inst{19-19} = 0b0;
8268 let Inst{31-22} = 0b0010000110;
8269 let isPredicated = 1;
8270 let isTerminator = 1;
8271 let isBranch = 1;
8272 let isNewValue = 1;
8273 let cofMax1 = 1;
8274 let isRestrictNoSlot1Store = 1;
8275 let Defs = [PC];
8276 let BaseOpcode = "J4_cmpltr";
8277 let isTaken = Inst{13};
8278 let isExtendable = 1;
8279 let opExtendable = 2;
8280 let isExtentSigned = 1;
8281 let opExtentBits = 11;
8282 let opExtentAlign = 2;
8283 let opNewValue = 1;
8284 }
8285 def J4_cmpltu_f_jumpnv_nt : HInst<
8286 (outs),
8287 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8288 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8289 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8290 let Inst{0-0} = 0b0;
8291 let Inst{13-13} = 0b0;
8292 let Inst{19-19} = 0b0;
8293 let Inst{31-22} = 0b0010001001;
8294 let isPredicated = 1;
8295 let isPredicatedFalse = 1;
8296 let isTerminator = 1;
8297 let isBranch = 1;
8298 let isNewValue = 1;
8299 let cofMax1 = 1;
8300 let isRestrictNoSlot1Store = 1;
8301 let Defs = [PC];
8302 let BaseOpcode = "J4_cmpltur";
8303 let isTaken = Inst{13};
8304 let isExtendable = 1;
8305 let opExtendable = 2;
8306 let isExtentSigned = 1;
8307 let opExtentBits = 11;
8308 let opExtentAlign = 2;
8309 let opNewValue = 1;
8310 }
8311 def J4_cmpltu_f_jumpnv_t : HInst<
8312 (outs),
8313 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8314 "if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8315 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8316 let Inst{0-0} = 0b0;
8317 let Inst{13-13} = 0b1;
8318 let Inst{19-19} = 0b0;
8319 let Inst{31-22} = 0b0010001001;
8320 let isPredicated = 1;
8321 let isPredicatedFalse = 1;
8322 let isTerminator = 1;
8323 let isBranch = 1;
8324 let isNewValue = 1;
8325 let cofMax1 = 1;
8326 let isRestrictNoSlot1Store = 1;
8327 let Defs = [PC];
8328 let BaseOpcode = "J4_cmpltur";
8329 let isTaken = Inst{13};
8330 let isExtendable = 1;
8331 let opExtendable = 2;
8332 let isExtentSigned = 1;
8333 let opExtentBits = 11;
8334 let opExtentAlign = 2;
8335 let opNewValue = 1;
8336 }
8337 def J4_cmpltu_t_jumpnv_nt : HInst<
8338 (outs),
8339 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8340 "if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8341 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8342 let Inst{0-0} = 0b0;
8343 let Inst{13-13} = 0b0;
8344 let Inst{19-19} = 0b0;
8345 let Inst{31-22} = 0b0010001000;
8346 let isPredicated = 1;
8347 let isTerminator = 1;
8348 let isBranch = 1;
8349 let isNewValue = 1;
8350 let cofMax1 = 1;
8351 let isRestrictNoSlot1Store = 1;
8352 let Defs = [PC];
8353 let BaseOpcode = "J4_cmpltur";
8354 let isTaken = Inst{13};
8355 let isExtendable = 1;
8356 let opExtendable = 2;
8357 let isExtentSigned = 1;
8358 let opExtentBits = 11;
8359 let opExtentAlign = 2;
8360 let opNewValue = 1;
8361 }
8362 def J4_cmpltu_t_jumpnv_t : HInst<
8363 (outs),
8364 (ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8365 "if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8366 tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8367 let Inst{0-0} = 0b0;
8368 let Inst{13-13} = 0b1;
8369 let Inst{19-19} = 0b0;
8370 let Inst{31-22} = 0b0010001000;
8371 let isPredicated = 1;
8372 let isTerminator = 1;
8373 let isBranch = 1;
8374 let isNewValue = 1;
8375 let cofMax1 = 1;
8376 let isRestrictNoSlot1Store = 1;
8377 let Defs = [PC];
8378 let BaseOpcode = "J4_cmpltur";
8379 let isTaken = Inst{13};
8380 let isExtendable = 1;
8381 let opExtendable = 2;
8382 let isExtentSigned = 1;
8383 let opExtentBits = 11;
8384 let opExtentAlign = 2;
8385 let opNewValue = 1;
8386 }
8387 def J4_hintjumpr : HInst<
8388 (outs),
8389 (ins IntRegs:$Rs32),
8390 "hintjr($Rs32)",
8391 tc_d5b7b0c1, TypeJ>, Enc_ecbcc8 {
8392 let Inst{13-0} = 0b00000000000000;
8393 let Inst{31-21} = 0b01010010101;
8394 let isTerminator = 1;
8395 let isIndirectBranch = 1;
8396 let isBranch = 1;
8397 let cofMax1 = 1;
8398 }
8399 def J4_jumpseti : HInst<
8400 (outs GeneralSubRegs:$Rd16),
8401 (ins u6_0Imm:$II, b30_2Imm:$Ii),
8402 "$Rd16 = #$II ; jump $Ii",
8403 tc_0663f615, TypeCJ>, Enc_9e4c3f {
8404 let Inst{0-0} = 0b0;
8405 let Inst{31-22} = 0b0001011000;
8406 let hasNewValue = 1;
8407 let opNewValue = 0;
8408 let isTerminator = 1;
8409 let isBranch = 1;
8410 let cofRelax2 = 1;
8411 let cofMax1 = 1;
8412 let Defs = [PC];
8413 let isExtendable = 1;
8414 let opExtendable = 2;
8415 let isExtentSigned = 1;
8416 let opExtentBits = 11;
8417 let opExtentAlign = 2;
8418 }
8419 def J4_jumpsetr : HInst<
8420 (outs GeneralSubRegs:$Rd16),
8421 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8422 "$Rd16 = $Rs16 ; jump $Ii",
8423 tc_0663f615, TypeCJ>, Enc_66bce1 {
8424 let Inst{0-0} = 0b0;
8425 let Inst{13-12} = 0b00;
8426 let Inst{31-22} = 0b0001011100;
8427 let hasNewValue = 1;
8428 let opNewValue = 0;
8429 let isTerminator = 1;
8430 let isBranch = 1;
8431 let cofRelax2 = 1;
8432 let cofMax1 = 1;
8433 let Defs = [PC];
8434 let isExtendable = 1;
8435 let opExtendable = 2;
8436 let isExtentSigned = 1;
8437 let opExtentBits = 11;
8438 let opExtentAlign = 2;
8439 }
8440 def J4_tstbit0_f_jumpnv_nt : HInst<
8441 (outs),
8442 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8443 "if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8444 tc_8c945be0, TypeNCJ>, Enc_69d63b {
8445 let Inst{0-0} = 0b0;
8446 let Inst{13-8} = 0b000000;
8447 let Inst{19-19} = 0b0;
8448 let Inst{31-22} = 0b0010010111;
8449 let isPredicated = 1;
8450 let isPredicatedFalse = 1;
8451 let isTerminator = 1;
8452 let isBranch = 1;
8453 let isNewValue = 1;
8454 let cofMax1 = 1;
8455 let isRestrictNoSlot1Store = 1;
8456 let Defs = [PC];
8457 let isTaken = Inst{13};
8458 let isExtendable = 1;
8459 let opExtendable = 1;
8460 let isExtentSigned = 1;
8461 let opExtentBits = 11;
8462 let opExtentAlign = 2;
8463 let opNewValue = 0;
8464 }
8465 def J4_tstbit0_f_jumpnv_t : HInst<
8466 (outs),
8467 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8468 "if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8469 tc_8c945be0, TypeNCJ>, Enc_69d63b {
8470 let Inst{0-0} = 0b0;
8471 let Inst{13-8} = 0b100000;
8472 let Inst{19-19} = 0b0;
8473 let Inst{31-22} = 0b0010010111;
8474 let isPredicated = 1;
8475 let isPredicatedFalse = 1;
8476 let isTerminator = 1;
8477 let isBranch = 1;
8478 let isNewValue = 1;
8479 let cofMax1 = 1;
8480 let isRestrictNoSlot1Store = 1;
8481 let Defs = [PC];
8482 let isTaken = Inst{13};
8483 let isExtendable = 1;
8484 let opExtendable = 1;
8485 let isExtentSigned = 1;
8486 let opExtentBits = 11;
8487 let opExtentAlign = 2;
8488 let opNewValue = 0;
8489 }
8490 def J4_tstbit0_fp0_jump_nt : HInst<
8491 (outs),
8492 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8493 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8494 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8495 let Inst{0-0} = 0b0;
8496 let Inst{13-8} = 0b000011;
8497 let Inst{31-22} = 0b0001000111;
8498 let isPredicated = 1;
8499 let isPredicatedFalse = 1;
8500 let isTerminator = 1;
8501 let isBranch = 1;
8502 let isPredicatedNew = 1;
8503 let cofRelax1 = 1;
8504 let cofRelax2 = 1;
8505 let cofMax1 = 1;
8506 let Uses = [P0];
8507 let Defs = [P0, PC];
8508 let isTaken = Inst{13};
8509 let isExtendable = 1;
8510 let opExtendable = 1;
8511 let isExtentSigned = 1;
8512 let opExtentBits = 11;
8513 let opExtentAlign = 2;
8514 }
8515 def J4_tstbit0_fp0_jump_t : HInst<
8516 (outs),
8517 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8518 "p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8519 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8520 let Inst{0-0} = 0b0;
8521 let Inst{13-8} = 0b100011;
8522 let Inst{31-22} = 0b0001000111;
8523 let isPredicated = 1;
8524 let isPredicatedFalse = 1;
8525 let isTerminator = 1;
8526 let isBranch = 1;
8527 let isPredicatedNew = 1;
8528 let cofRelax1 = 1;
8529 let cofRelax2 = 1;
8530 let cofMax1 = 1;
8531 let Uses = [P0];
8532 let Defs = [P0, PC];
8533 let isTaken = Inst{13};
8534 let isExtendable = 1;
8535 let opExtendable = 1;
8536 let isExtentSigned = 1;
8537 let opExtentBits = 11;
8538 let opExtentAlign = 2;
8539 }
8540 def J4_tstbit0_fp1_jump_nt : HInst<
8541 (outs),
8542 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8543 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8544 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8545 let Inst{0-0} = 0b0;
8546 let Inst{13-8} = 0b000011;
8547 let Inst{31-22} = 0b0001001111;
8548 let isPredicated = 1;
8549 let isPredicatedFalse = 1;
8550 let isTerminator = 1;
8551 let isBranch = 1;
8552 let isPredicatedNew = 1;
8553 let cofRelax1 = 1;
8554 let cofRelax2 = 1;
8555 let cofMax1 = 1;
8556 let Uses = [P1];
8557 let Defs = [P1, PC];
8558 let isTaken = Inst{13};
8559 let isExtendable = 1;
8560 let opExtendable = 1;
8561 let isExtentSigned = 1;
8562 let opExtentBits = 11;
8563 let opExtentAlign = 2;
8564 }
8565 def J4_tstbit0_fp1_jump_t : HInst<
8566 (outs),
8567 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8568 "p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8569 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8570 let Inst{0-0} = 0b0;
8571 let Inst{13-8} = 0b100011;
8572 let Inst{31-22} = 0b0001001111;
8573 let isPredicated = 1;
8574 let isPredicatedFalse = 1;
8575 let isTerminator = 1;
8576 let isBranch = 1;
8577 let isPredicatedNew = 1;
8578 let cofRelax1 = 1;
8579 let cofRelax2 = 1;
8580 let cofMax1 = 1;
8581 let Uses = [P1];
8582 let Defs = [P1, PC];
8583 let isTaken = Inst{13};
8584 let isExtendable = 1;
8585 let opExtendable = 1;
8586 let isExtentSigned = 1;
8587 let opExtentBits = 11;
8588 let opExtentAlign = 2;
8589 }
8590 def J4_tstbit0_t_jumpnv_nt : HInst<
8591 (outs),
8592 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8593 "if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8594 tc_8c945be0, TypeNCJ>, Enc_69d63b {
8595 let Inst{0-0} = 0b0;
8596 let Inst{13-8} = 0b000000;
8597 let Inst{19-19} = 0b0;
8598 let Inst{31-22} = 0b0010010110;
8599 let isPredicated = 1;
8600 let isTerminator = 1;
8601 let isBranch = 1;
8602 let isNewValue = 1;
8603 let cofMax1 = 1;
8604 let isRestrictNoSlot1Store = 1;
8605 let Defs = [PC];
8606 let isTaken = Inst{13};
8607 let isExtendable = 1;
8608 let opExtendable = 1;
8609 let isExtentSigned = 1;
8610 let opExtentBits = 11;
8611 let opExtentAlign = 2;
8612 let opNewValue = 0;
8613 }
8614 def J4_tstbit0_t_jumpnv_t : HInst<
8615 (outs),
8616 (ins IntRegs:$Ns8, b30_2Imm:$Ii),
8617 "if (tstbit($Ns8.new,#0)) jump:t $Ii",
8618 tc_8c945be0, TypeNCJ>, Enc_69d63b {
8619 let Inst{0-0} = 0b0;
8620 let Inst{13-8} = 0b100000;
8621 let Inst{19-19} = 0b0;
8622 let Inst{31-22} = 0b0010010110;
8623 let isPredicated = 1;
8624 let isTerminator = 1;
8625 let isBranch = 1;
8626 let isNewValue = 1;
8627 let cofMax1 = 1;
8628 let isRestrictNoSlot1Store = 1;
8629 let Defs = [PC];
8630 let isTaken = Inst{13};
8631 let isExtendable = 1;
8632 let opExtendable = 1;
8633 let isExtentSigned = 1;
8634 let opExtentBits = 11;
8635 let opExtentAlign = 2;
8636 let opNewValue = 0;
8637 }
8638 def J4_tstbit0_tp0_jump_nt : HInst<
8639 (outs),
8640 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8641 "p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8642 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8643 let Inst{0-0} = 0b0;
8644 let Inst{13-8} = 0b000011;
8645 let Inst{31-22} = 0b0001000110;
8646 let isPredicated = 1;
8647 let isTerminator = 1;
8648 let isBranch = 1;
8649 let isPredicatedNew = 1;
8650 let cofRelax1 = 1;
8651 let cofRelax2 = 1;
8652 let cofMax1 = 1;
8653 let Uses = [P0];
8654 let Defs = [P0, PC];
8655 let isTaken = Inst{13};
8656 let isExtendable = 1;
8657 let opExtendable = 1;
8658 let isExtentSigned = 1;
8659 let opExtentBits = 11;
8660 let opExtentAlign = 2;
8661 }
8662 def J4_tstbit0_tp0_jump_t : HInst<
8663 (outs),
8664 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8665 "p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8666 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8667 let Inst{0-0} = 0b0;
8668 let Inst{13-8} = 0b100011;
8669 let Inst{31-22} = 0b0001000110;
8670 let isPredicated = 1;
8671 let isTerminator = 1;
8672 let isBranch = 1;
8673 let isPredicatedNew = 1;
8674 let cofRelax1 = 1;
8675 let cofRelax2 = 1;
8676 let cofMax1 = 1;
8677 let Uses = [P0];
8678 let Defs = [P0, PC];
8679 let isTaken = Inst{13};
8680 let isExtendable = 1;
8681 let opExtendable = 1;
8682 let isExtentSigned = 1;
8683 let opExtentBits = 11;
8684 let opExtentAlign = 2;
8685 }
8686 def J4_tstbit0_tp1_jump_nt : HInst<
8687 (outs),
8688 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8689 "p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8690 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8691 let Inst{0-0} = 0b0;
8692 let Inst{13-8} = 0b000011;
8693 let Inst{31-22} = 0b0001001110;
8694 let isPredicated = 1;
8695 let isTerminator = 1;
8696 let isBranch = 1;
8697 let isPredicatedNew = 1;
8698 let cofRelax1 = 1;
8699 let cofRelax2 = 1;
8700 let cofMax1 = 1;
8701 let Uses = [P1];
8702 let Defs = [P1, PC];
8703 let isTaken = Inst{13};
8704 let isExtendable = 1;
8705 let opExtendable = 1;
8706 let isExtentSigned = 1;
8707 let opExtentBits = 11;
8708 let opExtentAlign = 2;
8709 }
8710 def J4_tstbit0_tp1_jump_t : HInst<
8711 (outs),
8712 (ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8713 "p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8714 tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8715 let Inst{0-0} = 0b0;
8716 let Inst{13-8} = 0b100011;
8717 let Inst{31-22} = 0b0001001110;
8718 let isPredicated = 1;
8719 let isTerminator = 1;
8720 let isBranch = 1;
8721 let isPredicatedNew = 1;
8722 let cofRelax1 = 1;
8723 let cofRelax2 = 1;
8724 let cofMax1 = 1;
8725 let Uses = [P1];
8726 let Defs = [P1, PC];
8727 let isTaken = Inst{13};
8728 let isExtendable = 1;
8729 let opExtendable = 1;
8730 let isExtentSigned = 1;
8731 let opExtentBits = 11;
8732 let opExtentAlign = 2;
8733 }
8734 def L2_deallocframe : HInst<
8735 (outs DoubleRegs:$Rdd32),
8736 (ins IntRegs:$Rs32),
8737 "$Rdd32 = deallocframe($Rs32):raw",
8738 tc_15aa71c5, TypeLD>, Enc_3a3d62 {
8739 let Inst{13-5} = 0b000000000;
8740 let Inst{31-21} = 0b10010000000;
8741 let accessSize = DoubleWordAccess;
8742 let mayLoad = 1;
8743 let Uses = [FRAMEKEY];
8744 let Defs = [R29];
8745 }
8746 def L2_loadalignb_io : HInst<
8747 (outs DoubleRegs:$Ryy32),
8748 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8749 "$Ryy32 = memb_fifo($Rs32+#$Ii)",
8750 tc_5ef37dc4, TypeLD>, Enc_a27588 {
8751 let Inst{24-21} = 0b0100;
8752 let Inst{31-27} = 0b10010;
8753 let addrMode = BaseImmOffset;
8754 let accessSize = ByteAccess;
8755 let mayLoad = 1;
8756 let isExtendable = 1;
8757 let opExtendable = 3;
8758 let isExtentSigned = 1;
8759 let opExtentBits = 11;
8760 let opExtentAlign = 0;
8761 let Constraints = "$Ryy32 = $Ryy32in";
8762 }
8763 def L2_loadalignb_pbr : HInst<
8764 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8765 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8766 "$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8767 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8768 let Inst{12-5} = 0b00000000;
8769 let Inst{31-21} = 0b10011110100;
8770 let addrMode = PostInc;
8771 let accessSize = ByteAccess;
8772 let mayLoad = 1;
8773 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8774 }
8775 def L2_loadalignb_pci : HInst<
8776 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8777 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8778 "$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8779 tc_785f65a7, TypeLD>, Enc_74aef2 {
8780 let Inst{12-9} = 0b0000;
8781 let Inst{31-21} = 0b10011000100;
8782 let addrMode = PostInc;
8783 let accessSize = ByteAccess;
8784 let mayLoad = 1;
8785 let Uses = [CS];
8786 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8787 }
8788 def L2_loadalignb_pcr : HInst<
8789 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8790 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8791 "$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8792 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8793 let Inst{12-5} = 0b00010000;
8794 let Inst{31-21} = 0b10011000100;
8795 let addrMode = PostInc;
8796 let accessSize = ByteAccess;
8797 let mayLoad = 1;
8798 let Uses = [CS];
8799 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8800 }
8801 def L2_loadalignb_pi : HInst<
8802 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8803 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8804 "$Ryy32 = memb_fifo($Rx32++#$Ii)",
8805 tc_3c76b0ff, TypeLD>, Enc_6b197f {
8806 let Inst{13-9} = 0b00000;
8807 let Inst{31-21} = 0b10011010100;
8808 let addrMode = PostInc;
8809 let accessSize = ByteAccess;
8810 let mayLoad = 1;
8811 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8812 }
8813 def L2_loadalignb_pr : HInst<
8814 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8815 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8816 "$Ryy32 = memb_fifo($Rx32++$Mu2)",
8817 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8818 let Inst{12-5} = 0b00000000;
8819 let Inst{31-21} = 0b10011100100;
8820 let addrMode = PostInc;
8821 let accessSize = ByteAccess;
8822 let mayLoad = 1;
8823 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8824 }
8825 def L2_loadalignb_zomap : HInst<
8826 (outs DoubleRegs:$Ryy32),
8827 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8828 "$Ryy32 = memb_fifo($Rs32)",
8829 tc_5ef37dc4, TypeMAPPING> {
8830 let isPseudo = 1;
8831 let isCodeGenOnly = 1;
8832 let Constraints = "$Ryy32 = $Ryy32in";
8833 }
8834 def L2_loadalignh_io : HInst<
8835 (outs DoubleRegs:$Ryy32),
8836 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8837 "$Ryy32 = memh_fifo($Rs32+#$Ii)",
8838 tc_5ef37dc4, TypeLD>, Enc_5cd7e9 {
8839 let Inst{24-21} = 0b0010;
8840 let Inst{31-27} = 0b10010;
8841 let addrMode = BaseImmOffset;
8842 let accessSize = HalfWordAccess;
8843 let mayLoad = 1;
8844 let isExtendable = 1;
8845 let opExtendable = 3;
8846 let isExtentSigned = 1;
8847 let opExtentBits = 12;
8848 let opExtentAlign = 1;
8849 let Constraints = "$Ryy32 = $Ryy32in";
8850 }
8851 def L2_loadalignh_pbr : HInst<
8852 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8853 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8854 "$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8855 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8856 let Inst{12-5} = 0b00000000;
8857 let Inst{31-21} = 0b10011110010;
8858 let addrMode = PostInc;
8859 let accessSize = HalfWordAccess;
8860 let mayLoad = 1;
8861 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8862 }
8863 def L2_loadalignh_pci : HInst<
8864 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8865 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8866 "$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
8867 tc_785f65a7, TypeLD>, Enc_9e2e1c {
8868 let Inst{12-9} = 0b0000;
8869 let Inst{31-21} = 0b10011000010;
8870 let addrMode = PostInc;
8871 let accessSize = HalfWordAccess;
8872 let mayLoad = 1;
8873 let Uses = [CS];
8874 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8875 }
8876 def L2_loadalignh_pcr : HInst<
8877 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8878 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8879 "$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
8880 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8881 let Inst{12-5} = 0b00010000;
8882 let Inst{31-21} = 0b10011000010;
8883 let addrMode = PostInc;
8884 let accessSize = HalfWordAccess;
8885 let mayLoad = 1;
8886 let Uses = [CS];
8887 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8888 }
8889 def L2_loadalignh_pi : HInst<
8890 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8891 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
8892 "$Ryy32 = memh_fifo($Rx32++#$Ii)",
8893 tc_3c76b0ff, TypeLD>, Enc_bd1cbc {
8894 let Inst{13-9} = 0b00000;
8895 let Inst{31-21} = 0b10011010010;
8896 let addrMode = PostInc;
8897 let accessSize = HalfWordAccess;
8898 let mayLoad = 1;
8899 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8900 }
8901 def L2_loadalignh_pr : HInst<
8902 (outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8903 (ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8904 "$Ryy32 = memh_fifo($Rx32++$Mu2)",
8905 tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8906 let Inst{12-5} = 0b00000000;
8907 let Inst{31-21} = 0b10011100010;
8908 let addrMode = PostInc;
8909 let accessSize = HalfWordAccess;
8910 let mayLoad = 1;
8911 let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8912 }
8913 def L2_loadalignh_zomap : HInst<
8914 (outs DoubleRegs:$Ryy32),
8915 (ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8916 "$Ryy32 = memh_fifo($Rs32)",
8917 tc_5ef37dc4, TypeMAPPING> {
8918 let isPseudo = 1;
8919 let isCodeGenOnly = 1;
8920 let Constraints = "$Ryy32 = $Ryy32in";
8921 }
8922 def L2_loadbsw2_io : HInst<
8923 (outs IntRegs:$Rd32),
8924 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
8925 "$Rd32 = membh($Rs32+#$Ii)",
8926 tc_17e0d2cd, TypeLD>, Enc_de0214 {
8927 let Inst{24-21} = 0b0001;
8928 let Inst{31-27} = 0b10010;
8929 let hasNewValue = 1;
8930 let opNewValue = 0;
8931 let addrMode = BaseImmOffset;
8932 let accessSize = HalfWordAccess;
8933 let mayLoad = 1;
8934 let isExtendable = 1;
8935 let opExtendable = 2;
8936 let isExtentSigned = 1;
8937 let opExtentBits = 12;
8938 let opExtentAlign = 1;
8939 }
8940 def L2_loadbsw2_pbr : HInst<
8941 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8942 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8943 "$Rd32 = membh($Rx32++$Mu2:brev)",
8944 tc_44d3da28, TypeLD>, Enc_74d4e5 {
8945 let Inst{12-5} = 0b00000000;
8946 let Inst{31-21} = 0b10011110001;
8947 let hasNewValue = 1;
8948 let opNewValue = 0;
8949 let addrMode = PostInc;
8950 let accessSize = HalfWordAccess;
8951 let mayLoad = 1;
8952 let Constraints = "$Rx32 = $Rx32in";
8953 }
8954 def L2_loadbsw2_pci : HInst<
8955 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8956 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8957 "$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
8958 tc_e93a3d71, TypeLD>, Enc_e83554 {
8959 let Inst{12-9} = 0b0000;
8960 let Inst{31-21} = 0b10011000001;
8961 let hasNewValue = 1;
8962 let opNewValue = 0;
8963 let addrMode = PostInc;
8964 let accessSize = HalfWordAccess;
8965 let mayLoad = 1;
8966 let Uses = [CS];
8967 let Constraints = "$Rx32 = $Rx32in";
8968 }
8969 def L2_loadbsw2_pcr : HInst<
8970 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8971 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
8972 "$Rd32 = membh($Rx32++I:circ($Mu2))",
8973 tc_44d3da28, TypeLD>, Enc_74d4e5 {
8974 let Inst{12-5} = 0b00010000;
8975 let Inst{31-21} = 0b10011000001;
8976 let hasNewValue = 1;
8977 let opNewValue = 0;
8978 let addrMode = PostInc;
8979 let accessSize = HalfWordAccess;
8980 let mayLoad = 1;
8981 let Uses = [CS];
8982 let Constraints = "$Rx32 = $Rx32in";
8983 }
8984 def L2_loadbsw2_pi : HInst<
8985 (outs IntRegs:$Rd32, IntRegs:$Rx32),
8986 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
8987 "$Rd32 = membh($Rx32++#$Ii)",
8988 tc_44d3da28, TypeLD>, Enc_152467 {
8989 let Inst{13-9} = 0b00000;
8990 let Inst{31-21} = 0b10011010001;
8991 let hasNewValue = 1;
8992 let opNewValue = 0;
8993 let addrMode = PostInc;
8994 let accessSize = HalfWordAccess;
8995 let mayLoad = 1;
8996 let Constraints = "$Rx32 = $Rx32in";
8997 }
8998 def L2_loadbsw2_pr : HInst<
8999 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9000 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9001 "$Rd32 = membh($Rx32++$Mu2)",
9002 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9003 let Inst{12-5} = 0b00000000;
9004 let Inst{31-21} = 0b10011100001;
9005 let hasNewValue = 1;
9006 let opNewValue = 0;
9007 let addrMode = PostInc;
9008 let accessSize = HalfWordAccess;
9009 let mayLoad = 1;
9010 let Constraints = "$Rx32 = $Rx32in";
9011 }
9012 def L2_loadbsw2_zomap : HInst<
9013 (outs IntRegs:$Rd32),
9014 (ins IntRegs:$Rs32),
9015 "$Rd32 = membh($Rs32)",
9016 tc_17e0d2cd, TypeMAPPING> {
9017 let hasNewValue = 1;
9018 let opNewValue = 0;
9019 let isPseudo = 1;
9020 let isCodeGenOnly = 1;
9021 }
9022 def L2_loadbsw4_io : HInst<
9023 (outs DoubleRegs:$Rdd32),
9024 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9025 "$Rdd32 = membh($Rs32+#$Ii)",
9026 tc_17e0d2cd, TypeLD>, Enc_2d7491 {
9027 let Inst{24-21} = 0b0111;
9028 let Inst{31-27} = 0b10010;
9029 let addrMode = BaseImmOffset;
9030 let accessSize = WordAccess;
9031 let mayLoad = 1;
9032 let isExtendable = 1;
9033 let opExtendable = 2;
9034 let isExtentSigned = 1;
9035 let opExtentBits = 13;
9036 let opExtentAlign = 2;
9037 }
9038 def L2_loadbsw4_pbr : HInst<
9039 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9040 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9041 "$Rdd32 = membh($Rx32++$Mu2:brev)",
9042 tc_44d3da28, TypeLD>, Enc_7eee72 {
9043 let Inst{12-5} = 0b00000000;
9044 let Inst{31-21} = 0b10011110111;
9045 let addrMode = PostInc;
9046 let accessSize = WordAccess;
9047 let mayLoad = 1;
9048 let Constraints = "$Rx32 = $Rx32in";
9049 }
9050 def L2_loadbsw4_pci : HInst<
9051 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9052 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9053 "$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9054 tc_e93a3d71, TypeLD>, Enc_70b24b {
9055 let Inst{12-9} = 0b0000;
9056 let Inst{31-21} = 0b10011000111;
9057 let addrMode = PostInc;
9058 let accessSize = WordAccess;
9059 let mayLoad = 1;
9060 let Uses = [CS];
9061 let Constraints = "$Rx32 = $Rx32in";
9062 }
9063 def L2_loadbsw4_pcr : HInst<
9064 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9065 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9066 "$Rdd32 = membh($Rx32++I:circ($Mu2))",
9067 tc_44d3da28, TypeLD>, Enc_7eee72 {
9068 let Inst{12-5} = 0b00010000;
9069 let Inst{31-21} = 0b10011000111;
9070 let addrMode = PostInc;
9071 let accessSize = WordAccess;
9072 let mayLoad = 1;
9073 let Uses = [CS];
9074 let Constraints = "$Rx32 = $Rx32in";
9075 }
9076 def L2_loadbsw4_pi : HInst<
9077 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9078 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9079 "$Rdd32 = membh($Rx32++#$Ii)",
9080 tc_44d3da28, TypeLD>, Enc_71f1b4 {
9081 let Inst{13-9} = 0b00000;
9082 let Inst{31-21} = 0b10011010111;
9083 let addrMode = PostInc;
9084 let accessSize = WordAccess;
9085 let mayLoad = 1;
9086 let Constraints = "$Rx32 = $Rx32in";
9087 }
9088 def L2_loadbsw4_pr : HInst<
9089 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9090 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9091 "$Rdd32 = membh($Rx32++$Mu2)",
9092 tc_44d3da28, TypeLD>, Enc_7eee72 {
9093 let Inst{12-5} = 0b00000000;
9094 let Inst{31-21} = 0b10011100111;
9095 let addrMode = PostInc;
9096 let accessSize = WordAccess;
9097 let mayLoad = 1;
9098 let Constraints = "$Rx32 = $Rx32in";
9099 }
9100 def L2_loadbsw4_zomap : HInst<
9101 (outs DoubleRegs:$Rdd32),
9102 (ins IntRegs:$Rs32),
9103 "$Rdd32 = membh($Rs32)",
9104 tc_17e0d2cd, TypeMAPPING> {
9105 let isPseudo = 1;
9106 let isCodeGenOnly = 1;
9107 }
9108 def L2_loadbzw2_io : HInst<
9109 (outs IntRegs:$Rd32),
9110 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9111 "$Rd32 = memubh($Rs32+#$Ii)",
9112 tc_17e0d2cd, TypeLD>, Enc_de0214 {
9113 let Inst{24-21} = 0b0011;
9114 let Inst{31-27} = 0b10010;
9115 let hasNewValue = 1;
9116 let opNewValue = 0;
9117 let addrMode = BaseImmOffset;
9118 let accessSize = HalfWordAccess;
9119 let mayLoad = 1;
9120 let isExtendable = 1;
9121 let opExtendable = 2;
9122 let isExtentSigned = 1;
9123 let opExtentBits = 12;
9124 let opExtentAlign = 1;
9125 }
9126 def L2_loadbzw2_pbr : HInst<
9127 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9128 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9129 "$Rd32 = memubh($Rx32++$Mu2:brev)",
9130 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9131 let Inst{12-5} = 0b00000000;
9132 let Inst{31-21} = 0b10011110011;
9133 let hasNewValue = 1;
9134 let opNewValue = 0;
9135 let addrMode = PostInc;
9136 let accessSize = HalfWordAccess;
9137 let mayLoad = 1;
9138 let Constraints = "$Rx32 = $Rx32in";
9139 }
9140 def L2_loadbzw2_pci : HInst<
9141 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9142 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9143 "$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9144 tc_e93a3d71, TypeLD>, Enc_e83554 {
9145 let Inst{12-9} = 0b0000;
9146 let Inst{31-21} = 0b10011000011;
9147 let hasNewValue = 1;
9148 let opNewValue = 0;
9149 let addrMode = PostInc;
9150 let accessSize = HalfWordAccess;
9151 let mayLoad = 1;
9152 let Uses = [CS];
9153 let Constraints = "$Rx32 = $Rx32in";
9154 }
9155 def L2_loadbzw2_pcr : HInst<
9156 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9157 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9158 "$Rd32 = memubh($Rx32++I:circ($Mu2))",
9159 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9160 let Inst{12-5} = 0b00010000;
9161 let Inst{31-21} = 0b10011000011;
9162 let hasNewValue = 1;
9163 let opNewValue = 0;
9164 let addrMode = PostInc;
9165 let accessSize = HalfWordAccess;
9166 let mayLoad = 1;
9167 let Uses = [CS];
9168 let Constraints = "$Rx32 = $Rx32in";
9169 }
9170 def L2_loadbzw2_pi : HInst<
9171 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9172 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9173 "$Rd32 = memubh($Rx32++#$Ii)",
9174 tc_44d3da28, TypeLD>, Enc_152467 {
9175 let Inst{13-9} = 0b00000;
9176 let Inst{31-21} = 0b10011010011;
9177 let hasNewValue = 1;
9178 let opNewValue = 0;
9179 let addrMode = PostInc;
9180 let accessSize = HalfWordAccess;
9181 let mayLoad = 1;
9182 let Constraints = "$Rx32 = $Rx32in";
9183 }
9184 def L2_loadbzw2_pr : HInst<
9185 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9186 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9187 "$Rd32 = memubh($Rx32++$Mu2)",
9188 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9189 let Inst{12-5} = 0b00000000;
9190 let Inst{31-21} = 0b10011100011;
9191 let hasNewValue = 1;
9192 let opNewValue = 0;
9193 let addrMode = PostInc;
9194 let accessSize = HalfWordAccess;
9195 let mayLoad = 1;
9196 let Constraints = "$Rx32 = $Rx32in";
9197 }
9198 def L2_loadbzw2_zomap : HInst<
9199 (outs IntRegs:$Rd32),
9200 (ins IntRegs:$Rs32),
9201 "$Rd32 = memubh($Rs32)",
9202 tc_17e0d2cd, TypeMAPPING> {
9203 let hasNewValue = 1;
9204 let opNewValue = 0;
9205 let isPseudo = 1;
9206 let isCodeGenOnly = 1;
9207 }
9208 def L2_loadbzw4_io : HInst<
9209 (outs DoubleRegs:$Rdd32),
9210 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9211 "$Rdd32 = memubh($Rs32+#$Ii)",
9212 tc_17e0d2cd, TypeLD>, Enc_2d7491 {
9213 let Inst{24-21} = 0b0101;
9214 let Inst{31-27} = 0b10010;
9215 let addrMode = BaseImmOffset;
9216 let accessSize = WordAccess;
9217 let mayLoad = 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_loadbzw4_pbr : HInst<
9225 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9226 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9227 "$Rdd32 = memubh($Rx32++$Mu2:brev)",
9228 tc_44d3da28, TypeLD>, Enc_7eee72 {
9229 let Inst{12-5} = 0b00000000;
9230 let Inst{31-21} = 0b10011110101;
9231 let addrMode = PostInc;
9232 let accessSize = WordAccess;
9233 let mayLoad = 1;
9234 let Constraints = "$Rx32 = $Rx32in";
9235 }
9236 def L2_loadbzw4_pci : HInst<
9237 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9238 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9239 "$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9240 tc_e93a3d71, TypeLD>, Enc_70b24b {
9241 let Inst{12-9} = 0b0000;
9242 let Inst{31-21} = 0b10011000101;
9243 let addrMode = PostInc;
9244 let accessSize = WordAccess;
9245 let mayLoad = 1;
9246 let Uses = [CS];
9247 let Constraints = "$Rx32 = $Rx32in";
9248 }
9249 def L2_loadbzw4_pcr : HInst<
9250 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9251 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9252 "$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9253 tc_44d3da28, TypeLD>, Enc_7eee72 {
9254 let Inst{12-5} = 0b00010000;
9255 let Inst{31-21} = 0b10011000101;
9256 let addrMode = PostInc;
9257 let accessSize = WordAccess;
9258 let mayLoad = 1;
9259 let Uses = [CS];
9260 let Constraints = "$Rx32 = $Rx32in";
9261 }
9262 def L2_loadbzw4_pi : HInst<
9263 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9264 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9265 "$Rdd32 = memubh($Rx32++#$Ii)",
9266 tc_44d3da28, TypeLD>, Enc_71f1b4 {
9267 let Inst{13-9} = 0b00000;
9268 let Inst{31-21} = 0b10011010101;
9269 let addrMode = PostInc;
9270 let accessSize = WordAccess;
9271 let mayLoad = 1;
9272 let Constraints = "$Rx32 = $Rx32in";
9273 }
9274 def L2_loadbzw4_pr : HInst<
9275 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9276 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9277 "$Rdd32 = memubh($Rx32++$Mu2)",
9278 tc_44d3da28, TypeLD>, Enc_7eee72 {
9279 let Inst{12-5} = 0b00000000;
9280 let Inst{31-21} = 0b10011100101;
9281 let addrMode = PostInc;
9282 let accessSize = WordAccess;
9283 let mayLoad = 1;
9284 let Constraints = "$Rx32 = $Rx32in";
9285 }
9286 def L2_loadbzw4_zomap : HInst<
9287 (outs DoubleRegs:$Rdd32),
9288 (ins IntRegs:$Rs32),
9289 "$Rdd32 = memubh($Rs32)",
9290 tc_17e0d2cd, TypeMAPPING> {
9291 let isPseudo = 1;
9292 let isCodeGenOnly = 1;
9293 }
9294 def L2_loadrb_io : HInst<
9295 (outs IntRegs:$Rd32),
9296 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9297 "$Rd32 = memb($Rs32+#$Ii)",
9298 tc_17e0d2cd, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9299 let Inst{24-21} = 0b1000;
9300 let Inst{31-27} = 0b10010;
9301 let hasNewValue = 1;
9302 let opNewValue = 0;
9303 let addrMode = BaseImmOffset;
9304 let accessSize = ByteAccess;
9305 let mayLoad = 1;
9306 let CextOpcode = "L2_loadrb";
9307 let BaseOpcode = "L2_loadrb_io";
9308 let isPredicable = 1;
9309 let isExtendable = 1;
9310 let opExtendable = 2;
9311 let isExtentSigned = 1;
9312 let opExtentBits = 11;
9313 let opExtentAlign = 0;
9314 }
9315 def L2_loadrb_pbr : HInst<
9316 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9317 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9318 "$Rd32 = memb($Rx32++$Mu2:brev)",
9319 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9320 let Inst{12-5} = 0b00000000;
9321 let Inst{31-21} = 0b10011111000;
9322 let hasNewValue = 1;
9323 let opNewValue = 0;
9324 let addrMode = PostInc;
9325 let accessSize = ByteAccess;
9326 let mayLoad = 1;
9327 let Constraints = "$Rx32 = $Rx32in";
9328 }
9329 def L2_loadrb_pci : HInst<
9330 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9331 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9332 "$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9333 tc_e93a3d71, TypeLD>, Enc_e0a47a {
9334 let Inst{12-9} = 0b0000;
9335 let Inst{31-21} = 0b10011001000;
9336 let hasNewValue = 1;
9337 let opNewValue = 0;
9338 let addrMode = PostInc;
9339 let accessSize = ByteAccess;
9340 let mayLoad = 1;
9341 let Uses = [CS];
9342 let Constraints = "$Rx32 = $Rx32in";
9343 }
9344 def L2_loadrb_pcr : HInst<
9345 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9346 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9347 "$Rd32 = memb($Rx32++I:circ($Mu2))",
9348 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9349 let Inst{12-5} = 0b00010000;
9350 let Inst{31-21} = 0b10011001000;
9351 let hasNewValue = 1;
9352 let opNewValue = 0;
9353 let addrMode = PostInc;
9354 let accessSize = ByteAccess;
9355 let mayLoad = 1;
9356 let Uses = [CS];
9357 let Constraints = "$Rx32 = $Rx32in";
9358 }
9359 def L2_loadrb_pi : HInst<
9360 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9361 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9362 "$Rd32 = memb($Rx32++#$Ii)",
9363 tc_44d3da28, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9364 let Inst{13-9} = 0b00000;
9365 let Inst{31-21} = 0b10011011000;
9366 let hasNewValue = 1;
9367 let opNewValue = 0;
9368 let addrMode = PostInc;
9369 let accessSize = ByteAccess;
9370 let mayLoad = 1;
9371 let CextOpcode = "L2_loadrb";
9372 let BaseOpcode = "L2_loadrb_pi";
9373 let isPredicable = 1;
9374 let Constraints = "$Rx32 = $Rx32in";
9375 }
9376 def L2_loadrb_pr : HInst<
9377 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9378 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9379 "$Rd32 = memb($Rx32++$Mu2)",
9380 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9381 let Inst{12-5} = 0b00000000;
9382 let Inst{31-21} = 0b10011101000;
9383 let hasNewValue = 1;
9384 let opNewValue = 0;
9385 let addrMode = PostInc;
9386 let accessSize = ByteAccess;
9387 let mayLoad = 1;
9388 let Constraints = "$Rx32 = $Rx32in";
9389 }
9390 def L2_loadrb_zomap : HInst<
9391 (outs IntRegs:$Rd32),
9392 (ins IntRegs:$Rs32),
9393 "$Rd32 = memb($Rs32)",
9394 tc_17e0d2cd, TypeMAPPING> {
9395 let hasNewValue = 1;
9396 let opNewValue = 0;
9397 let isPseudo = 1;
9398 let isCodeGenOnly = 1;
9399 }
9400 def L2_loadrbgp : HInst<
9401 (outs IntRegs:$Rd32),
9402 (ins u32_0Imm:$Ii),
9403 "$Rd32 = memb(gp+#$Ii)",
9404 tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9405 let Inst{24-21} = 0b1000;
9406 let Inst{31-27} = 0b01001;
9407 let hasNewValue = 1;
9408 let opNewValue = 0;
9409 let accessSize = ByteAccess;
9410 let mayLoad = 1;
9411 let Uses = [GP];
9412 let BaseOpcode = "L4_loadrb_abs";
9413 let isPredicable = 1;
9414 let opExtendable = 1;
9415 let isExtentSigned = 0;
9416 let opExtentBits = 16;
9417 let opExtentAlign = 0;
9418 }
9419 def L2_loadrd_io : HInst<
9420 (outs DoubleRegs:$Rdd32),
9421 (ins IntRegs:$Rs32, s29_3Imm:$Ii),
9422 "$Rdd32 = memd($Rs32+#$Ii)",
9423 tc_17e0d2cd, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9424 let Inst{24-21} = 0b1110;
9425 let Inst{31-27} = 0b10010;
9426 let addrMode = BaseImmOffset;
9427 let accessSize = DoubleWordAccess;
9428 let mayLoad = 1;
9429 let CextOpcode = "L2_loadrd";
9430 let BaseOpcode = "L2_loadrd_io";
9431 let isPredicable = 1;
9432 let isExtendable = 1;
9433 let opExtendable = 2;
9434 let isExtentSigned = 1;
9435 let opExtentBits = 14;
9436 let opExtentAlign = 3;
9437 }
9438 def L2_loadrd_pbr : HInst<
9439 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9440 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9441 "$Rdd32 = memd($Rx32++$Mu2:brev)",
9442 tc_44d3da28, TypeLD>, Enc_7eee72 {
9443 let Inst{12-5} = 0b00000000;
9444 let Inst{31-21} = 0b10011111110;
9445 let addrMode = PostInc;
9446 let accessSize = DoubleWordAccess;
9447 let mayLoad = 1;
9448 let Constraints = "$Rx32 = $Rx32in";
9449 }
9450 def L2_loadrd_pci : HInst<
9451 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9452 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9453 "$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9454 tc_e93a3d71, TypeLD>, Enc_b05839 {
9455 let Inst{12-9} = 0b0000;
9456 let Inst{31-21} = 0b10011001110;
9457 let addrMode = PostInc;
9458 let accessSize = DoubleWordAccess;
9459 let mayLoad = 1;
9460 let Uses = [CS];
9461 let Constraints = "$Rx32 = $Rx32in";
9462 }
9463 def L2_loadrd_pcr : HInst<
9464 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9465 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9466 "$Rdd32 = memd($Rx32++I:circ($Mu2))",
9467 tc_44d3da28, TypeLD>, Enc_7eee72 {
9468 let Inst{12-5} = 0b00010000;
9469 let Inst{31-21} = 0b10011001110;
9470 let addrMode = PostInc;
9471 let accessSize = DoubleWordAccess;
9472 let mayLoad = 1;
9473 let Uses = [CS];
9474 let Constraints = "$Rx32 = $Rx32in";
9475 }
9476 def L2_loadrd_pi : HInst<
9477 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9478 (ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9479 "$Rdd32 = memd($Rx32++#$Ii)",
9480 tc_44d3da28, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9481 let Inst{13-9} = 0b00000;
9482 let Inst{31-21} = 0b10011011110;
9483 let addrMode = PostInc;
9484 let accessSize = DoubleWordAccess;
9485 let mayLoad = 1;
9486 let CextOpcode = "L2_loadrd";
9487 let BaseOpcode = "L2_loadrd_pi";
9488 let isPredicable = 1;
9489 let Constraints = "$Rx32 = $Rx32in";
9490 }
9491 def L2_loadrd_pr : HInst<
9492 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9493 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9494 "$Rdd32 = memd($Rx32++$Mu2)",
9495 tc_44d3da28, TypeLD>, Enc_7eee72 {
9496 let Inst{12-5} = 0b00000000;
9497 let Inst{31-21} = 0b10011101110;
9498 let addrMode = PostInc;
9499 let accessSize = DoubleWordAccess;
9500 let mayLoad = 1;
9501 let Constraints = "$Rx32 = $Rx32in";
9502 }
9503 def L2_loadrd_zomap : HInst<
9504 (outs DoubleRegs:$Rdd32),
9505 (ins IntRegs:$Rs32),
9506 "$Rdd32 = memd($Rs32)",
9507 tc_17e0d2cd, TypeMAPPING> {
9508 let isPseudo = 1;
9509 let isCodeGenOnly = 1;
9510 }
9511 def L2_loadrdgp : HInst<
9512 (outs DoubleRegs:$Rdd32),
9513 (ins u29_3Imm:$Ii),
9514 "$Rdd32 = memd(gp+#$Ii)",
9515 tc_c4db48cb, TypeV2LDST>, Enc_509701, AddrModeRel {
9516 let Inst{24-21} = 0b1110;
9517 let Inst{31-27} = 0b01001;
9518 let accessSize = DoubleWordAccess;
9519 let mayLoad = 1;
9520 let Uses = [GP];
9521 let BaseOpcode = "L4_loadrd_abs";
9522 let isPredicable = 1;
9523 let opExtendable = 1;
9524 let isExtentSigned = 0;
9525 let opExtentBits = 19;
9526 let opExtentAlign = 3;
9527 }
9528 def L2_loadrh_io : HInst<
9529 (outs IntRegs:$Rd32),
9530 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9531 "$Rd32 = memh($Rs32+#$Ii)",
9532 tc_17e0d2cd, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9533 let Inst{24-21} = 0b1010;
9534 let Inst{31-27} = 0b10010;
9535 let hasNewValue = 1;
9536 let opNewValue = 0;
9537 let addrMode = BaseImmOffset;
9538 let accessSize = HalfWordAccess;
9539 let mayLoad = 1;
9540 let CextOpcode = "L2_loadrh";
9541 let BaseOpcode = "L2_loadrh_io";
9542 let isPredicable = 1;
9543 let isExtendable = 1;
9544 let opExtendable = 2;
9545 let isExtentSigned = 1;
9546 let opExtentBits = 12;
9547 let opExtentAlign = 1;
9548 }
9549 def L2_loadrh_pbr : HInst<
9550 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9551 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9552 "$Rd32 = memh($Rx32++$Mu2:brev)",
9553 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9554 let Inst{12-5} = 0b00000000;
9555 let Inst{31-21} = 0b10011111010;
9556 let hasNewValue = 1;
9557 let opNewValue = 0;
9558 let addrMode = PostInc;
9559 let accessSize = HalfWordAccess;
9560 let mayLoad = 1;
9561 let Constraints = "$Rx32 = $Rx32in";
9562 }
9563 def L2_loadrh_pci : HInst<
9564 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9565 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9566 "$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9567 tc_e93a3d71, TypeLD>, Enc_e83554 {
9568 let Inst{12-9} = 0b0000;
9569 let Inst{31-21} = 0b10011001010;
9570 let hasNewValue = 1;
9571 let opNewValue = 0;
9572 let addrMode = PostInc;
9573 let accessSize = HalfWordAccess;
9574 let mayLoad = 1;
9575 let Uses = [CS];
9576 let Constraints = "$Rx32 = $Rx32in";
9577 }
9578 def L2_loadrh_pcr : HInst<
9579 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9580 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9581 "$Rd32 = memh($Rx32++I:circ($Mu2))",
9582 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9583 let Inst{12-5} = 0b00010000;
9584 let Inst{31-21} = 0b10011001010;
9585 let hasNewValue = 1;
9586 let opNewValue = 0;
9587 let addrMode = PostInc;
9588 let accessSize = HalfWordAccess;
9589 let mayLoad = 1;
9590 let Uses = [CS];
9591 let Constraints = "$Rx32 = $Rx32in";
9592 }
9593 def L2_loadrh_pi : HInst<
9594 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9595 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9596 "$Rd32 = memh($Rx32++#$Ii)",
9597 tc_44d3da28, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9598 let Inst{13-9} = 0b00000;
9599 let Inst{31-21} = 0b10011011010;
9600 let hasNewValue = 1;
9601 let opNewValue = 0;
9602 let addrMode = PostInc;
9603 let accessSize = HalfWordAccess;
9604 let mayLoad = 1;
9605 let CextOpcode = "L2_loadrh";
9606 let BaseOpcode = "L2_loadrh_pi";
9607 let isPredicable = 1;
9608 let Constraints = "$Rx32 = $Rx32in";
9609 }
9610 def L2_loadrh_pr : HInst<
9611 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9612 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9613 "$Rd32 = memh($Rx32++$Mu2)",
9614 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9615 let Inst{12-5} = 0b00000000;
9616 let Inst{31-21} = 0b10011101010;
9617 let hasNewValue = 1;
9618 let opNewValue = 0;
9619 let addrMode = PostInc;
9620 let accessSize = HalfWordAccess;
9621 let mayLoad = 1;
9622 let Constraints = "$Rx32 = $Rx32in";
9623 }
9624 def L2_loadrh_zomap : HInst<
9625 (outs IntRegs:$Rd32),
9626 (ins IntRegs:$Rs32),
9627 "$Rd32 = memh($Rs32)",
9628 tc_17e0d2cd, TypeMAPPING> {
9629 let hasNewValue = 1;
9630 let opNewValue = 0;
9631 let isPseudo = 1;
9632 let isCodeGenOnly = 1;
9633 }
9634 def L2_loadrhgp : HInst<
9635 (outs IntRegs:$Rd32),
9636 (ins u31_1Imm:$Ii),
9637 "$Rd32 = memh(gp+#$Ii)",
9638 tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9639 let Inst{24-21} = 0b1010;
9640 let Inst{31-27} = 0b01001;
9641 let hasNewValue = 1;
9642 let opNewValue = 0;
9643 let accessSize = HalfWordAccess;
9644 let mayLoad = 1;
9645 let Uses = [GP];
9646 let BaseOpcode = "L4_loadrh_abs";
9647 let isPredicable = 1;
9648 let opExtendable = 1;
9649 let isExtentSigned = 0;
9650 let opExtentBits = 17;
9651 let opExtentAlign = 1;
9652 }
9653 def L2_loadri_io : HInst<
9654 (outs IntRegs:$Rd32),
9655 (ins IntRegs:$Rs32, s30_2Imm:$Ii),
9656 "$Rd32 = memw($Rs32+#$Ii)",
9657 tc_17e0d2cd, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9658 let Inst{24-21} = 0b1100;
9659 let Inst{31-27} = 0b10010;
9660 let hasNewValue = 1;
9661 let opNewValue = 0;
9662 let addrMode = BaseImmOffset;
9663 let accessSize = WordAccess;
9664 let mayLoad = 1;
9665 let CextOpcode = "L2_loadri";
9666 let BaseOpcode = "L2_loadri_io";
9667 let isPredicable = 1;
9668 let isExtendable = 1;
9669 let opExtendable = 2;
9670 let isExtentSigned = 1;
9671 let opExtentBits = 13;
9672 let opExtentAlign = 2;
9673 }
9674 def L2_loadri_pbr : HInst<
9675 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9676 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9677 "$Rd32 = memw($Rx32++$Mu2:brev)",
9678 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9679 let Inst{12-5} = 0b00000000;
9680 let Inst{31-21} = 0b10011111100;
9681 let hasNewValue = 1;
9682 let opNewValue = 0;
9683 let addrMode = PostInc;
9684 let accessSize = WordAccess;
9685 let mayLoad = 1;
9686 let Constraints = "$Rx32 = $Rx32in";
9687 }
9688 def L2_loadri_pci : HInst<
9689 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9690 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9691 "$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9692 tc_e93a3d71, TypeLD>, Enc_27fd0e {
9693 let Inst{12-9} = 0b0000;
9694 let Inst{31-21} = 0b10011001100;
9695 let hasNewValue = 1;
9696 let opNewValue = 0;
9697 let addrMode = PostInc;
9698 let accessSize = WordAccess;
9699 let mayLoad = 1;
9700 let Uses = [CS];
9701 let Constraints = "$Rx32 = $Rx32in";
9702 }
9703 def L2_loadri_pcr : HInst<
9704 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9705 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9706 "$Rd32 = memw($Rx32++I:circ($Mu2))",
9707 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9708 let Inst{12-5} = 0b00010000;
9709 let Inst{31-21} = 0b10011001100;
9710 let hasNewValue = 1;
9711 let opNewValue = 0;
9712 let addrMode = PostInc;
9713 let accessSize = WordAccess;
9714 let mayLoad = 1;
9715 let Uses = [CS];
9716 let Constraints = "$Rx32 = $Rx32in";
9717 }
9718 def L2_loadri_pi : HInst<
9719 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9720 (ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9721 "$Rd32 = memw($Rx32++#$Ii)",
9722 tc_44d3da28, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9723 let Inst{13-9} = 0b00000;
9724 let Inst{31-21} = 0b10011011100;
9725 let hasNewValue = 1;
9726 let opNewValue = 0;
9727 let addrMode = PostInc;
9728 let accessSize = WordAccess;
9729 let mayLoad = 1;
9730 let CextOpcode = "L2_loadri";
9731 let BaseOpcode = "L2_loadri_pi";
9732 let isPredicable = 1;
9733 let Constraints = "$Rx32 = $Rx32in";
9734 }
9735 def L2_loadri_pr : HInst<
9736 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9737 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9738 "$Rd32 = memw($Rx32++$Mu2)",
9739 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9740 let Inst{12-5} = 0b00000000;
9741 let Inst{31-21} = 0b10011101100;
9742 let hasNewValue = 1;
9743 let opNewValue = 0;
9744 let addrMode = PostInc;
9745 let accessSize = WordAccess;
9746 let mayLoad = 1;
9747 let Constraints = "$Rx32 = $Rx32in";
9748 }
9749 def L2_loadri_zomap : HInst<
9750 (outs IntRegs:$Rd32),
9751 (ins IntRegs:$Rs32),
9752 "$Rd32 = memw($Rs32)",
9753 tc_17e0d2cd, TypeMAPPING> {
9754 let hasNewValue = 1;
9755 let opNewValue = 0;
9756 let isPseudo = 1;
9757 let isCodeGenOnly = 1;
9758 }
9759 def L2_loadrigp : HInst<
9760 (outs IntRegs:$Rd32),
9761 (ins u30_2Imm:$Ii),
9762 "$Rd32 = memw(gp+#$Ii)",
9763 tc_c4db48cb, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9764 let Inst{24-21} = 0b1100;
9765 let Inst{31-27} = 0b01001;
9766 let hasNewValue = 1;
9767 let opNewValue = 0;
9768 let accessSize = WordAccess;
9769 let mayLoad = 1;
9770 let Uses = [GP];
9771 let BaseOpcode = "L4_loadri_abs";
9772 let isPredicable = 1;
9773 let opExtendable = 1;
9774 let isExtentSigned = 0;
9775 let opExtentBits = 18;
9776 let opExtentAlign = 2;
9777 }
9778 def L2_loadrub_io : HInst<
9779 (outs IntRegs:$Rd32),
9780 (ins IntRegs:$Rs32, s32_0Imm:$Ii),
9781 "$Rd32 = memub($Rs32+#$Ii)",
9782 tc_17e0d2cd, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9783 let Inst{24-21} = 0b1001;
9784 let Inst{31-27} = 0b10010;
9785 let hasNewValue = 1;
9786 let opNewValue = 0;
9787 let addrMode = BaseImmOffset;
9788 let accessSize = ByteAccess;
9789 let mayLoad = 1;
9790 let CextOpcode = "L2_loadrub";
9791 let BaseOpcode = "L2_loadrub_io";
9792 let isPredicable = 1;
9793 let isExtendable = 1;
9794 let opExtendable = 2;
9795 let isExtentSigned = 1;
9796 let opExtentBits = 11;
9797 let opExtentAlign = 0;
9798 }
9799 def L2_loadrub_pbr : HInst<
9800 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9801 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9802 "$Rd32 = memub($Rx32++$Mu2:brev)",
9803 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9804 let Inst{12-5} = 0b00000000;
9805 let Inst{31-21} = 0b10011111001;
9806 let hasNewValue = 1;
9807 let opNewValue = 0;
9808 let addrMode = PostInc;
9809 let accessSize = ByteAccess;
9810 let mayLoad = 1;
9811 let Constraints = "$Rx32 = $Rx32in";
9812 }
9813 def L2_loadrub_pci : HInst<
9814 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9815 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9816 "$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9817 tc_e93a3d71, TypeLD>, Enc_e0a47a {
9818 let Inst{12-9} = 0b0000;
9819 let Inst{31-21} = 0b10011001001;
9820 let hasNewValue = 1;
9821 let opNewValue = 0;
9822 let addrMode = PostInc;
9823 let accessSize = ByteAccess;
9824 let mayLoad = 1;
9825 let Uses = [CS];
9826 let Constraints = "$Rx32 = $Rx32in";
9827 }
9828 def L2_loadrub_pcr : HInst<
9829 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9830 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9831 "$Rd32 = memub($Rx32++I:circ($Mu2))",
9832 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9833 let Inst{12-5} = 0b00010000;
9834 let Inst{31-21} = 0b10011001001;
9835 let hasNewValue = 1;
9836 let opNewValue = 0;
9837 let addrMode = PostInc;
9838 let accessSize = ByteAccess;
9839 let mayLoad = 1;
9840 let Uses = [CS];
9841 let Constraints = "$Rx32 = $Rx32in";
9842 }
9843 def L2_loadrub_pi : HInst<
9844 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9845 (ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9846 "$Rd32 = memub($Rx32++#$Ii)",
9847 tc_44d3da28, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9848 let Inst{13-9} = 0b00000;
9849 let Inst{31-21} = 0b10011011001;
9850 let hasNewValue = 1;
9851 let opNewValue = 0;
9852 let addrMode = PostInc;
9853 let accessSize = ByteAccess;
9854 let mayLoad = 1;
9855 let CextOpcode = "L2_loadrub";
9856 let BaseOpcode = "L2_loadrub_pi";
9857 let isPredicable = 1;
9858 let Constraints = "$Rx32 = $Rx32in";
9859 }
9860 def L2_loadrub_pr : HInst<
9861 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9862 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9863 "$Rd32 = memub($Rx32++$Mu2)",
9864 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9865 let Inst{12-5} = 0b00000000;
9866 let Inst{31-21} = 0b10011101001;
9867 let hasNewValue = 1;
9868 let opNewValue = 0;
9869 let addrMode = PostInc;
9870 let accessSize = ByteAccess;
9871 let mayLoad = 1;
9872 let Constraints = "$Rx32 = $Rx32in";
9873 }
9874 def L2_loadrub_zomap : HInst<
9875 (outs IntRegs:$Rd32),
9876 (ins IntRegs:$Rs32),
9877 "$Rd32 = memub($Rs32)",
9878 tc_17e0d2cd, TypeMAPPING> {
9879 let hasNewValue = 1;
9880 let opNewValue = 0;
9881 let isPseudo = 1;
9882 let isCodeGenOnly = 1;
9883 }
9884 def L2_loadrubgp : HInst<
9885 (outs IntRegs:$Rd32),
9886 (ins u32_0Imm:$Ii),
9887 "$Rd32 = memub(gp+#$Ii)",
9888 tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9889 let Inst{24-21} = 0b1001;
9890 let Inst{31-27} = 0b01001;
9891 let hasNewValue = 1;
9892 let opNewValue = 0;
9893 let accessSize = ByteAccess;
9894 let mayLoad = 1;
9895 let Uses = [GP];
9896 let BaseOpcode = "L4_loadrub_abs";
9897 let isPredicable = 1;
9898 let opExtendable = 1;
9899 let isExtentSigned = 0;
9900 let opExtentBits = 16;
9901 let opExtentAlign = 0;
9902 }
9903 def L2_loadruh_io : HInst<
9904 (outs IntRegs:$Rd32),
9905 (ins IntRegs:$Rs32, s31_1Imm:$Ii),
9906 "$Rd32 = memuh($Rs32+#$Ii)",
9907 tc_17e0d2cd, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9908 let Inst{24-21} = 0b1011;
9909 let Inst{31-27} = 0b10010;
9910 let hasNewValue = 1;
9911 let opNewValue = 0;
9912 let addrMode = BaseImmOffset;
9913 let accessSize = HalfWordAccess;
9914 let mayLoad = 1;
9915 let CextOpcode = "L2_loadruh";
9916 let BaseOpcode = "L2_loadruh_io";
9917 let isPredicable = 1;
9918 let isExtendable = 1;
9919 let opExtendable = 2;
9920 let isExtentSigned = 1;
9921 let opExtentBits = 12;
9922 let opExtentAlign = 1;
9923 }
9924 def L2_loadruh_pbr : HInst<
9925 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9926 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9927 "$Rd32 = memuh($Rx32++$Mu2:brev)",
9928 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9929 let Inst{12-5} = 0b00000000;
9930 let Inst{31-21} = 0b10011111011;
9931 let hasNewValue = 1;
9932 let opNewValue = 0;
9933 let addrMode = PostInc;
9934 let accessSize = HalfWordAccess;
9935 let mayLoad = 1;
9936 let Constraints = "$Rx32 = $Rx32in";
9937 }
9938 def L2_loadruh_pci : HInst<
9939 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9940 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9941 "$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
9942 tc_e93a3d71, TypeLD>, Enc_e83554 {
9943 let Inst{12-9} = 0b0000;
9944 let Inst{31-21} = 0b10011001011;
9945 let hasNewValue = 1;
9946 let opNewValue = 0;
9947 let addrMode = PostInc;
9948 let accessSize = HalfWordAccess;
9949 let mayLoad = 1;
9950 let Uses = [CS];
9951 let Constraints = "$Rx32 = $Rx32in";
9952 }
9953 def L2_loadruh_pcr : HInst<
9954 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9955 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9956 "$Rd32 = memuh($Rx32++I:circ($Mu2))",
9957 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9958 let Inst{12-5} = 0b00010000;
9959 let Inst{31-21} = 0b10011001011;
9960 let hasNewValue = 1;
9961 let opNewValue = 0;
9962 let addrMode = PostInc;
9963 let accessSize = HalfWordAccess;
9964 let mayLoad = 1;
9965 let Uses = [CS];
9966 let Constraints = "$Rx32 = $Rx32in";
9967 }
9968 def L2_loadruh_pi : HInst<
9969 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9970 (ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9971 "$Rd32 = memuh($Rx32++#$Ii)",
9972 tc_44d3da28, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9973 let Inst{13-9} = 0b00000;
9974 let Inst{31-21} = 0b10011011011;
9975 let hasNewValue = 1;
9976 let opNewValue = 0;
9977 let addrMode = PostInc;
9978 let accessSize = HalfWordAccess;
9979 let mayLoad = 1;
9980 let CextOpcode = "L2_loadruh";
9981 let BaseOpcode = "L2_loadruh_pi";
9982 let isPredicable = 1;
9983 let Constraints = "$Rx32 = $Rx32in";
9984 }
9985 def L2_loadruh_pr : HInst<
9986 (outs IntRegs:$Rd32, IntRegs:$Rx32),
9987 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
9988 "$Rd32 = memuh($Rx32++$Mu2)",
9989 tc_44d3da28, TypeLD>, Enc_74d4e5 {
9990 let Inst{12-5} = 0b00000000;
9991 let Inst{31-21} = 0b10011101011;
9992 let hasNewValue = 1;
9993 let opNewValue = 0;
9994 let addrMode = PostInc;
9995 let accessSize = HalfWordAccess;
9996 let mayLoad = 1;
9997 let Constraints = "$Rx32 = $Rx32in";
9998 }
9999 def L2_loadruh_zomap : HInst<
10000 (outs IntRegs:$Rd32),
10001 (ins IntRegs:$Rs32),
10002 "$Rd32 = memuh($Rs32)",
10003 tc_17e0d2cd, TypeMAPPING> {
10004 let hasNewValue = 1;
10005 let opNewValue = 0;
10006 let isPseudo = 1;
10007 let isCodeGenOnly = 1;
10008 }
10009 def L2_loadruhgp : HInst<
10010 (outs IntRegs:$Rd32),
10011 (ins u31_1Imm:$Ii),
10012 "$Rd32 = memuh(gp+#$Ii)",
10013 tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10014 let Inst{24-21} = 0b1011;
10015 let Inst{31-27} = 0b01001;
10016 let hasNewValue = 1;
10017 let opNewValue = 0;
10018 let accessSize = HalfWordAccess;
10019 let mayLoad = 1;
10020 let Uses = [GP];
10021 let BaseOpcode = "L4_loadruh_abs";
10022 let isPredicable = 1;
10023 let opExtendable = 1;
10024 let isExtentSigned = 0;
10025 let opExtentBits = 17;
10026 let opExtentAlign = 1;
10027 }
10028 def L2_loadw_locked : HInst<
10029 (outs IntRegs:$Rd32),
10030 (ins IntRegs:$Rs32),
10031 "$Rd32 = memw_locked($Rs32)",
10032 tc_b43e7930, TypeLD>, Enc_5e2823 {
10033 let Inst{13-5} = 0b000000000;
10034 let Inst{31-21} = 0b10010010000;
10035 let hasNewValue = 1;
10036 let opNewValue = 0;
10037 let accessSize = WordAccess;
10038 let mayLoad = 1;
10039 let isSoloAX = 1;
10040 }
10041 def L2_ploadrbf_io : HInst<
10042 (outs IntRegs:$Rd32),
10043 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10044 "if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10045 tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10046 let Inst{13-13} = 0b0;
10047 let Inst{31-21} = 0b01000101000;
10048 let isPredicated = 1;
10049 let isPredicatedFalse = 1;
10050 let hasNewValue = 1;
10051 let opNewValue = 0;
10052 let addrMode = BaseImmOffset;
10053 let accessSize = ByteAccess;
10054 let mayLoad = 1;
10055 let CextOpcode = "L2_loadrb";
10056 let BaseOpcode = "L2_loadrb_io";
10057 let isExtendable = 1;
10058 let opExtendable = 3;
10059 let isExtentSigned = 0;
10060 let opExtentBits = 6;
10061 let opExtentAlign = 0;
10062 }
10063 def L2_ploadrbf_pi : HInst<
10064 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10065 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10066 "if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10067 tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10068 let Inst{13-11} = 0b101;
10069 let Inst{31-21} = 0b10011011000;
10070 let isPredicated = 1;
10071 let isPredicatedFalse = 1;
10072 let hasNewValue = 1;
10073 let opNewValue = 0;
10074 let addrMode = PostInc;
10075 let accessSize = ByteAccess;
10076 let mayLoad = 1;
10077 let BaseOpcode = "L2_loadrb_pi";
10078 let Constraints = "$Rx32 = $Rx32in";
10079 }
10080 def L2_ploadrbf_zomap : HInst<
10081 (outs IntRegs:$Rd32),
10082 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10083 "if (!$Pt4) $Rd32 = memb($Rs32)",
10084 tc_5ef37dc4, TypeMAPPING> {
10085 let hasNewValue = 1;
10086 let opNewValue = 0;
10087 let isPseudo = 1;
10088 let isCodeGenOnly = 1;
10089 }
10090 def L2_ploadrbfnew_io : HInst<
10091 (outs IntRegs:$Rd32),
10092 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10093 "if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10094 tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10095 let Inst{13-13} = 0b0;
10096 let Inst{31-21} = 0b01000111000;
10097 let isPredicated = 1;
10098 let isPredicatedFalse = 1;
10099 let hasNewValue = 1;
10100 let opNewValue = 0;
10101 let addrMode = BaseImmOffset;
10102 let accessSize = ByteAccess;
10103 let isPredicatedNew = 1;
10104 let mayLoad = 1;
10105 let CextOpcode = "L2_loadrb";
10106 let BaseOpcode = "L2_loadrb_io";
10107 let isExtendable = 1;
10108 let opExtendable = 3;
10109 let isExtentSigned = 0;
10110 let opExtentBits = 6;
10111 let opExtentAlign = 0;
10112 }
10113 def L2_ploadrbfnew_pi : HInst<
10114 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10115 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10116 "if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10117 tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10118 let Inst{13-11} = 0b111;
10119 let Inst{31-21} = 0b10011011000;
10120 let isPredicated = 1;
10121 let isPredicatedFalse = 1;
10122 let hasNewValue = 1;
10123 let opNewValue = 0;
10124 let addrMode = PostInc;
10125 let accessSize = ByteAccess;
10126 let isPredicatedNew = 1;
10127 let mayLoad = 1;
10128 let BaseOpcode = "L2_loadrb_pi";
10129 let Constraints = "$Rx32 = $Rx32in";
10130 }
10131 def L2_ploadrbfnew_zomap : HInst<
10132 (outs IntRegs:$Rd32),
10133 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10134 "if (!$Pt4.new) $Rd32 = memb($Rs32)",
10135 tc_44d3da28, TypeMAPPING> {
10136 let hasNewValue = 1;
10137 let opNewValue = 0;
10138 let isPseudo = 1;
10139 let isCodeGenOnly = 1;
10140 }
10141 def L2_ploadrbt_io : HInst<
10142 (outs IntRegs:$Rd32),
10143 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10144 "if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10145 tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10146 let Inst{13-13} = 0b0;
10147 let Inst{31-21} = 0b01000001000;
10148 let isPredicated = 1;
10149 let hasNewValue = 1;
10150 let opNewValue = 0;
10151 let addrMode = BaseImmOffset;
10152 let accessSize = ByteAccess;
10153 let mayLoad = 1;
10154 let CextOpcode = "L2_loadrb";
10155 let BaseOpcode = "L2_loadrb_io";
10156 let isExtendable = 1;
10157 let opExtendable = 3;
10158 let isExtentSigned = 0;
10159 let opExtentBits = 6;
10160 let opExtentAlign = 0;
10161 }
10162 def L2_ploadrbt_pi : HInst<
10163 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10164 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10165 "if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10166 tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10167 let Inst{13-11} = 0b100;
10168 let Inst{31-21} = 0b10011011000;
10169 let isPredicated = 1;
10170 let hasNewValue = 1;
10171 let opNewValue = 0;
10172 let addrMode = PostInc;
10173 let accessSize = ByteAccess;
10174 let mayLoad = 1;
10175 let BaseOpcode = "L2_loadrb_pi";
10176 let Constraints = "$Rx32 = $Rx32in";
10177 }
10178 def L2_ploadrbt_zomap : HInst<
10179 (outs IntRegs:$Rd32),
10180 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10181 "if ($Pt4) $Rd32 = memb($Rs32)",
10182 tc_5ef37dc4, TypeMAPPING> {
10183 let hasNewValue = 1;
10184 let opNewValue = 0;
10185 let isPseudo = 1;
10186 let isCodeGenOnly = 1;
10187 }
10188 def L2_ploadrbtnew_io : HInst<
10189 (outs IntRegs:$Rd32),
10190 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10191 "if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10192 tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10193 let Inst{13-13} = 0b0;
10194 let Inst{31-21} = 0b01000011000;
10195 let isPredicated = 1;
10196 let hasNewValue = 1;
10197 let opNewValue = 0;
10198 let addrMode = BaseImmOffset;
10199 let accessSize = ByteAccess;
10200 let isPredicatedNew = 1;
10201 let mayLoad = 1;
10202 let CextOpcode = "L2_loadrb";
10203 let BaseOpcode = "L2_loadrb_io";
10204 let isExtendable = 1;
10205 let opExtendable = 3;
10206 let isExtentSigned = 0;
10207 let opExtentBits = 6;
10208 let opExtentAlign = 0;
10209 }
10210 def L2_ploadrbtnew_pi : HInst<
10211 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10212 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10213 "if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10214 tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10215 let Inst{13-11} = 0b110;
10216 let Inst{31-21} = 0b10011011000;
10217 let isPredicated = 1;
10218 let hasNewValue = 1;
10219 let opNewValue = 0;
10220 let addrMode = PostInc;
10221 let accessSize = ByteAccess;
10222 let isPredicatedNew = 1;
10223 let mayLoad = 1;
10224 let BaseOpcode = "L2_loadrb_pi";
10225 let Constraints = "$Rx32 = $Rx32in";
10226 }
10227 def L2_ploadrbtnew_zomap : HInst<
10228 (outs IntRegs:$Rd32),
10229 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10230 "if ($Pt4.new) $Rd32 = memb($Rs32)",
10231 tc_44d3da28, TypeMAPPING> {
10232 let hasNewValue = 1;
10233 let opNewValue = 0;
10234 let isPseudo = 1;
10235 let isCodeGenOnly = 1;
10236 }
10237 def L2_ploadrdf_io : HInst<
10238 (outs DoubleRegs:$Rdd32),
10239 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10240 "if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10241 tc_5ef37dc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10242 let Inst{13-13} = 0b0;
10243 let Inst{31-21} = 0b01000101110;
10244 let isPredicated = 1;
10245 let isPredicatedFalse = 1;
10246 let addrMode = BaseImmOffset;
10247 let accessSize = DoubleWordAccess;
10248 let mayLoad = 1;
10249 let CextOpcode = "L2_loadrd";
10250 let BaseOpcode = "L2_loadrd_io";
10251 let isExtendable = 1;
10252 let opExtendable = 3;
10253 let isExtentSigned = 0;
10254 let opExtentBits = 9;
10255 let opExtentAlign = 3;
10256 }
10257 def L2_ploadrdf_pi : HInst<
10258 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10259 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10260 "if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10261 tc_3c76b0ff, TypeLD>, Enc_9d1247, PredNewRel {
10262 let Inst{13-11} = 0b101;
10263 let Inst{31-21} = 0b10011011110;
10264 let isPredicated = 1;
10265 let isPredicatedFalse = 1;
10266 let addrMode = PostInc;
10267 let accessSize = DoubleWordAccess;
10268 let mayLoad = 1;
10269 let BaseOpcode = "L2_loadrd_pi";
10270 let Constraints = "$Rx32 = $Rx32in";
10271 }
10272 def L2_ploadrdf_zomap : HInst<
10273 (outs DoubleRegs:$Rdd32),
10274 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10275 "if (!$Pt4) $Rdd32 = memd($Rs32)",
10276 tc_5ef37dc4, TypeMAPPING> {
10277 let isPseudo = 1;
10278 let isCodeGenOnly = 1;
10279 }
10280 def L2_ploadrdfnew_io : HInst<
10281 (outs DoubleRegs:$Rdd32),
10282 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10283 "if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10284 tc_44d3da28, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10285 let Inst{13-13} = 0b0;
10286 let Inst{31-21} = 0b01000111110;
10287 let isPredicated = 1;
10288 let isPredicatedFalse = 1;
10289 let addrMode = BaseImmOffset;
10290 let accessSize = DoubleWordAccess;
10291 let isPredicatedNew = 1;
10292 let mayLoad = 1;
10293 let CextOpcode = "L2_loadrd";
10294 let BaseOpcode = "L2_loadrd_io";
10295 let isExtendable = 1;
10296 let opExtendable = 3;
10297 let isExtentSigned = 0;
10298 let opExtentBits = 9;
10299 let opExtentAlign = 3;
10300 }
10301 def L2_ploadrdfnew_pi : HInst<
10302 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10303 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10304 "if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10305 tc_e9f3243f, TypeLD>, Enc_9d1247, PredNewRel {
10306 let Inst{13-11} = 0b111;
10307 let Inst{31-21} = 0b10011011110;
10308 let isPredicated = 1;
10309 let isPredicatedFalse = 1;
10310 let addrMode = PostInc;
10311 let accessSize = DoubleWordAccess;
10312 let isPredicatedNew = 1;
10313 let mayLoad = 1;
10314 let BaseOpcode = "L2_loadrd_pi";
10315 let Constraints = "$Rx32 = $Rx32in";
10316 }
10317 def L2_ploadrdfnew_zomap : HInst<
10318 (outs DoubleRegs:$Rdd32),
10319 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10320 "if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10321 tc_44d3da28, TypeMAPPING> {
10322 let isPseudo = 1;
10323 let isCodeGenOnly = 1;
10324 }
10325 def L2_ploadrdt_io : HInst<
10326 (outs DoubleRegs:$Rdd32),
10327 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10328 "if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10329 tc_5ef37dc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10330 let Inst{13-13} = 0b0;
10331 let Inst{31-21} = 0b01000001110;
10332 let isPredicated = 1;
10333 let addrMode = BaseImmOffset;
10334 let accessSize = DoubleWordAccess;
10335 let mayLoad = 1;
10336 let CextOpcode = "L2_loadrd";
10337 let BaseOpcode = "L2_loadrd_io";
10338 let isExtendable = 1;
10339 let opExtendable = 3;
10340 let isExtentSigned = 0;
10341 let opExtentBits = 9;
10342 let opExtentAlign = 3;
10343 }
10344 def L2_ploadrdt_pi : HInst<
10345 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10346 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10347 "if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10348 tc_3c76b0ff, TypeLD>, Enc_9d1247, PredNewRel {
10349 let Inst{13-11} = 0b100;
10350 let Inst{31-21} = 0b10011011110;
10351 let isPredicated = 1;
10352 let addrMode = PostInc;
10353 let accessSize = DoubleWordAccess;
10354 let mayLoad = 1;
10355 let BaseOpcode = "L2_loadrd_pi";
10356 let Constraints = "$Rx32 = $Rx32in";
10357 }
10358 def L2_ploadrdt_zomap : HInst<
10359 (outs DoubleRegs:$Rdd32),
10360 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10361 "if ($Pt4) $Rdd32 = memd($Rs32)",
10362 tc_5ef37dc4, TypeMAPPING> {
10363 let isPseudo = 1;
10364 let isCodeGenOnly = 1;
10365 }
10366 def L2_ploadrdtnew_io : HInst<
10367 (outs DoubleRegs:$Rdd32),
10368 (ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10369 "if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10370 tc_44d3da28, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10371 let Inst{13-13} = 0b0;
10372 let Inst{31-21} = 0b01000011110;
10373 let isPredicated = 1;
10374 let addrMode = BaseImmOffset;
10375 let accessSize = DoubleWordAccess;
10376 let isPredicatedNew = 1;
10377 let mayLoad = 1;
10378 let CextOpcode = "L2_loadrd";
10379 let BaseOpcode = "L2_loadrd_io";
10380 let isExtendable = 1;
10381 let opExtendable = 3;
10382 let isExtentSigned = 0;
10383 let opExtentBits = 9;
10384 let opExtentAlign = 3;
10385 }
10386 def L2_ploadrdtnew_pi : HInst<
10387 (outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10388 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10389 "if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10390 tc_e9f3243f, TypeLD>, Enc_9d1247, PredNewRel {
10391 let Inst{13-11} = 0b110;
10392 let Inst{31-21} = 0b10011011110;
10393 let isPredicated = 1;
10394 let addrMode = PostInc;
10395 let accessSize = DoubleWordAccess;
10396 let isPredicatedNew = 1;
10397 let mayLoad = 1;
10398 let BaseOpcode = "L2_loadrd_pi";
10399 let Constraints = "$Rx32 = $Rx32in";
10400 }
10401 def L2_ploadrdtnew_zomap : HInst<
10402 (outs DoubleRegs:$Rdd32),
10403 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10404 "if ($Pt4.new) $Rdd32 = memd($Rs32)",
10405 tc_44d3da28, TypeMAPPING> {
10406 let isPseudo = 1;
10407 let isCodeGenOnly = 1;
10408 }
10409 def L2_ploadrhf_io : HInst<
10410 (outs IntRegs:$Rd32),
10411 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10412 "if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10413 tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10414 let Inst{13-13} = 0b0;
10415 let Inst{31-21} = 0b01000101010;
10416 let isPredicated = 1;
10417 let isPredicatedFalse = 1;
10418 let hasNewValue = 1;
10419 let opNewValue = 0;
10420 let addrMode = BaseImmOffset;
10421 let accessSize = HalfWordAccess;
10422 let mayLoad = 1;
10423 let CextOpcode = "L2_loadrh";
10424 let BaseOpcode = "L2_loadrh_io";
10425 let isExtendable = 1;
10426 let opExtendable = 3;
10427 let isExtentSigned = 0;
10428 let opExtentBits = 7;
10429 let opExtentAlign = 1;
10430 }
10431 def L2_ploadrhf_pi : HInst<
10432 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10433 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10434 "if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10435 tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
10436 let Inst{13-11} = 0b101;
10437 let Inst{31-21} = 0b10011011010;
10438 let isPredicated = 1;
10439 let isPredicatedFalse = 1;
10440 let hasNewValue = 1;
10441 let opNewValue = 0;
10442 let addrMode = PostInc;
10443 let accessSize = HalfWordAccess;
10444 let mayLoad = 1;
10445 let BaseOpcode = "L2_loadrh_pi";
10446 let Constraints = "$Rx32 = $Rx32in";
10447 }
10448 def L2_ploadrhf_zomap : HInst<
10449 (outs IntRegs:$Rd32),
10450 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10451 "if (!$Pt4) $Rd32 = memh($Rs32)",
10452 tc_5ef37dc4, TypeMAPPING> {
10453 let hasNewValue = 1;
10454 let opNewValue = 0;
10455 let isPseudo = 1;
10456 let isCodeGenOnly = 1;
10457 }
10458 def L2_ploadrhfnew_io : HInst<
10459 (outs IntRegs:$Rd32),
10460 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10461 "if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10462 tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10463 let Inst{13-13} = 0b0;
10464 let Inst{31-21} = 0b01000111010;
10465 let isPredicated = 1;
10466 let isPredicatedFalse = 1;
10467 let hasNewValue = 1;
10468 let opNewValue = 0;
10469 let addrMode = BaseImmOffset;
10470 let accessSize = HalfWordAccess;
10471 let isPredicatedNew = 1;
10472 let mayLoad = 1;
10473 let CextOpcode = "L2_loadrh";
10474 let BaseOpcode = "L2_loadrh_io";
10475 let isExtendable = 1;
10476 let opExtendable = 3;
10477 let isExtentSigned = 0;
10478 let opExtentBits = 7;
10479 let opExtentAlign = 1;
10480 }
10481 def L2_ploadrhfnew_pi : HInst<
10482 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10483 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10484 "if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10485 tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
10486 let Inst{13-11} = 0b111;
10487 let Inst{31-21} = 0b10011011010;
10488 let isPredicated = 1;
10489 let isPredicatedFalse = 1;
10490 let hasNewValue = 1;
10491 let opNewValue = 0;
10492 let addrMode = PostInc;
10493 let accessSize = HalfWordAccess;
10494 let isPredicatedNew = 1;
10495 let mayLoad = 1;
10496 let BaseOpcode = "L2_loadrh_pi";
10497 let Constraints = "$Rx32 = $Rx32in";
10498 }
10499 def L2_ploadrhfnew_zomap : HInst<
10500 (outs IntRegs:$Rd32),
10501 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10502 "if (!$Pt4.new) $Rd32 = memh($Rs32)",
10503 tc_44d3da28, TypeMAPPING> {
10504 let hasNewValue = 1;
10505 let opNewValue = 0;
10506 let isPseudo = 1;
10507 let isCodeGenOnly = 1;
10508 }
10509 def L2_ploadrht_io : HInst<
10510 (outs IntRegs:$Rd32),
10511 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10512 "if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10513 tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10514 let Inst{13-13} = 0b0;
10515 let Inst{31-21} = 0b01000001010;
10516 let isPredicated = 1;
10517 let hasNewValue = 1;
10518 let opNewValue = 0;
10519 let addrMode = BaseImmOffset;
10520 let accessSize = HalfWordAccess;
10521 let mayLoad = 1;
10522 let CextOpcode = "L2_loadrh";
10523 let BaseOpcode = "L2_loadrh_io";
10524 let isExtendable = 1;
10525 let opExtendable = 3;
10526 let isExtentSigned = 0;
10527 let opExtentBits = 7;
10528 let opExtentAlign = 1;
10529 }
10530 def L2_ploadrht_pi : HInst<
10531 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10532 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10533 "if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10534 tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
10535 let Inst{13-11} = 0b100;
10536 let Inst{31-21} = 0b10011011010;
10537 let isPredicated = 1;
10538 let hasNewValue = 1;
10539 let opNewValue = 0;
10540 let addrMode = PostInc;
10541 let accessSize = HalfWordAccess;
10542 let mayLoad = 1;
10543 let BaseOpcode = "L2_loadrh_pi";
10544 let Constraints = "$Rx32 = $Rx32in";
10545 }
10546 def L2_ploadrht_zomap : HInst<
10547 (outs IntRegs:$Rd32),
10548 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10549 "if ($Pt4) $Rd32 = memh($Rs32)",
10550 tc_5ef37dc4, TypeMAPPING> {
10551 let hasNewValue = 1;
10552 let opNewValue = 0;
10553 let isPseudo = 1;
10554 let isCodeGenOnly = 1;
10555 }
10556 def L2_ploadrhtnew_io : HInst<
10557 (outs IntRegs:$Rd32),
10558 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10559 "if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10560 tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10561 let Inst{13-13} = 0b0;
10562 let Inst{31-21} = 0b01000011010;
10563 let isPredicated = 1;
10564 let hasNewValue = 1;
10565 let opNewValue = 0;
10566 let addrMode = BaseImmOffset;
10567 let accessSize = HalfWordAccess;
10568 let isPredicatedNew = 1;
10569 let mayLoad = 1;
10570 let CextOpcode = "L2_loadrh";
10571 let BaseOpcode = "L2_loadrh_io";
10572 let isExtendable = 1;
10573 let opExtendable = 3;
10574 let isExtentSigned = 0;
10575 let opExtentBits = 7;
10576 let opExtentAlign = 1;
10577 }
10578 def L2_ploadrhtnew_pi : HInst<
10579 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10580 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10581 "if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10582 tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
10583 let Inst{13-11} = 0b110;
10584 let Inst{31-21} = 0b10011011010;
10585 let isPredicated = 1;
10586 let hasNewValue = 1;
10587 let opNewValue = 0;
10588 let addrMode = PostInc;
10589 let accessSize = HalfWordAccess;
10590 let isPredicatedNew = 1;
10591 let mayLoad = 1;
10592 let BaseOpcode = "L2_loadrh_pi";
10593 let Constraints = "$Rx32 = $Rx32in";
10594 }
10595 def L2_ploadrhtnew_zomap : HInst<
10596 (outs IntRegs:$Rd32),
10597 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10598 "if ($Pt4.new) $Rd32 = memh($Rs32)",
10599 tc_44d3da28, TypeMAPPING> {
10600 let hasNewValue = 1;
10601 let opNewValue = 0;
10602 let isPseudo = 1;
10603 let isCodeGenOnly = 1;
10604 }
10605 def L2_ploadrif_io : HInst<
10606 (outs IntRegs:$Rd32),
10607 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10608 "if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10609 tc_5ef37dc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10610 let Inst{13-13} = 0b0;
10611 let Inst{31-21} = 0b01000101100;
10612 let isPredicated = 1;
10613 let isPredicatedFalse = 1;
10614 let hasNewValue = 1;
10615 let opNewValue = 0;
10616 let addrMode = BaseImmOffset;
10617 let accessSize = WordAccess;
10618 let mayLoad = 1;
10619 let CextOpcode = "L2_loadri";
10620 let BaseOpcode = "L2_loadri_io";
10621 let isExtendable = 1;
10622 let opExtendable = 3;
10623 let isExtentSigned = 0;
10624 let opExtentBits = 8;
10625 let opExtentAlign = 2;
10626 }
10627 def L2_ploadrif_pi : HInst<
10628 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10629 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10630 "if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10631 tc_3c76b0ff, TypeLD>, Enc_b97f71, PredNewRel {
10632 let Inst{13-11} = 0b101;
10633 let Inst{31-21} = 0b10011011100;
10634 let isPredicated = 1;
10635 let isPredicatedFalse = 1;
10636 let hasNewValue = 1;
10637 let opNewValue = 0;
10638 let addrMode = PostInc;
10639 let accessSize = WordAccess;
10640 let mayLoad = 1;
10641 let BaseOpcode = "L2_loadri_pi";
10642 let Constraints = "$Rx32 = $Rx32in";
10643 }
10644 def L2_ploadrif_zomap : HInst<
10645 (outs IntRegs:$Rd32),
10646 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10647 "if (!$Pt4) $Rd32 = memw($Rs32)",
10648 tc_5ef37dc4, TypeMAPPING> {
10649 let hasNewValue = 1;
10650 let opNewValue = 0;
10651 let isPseudo = 1;
10652 let isCodeGenOnly = 1;
10653 }
10654 def L2_ploadrifnew_io : HInst<
10655 (outs IntRegs:$Rd32),
10656 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10657 "if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10658 tc_44d3da28, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10659 let Inst{13-13} = 0b0;
10660 let Inst{31-21} = 0b01000111100;
10661 let isPredicated = 1;
10662 let isPredicatedFalse = 1;
10663 let hasNewValue = 1;
10664 let opNewValue = 0;
10665 let addrMode = BaseImmOffset;
10666 let accessSize = WordAccess;
10667 let isPredicatedNew = 1;
10668 let mayLoad = 1;
10669 let CextOpcode = "L2_loadri";
10670 let BaseOpcode = "L2_loadri_io";
10671 let isExtendable = 1;
10672 let opExtendable = 3;
10673 let isExtentSigned = 0;
10674 let opExtentBits = 8;
10675 let opExtentAlign = 2;
10676 }
10677 def L2_ploadrifnew_pi : HInst<
10678 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10679 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10680 "if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10681 tc_e9f3243f, TypeLD>, Enc_b97f71, PredNewRel {
10682 let Inst{13-11} = 0b111;
10683 let Inst{31-21} = 0b10011011100;
10684 let isPredicated = 1;
10685 let isPredicatedFalse = 1;
10686 let hasNewValue = 1;
10687 let opNewValue = 0;
10688 let addrMode = PostInc;
10689 let accessSize = WordAccess;
10690 let isPredicatedNew = 1;
10691 let mayLoad = 1;
10692 let BaseOpcode = "L2_loadri_pi";
10693 let Constraints = "$Rx32 = $Rx32in";
10694 }
10695 def L2_ploadrifnew_zomap : HInst<
10696 (outs IntRegs:$Rd32),
10697 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10698 "if (!$Pt4.new) $Rd32 = memw($Rs32)",
10699 tc_44d3da28, TypeMAPPING> {
10700 let hasNewValue = 1;
10701 let opNewValue = 0;
10702 let isPseudo = 1;
10703 let isCodeGenOnly = 1;
10704 }
10705 def L2_ploadrit_io : HInst<
10706 (outs IntRegs:$Rd32),
10707 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10708 "if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10709 tc_5ef37dc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10710 let Inst{13-13} = 0b0;
10711 let Inst{31-21} = 0b01000001100;
10712 let isPredicated = 1;
10713 let hasNewValue = 1;
10714 let opNewValue = 0;
10715 let addrMode = BaseImmOffset;
10716 let accessSize = WordAccess;
10717 let mayLoad = 1;
10718 let CextOpcode = "L2_loadri";
10719 let BaseOpcode = "L2_loadri_io";
10720 let isExtendable = 1;
10721 let opExtendable = 3;
10722 let isExtentSigned = 0;
10723 let opExtentBits = 8;
10724 let opExtentAlign = 2;
10725 }
10726 def L2_ploadrit_pi : HInst<
10727 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10728 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10729 "if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10730 tc_3c76b0ff, TypeLD>, Enc_b97f71, PredNewRel {
10731 let Inst{13-11} = 0b100;
10732 let Inst{31-21} = 0b10011011100;
10733 let isPredicated = 1;
10734 let hasNewValue = 1;
10735 let opNewValue = 0;
10736 let addrMode = PostInc;
10737 let accessSize = WordAccess;
10738 let mayLoad = 1;
10739 let BaseOpcode = "L2_loadri_pi";
10740 let Constraints = "$Rx32 = $Rx32in";
10741 }
10742 def L2_ploadrit_zomap : HInst<
10743 (outs IntRegs:$Rd32),
10744 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10745 "if ($Pt4) $Rd32 = memw($Rs32)",
10746 tc_5ef37dc4, TypeMAPPING> {
10747 let hasNewValue = 1;
10748 let opNewValue = 0;
10749 let isPseudo = 1;
10750 let isCodeGenOnly = 1;
10751 }
10752 def L2_ploadritnew_io : HInst<
10753 (outs IntRegs:$Rd32),
10754 (ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10755 "if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10756 tc_44d3da28, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10757 let Inst{13-13} = 0b0;
10758 let Inst{31-21} = 0b01000011100;
10759 let isPredicated = 1;
10760 let hasNewValue = 1;
10761 let opNewValue = 0;
10762 let addrMode = BaseImmOffset;
10763 let accessSize = WordAccess;
10764 let isPredicatedNew = 1;
10765 let mayLoad = 1;
10766 let CextOpcode = "L2_loadri";
10767 let BaseOpcode = "L2_loadri_io";
10768 let isExtendable = 1;
10769 let opExtendable = 3;
10770 let isExtentSigned = 0;
10771 let opExtentBits = 8;
10772 let opExtentAlign = 2;
10773 }
10774 def L2_ploadritnew_pi : HInst<
10775 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10776 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10777 "if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10778 tc_e9f3243f, TypeLD>, Enc_b97f71, PredNewRel {
10779 let Inst{13-11} = 0b110;
10780 let Inst{31-21} = 0b10011011100;
10781 let isPredicated = 1;
10782 let hasNewValue = 1;
10783 let opNewValue = 0;
10784 let addrMode = PostInc;
10785 let accessSize = WordAccess;
10786 let isPredicatedNew = 1;
10787 let mayLoad = 1;
10788 let BaseOpcode = "L2_loadri_pi";
10789 let Constraints = "$Rx32 = $Rx32in";
10790 }
10791 def L2_ploadritnew_zomap : HInst<
10792 (outs IntRegs:$Rd32),
10793 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10794 "if ($Pt4.new) $Rd32 = memw($Rs32)",
10795 tc_44d3da28, TypeMAPPING> {
10796 let hasNewValue = 1;
10797 let opNewValue = 0;
10798 let isPseudo = 1;
10799 let isCodeGenOnly = 1;
10800 }
10801 def L2_ploadrubf_io : HInst<
10802 (outs IntRegs:$Rd32),
10803 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10804 "if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10805 tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10806 let Inst{13-13} = 0b0;
10807 let Inst{31-21} = 0b01000101001;
10808 let isPredicated = 1;
10809 let isPredicatedFalse = 1;
10810 let hasNewValue = 1;
10811 let opNewValue = 0;
10812 let addrMode = BaseImmOffset;
10813 let accessSize = ByteAccess;
10814 let mayLoad = 1;
10815 let CextOpcode = "L2_loadrub";
10816 let BaseOpcode = "L2_loadrub_io";
10817 let isExtendable = 1;
10818 let opExtendable = 3;
10819 let isExtentSigned = 0;
10820 let opExtentBits = 6;
10821 let opExtentAlign = 0;
10822 }
10823 def L2_ploadrubf_pi : HInst<
10824 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10825 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10826 "if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10827 tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10828 let Inst{13-11} = 0b101;
10829 let Inst{31-21} = 0b10011011001;
10830 let isPredicated = 1;
10831 let isPredicatedFalse = 1;
10832 let hasNewValue = 1;
10833 let opNewValue = 0;
10834 let addrMode = PostInc;
10835 let accessSize = ByteAccess;
10836 let mayLoad = 1;
10837 let BaseOpcode = "L2_loadrub_pi";
10838 let Constraints = "$Rx32 = $Rx32in";
10839 }
10840 def L2_ploadrubf_zomap : HInst<
10841 (outs IntRegs:$Rd32),
10842 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10843 "if (!$Pt4) $Rd32 = memub($Rs32)",
10844 tc_5ef37dc4, TypeMAPPING> {
10845 let hasNewValue = 1;
10846 let opNewValue = 0;
10847 let isPseudo = 1;
10848 let isCodeGenOnly = 1;
10849 }
10850 def L2_ploadrubfnew_io : HInst<
10851 (outs IntRegs:$Rd32),
10852 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10853 "if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10854 tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10855 let Inst{13-13} = 0b0;
10856 let Inst{31-21} = 0b01000111001;
10857 let isPredicated = 1;
10858 let isPredicatedFalse = 1;
10859 let hasNewValue = 1;
10860 let opNewValue = 0;
10861 let addrMode = BaseImmOffset;
10862 let accessSize = ByteAccess;
10863 let isPredicatedNew = 1;
10864 let mayLoad = 1;
10865 let CextOpcode = "L2_loadrub";
10866 let BaseOpcode = "L2_loadrub_io";
10867 let isExtendable = 1;
10868 let opExtendable = 3;
10869 let isExtentSigned = 0;
10870 let opExtentBits = 6;
10871 let opExtentAlign = 0;
10872 }
10873 def L2_ploadrubfnew_pi : HInst<
10874 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10875 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10876 "if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10877 tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10878 let Inst{13-11} = 0b111;
10879 let Inst{31-21} = 0b10011011001;
10880 let isPredicated = 1;
10881 let isPredicatedFalse = 1;
10882 let hasNewValue = 1;
10883 let opNewValue = 0;
10884 let addrMode = PostInc;
10885 let accessSize = ByteAccess;
10886 let isPredicatedNew = 1;
10887 let mayLoad = 1;
10888 let BaseOpcode = "L2_loadrub_pi";
10889 let Constraints = "$Rx32 = $Rx32in";
10890 }
10891 def L2_ploadrubfnew_zomap : HInst<
10892 (outs IntRegs:$Rd32),
10893 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10894 "if (!$Pt4.new) $Rd32 = memub($Rs32)",
10895 tc_44d3da28, TypeMAPPING> {
10896 let hasNewValue = 1;
10897 let opNewValue = 0;
10898 let isPseudo = 1;
10899 let isCodeGenOnly = 1;
10900 }
10901 def L2_ploadrubt_io : HInst<
10902 (outs IntRegs:$Rd32),
10903 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10904 "if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
10905 tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10906 let Inst{13-13} = 0b0;
10907 let Inst{31-21} = 0b01000001001;
10908 let isPredicated = 1;
10909 let hasNewValue = 1;
10910 let opNewValue = 0;
10911 let addrMode = BaseImmOffset;
10912 let accessSize = ByteAccess;
10913 let mayLoad = 1;
10914 let CextOpcode = "L2_loadrub";
10915 let BaseOpcode = "L2_loadrub_io";
10916 let isExtendable = 1;
10917 let opExtendable = 3;
10918 let isExtentSigned = 0;
10919 let opExtentBits = 6;
10920 let opExtentAlign = 0;
10921 }
10922 def L2_ploadrubt_pi : HInst<
10923 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10924 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10925 "if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
10926 tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10927 let Inst{13-11} = 0b100;
10928 let Inst{31-21} = 0b10011011001;
10929 let isPredicated = 1;
10930 let hasNewValue = 1;
10931 let opNewValue = 0;
10932 let addrMode = PostInc;
10933 let accessSize = ByteAccess;
10934 let mayLoad = 1;
10935 let BaseOpcode = "L2_loadrub_pi";
10936 let Constraints = "$Rx32 = $Rx32in";
10937 }
10938 def L2_ploadrubt_zomap : HInst<
10939 (outs IntRegs:$Rd32),
10940 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10941 "if ($Pt4) $Rd32 = memub($Rs32)",
10942 tc_5ef37dc4, TypeMAPPING> {
10943 let hasNewValue = 1;
10944 let opNewValue = 0;
10945 let isPseudo = 1;
10946 let isCodeGenOnly = 1;
10947 }
10948 def L2_ploadrubtnew_io : HInst<
10949 (outs IntRegs:$Rd32),
10950 (ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10951 "if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10952 tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10953 let Inst{13-13} = 0b0;
10954 let Inst{31-21} = 0b01000011001;
10955 let isPredicated = 1;
10956 let hasNewValue = 1;
10957 let opNewValue = 0;
10958 let addrMode = BaseImmOffset;
10959 let accessSize = ByteAccess;
10960 let isPredicatedNew = 1;
10961 let mayLoad = 1;
10962 let CextOpcode = "L2_loadrub";
10963 let BaseOpcode = "L2_loadrub_io";
10964 let isExtendable = 1;
10965 let opExtendable = 3;
10966 let isExtentSigned = 0;
10967 let opExtentBits = 6;
10968 let opExtentAlign = 0;
10969 }
10970 def L2_ploadrubtnew_pi : HInst<
10971 (outs IntRegs:$Rd32, IntRegs:$Rx32),
10972 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10973 "if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10974 tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10975 let Inst{13-11} = 0b110;
10976 let Inst{31-21} = 0b10011011001;
10977 let isPredicated = 1;
10978 let hasNewValue = 1;
10979 let opNewValue = 0;
10980 let addrMode = PostInc;
10981 let accessSize = ByteAccess;
10982 let isPredicatedNew = 1;
10983 let mayLoad = 1;
10984 let BaseOpcode = "L2_loadrub_pi";
10985 let Constraints = "$Rx32 = $Rx32in";
10986 }
10987 def L2_ploadrubtnew_zomap : HInst<
10988 (outs IntRegs:$Rd32),
10989 (ins PredRegs:$Pt4, IntRegs:$Rs32),
10990 "if ($Pt4.new) $Rd32 = memub($Rs32)",
10991 tc_44d3da28, TypeMAPPING> {
10992 let hasNewValue = 1;
10993 let opNewValue = 0;
10994 let isPseudo = 1;
10995 let isCodeGenOnly = 1;
10996 }
10997 def L2_ploadruhf_io : HInst<
10998 (outs IntRegs:$Rd32),
10999 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11000 "if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11001 tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11002 let Inst{13-13} = 0b0;
11003 let Inst{31-21} = 0b01000101011;
11004 let isPredicated = 1;
11005 let isPredicatedFalse = 1;
11006 let hasNewValue = 1;
11007 let opNewValue = 0;
11008 let addrMode = BaseImmOffset;
11009 let accessSize = HalfWordAccess;
11010 let mayLoad = 1;
11011 let CextOpcode = "L2_loadruh";
11012 let BaseOpcode = "L2_loadruh_io";
11013 let isExtendable = 1;
11014 let opExtendable = 3;
11015 let isExtentSigned = 0;
11016 let opExtentBits = 7;
11017 let opExtentAlign = 1;
11018 }
11019 def L2_ploadruhf_pi : HInst<
11020 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11021 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11022 "if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11023 tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
11024 let Inst{13-11} = 0b101;
11025 let Inst{31-21} = 0b10011011011;
11026 let isPredicated = 1;
11027 let isPredicatedFalse = 1;
11028 let hasNewValue = 1;
11029 let opNewValue = 0;
11030 let addrMode = PostInc;
11031 let accessSize = HalfWordAccess;
11032 let mayLoad = 1;
11033 let BaseOpcode = "L2_loadruh_pi";
11034 let Constraints = "$Rx32 = $Rx32in";
11035 }
11036 def L2_ploadruhf_zomap : HInst<
11037 (outs IntRegs:$Rd32),
11038 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11039 "if (!$Pt4) $Rd32 = memuh($Rs32)",
11040 tc_5ef37dc4, TypeMAPPING> {
11041 let hasNewValue = 1;
11042 let opNewValue = 0;
11043 let isPseudo = 1;
11044 let isCodeGenOnly = 1;
11045 }
11046 def L2_ploadruhfnew_io : HInst<
11047 (outs IntRegs:$Rd32),
11048 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11049 "if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11050 tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11051 let Inst{13-13} = 0b0;
11052 let Inst{31-21} = 0b01000111011;
11053 let isPredicated = 1;
11054 let isPredicatedFalse = 1;
11055 let hasNewValue = 1;
11056 let opNewValue = 0;
11057 let addrMode = BaseImmOffset;
11058 let accessSize = HalfWordAccess;
11059 let isPredicatedNew = 1;
11060 let mayLoad = 1;
11061 let CextOpcode = "L2_loadruh";
11062 let BaseOpcode = "L2_loadruh_io";
11063 let isExtendable = 1;
11064 let opExtendable = 3;
11065 let isExtentSigned = 0;
11066 let opExtentBits = 7;
11067 let opExtentAlign = 1;
11068 }
11069 def L2_ploadruhfnew_pi : HInst<
11070 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11071 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11072 "if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11073 tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
11074 let Inst{13-11} = 0b111;
11075 let Inst{31-21} = 0b10011011011;
11076 let isPredicated = 1;
11077 let isPredicatedFalse = 1;
11078 let hasNewValue = 1;
11079 let opNewValue = 0;
11080 let addrMode = PostInc;
11081 let accessSize = HalfWordAccess;
11082 let isPredicatedNew = 1;
11083 let mayLoad = 1;
11084 let BaseOpcode = "L2_loadruh_pi";
11085 let Constraints = "$Rx32 = $Rx32in";
11086 }
11087 def L2_ploadruhfnew_zomap : HInst<
11088 (outs IntRegs:$Rd32),
11089 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11090 "if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11091 tc_44d3da28, TypeMAPPING> {
11092 let hasNewValue = 1;
11093 let opNewValue = 0;
11094 let isPseudo = 1;
11095 let isCodeGenOnly = 1;
11096 }
11097 def L2_ploadruht_io : HInst<
11098 (outs IntRegs:$Rd32),
11099 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11100 "if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11101 tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11102 let Inst{13-13} = 0b0;
11103 let Inst{31-21} = 0b01000001011;
11104 let isPredicated = 1;
11105 let hasNewValue = 1;
11106 let opNewValue = 0;
11107 let addrMode = BaseImmOffset;
11108 let accessSize = HalfWordAccess;
11109 let mayLoad = 1;
11110 let CextOpcode = "L2_loadruh";
11111 let BaseOpcode = "L2_loadruh_io";
11112 let isExtendable = 1;
11113 let opExtendable = 3;
11114 let isExtentSigned = 0;
11115 let opExtentBits = 7;
11116 let opExtentAlign = 1;
11117 }
11118 def L2_ploadruht_pi : HInst<
11119 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11120 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11121 "if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11122 tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
11123 let Inst{13-11} = 0b100;
11124 let Inst{31-21} = 0b10011011011;
11125 let isPredicated = 1;
11126 let hasNewValue = 1;
11127 let opNewValue = 0;
11128 let addrMode = PostInc;
11129 let accessSize = HalfWordAccess;
11130 let mayLoad = 1;
11131 let BaseOpcode = "L2_loadruh_pi";
11132 let Constraints = "$Rx32 = $Rx32in";
11133 }
11134 def L2_ploadruht_zomap : HInst<
11135 (outs IntRegs:$Rd32),
11136 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11137 "if ($Pt4) $Rd32 = memuh($Rs32)",
11138 tc_5ef37dc4, TypeMAPPING> {
11139 let hasNewValue = 1;
11140 let opNewValue = 0;
11141 let isPseudo = 1;
11142 let isCodeGenOnly = 1;
11143 }
11144 def L2_ploadruhtnew_io : HInst<
11145 (outs IntRegs:$Rd32),
11146 (ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11147 "if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11148 tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11149 let Inst{13-13} = 0b0;
11150 let Inst{31-21} = 0b01000011011;
11151 let isPredicated = 1;
11152 let hasNewValue = 1;
11153 let opNewValue = 0;
11154 let addrMode = BaseImmOffset;
11155 let accessSize = HalfWordAccess;
11156 let isPredicatedNew = 1;
11157 let mayLoad = 1;
11158 let CextOpcode = "L2_loadruh";
11159 let BaseOpcode = "L2_loadruh_io";
11160 let isExtendable = 1;
11161 let opExtendable = 3;
11162 let isExtentSigned = 0;
11163 let opExtentBits = 7;
11164 let opExtentAlign = 1;
11165 }
11166 def L2_ploadruhtnew_pi : HInst<
11167 (outs IntRegs:$Rd32, IntRegs:$Rx32),
11168 (ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11169 "if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11170 tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
11171 let Inst{13-11} = 0b110;
11172 let Inst{31-21} = 0b10011011011;
11173 let isPredicated = 1;
11174 let hasNewValue = 1;
11175 let opNewValue = 0;
11176 let addrMode = PostInc;
11177 let accessSize = HalfWordAccess;
11178 let isPredicatedNew = 1;
11179 let mayLoad = 1;
11180 let BaseOpcode = "L2_loadruh_pi";
11181 let Constraints = "$Rx32 = $Rx32in";
11182 }
11183 def L2_ploadruhtnew_zomap : HInst<
11184 (outs IntRegs:$Rd32),
11185 (ins PredRegs:$Pt4, IntRegs:$Rs32),
11186 "if ($Pt4.new) $Rd32 = memuh($Rs32)",
11187 tc_44d3da28, TypeMAPPING> {
11188 let hasNewValue = 1;
11189 let opNewValue = 0;
11190 let isPseudo = 1;
11191 let isCodeGenOnly = 1;
11192 }
11193 def L4_add_memopb_io : HInst<
11194 (outs),
11195 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11196 "memb($Rs32+#$Ii) += $Rt32",
11197 tc_7186d325, TypeV4LDST>, Enc_d44e31 {
11198 let Inst{6-5} = 0b00;
11199 let Inst{13-13} = 0b0;
11200 let Inst{31-21} = 0b00111110000;
11201 let addrMode = BaseImmOffset;
11202 let accessSize = ByteAccess;
11203 let mayLoad = 1;
11204 let isRestrictNoSlot1Store = 1;
11205 let mayStore = 1;
11206 let isExtendable = 1;
11207 let opExtendable = 1;
11208 let isExtentSigned = 0;
11209 let opExtentBits = 6;
11210 let opExtentAlign = 0;
11211 }
11212 def L4_add_memopb_zomap : HInst<
11213 (outs),
11214 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11215 "memb($Rs32) += $Rt32",
11216 tc_7186d325, TypeMAPPING> {
11217 let isPseudo = 1;
11218 let isCodeGenOnly = 1;
11219 }
11220 def L4_add_memoph_io : HInst<
11221 (outs),
11222 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11223 "memh($Rs32+#$Ii) += $Rt32",
11224 tc_7186d325, TypeV4LDST>, Enc_163a3c {
11225 let Inst{6-5} = 0b00;
11226 let Inst{13-13} = 0b0;
11227 let Inst{31-21} = 0b00111110001;
11228 let addrMode = BaseImmOffset;
11229 let accessSize = HalfWordAccess;
11230 let mayLoad = 1;
11231 let isRestrictNoSlot1Store = 1;
11232 let mayStore = 1;
11233 let isExtendable = 1;
11234 let opExtendable = 1;
11235 let isExtentSigned = 0;
11236 let opExtentBits = 7;
11237 let opExtentAlign = 1;
11238 }
11239 def L4_add_memoph_zomap : HInst<
11240 (outs),
11241 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11242 "memh($Rs32) += $Rt32",
11243 tc_7186d325, TypeMAPPING> {
11244 let isPseudo = 1;
11245 let isCodeGenOnly = 1;
11246 }
11247 def L4_add_memopw_io : HInst<
11248 (outs),
11249 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11250 "memw($Rs32+#$Ii) += $Rt32",
11251 tc_7186d325, TypeV4LDST>, Enc_226535 {
11252 let Inst{6-5} = 0b00;
11253 let Inst{13-13} = 0b0;
11254 let Inst{31-21} = 0b00111110010;
11255 let addrMode = BaseImmOffset;
11256 let accessSize = WordAccess;
11257 let mayLoad = 1;
11258 let isRestrictNoSlot1Store = 1;
11259 let mayStore = 1;
11260 let isExtendable = 1;
11261 let opExtendable = 1;
11262 let isExtentSigned = 0;
11263 let opExtentBits = 8;
11264 let opExtentAlign = 2;
11265 }
11266 def L4_add_memopw_zomap : HInst<
11267 (outs),
11268 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11269 "memw($Rs32) += $Rt32",
11270 tc_7186d325, TypeMAPPING> {
11271 let isPseudo = 1;
11272 let isCodeGenOnly = 1;
11273 }
11274 def L4_and_memopb_io : HInst<
11275 (outs),
11276 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11277 "memb($Rs32+#$Ii) &= $Rt32",
11278 tc_7186d325, TypeV4LDST>, Enc_d44e31 {
11279 let Inst{6-5} = 0b10;
11280 let Inst{13-13} = 0b0;
11281 let Inst{31-21} = 0b00111110000;
11282 let addrMode = BaseImmOffset;
11283 let accessSize = ByteAccess;
11284 let mayLoad = 1;
11285 let isRestrictNoSlot1Store = 1;
11286 let mayStore = 1;
11287 let isExtendable = 1;
11288 let opExtendable = 1;
11289 let isExtentSigned = 0;
11290 let opExtentBits = 6;
11291 let opExtentAlign = 0;
11292 }
11293 def L4_and_memopb_zomap : HInst<
11294 (outs),
11295 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11296 "memb($Rs32) &= $Rt32",
11297 tc_7186d325, TypeMAPPING> {
11298 let isPseudo = 1;
11299 let isCodeGenOnly = 1;
11300 }
11301 def L4_and_memoph_io : HInst<
11302 (outs),
11303 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11304 "memh($Rs32+#$Ii) &= $Rt32",
11305 tc_7186d325, TypeV4LDST>, Enc_163a3c {
11306 let Inst{6-5} = 0b10;
11307 let Inst{13-13} = 0b0;
11308 let Inst{31-21} = 0b00111110001;
11309 let addrMode = BaseImmOffset;
11310 let accessSize = HalfWordAccess;
11311 let mayLoad = 1;
11312 let isRestrictNoSlot1Store = 1;
11313 let mayStore = 1;
11314 let isExtendable = 1;
11315 let opExtendable = 1;
11316 let isExtentSigned = 0;
11317 let opExtentBits = 7;
11318 let opExtentAlign = 1;
11319 }
11320 def L4_and_memoph_zomap : HInst<
11321 (outs),
11322 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11323 "memh($Rs32) &= $Rt32",
11324 tc_7186d325, TypeMAPPING> {
11325 let isPseudo = 1;
11326 let isCodeGenOnly = 1;
11327 }
11328 def L4_and_memopw_io : HInst<
11329 (outs),
11330 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11331 "memw($Rs32+#$Ii) &= $Rt32",
11332 tc_7186d325, TypeV4LDST>, Enc_226535 {
11333 let Inst{6-5} = 0b10;
11334 let Inst{13-13} = 0b0;
11335 let Inst{31-21} = 0b00111110010;
11336 let addrMode = BaseImmOffset;
11337 let accessSize = WordAccess;
11338 let mayLoad = 1;
11339 let isRestrictNoSlot1Store = 1;
11340 let mayStore = 1;
11341 let isExtendable = 1;
11342 let opExtendable = 1;
11343 let isExtentSigned = 0;
11344 let opExtentBits = 8;
11345 let opExtentAlign = 2;
11346 }
11347 def L4_and_memopw_zomap : HInst<
11348 (outs),
11349 (ins IntRegs:$Rs32, IntRegs:$Rt32),
11350 "memw($Rs32) &= $Rt32",
11351 tc_7186d325, TypeMAPPING> {
11352 let isPseudo = 1;
11353 let isCodeGenOnly = 1;
11354 }
11355 def L4_iadd_memopb_io : HInst<
11356 (outs),
11357 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11358 "memb($Rs32+#$Ii) += #$II",
11359 tc_096199d3, TypeV4LDST>, Enc_46c951 {
11360 let Inst{6-5} = 0b00;
11361 let Inst{13-13} = 0b0;
11362 let Inst{31-21} = 0b00111111000;
11363 let addrMode = BaseImmOffset;
11364 let accessSize = ByteAccess;
11365 let mayLoad = 1;
11366 let isRestrictNoSlot1Store = 1;
11367 let mayStore = 1;
11368 let isExtendable = 1;
11369 let opExtendable = 1;
11370 let isExtentSigned = 0;
11371 let opExtentBits = 6;
11372 let opExtentAlign = 0;
11373 }
11374 def L4_iadd_memopb_zomap : HInst<
11375 (outs),
11376 (ins IntRegs:$Rs32, u5_0Imm:$II),
11377 "memb($Rs32) += #$II",
11378 tc_096199d3, TypeMAPPING> {
11379 let isPseudo = 1;
11380 let isCodeGenOnly = 1;
11381 }
11382 def L4_iadd_memoph_io : HInst<
11383 (outs),
11384 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11385 "memh($Rs32+#$Ii) += #$II",
11386 tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11387 let Inst{6-5} = 0b00;
11388 let Inst{13-13} = 0b0;
11389 let Inst{31-21} = 0b00111111001;
11390 let addrMode = BaseImmOffset;
11391 let accessSize = HalfWordAccess;
11392 let mayLoad = 1;
11393 let isRestrictNoSlot1Store = 1;
11394 let mayStore = 1;
11395 let isExtendable = 1;
11396 let opExtendable = 1;
11397 let isExtentSigned = 0;
11398 let opExtentBits = 7;
11399 let opExtentAlign = 1;
11400 }
11401 def L4_iadd_memoph_zomap : HInst<
11402 (outs),
11403 (ins IntRegs:$Rs32, u5_0Imm:$II),
11404 "memh($Rs32) += #$II",
11405 tc_096199d3, TypeMAPPING> {
11406 let isPseudo = 1;
11407 let isCodeGenOnly = 1;
11408 }
11409 def L4_iadd_memopw_io : HInst<
11410 (outs),
11411 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11412 "memw($Rs32+#$Ii) += #$II",
11413 tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11414 let Inst{6-5} = 0b00;
11415 let Inst{13-13} = 0b0;
11416 let Inst{31-21} = 0b00111111010;
11417 let addrMode = BaseImmOffset;
11418 let accessSize = WordAccess;
11419 let mayLoad = 1;
11420 let isRestrictNoSlot1Store = 1;
11421 let mayStore = 1;
11422 let isExtendable = 1;
11423 let opExtendable = 1;
11424 let isExtentSigned = 0;
11425 let opExtentBits = 8;
11426 let opExtentAlign = 2;
11427 }
11428 def L4_iadd_memopw_zomap : HInst<
11429 (outs),
11430 (ins IntRegs:$Rs32, u5_0Imm:$II),
11431 "memw($Rs32) += #$II",
11432 tc_096199d3, TypeMAPPING> {
11433 let isPseudo = 1;
11434 let isCodeGenOnly = 1;
11435 }
11436 def L4_iand_memopb_io : HInst<
11437 (outs),
11438 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11439 "memb($Rs32+#$Ii) = clrbit(#$II)",
11440 tc_096199d3, TypeV4LDST>, Enc_46c951 {
11441 let Inst{6-5} = 0b10;
11442 let Inst{13-13} = 0b0;
11443 let Inst{31-21} = 0b00111111000;
11444 let addrMode = BaseImmOffset;
11445 let accessSize = ByteAccess;
11446 let mayLoad = 1;
11447 let isRestrictNoSlot1Store = 1;
11448 let mayStore = 1;
11449 let isExtendable = 1;
11450 let opExtendable = 1;
11451 let isExtentSigned = 0;
11452 let opExtentBits = 6;
11453 let opExtentAlign = 0;
11454 }
11455 def L4_iand_memopb_zomap : HInst<
11456 (outs),
11457 (ins IntRegs:$Rs32, u5_0Imm:$II),
11458 "memb($Rs32) = clrbit(#$II)",
11459 tc_096199d3, TypeMAPPING> {
11460 let isPseudo = 1;
11461 let isCodeGenOnly = 1;
11462 }
11463 def L4_iand_memoph_io : HInst<
11464 (outs),
11465 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11466 "memh($Rs32+#$Ii) = clrbit(#$II)",
11467 tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11468 let Inst{6-5} = 0b10;
11469 let Inst{13-13} = 0b0;
11470 let Inst{31-21} = 0b00111111001;
11471 let addrMode = BaseImmOffset;
11472 let accessSize = HalfWordAccess;
11473 let mayLoad = 1;
11474 let isRestrictNoSlot1Store = 1;
11475 let mayStore = 1;
11476 let isExtendable = 1;
11477 let opExtendable = 1;
11478 let isExtentSigned = 0;
11479 let opExtentBits = 7;
11480 let opExtentAlign = 1;
11481 }
11482 def L4_iand_memoph_zomap : HInst<
11483 (outs),
11484 (ins IntRegs:$Rs32, u5_0Imm:$II),
11485 "memh($Rs32) = clrbit(#$II)",
11486 tc_096199d3, TypeMAPPING> {
11487 let isPseudo = 1;
11488 let isCodeGenOnly = 1;
11489 }
11490 def L4_iand_memopw_io : HInst<
11491 (outs),
11492 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11493 "memw($Rs32+#$Ii) = clrbit(#$II)",
11494 tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11495 let Inst{6-5} = 0b10;
11496 let Inst{13-13} = 0b0;
11497 let Inst{31-21} = 0b00111111010;
11498 let addrMode = BaseImmOffset;
11499 let accessSize = WordAccess;
11500 let mayLoad = 1;
11501 let isRestrictNoSlot1Store = 1;
11502 let mayStore = 1;
11503 let isExtendable = 1;
11504 let opExtendable = 1;
11505 let isExtentSigned = 0;
11506 let opExtentBits = 8;
11507 let opExtentAlign = 2;
11508 }
11509 def L4_iand_memopw_zomap : HInst<
11510 (outs),
11511 (ins IntRegs:$Rs32, u5_0Imm:$II),
11512 "memw($Rs32) = clrbit(#$II)",
11513 tc_096199d3, TypeMAPPING> {
11514 let isPseudo = 1;
11515 let isCodeGenOnly = 1;
11516 }
11517 def L4_ior_memopb_io : HInst<
11518 (outs),
11519 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11520 "memb($Rs32+#$Ii) = setbit(#$II)",
11521 tc_096199d3, TypeV4LDST>, Enc_46c951 {
11522 let Inst{6-5} = 0b11;
11523 let Inst{13-13} = 0b0;
11524 let Inst{31-21} = 0b00111111000;
11525 let addrMode = BaseImmOffset;
11526 let accessSize = ByteAccess;
11527 let mayLoad = 1;
11528 let isRestrictNoSlot1Store = 1;
11529 let mayStore = 1;
11530 let isExtendable = 1;
11531 let opExtendable = 1;
11532 let isExtentSigned = 0;
11533 let opExtentBits = 6;
11534 let opExtentAlign = 0;
11535 }
11536 def L4_ior_memopb_zomap : HInst<
11537 (outs),
11538 (ins IntRegs:$Rs32, u5_0Imm:$II),
11539 "memb($Rs32) = setbit(#$II)",
11540 tc_096199d3, TypeMAPPING> {
11541 let isPseudo = 1;
11542 let isCodeGenOnly = 1;
11543 }
11544 def L4_ior_memoph_io : HInst<
11545 (outs),
11546 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11547 "memh($Rs32+#$Ii) = setbit(#$II)",
11548 tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11549 let Inst{6-5} = 0b11;
11550 let Inst{13-13} = 0b0;
11551 let Inst{31-21} = 0b00111111001;
11552 let addrMode = BaseImmOffset;
11553 let accessSize = HalfWordAccess;
11554 let mayLoad = 1;
11555 let isRestrictNoSlot1Store = 1;
11556 let mayStore = 1;
11557 let isExtendable = 1;
11558 let opExtendable = 1;
11559 let isExtentSigned = 0;
11560 let opExtentBits = 7;
11561 let opExtentAlign = 1;
11562 }
11563 def L4_ior_memoph_zomap : HInst<
11564 (outs),
11565 (ins IntRegs:$Rs32, u5_0Imm:$II),
11566 "memh($Rs32) = setbit(#$II)",
11567 tc_096199d3, TypeMAPPING> {
11568 let isPseudo = 1;
11569 let isCodeGenOnly = 1;
11570 }
11571 def L4_ior_memopw_io : HInst<
11572 (outs),
11573 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11574 "memw($Rs32+#$Ii) = setbit(#$II)",
11575 tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11576 let Inst{6-5} = 0b11;
11577 let Inst{13-13} = 0b0;
11578 let Inst{31-21} = 0b00111111010;
11579 let addrMode = BaseImmOffset;
11580 let accessSize = WordAccess;
11581 let mayLoad = 1;
11582 let isRestrictNoSlot1Store = 1;
11583 let mayStore = 1;
11584 let isExtendable = 1;
11585 let opExtendable = 1;
11586 let isExtentSigned = 0;
11587 let opExtentBits = 8;
11588 let opExtentAlign = 2;
11589 }
11590 def L4_ior_memopw_zomap : HInst<
11591 (outs),
11592 (ins IntRegs:$Rs32, u5_0Imm:$II),
11593 "memw($Rs32) = setbit(#$II)",
11594 tc_096199d3, TypeMAPPING> {
11595 let isPseudo = 1;
11596 let isCodeGenOnly = 1;
11597 }
11598 def L4_isub_memopb_io : HInst<
11599 (outs),
11600 (ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11601 "memb($Rs32+#$Ii) -= #$II",
11602 tc_096199d3, TypeV4LDST>, Enc_46c951 {
11603 let Inst{6-5} = 0b01;
11604 let Inst{13-13} = 0b0;
11605 let Inst{31-21} = 0b00111111000;
11606 let addrMode = BaseImmOffset;
11607 let accessSize = ByteAccess;
11608 let mayLoad = 1;
11609 let isRestrictNoSlot1Store = 1;
11610 let mayStore = 1;
11611 let isExtendable = 1;
11612 let opExtendable = 1;
11613 let isExtentSigned = 0;
11614 let opExtentBits = 6;
11615 let opExtentAlign = 0;
11616 }
11617 def L4_isub_memopb_zomap : HInst<
11618 (outs),
11619 (ins IntRegs:$Rs32, u5_0Imm:$II),
11620 "memb($Rs32) -= #$II",
11621 tc_096199d3, TypeMAPPING> {
11622 let isPseudo = 1;
11623 let isCodeGenOnly = 1;
11624 }
11625 def L4_isub_memoph_io : HInst<
11626 (outs),
11627 (ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11628 "memh($Rs32+#$Ii) -= #$II",
11629 tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11630 let Inst{6-5} = 0b01;
11631 let Inst{13-13} = 0b0;
11632 let Inst{31-21} = 0b00111111001;
11633 let addrMode = BaseImmOffset;
11634 let accessSize = HalfWordAccess;
11635 let mayLoad = 1;
11636 let isRestrictNoSlot1Store = 1;
11637 let mayStore = 1;
11638 let isExtendable = 1;
11639 let opExtendable = 1;
11640 let isExtentSigned = 0;
11641 let opExtentBits = 7;
11642 let opExtentAlign = 1;
11643 }
11644 def L4_isub_memoph_zomap : HInst<
11645 (outs),
11646 (ins IntRegs:$Rs32, u5_0Imm:$II),
11647 "memh($Rs32) -= #$II",
11648 tc_096199d3, TypeMAPPING> {
11649 let isPseudo = 1;
11650 let isCodeGenOnly = 1;
11651 }
11652 def L4_isub_memopw_io : HInst<
11653 (outs),
11654 (ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11655 "memw($Rs32+#$Ii) -= #$II",
11656 tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11657 let Inst{6-5} = 0b01;
11658 let Inst{13-13} = 0b0;
11659 let Inst{31-21} = 0b00111111010;
11660 let addrMode = BaseImmOffset;
11661 let accessSize = WordAccess;
11662 let mayLoad = 1;
11663 let isRestrictNoSlot1Store = 1;
11664 let mayStore = 1;
11665 let isExtendable = 1;
11666 let opExtendable = 1;
11667 let isExtentSigned = 0;
11668 let opExtentBits = 8;
11669 let opExtentAlign = 2;
11670 }
11671 def L4_isub_memopw_zomap : HInst<
11672 (outs),
11673 (ins IntRegs:$Rs32, u5_0Imm:$II),
11674 "memw($Rs32) -= #$II",
11675 tc_096199d3, TypeMAPPING> {
11676 let isPseudo = 1;
11677 let isCodeGenOnly = 1;
11678 }
11679 def L4_loadalignb_ap : HInst<
11680 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11681 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11682 "$Ryy32 = memb_fifo($Re32=#$II)",
11683 tc_7a91e76a, TypeLD>, Enc_f394d3 {
11684 let Inst{7-7} = 0b0;
11685 let Inst{13-12} = 0b01;
11686 let Inst{31-21} = 0b10011010100;
11687 let addrMode = AbsoluteSet;
11688 let accessSize = ByteAccess;
11689 let mayLoad = 1;
11690 let isExtended = 1;
11691 let DecoderNamespace = "MustExtend";
11692 let isExtendable = 1;
11693 let opExtendable = 3;
11694 let isExtentSigned = 0;
11695 let opExtentBits = 6;
11696 let opExtentAlign = 0;
11697 let Constraints = "$Ryy32 = $Ryy32in";
11698 }
11699 def L4_loadalignb_ur : HInst<
11700 (outs DoubleRegs:$Ryy32),
11701 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11702 "$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11703 tc_a5d4aeec, TypeLD>, Enc_04c959 {
11704 let Inst{12-12} = 0b1;
11705 let Inst{31-21} = 0b10011100100;
11706 let addrMode = BaseLongOffset;
11707 let accessSize = ByteAccess;
11708 let mayLoad = 1;
11709 let isExtended = 1;
11710 let InputType = "imm";
11711 let DecoderNamespace = "MustExtend";
11712 let isExtendable = 1;
11713 let opExtendable = 4;
11714 let isExtentSigned = 0;
11715 let opExtentBits = 6;
11716 let opExtentAlign = 0;
11717 let Constraints = "$Ryy32 = $Ryy32in";
11718 }
11719 def L4_loadalignh_ap : HInst<
11720 (outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11721 (ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11722 "$Ryy32 = memh_fifo($Re32=#$II)",
11723 tc_7a91e76a, TypeLD>, Enc_f394d3 {
11724 let Inst{7-7} = 0b0;
11725 let Inst{13-12} = 0b01;
11726 let Inst{31-21} = 0b10011010010;
11727 let addrMode = AbsoluteSet;
11728 let accessSize = HalfWordAccess;
11729 let mayLoad = 1;
11730 let isExtended = 1;
11731 let DecoderNamespace = "MustExtend";
11732 let isExtendable = 1;
11733 let opExtendable = 3;
11734 let isExtentSigned = 0;
11735 let opExtentBits = 6;
11736 let opExtentAlign = 0;
11737 let Constraints = "$Ryy32 = $Ryy32in";
11738 }
11739 def L4_loadalignh_ur : HInst<
11740 (outs DoubleRegs:$Ryy32),
11741 (ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11742 "$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11743 tc_a5d4aeec, TypeLD>, Enc_04c959 {
11744 let Inst{12-12} = 0b1;
11745 let Inst{31-21} = 0b10011100010;
11746 let addrMode = BaseLongOffset;
11747 let accessSize = HalfWordAccess;
11748 let mayLoad = 1;
11749 let isExtended = 1;
11750 let InputType = "imm";
11751 let DecoderNamespace = "MustExtend";
11752 let isExtendable = 1;
11753 let opExtendable = 4;
11754 let isExtentSigned = 0;
11755 let opExtentBits = 6;
11756 let opExtentAlign = 0;
11757 let Constraints = "$Ryy32 = $Ryy32in";
11758 }
11759 def L4_loadbsw2_ap : HInst<
11760 (outs IntRegs:$Rd32, IntRegs:$Re32),
11761 (ins u32_0Imm:$II),
11762 "$Rd32 = membh($Re32=#$II)",
11763 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11764 let Inst{7-7} = 0b0;
11765 let Inst{13-12} = 0b01;
11766 let Inst{31-21} = 0b10011010001;
11767 let hasNewValue = 1;
11768 let opNewValue = 0;
11769 let addrMode = AbsoluteSet;
11770 let accessSize = HalfWordAccess;
11771 let mayLoad = 1;
11772 let isExtended = 1;
11773 let DecoderNamespace = "MustExtend";
11774 let isExtendable = 1;
11775 let opExtendable = 2;
11776 let isExtentSigned = 0;
11777 let opExtentBits = 6;
11778 let opExtentAlign = 0;
11779 }
11780 def L4_loadbsw2_ur : HInst<
11781 (outs IntRegs:$Rd32),
11782 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11783 "$Rd32 = membh($Rt32<<#$Ii+#$II)",
11784 tc_bab0eed9, TypeLD>, Enc_4f677b {
11785 let Inst{12-12} = 0b1;
11786 let Inst{31-21} = 0b10011100001;
11787 let hasNewValue = 1;
11788 let opNewValue = 0;
11789 let addrMode = BaseLongOffset;
11790 let accessSize = HalfWordAccess;
11791 let mayLoad = 1;
11792 let isExtended = 1;
11793 let InputType = "imm";
11794 let DecoderNamespace = "MustExtend";
11795 let isExtendable = 1;
11796 let opExtendable = 3;
11797 let isExtentSigned = 0;
11798 let opExtentBits = 6;
11799 let opExtentAlign = 0;
11800 }
11801 def L4_loadbsw4_ap : HInst<
11802 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11803 (ins u32_0Imm:$II),
11804 "$Rdd32 = membh($Re32=#$II)",
11805 tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11806 let Inst{7-7} = 0b0;
11807 let Inst{13-12} = 0b01;
11808 let Inst{31-21} = 0b10011010111;
11809 let addrMode = AbsoluteSet;
11810 let accessSize = WordAccess;
11811 let mayLoad = 1;
11812 let isExtended = 1;
11813 let DecoderNamespace = "MustExtend";
11814 let isExtendable = 1;
11815 let opExtendable = 2;
11816 let isExtentSigned = 0;
11817 let opExtentBits = 6;
11818 let opExtentAlign = 0;
11819 }
11820 def L4_loadbsw4_ur : HInst<
11821 (outs DoubleRegs:$Rdd32),
11822 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11823 "$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11824 tc_bab0eed9, TypeLD>, Enc_6185fe {
11825 let Inst{12-12} = 0b1;
11826 let Inst{31-21} = 0b10011100111;
11827 let addrMode = BaseLongOffset;
11828 let accessSize = WordAccess;
11829 let mayLoad = 1;
11830 let isExtended = 1;
11831 let InputType = "imm";
11832 let DecoderNamespace = "MustExtend";
11833 let isExtendable = 1;
11834 let opExtendable = 3;
11835 let isExtentSigned = 0;
11836 let opExtentBits = 6;
11837 let opExtentAlign = 0;
11838 }
11839 def L4_loadbzw2_ap : HInst<
11840 (outs IntRegs:$Rd32, IntRegs:$Re32),
11841 (ins u32_0Imm:$II),
11842 "$Rd32 = memubh($Re32=#$II)",
11843 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11844 let Inst{7-7} = 0b0;
11845 let Inst{13-12} = 0b01;
11846 let Inst{31-21} = 0b10011010011;
11847 let hasNewValue = 1;
11848 let opNewValue = 0;
11849 let addrMode = AbsoluteSet;
11850 let accessSize = HalfWordAccess;
11851 let mayLoad = 1;
11852 let isExtended = 1;
11853 let DecoderNamespace = "MustExtend";
11854 let isExtendable = 1;
11855 let opExtendable = 2;
11856 let isExtentSigned = 0;
11857 let opExtentBits = 6;
11858 let opExtentAlign = 0;
11859 }
11860 def L4_loadbzw2_ur : HInst<
11861 (outs IntRegs:$Rd32),
11862 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11863 "$Rd32 = memubh($Rt32<<#$Ii+#$II)",
11864 tc_bab0eed9, TypeLD>, Enc_4f677b {
11865 let Inst{12-12} = 0b1;
11866 let Inst{31-21} = 0b10011100011;
11867 let hasNewValue = 1;
11868 let opNewValue = 0;
11869 let addrMode = BaseLongOffset;
11870 let accessSize = HalfWordAccess;
11871 let mayLoad = 1;
11872 let isExtended = 1;
11873 let InputType = "imm";
11874 let DecoderNamespace = "MustExtend";
11875 let isExtendable = 1;
11876 let opExtendable = 3;
11877 let isExtentSigned = 0;
11878 let opExtentBits = 6;
11879 let opExtentAlign = 0;
11880 }
11881 def L4_loadbzw4_ap : HInst<
11882 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11883 (ins u32_0Imm:$II),
11884 "$Rdd32 = memubh($Re32=#$II)",
11885 tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11886 let Inst{7-7} = 0b0;
11887 let Inst{13-12} = 0b01;
11888 let Inst{31-21} = 0b10011010101;
11889 let addrMode = AbsoluteSet;
11890 let accessSize = WordAccess;
11891 let mayLoad = 1;
11892 let isExtended = 1;
11893 let DecoderNamespace = "MustExtend";
11894 let isExtendable = 1;
11895 let opExtendable = 2;
11896 let isExtentSigned = 0;
11897 let opExtentBits = 6;
11898 let opExtentAlign = 0;
11899 }
11900 def L4_loadbzw4_ur : HInst<
11901 (outs DoubleRegs:$Rdd32),
11902 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11903 "$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
11904 tc_bab0eed9, TypeLD>, Enc_6185fe {
11905 let Inst{12-12} = 0b1;
11906 let Inst{31-21} = 0b10011100101;
11907 let addrMode = BaseLongOffset;
11908 let accessSize = WordAccess;
11909 let mayLoad = 1;
11910 let isExtended = 1;
11911 let InputType = "imm";
11912 let DecoderNamespace = "MustExtend";
11913 let isExtendable = 1;
11914 let opExtendable = 3;
11915 let isExtentSigned = 0;
11916 let opExtentBits = 6;
11917 let opExtentAlign = 0;
11918 }
11919 def L4_loadd_locked : HInst<
11920 (outs DoubleRegs:$Rdd32),
11921 (ins IntRegs:$Rs32),
11922 "$Rdd32 = memd_locked($Rs32)",
11923 tc_b43e7930, TypeLD>, Enc_3a3d62 {
11924 let Inst{13-5} = 0b010000000;
11925 let Inst{31-21} = 0b10010010000;
11926 let accessSize = DoubleWordAccess;
11927 let mayLoad = 1;
11928 let isSoloAX = 1;
11929 }
11930 def L4_loadrb_ap : HInst<
11931 (outs IntRegs:$Rd32, IntRegs:$Re32),
11932 (ins u32_0Imm:$II),
11933 "$Rd32 = memb($Re32=#$II)",
11934 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11935 let Inst{7-7} = 0b0;
11936 let Inst{13-12} = 0b01;
11937 let Inst{31-21} = 0b10011011000;
11938 let hasNewValue = 1;
11939 let opNewValue = 0;
11940 let addrMode = AbsoluteSet;
11941 let accessSize = ByteAccess;
11942 let mayLoad = 1;
11943 let isExtended = 1;
11944 let DecoderNamespace = "MustExtend";
11945 let isExtendable = 1;
11946 let opExtendable = 2;
11947 let isExtentSigned = 0;
11948 let opExtentBits = 6;
11949 let opExtentAlign = 0;
11950 }
11951 def L4_loadrb_rr : HInst<
11952 (outs IntRegs:$Rd32),
11953 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11954 "$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
11955 tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11956 let Inst{6-5} = 0b00;
11957 let Inst{31-21} = 0b00111010000;
11958 let hasNewValue = 1;
11959 let opNewValue = 0;
11960 let addrMode = BaseRegOffset;
11961 let accessSize = ByteAccess;
11962 let mayLoad = 1;
11963 let CextOpcode = "L2_loadrb";
11964 let InputType = "reg";
11965 let BaseOpcode = "L4_loadrb_rr";
11966 let isPredicable = 1;
11967 }
11968 def L4_loadrb_ur : HInst<
11969 (outs IntRegs:$Rd32),
11970 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11971 "$Rd32 = memb($Rt32<<#$Ii+#$II)",
11972 tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11973 let Inst{12-12} = 0b1;
11974 let Inst{31-21} = 0b10011101000;
11975 let hasNewValue = 1;
11976 let opNewValue = 0;
11977 let addrMode = BaseLongOffset;
11978 let accessSize = ByteAccess;
11979 let mayLoad = 1;
11980 let isExtended = 1;
11981 let CextOpcode = "L2_loadrb";
11982 let InputType = "imm";
11983 let DecoderNamespace = "MustExtend";
11984 let isExtendable = 1;
11985 let opExtendable = 3;
11986 let isExtentSigned = 0;
11987 let opExtentBits = 6;
11988 let opExtentAlign = 0;
11989 }
11990 def L4_loadrd_ap : HInst<
11991 (outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11992 (ins u32_0Imm:$II),
11993 "$Rdd32 = memd($Re32=#$II)",
11994 tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11995 let Inst{7-7} = 0b0;
11996 let Inst{13-12} = 0b01;
11997 let Inst{31-21} = 0b10011011110;
11998 let addrMode = AbsoluteSet;
11999 let accessSize = DoubleWordAccess;
12000 let mayLoad = 1;
12001 let isExtended = 1;
12002 let DecoderNamespace = "MustExtend";
12003 let isExtendable = 1;
12004 let opExtendable = 2;
12005 let isExtentSigned = 0;
12006 let opExtentBits = 6;
12007 let opExtentAlign = 0;
12008 }
12009 def L4_loadrd_rr : HInst<
12010 (outs DoubleRegs:$Rdd32),
12011 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12012 "$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12013 tc_bf061958, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12014 let Inst{6-5} = 0b00;
12015 let Inst{31-21} = 0b00111010110;
12016 let addrMode = BaseRegOffset;
12017 let accessSize = DoubleWordAccess;
12018 let mayLoad = 1;
12019 let CextOpcode = "L2_loadrd";
12020 let InputType = "reg";
12021 let BaseOpcode = "L4_loadrd_rr";
12022 let isPredicable = 1;
12023 }
12024 def L4_loadrd_ur : HInst<
12025 (outs DoubleRegs:$Rdd32),
12026 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12027 "$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12028 tc_bab0eed9, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12029 let Inst{12-12} = 0b1;
12030 let Inst{31-21} = 0b10011101110;
12031 let addrMode = BaseLongOffset;
12032 let accessSize = DoubleWordAccess;
12033 let mayLoad = 1;
12034 let isExtended = 1;
12035 let CextOpcode = "L2_loadrd";
12036 let InputType = "imm";
12037 let DecoderNamespace = "MustExtend";
12038 let isExtendable = 1;
12039 let opExtendable = 3;
12040 let isExtentSigned = 0;
12041 let opExtentBits = 6;
12042 let opExtentAlign = 0;
12043 }
12044 def L4_loadrh_ap : HInst<
12045 (outs IntRegs:$Rd32, IntRegs:$Re32),
12046 (ins u32_0Imm:$II),
12047 "$Rd32 = memh($Re32=#$II)",
12048 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12049 let Inst{7-7} = 0b0;
12050 let Inst{13-12} = 0b01;
12051 let Inst{31-21} = 0b10011011010;
12052 let hasNewValue = 1;
12053 let opNewValue = 0;
12054 let addrMode = AbsoluteSet;
12055 let accessSize = HalfWordAccess;
12056 let mayLoad = 1;
12057 let isExtended = 1;
12058 let DecoderNamespace = "MustExtend";
12059 let isExtendable = 1;
12060 let opExtendable = 2;
12061 let isExtentSigned = 0;
12062 let opExtentBits = 6;
12063 let opExtentAlign = 0;
12064 }
12065 def L4_loadrh_rr : HInst<
12066 (outs IntRegs:$Rd32),
12067 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12068 "$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12069 tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12070 let Inst{6-5} = 0b00;
12071 let Inst{31-21} = 0b00111010010;
12072 let hasNewValue = 1;
12073 let opNewValue = 0;
12074 let addrMode = BaseRegOffset;
12075 let accessSize = HalfWordAccess;
12076 let mayLoad = 1;
12077 let CextOpcode = "L2_loadrh";
12078 let InputType = "reg";
12079 let BaseOpcode = "L4_loadrh_rr";
12080 let isPredicable = 1;
12081 }
12082 def L4_loadrh_ur : HInst<
12083 (outs IntRegs:$Rd32),
12084 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12085 "$Rd32 = memh($Rt32<<#$Ii+#$II)",
12086 tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12087 let Inst{12-12} = 0b1;
12088 let Inst{31-21} = 0b10011101010;
12089 let hasNewValue = 1;
12090 let opNewValue = 0;
12091 let addrMode = BaseLongOffset;
12092 let accessSize = HalfWordAccess;
12093 let mayLoad = 1;
12094 let isExtended = 1;
12095 let CextOpcode = "L2_loadrh";
12096 let InputType = "imm";
12097 let DecoderNamespace = "MustExtend";
12098 let isExtendable = 1;
12099 let opExtendable = 3;
12100 let isExtentSigned = 0;
12101 let opExtentBits = 6;
12102 let opExtentAlign = 0;
12103 }
12104 def L4_loadri_ap : HInst<
12105 (outs IntRegs:$Rd32, IntRegs:$Re32),
12106 (ins u32_0Imm:$II),
12107 "$Rd32 = memw($Re32=#$II)",
12108 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12109 let Inst{7-7} = 0b0;
12110 let Inst{13-12} = 0b01;
12111 let Inst{31-21} = 0b10011011100;
12112 let hasNewValue = 1;
12113 let opNewValue = 0;
12114 let addrMode = AbsoluteSet;
12115 let accessSize = WordAccess;
12116 let mayLoad = 1;
12117 let isExtended = 1;
12118 let DecoderNamespace = "MustExtend";
12119 let isExtendable = 1;
12120 let opExtendable = 2;
12121 let isExtentSigned = 0;
12122 let opExtentBits = 6;
12123 let opExtentAlign = 0;
12124 }
12125 def L4_loadri_rr : HInst<
12126 (outs IntRegs:$Rd32),
12127 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12128 "$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12129 tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12130 let Inst{6-5} = 0b00;
12131 let Inst{31-21} = 0b00111010100;
12132 let hasNewValue = 1;
12133 let opNewValue = 0;
12134 let addrMode = BaseRegOffset;
12135 let accessSize = WordAccess;
12136 let mayLoad = 1;
12137 let CextOpcode = "L2_loadri";
12138 let InputType = "reg";
12139 let BaseOpcode = "L4_loadri_rr";
12140 let isPredicable = 1;
12141 }
12142 def L4_loadri_ur : HInst<
12143 (outs IntRegs:$Rd32),
12144 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12145 "$Rd32 = memw($Rt32<<#$Ii+#$II)",
12146 tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12147 let Inst{12-12} = 0b1;
12148 let Inst{31-21} = 0b10011101100;
12149 let hasNewValue = 1;
12150 let opNewValue = 0;
12151 let addrMode = BaseLongOffset;
12152 let accessSize = WordAccess;
12153 let mayLoad = 1;
12154 let isExtended = 1;
12155 let CextOpcode = "L2_loadri";
12156 let InputType = "imm";
12157 let DecoderNamespace = "MustExtend";
12158 let isExtendable = 1;
12159 let opExtendable = 3;
12160 let isExtentSigned = 0;
12161 let opExtentBits = 6;
12162 let opExtentAlign = 0;
12163 }
12164 def L4_loadrub_ap : HInst<
12165 (outs IntRegs:$Rd32, IntRegs:$Re32),
12166 (ins u32_0Imm:$II),
12167 "$Rd32 = memub($Re32=#$II)",
12168 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12169 let Inst{7-7} = 0b0;
12170 let Inst{13-12} = 0b01;
12171 let Inst{31-21} = 0b10011011001;
12172 let hasNewValue = 1;
12173 let opNewValue = 0;
12174 let addrMode = AbsoluteSet;
12175 let accessSize = ByteAccess;
12176 let mayLoad = 1;
12177 let isExtended = 1;
12178 let DecoderNamespace = "MustExtend";
12179 let isExtendable = 1;
12180 let opExtendable = 2;
12181 let isExtentSigned = 0;
12182 let opExtentBits = 6;
12183 let opExtentAlign = 0;
12184 }
12185 def L4_loadrub_rr : HInst<
12186 (outs IntRegs:$Rd32),
12187 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12188 "$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12189 tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12190 let Inst{6-5} = 0b00;
12191 let Inst{31-21} = 0b00111010001;
12192 let hasNewValue = 1;
12193 let opNewValue = 0;
12194 let addrMode = BaseRegOffset;
12195 let accessSize = ByteAccess;
12196 let mayLoad = 1;
12197 let CextOpcode = "L2_loadrub";
12198 let InputType = "reg";
12199 let BaseOpcode = "L4_loadrub_rr";
12200 let isPredicable = 1;
12201 }
12202 def L4_loadrub_ur : HInst<
12203 (outs IntRegs:$Rd32),
12204 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12205 "$Rd32 = memub($Rt32<<#$Ii+#$II)",
12206 tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12207 let Inst{12-12} = 0b1;
12208 let Inst{31-21} = 0b10011101001;
12209 let hasNewValue = 1;
12210 let opNewValue = 0;
12211 let addrMode = BaseLongOffset;
12212 let accessSize = ByteAccess;
12213 let mayLoad = 1;
12214 let isExtended = 1;
12215 let CextOpcode = "L2_loadrub";
12216 let InputType = "imm";
12217 let DecoderNamespace = "MustExtend";
12218 let isExtendable = 1;
12219 let opExtendable = 3;
12220 let isExtentSigned = 0;
12221 let opExtentBits = 6;
12222 let opExtentAlign = 0;
12223 }
12224 def L4_loadruh_ap : HInst<
12225 (outs IntRegs:$Rd32, IntRegs:$Re32),
12226 (ins u32_0Imm:$II),
12227 "$Rd32 = memuh($Re32=#$II)",
12228 tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12229 let Inst{7-7} = 0b0;
12230 let Inst{13-12} = 0b01;
12231 let Inst{31-21} = 0b10011011011;
12232 let hasNewValue = 1;
12233 let opNewValue = 0;
12234 let addrMode = AbsoluteSet;
12235 let accessSize = HalfWordAccess;
12236 let mayLoad = 1;
12237 let isExtended = 1;
12238 let DecoderNamespace = "MustExtend";
12239 let isExtendable = 1;
12240 let opExtendable = 2;
12241 let isExtentSigned = 0;
12242 let opExtentBits = 6;
12243 let opExtentAlign = 0;
12244 }
12245 def L4_loadruh_rr : HInst<
12246 (outs IntRegs:$Rd32),
12247 (ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12248 "$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12249 tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12250 let Inst{6-5} = 0b00;
12251 let Inst{31-21} = 0b00111010011;
12252 let hasNewValue = 1;
12253 let opNewValue = 0;
12254 let addrMode = BaseRegOffset;
12255 let accessSize = HalfWordAccess;
12256 let mayLoad = 1;
12257 let CextOpcode = "L2_loadruh";
12258 let InputType = "reg";
12259 let BaseOpcode = "L4_loadruh_rr";
12260 let isPredicable = 1;
12261 }
12262 def L4_loadruh_ur : HInst<
12263 (outs IntRegs:$Rd32),
12264 (ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12265 "$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12266 tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12267 let Inst{12-12} = 0b1;
12268 let Inst{31-21} = 0b10011101011;
12269 let hasNewValue = 1;
12270 let opNewValue = 0;
12271 let addrMode = BaseLongOffset;
12272 let accessSize = HalfWordAccess;
12273 let mayLoad = 1;
12274 let isExtended = 1;
12275 let CextOpcode = "L2_loadruh";
12276 let InputType = "imm";
12277 let DecoderNamespace = "MustExtend";
12278 let isExtendable = 1;
12279 let opExtendable = 3;
12280 let isExtentSigned = 0;
12281 let opExtentBits = 6;
12282 let opExtentAlign = 0;
12283 }
12284 def L4_or_memopb_io : HInst<
12285 (outs),
12286 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12287 "memb($Rs32+#$Ii) |= $Rt32",
12288 tc_7186d325, TypeV4LDST>, Enc_d44e31 {
12289 let Inst{6-5} = 0b11;
12290 let Inst{13-13} = 0b0;
12291 let Inst{31-21} = 0b00111110000;
12292 let addrMode = BaseImmOffset;
12293 let accessSize = ByteAccess;
12294 let mayLoad = 1;
12295 let isRestrictNoSlot1Store = 1;
12296 let mayStore = 1;
12297 let isExtendable = 1;
12298 let opExtendable = 1;
12299 let isExtentSigned = 0;
12300 let opExtentBits = 6;
12301 let opExtentAlign = 0;
12302 }
12303 def L4_or_memopb_zomap : HInst<
12304 (outs),
12305 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12306 "memb($Rs32) |= $Rt32",
12307 tc_7186d325, TypeMAPPING> {
12308 let isPseudo = 1;
12309 let isCodeGenOnly = 1;
12310 }
12311 def L4_or_memoph_io : HInst<
12312 (outs),
12313 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12314 "memh($Rs32+#$Ii) |= $Rt32",
12315 tc_7186d325, TypeV4LDST>, Enc_163a3c {
12316 let Inst{6-5} = 0b11;
12317 let Inst{13-13} = 0b0;
12318 let Inst{31-21} = 0b00111110001;
12319 let addrMode = BaseImmOffset;
12320 let accessSize = HalfWordAccess;
12321 let mayLoad = 1;
12322 let isRestrictNoSlot1Store = 1;
12323 let mayStore = 1;
12324 let isExtendable = 1;
12325 let opExtendable = 1;
12326 let isExtentSigned = 0;
12327 let opExtentBits = 7;
12328 let opExtentAlign = 1;
12329 }
12330 def L4_or_memoph_zomap : HInst<
12331 (outs),
12332 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12333 "memh($Rs32) |= $Rt32",
12334 tc_7186d325, TypeMAPPING> {
12335 let isPseudo = 1;
12336 let isCodeGenOnly = 1;
12337 }
12338 def L4_or_memopw_io : HInst<
12339 (outs),
12340 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12341 "memw($Rs32+#$Ii) |= $Rt32",
12342 tc_7186d325, TypeV4LDST>, Enc_226535 {
12343 let Inst{6-5} = 0b11;
12344 let Inst{13-13} = 0b0;
12345 let Inst{31-21} = 0b00111110010;
12346 let addrMode = BaseImmOffset;
12347 let accessSize = WordAccess;
12348 let mayLoad = 1;
12349 let isRestrictNoSlot1Store = 1;
12350 let mayStore = 1;
12351 let isExtendable = 1;
12352 let opExtendable = 1;
12353 let isExtentSigned = 0;
12354 let opExtentBits = 8;
12355 let opExtentAlign = 2;
12356 }
12357 def L4_or_memopw_zomap : HInst<
12358 (outs),
12359 (ins IntRegs:$Rs32, IntRegs:$Rt32),
12360 "memw($Rs32) |= $Rt32",
12361 tc_7186d325, TypeMAPPING> {
12362 let isPseudo = 1;
12363 let isCodeGenOnly = 1;
12364 }
12365 def L4_ploadrbf_abs : HInst<
12366 (outs IntRegs:$Rd32),
12367 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12368 "if (!$Pt4) $Rd32 = memb(#$Ii)",
12369 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12370 let Inst{7-5} = 0b100;
12371 let Inst{13-11} = 0b101;
12372 let Inst{31-21} = 0b10011111000;
12373 let isPredicated = 1;
12374 let isPredicatedFalse = 1;
12375 let hasNewValue = 1;
12376 let opNewValue = 0;
12377 let addrMode = Absolute;
12378 let accessSize = ByteAccess;
12379 let mayLoad = 1;
12380 let isExtended = 1;
12381 let CextOpcode = "L2_loadrb";
12382 let BaseOpcode = "L4_loadrb_abs";
12383 let DecoderNamespace = "MustExtend";
12384 let isExtendable = 1;
12385 let opExtendable = 2;
12386 let isExtentSigned = 0;
12387 let opExtentBits = 6;
12388 let opExtentAlign = 0;
12389 }
12390 def L4_ploadrbf_rr : HInst<
12391 (outs IntRegs:$Rd32),
12392 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12393 "if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12394 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12395 let Inst{31-21} = 0b00110001000;
12396 let isPredicated = 1;
12397 let isPredicatedFalse = 1;
12398 let hasNewValue = 1;
12399 let opNewValue = 0;
12400 let addrMode = BaseRegOffset;
12401 let accessSize = ByteAccess;
12402 let mayLoad = 1;
12403 let CextOpcode = "L2_loadrb";
12404 let InputType = "reg";
12405 let BaseOpcode = "L4_loadrb_rr";
12406 }
12407 def L4_ploadrbfnew_abs : HInst<
12408 (outs IntRegs:$Rd32),
12409 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12410 "if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12411 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12412 let Inst{7-5} = 0b100;
12413 let Inst{13-11} = 0b111;
12414 let Inst{31-21} = 0b10011111000;
12415 let isPredicated = 1;
12416 let isPredicatedFalse = 1;
12417 let hasNewValue = 1;
12418 let opNewValue = 0;
12419 let addrMode = Absolute;
12420 let accessSize = ByteAccess;
12421 let isPredicatedNew = 1;
12422 let mayLoad = 1;
12423 let isExtended = 1;
12424 let CextOpcode = "L2_loadrb";
12425 let BaseOpcode = "L4_loadrb_abs";
12426 let DecoderNamespace = "MustExtend";
12427 let isExtendable = 1;
12428 let opExtendable = 2;
12429 let isExtentSigned = 0;
12430 let opExtentBits = 6;
12431 let opExtentAlign = 0;
12432 }
12433 def L4_ploadrbfnew_rr : HInst<
12434 (outs IntRegs:$Rd32),
12435 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12436 "if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12437 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12438 let Inst{31-21} = 0b00110011000;
12439 let isPredicated = 1;
12440 let isPredicatedFalse = 1;
12441 let hasNewValue = 1;
12442 let opNewValue = 0;
12443 let addrMode = BaseRegOffset;
12444 let accessSize = ByteAccess;
12445 let isPredicatedNew = 1;
12446 let mayLoad = 1;
12447 let CextOpcode = "L2_loadrb";
12448 let InputType = "reg";
12449 let BaseOpcode = "L4_loadrb_rr";
12450 }
12451 def L4_ploadrbt_abs : HInst<
12452 (outs IntRegs:$Rd32),
12453 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12454 "if ($Pt4) $Rd32 = memb(#$Ii)",
12455 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12456 let Inst{7-5} = 0b100;
12457 let Inst{13-11} = 0b100;
12458 let Inst{31-21} = 0b10011111000;
12459 let isPredicated = 1;
12460 let hasNewValue = 1;
12461 let opNewValue = 0;
12462 let addrMode = Absolute;
12463 let accessSize = ByteAccess;
12464 let mayLoad = 1;
12465 let isExtended = 1;
12466 let CextOpcode = "L2_loadrb";
12467 let BaseOpcode = "L4_loadrb_abs";
12468 let DecoderNamespace = "MustExtend";
12469 let isExtendable = 1;
12470 let opExtendable = 2;
12471 let isExtentSigned = 0;
12472 let opExtentBits = 6;
12473 let opExtentAlign = 0;
12474 }
12475 def L4_ploadrbt_rr : HInst<
12476 (outs IntRegs:$Rd32),
12477 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12478 "if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12479 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12480 let Inst{31-21} = 0b00110000000;
12481 let isPredicated = 1;
12482 let hasNewValue = 1;
12483 let opNewValue = 0;
12484 let addrMode = BaseRegOffset;
12485 let accessSize = ByteAccess;
12486 let mayLoad = 1;
12487 let CextOpcode = "L2_loadrb";
12488 let InputType = "reg";
12489 let BaseOpcode = "L4_loadrb_rr";
12490 }
12491 def L4_ploadrbtnew_abs : HInst<
12492 (outs IntRegs:$Rd32),
12493 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12494 "if ($Pt4.new) $Rd32 = memb(#$Ii)",
12495 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12496 let Inst{7-5} = 0b100;
12497 let Inst{13-11} = 0b110;
12498 let Inst{31-21} = 0b10011111000;
12499 let isPredicated = 1;
12500 let hasNewValue = 1;
12501 let opNewValue = 0;
12502 let addrMode = Absolute;
12503 let accessSize = ByteAccess;
12504 let isPredicatedNew = 1;
12505 let mayLoad = 1;
12506 let isExtended = 1;
12507 let CextOpcode = "L2_loadrb";
12508 let BaseOpcode = "L4_loadrb_abs";
12509 let DecoderNamespace = "MustExtend";
12510 let isExtendable = 1;
12511 let opExtendable = 2;
12512 let isExtentSigned = 0;
12513 let opExtentBits = 6;
12514 let opExtentAlign = 0;
12515 }
12516 def L4_ploadrbtnew_rr : HInst<
12517 (outs IntRegs:$Rd32),
12518 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12519 "if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12520 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12521 let Inst{31-21} = 0b00110010000;
12522 let isPredicated = 1;
12523 let hasNewValue = 1;
12524 let opNewValue = 0;
12525 let addrMode = BaseRegOffset;
12526 let accessSize = ByteAccess;
12527 let isPredicatedNew = 1;
12528 let mayLoad = 1;
12529 let CextOpcode = "L2_loadrb";
12530 let InputType = "reg";
12531 let BaseOpcode = "L4_loadrb_rr";
12532 }
12533 def L4_ploadrdf_abs : HInst<
12534 (outs DoubleRegs:$Rdd32),
12535 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12536 "if (!$Pt4) $Rdd32 = memd(#$Ii)",
12537 tc_7646c131, TypeLD>, Enc_2a7b91, AddrModeRel {
12538 let Inst{7-5} = 0b100;
12539 let Inst{13-11} = 0b101;
12540 let Inst{31-21} = 0b10011111110;
12541 let isPredicated = 1;
12542 let isPredicatedFalse = 1;
12543 let addrMode = Absolute;
12544 let accessSize = DoubleWordAccess;
12545 let mayLoad = 1;
12546 let isExtended = 1;
12547 let CextOpcode = "L2_loadrd";
12548 let BaseOpcode = "L4_loadrd_abs";
12549 let DecoderNamespace = "MustExtend";
12550 let isExtendable = 1;
12551 let opExtendable = 2;
12552 let isExtentSigned = 0;
12553 let opExtentBits = 6;
12554 let opExtentAlign = 0;
12555 }
12556 def L4_ploadrdf_rr : HInst<
12557 (outs DoubleRegs:$Rdd32),
12558 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12559 "if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12560 tc_e4b3cb20, TypeLD>, Enc_98c0b8, AddrModeRel {
12561 let Inst{31-21} = 0b00110001110;
12562 let isPredicated = 1;
12563 let isPredicatedFalse = 1;
12564 let addrMode = BaseRegOffset;
12565 let accessSize = DoubleWordAccess;
12566 let mayLoad = 1;
12567 let CextOpcode = "L2_loadrd";
12568 let InputType = "reg";
12569 let BaseOpcode = "L4_loadrd_rr";
12570 }
12571 def L4_ploadrdfnew_abs : HInst<
12572 (outs DoubleRegs:$Rdd32),
12573 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12574 "if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12575 tc_3b5b7ef9, TypeLD>, Enc_2a7b91, AddrModeRel {
12576 let Inst{7-5} = 0b100;
12577 let Inst{13-11} = 0b111;
12578 let Inst{31-21} = 0b10011111110;
12579 let isPredicated = 1;
12580 let isPredicatedFalse = 1;
12581 let addrMode = Absolute;
12582 let accessSize = DoubleWordAccess;
12583 let isPredicatedNew = 1;
12584 let mayLoad = 1;
12585 let isExtended = 1;
12586 let CextOpcode = "L2_loadrd";
12587 let BaseOpcode = "L4_loadrd_abs";
12588 let DecoderNamespace = "MustExtend";
12589 let isExtendable = 1;
12590 let opExtendable = 2;
12591 let isExtentSigned = 0;
12592 let opExtentBits = 6;
12593 let opExtentAlign = 0;
12594 }
12595 def L4_ploadrdfnew_rr : HInst<
12596 (outs DoubleRegs:$Rdd32),
12597 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12598 "if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12599 tc_25a78932, TypeLD>, Enc_98c0b8, AddrModeRel {
12600 let Inst{31-21} = 0b00110011110;
12601 let isPredicated = 1;
12602 let isPredicatedFalse = 1;
12603 let addrMode = BaseRegOffset;
12604 let accessSize = DoubleWordAccess;
12605 let isPredicatedNew = 1;
12606 let mayLoad = 1;
12607 let CextOpcode = "L2_loadrd";
12608 let InputType = "reg";
12609 let BaseOpcode = "L4_loadrd_rr";
12610 }
12611 def L4_ploadrdt_abs : HInst<
12612 (outs DoubleRegs:$Rdd32),
12613 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12614 "if ($Pt4) $Rdd32 = memd(#$Ii)",
12615 tc_7646c131, TypeLD>, Enc_2a7b91, AddrModeRel {
12616 let Inst{7-5} = 0b100;
12617 let Inst{13-11} = 0b100;
12618 let Inst{31-21} = 0b10011111110;
12619 let isPredicated = 1;
12620 let addrMode = Absolute;
12621 let accessSize = DoubleWordAccess;
12622 let mayLoad = 1;
12623 let isExtended = 1;
12624 let CextOpcode = "L2_loadrd";
12625 let BaseOpcode = "L4_loadrd_abs";
12626 let DecoderNamespace = "MustExtend";
12627 let isExtendable = 1;
12628 let opExtendable = 2;
12629 let isExtentSigned = 0;
12630 let opExtentBits = 6;
12631 let opExtentAlign = 0;
12632 }
12633 def L4_ploadrdt_rr : HInst<
12634 (outs DoubleRegs:$Rdd32),
12635 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12636 "if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12637 tc_e4b3cb20, TypeLD>, Enc_98c0b8, AddrModeRel {
12638 let Inst{31-21} = 0b00110000110;
12639 let isPredicated = 1;
12640 let addrMode = BaseRegOffset;
12641 let accessSize = DoubleWordAccess;
12642 let mayLoad = 1;
12643 let CextOpcode = "L2_loadrd";
12644 let InputType = "reg";
12645 let BaseOpcode = "L4_loadrd_rr";
12646 }
12647 def L4_ploadrdtnew_abs : HInst<
12648 (outs DoubleRegs:$Rdd32),
12649 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12650 "if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12651 tc_3b5b7ef9, TypeLD>, Enc_2a7b91, AddrModeRel {
12652 let Inst{7-5} = 0b100;
12653 let Inst{13-11} = 0b110;
12654 let Inst{31-21} = 0b10011111110;
12655 let isPredicated = 1;
12656 let addrMode = Absolute;
12657 let accessSize = DoubleWordAccess;
12658 let isPredicatedNew = 1;
12659 let mayLoad = 1;
12660 let isExtended = 1;
12661 let CextOpcode = "L2_loadrd";
12662 let BaseOpcode = "L4_loadrd_abs";
12663 let DecoderNamespace = "MustExtend";
12664 let isExtendable = 1;
12665 let opExtendable = 2;
12666 let isExtentSigned = 0;
12667 let opExtentBits = 6;
12668 let opExtentAlign = 0;
12669 }
12670 def L4_ploadrdtnew_rr : HInst<
12671 (outs DoubleRegs:$Rdd32),
12672 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12673 "if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12674 tc_25a78932, TypeLD>, Enc_98c0b8, AddrModeRel {
12675 let Inst{31-21} = 0b00110010110;
12676 let isPredicated = 1;
12677 let addrMode = BaseRegOffset;
12678 let accessSize = DoubleWordAccess;
12679 let isPredicatedNew = 1;
12680 let mayLoad = 1;
12681 let CextOpcode = "L2_loadrd";
12682 let InputType = "reg";
12683 let BaseOpcode = "L4_loadrd_rr";
12684 }
12685 def L4_ploadrhf_abs : HInst<
12686 (outs IntRegs:$Rd32),
12687 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12688 "if (!$Pt4) $Rd32 = memh(#$Ii)",
12689 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12690 let Inst{7-5} = 0b100;
12691 let Inst{13-11} = 0b101;
12692 let Inst{31-21} = 0b10011111010;
12693 let isPredicated = 1;
12694 let isPredicatedFalse = 1;
12695 let hasNewValue = 1;
12696 let opNewValue = 0;
12697 let addrMode = Absolute;
12698 let accessSize = HalfWordAccess;
12699 let mayLoad = 1;
12700 let isExtended = 1;
12701 let CextOpcode = "L2_loadrh";
12702 let BaseOpcode = "L4_loadrh_abs";
12703 let DecoderNamespace = "MustExtend";
12704 let isExtendable = 1;
12705 let opExtendable = 2;
12706 let isExtentSigned = 0;
12707 let opExtentBits = 6;
12708 let opExtentAlign = 0;
12709 }
12710 def L4_ploadrhf_rr : HInst<
12711 (outs IntRegs:$Rd32),
12712 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12713 "if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12714 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12715 let Inst{31-21} = 0b00110001010;
12716 let isPredicated = 1;
12717 let isPredicatedFalse = 1;
12718 let hasNewValue = 1;
12719 let opNewValue = 0;
12720 let addrMode = BaseRegOffset;
12721 let accessSize = HalfWordAccess;
12722 let mayLoad = 1;
12723 let CextOpcode = "L2_loadrh";
12724 let InputType = "reg";
12725 let BaseOpcode = "L4_loadrh_rr";
12726 }
12727 def L4_ploadrhfnew_abs : HInst<
12728 (outs IntRegs:$Rd32),
12729 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12730 "if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12731 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12732 let Inst{7-5} = 0b100;
12733 let Inst{13-11} = 0b111;
12734 let Inst{31-21} = 0b10011111010;
12735 let isPredicated = 1;
12736 let isPredicatedFalse = 1;
12737 let hasNewValue = 1;
12738 let opNewValue = 0;
12739 let addrMode = Absolute;
12740 let accessSize = HalfWordAccess;
12741 let isPredicatedNew = 1;
12742 let mayLoad = 1;
12743 let isExtended = 1;
12744 let CextOpcode = "L2_loadrh";
12745 let BaseOpcode = "L4_loadrh_abs";
12746 let DecoderNamespace = "MustExtend";
12747 let isExtendable = 1;
12748 let opExtendable = 2;
12749 let isExtentSigned = 0;
12750 let opExtentBits = 6;
12751 let opExtentAlign = 0;
12752 }
12753 def L4_ploadrhfnew_rr : HInst<
12754 (outs IntRegs:$Rd32),
12755 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12756 "if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12757 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12758 let Inst{31-21} = 0b00110011010;
12759 let isPredicated = 1;
12760 let isPredicatedFalse = 1;
12761 let hasNewValue = 1;
12762 let opNewValue = 0;
12763 let addrMode = BaseRegOffset;
12764 let accessSize = HalfWordAccess;
12765 let isPredicatedNew = 1;
12766 let mayLoad = 1;
12767 let CextOpcode = "L2_loadrh";
12768 let InputType = "reg";
12769 let BaseOpcode = "L4_loadrh_rr";
12770 }
12771 def L4_ploadrht_abs : HInst<
12772 (outs IntRegs:$Rd32),
12773 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12774 "if ($Pt4) $Rd32 = memh(#$Ii)",
12775 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12776 let Inst{7-5} = 0b100;
12777 let Inst{13-11} = 0b100;
12778 let Inst{31-21} = 0b10011111010;
12779 let isPredicated = 1;
12780 let hasNewValue = 1;
12781 let opNewValue = 0;
12782 let addrMode = Absolute;
12783 let accessSize = HalfWordAccess;
12784 let mayLoad = 1;
12785 let isExtended = 1;
12786 let CextOpcode = "L2_loadrh";
12787 let BaseOpcode = "L4_loadrh_abs";
12788 let DecoderNamespace = "MustExtend";
12789 let isExtendable = 1;
12790 let opExtendable = 2;
12791 let isExtentSigned = 0;
12792 let opExtentBits = 6;
12793 let opExtentAlign = 0;
12794 }
12795 def L4_ploadrht_rr : HInst<
12796 (outs IntRegs:$Rd32),
12797 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12798 "if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12799 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12800 let Inst{31-21} = 0b00110000010;
12801 let isPredicated = 1;
12802 let hasNewValue = 1;
12803 let opNewValue = 0;
12804 let addrMode = BaseRegOffset;
12805 let accessSize = HalfWordAccess;
12806 let mayLoad = 1;
12807 let CextOpcode = "L2_loadrh";
12808 let InputType = "reg";
12809 let BaseOpcode = "L4_loadrh_rr";
12810 }
12811 def L4_ploadrhtnew_abs : HInst<
12812 (outs IntRegs:$Rd32),
12813 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12814 "if ($Pt4.new) $Rd32 = memh(#$Ii)",
12815 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12816 let Inst{7-5} = 0b100;
12817 let Inst{13-11} = 0b110;
12818 let Inst{31-21} = 0b10011111010;
12819 let isPredicated = 1;
12820 let hasNewValue = 1;
12821 let opNewValue = 0;
12822 let addrMode = Absolute;
12823 let accessSize = HalfWordAccess;
12824 let isPredicatedNew = 1;
12825 let mayLoad = 1;
12826 let isExtended = 1;
12827 let CextOpcode = "L2_loadrh";
12828 let BaseOpcode = "L4_loadrh_abs";
12829 let DecoderNamespace = "MustExtend";
12830 let isExtendable = 1;
12831 let opExtendable = 2;
12832 let isExtentSigned = 0;
12833 let opExtentBits = 6;
12834 let opExtentAlign = 0;
12835 }
12836 def L4_ploadrhtnew_rr : HInst<
12837 (outs IntRegs:$Rd32),
12838 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12839 "if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12840 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12841 let Inst{31-21} = 0b00110010010;
12842 let isPredicated = 1;
12843 let hasNewValue = 1;
12844 let opNewValue = 0;
12845 let addrMode = BaseRegOffset;
12846 let accessSize = HalfWordAccess;
12847 let isPredicatedNew = 1;
12848 let mayLoad = 1;
12849 let CextOpcode = "L2_loadrh";
12850 let InputType = "reg";
12851 let BaseOpcode = "L4_loadrh_rr";
12852 }
12853 def L4_ploadrif_abs : HInst<
12854 (outs IntRegs:$Rd32),
12855 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12856 "if (!$Pt4) $Rd32 = memw(#$Ii)",
12857 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12858 let Inst{7-5} = 0b100;
12859 let Inst{13-11} = 0b101;
12860 let Inst{31-21} = 0b10011111100;
12861 let isPredicated = 1;
12862 let isPredicatedFalse = 1;
12863 let hasNewValue = 1;
12864 let opNewValue = 0;
12865 let addrMode = Absolute;
12866 let accessSize = WordAccess;
12867 let mayLoad = 1;
12868 let isExtended = 1;
12869 let CextOpcode = "L2_loadri";
12870 let BaseOpcode = "L4_loadri_abs";
12871 let DecoderNamespace = "MustExtend";
12872 let isExtendable = 1;
12873 let opExtendable = 2;
12874 let isExtentSigned = 0;
12875 let opExtentBits = 6;
12876 let opExtentAlign = 0;
12877 }
12878 def L4_ploadrif_rr : HInst<
12879 (outs IntRegs:$Rd32),
12880 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12881 "if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12882 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12883 let Inst{31-21} = 0b00110001100;
12884 let isPredicated = 1;
12885 let isPredicatedFalse = 1;
12886 let hasNewValue = 1;
12887 let opNewValue = 0;
12888 let addrMode = BaseRegOffset;
12889 let accessSize = WordAccess;
12890 let mayLoad = 1;
12891 let CextOpcode = "L2_loadri";
12892 let InputType = "reg";
12893 let BaseOpcode = "L4_loadri_rr";
12894 }
12895 def L4_ploadrifnew_abs : HInst<
12896 (outs IntRegs:$Rd32),
12897 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12898 "if (!$Pt4.new) $Rd32 = memw(#$Ii)",
12899 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12900 let Inst{7-5} = 0b100;
12901 let Inst{13-11} = 0b111;
12902 let Inst{31-21} = 0b10011111100;
12903 let isPredicated = 1;
12904 let isPredicatedFalse = 1;
12905 let hasNewValue = 1;
12906 let opNewValue = 0;
12907 let addrMode = Absolute;
12908 let accessSize = WordAccess;
12909 let isPredicatedNew = 1;
12910 let mayLoad = 1;
12911 let isExtended = 1;
12912 let CextOpcode = "L2_loadri";
12913 let BaseOpcode = "L4_loadri_abs";
12914 let DecoderNamespace = "MustExtend";
12915 let isExtendable = 1;
12916 let opExtendable = 2;
12917 let isExtentSigned = 0;
12918 let opExtentBits = 6;
12919 let opExtentAlign = 0;
12920 }
12921 def L4_ploadrifnew_rr : HInst<
12922 (outs IntRegs:$Rd32),
12923 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12924 "if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12925 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12926 let Inst{31-21} = 0b00110011100;
12927 let isPredicated = 1;
12928 let isPredicatedFalse = 1;
12929 let hasNewValue = 1;
12930 let opNewValue = 0;
12931 let addrMode = BaseRegOffset;
12932 let accessSize = WordAccess;
12933 let isPredicatedNew = 1;
12934 let mayLoad = 1;
12935 let CextOpcode = "L2_loadri";
12936 let InputType = "reg";
12937 let BaseOpcode = "L4_loadri_rr";
12938 }
12939 def L4_ploadrit_abs : HInst<
12940 (outs IntRegs:$Rd32),
12941 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12942 "if ($Pt4) $Rd32 = memw(#$Ii)",
12943 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12944 let Inst{7-5} = 0b100;
12945 let Inst{13-11} = 0b100;
12946 let Inst{31-21} = 0b10011111100;
12947 let isPredicated = 1;
12948 let hasNewValue = 1;
12949 let opNewValue = 0;
12950 let addrMode = Absolute;
12951 let accessSize = WordAccess;
12952 let mayLoad = 1;
12953 let isExtended = 1;
12954 let CextOpcode = "L2_loadri";
12955 let BaseOpcode = "L4_loadri_abs";
12956 let DecoderNamespace = "MustExtend";
12957 let isExtendable = 1;
12958 let opExtendable = 2;
12959 let isExtentSigned = 0;
12960 let opExtentBits = 6;
12961 let opExtentAlign = 0;
12962 }
12963 def L4_ploadrit_rr : HInst<
12964 (outs IntRegs:$Rd32),
12965 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12966 "if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12967 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12968 let Inst{31-21} = 0b00110000100;
12969 let isPredicated = 1;
12970 let hasNewValue = 1;
12971 let opNewValue = 0;
12972 let addrMode = BaseRegOffset;
12973 let accessSize = WordAccess;
12974 let mayLoad = 1;
12975 let CextOpcode = "L2_loadri";
12976 let InputType = "reg";
12977 let BaseOpcode = "L4_loadri_rr";
12978 }
12979 def L4_ploadritnew_abs : HInst<
12980 (outs IntRegs:$Rd32),
12981 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
12982 "if ($Pt4.new) $Rd32 = memw(#$Ii)",
12983 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12984 let Inst{7-5} = 0b100;
12985 let Inst{13-11} = 0b110;
12986 let Inst{31-21} = 0b10011111100;
12987 let isPredicated = 1;
12988 let hasNewValue = 1;
12989 let opNewValue = 0;
12990 let addrMode = Absolute;
12991 let accessSize = WordAccess;
12992 let isPredicatedNew = 1;
12993 let mayLoad = 1;
12994 let isExtended = 1;
12995 let CextOpcode = "L2_loadri";
12996 let BaseOpcode = "L4_loadri_abs";
12997 let DecoderNamespace = "MustExtend";
12998 let isExtendable = 1;
12999 let opExtendable = 2;
13000 let isExtentSigned = 0;
13001 let opExtentBits = 6;
13002 let opExtentAlign = 0;
13003 }
13004 def L4_ploadritnew_rr : HInst<
13005 (outs IntRegs:$Rd32),
13006 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13007 "if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13008 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13009 let Inst{31-21} = 0b00110010100;
13010 let isPredicated = 1;
13011 let hasNewValue = 1;
13012 let opNewValue = 0;
13013 let addrMode = BaseRegOffset;
13014 let accessSize = WordAccess;
13015 let isPredicatedNew = 1;
13016 let mayLoad = 1;
13017 let CextOpcode = "L2_loadri";
13018 let InputType = "reg";
13019 let BaseOpcode = "L4_loadri_rr";
13020 }
13021 def L4_ploadrubf_abs : HInst<
13022 (outs IntRegs:$Rd32),
13023 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13024 "if (!$Pt4) $Rd32 = memub(#$Ii)",
13025 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13026 let Inst{7-5} = 0b100;
13027 let Inst{13-11} = 0b101;
13028 let Inst{31-21} = 0b10011111001;
13029 let isPredicated = 1;
13030 let isPredicatedFalse = 1;
13031 let hasNewValue = 1;
13032 let opNewValue = 0;
13033 let addrMode = Absolute;
13034 let accessSize = ByteAccess;
13035 let mayLoad = 1;
13036 let isExtended = 1;
13037 let CextOpcode = "L2_loadrub";
13038 let BaseOpcode = "L4_loadrub_abs";
13039 let DecoderNamespace = "MustExtend";
13040 let isExtendable = 1;
13041 let opExtendable = 2;
13042 let isExtentSigned = 0;
13043 let opExtentBits = 6;
13044 let opExtentAlign = 0;
13045 }
13046 def L4_ploadrubf_rr : HInst<
13047 (outs IntRegs:$Rd32),
13048 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13049 "if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13050 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13051 let Inst{31-21} = 0b00110001001;
13052 let isPredicated = 1;
13053 let isPredicatedFalse = 1;
13054 let hasNewValue = 1;
13055 let opNewValue = 0;
13056 let addrMode = BaseRegOffset;
13057 let accessSize = ByteAccess;
13058 let mayLoad = 1;
13059 let CextOpcode = "L2_loadrub";
13060 let InputType = "reg";
13061 let BaseOpcode = "L4_loadrub_rr";
13062 }
13063 def L4_ploadrubfnew_abs : HInst<
13064 (outs IntRegs:$Rd32),
13065 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13066 "if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13067 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13068 let Inst{7-5} = 0b100;
13069 let Inst{13-11} = 0b111;
13070 let Inst{31-21} = 0b10011111001;
13071 let isPredicated = 1;
13072 let isPredicatedFalse = 1;
13073 let hasNewValue = 1;
13074 let opNewValue = 0;
13075 let addrMode = Absolute;
13076 let accessSize = ByteAccess;
13077 let isPredicatedNew = 1;
13078 let mayLoad = 1;
13079 let isExtended = 1;
13080 let CextOpcode = "L2_loadrub";
13081 let BaseOpcode = "L4_loadrub_abs";
13082 let DecoderNamespace = "MustExtend";
13083 let isExtendable = 1;
13084 let opExtendable = 2;
13085 let isExtentSigned = 0;
13086 let opExtentBits = 6;
13087 let opExtentAlign = 0;
13088 }
13089 def L4_ploadrubfnew_rr : HInst<
13090 (outs IntRegs:$Rd32),
13091 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13092 "if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13093 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13094 let Inst{31-21} = 0b00110011001;
13095 let isPredicated = 1;
13096 let isPredicatedFalse = 1;
13097 let hasNewValue = 1;
13098 let opNewValue = 0;
13099 let addrMode = BaseRegOffset;
13100 let accessSize = ByteAccess;
13101 let isPredicatedNew = 1;
13102 let mayLoad = 1;
13103 let CextOpcode = "L2_loadrub";
13104 let InputType = "reg";
13105 let BaseOpcode = "L4_loadrub_rr";
13106 }
13107 def L4_ploadrubt_abs : HInst<
13108 (outs IntRegs:$Rd32),
13109 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13110 "if ($Pt4) $Rd32 = memub(#$Ii)",
13111 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13112 let Inst{7-5} = 0b100;
13113 let Inst{13-11} = 0b100;
13114 let Inst{31-21} = 0b10011111001;
13115 let isPredicated = 1;
13116 let hasNewValue = 1;
13117 let opNewValue = 0;
13118 let addrMode = Absolute;
13119 let accessSize = ByteAccess;
13120 let mayLoad = 1;
13121 let isExtended = 1;
13122 let CextOpcode = "L2_loadrub";
13123 let BaseOpcode = "L4_loadrub_abs";
13124 let DecoderNamespace = "MustExtend";
13125 let isExtendable = 1;
13126 let opExtendable = 2;
13127 let isExtentSigned = 0;
13128 let opExtentBits = 6;
13129 let opExtentAlign = 0;
13130 }
13131 def L4_ploadrubt_rr : HInst<
13132 (outs IntRegs:$Rd32),
13133 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13134 "if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13135 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13136 let Inst{31-21} = 0b00110000001;
13137 let isPredicated = 1;
13138 let hasNewValue = 1;
13139 let opNewValue = 0;
13140 let addrMode = BaseRegOffset;
13141 let accessSize = ByteAccess;
13142 let mayLoad = 1;
13143 let CextOpcode = "L2_loadrub";
13144 let InputType = "reg";
13145 let BaseOpcode = "L4_loadrub_rr";
13146 }
13147 def L4_ploadrubtnew_abs : HInst<
13148 (outs IntRegs:$Rd32),
13149 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13150 "if ($Pt4.new) $Rd32 = memub(#$Ii)",
13151 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13152 let Inst{7-5} = 0b100;
13153 let Inst{13-11} = 0b110;
13154 let Inst{31-21} = 0b10011111001;
13155 let isPredicated = 1;
13156 let hasNewValue = 1;
13157 let opNewValue = 0;
13158 let addrMode = Absolute;
13159 let accessSize = ByteAccess;
13160 let isPredicatedNew = 1;
13161 let mayLoad = 1;
13162 let isExtended = 1;
13163 let CextOpcode = "L2_loadrub";
13164 let BaseOpcode = "L4_loadrub_abs";
13165 let DecoderNamespace = "MustExtend";
13166 let isExtendable = 1;
13167 let opExtendable = 2;
13168 let isExtentSigned = 0;
13169 let opExtentBits = 6;
13170 let opExtentAlign = 0;
13171 }
13172 def L4_ploadrubtnew_rr : HInst<
13173 (outs IntRegs:$Rd32),
13174 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13175 "if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13176 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13177 let Inst{31-21} = 0b00110010001;
13178 let isPredicated = 1;
13179 let hasNewValue = 1;
13180 let opNewValue = 0;
13181 let addrMode = BaseRegOffset;
13182 let accessSize = ByteAccess;
13183 let isPredicatedNew = 1;
13184 let mayLoad = 1;
13185 let CextOpcode = "L2_loadrub";
13186 let InputType = "reg";
13187 let BaseOpcode = "L4_loadrub_rr";
13188 }
13189 def L4_ploadruhf_abs : HInst<
13190 (outs IntRegs:$Rd32),
13191 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13192 "if (!$Pt4) $Rd32 = memuh(#$Ii)",
13193 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13194 let Inst{7-5} = 0b100;
13195 let Inst{13-11} = 0b101;
13196 let Inst{31-21} = 0b10011111011;
13197 let isPredicated = 1;
13198 let isPredicatedFalse = 1;
13199 let hasNewValue = 1;
13200 let opNewValue = 0;
13201 let addrMode = Absolute;
13202 let accessSize = HalfWordAccess;
13203 let mayLoad = 1;
13204 let isExtended = 1;
13205 let CextOpcode = "L2_loadruh";
13206 let BaseOpcode = "L4_loadruh_abs";
13207 let DecoderNamespace = "MustExtend";
13208 let isExtendable = 1;
13209 let opExtendable = 2;
13210 let isExtentSigned = 0;
13211 let opExtentBits = 6;
13212 let opExtentAlign = 0;
13213 }
13214 def L4_ploadruhf_rr : HInst<
13215 (outs IntRegs:$Rd32),
13216 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13217 "if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13218 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13219 let Inst{31-21} = 0b00110001011;
13220 let isPredicated = 1;
13221 let isPredicatedFalse = 1;
13222 let hasNewValue = 1;
13223 let opNewValue = 0;
13224 let addrMode = BaseRegOffset;
13225 let accessSize = HalfWordAccess;
13226 let mayLoad = 1;
13227 let CextOpcode = "L2_loadruh";
13228 let InputType = "reg";
13229 let BaseOpcode = "L4_loadruh_rr";
13230 }
13231 def L4_ploadruhfnew_abs : HInst<
13232 (outs IntRegs:$Rd32),
13233 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13234 "if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13235 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13236 let Inst{7-5} = 0b100;
13237 let Inst{13-11} = 0b111;
13238 let Inst{31-21} = 0b10011111011;
13239 let isPredicated = 1;
13240 let isPredicatedFalse = 1;
13241 let hasNewValue = 1;
13242 let opNewValue = 0;
13243 let addrMode = Absolute;
13244 let accessSize = HalfWordAccess;
13245 let isPredicatedNew = 1;
13246 let mayLoad = 1;
13247 let isExtended = 1;
13248 let CextOpcode = "L2_loadruh";
13249 let BaseOpcode = "L4_loadruh_abs";
13250 let DecoderNamespace = "MustExtend";
13251 let isExtendable = 1;
13252 let opExtendable = 2;
13253 let isExtentSigned = 0;
13254 let opExtentBits = 6;
13255 let opExtentAlign = 0;
13256 }
13257 def L4_ploadruhfnew_rr : HInst<
13258 (outs IntRegs:$Rd32),
13259 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13260 "if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13261 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13262 let Inst{31-21} = 0b00110011011;
13263 let isPredicated = 1;
13264 let isPredicatedFalse = 1;
13265 let hasNewValue = 1;
13266 let opNewValue = 0;
13267 let addrMode = BaseRegOffset;
13268 let accessSize = HalfWordAccess;
13269 let isPredicatedNew = 1;
13270 let mayLoad = 1;
13271 let CextOpcode = "L2_loadruh";
13272 let InputType = "reg";
13273 let BaseOpcode = "L4_loadruh_rr";
13274 }
13275 def L4_ploadruht_abs : HInst<
13276 (outs IntRegs:$Rd32),
13277 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13278 "if ($Pt4) $Rd32 = memuh(#$Ii)",
13279 tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13280 let Inst{7-5} = 0b100;
13281 let Inst{13-11} = 0b100;
13282 let Inst{31-21} = 0b10011111011;
13283 let isPredicated = 1;
13284 let hasNewValue = 1;
13285 let opNewValue = 0;
13286 let addrMode = Absolute;
13287 let accessSize = HalfWordAccess;
13288 let mayLoad = 1;
13289 let isExtended = 1;
13290 let CextOpcode = "L2_loadruh";
13291 let BaseOpcode = "L4_loadruh_abs";
13292 let DecoderNamespace = "MustExtend";
13293 let isExtendable = 1;
13294 let opExtendable = 2;
13295 let isExtentSigned = 0;
13296 let opExtentBits = 6;
13297 let opExtentAlign = 0;
13298 }
13299 def L4_ploadruht_rr : HInst<
13300 (outs IntRegs:$Rd32),
13301 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13302 "if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13303 tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13304 let Inst{31-21} = 0b00110000011;
13305 let isPredicated = 1;
13306 let hasNewValue = 1;
13307 let opNewValue = 0;
13308 let addrMode = BaseRegOffset;
13309 let accessSize = HalfWordAccess;
13310 let mayLoad = 1;
13311 let CextOpcode = "L2_loadruh";
13312 let InputType = "reg";
13313 let BaseOpcode = "L4_loadruh_rr";
13314 }
13315 def L4_ploadruhtnew_abs : HInst<
13316 (outs IntRegs:$Rd32),
13317 (ins PredRegs:$Pt4, u32_0Imm:$Ii),
13318 "if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13319 tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13320 let Inst{7-5} = 0b100;
13321 let Inst{13-11} = 0b110;
13322 let Inst{31-21} = 0b10011111011;
13323 let isPredicated = 1;
13324 let hasNewValue = 1;
13325 let opNewValue = 0;
13326 let addrMode = Absolute;
13327 let accessSize = HalfWordAccess;
13328 let isPredicatedNew = 1;
13329 let mayLoad = 1;
13330 let isExtended = 1;
13331 let CextOpcode = "L2_loadruh";
13332 let BaseOpcode = "L4_loadruh_abs";
13333 let DecoderNamespace = "MustExtend";
13334 let isExtendable = 1;
13335 let opExtendable = 2;
13336 let isExtentSigned = 0;
13337 let opExtentBits = 6;
13338 let opExtentAlign = 0;
13339 }
13340 def L4_ploadruhtnew_rr : HInst<
13341 (outs IntRegs:$Rd32),
13342 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13343 "if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13344 tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13345 let Inst{31-21} = 0b00110010011;
13346 let isPredicated = 1;
13347 let hasNewValue = 1;
13348 let opNewValue = 0;
13349 let addrMode = BaseRegOffset;
13350 let accessSize = HalfWordAccess;
13351 let isPredicatedNew = 1;
13352 let mayLoad = 1;
13353 let CextOpcode = "L2_loadruh";
13354 let InputType = "reg";
13355 let BaseOpcode = "L4_loadruh_rr";
13356 }
13357 def L4_return : HInst<
13358 (outs DoubleRegs:$Rdd32),
13359 (ins IntRegs:$Rs32),
13360 "$Rdd32 = dealloc_return($Rs32):raw",
13361 tc_675e4897, TypeLD>, Enc_3a3d62, PredNewRel {
13362 let Inst{13-5} = 0b000000000;
13363 let Inst{31-21} = 0b10010110000;
13364 let isTerminator = 1;
13365 let isIndirectBranch = 1;
13366 let accessSize = DoubleWordAccess;
13367 let mayLoad = 1;
13368 let cofMax1 = 1;
13369 let isRestrictNoSlot1Store = 1;
13370 let isReturn = 1;
13371 let Uses = [FRAMEKEY];
13372 let Defs = [PC, R29];
13373 let BaseOpcode = "L4_return";
13374 let isBarrier = 1;
13375 let isPredicable = 1;
13376 let isTaken = 1;
13377 }
13378 def L4_return_f : HInst<
13379 (outs DoubleRegs:$Rdd32),
13380 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13381 "if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13382 tc_2b8da4c2, TypeLD>, Enc_b7fad3, PredNewRel {
13383 let Inst{7-5} = 0b000;
13384 let Inst{13-10} = 0b1100;
13385 let Inst{31-21} = 0b10010110000;
13386 let isPredicated = 1;
13387 let isPredicatedFalse = 1;
13388 let isTerminator = 1;
13389 let isIndirectBranch = 1;
13390 let accessSize = DoubleWordAccess;
13391 let mayLoad = 1;
13392 let cofMax1 = 1;
13393 let isRestrictNoSlot1Store = 1;
13394 let isReturn = 1;
13395 let Uses = [FRAMEKEY];
13396 let Defs = [PC, R29];
13397 let BaseOpcode = "L4_return";
13398 let isTaken = Inst{12};
13399 }
13400 def L4_return_fnew_pnt : HInst<
13401 (outs DoubleRegs:$Rdd32),
13402 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13403 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13404 tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13405 let Inst{7-5} = 0b000;
13406 let Inst{13-10} = 0b1010;
13407 let Inst{31-21} = 0b10010110000;
13408 let isPredicated = 1;
13409 let isPredicatedFalse = 1;
13410 let isTerminator = 1;
13411 let isIndirectBranch = 1;
13412 let accessSize = DoubleWordAccess;
13413 let isPredicatedNew = 1;
13414 let mayLoad = 1;
13415 let cofMax1 = 1;
13416 let isRestrictNoSlot1Store = 1;
13417 let isReturn = 1;
13418 let Uses = [FRAMEKEY];
13419 let Defs = [PC, R29];
13420 let BaseOpcode = "L4_return";
13421 let isTaken = Inst{12};
13422 }
13423 def L4_return_fnew_pt : HInst<
13424 (outs DoubleRegs:$Rdd32),
13425 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13426 "if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13427 tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13428 let Inst{7-5} = 0b000;
13429 let Inst{13-10} = 0b1110;
13430 let Inst{31-21} = 0b10010110000;
13431 let isPredicated = 1;
13432 let isPredicatedFalse = 1;
13433 let isTerminator = 1;
13434 let isIndirectBranch = 1;
13435 let accessSize = DoubleWordAccess;
13436 let isPredicatedNew = 1;
13437 let mayLoad = 1;
13438 let cofMax1 = 1;
13439 let isRestrictNoSlot1Store = 1;
13440 let isReturn = 1;
13441 let Uses = [FRAMEKEY];
13442 let Defs = [PC, R29];
13443 let BaseOpcode = "L4_return";
13444 let isTaken = Inst{12};
13445 }
13446 def L4_return_map_to_raw_f : HInst<
13447 (outs),
13448 (ins PredRegs:$Pv4),
13449 "if (!$Pv4) dealloc_return",
13450 tc_2b8da4c2, TypeMAPPING>, Requires<[HasV65]> {
13451 let isPseudo = 1;
13452 let isCodeGenOnly = 1;
13453 }
13454 def L4_return_map_to_raw_fnew_pnt : HInst<
13455 (outs),
13456 (ins PredRegs:$Pv4),
13457 "if (!$Pv4.new) dealloc_return:nt",
13458 tc_9da59d12, TypeMAPPING>, Requires<[HasV65]> {
13459 let isPseudo = 1;
13460 let isCodeGenOnly = 1;
13461 }
13462 def L4_return_map_to_raw_fnew_pt : HInst<
13463 (outs),
13464 (ins PredRegs:$Pv4),
13465 "if (!$Pv4.new) dealloc_return:t",
13466 tc_9da59d12, TypeMAPPING>, Requires<[HasV65]> {
13467 let isPseudo = 1;
13468 let isCodeGenOnly = 1;
13469 }
13470 def L4_return_map_to_raw_t : HInst<
13471 (outs),
13472 (ins PredRegs:$Pv4),
13473 "if ($Pv4) dealloc_return",
13474 tc_4d5fa3a1, TypeMAPPING>, Requires<[HasV65]> {
13475 let isPseudo = 1;
13476 let isCodeGenOnly = 1;
13477 }
13478 def L4_return_map_to_raw_tnew_pnt : HInst<
13479 (outs),
13480 (ins PredRegs:$Pv4),
13481 "if ($Pv4.new) dealloc_return:nt",
13482 tc_e06f432a, TypeMAPPING>, Requires<[HasV65]> {
13483 let isPseudo = 1;
13484 let isCodeGenOnly = 1;
13485 }
13486 def L4_return_map_to_raw_tnew_pt : HInst<
13487 (outs),
13488 (ins PredRegs:$Pv4),
13489 "if ($Pv4.new) dealloc_return:t",
13490 tc_e06f432a, TypeMAPPING>, Requires<[HasV65]> {
13491 let isPseudo = 1;
13492 let isCodeGenOnly = 1;
13493 }
13494 def L4_return_t : HInst<
13495 (outs DoubleRegs:$Rdd32),
13496 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13497 "if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13498 tc_2b8da4c2, TypeLD>, Enc_b7fad3, PredNewRel {
13499 let Inst{7-5} = 0b000;
13500 let Inst{13-10} = 0b0100;
13501 let Inst{31-21} = 0b10010110000;
13502 let isPredicated = 1;
13503 let isTerminator = 1;
13504 let isIndirectBranch = 1;
13505 let accessSize = DoubleWordAccess;
13506 let mayLoad = 1;
13507 let cofMax1 = 1;
13508 let isRestrictNoSlot1Store = 1;
13509 let isReturn = 1;
13510 let Uses = [FRAMEKEY];
13511 let Defs = [PC, R29];
13512 let BaseOpcode = "L4_return";
13513 let isTaken = Inst{12};
13514 }
13515 def L4_return_tnew_pnt : HInst<
13516 (outs DoubleRegs:$Rdd32),
13517 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13518 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13519 tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13520 let Inst{7-5} = 0b000;
13521 let Inst{13-10} = 0b0010;
13522 let Inst{31-21} = 0b10010110000;
13523 let isPredicated = 1;
13524 let isTerminator = 1;
13525 let isIndirectBranch = 1;
13526 let accessSize = DoubleWordAccess;
13527 let isPredicatedNew = 1;
13528 let mayLoad = 1;
13529 let cofMax1 = 1;
13530 let isRestrictNoSlot1Store = 1;
13531 let isReturn = 1;
13532 let Uses = [FRAMEKEY];
13533 let Defs = [PC, R29];
13534 let BaseOpcode = "L4_return";
13535 let isTaken = Inst{12};
13536 }
13537 def L4_return_tnew_pt : HInst<
13538 (outs DoubleRegs:$Rdd32),
13539 (ins PredRegs:$Pv4, IntRegs:$Rs32),
13540 "if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13541 tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13542 let Inst{7-5} = 0b000;
13543 let Inst{13-10} = 0b0110;
13544 let Inst{31-21} = 0b10010110000;
13545 let isPredicated = 1;
13546 let isTerminator = 1;
13547 let isIndirectBranch = 1;
13548 let accessSize = DoubleWordAccess;
13549 let isPredicatedNew = 1;
13550 let mayLoad = 1;
13551 let cofMax1 = 1;
13552 let isRestrictNoSlot1Store = 1;
13553 let isReturn = 1;
13554 let Uses = [FRAMEKEY];
13555 let Defs = [PC, R29];
13556 let BaseOpcode = "L4_return";
13557 let isTaken = Inst{12};
13558 }
13559 def L4_sub_memopb_io : HInst<
13560 (outs),
13561 (ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13562 "memb($Rs32+#$Ii) -= $Rt32",
13563 tc_7186d325, TypeV4LDST>, Enc_d44e31 {
13564 let Inst{6-5} = 0b01;
13565 let Inst{13-13} = 0b0;
13566 let Inst{31-21} = 0b00111110000;
13567 let addrMode = BaseImmOffset;
13568 let accessSize = ByteAccess;
13569 let mayLoad = 1;
13570 let isRestrictNoSlot1Store = 1;
13571 let mayStore = 1;
13572 let isExtendable = 1;
13573 let opExtendable = 1;
13574 let isExtentSigned = 0;
13575 let opExtentBits = 6;
13576 let opExtentAlign = 0;
13577 }
13578 def L4_sub_memopb_zomap : HInst<
13579 (outs),
13580 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13581 "memb($Rs32) -= $Rt32",
13582 tc_7186d325, TypeMAPPING> {
13583 let isPseudo = 1;
13584 let isCodeGenOnly = 1;
13585 }
13586 def L4_sub_memoph_io : HInst<
13587 (outs),
13588 (ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13589 "memh($Rs32+#$Ii) -= $Rt32",
13590 tc_7186d325, TypeV4LDST>, Enc_163a3c {
13591 let Inst{6-5} = 0b01;
13592 let Inst{13-13} = 0b0;
13593 let Inst{31-21} = 0b00111110001;
13594 let addrMode = BaseImmOffset;
13595 let accessSize = HalfWordAccess;
13596 let mayLoad = 1;
13597 let isRestrictNoSlot1Store = 1;
13598 let mayStore = 1;
13599 let isExtendable = 1;
13600 let opExtendable = 1;
13601 let isExtentSigned = 0;
13602 let opExtentBits = 7;
13603 let opExtentAlign = 1;
13604 }
13605 def L4_sub_memoph_zomap : HInst<
13606 (outs),
13607 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13608 "memh($Rs32) -= $Rt32",
13609 tc_7186d325, TypeMAPPING> {
13610 let isPseudo = 1;
13611 let isCodeGenOnly = 1;
13612 }
13613 def L4_sub_memopw_io : HInst<
13614 (outs),
13615 (ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13616 "memw($Rs32+#$Ii) -= $Rt32",
13617 tc_7186d325, TypeV4LDST>, Enc_226535 {
13618 let Inst{6-5} = 0b01;
13619 let Inst{13-13} = 0b0;
13620 let Inst{31-21} = 0b00111110010;
13621 let addrMode = BaseImmOffset;
13622 let accessSize = WordAccess;
13623 let mayLoad = 1;
13624 let isRestrictNoSlot1Store = 1;
13625 let mayStore = 1;
13626 let isExtendable = 1;
13627 let opExtendable = 1;
13628 let isExtentSigned = 0;
13629 let opExtentBits = 8;
13630 let opExtentAlign = 2;
13631 }
13632 def L4_sub_memopw_zomap : HInst<
13633 (outs),
13634 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13635 "memw($Rs32) -= $Rt32",
13636 tc_7186d325, TypeMAPPING> {
13637 let isPseudo = 1;
13638 let isCodeGenOnly = 1;
13639 }
13640 def L6_deallocframe_map_to_raw : HInst<
13641 (outs),
13642 (ins),
13643 "deallocframe",
13644 tc_15aa71c5, TypeMAPPING>, Requires<[HasV65]> {
13645 let isPseudo = 1;
13646 let isCodeGenOnly = 1;
13647 }
13648 def L6_memcpy : HInst<
13649 (outs),
13650 (ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13651 "memcpy($Rs32,$Rt32,$Mu2)",
13652 tc_a6b1eca9, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13653 let Inst{7-0} = 0b01000000;
13654 let Inst{31-21} = 0b10010010000;
13655 let mayLoad = 1;
13656 let isSolo = 1;
13657 let mayStore = 1;
13658 }
13659 def L6_return_map_to_raw : HInst<
13660 (outs),
13661 (ins),
13662 "dealloc_return",
13663 tc_675e4897, TypeMAPPING>, Requires<[HasV65]> {
13664 let isPseudo = 1;
13665 let isCodeGenOnly = 1;
13666 }
13667 def M2_acci : HInst<
13668 (outs IntRegs:$Rx32),
13669 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13670 "$Rx32 += add($Rs32,$Rt32)",
13671 tc_f675fee8, TypeM>, Enc_2ae154, ImmRegRel {
13672 let Inst{7-5} = 0b001;
13673 let Inst{13-13} = 0b0;
13674 let Inst{31-21} = 0b11101111000;
13675 let hasNewValue = 1;
13676 let opNewValue = 0;
13677 let prefersSlot3 = 1;
13678 let CextOpcode = "M2_acci";
13679 let InputType = "reg";
13680 let Constraints = "$Rx32 = $Rx32in";
13681 }
13682 def M2_accii : HInst<
13683 (outs IntRegs:$Rx32),
13684 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13685 "$Rx32 += add($Rs32,#$Ii)",
13686 tc_f675fee8, TypeM>, Enc_c90aca, ImmRegRel {
13687 let Inst{13-13} = 0b0;
13688 let Inst{31-21} = 0b11100010000;
13689 let hasNewValue = 1;
13690 let opNewValue = 0;
13691 let prefersSlot3 = 1;
13692 let CextOpcode = "M2_acci";
13693 let InputType = "imm";
13694 let isExtendable = 1;
13695 let opExtendable = 3;
13696 let isExtentSigned = 1;
13697 let opExtentBits = 8;
13698 let opExtentAlign = 0;
13699 let Constraints = "$Rx32 = $Rx32in";
13700 }
13701 def M2_cmaci_s0 : HInst<
13702 (outs DoubleRegs:$Rxx32),
13703 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13704 "$Rxx32 += cmpyi($Rs32,$Rt32)",
13705 tc_d773585a, TypeM>, Enc_61f0b0 {
13706 let Inst{7-5} = 0b001;
13707 let Inst{13-13} = 0b0;
13708 let Inst{31-21} = 0b11100111000;
13709 let prefersSlot3 = 1;
13710 let Constraints = "$Rxx32 = $Rxx32in";
13711 }
13712 def M2_cmacr_s0 : HInst<
13713 (outs DoubleRegs:$Rxx32),
13714 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13715 "$Rxx32 += cmpyr($Rs32,$Rt32)",
13716 tc_d773585a, TypeM>, Enc_61f0b0 {
13717 let Inst{7-5} = 0b010;
13718 let Inst{13-13} = 0b0;
13719 let Inst{31-21} = 0b11100111000;
13720 let prefersSlot3 = 1;
13721 let Constraints = "$Rxx32 = $Rxx32in";
13722 }
13723 def M2_cmacs_s0 : HInst<
13724 (outs DoubleRegs:$Rxx32),
13725 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13726 "$Rxx32 += cmpy($Rs32,$Rt32):sat",
13727 tc_d773585a, TypeM>, Enc_61f0b0 {
13728 let Inst{7-5} = 0b110;
13729 let Inst{13-13} = 0b0;
13730 let Inst{31-21} = 0b11100111000;
13731 let prefersSlot3 = 1;
13732 let Defs = [USR_OVF];
13733 let Constraints = "$Rxx32 = $Rxx32in";
13734 }
13735 def M2_cmacs_s1 : HInst<
13736 (outs DoubleRegs:$Rxx32),
13737 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13738 "$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13739 tc_d773585a, TypeM>, Enc_61f0b0 {
13740 let Inst{7-5} = 0b110;
13741 let Inst{13-13} = 0b0;
13742 let Inst{31-21} = 0b11100111100;
13743 let prefersSlot3 = 1;
13744 let Defs = [USR_OVF];
13745 let Constraints = "$Rxx32 = $Rxx32in";
13746 }
13747 def M2_cmacsc_s0 : HInst<
13748 (outs DoubleRegs:$Rxx32),
13749 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13750 "$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13751 tc_d773585a, TypeM>, Enc_61f0b0 {
13752 let Inst{7-5} = 0b110;
13753 let Inst{13-13} = 0b0;
13754 let Inst{31-21} = 0b11100111010;
13755 let prefersSlot3 = 1;
13756 let Defs = [USR_OVF];
13757 let Constraints = "$Rxx32 = $Rxx32in";
13758 }
13759 def M2_cmacsc_s1 : HInst<
13760 (outs DoubleRegs:$Rxx32),
13761 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13762 "$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13763 tc_d773585a, TypeM>, Enc_61f0b0 {
13764 let Inst{7-5} = 0b110;
13765 let Inst{13-13} = 0b0;
13766 let Inst{31-21} = 0b11100111110;
13767 let prefersSlot3 = 1;
13768 let Defs = [USR_OVF];
13769 let Constraints = "$Rxx32 = $Rxx32in";
13770 }
13771 def M2_cmpyi_s0 : HInst<
13772 (outs DoubleRegs:$Rdd32),
13773 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13774 "$Rdd32 = cmpyi($Rs32,$Rt32)",
13775 tc_bafaade3, TypeM>, Enc_be32a5 {
13776 let Inst{7-5} = 0b001;
13777 let Inst{13-13} = 0b0;
13778 let Inst{31-21} = 0b11100101000;
13779 let prefersSlot3 = 1;
13780 }
13781 def M2_cmpyr_s0 : HInst<
13782 (outs DoubleRegs:$Rdd32),
13783 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13784 "$Rdd32 = cmpyr($Rs32,$Rt32)",
13785 tc_bafaade3, TypeM>, Enc_be32a5 {
13786 let Inst{7-5} = 0b010;
13787 let Inst{13-13} = 0b0;
13788 let Inst{31-21} = 0b11100101000;
13789 let prefersSlot3 = 1;
13790 }
13791 def M2_cmpyrs_s0 : HInst<
13792 (outs IntRegs:$Rd32),
13793 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13794 "$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13795 tc_bafaade3, TypeM>, Enc_5ab2be {
13796 let Inst{7-5} = 0b110;
13797 let Inst{13-13} = 0b0;
13798 let Inst{31-21} = 0b11101101001;
13799 let hasNewValue = 1;
13800 let opNewValue = 0;
13801 let prefersSlot3 = 1;
13802 let Defs = [USR_OVF];
13803 }
13804 def M2_cmpyrs_s1 : HInst<
13805 (outs IntRegs:$Rd32),
13806 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13807 "$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13808 tc_bafaade3, TypeM>, Enc_5ab2be {
13809 let Inst{7-5} = 0b110;
13810 let Inst{13-13} = 0b0;
13811 let Inst{31-21} = 0b11101101101;
13812 let hasNewValue = 1;
13813 let opNewValue = 0;
13814 let prefersSlot3 = 1;
13815 let Defs = [USR_OVF];
13816 }
13817 def M2_cmpyrsc_s0 : HInst<
13818 (outs IntRegs:$Rd32),
13819 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13820 "$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13821 tc_bafaade3, TypeM>, Enc_5ab2be {
13822 let Inst{7-5} = 0b110;
13823 let Inst{13-13} = 0b0;
13824 let Inst{31-21} = 0b11101101011;
13825 let hasNewValue = 1;
13826 let opNewValue = 0;
13827 let prefersSlot3 = 1;
13828 let Defs = [USR_OVF];
13829 }
13830 def M2_cmpyrsc_s1 : HInst<
13831 (outs IntRegs:$Rd32),
13832 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13833 "$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13834 tc_bafaade3, TypeM>, Enc_5ab2be {
13835 let Inst{7-5} = 0b110;
13836 let Inst{13-13} = 0b0;
13837 let Inst{31-21} = 0b11101101111;
13838 let hasNewValue = 1;
13839 let opNewValue = 0;
13840 let prefersSlot3 = 1;
13841 let Defs = [USR_OVF];
13842 }
13843 def M2_cmpys_s0 : HInst<
13844 (outs DoubleRegs:$Rdd32),
13845 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13846 "$Rdd32 = cmpy($Rs32,$Rt32):sat",
13847 tc_bafaade3, TypeM>, Enc_be32a5 {
13848 let Inst{7-5} = 0b110;
13849 let Inst{13-13} = 0b0;
13850 let Inst{31-21} = 0b11100101000;
13851 let prefersSlot3 = 1;
13852 let Defs = [USR_OVF];
13853 }
13854 def M2_cmpys_s1 : HInst<
13855 (outs DoubleRegs:$Rdd32),
13856 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13857 "$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
13858 tc_bafaade3, TypeM>, Enc_be32a5 {
13859 let Inst{7-5} = 0b110;
13860 let Inst{13-13} = 0b0;
13861 let Inst{31-21} = 0b11100101100;
13862 let prefersSlot3 = 1;
13863 let Defs = [USR_OVF];
13864 }
13865 def M2_cmpysc_s0 : HInst<
13866 (outs DoubleRegs:$Rdd32),
13867 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13868 "$Rdd32 = cmpy($Rs32,$Rt32*):sat",
13869 tc_bafaade3, TypeM>, Enc_be32a5 {
13870 let Inst{7-5} = 0b110;
13871 let Inst{13-13} = 0b0;
13872 let Inst{31-21} = 0b11100101010;
13873 let prefersSlot3 = 1;
13874 let Defs = [USR_OVF];
13875 }
13876 def M2_cmpysc_s1 : HInst<
13877 (outs DoubleRegs:$Rdd32),
13878 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13879 "$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
13880 tc_bafaade3, TypeM>, Enc_be32a5 {
13881 let Inst{7-5} = 0b110;
13882 let Inst{13-13} = 0b0;
13883 let Inst{31-21} = 0b11100101110;
13884 let prefersSlot3 = 1;
13885 let Defs = [USR_OVF];
13886 }
13887 def M2_cnacs_s0 : HInst<
13888 (outs DoubleRegs:$Rxx32),
13889 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13890 "$Rxx32 -= cmpy($Rs32,$Rt32):sat",
13891 tc_d773585a, TypeM>, Enc_61f0b0 {
13892 let Inst{7-5} = 0b111;
13893 let Inst{13-13} = 0b0;
13894 let Inst{31-21} = 0b11100111000;
13895 let prefersSlot3 = 1;
13896 let Defs = [USR_OVF];
13897 let Constraints = "$Rxx32 = $Rxx32in";
13898 }
13899 def M2_cnacs_s1 : HInst<
13900 (outs DoubleRegs:$Rxx32),
13901 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13902 "$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
13903 tc_d773585a, TypeM>, Enc_61f0b0 {
13904 let Inst{7-5} = 0b111;
13905 let Inst{13-13} = 0b0;
13906 let Inst{31-21} = 0b11100111100;
13907 let prefersSlot3 = 1;
13908 let Defs = [USR_OVF];
13909 let Constraints = "$Rxx32 = $Rxx32in";
13910 }
13911 def M2_cnacsc_s0 : HInst<
13912 (outs DoubleRegs:$Rxx32),
13913 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13914 "$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
13915 tc_d773585a, TypeM>, Enc_61f0b0 {
13916 let Inst{7-5} = 0b111;
13917 let Inst{13-13} = 0b0;
13918 let Inst{31-21} = 0b11100111010;
13919 let prefersSlot3 = 1;
13920 let Defs = [USR_OVF];
13921 let Constraints = "$Rxx32 = $Rxx32in";
13922 }
13923 def M2_cnacsc_s1 : HInst<
13924 (outs DoubleRegs:$Rxx32),
13925 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13926 "$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
13927 tc_d773585a, TypeM>, Enc_61f0b0 {
13928 let Inst{7-5} = 0b111;
13929 let Inst{13-13} = 0b0;
13930 let Inst{31-21} = 0b11100111110;
13931 let prefersSlot3 = 1;
13932 let Defs = [USR_OVF];
13933 let Constraints = "$Rxx32 = $Rxx32in";
13934 }
13935 def M2_dpmpyss_acc_s0 : HInst<
13936 (outs DoubleRegs:$Rxx32),
13937 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13938 "$Rxx32 += mpy($Rs32,$Rt32)",
13939 tc_d773585a, TypeM>, Enc_61f0b0 {
13940 let Inst{7-5} = 0b000;
13941 let Inst{13-13} = 0b0;
13942 let Inst{31-21} = 0b11100111000;
13943 let prefersSlot3 = 1;
13944 let Constraints = "$Rxx32 = $Rxx32in";
13945 }
13946 def M2_dpmpyss_nac_s0 : HInst<
13947 (outs DoubleRegs:$Rxx32),
13948 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13949 "$Rxx32 -= mpy($Rs32,$Rt32)",
13950 tc_d773585a, TypeM>, Enc_61f0b0 {
13951 let Inst{7-5} = 0b000;
13952 let Inst{13-13} = 0b0;
13953 let Inst{31-21} = 0b11100111001;
13954 let prefersSlot3 = 1;
13955 let Constraints = "$Rxx32 = $Rxx32in";
13956 }
13957 def M2_dpmpyss_rnd_s0 : HInst<
13958 (outs IntRegs:$Rd32),
13959 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13960 "$Rd32 = mpy($Rs32,$Rt32):rnd",
13961 tc_bafaade3, TypeM>, Enc_5ab2be {
13962 let Inst{7-5} = 0b001;
13963 let Inst{13-13} = 0b0;
13964 let Inst{31-21} = 0b11101101001;
13965 let hasNewValue = 1;
13966 let opNewValue = 0;
13967 let prefersSlot3 = 1;
13968 }
13969 def M2_dpmpyss_s0 : HInst<
13970 (outs DoubleRegs:$Rdd32),
13971 (ins IntRegs:$Rs32, IntRegs:$Rt32),
13972 "$Rdd32 = mpy($Rs32,$Rt32)",
13973 tc_bafaade3, TypeM>, Enc_be32a5 {
13974 let Inst{7-5} = 0b000;
13975 let Inst{13-13} = 0b0;
13976 let Inst{31-21} = 0b11100101000;
13977 let prefersSlot3 = 1;
13978 }
13979 def M2_dpmpyuu_acc_s0 : HInst<
13980 (outs DoubleRegs:$Rxx32),
13981 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13982 "$Rxx32 += mpyu($Rs32,$Rt32)",
13983 tc_d773585a, TypeM>, Enc_61f0b0 {
13984 let Inst{7-5} = 0b000;
13985 let Inst{13-13} = 0b0;
13986 let Inst{31-21} = 0b11100111010;
13987 let prefersSlot3 = 1;
13988 let Constraints = "$Rxx32 = $Rxx32in";
13989 }
13990 def M2_dpmpyuu_nac_s0 : HInst<
13991 (outs DoubleRegs:$Rxx32),
13992 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13993 "$Rxx32 -= mpyu($Rs32,$Rt32)",
13994 tc_d773585a, TypeM>, Enc_61f0b0 {
13995 let Inst{7-5} = 0b000;
13996 let Inst{13-13} = 0b0;
13997 let Inst{31-21} = 0b11100111011;
13998 let prefersSlot3 = 1;
13999 let Constraints = "$Rxx32 = $Rxx32in";
14000 }
14001 def M2_dpmpyuu_s0 : HInst<
14002 (outs DoubleRegs:$Rdd32),
14003 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14004 "$Rdd32 = mpyu($Rs32,$Rt32)",
14005 tc_bafaade3, TypeM>, Enc_be32a5 {
14006 let Inst{7-5} = 0b000;
14007 let Inst{13-13} = 0b0;
14008 let Inst{31-21} = 0b11100101010;
14009 let prefersSlot3 = 1;
14010 }
14011 def M2_hmmpyh_rs1 : HInst<
14012 (outs IntRegs:$Rd32),
14013 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14014 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14015 tc_bafaade3, TypeM>, Enc_5ab2be {
14016 let Inst{7-5} = 0b100;
14017 let Inst{13-13} = 0b0;
14018 let Inst{31-21} = 0b11101101101;
14019 let hasNewValue = 1;
14020 let opNewValue = 0;
14021 let prefersSlot3 = 1;
14022 let Defs = [USR_OVF];
14023 }
14024 def M2_hmmpyh_s1 : HInst<
14025 (outs IntRegs:$Rd32),
14026 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14027 "$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14028 tc_bafaade3, TypeM>, Enc_5ab2be {
14029 let Inst{7-5} = 0b000;
14030 let Inst{13-13} = 0b0;
14031 let Inst{31-21} = 0b11101101101;
14032 let hasNewValue = 1;
14033 let opNewValue = 0;
14034 let prefersSlot3 = 1;
14035 let Defs = [USR_OVF];
14036 }
14037 def M2_hmmpyl_rs1 : HInst<
14038 (outs IntRegs:$Rd32),
14039 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14040 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14041 tc_bafaade3, TypeM>, Enc_5ab2be {
14042 let Inst{7-5} = 0b100;
14043 let Inst{13-13} = 0b0;
14044 let Inst{31-21} = 0b11101101111;
14045 let hasNewValue = 1;
14046 let opNewValue = 0;
14047 let prefersSlot3 = 1;
14048 let Defs = [USR_OVF];
14049 }
14050 def M2_hmmpyl_s1 : HInst<
14051 (outs IntRegs:$Rd32),
14052 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14053 "$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14054 tc_bafaade3, TypeM>, Enc_5ab2be {
14055 let Inst{7-5} = 0b001;
14056 let Inst{13-13} = 0b0;
14057 let Inst{31-21} = 0b11101101101;
14058 let hasNewValue = 1;
14059 let opNewValue = 0;
14060 let prefersSlot3 = 1;
14061 let Defs = [USR_OVF];
14062 }
14063 def M2_maci : HInst<
14064 (outs IntRegs:$Rx32),
14065 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14066 "$Rx32 += mpyi($Rs32,$Rt32)",
14067 tc_d773585a, TypeM>, Enc_2ae154, ImmRegRel {
14068 let Inst{7-5} = 0b000;
14069 let Inst{13-13} = 0b0;
14070 let Inst{31-21} = 0b11101111000;
14071 let hasNewValue = 1;
14072 let opNewValue = 0;
14073 let prefersSlot3 = 1;
14074 let CextOpcode = "M2_maci";
14075 let InputType = "reg";
14076 let Constraints = "$Rx32 = $Rx32in";
14077 }
14078 def M2_macsin : HInst<
14079 (outs IntRegs:$Rx32),
14080 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14081 "$Rx32 -= mpyi($Rs32,#$Ii)",
14082 tc_05d3a09b, TypeM>, Enc_c90aca {
14083 let Inst{13-13} = 0b0;
14084 let Inst{31-21} = 0b11100001100;
14085 let hasNewValue = 1;
14086 let opNewValue = 0;
14087 let prefersSlot3 = 1;
14088 let InputType = "imm";
14089 let isExtendable = 1;
14090 let opExtendable = 3;
14091 let isExtentSigned = 0;
14092 let opExtentBits = 8;
14093 let opExtentAlign = 0;
14094 let Constraints = "$Rx32 = $Rx32in";
14095 }
14096 def M2_macsip : HInst<
14097 (outs IntRegs:$Rx32),
14098 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14099 "$Rx32 += mpyi($Rs32,#$Ii)",
14100 tc_05d3a09b, TypeM>, Enc_c90aca, ImmRegRel {
14101 let Inst{13-13} = 0b0;
14102 let Inst{31-21} = 0b11100001000;
14103 let hasNewValue = 1;
14104 let opNewValue = 0;
14105 let prefersSlot3 = 1;
14106 let CextOpcode = "M2_maci";
14107 let InputType = "imm";
14108 let isExtendable = 1;
14109 let opExtendable = 3;
14110 let isExtentSigned = 0;
14111 let opExtentBits = 8;
14112 let opExtentAlign = 0;
14113 let Constraints = "$Rx32 = $Rx32in";
14114 }
14115 def M2_mmachs_rs0 : HInst<
14116 (outs DoubleRegs:$Rxx32),
14117 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14118 "$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14119 tc_d773585a, TypeM>, Enc_88c16c {
14120 let Inst{7-5} = 0b111;
14121 let Inst{13-13} = 0b0;
14122 let Inst{31-21} = 0b11101010001;
14123 let prefersSlot3 = 1;
14124 let Defs = [USR_OVF];
14125 let Constraints = "$Rxx32 = $Rxx32in";
14126 }
14127 def M2_mmachs_rs1 : HInst<
14128 (outs DoubleRegs:$Rxx32),
14129 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14130 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14131 tc_d773585a, TypeM>, Enc_88c16c {
14132 let Inst{7-5} = 0b111;
14133 let Inst{13-13} = 0b0;
14134 let Inst{31-21} = 0b11101010101;
14135 let prefersSlot3 = 1;
14136 let Defs = [USR_OVF];
14137 let Constraints = "$Rxx32 = $Rxx32in";
14138 }
14139 def M2_mmachs_s0 : HInst<
14140 (outs DoubleRegs:$Rxx32),
14141 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14142 "$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14143 tc_d773585a, TypeM>, Enc_88c16c {
14144 let Inst{7-5} = 0b111;
14145 let Inst{13-13} = 0b0;
14146 let Inst{31-21} = 0b11101010000;
14147 let prefersSlot3 = 1;
14148 let Defs = [USR_OVF];
14149 let Constraints = "$Rxx32 = $Rxx32in";
14150 }
14151 def M2_mmachs_s1 : HInst<
14152 (outs DoubleRegs:$Rxx32),
14153 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14154 "$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14155 tc_d773585a, TypeM>, Enc_88c16c {
14156 let Inst{7-5} = 0b111;
14157 let Inst{13-13} = 0b0;
14158 let Inst{31-21} = 0b11101010100;
14159 let prefersSlot3 = 1;
14160 let Defs = [USR_OVF];
14161 let Constraints = "$Rxx32 = $Rxx32in";
14162 }
14163 def M2_mmacls_rs0 : HInst<
14164 (outs DoubleRegs:$Rxx32),
14165 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14166 "$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14167 tc_d773585a, TypeM>, Enc_88c16c {
14168 let Inst{7-5} = 0b101;
14169 let Inst{13-13} = 0b0;
14170 let Inst{31-21} = 0b11101010001;
14171 let prefersSlot3 = 1;
14172 let Defs = [USR_OVF];
14173 let Constraints = "$Rxx32 = $Rxx32in";
14174 }
14175 def M2_mmacls_rs1 : HInst<
14176 (outs DoubleRegs:$Rxx32),
14177 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14178 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14179 tc_d773585a, TypeM>, Enc_88c16c {
14180 let Inst{7-5} = 0b101;
14181 let Inst{13-13} = 0b0;
14182 let Inst{31-21} = 0b11101010101;
14183 let prefersSlot3 = 1;
14184 let Defs = [USR_OVF];
14185 let Constraints = "$Rxx32 = $Rxx32in";
14186 }
14187 def M2_mmacls_s0 : HInst<
14188 (outs DoubleRegs:$Rxx32),
14189 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14190 "$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14191 tc_d773585a, TypeM>, Enc_88c16c {
14192 let Inst{7-5} = 0b101;
14193 let Inst{13-13} = 0b0;
14194 let Inst{31-21} = 0b11101010000;
14195 let prefersSlot3 = 1;
14196 let Defs = [USR_OVF];
14197 let Constraints = "$Rxx32 = $Rxx32in";
14198 }
14199 def M2_mmacls_s1 : HInst<
14200 (outs DoubleRegs:$Rxx32),
14201 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14202 "$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14203 tc_d773585a, TypeM>, Enc_88c16c {
14204 let Inst{7-5} = 0b101;
14205 let Inst{13-13} = 0b0;
14206 let Inst{31-21} = 0b11101010100;
14207 let prefersSlot3 = 1;
14208 let Defs = [USR_OVF];
14209 let Constraints = "$Rxx32 = $Rxx32in";
14210 }
14211 def M2_mmacuhs_rs0 : HInst<
14212 (outs DoubleRegs:$Rxx32),
14213 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14214 "$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14215 tc_d773585a, TypeM>, Enc_88c16c {
14216 let Inst{7-5} = 0b111;
14217 let Inst{13-13} = 0b0;
14218 let Inst{31-21} = 0b11101010011;
14219 let prefersSlot3 = 1;
14220 let Defs = [USR_OVF];
14221 let Constraints = "$Rxx32 = $Rxx32in";
14222 }
14223 def M2_mmacuhs_rs1 : HInst<
14224 (outs DoubleRegs:$Rxx32),
14225 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14226 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14227 tc_d773585a, TypeM>, Enc_88c16c {
14228 let Inst{7-5} = 0b111;
14229 let Inst{13-13} = 0b0;
14230 let Inst{31-21} = 0b11101010111;
14231 let prefersSlot3 = 1;
14232 let Defs = [USR_OVF];
14233 let Constraints = "$Rxx32 = $Rxx32in";
14234 }
14235 def M2_mmacuhs_s0 : HInst<
14236 (outs DoubleRegs:$Rxx32),
14237 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14238 "$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14239 tc_d773585a, TypeM>, Enc_88c16c {
14240 let Inst{7-5} = 0b111;
14241 let Inst{13-13} = 0b0;
14242 let Inst{31-21} = 0b11101010010;
14243 let prefersSlot3 = 1;
14244 let Defs = [USR_OVF];
14245 let Constraints = "$Rxx32 = $Rxx32in";
14246 }
14247 def M2_mmacuhs_s1 : HInst<
14248 (outs DoubleRegs:$Rxx32),
14249 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14250 "$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14251 tc_d773585a, TypeM>, Enc_88c16c {
14252 let Inst{7-5} = 0b111;
14253 let Inst{13-13} = 0b0;
14254 let Inst{31-21} = 0b11101010110;
14255 let prefersSlot3 = 1;
14256 let Defs = [USR_OVF];
14257 let Constraints = "$Rxx32 = $Rxx32in";
14258 }
14259 def M2_mmaculs_rs0 : HInst<
14260 (outs DoubleRegs:$Rxx32),
14261 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14262 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14263 tc_d773585a, TypeM>, Enc_88c16c {
14264 let Inst{7-5} = 0b101;
14265 let Inst{13-13} = 0b0;
14266 let Inst{31-21} = 0b11101010011;
14267 let prefersSlot3 = 1;
14268 let Defs = [USR_OVF];
14269 let Constraints = "$Rxx32 = $Rxx32in";
14270 }
14271 def M2_mmaculs_rs1 : HInst<
14272 (outs DoubleRegs:$Rxx32),
14273 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14274 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14275 tc_d773585a, TypeM>, Enc_88c16c {
14276 let Inst{7-5} = 0b101;
14277 let Inst{13-13} = 0b0;
14278 let Inst{31-21} = 0b11101010111;
14279 let prefersSlot3 = 1;
14280 let Defs = [USR_OVF];
14281 let Constraints = "$Rxx32 = $Rxx32in";
14282 }
14283 def M2_mmaculs_s0 : HInst<
14284 (outs DoubleRegs:$Rxx32),
14285 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14286 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14287 tc_d773585a, TypeM>, Enc_88c16c {
14288 let Inst{7-5} = 0b101;
14289 let Inst{13-13} = 0b0;
14290 let Inst{31-21} = 0b11101010010;
14291 let prefersSlot3 = 1;
14292 let Defs = [USR_OVF];
14293 let Constraints = "$Rxx32 = $Rxx32in";
14294 }
14295 def M2_mmaculs_s1 : HInst<
14296 (outs DoubleRegs:$Rxx32),
14297 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14298 "$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14299 tc_d773585a, TypeM>, Enc_88c16c {
14300 let Inst{7-5} = 0b101;
14301 let Inst{13-13} = 0b0;
14302 let Inst{31-21} = 0b11101010110;
14303 let prefersSlot3 = 1;
14304 let Defs = [USR_OVF];
14305 let Constraints = "$Rxx32 = $Rxx32in";
14306 }
14307 def M2_mmpyh_rs0 : HInst<
14308 (outs DoubleRegs:$Rdd32),
14309 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14310 "$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14311 tc_bafaade3, TypeM>, Enc_a56825 {
14312 let Inst{7-5} = 0b111;
14313 let Inst{13-13} = 0b0;
14314 let Inst{31-21} = 0b11101000001;
14315 let prefersSlot3 = 1;
14316 let Defs = [USR_OVF];
14317 }
14318 def M2_mmpyh_rs1 : HInst<
14319 (outs DoubleRegs:$Rdd32),
14320 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14321 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14322 tc_bafaade3, TypeM>, Enc_a56825 {
14323 let Inst{7-5} = 0b111;
14324 let Inst{13-13} = 0b0;
14325 let Inst{31-21} = 0b11101000101;
14326 let prefersSlot3 = 1;
14327 let Defs = [USR_OVF];
14328 }
14329 def M2_mmpyh_s0 : HInst<
14330 (outs DoubleRegs:$Rdd32),
14331 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14332 "$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14333 tc_bafaade3, TypeM>, Enc_a56825 {
14334 let Inst{7-5} = 0b111;
14335 let Inst{13-13} = 0b0;
14336 let Inst{31-21} = 0b11101000000;
14337 let prefersSlot3 = 1;
14338 let Defs = [USR_OVF];
14339 }
14340 def M2_mmpyh_s1 : HInst<
14341 (outs DoubleRegs:$Rdd32),
14342 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14343 "$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14344 tc_bafaade3, TypeM>, Enc_a56825 {
14345 let Inst{7-5} = 0b111;
14346 let Inst{13-13} = 0b0;
14347 let Inst{31-21} = 0b11101000100;
14348 let prefersSlot3 = 1;
14349 let Defs = [USR_OVF];
14350 }
14351 def M2_mmpyl_rs0 : HInst<
14352 (outs DoubleRegs:$Rdd32),
14353 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14354 "$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14355 tc_bafaade3, TypeM>, Enc_a56825 {
14356 let Inst{7-5} = 0b101;
14357 let Inst{13-13} = 0b0;
14358 let Inst{31-21} = 0b11101000001;
14359 let prefersSlot3 = 1;
14360 let Defs = [USR_OVF];
14361 }
14362 def M2_mmpyl_rs1 : HInst<
14363 (outs DoubleRegs:$Rdd32),
14364 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14365 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14366 tc_bafaade3, TypeM>, Enc_a56825 {
14367 let Inst{7-5} = 0b101;
14368 let Inst{13-13} = 0b0;
14369 let Inst{31-21} = 0b11101000101;
14370 let prefersSlot3 = 1;
14371 let Defs = [USR_OVF];
14372 }
14373 def M2_mmpyl_s0 : HInst<
14374 (outs DoubleRegs:$Rdd32),
14375 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14376 "$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14377 tc_bafaade3, TypeM>, Enc_a56825 {
14378 let Inst{7-5} = 0b101;
14379 let Inst{13-13} = 0b0;
14380 let Inst{31-21} = 0b11101000000;
14381 let prefersSlot3 = 1;
14382 let Defs = [USR_OVF];
14383 }
14384 def M2_mmpyl_s1 : HInst<
14385 (outs DoubleRegs:$Rdd32),
14386 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14387 "$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14388 tc_bafaade3, TypeM>, Enc_a56825 {
14389 let Inst{7-5} = 0b101;
14390 let Inst{13-13} = 0b0;
14391 let Inst{31-21} = 0b11101000100;
14392 let prefersSlot3 = 1;
14393 let Defs = [USR_OVF];
14394 }
14395 def M2_mmpyuh_rs0 : HInst<
14396 (outs DoubleRegs:$Rdd32),
14397 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14398 "$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14399 tc_bafaade3, TypeM>, Enc_a56825 {
14400 let Inst{7-5} = 0b111;
14401 let Inst{13-13} = 0b0;
14402 let Inst{31-21} = 0b11101000011;
14403 let prefersSlot3 = 1;
14404 let Defs = [USR_OVF];
14405 }
14406 def M2_mmpyuh_rs1 : HInst<
14407 (outs DoubleRegs:$Rdd32),
14408 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14409 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14410 tc_bafaade3, TypeM>, Enc_a56825 {
14411 let Inst{7-5} = 0b111;
14412 let Inst{13-13} = 0b0;
14413 let Inst{31-21} = 0b11101000111;
14414 let prefersSlot3 = 1;
14415 let Defs = [USR_OVF];
14416 }
14417 def M2_mmpyuh_s0 : HInst<
14418 (outs DoubleRegs:$Rdd32),
14419 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14420 "$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14421 tc_bafaade3, TypeM>, Enc_a56825 {
14422 let Inst{7-5} = 0b111;
14423 let Inst{13-13} = 0b0;
14424 let Inst{31-21} = 0b11101000010;
14425 let prefersSlot3 = 1;
14426 let Defs = [USR_OVF];
14427 }
14428 def M2_mmpyuh_s1 : HInst<
14429 (outs DoubleRegs:$Rdd32),
14430 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14431 "$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14432 tc_bafaade3, TypeM>, Enc_a56825 {
14433 let Inst{7-5} = 0b111;
14434 let Inst{13-13} = 0b0;
14435 let Inst{31-21} = 0b11101000110;
14436 let prefersSlot3 = 1;
14437 let Defs = [USR_OVF];
14438 }
14439 def M2_mmpyul_rs0 : HInst<
14440 (outs DoubleRegs:$Rdd32),
14441 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14442 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14443 tc_bafaade3, TypeM>, Enc_a56825 {
14444 let Inst{7-5} = 0b101;
14445 let Inst{13-13} = 0b0;
14446 let Inst{31-21} = 0b11101000011;
14447 let prefersSlot3 = 1;
14448 let Defs = [USR_OVF];
14449 }
14450 def M2_mmpyul_rs1 : HInst<
14451 (outs DoubleRegs:$Rdd32),
14452 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14453 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14454 tc_bafaade3, TypeM>, Enc_a56825 {
14455 let Inst{7-5} = 0b101;
14456 let Inst{13-13} = 0b0;
14457 let Inst{31-21} = 0b11101000111;
14458 let prefersSlot3 = 1;
14459 let Defs = [USR_OVF];
14460 }
14461 def M2_mmpyul_s0 : HInst<
14462 (outs DoubleRegs:$Rdd32),
14463 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14464 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14465 tc_bafaade3, TypeM>, Enc_a56825 {
14466 let Inst{7-5} = 0b101;
14467 let Inst{13-13} = 0b0;
14468 let Inst{31-21} = 0b11101000010;
14469 let prefersSlot3 = 1;
14470 let Defs = [USR_OVF];
14471 }
14472 def M2_mmpyul_s1 : HInst<
14473 (outs DoubleRegs:$Rdd32),
14474 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14475 "$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14476 tc_bafaade3, TypeM>, Enc_a56825 {
14477 let Inst{7-5} = 0b101;
14478 let Inst{13-13} = 0b0;
14479 let Inst{31-21} = 0b11101000110;
14480 let prefersSlot3 = 1;
14481 let Defs = [USR_OVF];
14482 }
14483 def M2_mnaci : HInst<
14484 (outs IntRegs:$Rx32),
14485 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14486 "$Rx32 -= mpyi($Rs32,$Rt32)",
14487 tc_bdceeac1, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14488 let Inst{7-5} = 0b000;
14489 let Inst{13-13} = 0b0;
14490 let Inst{31-21} = 0b11101111100;
14491 let hasNewValue = 1;
14492 let opNewValue = 0;
14493 let prefersSlot3 = 1;
14494 let Constraints = "$Rx32 = $Rx32in";
14495 }
14496 def M2_mpy_acc_hh_s0 : HInst<
14497 (outs IntRegs:$Rx32),
14498 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14499 "$Rx32 += mpy($Rs32.h,$Rt32.h)",
14500 tc_d773585a, TypeM>, Enc_2ae154 {
14501 let Inst{7-5} = 0b011;
14502 let Inst{13-13} = 0b0;
14503 let Inst{31-21} = 0b11101110000;
14504 let hasNewValue = 1;
14505 let opNewValue = 0;
14506 let prefersSlot3 = 1;
14507 let Constraints = "$Rx32 = $Rx32in";
14508 }
14509 def M2_mpy_acc_hh_s1 : HInst<
14510 (outs IntRegs:$Rx32),
14511 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14512 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14513 tc_d773585a, TypeM>, Enc_2ae154 {
14514 let Inst{7-5} = 0b011;
14515 let Inst{13-13} = 0b0;
14516 let Inst{31-21} = 0b11101110100;
14517 let hasNewValue = 1;
14518 let opNewValue = 0;
14519 let prefersSlot3 = 1;
14520 let Constraints = "$Rx32 = $Rx32in";
14521 }
14522 def M2_mpy_acc_hl_s0 : HInst<
14523 (outs IntRegs:$Rx32),
14524 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14525 "$Rx32 += mpy($Rs32.h,$Rt32.l)",
14526 tc_d773585a, TypeM>, Enc_2ae154 {
14527 let Inst{7-5} = 0b010;
14528 let Inst{13-13} = 0b0;
14529 let Inst{31-21} = 0b11101110000;
14530 let hasNewValue = 1;
14531 let opNewValue = 0;
14532 let prefersSlot3 = 1;
14533 let Constraints = "$Rx32 = $Rx32in";
14534 }
14535 def M2_mpy_acc_hl_s1 : HInst<
14536 (outs IntRegs:$Rx32),
14537 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14538 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14539 tc_d773585a, TypeM>, Enc_2ae154 {
14540 let Inst{7-5} = 0b010;
14541 let Inst{13-13} = 0b0;
14542 let Inst{31-21} = 0b11101110100;
14543 let hasNewValue = 1;
14544 let opNewValue = 0;
14545 let prefersSlot3 = 1;
14546 let Constraints = "$Rx32 = $Rx32in";
14547 }
14548 def M2_mpy_acc_lh_s0 : HInst<
14549 (outs IntRegs:$Rx32),
14550 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14551 "$Rx32 += mpy($Rs32.l,$Rt32.h)",
14552 tc_d773585a, TypeM>, Enc_2ae154 {
14553 let Inst{7-5} = 0b001;
14554 let Inst{13-13} = 0b0;
14555 let Inst{31-21} = 0b11101110000;
14556 let hasNewValue = 1;
14557 let opNewValue = 0;
14558 let prefersSlot3 = 1;
14559 let Constraints = "$Rx32 = $Rx32in";
14560 }
14561 def M2_mpy_acc_lh_s1 : HInst<
14562 (outs IntRegs:$Rx32),
14563 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14564 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14565 tc_d773585a, TypeM>, Enc_2ae154 {
14566 let Inst{7-5} = 0b001;
14567 let Inst{13-13} = 0b0;
14568 let Inst{31-21} = 0b11101110100;
14569 let hasNewValue = 1;
14570 let opNewValue = 0;
14571 let prefersSlot3 = 1;
14572 let Constraints = "$Rx32 = $Rx32in";
14573 }
14574 def M2_mpy_acc_ll_s0 : HInst<
14575 (outs IntRegs:$Rx32),
14576 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14577 "$Rx32 += mpy($Rs32.l,$Rt32.l)",
14578 tc_d773585a, TypeM>, Enc_2ae154 {
14579 let Inst{7-5} = 0b000;
14580 let Inst{13-13} = 0b0;
14581 let Inst{31-21} = 0b11101110000;
14582 let hasNewValue = 1;
14583 let opNewValue = 0;
14584 let prefersSlot3 = 1;
14585 let Constraints = "$Rx32 = $Rx32in";
14586 }
14587 def M2_mpy_acc_ll_s1 : HInst<
14588 (outs IntRegs:$Rx32),
14589 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14590 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14591 tc_d773585a, TypeM>, Enc_2ae154 {
14592 let Inst{7-5} = 0b000;
14593 let Inst{13-13} = 0b0;
14594 let Inst{31-21} = 0b11101110100;
14595 let hasNewValue = 1;
14596 let opNewValue = 0;
14597 let prefersSlot3 = 1;
14598 let Constraints = "$Rx32 = $Rx32in";
14599 }
14600 def M2_mpy_acc_sat_hh_s0 : HInst<
14601 (outs IntRegs:$Rx32),
14602 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14603 "$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14604 tc_d773585a, TypeM>, Enc_2ae154 {
14605 let Inst{7-5} = 0b111;
14606 let Inst{13-13} = 0b0;
14607 let Inst{31-21} = 0b11101110000;
14608 let hasNewValue = 1;
14609 let opNewValue = 0;
14610 let prefersSlot3 = 1;
14611 let Defs = [USR_OVF];
14612 let Constraints = "$Rx32 = $Rx32in";
14613 }
14614 def M2_mpy_acc_sat_hh_s1 : HInst<
14615 (outs IntRegs:$Rx32),
14616 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14617 "$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14618 tc_d773585a, TypeM>, Enc_2ae154 {
14619 let Inst{7-5} = 0b111;
14620 let Inst{13-13} = 0b0;
14621 let Inst{31-21} = 0b11101110100;
14622 let hasNewValue = 1;
14623 let opNewValue = 0;
14624 let prefersSlot3 = 1;
14625 let Defs = [USR_OVF];
14626 let Constraints = "$Rx32 = $Rx32in";
14627 }
14628 def M2_mpy_acc_sat_hl_s0 : HInst<
14629 (outs IntRegs:$Rx32),
14630 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14631 "$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14632 tc_d773585a, TypeM>, Enc_2ae154 {
14633 let Inst{7-5} = 0b110;
14634 let Inst{13-13} = 0b0;
14635 let Inst{31-21} = 0b11101110000;
14636 let hasNewValue = 1;
14637 let opNewValue = 0;
14638 let prefersSlot3 = 1;
14639 let Defs = [USR_OVF];
14640 let Constraints = "$Rx32 = $Rx32in";
14641 }
14642 def M2_mpy_acc_sat_hl_s1 : HInst<
14643 (outs IntRegs:$Rx32),
14644 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14645 "$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14646 tc_d773585a, TypeM>, Enc_2ae154 {
14647 let Inst{7-5} = 0b110;
14648 let Inst{13-13} = 0b0;
14649 let Inst{31-21} = 0b11101110100;
14650 let hasNewValue = 1;
14651 let opNewValue = 0;
14652 let prefersSlot3 = 1;
14653 let Defs = [USR_OVF];
14654 let Constraints = "$Rx32 = $Rx32in";
14655 }
14656 def M2_mpy_acc_sat_lh_s0 : HInst<
14657 (outs IntRegs:$Rx32),
14658 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14659 "$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14660 tc_d773585a, TypeM>, Enc_2ae154 {
14661 let Inst{7-5} = 0b101;
14662 let Inst{13-13} = 0b0;
14663 let Inst{31-21} = 0b11101110000;
14664 let hasNewValue = 1;
14665 let opNewValue = 0;
14666 let prefersSlot3 = 1;
14667 let Defs = [USR_OVF];
14668 let Constraints = "$Rx32 = $Rx32in";
14669 }
14670 def M2_mpy_acc_sat_lh_s1 : HInst<
14671 (outs IntRegs:$Rx32),
14672 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14673 "$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14674 tc_d773585a, TypeM>, Enc_2ae154 {
14675 let Inst{7-5} = 0b101;
14676 let Inst{13-13} = 0b0;
14677 let Inst{31-21} = 0b11101110100;
14678 let hasNewValue = 1;
14679 let opNewValue = 0;
14680 let prefersSlot3 = 1;
14681 let Defs = [USR_OVF];
14682 let Constraints = "$Rx32 = $Rx32in";
14683 }
14684 def M2_mpy_acc_sat_ll_s0 : HInst<
14685 (outs IntRegs:$Rx32),
14686 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14687 "$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14688 tc_d773585a, TypeM>, Enc_2ae154 {
14689 let Inst{7-5} = 0b100;
14690 let Inst{13-13} = 0b0;
14691 let Inst{31-21} = 0b11101110000;
14692 let hasNewValue = 1;
14693 let opNewValue = 0;
14694 let prefersSlot3 = 1;
14695 let Defs = [USR_OVF];
14696 let Constraints = "$Rx32 = $Rx32in";
14697 }
14698 def M2_mpy_acc_sat_ll_s1 : HInst<
14699 (outs IntRegs:$Rx32),
14700 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14701 "$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14702 tc_d773585a, TypeM>, Enc_2ae154 {
14703 let Inst{7-5} = 0b100;
14704 let Inst{13-13} = 0b0;
14705 let Inst{31-21} = 0b11101110100;
14706 let hasNewValue = 1;
14707 let opNewValue = 0;
14708 let prefersSlot3 = 1;
14709 let Defs = [USR_OVF];
14710 let Constraints = "$Rx32 = $Rx32in";
14711 }
14712 def M2_mpy_hh_s0 : HInst<
14713 (outs IntRegs:$Rd32),
14714 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14715 "$Rd32 = mpy($Rs32.h,$Rt32.h)",
14716 tc_bafaade3, TypeM>, Enc_5ab2be {
14717 let Inst{7-5} = 0b011;
14718 let Inst{13-13} = 0b0;
14719 let Inst{31-21} = 0b11101100000;
14720 let hasNewValue = 1;
14721 let opNewValue = 0;
14722 let prefersSlot3 = 1;
14723 }
14724 def M2_mpy_hh_s1 : HInst<
14725 (outs IntRegs:$Rd32),
14726 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14727 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14728 tc_bafaade3, TypeM>, Enc_5ab2be {
14729 let Inst{7-5} = 0b011;
14730 let Inst{13-13} = 0b0;
14731 let Inst{31-21} = 0b11101100100;
14732 let hasNewValue = 1;
14733 let opNewValue = 0;
14734 let prefersSlot3 = 1;
14735 }
14736 def M2_mpy_hl_s0 : HInst<
14737 (outs IntRegs:$Rd32),
14738 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14739 "$Rd32 = mpy($Rs32.h,$Rt32.l)",
14740 tc_bafaade3, TypeM>, Enc_5ab2be {
14741 let Inst{7-5} = 0b010;
14742 let Inst{13-13} = 0b0;
14743 let Inst{31-21} = 0b11101100000;
14744 let hasNewValue = 1;
14745 let opNewValue = 0;
14746 let prefersSlot3 = 1;
14747 }
14748 def M2_mpy_hl_s1 : HInst<
14749 (outs IntRegs:$Rd32),
14750 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14751 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14752 tc_bafaade3, TypeM>, Enc_5ab2be {
14753 let Inst{7-5} = 0b010;
14754 let Inst{13-13} = 0b0;
14755 let Inst{31-21} = 0b11101100100;
14756 let hasNewValue = 1;
14757 let opNewValue = 0;
14758 let prefersSlot3 = 1;
14759 }
14760 def M2_mpy_lh_s0 : HInst<
14761 (outs IntRegs:$Rd32),
14762 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14763 "$Rd32 = mpy($Rs32.l,$Rt32.h)",
14764 tc_bafaade3, TypeM>, Enc_5ab2be {
14765 let Inst{7-5} = 0b001;
14766 let Inst{13-13} = 0b0;
14767 let Inst{31-21} = 0b11101100000;
14768 let hasNewValue = 1;
14769 let opNewValue = 0;
14770 let prefersSlot3 = 1;
14771 }
14772 def M2_mpy_lh_s1 : HInst<
14773 (outs IntRegs:$Rd32),
14774 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14775 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14776 tc_bafaade3, TypeM>, Enc_5ab2be {
14777 let Inst{7-5} = 0b001;
14778 let Inst{13-13} = 0b0;
14779 let Inst{31-21} = 0b11101100100;
14780 let hasNewValue = 1;
14781 let opNewValue = 0;
14782 let prefersSlot3 = 1;
14783 }
14784 def M2_mpy_ll_s0 : HInst<
14785 (outs IntRegs:$Rd32),
14786 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14787 "$Rd32 = mpy($Rs32.l,$Rt32.l)",
14788 tc_bafaade3, TypeM>, Enc_5ab2be {
14789 let Inst{7-5} = 0b000;
14790 let Inst{13-13} = 0b0;
14791 let Inst{31-21} = 0b11101100000;
14792 let hasNewValue = 1;
14793 let opNewValue = 0;
14794 let prefersSlot3 = 1;
14795 }
14796 def M2_mpy_ll_s1 : HInst<
14797 (outs IntRegs:$Rd32),
14798 (ins IntRegs:$Rs32, IntRegs:$Rt32),
14799 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14800 tc_bafaade3, TypeM>, Enc_5ab2be {
14801 let Inst{7-5} = 0b000;
14802 let Inst{13-13} = 0b0;
14803 let Inst{31-21} = 0b11101100100;
14804 let hasNewValue = 1;
14805 let opNewValue = 0;
14806 let prefersSlot3 = 1;
14807 }
14808 def M2_mpy_nac_hh_s0 : HInst<
14809 (outs IntRegs:$Rx32),
14810 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14811 "$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14812 tc_d773585a, TypeM>, Enc_2ae154 {
14813 let Inst{7-5} = 0b011;
14814 let Inst{13-13} = 0b0;
14815 let Inst{31-21} = 0b11101110001;
14816 let hasNewValue = 1;
14817 let opNewValue = 0;
14818 let prefersSlot3 = 1;
14819 let Constraints = "$Rx32 = $Rx32in";
14820 }
14821 def M2_mpy_nac_hh_s1 : HInst<
14822 (outs IntRegs:$Rx32),
14823 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14824 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14825 tc_d773585a, TypeM>, Enc_2ae154 {
14826 let Inst{7-5} = 0b011;
14827 let Inst{13-13} = 0b0;
14828 let Inst{31-21} = 0b11101110101;
14829 let hasNewValue = 1;
14830 let opNewValue = 0;
14831 let prefersSlot3 = 1;
14832 let Constraints = "$Rx32 = $Rx32in";
14833 }
14834 def M2_mpy_nac_hl_s0 : HInst<
14835 (outs IntRegs:$Rx32),
14836 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14837 "$Rx32 -= mpy($Rs32.h,$Rt32.l)",
14838 tc_d773585a, TypeM>, Enc_2ae154 {
14839 let Inst{7-5} = 0b010;
14840 let Inst{13-13} = 0b0;
14841 let Inst{31-21} = 0b11101110001;
14842 let hasNewValue = 1;
14843 let opNewValue = 0;
14844 let prefersSlot3 = 1;
14845 let Constraints = "$Rx32 = $Rx32in";
14846 }
14847 def M2_mpy_nac_hl_s1 : HInst<
14848 (outs IntRegs:$Rx32),
14849 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14850 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
14851 tc_d773585a, TypeM>, Enc_2ae154 {
14852 let Inst{7-5} = 0b010;
14853 let Inst{13-13} = 0b0;
14854 let Inst{31-21} = 0b11101110101;
14855 let hasNewValue = 1;
14856 let opNewValue = 0;
14857 let prefersSlot3 = 1;
14858 let Constraints = "$Rx32 = $Rx32in";
14859 }
14860 def M2_mpy_nac_lh_s0 : HInst<
14861 (outs IntRegs:$Rx32),
14862 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14863 "$Rx32 -= mpy($Rs32.l,$Rt32.h)",
14864 tc_d773585a, TypeM>, Enc_2ae154 {
14865 let Inst{7-5} = 0b001;
14866 let Inst{13-13} = 0b0;
14867 let Inst{31-21} = 0b11101110001;
14868 let hasNewValue = 1;
14869 let opNewValue = 0;
14870 let prefersSlot3 = 1;
14871 let Constraints = "$Rx32 = $Rx32in";
14872 }
14873 def M2_mpy_nac_lh_s1 : HInst<
14874 (outs IntRegs:$Rx32),
14875 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14876 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
14877 tc_d773585a, TypeM>, Enc_2ae154 {
14878 let Inst{7-5} = 0b001;
14879 let Inst{13-13} = 0b0;
14880 let Inst{31-21} = 0b11101110101;
14881 let hasNewValue = 1;
14882 let opNewValue = 0;
14883 let prefersSlot3 = 1;
14884 let Constraints = "$Rx32 = $Rx32in";
14885 }
14886 def M2_mpy_nac_ll_s0 : HInst<
14887 (outs IntRegs:$Rx32),
14888 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14889 "$Rx32 -= mpy($Rs32.l,$Rt32.l)",
14890 tc_d773585a, TypeM>, Enc_2ae154 {
14891 let Inst{7-5} = 0b000;
14892 let Inst{13-13} = 0b0;
14893 let Inst{31-21} = 0b11101110001;
14894 let hasNewValue = 1;
14895 let opNewValue = 0;
14896 let prefersSlot3 = 1;
14897 let Constraints = "$Rx32 = $Rx32in";
14898 }
14899 def M2_mpy_nac_ll_s1 : HInst<
14900 (outs IntRegs:$Rx32),
14901 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14902 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
14903 tc_d773585a, TypeM>, Enc_2ae154 {
14904 let Inst{7-5} = 0b000;
14905 let Inst{13-13} = 0b0;
14906 let Inst{31-21} = 0b11101110101;
14907 let hasNewValue = 1;
14908 let opNewValue = 0;
14909 let prefersSlot3 = 1;
14910 let Constraints = "$Rx32 = $Rx32in";
14911 }
14912 def M2_mpy_nac_sat_hh_s0 : HInst<
14913 (outs IntRegs:$Rx32),
14914 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14915 "$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
14916 tc_d773585a, TypeM>, Enc_2ae154 {
14917 let Inst{7-5} = 0b111;
14918 let Inst{13-13} = 0b0;
14919 let Inst{31-21} = 0b11101110001;
14920 let hasNewValue = 1;
14921 let opNewValue = 0;
14922 let prefersSlot3 = 1;
14923 let Defs = [USR_OVF];
14924 let Constraints = "$Rx32 = $Rx32in";
14925 }
14926 def M2_mpy_nac_sat_hh_s1 : HInst<
14927 (outs IntRegs:$Rx32),
14928 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14929 "$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
14930 tc_d773585a, TypeM>, Enc_2ae154 {
14931 let Inst{7-5} = 0b111;
14932 let Inst{13-13} = 0b0;
14933 let Inst{31-21} = 0b11101110101;
14934 let hasNewValue = 1;
14935 let opNewValue = 0;
14936 let prefersSlot3 = 1;
14937 let Defs = [USR_OVF];
14938 let Constraints = "$Rx32 = $Rx32in";
14939 }
14940 def M2_mpy_nac_sat_hl_s0 : HInst<
14941 (outs IntRegs:$Rx32),
14942 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14943 "$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
14944 tc_d773585a, TypeM>, Enc_2ae154 {
14945 let Inst{7-5} = 0b110;
14946 let Inst{13-13} = 0b0;
14947 let Inst{31-21} = 0b11101110001;
14948 let hasNewValue = 1;
14949 let opNewValue = 0;
14950 let prefersSlot3 = 1;
14951 let Defs = [USR_OVF];
14952 let Constraints = "$Rx32 = $Rx32in";
14953 }
14954 def M2_mpy_nac_sat_hl_s1 : HInst<
14955 (outs IntRegs:$Rx32),
14956 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14957 "$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
14958 tc_d773585a, TypeM>, Enc_2ae154 {
14959 let Inst{7-5} = 0b110;
14960 let Inst{13-13} = 0b0;
14961 let Inst{31-21} = 0b11101110101;
14962 let hasNewValue = 1;
14963 let opNewValue = 0;
14964 let prefersSlot3 = 1;
14965 let Defs = [USR_OVF];
14966 let Constraints = "$Rx32 = $Rx32in";
14967 }
14968 def M2_mpy_nac_sat_lh_s0 : HInst<
14969 (outs IntRegs:$Rx32),
14970 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14971 "$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
14972 tc_d773585a, TypeM>, Enc_2ae154 {
14973 let Inst{7-5} = 0b101;
14974 let Inst{13-13} = 0b0;
14975 let Inst{31-21} = 0b11101110001;
14976 let hasNewValue = 1;
14977 let opNewValue = 0;
14978 let prefersSlot3 = 1;
14979 let Defs = [USR_OVF];
14980 let Constraints = "$Rx32 = $Rx32in";
14981 }
14982 def M2_mpy_nac_sat_lh_s1 : HInst<
14983 (outs IntRegs:$Rx32),
14984 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14985 "$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
14986 tc_d773585a, TypeM>, Enc_2ae154 {
14987 let Inst{7-5} = 0b101;
14988 let Inst{13-13} = 0b0;
14989 let Inst{31-21} = 0b11101110101;
14990 let hasNewValue = 1;
14991 let opNewValue = 0;
14992 let prefersSlot3 = 1;
14993 let Defs = [USR_OVF];
14994 let Constraints = "$Rx32 = $Rx32in";
14995 }
14996 def M2_mpy_nac_sat_ll_s0 : HInst<
14997 (outs IntRegs:$Rx32),
14998 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14999 "$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
15000 tc_d773585a, TypeM>, Enc_2ae154 {
15001 let Inst{7-5} = 0b100;
15002 let Inst{13-13} = 0b0;
15003 let Inst{31-21} = 0b11101110001;
15004 let hasNewValue = 1;
15005 let opNewValue = 0;
15006 let prefersSlot3 = 1;
15007 let Defs = [USR_OVF];
15008 let Constraints = "$Rx32 = $Rx32in";
15009 }
15010 def M2_mpy_nac_sat_ll_s1 : HInst<
15011 (outs IntRegs:$Rx32),
15012 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15013 "$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15014 tc_d773585a, TypeM>, Enc_2ae154 {
15015 let Inst{7-5} = 0b100;
15016 let Inst{13-13} = 0b0;
15017 let Inst{31-21} = 0b11101110101;
15018 let hasNewValue = 1;
15019 let opNewValue = 0;
15020 let prefersSlot3 = 1;
15021 let Defs = [USR_OVF];
15022 let Constraints = "$Rx32 = $Rx32in";
15023 }
15024 def M2_mpy_rnd_hh_s0 : HInst<
15025 (outs IntRegs:$Rd32),
15026 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15027 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15028 tc_bafaade3, TypeM>, Enc_5ab2be {
15029 let Inst{7-5} = 0b011;
15030 let Inst{13-13} = 0b0;
15031 let Inst{31-21} = 0b11101100001;
15032 let hasNewValue = 1;
15033 let opNewValue = 0;
15034 let prefersSlot3 = 1;
15035 }
15036 def M2_mpy_rnd_hh_s1 : HInst<
15037 (outs IntRegs:$Rd32),
15038 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15039 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15040 tc_bafaade3, TypeM>, Enc_5ab2be {
15041 let Inst{7-5} = 0b011;
15042 let Inst{13-13} = 0b0;
15043 let Inst{31-21} = 0b11101100101;
15044 let hasNewValue = 1;
15045 let opNewValue = 0;
15046 let prefersSlot3 = 1;
15047 }
15048 def M2_mpy_rnd_hl_s0 : HInst<
15049 (outs IntRegs:$Rd32),
15050 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15051 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15052 tc_bafaade3, TypeM>, Enc_5ab2be {
15053 let Inst{7-5} = 0b010;
15054 let Inst{13-13} = 0b0;
15055 let Inst{31-21} = 0b11101100001;
15056 let hasNewValue = 1;
15057 let opNewValue = 0;
15058 let prefersSlot3 = 1;
15059 }
15060 def M2_mpy_rnd_hl_s1 : HInst<
15061 (outs IntRegs:$Rd32),
15062 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15063 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15064 tc_bafaade3, TypeM>, Enc_5ab2be {
15065 let Inst{7-5} = 0b010;
15066 let Inst{13-13} = 0b0;
15067 let Inst{31-21} = 0b11101100101;
15068 let hasNewValue = 1;
15069 let opNewValue = 0;
15070 let prefersSlot3 = 1;
15071 }
15072 def M2_mpy_rnd_lh_s0 : HInst<
15073 (outs IntRegs:$Rd32),
15074 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15075 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15076 tc_bafaade3, TypeM>, Enc_5ab2be {
15077 let Inst{7-5} = 0b001;
15078 let Inst{13-13} = 0b0;
15079 let Inst{31-21} = 0b11101100001;
15080 let hasNewValue = 1;
15081 let opNewValue = 0;
15082 let prefersSlot3 = 1;
15083 }
15084 def M2_mpy_rnd_lh_s1 : HInst<
15085 (outs IntRegs:$Rd32),
15086 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15087 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15088 tc_bafaade3, TypeM>, Enc_5ab2be {
15089 let Inst{7-5} = 0b001;
15090 let Inst{13-13} = 0b0;
15091 let Inst{31-21} = 0b11101100101;
15092 let hasNewValue = 1;
15093 let opNewValue = 0;
15094 let prefersSlot3 = 1;
15095 }
15096 def M2_mpy_rnd_ll_s0 : HInst<
15097 (outs IntRegs:$Rd32),
15098 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15099 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15100 tc_bafaade3, TypeM>, Enc_5ab2be {
15101 let Inst{7-5} = 0b000;
15102 let Inst{13-13} = 0b0;
15103 let Inst{31-21} = 0b11101100001;
15104 let hasNewValue = 1;
15105 let opNewValue = 0;
15106 let prefersSlot3 = 1;
15107 }
15108 def M2_mpy_rnd_ll_s1 : HInst<
15109 (outs IntRegs:$Rd32),
15110 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15111 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15112 tc_bafaade3, TypeM>, Enc_5ab2be {
15113 let Inst{7-5} = 0b000;
15114 let Inst{13-13} = 0b0;
15115 let Inst{31-21} = 0b11101100101;
15116 let hasNewValue = 1;
15117 let opNewValue = 0;
15118 let prefersSlot3 = 1;
15119 }
15120 def M2_mpy_sat_hh_s0 : HInst<
15121 (outs IntRegs:$Rd32),
15122 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15123 "$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15124 tc_bafaade3, TypeM>, Enc_5ab2be {
15125 let Inst{7-5} = 0b111;
15126 let Inst{13-13} = 0b0;
15127 let Inst{31-21} = 0b11101100000;
15128 let hasNewValue = 1;
15129 let opNewValue = 0;
15130 let prefersSlot3 = 1;
15131 let Defs = [USR_OVF];
15132 }
15133 def M2_mpy_sat_hh_s1 : HInst<
15134 (outs IntRegs:$Rd32),
15135 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15136 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15137 tc_bafaade3, TypeM>, Enc_5ab2be {
15138 let Inst{7-5} = 0b111;
15139 let Inst{13-13} = 0b0;
15140 let Inst{31-21} = 0b11101100100;
15141 let hasNewValue = 1;
15142 let opNewValue = 0;
15143 let prefersSlot3 = 1;
15144 let Defs = [USR_OVF];
15145 }
15146 def M2_mpy_sat_hl_s0 : HInst<
15147 (outs IntRegs:$Rd32),
15148 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15149 "$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15150 tc_bafaade3, TypeM>, Enc_5ab2be {
15151 let Inst{7-5} = 0b110;
15152 let Inst{13-13} = 0b0;
15153 let Inst{31-21} = 0b11101100000;
15154 let hasNewValue = 1;
15155 let opNewValue = 0;
15156 let prefersSlot3 = 1;
15157 let Defs = [USR_OVF];
15158 }
15159 def M2_mpy_sat_hl_s1 : HInst<
15160 (outs IntRegs:$Rd32),
15161 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15162 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15163 tc_bafaade3, TypeM>, Enc_5ab2be {
15164 let Inst{7-5} = 0b110;
15165 let Inst{13-13} = 0b0;
15166 let Inst{31-21} = 0b11101100100;
15167 let hasNewValue = 1;
15168 let opNewValue = 0;
15169 let prefersSlot3 = 1;
15170 let Defs = [USR_OVF];
15171 }
15172 def M2_mpy_sat_lh_s0 : HInst<
15173 (outs IntRegs:$Rd32),
15174 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15175 "$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15176 tc_bafaade3, TypeM>, Enc_5ab2be {
15177 let Inst{7-5} = 0b101;
15178 let Inst{13-13} = 0b0;
15179 let Inst{31-21} = 0b11101100000;
15180 let hasNewValue = 1;
15181 let opNewValue = 0;
15182 let prefersSlot3 = 1;
15183 let Defs = [USR_OVF];
15184 }
15185 def M2_mpy_sat_lh_s1 : HInst<
15186 (outs IntRegs:$Rd32),
15187 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15188 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15189 tc_bafaade3, TypeM>, Enc_5ab2be {
15190 let Inst{7-5} = 0b101;
15191 let Inst{13-13} = 0b0;
15192 let Inst{31-21} = 0b11101100100;
15193 let hasNewValue = 1;
15194 let opNewValue = 0;
15195 let prefersSlot3 = 1;
15196 let Defs = [USR_OVF];
15197 }
15198 def M2_mpy_sat_ll_s0 : HInst<
15199 (outs IntRegs:$Rd32),
15200 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15201 "$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15202 tc_bafaade3, TypeM>, Enc_5ab2be {
15203 let Inst{7-5} = 0b100;
15204 let Inst{13-13} = 0b0;
15205 let Inst{31-21} = 0b11101100000;
15206 let hasNewValue = 1;
15207 let opNewValue = 0;
15208 let prefersSlot3 = 1;
15209 let Defs = [USR_OVF];
15210 }
15211 def M2_mpy_sat_ll_s1 : HInst<
15212 (outs IntRegs:$Rd32),
15213 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15214 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15215 tc_bafaade3, TypeM>, Enc_5ab2be {
15216 let Inst{7-5} = 0b100;
15217 let Inst{13-13} = 0b0;
15218 let Inst{31-21} = 0b11101100100;
15219 let hasNewValue = 1;
15220 let opNewValue = 0;
15221 let prefersSlot3 = 1;
15222 let Defs = [USR_OVF];
15223 }
15224 def M2_mpy_sat_rnd_hh_s0 : HInst<
15225 (outs IntRegs:$Rd32),
15226 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15227 "$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15228 tc_bafaade3, TypeM>, Enc_5ab2be {
15229 let Inst{7-5} = 0b111;
15230 let Inst{13-13} = 0b0;
15231 let Inst{31-21} = 0b11101100001;
15232 let hasNewValue = 1;
15233 let opNewValue = 0;
15234 let prefersSlot3 = 1;
15235 let Defs = [USR_OVF];
15236 }
15237 def M2_mpy_sat_rnd_hh_s1 : HInst<
15238 (outs IntRegs:$Rd32),
15239 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15240 "$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15241 tc_bafaade3, TypeM>, Enc_5ab2be {
15242 let Inst{7-5} = 0b111;
15243 let Inst{13-13} = 0b0;
15244 let Inst{31-21} = 0b11101100101;
15245 let hasNewValue = 1;
15246 let opNewValue = 0;
15247 let prefersSlot3 = 1;
15248 let Defs = [USR_OVF];
15249 }
15250 def M2_mpy_sat_rnd_hl_s0 : HInst<
15251 (outs IntRegs:$Rd32),
15252 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15253 "$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15254 tc_bafaade3, TypeM>, Enc_5ab2be {
15255 let Inst{7-5} = 0b110;
15256 let Inst{13-13} = 0b0;
15257 let Inst{31-21} = 0b11101100001;
15258 let hasNewValue = 1;
15259 let opNewValue = 0;
15260 let prefersSlot3 = 1;
15261 let Defs = [USR_OVF];
15262 }
15263 def M2_mpy_sat_rnd_hl_s1 : HInst<
15264 (outs IntRegs:$Rd32),
15265 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15266 "$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15267 tc_bafaade3, TypeM>, Enc_5ab2be {
15268 let Inst{7-5} = 0b110;
15269 let Inst{13-13} = 0b0;
15270 let Inst{31-21} = 0b11101100101;
15271 let hasNewValue = 1;
15272 let opNewValue = 0;
15273 let prefersSlot3 = 1;
15274 let Defs = [USR_OVF];
15275 }
15276 def M2_mpy_sat_rnd_lh_s0 : HInst<
15277 (outs IntRegs:$Rd32),
15278 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15279 "$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15280 tc_bafaade3, TypeM>, Enc_5ab2be {
15281 let Inst{7-5} = 0b101;
15282 let Inst{13-13} = 0b0;
15283 let Inst{31-21} = 0b11101100001;
15284 let hasNewValue = 1;
15285 let opNewValue = 0;
15286 let prefersSlot3 = 1;
15287 let Defs = [USR_OVF];
15288 }
15289 def M2_mpy_sat_rnd_lh_s1 : HInst<
15290 (outs IntRegs:$Rd32),
15291 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15292 "$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15293 tc_bafaade3, TypeM>, Enc_5ab2be {
15294 let Inst{7-5} = 0b101;
15295 let Inst{13-13} = 0b0;
15296 let Inst{31-21} = 0b11101100101;
15297 let hasNewValue = 1;
15298 let opNewValue = 0;
15299 let prefersSlot3 = 1;
15300 let Defs = [USR_OVF];
15301 }
15302 def M2_mpy_sat_rnd_ll_s0 : HInst<
15303 (outs IntRegs:$Rd32),
15304 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15305 "$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15306 tc_bafaade3, TypeM>, Enc_5ab2be {
15307 let Inst{7-5} = 0b100;
15308 let Inst{13-13} = 0b0;
15309 let Inst{31-21} = 0b11101100001;
15310 let hasNewValue = 1;
15311 let opNewValue = 0;
15312 let prefersSlot3 = 1;
15313 let Defs = [USR_OVF];
15314 }
15315 def M2_mpy_sat_rnd_ll_s1 : HInst<
15316 (outs IntRegs:$Rd32),
15317 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15318 "$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15319 tc_bafaade3, TypeM>, Enc_5ab2be {
15320 let Inst{7-5} = 0b100;
15321 let Inst{13-13} = 0b0;
15322 let Inst{31-21} = 0b11101100101;
15323 let hasNewValue = 1;
15324 let opNewValue = 0;
15325 let prefersSlot3 = 1;
15326 let Defs = [USR_OVF];
15327 }
15328 def M2_mpy_up : HInst<
15329 (outs IntRegs:$Rd32),
15330 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15331 "$Rd32 = mpy($Rs32,$Rt32)",
15332 tc_bafaade3, TypeM>, Enc_5ab2be {
15333 let Inst{7-5} = 0b001;
15334 let Inst{13-13} = 0b0;
15335 let Inst{31-21} = 0b11101101000;
15336 let hasNewValue = 1;
15337 let opNewValue = 0;
15338 let prefersSlot3 = 1;
15339 }
15340 def M2_mpy_up_s1 : HInst<
15341 (outs IntRegs:$Rd32),
15342 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15343 "$Rd32 = mpy($Rs32,$Rt32):<<1",
15344 tc_bafaade3, TypeM>, Enc_5ab2be {
15345 let Inst{7-5} = 0b010;
15346 let Inst{13-13} = 0b0;
15347 let Inst{31-21} = 0b11101101101;
15348 let hasNewValue = 1;
15349 let opNewValue = 0;
15350 let prefersSlot3 = 1;
15351 }
15352 def M2_mpy_up_s1_sat : HInst<
15353 (outs IntRegs:$Rd32),
15354 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15355 "$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15356 tc_bafaade3, TypeM>, Enc_5ab2be {
15357 let Inst{7-5} = 0b000;
15358 let Inst{13-13} = 0b0;
15359 let Inst{31-21} = 0b11101101111;
15360 let hasNewValue = 1;
15361 let opNewValue = 0;
15362 let prefersSlot3 = 1;
15363 let Defs = [USR_OVF];
15364 }
15365 def M2_mpyd_acc_hh_s0 : HInst<
15366 (outs DoubleRegs:$Rxx32),
15367 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15368 "$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15369 tc_d773585a, TypeM>, Enc_61f0b0 {
15370 let Inst{7-5} = 0b011;
15371 let Inst{13-13} = 0b0;
15372 let Inst{31-21} = 0b11100110000;
15373 let prefersSlot3 = 1;
15374 let Constraints = "$Rxx32 = $Rxx32in";
15375 }
15376 def M2_mpyd_acc_hh_s1 : HInst<
15377 (outs DoubleRegs:$Rxx32),
15378 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15379 "$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15380 tc_d773585a, TypeM>, Enc_61f0b0 {
15381 let Inst{7-5} = 0b011;
15382 let Inst{13-13} = 0b0;
15383 let Inst{31-21} = 0b11100110100;
15384 let prefersSlot3 = 1;
15385 let Constraints = "$Rxx32 = $Rxx32in";
15386 }
15387 def M2_mpyd_acc_hl_s0 : HInst<
15388 (outs DoubleRegs:$Rxx32),
15389 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15390 "$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15391 tc_d773585a, TypeM>, Enc_61f0b0 {
15392 let Inst{7-5} = 0b010;
15393 let Inst{13-13} = 0b0;
15394 let Inst{31-21} = 0b11100110000;
15395 let prefersSlot3 = 1;
15396 let Constraints = "$Rxx32 = $Rxx32in";
15397 }
15398 def M2_mpyd_acc_hl_s1 : HInst<
15399 (outs DoubleRegs:$Rxx32),
15400 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15401 "$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15402 tc_d773585a, TypeM>, Enc_61f0b0 {
15403 let Inst{7-5} = 0b010;
15404 let Inst{13-13} = 0b0;
15405 let Inst{31-21} = 0b11100110100;
15406 let prefersSlot3 = 1;
15407 let Constraints = "$Rxx32 = $Rxx32in";
15408 }
15409 def M2_mpyd_acc_lh_s0 : HInst<
15410 (outs DoubleRegs:$Rxx32),
15411 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15412 "$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15413 tc_d773585a, TypeM>, Enc_61f0b0 {
15414 let Inst{7-5} = 0b001;
15415 let Inst{13-13} = 0b0;
15416 let Inst{31-21} = 0b11100110000;
15417 let prefersSlot3 = 1;
15418 let Constraints = "$Rxx32 = $Rxx32in";
15419 }
15420 def M2_mpyd_acc_lh_s1 : HInst<
15421 (outs DoubleRegs:$Rxx32),
15422 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15423 "$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15424 tc_d773585a, TypeM>, Enc_61f0b0 {
15425 let Inst{7-5} = 0b001;
15426 let Inst{13-13} = 0b0;
15427 let Inst{31-21} = 0b11100110100;
15428 let prefersSlot3 = 1;
15429 let Constraints = "$Rxx32 = $Rxx32in";
15430 }
15431 def M2_mpyd_acc_ll_s0 : HInst<
15432 (outs DoubleRegs:$Rxx32),
15433 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15434 "$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15435 tc_d773585a, TypeM>, Enc_61f0b0 {
15436 let Inst{7-5} = 0b000;
15437 let Inst{13-13} = 0b0;
15438 let Inst{31-21} = 0b11100110000;
15439 let prefersSlot3 = 1;
15440 let Constraints = "$Rxx32 = $Rxx32in";
15441 }
15442 def M2_mpyd_acc_ll_s1 : HInst<
15443 (outs DoubleRegs:$Rxx32),
15444 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15445 "$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15446 tc_d773585a, TypeM>, Enc_61f0b0 {
15447 let Inst{7-5} = 0b000;
15448 let Inst{13-13} = 0b0;
15449 let Inst{31-21} = 0b11100110100;
15450 let prefersSlot3 = 1;
15451 let Constraints = "$Rxx32 = $Rxx32in";
15452 }
15453 def M2_mpyd_hh_s0 : HInst<
15454 (outs DoubleRegs:$Rdd32),
15455 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15456 "$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15457 tc_bafaade3, TypeM>, Enc_be32a5 {
15458 let Inst{7-5} = 0b011;
15459 let Inst{13-13} = 0b0;
15460 let Inst{31-21} = 0b11100100000;
15461 let prefersSlot3 = 1;
15462 }
15463 def M2_mpyd_hh_s1 : HInst<
15464 (outs DoubleRegs:$Rdd32),
15465 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15466 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15467 tc_bafaade3, TypeM>, Enc_be32a5 {
15468 let Inst{7-5} = 0b011;
15469 let Inst{13-13} = 0b0;
15470 let Inst{31-21} = 0b11100100100;
15471 let prefersSlot3 = 1;
15472 }
15473 def M2_mpyd_hl_s0 : HInst<
15474 (outs DoubleRegs:$Rdd32),
15475 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15476 "$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15477 tc_bafaade3, TypeM>, Enc_be32a5 {
15478 let Inst{7-5} = 0b010;
15479 let Inst{13-13} = 0b0;
15480 let Inst{31-21} = 0b11100100000;
15481 let prefersSlot3 = 1;
15482 }
15483 def M2_mpyd_hl_s1 : HInst<
15484 (outs DoubleRegs:$Rdd32),
15485 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15486 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15487 tc_bafaade3, TypeM>, Enc_be32a5 {
15488 let Inst{7-5} = 0b010;
15489 let Inst{13-13} = 0b0;
15490 let Inst{31-21} = 0b11100100100;
15491 let prefersSlot3 = 1;
15492 }
15493 def M2_mpyd_lh_s0 : HInst<
15494 (outs DoubleRegs:$Rdd32),
15495 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15496 "$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15497 tc_bafaade3, TypeM>, Enc_be32a5 {
15498 let Inst{7-5} = 0b001;
15499 let Inst{13-13} = 0b0;
15500 let Inst{31-21} = 0b11100100000;
15501 let prefersSlot3 = 1;
15502 }
15503 def M2_mpyd_lh_s1 : HInst<
15504 (outs DoubleRegs:$Rdd32),
15505 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15506 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15507 tc_bafaade3, TypeM>, Enc_be32a5 {
15508 let Inst{7-5} = 0b001;
15509 let Inst{13-13} = 0b0;
15510 let Inst{31-21} = 0b11100100100;
15511 let prefersSlot3 = 1;
15512 }
15513 def M2_mpyd_ll_s0 : HInst<
15514 (outs DoubleRegs:$Rdd32),
15515 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15516 "$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15517 tc_bafaade3, TypeM>, Enc_be32a5 {
15518 let Inst{7-5} = 0b000;
15519 let Inst{13-13} = 0b0;
15520 let Inst{31-21} = 0b11100100000;
15521 let prefersSlot3 = 1;
15522 }
15523 def M2_mpyd_ll_s1 : HInst<
15524 (outs DoubleRegs:$Rdd32),
15525 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15526 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15527 tc_bafaade3, TypeM>, Enc_be32a5 {
15528 let Inst{7-5} = 0b000;
15529 let Inst{13-13} = 0b0;
15530 let Inst{31-21} = 0b11100100100;
15531 let prefersSlot3 = 1;
15532 }
15533 def M2_mpyd_nac_hh_s0 : HInst<
15534 (outs DoubleRegs:$Rxx32),
15535 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15536 "$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15537 tc_d773585a, TypeM>, Enc_61f0b0 {
15538 let Inst{7-5} = 0b011;
15539 let Inst{13-13} = 0b0;
15540 let Inst{31-21} = 0b11100110001;
15541 let prefersSlot3 = 1;
15542 let Constraints = "$Rxx32 = $Rxx32in";
15543 }
15544 def M2_mpyd_nac_hh_s1 : HInst<
15545 (outs DoubleRegs:$Rxx32),
15546 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15547 "$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15548 tc_d773585a, TypeM>, Enc_61f0b0 {
15549 let Inst{7-5} = 0b011;
15550 let Inst{13-13} = 0b0;
15551 let Inst{31-21} = 0b11100110101;
15552 let prefersSlot3 = 1;
15553 let Constraints = "$Rxx32 = $Rxx32in";
15554 }
15555 def M2_mpyd_nac_hl_s0 : HInst<
15556 (outs DoubleRegs:$Rxx32),
15557 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15558 "$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15559 tc_d773585a, TypeM>, Enc_61f0b0 {
15560 let Inst{7-5} = 0b010;
15561 let Inst{13-13} = 0b0;
15562 let Inst{31-21} = 0b11100110001;
15563 let prefersSlot3 = 1;
15564 let Constraints = "$Rxx32 = $Rxx32in";
15565 }
15566 def M2_mpyd_nac_hl_s1 : HInst<
15567 (outs DoubleRegs:$Rxx32),
15568 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15569 "$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15570 tc_d773585a, TypeM>, Enc_61f0b0 {
15571 let Inst{7-5} = 0b010;
15572 let Inst{13-13} = 0b0;
15573 let Inst{31-21} = 0b11100110101;
15574 let prefersSlot3 = 1;
15575 let Constraints = "$Rxx32 = $Rxx32in";
15576 }
15577 def M2_mpyd_nac_lh_s0 : HInst<
15578 (outs DoubleRegs:$Rxx32),
15579 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15580 "$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15581 tc_d773585a, TypeM>, Enc_61f0b0 {
15582 let Inst{7-5} = 0b001;
15583 let Inst{13-13} = 0b0;
15584 let Inst{31-21} = 0b11100110001;
15585 let prefersSlot3 = 1;
15586 let Constraints = "$Rxx32 = $Rxx32in";
15587 }
15588 def M2_mpyd_nac_lh_s1 : HInst<
15589 (outs DoubleRegs:$Rxx32),
15590 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15591 "$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15592 tc_d773585a, TypeM>, Enc_61f0b0 {
15593 let Inst{7-5} = 0b001;
15594 let Inst{13-13} = 0b0;
15595 let Inst{31-21} = 0b11100110101;
15596 let prefersSlot3 = 1;
15597 let Constraints = "$Rxx32 = $Rxx32in";
15598 }
15599 def M2_mpyd_nac_ll_s0 : HInst<
15600 (outs DoubleRegs:$Rxx32),
15601 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15602 "$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15603 tc_d773585a, TypeM>, Enc_61f0b0 {
15604 let Inst{7-5} = 0b000;
15605 let Inst{13-13} = 0b0;
15606 let Inst{31-21} = 0b11100110001;
15607 let prefersSlot3 = 1;
15608 let Constraints = "$Rxx32 = $Rxx32in";
15609 }
15610 def M2_mpyd_nac_ll_s1 : HInst<
15611 (outs DoubleRegs:$Rxx32),
15612 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15613 "$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15614 tc_d773585a, TypeM>, Enc_61f0b0 {
15615 let Inst{7-5} = 0b000;
15616 let Inst{13-13} = 0b0;
15617 let Inst{31-21} = 0b11100110101;
15618 let prefersSlot3 = 1;
15619 let Constraints = "$Rxx32 = $Rxx32in";
15620 }
15621 def M2_mpyd_rnd_hh_s0 : HInst<
15622 (outs DoubleRegs:$Rdd32),
15623 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15624 "$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15625 tc_bafaade3, TypeM>, Enc_be32a5 {
15626 let Inst{7-5} = 0b011;
15627 let Inst{13-13} = 0b0;
15628 let Inst{31-21} = 0b11100100001;
15629 let prefersSlot3 = 1;
15630 }
15631 def M2_mpyd_rnd_hh_s1 : HInst<
15632 (outs DoubleRegs:$Rdd32),
15633 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15634 "$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15635 tc_bafaade3, TypeM>, Enc_be32a5 {
15636 let Inst{7-5} = 0b011;
15637 let Inst{13-13} = 0b0;
15638 let Inst{31-21} = 0b11100100101;
15639 let prefersSlot3 = 1;
15640 }
15641 def M2_mpyd_rnd_hl_s0 : HInst<
15642 (outs DoubleRegs:$Rdd32),
15643 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15644 "$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15645 tc_bafaade3, TypeM>, Enc_be32a5 {
15646 let Inst{7-5} = 0b010;
15647 let Inst{13-13} = 0b0;
15648 let Inst{31-21} = 0b11100100001;
15649 let prefersSlot3 = 1;
15650 }
15651 def M2_mpyd_rnd_hl_s1 : HInst<
15652 (outs DoubleRegs:$Rdd32),
15653 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15654 "$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15655 tc_bafaade3, TypeM>, Enc_be32a5 {
15656 let Inst{7-5} = 0b010;
15657 let Inst{13-13} = 0b0;
15658 let Inst{31-21} = 0b11100100101;
15659 let prefersSlot3 = 1;
15660 }
15661 def M2_mpyd_rnd_lh_s0 : HInst<
15662 (outs DoubleRegs:$Rdd32),
15663 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15664 "$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15665 tc_bafaade3, TypeM>, Enc_be32a5 {
15666 let Inst{7-5} = 0b001;
15667 let Inst{13-13} = 0b0;
15668 let Inst{31-21} = 0b11100100001;
15669 let prefersSlot3 = 1;
15670 }
15671 def M2_mpyd_rnd_lh_s1 : HInst<
15672 (outs DoubleRegs:$Rdd32),
15673 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15674 "$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15675 tc_bafaade3, TypeM>, Enc_be32a5 {
15676 let Inst{7-5} = 0b001;
15677 let Inst{13-13} = 0b0;
15678 let Inst{31-21} = 0b11100100101;
15679 let prefersSlot3 = 1;
15680 }
15681 def M2_mpyd_rnd_ll_s0 : HInst<
15682 (outs DoubleRegs:$Rdd32),
15683 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15684 "$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15685 tc_bafaade3, TypeM>, Enc_be32a5 {
15686 let Inst{7-5} = 0b000;
15687 let Inst{13-13} = 0b0;
15688 let Inst{31-21} = 0b11100100001;
15689 let prefersSlot3 = 1;
15690 }
15691 def M2_mpyd_rnd_ll_s1 : HInst<
15692 (outs DoubleRegs:$Rdd32),
15693 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15694 "$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15695 tc_bafaade3, TypeM>, Enc_be32a5 {
15696 let Inst{7-5} = 0b000;
15697 let Inst{13-13} = 0b0;
15698 let Inst{31-21} = 0b11100100101;
15699 let prefersSlot3 = 1;
15700 }
15701 def M2_mpyi : HInst<
15702 (outs IntRegs:$Rd32),
15703 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15704 "$Rd32 = mpyi($Rs32,$Rt32)",
15705 tc_bafaade3, TypeM>, Enc_5ab2be, ImmRegRel {
15706 let Inst{7-5} = 0b000;
15707 let Inst{13-13} = 0b0;
15708 let Inst{31-21} = 0b11101101000;
15709 let hasNewValue = 1;
15710 let opNewValue = 0;
15711 let prefersSlot3 = 1;
15712 let CextOpcode = "M2_mpyi";
15713 let InputType = "reg";
15714 }
15715 def M2_mpysin : HInst<
15716 (outs IntRegs:$Rd32),
15717 (ins IntRegs:$Rs32, u8_0Imm:$Ii),
15718 "$Rd32 = -mpyi($Rs32,#$Ii)",
15719 tc_c8ce0b5c, TypeM>, Enc_b8c967 {
15720 let Inst{13-13} = 0b0;
15721 let Inst{31-21} = 0b11100000100;
15722 let hasNewValue = 1;
15723 let opNewValue = 0;
15724 let prefersSlot3 = 1;
15725 }
15726 def M2_mpysip : HInst<
15727 (outs IntRegs:$Rd32),
15728 (ins IntRegs:$Rs32, u32_0Imm:$Ii),
15729 "$Rd32 = +mpyi($Rs32,#$Ii)",
15730 tc_c8ce0b5c, TypeM>, Enc_b8c967 {
15731 let Inst{13-13} = 0b0;
15732 let Inst{31-21} = 0b11100000000;
15733 let hasNewValue = 1;
15734 let opNewValue = 0;
15735 let prefersSlot3 = 1;
15736 let isExtendable = 1;
15737 let opExtendable = 2;
15738 let isExtentSigned = 0;
15739 let opExtentBits = 8;
15740 let opExtentAlign = 0;
15741 }
15742 def M2_mpysmi : HInst<
15743 (outs IntRegs:$Rd32),
15744 (ins IntRegs:$Rs32, m32_0Imm:$Ii),
15745 "$Rd32 = mpyi($Rs32,#$Ii)",
15746 tc_c8ce0b5c, TypeM>, ImmRegRel {
15747 let hasNewValue = 1;
15748 let opNewValue = 0;
15749 let CextOpcode = "M2_mpyi";
15750 let InputType = "imm";
15751 let isPseudo = 1;
15752 let isExtendable = 1;
15753 let opExtendable = 2;
15754 let isExtentSigned = 1;
15755 let opExtentBits = 9;
15756 let opExtentAlign = 0;
15757 }
15758 def M2_mpysu_up : HInst<
15759 (outs IntRegs:$Rd32),
15760 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15761 "$Rd32 = mpysu($Rs32,$Rt32)",
15762 tc_bafaade3, TypeM>, Enc_5ab2be {
15763 let Inst{7-5} = 0b001;
15764 let Inst{13-13} = 0b0;
15765 let Inst{31-21} = 0b11101101011;
15766 let hasNewValue = 1;
15767 let opNewValue = 0;
15768 let prefersSlot3 = 1;
15769 }
15770 def M2_mpyu_acc_hh_s0 : HInst<
15771 (outs IntRegs:$Rx32),
15772 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15773 "$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15774 tc_d773585a, TypeM>, Enc_2ae154 {
15775 let Inst{7-5} = 0b011;
15776 let Inst{13-13} = 0b0;
15777 let Inst{31-21} = 0b11101110010;
15778 let hasNewValue = 1;
15779 let opNewValue = 0;
15780 let prefersSlot3 = 1;
15781 let Constraints = "$Rx32 = $Rx32in";
15782 }
15783 def M2_mpyu_acc_hh_s1 : HInst<
15784 (outs IntRegs:$Rx32),
15785 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15786 "$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15787 tc_d773585a, TypeM>, Enc_2ae154 {
15788 let Inst{7-5} = 0b011;
15789 let Inst{13-13} = 0b0;
15790 let Inst{31-21} = 0b11101110110;
15791 let hasNewValue = 1;
15792 let opNewValue = 0;
15793 let prefersSlot3 = 1;
15794 let Constraints = "$Rx32 = $Rx32in";
15795 }
15796 def M2_mpyu_acc_hl_s0 : HInst<
15797 (outs IntRegs:$Rx32),
15798 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15799 "$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15800 tc_d773585a, TypeM>, Enc_2ae154 {
15801 let Inst{7-5} = 0b010;
15802 let Inst{13-13} = 0b0;
15803 let Inst{31-21} = 0b11101110010;
15804 let hasNewValue = 1;
15805 let opNewValue = 0;
15806 let prefersSlot3 = 1;
15807 let Constraints = "$Rx32 = $Rx32in";
15808 }
15809 def M2_mpyu_acc_hl_s1 : HInst<
15810 (outs IntRegs:$Rx32),
15811 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15812 "$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15813 tc_d773585a, TypeM>, Enc_2ae154 {
15814 let Inst{7-5} = 0b010;
15815 let Inst{13-13} = 0b0;
15816 let Inst{31-21} = 0b11101110110;
15817 let hasNewValue = 1;
15818 let opNewValue = 0;
15819 let prefersSlot3 = 1;
15820 let Constraints = "$Rx32 = $Rx32in";
15821 }
15822 def M2_mpyu_acc_lh_s0 : HInst<
15823 (outs IntRegs:$Rx32),
15824 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15825 "$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15826 tc_d773585a, TypeM>, Enc_2ae154 {
15827 let Inst{7-5} = 0b001;
15828 let Inst{13-13} = 0b0;
15829 let Inst{31-21} = 0b11101110010;
15830 let hasNewValue = 1;
15831 let opNewValue = 0;
15832 let prefersSlot3 = 1;
15833 let Constraints = "$Rx32 = $Rx32in";
15834 }
15835 def M2_mpyu_acc_lh_s1 : HInst<
15836 (outs IntRegs:$Rx32),
15837 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15838 "$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15839 tc_d773585a, TypeM>, Enc_2ae154 {
15840 let Inst{7-5} = 0b001;
15841 let Inst{13-13} = 0b0;
15842 let Inst{31-21} = 0b11101110110;
15843 let hasNewValue = 1;
15844 let opNewValue = 0;
15845 let prefersSlot3 = 1;
15846 let Constraints = "$Rx32 = $Rx32in";
15847 }
15848 def M2_mpyu_acc_ll_s0 : HInst<
15849 (outs IntRegs:$Rx32),
15850 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15851 "$Rx32 += mpyu($Rs32.l,$Rt32.l)",
15852 tc_d773585a, TypeM>, Enc_2ae154 {
15853 let Inst{7-5} = 0b000;
15854 let Inst{13-13} = 0b0;
15855 let Inst{31-21} = 0b11101110010;
15856 let hasNewValue = 1;
15857 let opNewValue = 0;
15858 let prefersSlot3 = 1;
15859 let Constraints = "$Rx32 = $Rx32in";
15860 }
15861 def M2_mpyu_acc_ll_s1 : HInst<
15862 (outs IntRegs:$Rx32),
15863 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15864 "$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15865 tc_d773585a, TypeM>, Enc_2ae154 {
15866 let Inst{7-5} = 0b000;
15867 let Inst{13-13} = 0b0;
15868 let Inst{31-21} = 0b11101110110;
15869 let hasNewValue = 1;
15870 let opNewValue = 0;
15871 let prefersSlot3 = 1;
15872 let Constraints = "$Rx32 = $Rx32in";
15873 }
15874 def M2_mpyu_hh_s0 : HInst<
15875 (outs IntRegs:$Rd32),
15876 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15877 "$Rd32 = mpyu($Rs32.h,$Rt32.h)",
15878 tc_bafaade3, TypeM>, Enc_5ab2be {
15879 let Inst{7-5} = 0b011;
15880 let Inst{13-13} = 0b0;
15881 let Inst{31-21} = 0b11101100010;
15882 let hasNewValue = 1;
15883 let opNewValue = 0;
15884 let prefersSlot3 = 1;
15885 }
15886 def M2_mpyu_hh_s1 : HInst<
15887 (outs IntRegs:$Rd32),
15888 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15889 "$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
15890 tc_bafaade3, TypeM>, Enc_5ab2be {
15891 let Inst{7-5} = 0b011;
15892 let Inst{13-13} = 0b0;
15893 let Inst{31-21} = 0b11101100110;
15894 let hasNewValue = 1;
15895 let opNewValue = 0;
15896 let prefersSlot3 = 1;
15897 }
15898 def M2_mpyu_hl_s0 : HInst<
15899 (outs IntRegs:$Rd32),
15900 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15901 "$Rd32 = mpyu($Rs32.h,$Rt32.l)",
15902 tc_bafaade3, TypeM>, Enc_5ab2be {
15903 let Inst{7-5} = 0b010;
15904 let Inst{13-13} = 0b0;
15905 let Inst{31-21} = 0b11101100010;
15906 let hasNewValue = 1;
15907 let opNewValue = 0;
15908 let prefersSlot3 = 1;
15909 }
15910 def M2_mpyu_hl_s1 : HInst<
15911 (outs IntRegs:$Rd32),
15912 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15913 "$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
15914 tc_bafaade3, TypeM>, Enc_5ab2be {
15915 let Inst{7-5} = 0b010;
15916 let Inst{13-13} = 0b0;
15917 let Inst{31-21} = 0b11101100110;
15918 let hasNewValue = 1;
15919 let opNewValue = 0;
15920 let prefersSlot3 = 1;
15921 }
15922 def M2_mpyu_lh_s0 : HInst<
15923 (outs IntRegs:$Rd32),
15924 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15925 "$Rd32 = mpyu($Rs32.l,$Rt32.h)",
15926 tc_bafaade3, TypeM>, Enc_5ab2be {
15927 let Inst{7-5} = 0b001;
15928 let Inst{13-13} = 0b0;
15929 let Inst{31-21} = 0b11101100010;
15930 let hasNewValue = 1;
15931 let opNewValue = 0;
15932 let prefersSlot3 = 1;
15933 }
15934 def M2_mpyu_lh_s1 : HInst<
15935 (outs IntRegs:$Rd32),
15936 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15937 "$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
15938 tc_bafaade3, TypeM>, Enc_5ab2be {
15939 let Inst{7-5} = 0b001;
15940 let Inst{13-13} = 0b0;
15941 let Inst{31-21} = 0b11101100110;
15942 let hasNewValue = 1;
15943 let opNewValue = 0;
15944 let prefersSlot3 = 1;
15945 }
15946 def M2_mpyu_ll_s0 : HInst<
15947 (outs IntRegs:$Rd32),
15948 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15949 "$Rd32 = mpyu($Rs32.l,$Rt32.l)",
15950 tc_bafaade3, TypeM>, Enc_5ab2be {
15951 let Inst{7-5} = 0b000;
15952 let Inst{13-13} = 0b0;
15953 let Inst{31-21} = 0b11101100010;
15954 let hasNewValue = 1;
15955 let opNewValue = 0;
15956 let prefersSlot3 = 1;
15957 }
15958 def M2_mpyu_ll_s1 : HInst<
15959 (outs IntRegs:$Rd32),
15960 (ins IntRegs:$Rs32, IntRegs:$Rt32),
15961 "$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
15962 tc_bafaade3, TypeM>, Enc_5ab2be {
15963 let Inst{7-5} = 0b000;
15964 let Inst{13-13} = 0b0;
15965 let Inst{31-21} = 0b11101100110;
15966 let hasNewValue = 1;
15967 let opNewValue = 0;
15968 let prefersSlot3 = 1;
15969 }
15970 def M2_mpyu_nac_hh_s0 : HInst<
15971 (outs IntRegs:$Rx32),
15972 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15973 "$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
15974 tc_d773585a, TypeM>, Enc_2ae154 {
15975 let Inst{7-5} = 0b011;
15976 let Inst{13-13} = 0b0;
15977 let Inst{31-21} = 0b11101110011;
15978 let hasNewValue = 1;
15979 let opNewValue = 0;
15980 let prefersSlot3 = 1;
15981 let Constraints = "$Rx32 = $Rx32in";
15982 }
15983 def M2_mpyu_nac_hh_s1 : HInst<
15984 (outs IntRegs:$Rx32),
15985 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15986 "$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
15987 tc_d773585a, TypeM>, Enc_2ae154 {
15988 let Inst{7-5} = 0b011;
15989 let Inst{13-13} = 0b0;
15990 let Inst{31-21} = 0b11101110111;
15991 let hasNewValue = 1;
15992 let opNewValue = 0;
15993 let prefersSlot3 = 1;
15994 let Constraints = "$Rx32 = $Rx32in";
15995 }
15996 def M2_mpyu_nac_hl_s0 : HInst<
15997 (outs IntRegs:$Rx32),
15998 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15999 "$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
16000 tc_d773585a, TypeM>, Enc_2ae154 {
16001 let Inst{7-5} = 0b010;
16002 let Inst{13-13} = 0b0;
16003 let Inst{31-21} = 0b11101110011;
16004 let hasNewValue = 1;
16005 let opNewValue = 0;
16006 let prefersSlot3 = 1;
16007 let Constraints = "$Rx32 = $Rx32in";
16008 }
16009 def M2_mpyu_nac_hl_s1 : HInst<
16010 (outs IntRegs:$Rx32),
16011 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16012 "$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16013 tc_d773585a, TypeM>, Enc_2ae154 {
16014 let Inst{7-5} = 0b010;
16015 let Inst{13-13} = 0b0;
16016 let Inst{31-21} = 0b11101110111;
16017 let hasNewValue = 1;
16018 let opNewValue = 0;
16019 let prefersSlot3 = 1;
16020 let Constraints = "$Rx32 = $Rx32in";
16021 }
16022 def M2_mpyu_nac_lh_s0 : HInst<
16023 (outs IntRegs:$Rx32),
16024 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16025 "$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16026 tc_d773585a, TypeM>, Enc_2ae154 {
16027 let Inst{7-5} = 0b001;
16028 let Inst{13-13} = 0b0;
16029 let Inst{31-21} = 0b11101110011;
16030 let hasNewValue = 1;
16031 let opNewValue = 0;
16032 let prefersSlot3 = 1;
16033 let Constraints = "$Rx32 = $Rx32in";
16034 }
16035 def M2_mpyu_nac_lh_s1 : HInst<
16036 (outs IntRegs:$Rx32),
16037 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16038 "$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16039 tc_d773585a, TypeM>, Enc_2ae154 {
16040 let Inst{7-5} = 0b001;
16041 let Inst{13-13} = 0b0;
16042 let Inst{31-21} = 0b11101110111;
16043 let hasNewValue = 1;
16044 let opNewValue = 0;
16045 let prefersSlot3 = 1;
16046 let Constraints = "$Rx32 = $Rx32in";
16047 }
16048 def M2_mpyu_nac_ll_s0 : HInst<
16049 (outs IntRegs:$Rx32),
16050 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16051 "$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16052 tc_d773585a, TypeM>, Enc_2ae154 {
16053 let Inst{7-5} = 0b000;
16054 let Inst{13-13} = 0b0;
16055 let Inst{31-21} = 0b11101110011;
16056 let hasNewValue = 1;
16057 let opNewValue = 0;
16058 let prefersSlot3 = 1;
16059 let Constraints = "$Rx32 = $Rx32in";
16060 }
16061 def M2_mpyu_nac_ll_s1 : HInst<
16062 (outs IntRegs:$Rx32),
16063 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16064 "$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16065 tc_d773585a, TypeM>, Enc_2ae154 {
16066 let Inst{7-5} = 0b000;
16067 let Inst{13-13} = 0b0;
16068 let Inst{31-21} = 0b11101110111;
16069 let hasNewValue = 1;
16070 let opNewValue = 0;
16071 let prefersSlot3 = 1;
16072 let Constraints = "$Rx32 = $Rx32in";
16073 }
16074 def M2_mpyu_up : HInst<
16075 (outs IntRegs:$Rd32),
16076 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16077 "$Rd32 = mpyu($Rs32,$Rt32)",
16078 tc_bafaade3, TypeM>, Enc_5ab2be {
16079 let Inst{7-5} = 0b001;
16080 let Inst{13-13} = 0b0;
16081 let Inst{31-21} = 0b11101101010;
16082 let hasNewValue = 1;
16083 let opNewValue = 0;
16084 let prefersSlot3 = 1;
16085 }
16086 def M2_mpyud_acc_hh_s0 : HInst<
16087 (outs DoubleRegs:$Rxx32),
16088 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16089 "$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16090 tc_d773585a, TypeM>, Enc_61f0b0 {
16091 let Inst{7-5} = 0b011;
16092 let Inst{13-13} = 0b0;
16093 let Inst{31-21} = 0b11100110010;
16094 let prefersSlot3 = 1;
16095 let Constraints = "$Rxx32 = $Rxx32in";
16096 }
16097 def M2_mpyud_acc_hh_s1 : HInst<
16098 (outs DoubleRegs:$Rxx32),
16099 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16100 "$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16101 tc_d773585a, TypeM>, Enc_61f0b0 {
16102 let Inst{7-5} = 0b011;
16103 let Inst{13-13} = 0b0;
16104 let Inst{31-21} = 0b11100110110;
16105 let prefersSlot3 = 1;
16106 let Constraints = "$Rxx32 = $Rxx32in";
16107 }
16108 def M2_mpyud_acc_hl_s0 : HInst<
16109 (outs DoubleRegs:$Rxx32),
16110 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16111 "$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16112 tc_d773585a, TypeM>, Enc_61f0b0 {
16113 let Inst{7-5} = 0b010;
16114 let Inst{13-13} = 0b0;
16115 let Inst{31-21} = 0b11100110010;
16116 let prefersSlot3 = 1;
16117 let Constraints = "$Rxx32 = $Rxx32in";
16118 }
16119 def M2_mpyud_acc_hl_s1 : HInst<
16120 (outs DoubleRegs:$Rxx32),
16121 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16122 "$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16123 tc_d773585a, TypeM>, Enc_61f0b0 {
16124 let Inst{7-5} = 0b010;
16125 let Inst{13-13} = 0b0;
16126 let Inst{31-21} = 0b11100110110;
16127 let prefersSlot3 = 1;
16128 let Constraints = "$Rxx32 = $Rxx32in";
16129 }
16130 def M2_mpyud_acc_lh_s0 : HInst<
16131 (outs DoubleRegs:$Rxx32),
16132 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16133 "$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16134 tc_d773585a, TypeM>, Enc_61f0b0 {
16135 let Inst{7-5} = 0b001;
16136 let Inst{13-13} = 0b0;
16137 let Inst{31-21} = 0b11100110010;
16138 let prefersSlot3 = 1;
16139 let Constraints = "$Rxx32 = $Rxx32in";
16140 }
16141 def M2_mpyud_acc_lh_s1 : HInst<
16142 (outs DoubleRegs:$Rxx32),
16143 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16144 "$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16145 tc_d773585a, TypeM>, Enc_61f0b0 {
16146 let Inst{7-5} = 0b001;
16147 let Inst{13-13} = 0b0;
16148 let Inst{31-21} = 0b11100110110;
16149 let prefersSlot3 = 1;
16150 let Constraints = "$Rxx32 = $Rxx32in";
16151 }
16152 def M2_mpyud_acc_ll_s0 : HInst<
16153 (outs DoubleRegs:$Rxx32),
16154 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16155 "$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16156 tc_d773585a, TypeM>, Enc_61f0b0 {
16157 let Inst{7-5} = 0b000;
16158 let Inst{13-13} = 0b0;
16159 let Inst{31-21} = 0b11100110010;
16160 let prefersSlot3 = 1;
16161 let Constraints = "$Rxx32 = $Rxx32in";
16162 }
16163 def M2_mpyud_acc_ll_s1 : HInst<
16164 (outs DoubleRegs:$Rxx32),
16165 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16166 "$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16167 tc_d773585a, TypeM>, Enc_61f0b0 {
16168 let Inst{7-5} = 0b000;
16169 let Inst{13-13} = 0b0;
16170 let Inst{31-21} = 0b11100110110;
16171 let prefersSlot3 = 1;
16172 let Constraints = "$Rxx32 = $Rxx32in";
16173 }
16174 def M2_mpyud_hh_s0 : HInst<
16175 (outs DoubleRegs:$Rdd32),
16176 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16177 "$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16178 tc_bafaade3, TypeM>, Enc_be32a5 {
16179 let Inst{7-5} = 0b011;
16180 let Inst{13-13} = 0b0;
16181 let Inst{31-21} = 0b11100100010;
16182 let prefersSlot3 = 1;
16183 }
16184 def M2_mpyud_hh_s1 : HInst<
16185 (outs DoubleRegs:$Rdd32),
16186 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16187 "$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16188 tc_bafaade3, TypeM>, Enc_be32a5 {
16189 let Inst{7-5} = 0b011;
16190 let Inst{13-13} = 0b0;
16191 let Inst{31-21} = 0b11100100110;
16192 let prefersSlot3 = 1;
16193 }
16194 def M2_mpyud_hl_s0 : HInst<
16195 (outs DoubleRegs:$Rdd32),
16196 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16197 "$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16198 tc_bafaade3, TypeM>, Enc_be32a5 {
16199 let Inst{7-5} = 0b010;
16200 let Inst{13-13} = 0b0;
16201 let Inst{31-21} = 0b11100100010;
16202 let prefersSlot3 = 1;
16203 }
16204 def M2_mpyud_hl_s1 : HInst<
16205 (outs DoubleRegs:$Rdd32),
16206 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16207 "$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16208 tc_bafaade3, TypeM>, Enc_be32a5 {
16209 let Inst{7-5} = 0b010;
16210 let Inst{13-13} = 0b0;
16211 let Inst{31-21} = 0b11100100110;
16212 let prefersSlot3 = 1;
16213 }
16214 def M2_mpyud_lh_s0 : HInst<
16215 (outs DoubleRegs:$Rdd32),
16216 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16217 "$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16218 tc_bafaade3, TypeM>, Enc_be32a5 {
16219 let Inst{7-5} = 0b001;
16220 let Inst{13-13} = 0b0;
16221 let Inst{31-21} = 0b11100100010;
16222 let prefersSlot3 = 1;
16223 }
16224 def M2_mpyud_lh_s1 : HInst<
16225 (outs DoubleRegs:$Rdd32),
16226 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16227 "$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16228 tc_bafaade3, TypeM>, Enc_be32a5 {
16229 let Inst{7-5} = 0b001;
16230 let Inst{13-13} = 0b0;
16231 let Inst{31-21} = 0b11100100110;
16232 let prefersSlot3 = 1;
16233 }
16234 def M2_mpyud_ll_s0 : HInst<
16235 (outs DoubleRegs:$Rdd32),
16236 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16237 "$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16238 tc_bafaade3, TypeM>, Enc_be32a5 {
16239 let Inst{7-5} = 0b000;
16240 let Inst{13-13} = 0b0;
16241 let Inst{31-21} = 0b11100100010;
16242 let prefersSlot3 = 1;
16243 }
16244 def M2_mpyud_ll_s1 : HInst<
16245 (outs DoubleRegs:$Rdd32),
16246 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16247 "$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16248 tc_bafaade3, TypeM>, Enc_be32a5 {
16249 let Inst{7-5} = 0b000;
16250 let Inst{13-13} = 0b0;
16251 let Inst{31-21} = 0b11100100110;
16252 let prefersSlot3 = 1;
16253 }
16254 def M2_mpyud_nac_hh_s0 : HInst<
16255 (outs DoubleRegs:$Rxx32),
16256 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16257 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16258 tc_d773585a, TypeM>, Enc_61f0b0 {
16259 let Inst{7-5} = 0b011;
16260 let Inst{13-13} = 0b0;
16261 let Inst{31-21} = 0b11100110011;
16262 let prefersSlot3 = 1;
16263 let Constraints = "$Rxx32 = $Rxx32in";
16264 }
16265 def M2_mpyud_nac_hh_s1 : HInst<
16266 (outs DoubleRegs:$Rxx32),
16267 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16268 "$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16269 tc_d773585a, TypeM>, Enc_61f0b0 {
16270 let Inst{7-5} = 0b011;
16271 let Inst{13-13} = 0b0;
16272 let Inst{31-21} = 0b11100110111;
16273 let prefersSlot3 = 1;
16274 let Constraints = "$Rxx32 = $Rxx32in";
16275 }
16276 def M2_mpyud_nac_hl_s0 : HInst<
16277 (outs DoubleRegs:$Rxx32),
16278 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16279 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16280 tc_d773585a, TypeM>, Enc_61f0b0 {
16281 let Inst{7-5} = 0b010;
16282 let Inst{13-13} = 0b0;
16283 let Inst{31-21} = 0b11100110011;
16284 let prefersSlot3 = 1;
16285 let Constraints = "$Rxx32 = $Rxx32in";
16286 }
16287 def M2_mpyud_nac_hl_s1 : HInst<
16288 (outs DoubleRegs:$Rxx32),
16289 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16290 "$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16291 tc_d773585a, TypeM>, Enc_61f0b0 {
16292 let Inst{7-5} = 0b010;
16293 let Inst{13-13} = 0b0;
16294 let Inst{31-21} = 0b11100110111;
16295 let prefersSlot3 = 1;
16296 let Constraints = "$Rxx32 = $Rxx32in";
16297 }
16298 def M2_mpyud_nac_lh_s0 : HInst<
16299 (outs DoubleRegs:$Rxx32),
16300 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16301 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16302 tc_d773585a, TypeM>, Enc_61f0b0 {
16303 let Inst{7-5} = 0b001;
16304 let Inst{13-13} = 0b0;
16305 let Inst{31-21} = 0b11100110011;
16306 let prefersSlot3 = 1;
16307 let Constraints = "$Rxx32 = $Rxx32in";
16308 }
16309 def M2_mpyud_nac_lh_s1 : HInst<
16310 (outs DoubleRegs:$Rxx32),
16311 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16312 "$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16313 tc_d773585a, TypeM>, Enc_61f0b0 {
16314 let Inst{7-5} = 0b001;
16315 let Inst{13-13} = 0b0;
16316 let Inst{31-21} = 0b11100110111;
16317 let prefersSlot3 = 1;
16318 let Constraints = "$Rxx32 = $Rxx32in";
16319 }
16320 def M2_mpyud_nac_ll_s0 : HInst<
16321 (outs DoubleRegs:$Rxx32),
16322 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16323 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16324 tc_d773585a, TypeM>, Enc_61f0b0 {
16325 let Inst{7-5} = 0b000;
16326 let Inst{13-13} = 0b0;
16327 let Inst{31-21} = 0b11100110011;
16328 let prefersSlot3 = 1;
16329 let Constraints = "$Rxx32 = $Rxx32in";
16330 }
16331 def M2_mpyud_nac_ll_s1 : HInst<
16332 (outs DoubleRegs:$Rxx32),
16333 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16334 "$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16335 tc_d773585a, TypeM>, Enc_61f0b0 {
16336 let Inst{7-5} = 0b000;
16337 let Inst{13-13} = 0b0;
16338 let Inst{31-21} = 0b11100110111;
16339 let prefersSlot3 = 1;
16340 let Constraints = "$Rxx32 = $Rxx32in";
16341 }
16342 def M2_mpyui : HInst<
16343 (outs IntRegs:$Rd32),
16344 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16345 "$Rd32 = mpyui($Rs32,$Rt32)",
16346 tc_bafaade3, TypeM> {
16347 let hasNewValue = 1;
16348 let opNewValue = 0;
16349 let isPseudo = 1;
16350 let isCodeGenOnly = 1;
16351 }
16352 def M2_nacci : HInst<
16353 (outs IntRegs:$Rx32),
16354 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16355 "$Rx32 -= add($Rs32,$Rt32)",
16356 tc_f675fee8, TypeM>, Enc_2ae154 {
16357 let Inst{7-5} = 0b001;
16358 let Inst{13-13} = 0b0;
16359 let Inst{31-21} = 0b11101111100;
16360 let hasNewValue = 1;
16361 let opNewValue = 0;
16362 let prefersSlot3 = 1;
16363 let InputType = "reg";
16364 let Constraints = "$Rx32 = $Rx32in";
16365 }
16366 def M2_naccii : HInst<
16367 (outs IntRegs:$Rx32),
16368 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16369 "$Rx32 -= add($Rs32,#$Ii)",
16370 tc_f675fee8, TypeM>, Enc_c90aca {
16371 let Inst{13-13} = 0b0;
16372 let Inst{31-21} = 0b11100010100;
16373 let hasNewValue = 1;
16374 let opNewValue = 0;
16375 let prefersSlot3 = 1;
16376 let InputType = "imm";
16377 let isExtendable = 1;
16378 let opExtendable = 3;
16379 let isExtentSigned = 1;
16380 let opExtentBits = 8;
16381 let opExtentAlign = 0;
16382 let Constraints = "$Rx32 = $Rx32in";
16383 }
16384 def M2_subacc : HInst<
16385 (outs IntRegs:$Rx32),
16386 (ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16387 "$Rx32 += sub($Rt32,$Rs32)",
16388 tc_f675fee8, TypeM>, Enc_a568d4 {
16389 let Inst{7-5} = 0b011;
16390 let Inst{13-13} = 0b0;
16391 let Inst{31-21} = 0b11101111000;
16392 let hasNewValue = 1;
16393 let opNewValue = 0;
16394 let prefersSlot3 = 1;
16395 let InputType = "reg";
16396 let Constraints = "$Rx32 = $Rx32in";
16397 }
16398 def M2_vabsdiffh : HInst<
16399 (outs DoubleRegs:$Rdd32),
16400 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16401 "$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16402 tc_002cb246, TypeM>, Enc_ea23e4 {
16403 let Inst{7-5} = 0b000;
16404 let Inst{13-13} = 0b0;
16405 let Inst{31-21} = 0b11101000011;
16406 let prefersSlot3 = 1;
16407 }
16408 def M2_vabsdiffw : HInst<
16409 (outs DoubleRegs:$Rdd32),
16410 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16411 "$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16412 tc_002cb246, TypeM>, Enc_ea23e4 {
16413 let Inst{7-5} = 0b000;
16414 let Inst{13-13} = 0b0;
16415 let Inst{31-21} = 0b11101000001;
16416 let prefersSlot3 = 1;
16417 }
16418 def M2_vcmac_s0_sat_i : HInst<
16419 (outs DoubleRegs:$Rxx32),
16420 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16421 "$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16422 tc_d773585a, TypeM>, Enc_88c16c {
16423 let Inst{7-5} = 0b100;
16424 let Inst{13-13} = 0b0;
16425 let Inst{31-21} = 0b11101010010;
16426 let prefersSlot3 = 1;
16427 let Defs = [USR_OVF];
16428 let Constraints = "$Rxx32 = $Rxx32in";
16429 }
16430 def M2_vcmac_s0_sat_r : HInst<
16431 (outs DoubleRegs:$Rxx32),
16432 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16433 "$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16434 tc_d773585a, TypeM>, Enc_88c16c {
16435 let Inst{7-5} = 0b100;
16436 let Inst{13-13} = 0b0;
16437 let Inst{31-21} = 0b11101010001;
16438 let prefersSlot3 = 1;
16439 let Defs = [USR_OVF];
16440 let Constraints = "$Rxx32 = $Rxx32in";
16441 }
16442 def M2_vcmpy_s0_sat_i : HInst<
16443 (outs DoubleRegs:$Rdd32),
16444 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16445 "$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16446 tc_bafaade3, TypeM>, Enc_a56825 {
16447 let Inst{7-5} = 0b110;
16448 let Inst{13-13} = 0b0;
16449 let Inst{31-21} = 0b11101000010;
16450 let prefersSlot3 = 1;
16451 let Defs = [USR_OVF];
16452 }
16453 def M2_vcmpy_s0_sat_r : HInst<
16454 (outs DoubleRegs:$Rdd32),
16455 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16456 "$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16457 tc_bafaade3, TypeM>, Enc_a56825 {
16458 let Inst{7-5} = 0b110;
16459 let Inst{13-13} = 0b0;
16460 let Inst{31-21} = 0b11101000001;
16461 let prefersSlot3 = 1;
16462 let Defs = [USR_OVF];
16463 }
16464 def M2_vcmpy_s1_sat_i : HInst<
16465 (outs DoubleRegs:$Rdd32),
16466 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16467 "$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16468 tc_bafaade3, TypeM>, Enc_a56825 {
16469 let Inst{7-5} = 0b110;
16470 let Inst{13-13} = 0b0;
16471 let Inst{31-21} = 0b11101000110;
16472 let prefersSlot3 = 1;
16473 let Defs = [USR_OVF];
16474 }
16475 def M2_vcmpy_s1_sat_r : HInst<
16476 (outs DoubleRegs:$Rdd32),
16477 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16478 "$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16479 tc_bafaade3, TypeM>, Enc_a56825 {
16480 let Inst{7-5} = 0b110;
16481 let Inst{13-13} = 0b0;
16482 let Inst{31-21} = 0b11101000101;
16483 let prefersSlot3 = 1;
16484 let Defs = [USR_OVF];
16485 }
16486 def M2_vdmacs_s0 : HInst<
16487 (outs DoubleRegs:$Rxx32),
16488 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16489 "$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16490 tc_d773585a, TypeM>, Enc_88c16c {
16491 let Inst{7-5} = 0b100;
16492 let Inst{13-13} = 0b0;
16493 let Inst{31-21} = 0b11101010000;
16494 let prefersSlot3 = 1;
16495 let Defs = [USR_OVF];
16496 let Constraints = "$Rxx32 = $Rxx32in";
16497 }
16498 def M2_vdmacs_s1 : HInst<
16499 (outs DoubleRegs:$Rxx32),
16500 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16501 "$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16502 tc_d773585a, TypeM>, Enc_88c16c {
16503 let Inst{7-5} = 0b100;
16504 let Inst{13-13} = 0b0;
16505 let Inst{31-21} = 0b11101010100;
16506 let prefersSlot3 = 1;
16507 let Defs = [USR_OVF];
16508 let Constraints = "$Rxx32 = $Rxx32in";
16509 }
16510 def M2_vdmpyrs_s0 : HInst<
16511 (outs IntRegs:$Rd32),
16512 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16513 "$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16514 tc_bafaade3, TypeM>, Enc_d2216a {
16515 let Inst{7-5} = 0b000;
16516 let Inst{13-13} = 0b0;
16517 let Inst{31-21} = 0b11101001000;
16518 let hasNewValue = 1;
16519 let opNewValue = 0;
16520 let prefersSlot3 = 1;
16521 let Defs = [USR_OVF];
16522 }
16523 def M2_vdmpyrs_s1 : HInst<
16524 (outs IntRegs:$Rd32),
16525 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16526 "$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16527 tc_bafaade3, TypeM>, Enc_d2216a {
16528 let Inst{7-5} = 0b000;
16529 let Inst{13-13} = 0b0;
16530 let Inst{31-21} = 0b11101001100;
16531 let hasNewValue = 1;
16532 let opNewValue = 0;
16533 let prefersSlot3 = 1;
16534 let Defs = [USR_OVF];
16535 }
16536 def M2_vdmpys_s0 : HInst<
16537 (outs DoubleRegs:$Rdd32),
16538 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16539 "$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16540 tc_bafaade3, TypeM>, Enc_a56825 {
16541 let Inst{7-5} = 0b100;
16542 let Inst{13-13} = 0b0;
16543 let Inst{31-21} = 0b11101000000;
16544 let prefersSlot3 = 1;
16545 let Defs = [USR_OVF];
16546 }
16547 def M2_vdmpys_s1 : HInst<
16548 (outs DoubleRegs:$Rdd32),
16549 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16550 "$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16551 tc_bafaade3, TypeM>, Enc_a56825 {
16552 let Inst{7-5} = 0b100;
16553 let Inst{13-13} = 0b0;
16554 let Inst{31-21} = 0b11101000100;
16555 let prefersSlot3 = 1;
16556 let Defs = [USR_OVF];
16557 }
16558 def M2_vmac2 : HInst<
16559 (outs DoubleRegs:$Rxx32),
16560 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16561 "$Rxx32 += vmpyh($Rs32,$Rt32)",
16562 tc_d773585a, TypeM>, Enc_61f0b0 {
16563 let Inst{7-5} = 0b001;
16564 let Inst{13-13} = 0b0;
16565 let Inst{31-21} = 0b11100111001;
16566 let prefersSlot3 = 1;
16567 let Constraints = "$Rxx32 = $Rxx32in";
16568 }
16569 def M2_vmac2es : HInst<
16570 (outs DoubleRegs:$Rxx32),
16571 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16572 "$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16573 tc_d773585a, TypeM>, Enc_88c16c {
16574 let Inst{7-5} = 0b010;
16575 let Inst{13-13} = 0b0;
16576 let Inst{31-21} = 0b11101010001;
16577 let prefersSlot3 = 1;
16578 let Constraints = "$Rxx32 = $Rxx32in";
16579 }
16580 def M2_vmac2es_s0 : HInst<
16581 (outs DoubleRegs:$Rxx32),
16582 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16583 "$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16584 tc_d773585a, TypeM>, Enc_88c16c {
16585 let Inst{7-5} = 0b110;
16586 let Inst{13-13} = 0b0;
16587 let Inst{31-21} = 0b11101010000;
16588 let prefersSlot3 = 1;
16589 let Defs = [USR_OVF];
16590 let Constraints = "$Rxx32 = $Rxx32in";
16591 }
16592 def M2_vmac2es_s1 : HInst<
16593 (outs DoubleRegs:$Rxx32),
16594 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16595 "$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16596 tc_d773585a, TypeM>, Enc_88c16c {
16597 let Inst{7-5} = 0b110;
16598 let Inst{13-13} = 0b0;
16599 let Inst{31-21} = 0b11101010100;
16600 let prefersSlot3 = 1;
16601 let Defs = [USR_OVF];
16602 let Constraints = "$Rxx32 = $Rxx32in";
16603 }
16604 def M2_vmac2s_s0 : HInst<
16605 (outs DoubleRegs:$Rxx32),
16606 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16607 "$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16608 tc_d773585a, TypeM>, Enc_61f0b0 {
16609 let Inst{7-5} = 0b101;
16610 let Inst{13-13} = 0b0;
16611 let Inst{31-21} = 0b11100111000;
16612 let prefersSlot3 = 1;
16613 let Defs = [USR_OVF];
16614 let Constraints = "$Rxx32 = $Rxx32in";
16615 }
16616 def M2_vmac2s_s1 : HInst<
16617 (outs DoubleRegs:$Rxx32),
16618 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16619 "$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16620 tc_d773585a, TypeM>, Enc_61f0b0 {
16621 let Inst{7-5} = 0b101;
16622 let Inst{13-13} = 0b0;
16623 let Inst{31-21} = 0b11100111100;
16624 let prefersSlot3 = 1;
16625 let Defs = [USR_OVF];
16626 let Constraints = "$Rxx32 = $Rxx32in";
16627 }
16628 def M2_vmac2su_s0 : HInst<
16629 (outs DoubleRegs:$Rxx32),
16630 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16631 "$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16632 tc_d773585a, TypeM>, Enc_61f0b0 {
16633 let Inst{7-5} = 0b101;
16634 let Inst{13-13} = 0b0;
16635 let Inst{31-21} = 0b11100111011;
16636 let prefersSlot3 = 1;
16637 let Defs = [USR_OVF];
16638 let Constraints = "$Rxx32 = $Rxx32in";
16639 }
16640 def M2_vmac2su_s1 : HInst<
16641 (outs DoubleRegs:$Rxx32),
16642 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16643 "$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16644 tc_d773585a, TypeM>, Enc_61f0b0 {
16645 let Inst{7-5} = 0b101;
16646 let Inst{13-13} = 0b0;
16647 let Inst{31-21} = 0b11100111111;
16648 let prefersSlot3 = 1;
16649 let Defs = [USR_OVF];
16650 let Constraints = "$Rxx32 = $Rxx32in";
16651 }
16652 def M2_vmpy2es_s0 : HInst<
16653 (outs DoubleRegs:$Rdd32),
16654 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16655 "$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16656 tc_bafaade3, TypeM>, Enc_a56825 {
16657 let Inst{7-5} = 0b110;
16658 let Inst{13-13} = 0b0;
16659 let Inst{31-21} = 0b11101000000;
16660 let prefersSlot3 = 1;
16661 let Defs = [USR_OVF];
16662 }
16663 def M2_vmpy2es_s1 : HInst<
16664 (outs DoubleRegs:$Rdd32),
16665 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16666 "$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16667 tc_bafaade3, TypeM>, Enc_a56825 {
16668 let Inst{7-5} = 0b110;
16669 let Inst{13-13} = 0b0;
16670 let Inst{31-21} = 0b11101000100;
16671 let prefersSlot3 = 1;
16672 let Defs = [USR_OVF];
16673 }
16674 def M2_vmpy2s_s0 : HInst<
16675 (outs DoubleRegs:$Rdd32),
16676 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16677 "$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16678 tc_bafaade3, TypeM>, Enc_be32a5 {
16679 let Inst{7-5} = 0b101;
16680 let Inst{13-13} = 0b0;
16681 let Inst{31-21} = 0b11100101000;
16682 let prefersSlot3 = 1;
16683 let Defs = [USR_OVF];
16684 }
16685 def M2_vmpy2s_s0pack : HInst<
16686 (outs IntRegs:$Rd32),
16687 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16688 "$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16689 tc_bafaade3, TypeM>, Enc_5ab2be {
16690 let Inst{7-5} = 0b111;
16691 let Inst{13-13} = 0b0;
16692 let Inst{31-21} = 0b11101101001;
16693 let hasNewValue = 1;
16694 let opNewValue = 0;
16695 let prefersSlot3 = 1;
16696 let Defs = [USR_OVF];
16697 }
16698 def M2_vmpy2s_s1 : HInst<
16699 (outs DoubleRegs:$Rdd32),
16700 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16701 "$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16702 tc_bafaade3, TypeM>, Enc_be32a5 {
16703 let Inst{7-5} = 0b101;
16704 let Inst{13-13} = 0b0;
16705 let Inst{31-21} = 0b11100101100;
16706 let prefersSlot3 = 1;
16707 let Defs = [USR_OVF];
16708 }
16709 def M2_vmpy2s_s1pack : HInst<
16710 (outs IntRegs:$Rd32),
16711 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16712 "$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16713 tc_bafaade3, TypeM>, Enc_5ab2be {
16714 let Inst{7-5} = 0b111;
16715 let Inst{13-13} = 0b0;
16716 let Inst{31-21} = 0b11101101101;
16717 let hasNewValue = 1;
16718 let opNewValue = 0;
16719 let prefersSlot3 = 1;
16720 let Defs = [USR_OVF];
16721 }
16722 def M2_vmpy2su_s0 : HInst<
16723 (outs DoubleRegs:$Rdd32),
16724 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16725 "$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16726 tc_bafaade3, TypeM>, Enc_be32a5 {
16727 let Inst{7-5} = 0b111;
16728 let Inst{13-13} = 0b0;
16729 let Inst{31-21} = 0b11100101000;
16730 let prefersSlot3 = 1;
16731 let Defs = [USR_OVF];
16732 }
16733 def M2_vmpy2su_s1 : HInst<
16734 (outs DoubleRegs:$Rdd32),
16735 (ins IntRegs:$Rs32, IntRegs:$Rt32),
16736 "$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16737 tc_bafaade3, TypeM>, Enc_be32a5 {
16738 let Inst{7-5} = 0b111;
16739 let Inst{13-13} = 0b0;
16740 let Inst{31-21} = 0b11100101100;
16741 let prefersSlot3 = 1;
16742 let Defs = [USR_OVF];
16743 }
16744 def M2_vraddh : HInst<
16745 (outs IntRegs:$Rd32),
16746 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16747 "$Rd32 = vraddh($Rss32,$Rtt32)",
16748 tc_bafaade3, TypeM>, Enc_d2216a {
16749 let Inst{7-5} = 0b111;
16750 let Inst{13-13} = 0b0;
16751 let Inst{31-21} = 0b11101001001;
16752 let hasNewValue = 1;
16753 let opNewValue = 0;
16754 let prefersSlot3 = 1;
16755 }
16756 def M2_vradduh : HInst<
16757 (outs IntRegs:$Rd32),
16758 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16759 "$Rd32 = vradduh($Rss32,$Rtt32)",
16760 tc_bafaade3, TypeM>, Enc_d2216a {
16761 let Inst{7-5} = 0b001;
16762 let Inst{13-13} = 0b0;
16763 let Inst{31-21} = 0b11101001000;
16764 let hasNewValue = 1;
16765 let opNewValue = 0;
16766 let prefersSlot3 = 1;
16767 }
16768 def M2_vrcmaci_s0 : HInst<
16769 (outs DoubleRegs:$Rxx32),
16770 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16771 "$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16772 tc_d773585a, TypeM>, Enc_88c16c {
16773 let Inst{7-5} = 0b000;
16774 let Inst{13-13} = 0b0;
16775 let Inst{31-21} = 0b11101010000;
16776 let prefersSlot3 = 1;
16777 let Constraints = "$Rxx32 = $Rxx32in";
16778 }
16779 def M2_vrcmaci_s0c : HInst<
16780 (outs DoubleRegs:$Rxx32),
16781 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16782 "$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16783 tc_d773585a, TypeM>, Enc_88c16c {
16784 let Inst{7-5} = 0b000;
16785 let Inst{13-13} = 0b0;
16786 let Inst{31-21} = 0b11101010010;
16787 let prefersSlot3 = 1;
16788 let Constraints = "$Rxx32 = $Rxx32in";
16789 }
16790 def M2_vrcmacr_s0 : HInst<
16791 (outs DoubleRegs:$Rxx32),
16792 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16793 "$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16794 tc_d773585a, TypeM>, Enc_88c16c {
16795 let Inst{7-5} = 0b001;
16796 let Inst{13-13} = 0b0;
16797 let Inst{31-21} = 0b11101010000;
16798 let prefersSlot3 = 1;
16799 let Constraints = "$Rxx32 = $Rxx32in";
16800 }
16801 def M2_vrcmacr_s0c : HInst<
16802 (outs DoubleRegs:$Rxx32),
16803 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16804 "$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16805 tc_d773585a, TypeM>, Enc_88c16c {
16806 let Inst{7-5} = 0b001;
16807 let Inst{13-13} = 0b0;
16808 let Inst{31-21} = 0b11101010011;
16809 let prefersSlot3 = 1;
16810 let Constraints = "$Rxx32 = $Rxx32in";
16811 }
16812 def M2_vrcmpyi_s0 : HInst<
16813 (outs DoubleRegs:$Rdd32),
16814 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16815 "$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16816 tc_bafaade3, TypeM>, Enc_a56825 {
16817 let Inst{7-5} = 0b000;
16818 let Inst{13-13} = 0b0;
16819 let Inst{31-21} = 0b11101000000;
16820 let prefersSlot3 = 1;
16821 }
16822 def M2_vrcmpyi_s0c : HInst<
16823 (outs DoubleRegs:$Rdd32),
16824 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16825 "$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16826 tc_bafaade3, TypeM>, Enc_a56825 {
16827 let Inst{7-5} = 0b000;
16828 let Inst{13-13} = 0b0;
16829 let Inst{31-21} = 0b11101000010;
16830 let prefersSlot3 = 1;
16831 }
16832 def M2_vrcmpyr_s0 : HInst<
16833 (outs DoubleRegs:$Rdd32),
16834 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16835 "$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
16836 tc_bafaade3, TypeM>, Enc_a56825 {
16837 let Inst{7-5} = 0b001;
16838 let Inst{13-13} = 0b0;
16839 let Inst{31-21} = 0b11101000000;
16840 let prefersSlot3 = 1;
16841 }
16842 def M2_vrcmpyr_s0c : HInst<
16843 (outs DoubleRegs:$Rdd32),
16844 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16845 "$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
16846 tc_bafaade3, TypeM>, Enc_a56825 {
16847 let Inst{7-5} = 0b001;
16848 let Inst{13-13} = 0b0;
16849 let Inst{31-21} = 0b11101000011;
16850 let prefersSlot3 = 1;
16851 }
16852 def M2_vrcmpys_acc_s1 : HInst<
16853 (outs DoubleRegs:$Rxx32),
16854 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
16855 "$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
16856 tc_d773585a, TypeM> {
16857 let isPseudo = 1;
16858 let Constraints = "$Rxx32 = $Rxx32in";
16859 }
16860 def M2_vrcmpys_acc_s1_h : HInst<
16861 (outs DoubleRegs:$Rxx32),
16862 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16863 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16864 tc_d773585a, TypeM>, Enc_88c16c {
16865 let Inst{7-5} = 0b100;
16866 let Inst{13-13} = 0b0;
16867 let Inst{31-21} = 0b11101010101;
16868 let prefersSlot3 = 1;
16869 let Defs = [USR_OVF];
16870 let Constraints = "$Rxx32 = $Rxx32in";
16871 }
16872 def M2_vrcmpys_acc_s1_l : HInst<
16873 (outs DoubleRegs:$Rxx32),
16874 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16875 "$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16876 tc_d773585a, TypeM>, Enc_88c16c {
16877 let Inst{7-5} = 0b100;
16878 let Inst{13-13} = 0b0;
16879 let Inst{31-21} = 0b11101010111;
16880 let prefersSlot3 = 1;
16881 let Defs = [USR_OVF];
16882 let Constraints = "$Rxx32 = $Rxx32in";
16883 }
16884 def M2_vrcmpys_s1 : HInst<
16885 (outs DoubleRegs:$Rdd32),
16886 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16887 "$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
16888 tc_bafaade3, TypeM> {
16889 let isPseudo = 1;
16890 }
16891 def M2_vrcmpys_s1_h : HInst<
16892 (outs DoubleRegs:$Rdd32),
16893 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16894 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16895 tc_bafaade3, TypeM>, Enc_a56825 {
16896 let Inst{7-5} = 0b100;
16897 let Inst{13-13} = 0b0;
16898 let Inst{31-21} = 0b11101000101;
16899 let prefersSlot3 = 1;
16900 let Defs = [USR_OVF];
16901 }
16902 def M2_vrcmpys_s1_l : HInst<
16903 (outs DoubleRegs:$Rdd32),
16904 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16905 "$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16906 tc_bafaade3, TypeM>, Enc_a56825 {
16907 let Inst{7-5} = 0b100;
16908 let Inst{13-13} = 0b0;
16909 let Inst{31-21} = 0b11101000111;
16910 let prefersSlot3 = 1;
16911 let Defs = [USR_OVF];
16912 }
16913 def M2_vrcmpys_s1rp : HInst<
16914 (outs IntRegs:$Rd32),
16915 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16916 "$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
16917 tc_bafaade3, TypeM> {
16918 let hasNewValue = 1;
16919 let opNewValue = 0;
16920 let isPseudo = 1;
16921 }
16922 def M2_vrcmpys_s1rp_h : HInst<
16923 (outs IntRegs:$Rd32),
16924 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16925 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
16926 tc_bafaade3, TypeM>, Enc_d2216a {
16927 let Inst{7-5} = 0b110;
16928 let Inst{13-13} = 0b0;
16929 let Inst{31-21} = 0b11101001101;
16930 let hasNewValue = 1;
16931 let opNewValue = 0;
16932 let prefersSlot3 = 1;
16933 let Defs = [USR_OVF];
16934 }
16935 def M2_vrcmpys_s1rp_l : HInst<
16936 (outs IntRegs:$Rd32),
16937 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16938 "$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
16939 tc_bafaade3, TypeM>, Enc_d2216a {
16940 let Inst{7-5} = 0b111;
16941 let Inst{13-13} = 0b0;
16942 let Inst{31-21} = 0b11101001101;
16943 let hasNewValue = 1;
16944 let opNewValue = 0;
16945 let prefersSlot3 = 1;
16946 let Defs = [USR_OVF];
16947 }
16948 def M2_vrmac_s0 : HInst<
16949 (outs DoubleRegs:$Rxx32),
16950 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16951 "$Rxx32 += vrmpyh($Rss32,$Rtt32)",
16952 tc_d773585a, TypeM>, Enc_88c16c {
16953 let Inst{7-5} = 0b010;
16954 let Inst{13-13} = 0b0;
16955 let Inst{31-21} = 0b11101010000;
16956 let prefersSlot3 = 1;
16957 let Constraints = "$Rxx32 = $Rxx32in";
16958 }
16959 def M2_vrmpy_s0 : HInst<
16960 (outs DoubleRegs:$Rdd32),
16961 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16962 "$Rdd32 = vrmpyh($Rss32,$Rtt32)",
16963 tc_bafaade3, TypeM>, Enc_a56825 {
16964 let Inst{7-5} = 0b010;
16965 let Inst{13-13} = 0b0;
16966 let Inst{31-21} = 0b11101000000;
16967 let prefersSlot3 = 1;
16968 }
16969 def M2_xor_xacc : HInst<
16970 (outs IntRegs:$Rx32),
16971 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16972 "$Rx32 ^= xor($Rs32,$Rt32)",
16973 tc_f429765c, TypeM>, Enc_2ae154 {
16974 let Inst{7-5} = 0b011;
16975 let Inst{13-13} = 0b0;
16976 let Inst{31-21} = 0b11101111100;
16977 let hasNewValue = 1;
16978 let opNewValue = 0;
16979 let prefersSlot3 = 1;
16980 let InputType = "reg";
16981 let Constraints = "$Rx32 = $Rx32in";
16982 }
16983 def M4_and_and : HInst<
16984 (outs IntRegs:$Rx32),
16985 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16986 "$Rx32 &= and($Rs32,$Rt32)",
16987 tc_f429765c, TypeM>, Enc_2ae154 {
16988 let Inst{7-5} = 0b000;
16989 let Inst{13-13} = 0b0;
16990 let Inst{31-21} = 0b11101111010;
16991 let hasNewValue = 1;
16992 let opNewValue = 0;
16993 let prefersSlot3 = 1;
16994 let InputType = "reg";
16995 let Constraints = "$Rx32 = $Rx32in";
16996 }
16997 def M4_and_andn : HInst<
16998 (outs IntRegs:$Rx32),
16999 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17000 "$Rx32 &= and($Rs32,~$Rt32)",
17001 tc_f429765c, TypeM>, Enc_2ae154 {
17002 let Inst{7-5} = 0b001;
17003 let Inst{13-13} = 0b0;
17004 let Inst{31-21} = 0b11101111001;
17005 let hasNewValue = 1;
17006 let opNewValue = 0;
17007 let prefersSlot3 = 1;
17008 let InputType = "reg";
17009 let Constraints = "$Rx32 = $Rx32in";
17010 }
17011 def M4_and_or : HInst<
17012 (outs IntRegs:$Rx32),
17013 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17014 "$Rx32 &= or($Rs32,$Rt32)",
17015 tc_f429765c, TypeM>, Enc_2ae154 {
17016 let Inst{7-5} = 0b001;
17017 let Inst{13-13} = 0b0;
17018 let Inst{31-21} = 0b11101111010;
17019 let hasNewValue = 1;
17020 let opNewValue = 0;
17021 let prefersSlot3 = 1;
17022 let InputType = "reg";
17023 let Constraints = "$Rx32 = $Rx32in";
17024 }
17025 def M4_and_xor : HInst<
17026 (outs IntRegs:$Rx32),
17027 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17028 "$Rx32 &= xor($Rs32,$Rt32)",
17029 tc_f429765c, TypeM>, Enc_2ae154 {
17030 let Inst{7-5} = 0b010;
17031 let Inst{13-13} = 0b0;
17032 let Inst{31-21} = 0b11101111010;
17033 let hasNewValue = 1;
17034 let opNewValue = 0;
17035 let prefersSlot3 = 1;
17036 let InputType = "reg";
17037 let Constraints = "$Rx32 = $Rx32in";
17038 }
17039 def M4_cmpyi_wh : HInst<
17040 (outs IntRegs:$Rd32),
17041 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17042 "$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17043 tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17044 let Inst{7-5} = 0b100;
17045 let Inst{13-13} = 0b0;
17046 let Inst{31-21} = 0b11000101000;
17047 let hasNewValue = 1;
17048 let opNewValue = 0;
17049 let prefersSlot3 = 1;
17050 let Defs = [USR_OVF];
17051 }
17052 def M4_cmpyi_whc : HInst<
17053 (outs IntRegs:$Rd32),
17054 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17055 "$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17056 tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17057 let Inst{7-5} = 0b101;
17058 let Inst{13-13} = 0b0;
17059 let Inst{31-21} = 0b11000101000;
17060 let hasNewValue = 1;
17061 let opNewValue = 0;
17062 let prefersSlot3 = 1;
17063 let Defs = [USR_OVF];
17064 }
17065 def M4_cmpyr_wh : HInst<
17066 (outs IntRegs:$Rd32),
17067 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17068 "$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17069 tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17070 let Inst{7-5} = 0b110;
17071 let Inst{13-13} = 0b0;
17072 let Inst{31-21} = 0b11000101000;
17073 let hasNewValue = 1;
17074 let opNewValue = 0;
17075 let prefersSlot3 = 1;
17076 let Defs = [USR_OVF];
17077 }
17078 def M4_cmpyr_whc : HInst<
17079 (outs IntRegs:$Rd32),
17080 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17081 "$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17082 tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17083 let Inst{7-5} = 0b111;
17084 let Inst{13-13} = 0b0;
17085 let Inst{31-21} = 0b11000101000;
17086 let hasNewValue = 1;
17087 let opNewValue = 0;
17088 let prefersSlot3 = 1;
17089 let Defs = [USR_OVF];
17090 }
17091 def M4_mac_up_s1_sat : HInst<
17092 (outs IntRegs:$Rx32),
17093 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17094 "$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17095 tc_d773585a, TypeM>, Enc_2ae154 {
17096 let Inst{7-5} = 0b000;
17097 let Inst{13-13} = 0b0;
17098 let Inst{31-21} = 0b11101111011;
17099 let hasNewValue = 1;
17100 let opNewValue = 0;
17101 let prefersSlot3 = 1;
17102 let Defs = [USR_OVF];
17103 let InputType = "reg";
17104 let Constraints = "$Rx32 = $Rx32in";
17105 }
17106 def M4_mpyri_addi : HInst<
17107 (outs IntRegs:$Rd32),
17108 (ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17109 "$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17110 tc_05d3a09b, TypeALU64>, Enc_322e1b, ImmRegRel {
17111 let Inst{31-24} = 0b11011000;
17112 let hasNewValue = 1;
17113 let opNewValue = 0;
17114 let prefersSlot3 = 1;
17115 let CextOpcode = "M4_mpyri_addr";
17116 let isExtendable = 1;
17117 let opExtendable = 1;
17118 let isExtentSigned = 0;
17119 let opExtentBits = 6;
17120 let opExtentAlign = 0;
17121 }
17122 def M4_mpyri_addr : HInst<
17123 (outs IntRegs:$Rd32),
17124 (ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17125 "$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17126 tc_05d3a09b, TypeALU64>, Enc_420cf3, ImmRegRel {
17127 let Inst{31-23} = 0b110111111;
17128 let hasNewValue = 1;
17129 let opNewValue = 0;
17130 let prefersSlot3 = 1;
17131 let CextOpcode = "M4_mpyri_addr";
17132 let InputType = "imm";
17133 let isExtendable = 1;
17134 let opExtendable = 3;
17135 let isExtentSigned = 0;
17136 let opExtentBits = 6;
17137 let opExtentAlign = 0;
17138 }
17139 def M4_mpyri_addr_u2 : HInst<
17140 (outs IntRegs:$Rd32),
17141 (ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17142 "$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17143 tc_1a2fd869, TypeALU64>, Enc_277737 {
17144 let Inst{31-23} = 0b110111110;
17145 let hasNewValue = 1;
17146 let opNewValue = 0;
17147 let prefersSlot3 = 1;
17148 }
17149 def M4_mpyrr_addi : HInst<
17150 (outs IntRegs:$Rd32),
17151 (ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17152 "$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17153 tc_d773585a, TypeALU64>, Enc_a7b8e8, ImmRegRel {
17154 let Inst{31-23} = 0b110101110;
17155 let hasNewValue = 1;
17156 let opNewValue = 0;
17157 let prefersSlot3 = 1;
17158 let CextOpcode = "M4_mpyrr_addr";
17159 let InputType = "imm";
17160 let isExtendable = 1;
17161 let opExtendable = 1;
17162 let isExtentSigned = 0;
17163 let opExtentBits = 6;
17164 let opExtentAlign = 0;
17165 }
17166 def M4_mpyrr_addr : HInst<
17167 (outs IntRegs:$Ry32),
17168 (ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17169 "$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17170 tc_d773585a, TypeM>, Enc_7f1a05, ImmRegRel {
17171 let Inst{7-5} = 0b000;
17172 let Inst{13-13} = 0b0;
17173 let Inst{31-21} = 0b11100011000;
17174 let hasNewValue = 1;
17175 let opNewValue = 0;
17176 let prefersSlot3 = 1;
17177 let CextOpcode = "M4_mpyrr_addr";
17178 let InputType = "reg";
17179 let Constraints = "$Ry32 = $Ry32in";
17180 }
17181 def M4_nac_up_s1_sat : HInst<
17182 (outs IntRegs:$Rx32),
17183 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17184 "$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17185 tc_d773585a, TypeM>, Enc_2ae154 {
17186 let Inst{7-5} = 0b001;
17187 let Inst{13-13} = 0b0;
17188 let Inst{31-21} = 0b11101111011;
17189 let hasNewValue = 1;
17190 let opNewValue = 0;
17191 let prefersSlot3 = 1;
17192 let Defs = [USR_OVF];
17193 let InputType = "reg";
17194 let Constraints = "$Rx32 = $Rx32in";
17195 }
17196 def M4_or_and : HInst<
17197 (outs IntRegs:$Rx32),
17198 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17199 "$Rx32 |= and($Rs32,$Rt32)",
17200 tc_f429765c, TypeM>, Enc_2ae154 {
17201 let Inst{7-5} = 0b011;
17202 let Inst{13-13} = 0b0;
17203 let Inst{31-21} = 0b11101111010;
17204 let hasNewValue = 1;
17205 let opNewValue = 0;
17206 let prefersSlot3 = 1;
17207 let InputType = "reg";
17208 let Constraints = "$Rx32 = $Rx32in";
17209 }
17210 def M4_or_andn : HInst<
17211 (outs IntRegs:$Rx32),
17212 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17213 "$Rx32 |= and($Rs32,~$Rt32)",
17214 tc_f429765c, TypeM>, Enc_2ae154 {
17215 let Inst{7-5} = 0b000;
17216 let Inst{13-13} = 0b0;
17217 let Inst{31-21} = 0b11101111001;
17218 let hasNewValue = 1;
17219 let opNewValue = 0;
17220 let prefersSlot3 = 1;
17221 let InputType = "reg";
17222 let Constraints = "$Rx32 = $Rx32in";
17223 }
17224 def M4_or_or : HInst<
17225 (outs IntRegs:$Rx32),
17226 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17227 "$Rx32 |= or($Rs32,$Rt32)",
17228 tc_f429765c, TypeM>, Enc_2ae154 {
17229 let Inst{7-5} = 0b000;
17230 let Inst{13-13} = 0b0;
17231 let Inst{31-21} = 0b11101111110;
17232 let hasNewValue = 1;
17233 let opNewValue = 0;
17234 let prefersSlot3 = 1;
17235 let InputType = "reg";
17236 let Constraints = "$Rx32 = $Rx32in";
17237 }
17238 def M4_or_xor : HInst<
17239 (outs IntRegs:$Rx32),
17240 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17241 "$Rx32 |= xor($Rs32,$Rt32)",
17242 tc_f429765c, TypeM>, Enc_2ae154 {
17243 let Inst{7-5} = 0b001;
17244 let Inst{13-13} = 0b0;
17245 let Inst{31-21} = 0b11101111110;
17246 let hasNewValue = 1;
17247 let opNewValue = 0;
17248 let prefersSlot3 = 1;
17249 let InputType = "reg";
17250 let Constraints = "$Rx32 = $Rx32in";
17251 }
17252 def M4_pmpyw : HInst<
17253 (outs DoubleRegs:$Rdd32),
17254 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17255 "$Rdd32 = pmpyw($Rs32,$Rt32)",
17256 tc_bafaade3, TypeM>, Enc_be32a5 {
17257 let Inst{7-5} = 0b111;
17258 let Inst{13-13} = 0b0;
17259 let Inst{31-21} = 0b11100101010;
17260 let prefersSlot3 = 1;
17261 }
17262 def M4_pmpyw_acc : HInst<
17263 (outs DoubleRegs:$Rxx32),
17264 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17265 "$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17266 tc_d773585a, TypeM>, Enc_61f0b0 {
17267 let Inst{7-5} = 0b111;
17268 let Inst{13-13} = 0b0;
17269 let Inst{31-21} = 0b11100111001;
17270 let prefersSlot3 = 1;
17271 let Constraints = "$Rxx32 = $Rxx32in";
17272 }
17273 def M4_vpmpyh : HInst<
17274 (outs DoubleRegs:$Rdd32),
17275 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17276 "$Rdd32 = vpmpyh($Rs32,$Rt32)",
17277 tc_bafaade3, TypeM>, Enc_be32a5 {
17278 let Inst{7-5} = 0b111;
17279 let Inst{13-13} = 0b0;
17280 let Inst{31-21} = 0b11100101110;
17281 let prefersSlot3 = 1;
17282 }
17283 def M4_vpmpyh_acc : HInst<
17284 (outs DoubleRegs:$Rxx32),
17285 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17286 "$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17287 tc_d773585a, TypeM>, Enc_61f0b0 {
17288 let Inst{7-5} = 0b111;
17289 let Inst{13-13} = 0b0;
17290 let Inst{31-21} = 0b11100111101;
17291 let prefersSlot3 = 1;
17292 let Constraints = "$Rxx32 = $Rxx32in";
17293 }
17294 def M4_vrmpyeh_acc_s0 : HInst<
17295 (outs DoubleRegs:$Rxx32),
17296 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17297 "$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17298 tc_d773585a, TypeM>, Enc_88c16c {
17299 let Inst{7-5} = 0b110;
17300 let Inst{13-13} = 0b0;
17301 let Inst{31-21} = 0b11101010001;
17302 let prefersSlot3 = 1;
17303 let Constraints = "$Rxx32 = $Rxx32in";
17304 }
17305 def M4_vrmpyeh_acc_s1 : HInst<
17306 (outs DoubleRegs:$Rxx32),
17307 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17308 "$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17309 tc_d773585a, TypeM>, Enc_88c16c {
17310 let Inst{7-5} = 0b110;
17311 let Inst{13-13} = 0b0;
17312 let Inst{31-21} = 0b11101010101;
17313 let prefersSlot3 = 1;
17314 let Constraints = "$Rxx32 = $Rxx32in";
17315 }
17316 def M4_vrmpyeh_s0 : HInst<
17317 (outs DoubleRegs:$Rdd32),
17318 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17319 "$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17320 tc_bafaade3, TypeM>, Enc_a56825 {
17321 let Inst{7-5} = 0b100;
17322 let Inst{13-13} = 0b0;
17323 let Inst{31-21} = 0b11101000010;
17324 let prefersSlot3 = 1;
17325 }
17326 def M4_vrmpyeh_s1 : HInst<
17327 (outs DoubleRegs:$Rdd32),
17328 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17329 "$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17330 tc_bafaade3, TypeM>, Enc_a56825 {
17331 let Inst{7-5} = 0b100;
17332 let Inst{13-13} = 0b0;
17333 let Inst{31-21} = 0b11101000110;
17334 let prefersSlot3 = 1;
17335 }
17336 def M4_vrmpyoh_acc_s0 : HInst<
17337 (outs DoubleRegs:$Rxx32),
17338 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17339 "$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17340 tc_d773585a, TypeM>, Enc_88c16c {
17341 let Inst{7-5} = 0b110;
17342 let Inst{13-13} = 0b0;
17343 let Inst{31-21} = 0b11101010011;
17344 let prefersSlot3 = 1;
17345 let Constraints = "$Rxx32 = $Rxx32in";
17346 }
17347 def M4_vrmpyoh_acc_s1 : HInst<
17348 (outs DoubleRegs:$Rxx32),
17349 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17350 "$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17351 tc_d773585a, TypeM>, Enc_88c16c {
17352 let Inst{7-5} = 0b110;
17353 let Inst{13-13} = 0b0;
17354 let Inst{31-21} = 0b11101010111;
17355 let prefersSlot3 = 1;
17356 let Constraints = "$Rxx32 = $Rxx32in";
17357 }
17358 def M4_vrmpyoh_s0 : HInst<
17359 (outs DoubleRegs:$Rdd32),
17360 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17361 "$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17362 tc_bafaade3, TypeM>, Enc_a56825 {
17363 let Inst{7-5} = 0b010;
17364 let Inst{13-13} = 0b0;
17365 let Inst{31-21} = 0b11101000001;
17366 let prefersSlot3 = 1;
17367 }
17368 def M4_vrmpyoh_s1 : HInst<
17369 (outs DoubleRegs:$Rdd32),
17370 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17371 "$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17372 tc_bafaade3, TypeM>, Enc_a56825 {
17373 let Inst{7-5} = 0b010;
17374 let Inst{13-13} = 0b0;
17375 let Inst{31-21} = 0b11101000101;
17376 let prefersSlot3 = 1;
17377 }
17378 def M4_xor_and : HInst<
17379 (outs IntRegs:$Rx32),
17380 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17381 "$Rx32 ^= and($Rs32,$Rt32)",
17382 tc_f429765c, TypeM>, Enc_2ae154 {
17383 let Inst{7-5} = 0b010;
17384 let Inst{13-13} = 0b0;
17385 let Inst{31-21} = 0b11101111110;
17386 let hasNewValue = 1;
17387 let opNewValue = 0;
17388 let prefersSlot3 = 1;
17389 let InputType = "reg";
17390 let Constraints = "$Rx32 = $Rx32in";
17391 }
17392 def M4_xor_andn : HInst<
17393 (outs IntRegs:$Rx32),
17394 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17395 "$Rx32 ^= and($Rs32,~$Rt32)",
17396 tc_f429765c, TypeM>, Enc_2ae154 {
17397 let Inst{7-5} = 0b010;
17398 let Inst{13-13} = 0b0;
17399 let Inst{31-21} = 0b11101111001;
17400 let hasNewValue = 1;
17401 let opNewValue = 0;
17402 let prefersSlot3 = 1;
17403 let InputType = "reg";
17404 let Constraints = "$Rx32 = $Rx32in";
17405 }
17406 def M4_xor_or : HInst<
17407 (outs IntRegs:$Rx32),
17408 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17409 "$Rx32 ^= or($Rs32,$Rt32)",
17410 tc_f429765c, TypeM>, Enc_2ae154 {
17411 let Inst{7-5} = 0b011;
17412 let Inst{13-13} = 0b0;
17413 let Inst{31-21} = 0b11101111110;
17414 let hasNewValue = 1;
17415 let opNewValue = 0;
17416 let prefersSlot3 = 1;
17417 let InputType = "reg";
17418 let Constraints = "$Rx32 = $Rx32in";
17419 }
17420 def M4_xor_xacc : HInst<
17421 (outs DoubleRegs:$Rxx32),
17422 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17423 "$Rxx32 ^= xor($Rss32,$Rtt32)",
17424 tc_f429765c, TypeS_3op>, Enc_88c16c {
17425 let Inst{7-5} = 0b000;
17426 let Inst{13-13} = 0b0;
17427 let Inst{31-21} = 0b11001010100;
17428 let prefersSlot3 = 1;
17429 let Constraints = "$Rxx32 = $Rxx32in";
17430 }
17431 def M5_vdmacbsu : HInst<
17432 (outs DoubleRegs:$Rxx32),
17433 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17434 "$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17435 tc_d773585a, TypeM>, Enc_88c16c {
17436 let Inst{7-5} = 0b001;
17437 let Inst{13-13} = 0b0;
17438 let Inst{31-21} = 0b11101010001;
17439 let prefersSlot3 = 1;
17440 let Defs = [USR_OVF];
17441 let Constraints = "$Rxx32 = $Rxx32in";
17442 }
17443 def M5_vdmpybsu : HInst<
17444 (outs DoubleRegs:$Rdd32),
17445 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17446 "$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17447 tc_bafaade3, TypeM>, Enc_a56825 {
17448 let Inst{7-5} = 0b001;
17449 let Inst{13-13} = 0b0;
17450 let Inst{31-21} = 0b11101000101;
17451 let prefersSlot3 = 1;
17452 let Defs = [USR_OVF];
17453 }
17454 def M5_vmacbsu : HInst<
17455 (outs DoubleRegs:$Rxx32),
17456 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17457 "$Rxx32 += vmpybsu($Rs32,$Rt32)",
17458 tc_d773585a, TypeM>, Enc_61f0b0 {
17459 let Inst{7-5} = 0b001;
17460 let Inst{13-13} = 0b0;
17461 let Inst{31-21} = 0b11100111110;
17462 let prefersSlot3 = 1;
17463 let Constraints = "$Rxx32 = $Rxx32in";
17464 }
17465 def M5_vmacbuu : HInst<
17466 (outs DoubleRegs:$Rxx32),
17467 (ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17468 "$Rxx32 += vmpybu($Rs32,$Rt32)",
17469 tc_d773585a, TypeM>, Enc_61f0b0 {
17470 let Inst{7-5} = 0b001;
17471 let Inst{13-13} = 0b0;
17472 let Inst{31-21} = 0b11100111100;
17473 let prefersSlot3 = 1;
17474 let Constraints = "$Rxx32 = $Rxx32in";
17475 }
17476 def M5_vmpybsu : HInst<
17477 (outs DoubleRegs:$Rdd32),
17478 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17479 "$Rdd32 = vmpybsu($Rs32,$Rt32)",
17480 tc_bafaade3, TypeM>, Enc_be32a5 {
17481 let Inst{7-5} = 0b001;
17482 let Inst{13-13} = 0b0;
17483 let Inst{31-21} = 0b11100101010;
17484 let prefersSlot3 = 1;
17485 }
17486 def M5_vmpybuu : HInst<
17487 (outs DoubleRegs:$Rdd32),
17488 (ins IntRegs:$Rs32, IntRegs:$Rt32),
17489 "$Rdd32 = vmpybu($Rs32,$Rt32)",
17490 tc_bafaade3, TypeM>, Enc_be32a5 {
17491 let Inst{7-5} = 0b001;
17492 let Inst{13-13} = 0b0;
17493 let Inst{31-21} = 0b11100101100;
17494 let prefersSlot3 = 1;
17495 }
17496 def M5_vrmacbsu : HInst<
17497 (outs DoubleRegs:$Rxx32),
17498 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17499 "$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17500 tc_d773585a, TypeM>, Enc_88c16c {
17501 let Inst{7-5} = 0b001;
17502 let Inst{13-13} = 0b0;
17503 let Inst{31-21} = 0b11101010110;
17504 let prefersSlot3 = 1;
17505 let Constraints = "$Rxx32 = $Rxx32in";
17506 }
17507 def M5_vrmacbuu : HInst<
17508 (outs DoubleRegs:$Rxx32),
17509 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17510 "$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17511 tc_d773585a, TypeM>, Enc_88c16c {
17512 let Inst{7-5} = 0b001;
17513 let Inst{13-13} = 0b0;
17514 let Inst{31-21} = 0b11101010100;
17515 let prefersSlot3 = 1;
17516 let Constraints = "$Rxx32 = $Rxx32in";
17517 }
17518 def M5_vrmpybsu : HInst<
17519 (outs DoubleRegs:$Rdd32),
17520 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17521 "$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17522 tc_bafaade3, TypeM>, Enc_a56825 {
17523 let Inst{7-5} = 0b001;
17524 let Inst{13-13} = 0b0;
17525 let Inst{31-21} = 0b11101000110;
17526 let prefersSlot3 = 1;
17527 }
17528 def M5_vrmpybuu : HInst<
17529 (outs DoubleRegs:$Rdd32),
17530 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17531 "$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17532 tc_bafaade3, TypeM>, Enc_a56825 {
17533 let Inst{7-5} = 0b001;
17534 let Inst{13-13} = 0b0;
17535 let Inst{31-21} = 0b11101000100;
17536 let prefersSlot3 = 1;
17537 }
17538 def M6_vabsdiffb : HInst<
17539 (outs DoubleRegs:$Rdd32),
17540 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17541 "$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17542 tc_9461ff31, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17543 let Inst{7-5} = 0b000;
17544 let Inst{13-13} = 0b0;
17545 let Inst{31-21} = 0b11101000111;
17546 let prefersSlot3 = 1;
17547 }
17548 def M6_vabsdiffub : HInst<
17549 (outs DoubleRegs:$Rdd32),
17550 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17551 "$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17552 tc_9461ff31, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17553 let Inst{7-5} = 0b000;
17554 let Inst{13-13} = 0b0;
17555 let Inst{31-21} = 0b11101000101;
17556 let prefersSlot3 = 1;
17557 }
17558 def PS_loadrbabs : HInst<
17559 (outs IntRegs:$Rd32),
17560 (ins u32_0Imm:$Ii),
17561 "$Rd32 = memb(#$Ii)",
17562 tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17563 let Inst{24-21} = 0b1000;
17564 let Inst{31-27} = 0b01001;
17565 let hasNewValue = 1;
17566 let opNewValue = 0;
17567 let addrMode = Absolute;
17568 let accessSize = ByteAccess;
17569 let mayLoad = 1;
17570 let isExtended = 1;
17571 let CextOpcode = "L2_loadrb";
17572 let BaseOpcode = "L4_loadrb_abs";
17573 let isPredicable = 1;
17574 let DecoderNamespace = "MustExtend";
17575 let isExtended = 1;
17576 let opExtendable = 1;
17577 let isExtentSigned = 0;
17578 let opExtentBits = 16;
17579 let opExtentAlign = 0;
17580 }
17581 def PS_loadrdabs : HInst<
17582 (outs DoubleRegs:$Rdd32),
17583 (ins u29_3Imm:$Ii),
17584 "$Rdd32 = memd(#$Ii)",
17585 tc_c4db48cb, TypeV2LDST>, Enc_509701, AddrModeRel {
17586 let Inst{24-21} = 0b1110;
17587 let Inst{31-27} = 0b01001;
17588 let addrMode = Absolute;
17589 let accessSize = DoubleWordAccess;
17590 let mayLoad = 1;
17591 let isExtended = 1;
17592 let CextOpcode = "L2_loadrd";
17593 let BaseOpcode = "L4_loadrd_abs";
17594 let isPredicable = 1;
17595 let DecoderNamespace = "MustExtend";
17596 let isExtended = 1;
17597 let opExtendable = 1;
17598 let isExtentSigned = 0;
17599 let opExtentBits = 19;
17600 let opExtentAlign = 3;
17601 }
17602 def PS_loadrhabs : HInst<
17603 (outs IntRegs:$Rd32),
17604 (ins u31_1Imm:$Ii),
17605 "$Rd32 = memh(#$Ii)",
17606 tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17607 let Inst{24-21} = 0b1010;
17608 let Inst{31-27} = 0b01001;
17609 let hasNewValue = 1;
17610 let opNewValue = 0;
17611 let addrMode = Absolute;
17612 let accessSize = HalfWordAccess;
17613 let mayLoad = 1;
17614 let isExtended = 1;
17615 let CextOpcode = "L2_loadrh";
17616 let BaseOpcode = "L4_loadrh_abs";
17617 let isPredicable = 1;
17618 let DecoderNamespace = "MustExtend";
17619 let isExtended = 1;
17620 let opExtendable = 1;
17621 let isExtentSigned = 0;
17622 let opExtentBits = 17;
17623 let opExtentAlign = 1;
17624 }
17625 def PS_loadriabs : HInst<
17626 (outs IntRegs:$Rd32),
17627 (ins u30_2Imm:$Ii),
17628 "$Rd32 = memw(#$Ii)",
17629 tc_c4db48cb, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17630 let Inst{24-21} = 0b1100;
17631 let Inst{31-27} = 0b01001;
17632 let hasNewValue = 1;
17633 let opNewValue = 0;
17634 let addrMode = Absolute;
17635 let accessSize = WordAccess;
17636 let mayLoad = 1;
17637 let isExtended = 1;
17638 let CextOpcode = "L2_loadri";
17639 let BaseOpcode = "L4_loadri_abs";
17640 let isPredicable = 1;
17641 let DecoderNamespace = "MustExtend";
17642 let isExtended = 1;
17643 let opExtendable = 1;
17644 let isExtentSigned = 0;
17645 let opExtentBits = 18;
17646 let opExtentAlign = 2;
17647 }
17648 def PS_loadrubabs : HInst<
17649 (outs IntRegs:$Rd32),
17650 (ins u32_0Imm:$Ii),
17651 "$Rd32 = memub(#$Ii)",
17652 tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17653 let Inst{24-21} = 0b1001;
17654 let Inst{31-27} = 0b01001;
17655 let hasNewValue = 1;
17656 let opNewValue = 0;
17657 let addrMode = Absolute;
17658 let accessSize = ByteAccess;
17659 let mayLoad = 1;
17660 let isExtended = 1;
17661 let CextOpcode = "L2_loadrub";
17662 let BaseOpcode = "L4_loadrub_abs";
17663 let isPredicable = 1;
17664 let DecoderNamespace = "MustExtend";
17665 let isExtended = 1;
17666 let opExtendable = 1;
17667 let isExtentSigned = 0;
17668 let opExtentBits = 16;
17669 let opExtentAlign = 0;
17670 }
17671 def PS_loadruhabs : HInst<
17672 (outs IntRegs:$Rd32),
17673 (ins u31_1Imm:$Ii),
17674 "$Rd32 = memuh(#$Ii)",
17675 tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17676 let Inst{24-21} = 0b1011;
17677 let Inst{31-27} = 0b01001;
17678 let hasNewValue = 1;
17679 let opNewValue = 0;
17680 let addrMode = Absolute;
17681 let accessSize = HalfWordAccess;
17682 let mayLoad = 1;
17683 let isExtended = 1;
17684 let CextOpcode = "L2_loadruh";
17685 let BaseOpcode = "L4_loadruh_abs";
17686 let isPredicable = 1;
17687 let DecoderNamespace = "MustExtend";
17688 let isExtended = 1;
17689 let opExtendable = 1;
17690 let isExtentSigned = 0;
17691 let opExtentBits = 17;
17692 let opExtentAlign = 1;
17693 }
17694 def PS_storerbabs : HInst<
17695 (outs),
17696 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
17697 "memb(#$Ii) = $Rt32",
17698 tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
17699 let Inst{24-21} = 0b0000;
17700 let Inst{31-27} = 0b01001;
17701 let addrMode = Absolute;
17702 let accessSize = ByteAccess;
17703 let isExtended = 1;
17704 let mayStore = 1;
17705 let CextOpcode = "S2_storerb";
17706 let BaseOpcode = "S2_storerbabs";
17707 let isPredicable = 1;
17708 let isNVStorable = 1;
17709 let DecoderNamespace = "MustExtend";
17710 let isExtended = 1;
17711 let opExtendable = 0;
17712 let isExtentSigned = 0;
17713 let opExtentBits = 16;
17714 let opExtentAlign = 0;
17715 }
17716 def PS_storerbnewabs : HInst<
17717 (outs),
17718 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
17719 "memb(#$Ii) = $Nt8.new",
17720 tc_5bf126a6, TypeV2LDST>, Enc_ad1831, AddrModeRel {
17721 let Inst{12-11} = 0b00;
17722 let Inst{24-21} = 0b0101;
17723 let Inst{31-27} = 0b01001;
17724 let addrMode = Absolute;
17725 let accessSize = ByteAccess;
17726 let isNVStore = 1;
17727 let isNewValue = 1;
17728 let isExtended = 1;
17729 let isRestrictNoSlot1Store = 1;
17730 let mayStore = 1;
17731 let CextOpcode = "S2_storerb";
17732 let BaseOpcode = "S2_storerbabs";
17733 let isPredicable = 1;
17734 let DecoderNamespace = "MustExtend";
17735 let isExtended = 1;
17736 let opExtendable = 0;
17737 let isExtentSigned = 0;
17738 let opExtentBits = 16;
17739 let opExtentAlign = 0;
17740 let opNewValue = 1;
17741 }
17742 def PS_storerdabs : HInst<
17743 (outs),
17744 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
17745 "memd(#$Ii) = $Rtt32",
17746 tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel {
17747 let Inst{24-21} = 0b0110;
17748 let Inst{31-27} = 0b01001;
17749 let addrMode = Absolute;
17750 let accessSize = DoubleWordAccess;
17751 let isExtended = 1;
17752 let mayStore = 1;
17753 let CextOpcode = "S2_storerd";
17754 let BaseOpcode = "S2_storerdabs";
17755 let isPredicable = 1;
17756 let DecoderNamespace = "MustExtend";
17757 let isExtended = 1;
17758 let opExtendable = 0;
17759 let isExtentSigned = 0;
17760 let opExtentBits = 19;
17761 let opExtentAlign = 3;
17762 }
17763 def PS_storerfabs : HInst<
17764 (outs),
17765 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
17766 "memh(#$Ii) = $Rt32.h",
17767 tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17768 let Inst{24-21} = 0b0011;
17769 let Inst{31-27} = 0b01001;
17770 let addrMode = Absolute;
17771 let accessSize = HalfWordAccess;
17772 let isExtended = 1;
17773 let mayStore = 1;
17774 let CextOpcode = "S2_storerf";
17775 let BaseOpcode = "S2_storerfabs";
17776 let isPredicable = 1;
17777 let DecoderNamespace = "MustExtend";
17778 let isExtended = 1;
17779 let opExtendable = 0;
17780 let isExtentSigned = 0;
17781 let opExtentBits = 17;
17782 let opExtentAlign = 1;
17783 }
17784 def PS_storerhabs : HInst<
17785 (outs),
17786 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
17787 "memh(#$Ii) = $Rt32",
17788 tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17789 let Inst{24-21} = 0b0010;
17790 let Inst{31-27} = 0b01001;
17791 let addrMode = Absolute;
17792 let accessSize = HalfWordAccess;
17793 let isExtended = 1;
17794 let mayStore = 1;
17795 let CextOpcode = "S2_storerh";
17796 let BaseOpcode = "S2_storerhabs";
17797 let isPredicable = 1;
17798 let isNVStorable = 1;
17799 let DecoderNamespace = "MustExtend";
17800 let isExtended = 1;
17801 let opExtendable = 0;
17802 let isExtentSigned = 0;
17803 let opExtentBits = 17;
17804 let opExtentAlign = 1;
17805 }
17806 def PS_storerhnewabs : HInst<
17807 (outs),
17808 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
17809 "memh(#$Ii) = $Nt8.new",
17810 tc_5bf126a6, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
17811 let Inst{12-11} = 0b01;
17812 let Inst{24-21} = 0b0101;
17813 let Inst{31-27} = 0b01001;
17814 let addrMode = Absolute;
17815 let accessSize = HalfWordAccess;
17816 let isNVStore = 1;
17817 let isNewValue = 1;
17818 let isExtended = 1;
17819 let isRestrictNoSlot1Store = 1;
17820 let mayStore = 1;
17821 let CextOpcode = "S2_storerh";
17822 let BaseOpcode = "S2_storerhabs";
17823 let isPredicable = 1;
17824 let DecoderNamespace = "MustExtend";
17825 let isExtended = 1;
17826 let opExtendable = 0;
17827 let isExtentSigned = 0;
17828 let opExtentBits = 17;
17829 let opExtentAlign = 1;
17830 let opNewValue = 1;
17831 }
17832 def PS_storeriabs : HInst<
17833 (outs),
17834 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
17835 "memw(#$Ii) = $Rt32",
17836 tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel {
17837 let Inst{24-21} = 0b0100;
17838 let Inst{31-27} = 0b01001;
17839 let addrMode = Absolute;
17840 let accessSize = WordAccess;
17841 let isExtended = 1;
17842 let mayStore = 1;
17843 let CextOpcode = "S2_storeri";
17844 let BaseOpcode = "S2_storeriabs";
17845 let isPredicable = 1;
17846 let isNVStorable = 1;
17847 let DecoderNamespace = "MustExtend";
17848 let isExtended = 1;
17849 let opExtendable = 0;
17850 let isExtentSigned = 0;
17851 let opExtentBits = 18;
17852 let opExtentAlign = 2;
17853 }
17854 def PS_storerinewabs : HInst<
17855 (outs),
17856 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
17857 "memw(#$Ii) = $Nt8.new",
17858 tc_5bf126a6, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
17859 let Inst{12-11} = 0b10;
17860 let Inst{24-21} = 0b0101;
17861 let Inst{31-27} = 0b01001;
17862 let addrMode = Absolute;
17863 let accessSize = WordAccess;
17864 let isNVStore = 1;
17865 let isNewValue = 1;
17866 let isExtended = 1;
17867 let isRestrictNoSlot1Store = 1;
17868 let mayStore = 1;
17869 let CextOpcode = "S2_storeri";
17870 let BaseOpcode = "S2_storeriabs";
17871 let isPredicable = 1;
17872 let DecoderNamespace = "MustExtend";
17873 let isExtended = 1;
17874 let opExtendable = 0;
17875 let isExtentSigned = 0;
17876 let opExtentBits = 18;
17877 let opExtentAlign = 2;
17878 let opNewValue = 1;
17879 }
17880 def S2_addasl_rrri : HInst<
17881 (outs IntRegs:$Rd32),
17882 (ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
17883 "$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
17884 tc_f675fee8, TypeS_3op>, Enc_47ef61 {
17885 let Inst{13-13} = 0b0;
17886 let Inst{31-21} = 0b11000100000;
17887 let hasNewValue = 1;
17888 let opNewValue = 0;
17889 let prefersSlot3 = 1;
17890 }
17891 def S2_allocframe : HInst<
17892 (outs IntRegs:$Rx32),
17893 (ins IntRegs:$Rx32in, u11_3Imm:$Ii),
17894 "allocframe($Rx32,#$Ii):raw",
17895 tc_b44ecf75, TypeST>, Enc_22c845 {
17896 let Inst{13-11} = 0b000;
17897 let Inst{31-21} = 0b10100000100;
17898 let hasNewValue = 1;
17899 let opNewValue = 0;
17900 let addrMode = BaseImmOffset;
17901 let accessSize = DoubleWordAccess;
17902 let mayStore = 1;
17903 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
17904 let Defs = [R30];
17905 let Constraints = "$Rx32 = $Rx32in";
17906 }
17907 def S2_asl_i_p : HInst<
17908 (outs DoubleRegs:$Rdd32),
17909 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17910 "$Rdd32 = asl($Rss32,#$Ii)",
17911 tc_946df596, TypeS_2op>, Enc_5eac98 {
17912 let Inst{7-5} = 0b010;
17913 let Inst{31-21} = 0b10000000000;
17914 }
17915 def S2_asl_i_p_acc : HInst<
17916 (outs DoubleRegs:$Rxx32),
17917 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17918 "$Rxx32 += asl($Rss32,#$Ii)",
17919 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
17920 let Inst{7-5} = 0b110;
17921 let Inst{31-21} = 0b10000010000;
17922 let prefersSlot3 = 1;
17923 let Constraints = "$Rxx32 = $Rxx32in";
17924 }
17925 def S2_asl_i_p_and : HInst<
17926 (outs DoubleRegs:$Rxx32),
17927 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17928 "$Rxx32 &= asl($Rss32,#$Ii)",
17929 tc_f429765c, TypeS_2op>, Enc_70fb07 {
17930 let Inst{7-5} = 0b010;
17931 let Inst{31-21} = 0b10000010010;
17932 let prefersSlot3 = 1;
17933 let Constraints = "$Rxx32 = $Rxx32in";
17934 }
17935 def S2_asl_i_p_nac : HInst<
17936 (outs DoubleRegs:$Rxx32),
17937 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17938 "$Rxx32 -= asl($Rss32,#$Ii)",
17939 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
17940 let Inst{7-5} = 0b010;
17941 let Inst{31-21} = 0b10000010000;
17942 let prefersSlot3 = 1;
17943 let Constraints = "$Rxx32 = $Rxx32in";
17944 }
17945 def S2_asl_i_p_or : HInst<
17946 (outs DoubleRegs:$Rxx32),
17947 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17948 "$Rxx32 |= asl($Rss32,#$Ii)",
17949 tc_f429765c, TypeS_2op>, Enc_70fb07 {
17950 let Inst{7-5} = 0b110;
17951 let Inst{31-21} = 0b10000010010;
17952 let prefersSlot3 = 1;
17953 let Constraints = "$Rxx32 = $Rxx32in";
17954 }
17955 def S2_asl_i_p_xacc : HInst<
17956 (outs DoubleRegs:$Rxx32),
17957 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17958 "$Rxx32 ^= asl($Rss32,#$Ii)",
17959 tc_f429765c, TypeS_2op>, Enc_70fb07 {
17960 let Inst{7-5} = 0b010;
17961 let Inst{31-21} = 0b10000010100;
17962 let prefersSlot3 = 1;
17963 let Constraints = "$Rxx32 = $Rxx32in";
17964 }
17965 def S2_asl_i_r : HInst<
17966 (outs IntRegs:$Rd32),
17967 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
17968 "$Rd32 = asl($Rs32,#$Ii)",
17969 tc_946df596, TypeS_2op>, Enc_a05677 {
17970 let Inst{7-5} = 0b010;
17971 let Inst{13-13} = 0b0;
17972 let Inst{31-21} = 0b10001100000;
17973 let hasNewValue = 1;
17974 let opNewValue = 0;
17975 }
17976 def S2_asl_i_r_acc : HInst<
17977 (outs IntRegs:$Rx32),
17978 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17979 "$Rx32 += asl($Rs32,#$Ii)",
17980 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
17981 let Inst{7-5} = 0b110;
17982 let Inst{13-13} = 0b0;
17983 let Inst{31-21} = 0b10001110000;
17984 let hasNewValue = 1;
17985 let opNewValue = 0;
17986 let prefersSlot3 = 1;
17987 let Constraints = "$Rx32 = $Rx32in";
17988 }
17989 def S2_asl_i_r_and : HInst<
17990 (outs IntRegs:$Rx32),
17991 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17992 "$Rx32 &= asl($Rs32,#$Ii)",
17993 tc_f429765c, TypeS_2op>, Enc_28a2dc {
17994 let Inst{7-5} = 0b010;
17995 let Inst{13-13} = 0b0;
17996 let Inst{31-21} = 0b10001110010;
17997 let hasNewValue = 1;
17998 let opNewValue = 0;
17999 let prefersSlot3 = 1;
18000 let Constraints = "$Rx32 = $Rx32in";
18001 }
18002 def S2_asl_i_r_nac : HInst<
18003 (outs IntRegs:$Rx32),
18004 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18005 "$Rx32 -= asl($Rs32,#$Ii)",
18006 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18007 let Inst{7-5} = 0b010;
18008 let Inst{13-13} = 0b0;
18009 let Inst{31-21} = 0b10001110000;
18010 let hasNewValue = 1;
18011 let opNewValue = 0;
18012 let prefersSlot3 = 1;
18013 let Constraints = "$Rx32 = $Rx32in";
18014 }
18015 def S2_asl_i_r_or : HInst<
18016 (outs IntRegs:$Rx32),
18017 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18018 "$Rx32 |= asl($Rs32,#$Ii)",
18019 tc_f429765c, TypeS_2op>, Enc_28a2dc {
18020 let Inst{7-5} = 0b110;
18021 let Inst{13-13} = 0b0;
18022 let Inst{31-21} = 0b10001110010;
18023 let hasNewValue = 1;
18024 let opNewValue = 0;
18025 let prefersSlot3 = 1;
18026 let Constraints = "$Rx32 = $Rx32in";
18027 }
18028 def S2_asl_i_r_sat : HInst<
18029 (outs IntRegs:$Rd32),
18030 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18031 "$Rd32 = asl($Rs32,#$Ii):sat",
18032 tc_779080bf, TypeS_2op>, Enc_a05677 {
18033 let Inst{7-5} = 0b010;
18034 let Inst{13-13} = 0b0;
18035 let Inst{31-21} = 0b10001100010;
18036 let hasNewValue = 1;
18037 let opNewValue = 0;
18038 let prefersSlot3 = 1;
18039 let Defs = [USR_OVF];
18040 }
18041 def S2_asl_i_r_xacc : HInst<
18042 (outs IntRegs:$Rx32),
18043 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18044 "$Rx32 ^= asl($Rs32,#$Ii)",
18045 tc_f429765c, TypeS_2op>, Enc_28a2dc {
18046 let Inst{7-5} = 0b010;
18047 let Inst{13-13} = 0b0;
18048 let Inst{31-21} = 0b10001110100;
18049 let hasNewValue = 1;
18050 let opNewValue = 0;
18051 let prefersSlot3 = 1;
18052 let Constraints = "$Rx32 = $Rx32in";
18053 }
18054 def S2_asl_i_vh : HInst<
18055 (outs DoubleRegs:$Rdd32),
18056 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18057 "$Rdd32 = vaslh($Rss32,#$Ii)",
18058 tc_946df596, TypeS_2op>, Enc_12b6e9 {
18059 let Inst{7-5} = 0b010;
18060 let Inst{13-12} = 0b00;
18061 let Inst{31-21} = 0b10000000100;
18062 }
18063 def S2_asl_i_vw : HInst<
18064 (outs DoubleRegs:$Rdd32),
18065 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18066 "$Rdd32 = vaslw($Rss32,#$Ii)",
18067 tc_946df596, TypeS_2op>, Enc_7e5a82 {
18068 let Inst{7-5} = 0b010;
18069 let Inst{13-13} = 0b0;
18070 let Inst{31-21} = 0b10000000010;
18071 }
18072 def S2_asl_r_p : HInst<
18073 (outs DoubleRegs:$Rdd32),
18074 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18075 "$Rdd32 = asl($Rss32,$Rt32)",
18076 tc_946df596, TypeS_3op>, Enc_927852 {
18077 let Inst{7-5} = 0b100;
18078 let Inst{13-13} = 0b0;
18079 let Inst{31-21} = 0b11000011100;
18080 }
18081 def S2_asl_r_p_acc : HInst<
18082 (outs DoubleRegs:$Rxx32),
18083 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18084 "$Rxx32 += asl($Rss32,$Rt32)",
18085 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18086 let Inst{7-5} = 0b100;
18087 let Inst{13-13} = 0b0;
18088 let Inst{31-21} = 0b11001011110;
18089 let prefersSlot3 = 1;
18090 let Constraints = "$Rxx32 = $Rxx32in";
18091 }
18092 def S2_asl_r_p_and : HInst<
18093 (outs DoubleRegs:$Rxx32),
18094 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18095 "$Rxx32 &= asl($Rss32,$Rt32)",
18096 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18097 let Inst{7-5} = 0b100;
18098 let Inst{13-13} = 0b0;
18099 let Inst{31-21} = 0b11001011010;
18100 let prefersSlot3 = 1;
18101 let Constraints = "$Rxx32 = $Rxx32in";
18102 }
18103 def S2_asl_r_p_nac : HInst<
18104 (outs DoubleRegs:$Rxx32),
18105 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18106 "$Rxx32 -= asl($Rss32,$Rt32)",
18107 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18108 let Inst{7-5} = 0b100;
18109 let Inst{13-13} = 0b0;
18110 let Inst{31-21} = 0b11001011100;
18111 let prefersSlot3 = 1;
18112 let Constraints = "$Rxx32 = $Rxx32in";
18113 }
18114 def S2_asl_r_p_or : HInst<
18115 (outs DoubleRegs:$Rxx32),
18116 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18117 "$Rxx32 |= asl($Rss32,$Rt32)",
18118 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18119 let Inst{7-5} = 0b100;
18120 let Inst{13-13} = 0b0;
18121 let Inst{31-21} = 0b11001011000;
18122 let prefersSlot3 = 1;
18123 let Constraints = "$Rxx32 = $Rxx32in";
18124 }
18125 def S2_asl_r_p_xor : HInst<
18126 (outs DoubleRegs:$Rxx32),
18127 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18128 "$Rxx32 ^= asl($Rss32,$Rt32)",
18129 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18130 let Inst{7-5} = 0b100;
18131 let Inst{13-13} = 0b0;
18132 let Inst{31-21} = 0b11001011011;
18133 let prefersSlot3 = 1;
18134 let Constraints = "$Rxx32 = $Rxx32in";
18135 }
18136 def S2_asl_r_r : HInst<
18137 (outs IntRegs:$Rd32),
18138 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18139 "$Rd32 = asl($Rs32,$Rt32)",
18140 tc_946df596, TypeS_3op>, Enc_5ab2be {
18141 let Inst{7-5} = 0b100;
18142 let Inst{13-13} = 0b0;
18143 let Inst{31-21} = 0b11000110010;
18144 let hasNewValue = 1;
18145 let opNewValue = 0;
18146 }
18147 def S2_asl_r_r_acc : HInst<
18148 (outs IntRegs:$Rx32),
18149 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18150 "$Rx32 += asl($Rs32,$Rt32)",
18151 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18152 let Inst{7-5} = 0b100;
18153 let Inst{13-13} = 0b0;
18154 let Inst{31-21} = 0b11001100110;
18155 let hasNewValue = 1;
18156 let opNewValue = 0;
18157 let prefersSlot3 = 1;
18158 let Constraints = "$Rx32 = $Rx32in";
18159 }
18160 def S2_asl_r_r_and : HInst<
18161 (outs IntRegs:$Rx32),
18162 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18163 "$Rx32 &= asl($Rs32,$Rt32)",
18164 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18165 let Inst{7-5} = 0b100;
18166 let Inst{13-13} = 0b0;
18167 let Inst{31-21} = 0b11001100010;
18168 let hasNewValue = 1;
18169 let opNewValue = 0;
18170 let prefersSlot3 = 1;
18171 let Constraints = "$Rx32 = $Rx32in";
18172 }
18173 def S2_asl_r_r_nac : HInst<
18174 (outs IntRegs:$Rx32),
18175 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18176 "$Rx32 -= asl($Rs32,$Rt32)",
18177 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18178 let Inst{7-5} = 0b100;
18179 let Inst{13-13} = 0b0;
18180 let Inst{31-21} = 0b11001100100;
18181 let hasNewValue = 1;
18182 let opNewValue = 0;
18183 let prefersSlot3 = 1;
18184 let Constraints = "$Rx32 = $Rx32in";
18185 }
18186 def S2_asl_r_r_or : HInst<
18187 (outs IntRegs:$Rx32),
18188 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18189 "$Rx32 |= asl($Rs32,$Rt32)",
18190 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18191 let Inst{7-5} = 0b100;
18192 let Inst{13-13} = 0b0;
18193 let Inst{31-21} = 0b11001100000;
18194 let hasNewValue = 1;
18195 let opNewValue = 0;
18196 let prefersSlot3 = 1;
18197 let Constraints = "$Rx32 = $Rx32in";
18198 }
18199 def S2_asl_r_r_sat : HInst<
18200 (outs IntRegs:$Rd32),
18201 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18202 "$Rd32 = asl($Rs32,$Rt32):sat",
18203 tc_779080bf, TypeS_3op>, Enc_5ab2be {
18204 let Inst{7-5} = 0b100;
18205 let Inst{13-13} = 0b0;
18206 let Inst{31-21} = 0b11000110000;
18207 let hasNewValue = 1;
18208 let opNewValue = 0;
18209 let prefersSlot3 = 1;
18210 let Defs = [USR_OVF];
18211 }
18212 def S2_asl_r_vh : HInst<
18213 (outs DoubleRegs:$Rdd32),
18214 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18215 "$Rdd32 = vaslh($Rss32,$Rt32)",
18216 tc_946df596, TypeS_3op>, Enc_927852 {
18217 let Inst{7-5} = 0b100;
18218 let Inst{13-13} = 0b0;
18219 let Inst{31-21} = 0b11000011010;
18220 }
18221 def S2_asl_r_vw : HInst<
18222 (outs DoubleRegs:$Rdd32),
18223 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18224 "$Rdd32 = vaslw($Rss32,$Rt32)",
18225 tc_946df596, TypeS_3op>, Enc_927852 {
18226 let Inst{7-5} = 0b100;
18227 let Inst{13-13} = 0b0;
18228 let Inst{31-21} = 0b11000011000;
18229 }
18230 def S2_asr_i_p : HInst<
18231 (outs DoubleRegs:$Rdd32),
18232 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18233 "$Rdd32 = asr($Rss32,#$Ii)",
18234 tc_946df596, TypeS_2op>, Enc_5eac98 {
18235 let Inst{7-5} = 0b000;
18236 let Inst{31-21} = 0b10000000000;
18237 }
18238 def S2_asr_i_p_acc : HInst<
18239 (outs DoubleRegs:$Rxx32),
18240 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18241 "$Rxx32 += asr($Rss32,#$Ii)",
18242 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
18243 let Inst{7-5} = 0b100;
18244 let Inst{31-21} = 0b10000010000;
18245 let prefersSlot3 = 1;
18246 let Constraints = "$Rxx32 = $Rxx32in";
18247 }
18248 def S2_asr_i_p_and : HInst<
18249 (outs DoubleRegs:$Rxx32),
18250 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18251 "$Rxx32 &= asr($Rss32,#$Ii)",
18252 tc_f429765c, TypeS_2op>, Enc_70fb07 {
18253 let Inst{7-5} = 0b000;
18254 let Inst{31-21} = 0b10000010010;
18255 let prefersSlot3 = 1;
18256 let Constraints = "$Rxx32 = $Rxx32in";
18257 }
18258 def S2_asr_i_p_nac : HInst<
18259 (outs DoubleRegs:$Rxx32),
18260 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18261 "$Rxx32 -= asr($Rss32,#$Ii)",
18262 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
18263 let Inst{7-5} = 0b000;
18264 let Inst{31-21} = 0b10000010000;
18265 let prefersSlot3 = 1;
18266 let Constraints = "$Rxx32 = $Rxx32in";
18267 }
18268 def S2_asr_i_p_or : HInst<
18269 (outs DoubleRegs:$Rxx32),
18270 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18271 "$Rxx32 |= asr($Rss32,#$Ii)",
18272 tc_f429765c, TypeS_2op>, Enc_70fb07 {
18273 let Inst{7-5} = 0b100;
18274 let Inst{31-21} = 0b10000010010;
18275 let prefersSlot3 = 1;
18276 let Constraints = "$Rxx32 = $Rxx32in";
18277 }
18278 def S2_asr_i_p_rnd : HInst<
18279 (outs DoubleRegs:$Rdd32),
18280 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18281 "$Rdd32 = asr($Rss32,#$Ii):rnd",
18282 tc_002cb246, TypeS_2op>, Enc_5eac98 {
18283 let Inst{7-5} = 0b111;
18284 let Inst{31-21} = 0b10000000110;
18285 let prefersSlot3 = 1;
18286 }
18287 def S2_asr_i_p_rnd_goodsyntax : HInst<
18288 (outs DoubleRegs:$Rdd32),
18289 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18290 "$Rdd32 = asrrnd($Rss32,#$Ii)",
18291 tc_002cb246, TypeS_2op> {
18292 let isPseudo = 1;
18293 }
18294 def S2_asr_i_r : HInst<
18295 (outs IntRegs:$Rd32),
18296 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18297 "$Rd32 = asr($Rs32,#$Ii)",
18298 tc_946df596, TypeS_2op>, Enc_a05677 {
18299 let Inst{7-5} = 0b000;
18300 let Inst{13-13} = 0b0;
18301 let Inst{31-21} = 0b10001100000;
18302 let hasNewValue = 1;
18303 let opNewValue = 0;
18304 }
18305 def S2_asr_i_r_acc : HInst<
18306 (outs IntRegs:$Rx32),
18307 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18308 "$Rx32 += asr($Rs32,#$Ii)",
18309 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18310 let Inst{7-5} = 0b100;
18311 let Inst{13-13} = 0b0;
18312 let Inst{31-21} = 0b10001110000;
18313 let hasNewValue = 1;
18314 let opNewValue = 0;
18315 let prefersSlot3 = 1;
18316 let Constraints = "$Rx32 = $Rx32in";
18317 }
18318 def S2_asr_i_r_and : HInst<
18319 (outs IntRegs:$Rx32),
18320 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18321 "$Rx32 &= asr($Rs32,#$Ii)",
18322 tc_f429765c, TypeS_2op>, Enc_28a2dc {
18323 let Inst{7-5} = 0b000;
18324 let Inst{13-13} = 0b0;
18325 let Inst{31-21} = 0b10001110010;
18326 let hasNewValue = 1;
18327 let opNewValue = 0;
18328 let prefersSlot3 = 1;
18329 let Constraints = "$Rx32 = $Rx32in";
18330 }
18331 def S2_asr_i_r_nac : HInst<
18332 (outs IntRegs:$Rx32),
18333 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18334 "$Rx32 -= asr($Rs32,#$Ii)",
18335 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18336 let Inst{7-5} = 0b000;
18337 let Inst{13-13} = 0b0;
18338 let Inst{31-21} = 0b10001110000;
18339 let hasNewValue = 1;
18340 let opNewValue = 0;
18341 let prefersSlot3 = 1;
18342 let Constraints = "$Rx32 = $Rx32in";
18343 }
18344 def S2_asr_i_r_or : HInst<
18345 (outs IntRegs:$Rx32),
18346 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18347 "$Rx32 |= asr($Rs32,#$Ii)",
18348 tc_f429765c, TypeS_2op>, Enc_28a2dc {
18349 let Inst{7-5} = 0b100;
18350 let Inst{13-13} = 0b0;
18351 let Inst{31-21} = 0b10001110010;
18352 let hasNewValue = 1;
18353 let opNewValue = 0;
18354 let prefersSlot3 = 1;
18355 let Constraints = "$Rx32 = $Rx32in";
18356 }
18357 def S2_asr_i_r_rnd : HInst<
18358 (outs IntRegs:$Rd32),
18359 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18360 "$Rd32 = asr($Rs32,#$Ii):rnd",
18361 tc_002cb246, TypeS_2op>, Enc_a05677 {
18362 let Inst{7-5} = 0b000;
18363 let Inst{13-13} = 0b0;
18364 let Inst{31-21} = 0b10001100010;
18365 let hasNewValue = 1;
18366 let opNewValue = 0;
18367 let prefersSlot3 = 1;
18368 }
18369 def S2_asr_i_r_rnd_goodsyntax : HInst<
18370 (outs IntRegs:$Rd32),
18371 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18372 "$Rd32 = asrrnd($Rs32,#$Ii)",
18373 tc_002cb246, TypeS_2op> {
18374 let hasNewValue = 1;
18375 let opNewValue = 0;
18376 let isPseudo = 1;
18377 }
18378 def S2_asr_i_svw_trun : HInst<
18379 (outs IntRegs:$Rd32),
18380 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18381 "$Rd32 = vasrw($Rss32,#$Ii)",
18382 tc_4414d8b1, TypeS_2op>, Enc_8dec2e {
18383 let Inst{7-5} = 0b010;
18384 let Inst{13-13} = 0b0;
18385 let Inst{31-21} = 0b10001000110;
18386 let hasNewValue = 1;
18387 let opNewValue = 0;
18388 let prefersSlot3 = 1;
18389 }
18390 def S2_asr_i_vh : HInst<
18391 (outs DoubleRegs:$Rdd32),
18392 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18393 "$Rdd32 = vasrh($Rss32,#$Ii)",
18394 tc_946df596, TypeS_2op>, Enc_12b6e9 {
18395 let Inst{7-5} = 0b000;
18396 let Inst{13-12} = 0b00;
18397 let Inst{31-21} = 0b10000000100;
18398 }
18399 def S2_asr_i_vw : HInst<
18400 (outs DoubleRegs:$Rdd32),
18401 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18402 "$Rdd32 = vasrw($Rss32,#$Ii)",
18403 tc_946df596, TypeS_2op>, Enc_7e5a82 {
18404 let Inst{7-5} = 0b000;
18405 let Inst{13-13} = 0b0;
18406 let Inst{31-21} = 0b10000000010;
18407 }
18408 def S2_asr_r_p : HInst<
18409 (outs DoubleRegs:$Rdd32),
18410 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18411 "$Rdd32 = asr($Rss32,$Rt32)",
18412 tc_946df596, TypeS_3op>, Enc_927852 {
18413 let Inst{7-5} = 0b000;
18414 let Inst{13-13} = 0b0;
18415 let Inst{31-21} = 0b11000011100;
18416 }
18417 def S2_asr_r_p_acc : HInst<
18418 (outs DoubleRegs:$Rxx32),
18419 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18420 "$Rxx32 += asr($Rss32,$Rt32)",
18421 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18422 let Inst{7-5} = 0b000;
18423 let Inst{13-13} = 0b0;
18424 let Inst{31-21} = 0b11001011110;
18425 let prefersSlot3 = 1;
18426 let Constraints = "$Rxx32 = $Rxx32in";
18427 }
18428 def S2_asr_r_p_and : HInst<
18429 (outs DoubleRegs:$Rxx32),
18430 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18431 "$Rxx32 &= asr($Rss32,$Rt32)",
18432 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18433 let Inst{7-5} = 0b000;
18434 let Inst{13-13} = 0b0;
18435 let Inst{31-21} = 0b11001011010;
18436 let prefersSlot3 = 1;
18437 let Constraints = "$Rxx32 = $Rxx32in";
18438 }
18439 def S2_asr_r_p_nac : HInst<
18440 (outs DoubleRegs:$Rxx32),
18441 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18442 "$Rxx32 -= asr($Rss32,$Rt32)",
18443 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18444 let Inst{7-5} = 0b000;
18445 let Inst{13-13} = 0b0;
18446 let Inst{31-21} = 0b11001011100;
18447 let prefersSlot3 = 1;
18448 let Constraints = "$Rxx32 = $Rxx32in";
18449 }
18450 def S2_asr_r_p_or : HInst<
18451 (outs DoubleRegs:$Rxx32),
18452 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18453 "$Rxx32 |= asr($Rss32,$Rt32)",
18454 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18455 let Inst{7-5} = 0b000;
18456 let Inst{13-13} = 0b0;
18457 let Inst{31-21} = 0b11001011000;
18458 let prefersSlot3 = 1;
18459 let Constraints = "$Rxx32 = $Rxx32in";
18460 }
18461 def S2_asr_r_p_xor : HInst<
18462 (outs DoubleRegs:$Rxx32),
18463 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18464 "$Rxx32 ^= asr($Rss32,$Rt32)",
18465 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18466 let Inst{7-5} = 0b000;
18467 let Inst{13-13} = 0b0;
18468 let Inst{31-21} = 0b11001011011;
18469 let prefersSlot3 = 1;
18470 let Constraints = "$Rxx32 = $Rxx32in";
18471 }
18472 def S2_asr_r_r : HInst<
18473 (outs IntRegs:$Rd32),
18474 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18475 "$Rd32 = asr($Rs32,$Rt32)",
18476 tc_946df596, TypeS_3op>, Enc_5ab2be {
18477 let Inst{7-5} = 0b000;
18478 let Inst{13-13} = 0b0;
18479 let Inst{31-21} = 0b11000110010;
18480 let hasNewValue = 1;
18481 let opNewValue = 0;
18482 }
18483 def S2_asr_r_r_acc : HInst<
18484 (outs IntRegs:$Rx32),
18485 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18486 "$Rx32 += asr($Rs32,$Rt32)",
18487 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18488 let Inst{7-5} = 0b000;
18489 let Inst{13-13} = 0b0;
18490 let Inst{31-21} = 0b11001100110;
18491 let hasNewValue = 1;
18492 let opNewValue = 0;
18493 let prefersSlot3 = 1;
18494 let Constraints = "$Rx32 = $Rx32in";
18495 }
18496 def S2_asr_r_r_and : HInst<
18497 (outs IntRegs:$Rx32),
18498 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18499 "$Rx32 &= asr($Rs32,$Rt32)",
18500 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18501 let Inst{7-5} = 0b000;
18502 let Inst{13-13} = 0b0;
18503 let Inst{31-21} = 0b11001100010;
18504 let hasNewValue = 1;
18505 let opNewValue = 0;
18506 let prefersSlot3 = 1;
18507 let Constraints = "$Rx32 = $Rx32in";
18508 }
18509 def S2_asr_r_r_nac : HInst<
18510 (outs IntRegs:$Rx32),
18511 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18512 "$Rx32 -= asr($Rs32,$Rt32)",
18513 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18514 let Inst{7-5} = 0b000;
18515 let Inst{13-13} = 0b0;
18516 let Inst{31-21} = 0b11001100100;
18517 let hasNewValue = 1;
18518 let opNewValue = 0;
18519 let prefersSlot3 = 1;
18520 let Constraints = "$Rx32 = $Rx32in";
18521 }
18522 def S2_asr_r_r_or : HInst<
18523 (outs IntRegs:$Rx32),
18524 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18525 "$Rx32 |= asr($Rs32,$Rt32)",
18526 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18527 let Inst{7-5} = 0b000;
18528 let Inst{13-13} = 0b0;
18529 let Inst{31-21} = 0b11001100000;
18530 let hasNewValue = 1;
18531 let opNewValue = 0;
18532 let prefersSlot3 = 1;
18533 let Constraints = "$Rx32 = $Rx32in";
18534 }
18535 def S2_asr_r_r_sat : HInst<
18536 (outs IntRegs:$Rd32),
18537 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18538 "$Rd32 = asr($Rs32,$Rt32):sat",
18539 tc_779080bf, TypeS_3op>, Enc_5ab2be {
18540 let Inst{7-5} = 0b000;
18541 let Inst{13-13} = 0b0;
18542 let Inst{31-21} = 0b11000110000;
18543 let hasNewValue = 1;
18544 let opNewValue = 0;
18545 let prefersSlot3 = 1;
18546 let Defs = [USR_OVF];
18547 }
18548 def S2_asr_r_svw_trun : HInst<
18549 (outs IntRegs:$Rd32),
18550 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18551 "$Rd32 = vasrw($Rss32,$Rt32)",
18552 tc_4414d8b1, TypeS_3op>, Enc_3d5b28 {
18553 let Inst{7-5} = 0b010;
18554 let Inst{13-13} = 0b0;
18555 let Inst{31-21} = 0b11000101000;
18556 let hasNewValue = 1;
18557 let opNewValue = 0;
18558 let prefersSlot3 = 1;
18559 }
18560 def S2_asr_r_vh : HInst<
18561 (outs DoubleRegs:$Rdd32),
18562 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18563 "$Rdd32 = vasrh($Rss32,$Rt32)",
18564 tc_946df596, TypeS_3op>, Enc_927852 {
18565 let Inst{7-5} = 0b000;
18566 let Inst{13-13} = 0b0;
18567 let Inst{31-21} = 0b11000011010;
18568 }
18569 def S2_asr_r_vw : HInst<
18570 (outs DoubleRegs:$Rdd32),
18571 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18572 "$Rdd32 = vasrw($Rss32,$Rt32)",
18573 tc_946df596, TypeS_3op>, Enc_927852 {
18574 let Inst{7-5} = 0b000;
18575 let Inst{13-13} = 0b0;
18576 let Inst{31-21} = 0b11000011000;
18577 }
18578 def S2_brev : HInst<
18579 (outs IntRegs:$Rd32),
18580 (ins IntRegs:$Rs32),
18581 "$Rd32 = brev($Rs32)",
18582 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18583 let Inst{13-5} = 0b000000110;
18584 let Inst{31-21} = 0b10001100010;
18585 let hasNewValue = 1;
18586 let opNewValue = 0;
18587 let prefersSlot3 = 1;
18588 }
18589 def S2_brevp : HInst<
18590 (outs DoubleRegs:$Rdd32),
18591 (ins DoubleRegs:$Rss32),
18592 "$Rdd32 = brev($Rss32)",
18593 tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18594 let Inst{13-5} = 0b000000110;
18595 let Inst{31-21} = 0b10000000110;
18596 let prefersSlot3 = 1;
18597 }
18598 def S2_cabacdecbin : HInst<
18599 (outs DoubleRegs:$Rdd32),
18600 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18601 "$Rdd32 = decbin($Rss32,$Rtt32)",
18602 tc_76851da1, TypeS_3op>, Enc_a56825 {
18603 let Inst{7-5} = 0b110;
18604 let Inst{13-13} = 0b0;
18605 let Inst{31-21} = 0b11000001110;
18606 let isPredicateLate = 1;
18607 let prefersSlot3 = 1;
18608 let Defs = [P0];
18609 }
18610 def S2_cl0 : HInst<
18611 (outs IntRegs:$Rd32),
18612 (ins IntRegs:$Rs32),
18613 "$Rd32 = cl0($Rs32)",
18614 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18615 let Inst{13-5} = 0b000000101;
18616 let Inst{31-21} = 0b10001100000;
18617 let hasNewValue = 1;
18618 let opNewValue = 0;
18619 let prefersSlot3 = 1;
18620 }
18621 def S2_cl0p : HInst<
18622 (outs IntRegs:$Rd32),
18623 (ins DoubleRegs:$Rss32),
18624 "$Rd32 = cl0($Rss32)",
18625 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18626 let Inst{13-5} = 0b000000010;
18627 let Inst{31-21} = 0b10001000010;
18628 let hasNewValue = 1;
18629 let opNewValue = 0;
18630 let prefersSlot3 = 1;
18631 }
18632 def S2_cl1 : HInst<
18633 (outs IntRegs:$Rd32),
18634 (ins IntRegs:$Rs32),
18635 "$Rd32 = cl1($Rs32)",
18636 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18637 let Inst{13-5} = 0b000000110;
18638 let Inst{31-21} = 0b10001100000;
18639 let hasNewValue = 1;
18640 let opNewValue = 0;
18641 let prefersSlot3 = 1;
18642 }
18643 def S2_cl1p : HInst<
18644 (outs IntRegs:$Rd32),
18645 (ins DoubleRegs:$Rss32),
18646 "$Rd32 = cl1($Rss32)",
18647 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18648 let Inst{13-5} = 0b000000100;
18649 let Inst{31-21} = 0b10001000010;
18650 let hasNewValue = 1;
18651 let opNewValue = 0;
18652 let prefersSlot3 = 1;
18653 }
18654 def S2_clb : HInst<
18655 (outs IntRegs:$Rd32),
18656 (ins IntRegs:$Rs32),
18657 "$Rd32 = clb($Rs32)",
18658 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18659 let Inst{13-5} = 0b000000100;
18660 let Inst{31-21} = 0b10001100000;
18661 let hasNewValue = 1;
18662 let opNewValue = 0;
18663 let prefersSlot3 = 1;
18664 }
18665 def S2_clbnorm : HInst<
18666 (outs IntRegs:$Rd32),
18667 (ins IntRegs:$Rs32),
18668 "$Rd32 = normamt($Rs32)",
18669 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18670 let Inst{13-5} = 0b000000111;
18671 let Inst{31-21} = 0b10001100000;
18672 let hasNewValue = 1;
18673 let opNewValue = 0;
18674 let prefersSlot3 = 1;
18675 }
18676 def S2_clbp : HInst<
18677 (outs IntRegs:$Rd32),
18678 (ins DoubleRegs:$Rss32),
18679 "$Rd32 = clb($Rss32)",
18680 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18681 let Inst{13-5} = 0b000000000;
18682 let Inst{31-21} = 0b10001000010;
18683 let hasNewValue = 1;
18684 let opNewValue = 0;
18685 let prefersSlot3 = 1;
18686 }
18687 def S2_clrbit_i : HInst<
18688 (outs IntRegs:$Rd32),
18689 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
18690 "$Rd32 = clrbit($Rs32,#$Ii)",
18691 tc_946df596, TypeS_2op>, Enc_a05677 {
18692 let Inst{7-5} = 0b001;
18693 let Inst{13-13} = 0b0;
18694 let Inst{31-21} = 0b10001100110;
18695 let hasNewValue = 1;
18696 let opNewValue = 0;
18697 }
18698 def S2_clrbit_r : HInst<
18699 (outs IntRegs:$Rd32),
18700 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18701 "$Rd32 = clrbit($Rs32,$Rt32)",
18702 tc_946df596, TypeS_3op>, Enc_5ab2be {
18703 let Inst{7-5} = 0b010;
18704 let Inst{13-13} = 0b0;
18705 let Inst{31-21} = 0b11000110100;
18706 let hasNewValue = 1;
18707 let opNewValue = 0;
18708 }
18709 def S2_ct0 : HInst<
18710 (outs IntRegs:$Rd32),
18711 (ins IntRegs:$Rs32),
18712 "$Rd32 = ct0($Rs32)",
18713 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18714 let Inst{13-5} = 0b000000100;
18715 let Inst{31-21} = 0b10001100010;
18716 let hasNewValue = 1;
18717 let opNewValue = 0;
18718 let prefersSlot3 = 1;
18719 }
18720 def S2_ct0p : HInst<
18721 (outs IntRegs:$Rd32),
18722 (ins DoubleRegs:$Rss32),
18723 "$Rd32 = ct0($Rss32)",
18724 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18725 let Inst{13-5} = 0b000000010;
18726 let Inst{31-21} = 0b10001000111;
18727 let hasNewValue = 1;
18728 let opNewValue = 0;
18729 let prefersSlot3 = 1;
18730 }
18731 def S2_ct1 : HInst<
18732 (outs IntRegs:$Rd32),
18733 (ins IntRegs:$Rs32),
18734 "$Rd32 = ct1($Rs32)",
18735 tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18736 let Inst{13-5} = 0b000000101;
18737 let Inst{31-21} = 0b10001100010;
18738 let hasNewValue = 1;
18739 let opNewValue = 0;
18740 let prefersSlot3 = 1;
18741 }
18742 def S2_ct1p : HInst<
18743 (outs IntRegs:$Rd32),
18744 (ins DoubleRegs:$Rss32),
18745 "$Rd32 = ct1($Rss32)",
18746 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18747 let Inst{13-5} = 0b000000100;
18748 let Inst{31-21} = 0b10001000111;
18749 let hasNewValue = 1;
18750 let opNewValue = 0;
18751 let prefersSlot3 = 1;
18752 }
18753 def S2_deinterleave : HInst<
18754 (outs DoubleRegs:$Rdd32),
18755 (ins DoubleRegs:$Rss32),
18756 "$Rdd32 = deinterleave($Rss32)",
18757 tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18758 let Inst{13-5} = 0b000000100;
18759 let Inst{31-21} = 0b10000000110;
18760 let prefersSlot3 = 1;
18761 }
18762 def S2_extractu : HInst<
18763 (outs IntRegs:$Rd32),
18764 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18765 "$Rd32 = extractu($Rs32,#$Ii,#$II)",
18766 tc_f675fee8, TypeS_2op>, Enc_b388cf {
18767 let Inst{13-13} = 0b0;
18768 let Inst{31-23} = 0b100011010;
18769 let hasNewValue = 1;
18770 let opNewValue = 0;
18771 let prefersSlot3 = 1;
18772 }
18773 def S2_extractu_rp : HInst<
18774 (outs IntRegs:$Rd32),
18775 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
18776 "$Rd32 = extractu($Rs32,$Rtt32)",
18777 tc_002cb246, TypeS_3op>, Enc_e07374 {
18778 let Inst{7-5} = 0b000;
18779 let Inst{13-13} = 0b0;
18780 let Inst{31-21} = 0b11001001000;
18781 let hasNewValue = 1;
18782 let opNewValue = 0;
18783 let prefersSlot3 = 1;
18784 }
18785 def S2_extractup : HInst<
18786 (outs DoubleRegs:$Rdd32),
18787 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18788 "$Rdd32 = extractu($Rss32,#$Ii,#$II)",
18789 tc_f675fee8, TypeS_2op>, Enc_b84c4c {
18790 let Inst{31-24} = 0b10000001;
18791 let prefersSlot3 = 1;
18792 }
18793 def S2_extractup_rp : HInst<
18794 (outs DoubleRegs:$Rdd32),
18795 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18796 "$Rdd32 = extractu($Rss32,$Rtt32)",
18797 tc_002cb246, TypeS_3op>, Enc_a56825 {
18798 let Inst{7-5} = 0b000;
18799 let Inst{13-13} = 0b0;
18800 let Inst{31-21} = 0b11000001000;
18801 let prefersSlot3 = 1;
18802 }
18803 def S2_insert : HInst<
18804 (outs IntRegs:$Rx32),
18805 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18806 "$Rx32 = insert($Rs32,#$Ii,#$II)",
18807 tc_bfec0f01, TypeS_2op>, Enc_a1e29d {
18808 let Inst{13-13} = 0b0;
18809 let Inst{31-23} = 0b100011110;
18810 let hasNewValue = 1;
18811 let opNewValue = 0;
18812 let prefersSlot3 = 1;
18813 let Constraints = "$Rx32 = $Rx32in";
18814 }
18815 def S2_insert_rp : HInst<
18816 (outs IntRegs:$Rx32),
18817 (ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
18818 "$Rx32 = insert($Rs32,$Rtt32)",
18819 tc_f429765c, TypeS_3op>, Enc_179b35 {
18820 let Inst{7-5} = 0b000;
18821 let Inst{13-13} = 0b0;
18822 let Inst{31-21} = 0b11001000000;
18823 let hasNewValue = 1;
18824 let opNewValue = 0;
18825 let prefersSlot3 = 1;
18826 let Constraints = "$Rx32 = $Rx32in";
18827 }
18828 def S2_insertp : HInst<
18829 (outs DoubleRegs:$Rxx32),
18830 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18831 "$Rxx32 = insert($Rss32,#$Ii,#$II)",
18832 tc_bfec0f01, TypeS_2op>, Enc_143a3c {
18833 let Inst{31-24} = 0b10000011;
18834 let prefersSlot3 = 1;
18835 let Constraints = "$Rxx32 = $Rxx32in";
18836 }
18837 def S2_insertp_rp : HInst<
18838 (outs DoubleRegs:$Rxx32),
18839 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18840 "$Rxx32 = insert($Rss32,$Rtt32)",
18841 tc_f429765c, TypeS_3op>, Enc_88c16c {
18842 let Inst{7-5} = 0b000;
18843 let Inst{13-13} = 0b0;
18844 let Inst{31-21} = 0b11001010000;
18845 let prefersSlot3 = 1;
18846 let Constraints = "$Rxx32 = $Rxx32in";
18847 }
18848 def S2_interleave : HInst<
18849 (outs DoubleRegs:$Rdd32),
18850 (ins DoubleRegs:$Rss32),
18851 "$Rdd32 = interleave($Rss32)",
18852 tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18853 let Inst{13-5} = 0b000000101;
18854 let Inst{31-21} = 0b10000000110;
18855 let prefersSlot3 = 1;
18856 }
18857 def S2_lfsp : HInst<
18858 (outs DoubleRegs:$Rdd32),
18859 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18860 "$Rdd32 = lfs($Rss32,$Rtt32)",
18861 tc_002cb246, TypeS_3op>, Enc_a56825 {
18862 let Inst{7-5} = 0b110;
18863 let Inst{13-13} = 0b0;
18864 let Inst{31-21} = 0b11000001100;
18865 let prefersSlot3 = 1;
18866 }
18867 def S2_lsl_r_p : HInst<
18868 (outs DoubleRegs:$Rdd32),
18869 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18870 "$Rdd32 = lsl($Rss32,$Rt32)",
18871 tc_946df596, TypeS_3op>, Enc_927852 {
18872 let Inst{7-5} = 0b110;
18873 let Inst{13-13} = 0b0;
18874 let Inst{31-21} = 0b11000011100;
18875 }
18876 def S2_lsl_r_p_acc : HInst<
18877 (outs DoubleRegs:$Rxx32),
18878 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18879 "$Rxx32 += lsl($Rss32,$Rt32)",
18880 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18881 let Inst{7-5} = 0b110;
18882 let Inst{13-13} = 0b0;
18883 let Inst{31-21} = 0b11001011110;
18884 let prefersSlot3 = 1;
18885 let Constraints = "$Rxx32 = $Rxx32in";
18886 }
18887 def S2_lsl_r_p_and : HInst<
18888 (outs DoubleRegs:$Rxx32),
18889 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18890 "$Rxx32 &= lsl($Rss32,$Rt32)",
18891 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18892 let Inst{7-5} = 0b110;
18893 let Inst{13-13} = 0b0;
18894 let Inst{31-21} = 0b11001011010;
18895 let prefersSlot3 = 1;
18896 let Constraints = "$Rxx32 = $Rxx32in";
18897 }
18898 def S2_lsl_r_p_nac : HInst<
18899 (outs DoubleRegs:$Rxx32),
18900 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18901 "$Rxx32 -= lsl($Rss32,$Rt32)",
18902 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18903 let Inst{7-5} = 0b110;
18904 let Inst{13-13} = 0b0;
18905 let Inst{31-21} = 0b11001011100;
18906 let prefersSlot3 = 1;
18907 let Constraints = "$Rxx32 = $Rxx32in";
18908 }
18909 def S2_lsl_r_p_or : HInst<
18910 (outs DoubleRegs:$Rxx32),
18911 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18912 "$Rxx32 |= lsl($Rss32,$Rt32)",
18913 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18914 let Inst{7-5} = 0b110;
18915 let Inst{13-13} = 0b0;
18916 let Inst{31-21} = 0b11001011000;
18917 let prefersSlot3 = 1;
18918 let Constraints = "$Rxx32 = $Rxx32in";
18919 }
18920 def S2_lsl_r_p_xor : HInst<
18921 (outs DoubleRegs:$Rxx32),
18922 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18923 "$Rxx32 ^= lsl($Rss32,$Rt32)",
18924 tc_f429765c, TypeS_3op>, Enc_1aa186 {
18925 let Inst{7-5} = 0b110;
18926 let Inst{13-13} = 0b0;
18927 let Inst{31-21} = 0b11001011011;
18928 let prefersSlot3 = 1;
18929 let Constraints = "$Rxx32 = $Rxx32in";
18930 }
18931 def S2_lsl_r_r : HInst<
18932 (outs IntRegs:$Rd32),
18933 (ins IntRegs:$Rs32, IntRegs:$Rt32),
18934 "$Rd32 = lsl($Rs32,$Rt32)",
18935 tc_946df596, TypeS_3op>, Enc_5ab2be {
18936 let Inst{7-5} = 0b110;
18937 let Inst{13-13} = 0b0;
18938 let Inst{31-21} = 0b11000110010;
18939 let hasNewValue = 1;
18940 let opNewValue = 0;
18941 }
18942 def S2_lsl_r_r_acc : HInst<
18943 (outs IntRegs:$Rx32),
18944 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18945 "$Rx32 += lsl($Rs32,$Rt32)",
18946 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18947 let Inst{7-5} = 0b110;
18948 let Inst{13-13} = 0b0;
18949 let Inst{31-21} = 0b11001100110;
18950 let hasNewValue = 1;
18951 let opNewValue = 0;
18952 let prefersSlot3 = 1;
18953 let Constraints = "$Rx32 = $Rx32in";
18954 }
18955 def S2_lsl_r_r_and : HInst<
18956 (outs IntRegs:$Rx32),
18957 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18958 "$Rx32 &= lsl($Rs32,$Rt32)",
18959 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18960 let Inst{7-5} = 0b110;
18961 let Inst{13-13} = 0b0;
18962 let Inst{31-21} = 0b11001100010;
18963 let hasNewValue = 1;
18964 let opNewValue = 0;
18965 let prefersSlot3 = 1;
18966 let Constraints = "$Rx32 = $Rx32in";
18967 }
18968 def S2_lsl_r_r_nac : HInst<
18969 (outs IntRegs:$Rx32),
18970 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18971 "$Rx32 -= lsl($Rs32,$Rt32)",
18972 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18973 let Inst{7-5} = 0b110;
18974 let Inst{13-13} = 0b0;
18975 let Inst{31-21} = 0b11001100100;
18976 let hasNewValue = 1;
18977 let opNewValue = 0;
18978 let prefersSlot3 = 1;
18979 let Constraints = "$Rx32 = $Rx32in";
18980 }
18981 def S2_lsl_r_r_or : HInst<
18982 (outs IntRegs:$Rx32),
18983 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18984 "$Rx32 |= lsl($Rs32,$Rt32)",
18985 tc_f429765c, TypeS_3op>, Enc_2ae154 {
18986 let Inst{7-5} = 0b110;
18987 let Inst{13-13} = 0b0;
18988 let Inst{31-21} = 0b11001100000;
18989 let hasNewValue = 1;
18990 let opNewValue = 0;
18991 let prefersSlot3 = 1;
18992 let Constraints = "$Rx32 = $Rx32in";
18993 }
18994 def S2_lsl_r_vh : HInst<
18995 (outs DoubleRegs:$Rdd32),
18996 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18997 "$Rdd32 = vlslh($Rss32,$Rt32)",
18998 tc_946df596, TypeS_3op>, Enc_927852 {
18999 let Inst{7-5} = 0b110;
19000 let Inst{13-13} = 0b0;
19001 let Inst{31-21} = 0b11000011010;
19002 }
19003 def S2_lsl_r_vw : HInst<
19004 (outs DoubleRegs:$Rdd32),
19005 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19006 "$Rdd32 = vlslw($Rss32,$Rt32)",
19007 tc_946df596, TypeS_3op>, Enc_927852 {
19008 let Inst{7-5} = 0b110;
19009 let Inst{13-13} = 0b0;
19010 let Inst{31-21} = 0b11000011000;
19011 }
19012 def S2_lsr_i_p : HInst<
19013 (outs DoubleRegs:$Rdd32),
19014 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19015 "$Rdd32 = lsr($Rss32,#$Ii)",
19016 tc_946df596, TypeS_2op>, Enc_5eac98 {
19017 let Inst{7-5} = 0b001;
19018 let Inst{31-21} = 0b10000000000;
19019 }
19020 def S2_lsr_i_p_acc : HInst<
19021 (outs DoubleRegs:$Rxx32),
19022 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19023 "$Rxx32 += lsr($Rss32,#$Ii)",
19024 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
19025 let Inst{7-5} = 0b101;
19026 let Inst{31-21} = 0b10000010000;
19027 let prefersSlot3 = 1;
19028 let Constraints = "$Rxx32 = $Rxx32in";
19029 }
19030 def S2_lsr_i_p_and : HInst<
19031 (outs DoubleRegs:$Rxx32),
19032 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19033 "$Rxx32 &= lsr($Rss32,#$Ii)",
19034 tc_f429765c, TypeS_2op>, Enc_70fb07 {
19035 let Inst{7-5} = 0b001;
19036 let Inst{31-21} = 0b10000010010;
19037 let prefersSlot3 = 1;
19038 let Constraints = "$Rxx32 = $Rxx32in";
19039 }
19040 def S2_lsr_i_p_nac : HInst<
19041 (outs DoubleRegs:$Rxx32),
19042 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19043 "$Rxx32 -= lsr($Rss32,#$Ii)",
19044 tc_f675fee8, TypeS_2op>, Enc_70fb07 {
19045 let Inst{7-5} = 0b001;
19046 let Inst{31-21} = 0b10000010000;
19047 let prefersSlot3 = 1;
19048 let Constraints = "$Rxx32 = $Rxx32in";
19049 }
19050 def S2_lsr_i_p_or : HInst<
19051 (outs DoubleRegs:$Rxx32),
19052 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19053 "$Rxx32 |= lsr($Rss32,#$Ii)",
19054 tc_f429765c, TypeS_2op>, Enc_70fb07 {
19055 let Inst{7-5} = 0b101;
19056 let Inst{31-21} = 0b10000010010;
19057 let prefersSlot3 = 1;
19058 let Constraints = "$Rxx32 = $Rxx32in";
19059 }
19060 def S2_lsr_i_p_xacc : HInst<
19061 (outs DoubleRegs:$Rxx32),
19062 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19063 "$Rxx32 ^= lsr($Rss32,#$Ii)",
19064 tc_f429765c, TypeS_2op>, Enc_70fb07 {
19065 let Inst{7-5} = 0b001;
19066 let Inst{31-21} = 0b10000010100;
19067 let prefersSlot3 = 1;
19068 let Constraints = "$Rxx32 = $Rxx32in";
19069 }
19070 def S2_lsr_i_r : HInst<
19071 (outs IntRegs:$Rd32),
19072 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
19073 "$Rd32 = lsr($Rs32,#$Ii)",
19074 tc_946df596, TypeS_2op>, Enc_a05677 {
19075 let Inst{7-5} = 0b001;
19076 let Inst{13-13} = 0b0;
19077 let Inst{31-21} = 0b10001100000;
19078 let hasNewValue = 1;
19079 let opNewValue = 0;
19080 }
19081 def S2_lsr_i_r_acc : HInst<
19082 (outs IntRegs:$Rx32),
19083 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19084 "$Rx32 += lsr($Rs32,#$Ii)",
19085 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
19086 let Inst{7-5} = 0b101;
19087 let Inst{13-13} = 0b0;
19088 let Inst{31-21} = 0b10001110000;
19089 let hasNewValue = 1;
19090 let opNewValue = 0;
19091 let prefersSlot3 = 1;
19092 let Constraints = "$Rx32 = $Rx32in";
19093 }
19094 def S2_lsr_i_r_and : HInst<
19095 (outs IntRegs:$Rx32),
19096 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19097 "$Rx32 &= lsr($Rs32,#$Ii)",
19098 tc_f429765c, TypeS_2op>, Enc_28a2dc {
19099 let Inst{7-5} = 0b001;
19100 let Inst{13-13} = 0b0;
19101 let Inst{31-21} = 0b10001110010;
19102 let hasNewValue = 1;
19103 let opNewValue = 0;
19104 let prefersSlot3 = 1;
19105 let Constraints = "$Rx32 = $Rx32in";
19106 }
19107 def S2_lsr_i_r_nac : HInst<
19108 (outs IntRegs:$Rx32),
19109 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19110 "$Rx32 -= lsr($Rs32,#$Ii)",
19111 tc_f675fee8, TypeS_2op>, Enc_28a2dc {
19112 let Inst{7-5} = 0b001;
19113 let Inst{13-13} = 0b0;
19114 let Inst{31-21} = 0b10001110000;
19115 let hasNewValue = 1;
19116 let opNewValue = 0;
19117 let prefersSlot3 = 1;
19118 let Constraints = "$Rx32 = $Rx32in";
19119 }
19120 def S2_lsr_i_r_or : HInst<
19121 (outs IntRegs:$Rx32),
19122 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19123 "$Rx32 |= lsr($Rs32,#$Ii)",
19124 tc_f429765c, TypeS_2op>, Enc_28a2dc {
19125 let Inst{7-5} = 0b101;
19126 let Inst{13-13} = 0b0;
19127 let Inst{31-21} = 0b10001110010;
19128 let hasNewValue = 1;
19129 let opNewValue = 0;
19130 let prefersSlot3 = 1;
19131 let Constraints = "$Rx32 = $Rx32in";
19132 }
19133 def S2_lsr_i_r_xacc : HInst<
19134 (outs IntRegs:$Rx32),
19135 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19136 "$Rx32 ^= lsr($Rs32,#$Ii)",
19137 tc_f429765c, TypeS_2op>, Enc_28a2dc {
19138 let Inst{7-5} = 0b001;
19139 let Inst{13-13} = 0b0;
19140 let Inst{31-21} = 0b10001110100;
19141 let hasNewValue = 1;
19142 let opNewValue = 0;
19143 let prefersSlot3 = 1;
19144 let Constraints = "$Rx32 = $Rx32in";
19145 }
19146 def S2_lsr_i_vh : HInst<
19147 (outs DoubleRegs:$Rdd32),
19148 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19149 "$Rdd32 = vlsrh($Rss32,#$Ii)",
19150 tc_946df596, TypeS_2op>, Enc_12b6e9 {
19151 let Inst{7-5} = 0b001;
19152 let Inst{13-12} = 0b00;
19153 let Inst{31-21} = 0b10000000100;
19154 }
19155 def S2_lsr_i_vw : HInst<
19156 (outs DoubleRegs:$Rdd32),
19157 (ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19158 "$Rdd32 = vlsrw($Rss32,#$Ii)",
19159 tc_946df596, TypeS_2op>, Enc_7e5a82 {
19160 let Inst{7-5} = 0b001;
19161 let Inst{13-13} = 0b0;
19162 let Inst{31-21} = 0b10000000010;
19163 }
19164 def S2_lsr_r_p : HInst<
19165 (outs DoubleRegs:$Rdd32),
19166 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19167 "$Rdd32 = lsr($Rss32,$Rt32)",
19168 tc_946df596, TypeS_3op>, Enc_927852 {
19169 let Inst{7-5} = 0b010;
19170 let Inst{13-13} = 0b0;
19171 let Inst{31-21} = 0b11000011100;
19172 }
19173 def S2_lsr_r_p_acc : HInst<
19174 (outs DoubleRegs:$Rxx32),
19175 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19176 "$Rxx32 += lsr($Rss32,$Rt32)",
19177 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
19178 let Inst{7-5} = 0b010;
19179 let Inst{13-13} = 0b0;
19180 let Inst{31-21} = 0b11001011110;
19181 let prefersSlot3 = 1;
19182 let Constraints = "$Rxx32 = $Rxx32in";
19183 }
19184 def S2_lsr_r_p_and : HInst<
19185 (outs DoubleRegs:$Rxx32),
19186 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19187 "$Rxx32 &= lsr($Rss32,$Rt32)",
19188 tc_f429765c, TypeS_3op>, Enc_1aa186 {
19189 let Inst{7-5} = 0b010;
19190 let Inst{13-13} = 0b0;
19191 let Inst{31-21} = 0b11001011010;
19192 let prefersSlot3 = 1;
19193 let Constraints = "$Rxx32 = $Rxx32in";
19194 }
19195 def S2_lsr_r_p_nac : HInst<
19196 (outs DoubleRegs:$Rxx32),
19197 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19198 "$Rxx32 -= lsr($Rss32,$Rt32)",
19199 tc_f675fee8, TypeS_3op>, Enc_1aa186 {
19200 let Inst{7-5} = 0b010;
19201 let Inst{13-13} = 0b0;
19202 let Inst{31-21} = 0b11001011100;
19203 let prefersSlot3 = 1;
19204 let Constraints = "$Rxx32 = $Rxx32in";
19205 }
19206 def S2_lsr_r_p_or : HInst<
19207 (outs DoubleRegs:$Rxx32),
19208 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19209 "$Rxx32 |= lsr($Rss32,$Rt32)",
19210 tc_f429765c, TypeS_3op>, Enc_1aa186 {
19211 let Inst{7-5} = 0b010;
19212 let Inst{13-13} = 0b0;
19213 let Inst{31-21} = 0b11001011000;
19214 let prefersSlot3 = 1;
19215 let Constraints = "$Rxx32 = $Rxx32in";
19216 }
19217 def S2_lsr_r_p_xor : HInst<
19218 (outs DoubleRegs:$Rxx32),
19219 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19220 "$Rxx32 ^= lsr($Rss32,$Rt32)",
19221 tc_f429765c, TypeS_3op>, Enc_1aa186 {
19222 let Inst{7-5} = 0b010;
19223 let Inst{13-13} = 0b0;
19224 let Inst{31-21} = 0b11001011011;
19225 let prefersSlot3 = 1;
19226 let Constraints = "$Rxx32 = $Rxx32in";
19227 }
19228 def S2_lsr_r_r : HInst<
19229 (outs IntRegs:$Rd32),
19230 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19231 "$Rd32 = lsr($Rs32,$Rt32)",
19232 tc_946df596, TypeS_3op>, Enc_5ab2be {
19233 let Inst{7-5} = 0b010;
19234 let Inst{13-13} = 0b0;
19235 let Inst{31-21} = 0b11000110010;
19236 let hasNewValue = 1;
19237 let opNewValue = 0;
19238 }
19239 def S2_lsr_r_r_acc : HInst<
19240 (outs IntRegs:$Rx32),
19241 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19242 "$Rx32 += lsr($Rs32,$Rt32)",
19243 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
19244 let Inst{7-5} = 0b010;
19245 let Inst{13-13} = 0b0;
19246 let Inst{31-21} = 0b11001100110;
19247 let hasNewValue = 1;
19248 let opNewValue = 0;
19249 let prefersSlot3 = 1;
19250 let Constraints = "$Rx32 = $Rx32in";
19251 }
19252 def S2_lsr_r_r_and : HInst<
19253 (outs IntRegs:$Rx32),
19254 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19255 "$Rx32 &= lsr($Rs32,$Rt32)",
19256 tc_f429765c, TypeS_3op>, Enc_2ae154 {
19257 let Inst{7-5} = 0b010;
19258 let Inst{13-13} = 0b0;
19259 let Inst{31-21} = 0b11001100010;
19260 let hasNewValue = 1;
19261 let opNewValue = 0;
19262 let prefersSlot3 = 1;
19263 let Constraints = "$Rx32 = $Rx32in";
19264 }
19265 def S2_lsr_r_r_nac : HInst<
19266 (outs IntRegs:$Rx32),
19267 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19268 "$Rx32 -= lsr($Rs32,$Rt32)",
19269 tc_f675fee8, TypeS_3op>, Enc_2ae154 {
19270 let Inst{7-5} = 0b010;
19271 let Inst{13-13} = 0b0;
19272 let Inst{31-21} = 0b11001100100;
19273 let hasNewValue = 1;
19274 let opNewValue = 0;
19275 let prefersSlot3 = 1;
19276 let Constraints = "$Rx32 = $Rx32in";
19277 }
19278 def S2_lsr_r_r_or : HInst<
19279 (outs IntRegs:$Rx32),
19280 (ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19281 "$Rx32 |= lsr($Rs32,$Rt32)",
19282 tc_f429765c, TypeS_3op>, Enc_2ae154 {
19283 let Inst{7-5} = 0b010;
19284 let Inst{13-13} = 0b0;
19285 let Inst{31-21} = 0b11001100000;
19286 let hasNewValue = 1;
19287 let opNewValue = 0;
19288 let prefersSlot3 = 1;
19289 let Constraints = "$Rx32 = $Rx32in";
19290 }
19291 def S2_lsr_r_vh : HInst<
19292 (outs DoubleRegs:$Rdd32),
19293 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19294 "$Rdd32 = vlsrh($Rss32,$Rt32)",
19295 tc_946df596, TypeS_3op>, Enc_927852 {
19296 let Inst{7-5} = 0b010;
19297 let Inst{13-13} = 0b0;
19298 let Inst{31-21} = 0b11000011010;
19299 }
19300 def S2_lsr_r_vw : HInst<
19301 (outs DoubleRegs:$Rdd32),
19302 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19303 "$Rdd32 = vlsrw($Rss32,$Rt32)",
19304 tc_946df596, TypeS_3op>, Enc_927852 {
19305 let Inst{7-5} = 0b010;
19306 let Inst{13-13} = 0b0;
19307 let Inst{31-21} = 0b11000011000;
19308 }
19309 def S2_mask : HInst<
19310 (outs IntRegs:$Rd32),
19311 (ins u5_0Imm:$Ii, u5_0Imm:$II),
19312 "$Rd32 = mask(#$Ii,#$II)",
19313 tc_9461ff31, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19314 let Inst{13-13} = 0b1;
19315 let Inst{20-16} = 0b00000;
19316 let Inst{31-23} = 0b100011010;
19317 let hasNewValue = 1;
19318 let opNewValue = 0;
19319 let prefersSlot3 = 1;
19320 }
19321 def S2_packhl : HInst<
19322 (outs DoubleRegs:$Rdd32),
19323 (ins IntRegs:$Rs32, IntRegs:$Rt32),
19324 "$Rdd32 = packhl($Rs32,$Rt32)",
19325 tc_5a2711e5, TypeALU32_3op>, Enc_be32a5 {
19326 let Inst{7-5} = 0b000;
19327 let Inst{13-13} = 0b0;
19328 let Inst{31-21} = 0b11110101100;
19329 let InputType = "reg";
19330 }
19331 def S2_parityp : HInst<
19332 (outs IntRegs:$Rd32),
19333 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19334 "$Rd32 = parity($Rss32,$Rtt32)",
19335 tc_002cb246, TypeALU64>, Enc_d2216a {
19336 let Inst{7-5} = 0b000;
19337 let Inst{13-13} = 0b0;
19338 let Inst{31-21} = 0b11010000000;
19339 let hasNewValue = 1;
19340 let opNewValue = 0;
19341 let prefersSlot3 = 1;
19342 }
19343 def S2_pstorerbf_io : HInst<
19344 (outs),
19345 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19346 "if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19347 tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19348 let Inst{2-2} = 0b0;
19349 let Inst{31-21} = 0b01000100000;
19350 let isPredicated = 1;
19351 let isPredicatedFalse = 1;
19352 let addrMode = BaseImmOffset;
19353 let accessSize = ByteAccess;
19354 let mayStore = 1;
19355 let CextOpcode = "S2_storerb";
19356 let InputType = "imm";
19357 let BaseOpcode = "S2_storerb_io";
19358 let isNVStorable = 1;
19359 let isExtendable = 1;
19360 let opExtendable = 2;
19361 let isExtentSigned = 0;
19362 let opExtentBits = 6;
19363 let opExtentAlign = 0;
19364 }
19365 def S2_pstorerbf_pi : HInst<
19366 (outs IntRegs:$Rx32),
19367 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19368 "if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19369 tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel {
19370 let Inst{2-2} = 0b1;
19371 let Inst{7-7} = 0b0;
19372 let Inst{13-13} = 0b1;
19373 let Inst{31-21} = 0b10101011000;
19374 let isPredicated = 1;
19375 let isPredicatedFalse = 1;
19376 let addrMode = PostInc;
19377 let accessSize = ByteAccess;
19378 let mayStore = 1;
19379 let BaseOpcode = "S2_storerb_pi";
19380 let isNVStorable = 1;
19381 let Constraints = "$Rx32 = $Rx32in";
19382 }
19383 def S2_pstorerbf_zomap : HInst<
19384 (outs),
19385 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19386 "if (!$Pv4) memb($Rs32) = $Rt32",
19387 tc_f8e23f0b, TypeMAPPING> {
19388 let isPseudo = 1;
19389 let isCodeGenOnly = 1;
19390 }
19391 def S2_pstorerbfnew_pi : HInst<
19392 (outs IntRegs:$Rx32),
19393 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19394 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19395 tc_53559e35, TypeST>, Enc_cc449f, AddrModeRel {
19396 let Inst{2-2} = 0b1;
19397 let Inst{7-7} = 0b1;
19398 let Inst{13-13} = 0b1;
19399 let Inst{31-21} = 0b10101011000;
19400 let isPredicated = 1;
19401 let isPredicatedFalse = 1;
19402 let addrMode = PostInc;
19403 let accessSize = ByteAccess;
19404 let isPredicatedNew = 1;
19405 let mayStore = 1;
19406 let BaseOpcode = "S2_storerb_pi";
19407 let isNVStorable = 1;
19408 let Constraints = "$Rx32 = $Rx32in";
19409 }
19410 def S2_pstorerbnewf_io : HInst<
19411 (outs),
19412 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19413 "if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19414 tc_8fb7ab1b, TypeV2LDST>, Enc_585242, AddrModeRel {
19415 let Inst{2-2} = 0b0;
19416 let Inst{12-11} = 0b00;
19417 let Inst{31-21} = 0b01000100101;
19418 let isPredicated = 1;
19419 let isPredicatedFalse = 1;
19420 let addrMode = BaseImmOffset;
19421 let accessSize = ByteAccess;
19422 let isNVStore = 1;
19423 let isNewValue = 1;
19424 let isRestrictNoSlot1Store = 1;
19425 let mayStore = 1;
19426 let CextOpcode = "S2_storerb";
19427 let InputType = "imm";
19428 let BaseOpcode = "S2_storerb_io";
19429 let isExtendable = 1;
19430 let opExtendable = 2;
19431 let isExtentSigned = 0;
19432 let opExtentBits = 6;
19433 let opExtentAlign = 0;
19434 let opNewValue = 3;
19435 }
19436 def S2_pstorerbnewf_pi : HInst<
19437 (outs IntRegs:$Rx32),
19438 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19439 "if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19440 tc_838b34ea, TypeST>, Enc_52a5dd, AddrModeRel {
19441 let Inst{2-2} = 0b1;
19442 let Inst{7-7} = 0b0;
19443 let Inst{13-11} = 0b100;
19444 let Inst{31-21} = 0b10101011101;
19445 let isPredicated = 1;
19446 let isPredicatedFalse = 1;
19447 let addrMode = PostInc;
19448 let accessSize = ByteAccess;
19449 let isNVStore = 1;
19450 let isNewValue = 1;
19451 let isRestrictNoSlot1Store = 1;
19452 let mayStore = 1;
19453 let CextOpcode = "S2_storerb";
19454 let BaseOpcode = "S2_storerb_pi";
19455 let opNewValue = 4;
19456 let Constraints = "$Rx32 = $Rx32in";
19457 }
19458 def S2_pstorerbnewf_zomap : HInst<
19459 (outs),
19460 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19461 "if (!$Pv4) memb($Rs32) = $Nt8.new",
19462 tc_8fb7ab1b, TypeMAPPING> {
19463 let isPseudo = 1;
19464 let isCodeGenOnly = 1;
19465 let opNewValue = 2;
19466 }
19467 def S2_pstorerbnewfnew_pi : HInst<
19468 (outs IntRegs:$Rx32),
19469 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19470 "if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19471 tc_d65dbf51, TypeST>, Enc_52a5dd, AddrModeRel {
19472 let Inst{2-2} = 0b1;
19473 let Inst{7-7} = 0b1;
19474 let Inst{13-11} = 0b100;
19475 let Inst{31-21} = 0b10101011101;
19476 let isPredicated = 1;
19477 let isPredicatedFalse = 1;
19478 let addrMode = PostInc;
19479 let accessSize = ByteAccess;
19480 let isNVStore = 1;
19481 let isPredicatedNew = 1;
19482 let isNewValue = 1;
19483 let isRestrictNoSlot1Store = 1;
19484 let mayStore = 1;
19485 let CextOpcode = "S2_storerb";
19486 let BaseOpcode = "S2_storerb_pi";
19487 let opNewValue = 4;
19488 let Constraints = "$Rx32 = $Rx32in";
19489 }
19490 def S2_pstorerbnewt_io : HInst<
19491 (outs),
19492 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19493 "if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19494 tc_8fb7ab1b, TypeV2LDST>, Enc_585242, AddrModeRel {
19495 let Inst{2-2} = 0b0;
19496 let Inst{12-11} = 0b00;
19497 let Inst{31-21} = 0b01000000101;
19498 let isPredicated = 1;
19499 let addrMode = BaseImmOffset;
19500 let accessSize = ByteAccess;
19501 let isNVStore = 1;
19502 let isNewValue = 1;
19503 let isRestrictNoSlot1Store = 1;
19504 let mayStore = 1;
19505 let CextOpcode = "S2_storerb";
19506 let InputType = "imm";
19507 let BaseOpcode = "S2_storerb_io";
19508 let isExtendable = 1;
19509 let opExtendable = 2;
19510 let isExtentSigned = 0;
19511 let opExtentBits = 6;
19512 let opExtentAlign = 0;
19513 let opNewValue = 3;
19514 }
19515 def S2_pstorerbnewt_pi : HInst<
19516 (outs IntRegs:$Rx32),
19517 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19518 "if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19519 tc_838b34ea, TypeST>, Enc_52a5dd, AddrModeRel {
19520 let Inst{2-2} = 0b0;
19521 let Inst{7-7} = 0b0;
19522 let Inst{13-11} = 0b100;
19523 let Inst{31-21} = 0b10101011101;
19524 let isPredicated = 1;
19525 let addrMode = PostInc;
19526 let accessSize = ByteAccess;
19527 let isNVStore = 1;
19528 let isNewValue = 1;
19529 let isRestrictNoSlot1Store = 1;
19530 let mayStore = 1;
19531 let CextOpcode = "S2_storerb";
19532 let BaseOpcode = "S2_storerb_pi";
19533 let opNewValue = 4;
19534 let Constraints = "$Rx32 = $Rx32in";
19535 }
19536 def S2_pstorerbnewt_zomap : HInst<
19537 (outs),
19538 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19539 "if ($Pv4) memb($Rs32) = $Nt8.new",
19540 tc_8fb7ab1b, TypeMAPPING> {
19541 let isPseudo = 1;
19542 let isCodeGenOnly = 1;
19543 let opNewValue = 2;
19544 }
19545 def S2_pstorerbnewtnew_pi : HInst<
19546 (outs IntRegs:$Rx32),
19547 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19548 "if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19549 tc_d65dbf51, TypeST>, Enc_52a5dd, AddrModeRel {
19550 let Inst{2-2} = 0b0;
19551 let Inst{7-7} = 0b1;
19552 let Inst{13-11} = 0b100;
19553 let Inst{31-21} = 0b10101011101;
19554 let isPredicated = 1;
19555 let addrMode = PostInc;
19556 let accessSize = ByteAccess;
19557 let isNVStore = 1;
19558 let isPredicatedNew = 1;
19559 let isNewValue = 1;
19560 let isRestrictNoSlot1Store = 1;
19561 let mayStore = 1;
19562 let CextOpcode = "S2_storerb";
19563 let BaseOpcode = "S2_storerb_pi";
19564 let opNewValue = 4;
19565 let Constraints = "$Rx32 = $Rx32in";
19566 }
19567 def S2_pstorerbt_io : HInst<
19568 (outs),
19569 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19570 "if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19571 tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19572 let Inst{2-2} = 0b0;
19573 let Inst{31-21} = 0b01000000000;
19574 let isPredicated = 1;
19575 let addrMode = BaseImmOffset;
19576 let accessSize = ByteAccess;
19577 let mayStore = 1;
19578 let CextOpcode = "S2_storerb";
19579 let InputType = "imm";
19580 let BaseOpcode = "S2_storerb_io";
19581 let isNVStorable = 1;
19582 let isExtendable = 1;
19583 let opExtendable = 2;
19584 let isExtentSigned = 0;
19585 let opExtentBits = 6;
19586 let opExtentAlign = 0;
19587 }
19588 def S2_pstorerbt_pi : HInst<
19589 (outs IntRegs:$Rx32),
19590 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19591 "if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19592 tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel {
19593 let Inst{2-2} = 0b0;
19594 let Inst{7-7} = 0b0;
19595 let Inst{13-13} = 0b1;
19596 let Inst{31-21} = 0b10101011000;
19597 let isPredicated = 1;
19598 let addrMode = PostInc;
19599 let accessSize = ByteAccess;
19600 let mayStore = 1;
19601 let BaseOpcode = "S2_storerb_pi";
19602 let isNVStorable = 1;
19603 let Constraints = "$Rx32 = $Rx32in";
19604 }
19605 def S2_pstorerbt_zomap : HInst<
19606 (outs),
19607 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19608 "if ($Pv4) memb($Rs32) = $Rt32",
19609 tc_f8e23f0b, TypeMAPPING> {
19610 let isPseudo = 1;
19611 let isCodeGenOnly = 1;
19612 }
19613 def S2_pstorerbtnew_pi : HInst<
19614 (outs IntRegs:$Rx32),
19615 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19616 "if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19617 tc_53559e35, TypeST>, Enc_cc449f, AddrModeRel {
19618 let Inst{2-2} = 0b0;
19619 let Inst{7-7} = 0b1;
19620 let Inst{13-13} = 0b1;
19621 let Inst{31-21} = 0b10101011000;
19622 let isPredicated = 1;
19623 let addrMode = PostInc;
19624 let accessSize = ByteAccess;
19625 let isPredicatedNew = 1;
19626 let mayStore = 1;
19627 let BaseOpcode = "S2_storerb_pi";
19628 let isNVStorable = 1;
19629 let Constraints = "$Rx32 = $Rx32in";
19630 }
19631 def S2_pstorerdf_io : HInst<
19632 (outs),
19633 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19634 "if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
19635 tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19636 let Inst{2-2} = 0b0;
19637 let Inst{31-21} = 0b01000100110;
19638 let isPredicated = 1;
19639 let isPredicatedFalse = 1;
19640 let addrMode = BaseImmOffset;
19641 let accessSize = DoubleWordAccess;
19642 let mayStore = 1;
19643 let CextOpcode = "S2_storerd";
19644 let InputType = "imm";
19645 let BaseOpcode = "S2_storerd_io";
19646 let isExtendable = 1;
19647 let opExtendable = 2;
19648 let isExtentSigned = 0;
19649 let opExtentBits = 9;
19650 let opExtentAlign = 3;
19651 }
19652 def S2_pstorerdf_pi : HInst<
19653 (outs IntRegs:$Rx32),
19654 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19655 "if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
19656 tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel {
19657 let Inst{2-2} = 0b1;
19658 let Inst{7-7} = 0b0;
19659 let Inst{13-13} = 0b1;
19660 let Inst{31-21} = 0b10101011110;
19661 let isPredicated = 1;
19662 let isPredicatedFalse = 1;
19663 let addrMode = PostInc;
19664 let accessSize = DoubleWordAccess;
19665 let mayStore = 1;
19666 let CextOpcode = "S2_storerd";
19667 let BaseOpcode = "S2_storerd_pi";
19668 let Constraints = "$Rx32 = $Rx32in";
19669 }
19670 def S2_pstorerdf_zomap : HInst<
19671 (outs),
19672 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19673 "if (!$Pv4) memd($Rs32) = $Rtt32",
19674 tc_f8e23f0b, TypeMAPPING> {
19675 let isPseudo = 1;
19676 let isCodeGenOnly = 1;
19677 }
19678 def S2_pstorerdfnew_pi : HInst<
19679 (outs IntRegs:$Rx32),
19680 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19681 "if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19682 tc_53559e35, TypeST>, Enc_9a33d5, AddrModeRel {
19683 let Inst{2-2} = 0b1;
19684 let Inst{7-7} = 0b1;
19685 let Inst{13-13} = 0b1;
19686 let Inst{31-21} = 0b10101011110;
19687 let isPredicated = 1;
19688 let isPredicatedFalse = 1;
19689 let addrMode = PostInc;
19690 let accessSize = DoubleWordAccess;
19691 let isPredicatedNew = 1;
19692 let mayStore = 1;
19693 let CextOpcode = "S2_storerd";
19694 let BaseOpcode = "S2_storerd_pi";
19695 let Constraints = "$Rx32 = $Rx32in";
19696 }
19697 def S2_pstorerdt_io : HInst<
19698 (outs),
19699 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19700 "if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
19701 tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19702 let Inst{2-2} = 0b0;
19703 let Inst{31-21} = 0b01000000110;
19704 let isPredicated = 1;
19705 let addrMode = BaseImmOffset;
19706 let accessSize = DoubleWordAccess;
19707 let mayStore = 1;
19708 let CextOpcode = "S2_storerd";
19709 let InputType = "imm";
19710 let BaseOpcode = "S2_storerd_io";
19711 let isExtendable = 1;
19712 let opExtendable = 2;
19713 let isExtentSigned = 0;
19714 let opExtentBits = 9;
19715 let opExtentAlign = 3;
19716 }
19717 def S2_pstorerdt_pi : HInst<
19718 (outs IntRegs:$Rx32),
19719 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19720 "if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
19721 tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel {
19722 let Inst{2-2} = 0b0;
19723 let Inst{7-7} = 0b0;
19724 let Inst{13-13} = 0b1;
19725 let Inst{31-21} = 0b10101011110;
19726 let isPredicated = 1;
19727 let addrMode = PostInc;
19728 let accessSize = DoubleWordAccess;
19729 let mayStore = 1;
19730 let CextOpcode = "S2_storerd";
19731 let BaseOpcode = "S2_storerd_pi";
19732 let Constraints = "$Rx32 = $Rx32in";
19733 }
19734 def S2_pstorerdt_zomap : HInst<
19735 (outs),
19736 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19737 "if ($Pv4) memd($Rs32) = $Rtt32",
19738 tc_f8e23f0b, TypeMAPPING> {
19739 let isPseudo = 1;
19740 let isCodeGenOnly = 1;
19741 }
19742 def S2_pstorerdtnew_pi : HInst<
19743 (outs IntRegs:$Rx32),
19744 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19745 "if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19746 tc_53559e35, TypeST>, Enc_9a33d5, AddrModeRel {
19747 let Inst{2-2} = 0b0;
19748 let Inst{7-7} = 0b1;
19749 let Inst{13-13} = 0b1;
19750 let Inst{31-21} = 0b10101011110;
19751 let isPredicated = 1;
19752 let addrMode = PostInc;
19753 let accessSize = DoubleWordAccess;
19754 let isPredicatedNew = 1;
19755 let mayStore = 1;
19756 let CextOpcode = "S2_storerd";
19757 let BaseOpcode = "S2_storerd_pi";
19758 let Constraints = "$Rx32 = $Rx32in";
19759 }
19760 def S2_pstorerff_io : HInst<
19761 (outs),
19762 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19763 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19764 tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19765 let Inst{2-2} = 0b0;
19766 let Inst{31-21} = 0b01000100011;
19767 let isPredicated = 1;
19768 let isPredicatedFalse = 1;
19769 let addrMode = BaseImmOffset;
19770 let accessSize = HalfWordAccess;
19771 let mayStore = 1;
19772 let CextOpcode = "S2_storerf";
19773 let InputType = "imm";
19774 let BaseOpcode = "S2_storerf_io";
19775 let isExtendable = 1;
19776 let opExtendable = 2;
19777 let isExtentSigned = 0;
19778 let opExtentBits = 7;
19779 let opExtentAlign = 1;
19780 }
19781 def S2_pstorerff_pi : HInst<
19782 (outs IntRegs:$Rx32),
19783 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19784 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19785 tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19786 let Inst{2-2} = 0b1;
19787 let Inst{7-7} = 0b0;
19788 let Inst{13-13} = 0b1;
19789 let Inst{31-21} = 0b10101011011;
19790 let isPredicated = 1;
19791 let isPredicatedFalse = 1;
19792 let addrMode = PostInc;
19793 let accessSize = HalfWordAccess;
19794 let mayStore = 1;
19795 let CextOpcode = "S2_storerf";
19796 let BaseOpcode = "S2_storerf_pi";
19797 let Constraints = "$Rx32 = $Rx32in";
19798 }
19799 def S2_pstorerff_zomap : HInst<
19800 (outs),
19801 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19802 "if (!$Pv4) memh($Rs32) = $Rt32.h",
19803 tc_f8e23f0b, TypeMAPPING> {
19804 let isPseudo = 1;
19805 let isCodeGenOnly = 1;
19806 }
19807 def S2_pstorerffnew_pi : HInst<
19808 (outs IntRegs:$Rx32),
19809 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19810 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19811 tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19812 let Inst{2-2} = 0b1;
19813 let Inst{7-7} = 0b1;
19814 let Inst{13-13} = 0b1;
19815 let Inst{31-21} = 0b10101011011;
19816 let isPredicated = 1;
19817 let isPredicatedFalse = 1;
19818 let addrMode = PostInc;
19819 let accessSize = HalfWordAccess;
19820 let isPredicatedNew = 1;
19821 let mayStore = 1;
19822 let CextOpcode = "S2_storerf";
19823 let BaseOpcode = "S2_storerf_pi";
19824 let Constraints = "$Rx32 = $Rx32in";
19825 }
19826 def S2_pstorerft_io : HInst<
19827 (outs),
19828 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19829 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19830 tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19831 let Inst{2-2} = 0b0;
19832 let Inst{31-21} = 0b01000000011;
19833 let isPredicated = 1;
19834 let addrMode = BaseImmOffset;
19835 let accessSize = HalfWordAccess;
19836 let mayStore = 1;
19837 let CextOpcode = "S2_storerf";
19838 let InputType = "imm";
19839 let BaseOpcode = "S2_storerf_io";
19840 let isExtendable = 1;
19841 let opExtendable = 2;
19842 let isExtentSigned = 0;
19843 let opExtentBits = 7;
19844 let opExtentAlign = 1;
19845 }
19846 def S2_pstorerft_pi : HInst<
19847 (outs IntRegs:$Rx32),
19848 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19849 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19850 tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19851 let Inst{2-2} = 0b0;
19852 let Inst{7-7} = 0b0;
19853 let Inst{13-13} = 0b1;
19854 let Inst{31-21} = 0b10101011011;
19855 let isPredicated = 1;
19856 let addrMode = PostInc;
19857 let accessSize = HalfWordAccess;
19858 let mayStore = 1;
19859 let CextOpcode = "S2_storerf";
19860 let BaseOpcode = "S2_storerf_pi";
19861 let Constraints = "$Rx32 = $Rx32in";
19862 }
19863 def S2_pstorerft_zomap : HInst<
19864 (outs),
19865 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19866 "if ($Pv4) memh($Rs32) = $Rt32.h",
19867 tc_f8e23f0b, TypeMAPPING> {
19868 let isPseudo = 1;
19869 let isCodeGenOnly = 1;
19870 }
19871 def S2_pstorerftnew_pi : HInst<
19872 (outs IntRegs:$Rx32),
19873 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19874 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19875 tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19876 let Inst{2-2} = 0b0;
19877 let Inst{7-7} = 0b1;
19878 let Inst{13-13} = 0b1;
19879 let Inst{31-21} = 0b10101011011;
19880 let isPredicated = 1;
19881 let addrMode = PostInc;
19882 let accessSize = HalfWordAccess;
19883 let isPredicatedNew = 1;
19884 let mayStore = 1;
19885 let CextOpcode = "S2_storerf";
19886 let BaseOpcode = "S2_storerf_pi";
19887 let Constraints = "$Rx32 = $Rx32in";
19888 }
19889 def S2_pstorerhf_io : HInst<
19890 (outs),
19891 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19892 "if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
19893 tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19894 let Inst{2-2} = 0b0;
19895 let Inst{31-21} = 0b01000100010;
19896 let isPredicated = 1;
19897 let isPredicatedFalse = 1;
19898 let addrMode = BaseImmOffset;
19899 let accessSize = HalfWordAccess;
19900 let mayStore = 1;
19901 let CextOpcode = "S2_storerh";
19902 let InputType = "imm";
19903 let BaseOpcode = "S2_storerh_io";
19904 let isNVStorable = 1;
19905 let isExtendable = 1;
19906 let opExtendable = 2;
19907 let isExtentSigned = 0;
19908 let opExtentBits = 7;
19909 let opExtentAlign = 1;
19910 }
19911 def S2_pstorerhf_pi : HInst<
19912 (outs IntRegs:$Rx32),
19913 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19914 "if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
19915 tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19916 let Inst{2-2} = 0b1;
19917 let Inst{7-7} = 0b0;
19918 let Inst{13-13} = 0b1;
19919 let Inst{31-21} = 0b10101011010;
19920 let isPredicated = 1;
19921 let isPredicatedFalse = 1;
19922 let addrMode = PostInc;
19923 let accessSize = HalfWordAccess;
19924 let mayStore = 1;
19925 let BaseOpcode = "S2_storerh_pi";
19926 let isNVStorable = 1;
19927 let Constraints = "$Rx32 = $Rx32in";
19928 }
19929 def S2_pstorerhf_zomap : HInst<
19930 (outs),
19931 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19932 "if (!$Pv4) memh($Rs32) = $Rt32",
19933 tc_f8e23f0b, TypeMAPPING> {
19934 let isPseudo = 1;
19935 let isCodeGenOnly = 1;
19936 }
19937 def S2_pstorerhfnew_pi : HInst<
19938 (outs IntRegs:$Rx32),
19939 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19940 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
19941 tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19942 let Inst{2-2} = 0b1;
19943 let Inst{7-7} = 0b1;
19944 let Inst{13-13} = 0b1;
19945 let Inst{31-21} = 0b10101011010;
19946 let isPredicated = 1;
19947 let isPredicatedFalse = 1;
19948 let addrMode = PostInc;
19949 let accessSize = HalfWordAccess;
19950 let isPredicatedNew = 1;
19951 let mayStore = 1;
19952 let BaseOpcode = "S2_storerh_pi";
19953 let isNVStorable = 1;
19954 let Constraints = "$Rx32 = $Rx32in";
19955 }
19956 def S2_pstorerhnewf_io : HInst<
19957 (outs),
19958 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
19959 "if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
19960 tc_8fb7ab1b, TypeV2LDST>, Enc_f44229, AddrModeRel {
19961 let Inst{2-2} = 0b0;
19962 let Inst{12-11} = 0b01;
19963 let Inst{31-21} = 0b01000100101;
19964 let isPredicated = 1;
19965 let isPredicatedFalse = 1;
19966 let addrMode = BaseImmOffset;
19967 let accessSize = HalfWordAccess;
19968 let isNVStore = 1;
19969 let isNewValue = 1;
19970 let isRestrictNoSlot1Store = 1;
19971 let mayStore = 1;
19972 let CextOpcode = "S2_storerh";
19973 let InputType = "imm";
19974 let BaseOpcode = "S2_storerh_io";
19975 let isExtendable = 1;
19976 let opExtendable = 2;
19977 let isExtentSigned = 0;
19978 let opExtentBits = 7;
19979 let opExtentAlign = 1;
19980 let opNewValue = 3;
19981 }
19982 def S2_pstorerhnewf_pi : HInst<
19983 (outs IntRegs:$Rx32),
19984 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19985 "if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
19986 tc_838b34ea, TypeST>, Enc_31aa6a, AddrModeRel {
19987 let Inst{2-2} = 0b1;
19988 let Inst{7-7} = 0b0;
19989 let Inst{13-11} = 0b101;
19990 let Inst{31-21} = 0b10101011101;
19991 let isPredicated = 1;
19992 let isPredicatedFalse = 1;
19993 let addrMode = PostInc;
19994 let accessSize = HalfWordAccess;
19995 let isNVStore = 1;
19996 let isNewValue = 1;
19997 let isRestrictNoSlot1Store = 1;
19998 let mayStore = 1;
19999 let CextOpcode = "S2_storerh";
20000 let BaseOpcode = "S2_storerh_pi";
20001 let opNewValue = 4;
20002 let Constraints = "$Rx32 = $Rx32in";
20003 }
20004 def S2_pstorerhnewf_zomap : HInst<
20005 (outs),
20006 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20007 "if (!$Pv4) memh($Rs32) = $Nt8.new",
20008 tc_8fb7ab1b, TypeMAPPING> {
20009 let isPseudo = 1;
20010 let isCodeGenOnly = 1;
20011 let opNewValue = 2;
20012 }
20013 def S2_pstorerhnewfnew_pi : HInst<
20014 (outs IntRegs:$Rx32),
20015 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20016 "if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20017 tc_d65dbf51, TypeST>, Enc_31aa6a, AddrModeRel {
20018 let Inst{2-2} = 0b1;
20019 let Inst{7-7} = 0b1;
20020 let Inst{13-11} = 0b101;
20021 let Inst{31-21} = 0b10101011101;
20022 let isPredicated = 1;
20023 let isPredicatedFalse = 1;
20024 let addrMode = PostInc;
20025 let accessSize = HalfWordAccess;
20026 let isNVStore = 1;
20027 let isPredicatedNew = 1;
20028 let isNewValue = 1;
20029 let isRestrictNoSlot1Store = 1;
20030 let mayStore = 1;
20031 let CextOpcode = "S2_storerh";
20032 let BaseOpcode = "S2_storerh_pi";
20033 let opNewValue = 4;
20034 let Constraints = "$Rx32 = $Rx32in";
20035 }
20036 def S2_pstorerhnewt_io : HInst<
20037 (outs),
20038 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20039 "if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20040 tc_8fb7ab1b, TypeV2LDST>, Enc_f44229, AddrModeRel {
20041 let Inst{2-2} = 0b0;
20042 let Inst{12-11} = 0b01;
20043 let Inst{31-21} = 0b01000000101;
20044 let isPredicated = 1;
20045 let addrMode = BaseImmOffset;
20046 let accessSize = HalfWordAccess;
20047 let isNVStore = 1;
20048 let isNewValue = 1;
20049 let isRestrictNoSlot1Store = 1;
20050 let mayStore = 1;
20051 let CextOpcode = "S2_storerh";
20052 let InputType = "imm";
20053 let BaseOpcode = "S2_storerh_io";
20054 let isExtendable = 1;
20055 let opExtendable = 2;
20056 let isExtentSigned = 0;
20057 let opExtentBits = 7;
20058 let opExtentAlign = 1;
20059 let opNewValue = 3;
20060 }
20061 def S2_pstorerhnewt_pi : HInst<
20062 (outs IntRegs:$Rx32),
20063 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20064 "if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20065 tc_838b34ea, TypeST>, Enc_31aa6a, AddrModeRel {
20066 let Inst{2-2} = 0b0;
20067 let Inst{7-7} = 0b0;
20068 let Inst{13-11} = 0b101;
20069 let Inst{31-21} = 0b10101011101;
20070 let isPredicated = 1;
20071 let addrMode = PostInc;
20072 let accessSize = HalfWordAccess;
20073 let isNVStore = 1;
20074 let isNewValue = 1;
20075 let isRestrictNoSlot1Store = 1;
20076 let mayStore = 1;
20077 let CextOpcode = "S2_storerh";
20078 let BaseOpcode = "S2_storerh_pi";
20079 let opNewValue = 4;
20080 let Constraints = "$Rx32 = $Rx32in";
20081 }
20082 def S2_pstorerhnewt_zomap : HInst<
20083 (outs),
20084 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20085 "if ($Pv4) memh($Rs32) = $Nt8.new",
20086 tc_8fb7ab1b, TypeMAPPING> {
20087 let isPseudo = 1;
20088 let isCodeGenOnly = 1;
20089 let opNewValue = 2;
20090 }
20091 def S2_pstorerhnewtnew_pi : HInst<
20092 (outs IntRegs:$Rx32),
20093 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20094 "if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20095 tc_d65dbf51, TypeST>, Enc_31aa6a, AddrModeRel {
20096 let Inst{2-2} = 0b0;
20097 let Inst{7-7} = 0b1;
20098 let Inst{13-11} = 0b101;
20099 let Inst{31-21} = 0b10101011101;
20100 let isPredicated = 1;
20101 let addrMode = PostInc;
20102 let accessSize = HalfWordAccess;
20103 let isNVStore = 1;
20104 let isPredicatedNew = 1;
20105 let isNewValue = 1;
20106 let isRestrictNoSlot1Store = 1;
20107 let mayStore = 1;
20108 let CextOpcode = "S2_storerh";
20109 let BaseOpcode = "S2_storerh_pi";
20110 let opNewValue = 4;
20111 let Constraints = "$Rx32 = $Rx32in";
20112 }
20113 def S2_pstorerht_io : HInst<
20114 (outs),
20115 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20116 "if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20117 tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20118 let Inst{2-2} = 0b0;
20119 let Inst{31-21} = 0b01000000010;
20120 let isPredicated = 1;
20121 let addrMode = BaseImmOffset;
20122 let accessSize = HalfWordAccess;
20123 let mayStore = 1;
20124 let CextOpcode = "S2_storerh";
20125 let InputType = "imm";
20126 let BaseOpcode = "S2_storerh_io";
20127 let isNVStorable = 1;
20128 let isExtendable = 1;
20129 let opExtendable = 2;
20130 let isExtentSigned = 0;
20131 let opExtentBits = 7;
20132 let opExtentAlign = 1;
20133 }
20134 def S2_pstorerht_pi : HInst<
20135 (outs IntRegs:$Rx32),
20136 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20137 "if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20138 tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
20139 let Inst{2-2} = 0b0;
20140 let Inst{7-7} = 0b0;
20141 let Inst{13-13} = 0b1;
20142 let Inst{31-21} = 0b10101011010;
20143 let isPredicated = 1;
20144 let addrMode = PostInc;
20145 let accessSize = HalfWordAccess;
20146 let mayStore = 1;
20147 let BaseOpcode = "S2_storerh_pi";
20148 let isNVStorable = 1;
20149 let Constraints = "$Rx32 = $Rx32in";
20150 }
20151 def S2_pstorerht_zomap : HInst<
20152 (outs),
20153 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20154 "if ($Pv4) memh($Rs32) = $Rt32",
20155 tc_f8e23f0b, TypeMAPPING> {
20156 let isPseudo = 1;
20157 let isCodeGenOnly = 1;
20158 }
20159 def S2_pstorerhtnew_pi : HInst<
20160 (outs IntRegs:$Rx32),
20161 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20162 "if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20163 tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
20164 let Inst{2-2} = 0b0;
20165 let Inst{7-7} = 0b1;
20166 let Inst{13-13} = 0b1;
20167 let Inst{31-21} = 0b10101011010;
20168 let isPredicated = 1;
20169 let addrMode = PostInc;
20170 let accessSize = HalfWordAccess;
20171 let isPredicatedNew = 1;
20172 let mayStore = 1;
20173 let BaseOpcode = "S2_storerh_pi";
20174 let isNVStorable = 1;
20175 let Constraints = "$Rx32 = $Rx32in";
20176 }
20177 def S2_pstorerif_io : HInst<
20178 (outs),
20179 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20180 "if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20181 tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel {
20182 let Inst{2-2} = 0b0;
20183 let Inst{31-21} = 0b01000100100;
20184 let isPredicated = 1;
20185 let isPredicatedFalse = 1;
20186 let addrMode = BaseImmOffset;
20187 let accessSize = WordAccess;
20188 let mayStore = 1;
20189 let CextOpcode = "S2_storeri";
20190 let InputType = "imm";
20191 let BaseOpcode = "S2_storeri_io";
20192 let isNVStorable = 1;
20193 let isExtendable = 1;
20194 let opExtendable = 2;
20195 let isExtentSigned = 0;
20196 let opExtentBits = 8;
20197 let opExtentAlign = 2;
20198 }
20199 def S2_pstorerif_pi : HInst<
20200 (outs IntRegs:$Rx32),
20201 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20202 "if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20203 tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel {
20204 let Inst{2-2} = 0b1;
20205 let Inst{7-7} = 0b0;
20206 let Inst{13-13} = 0b1;
20207 let Inst{31-21} = 0b10101011100;
20208 let isPredicated = 1;
20209 let isPredicatedFalse = 1;
20210 let addrMode = PostInc;
20211 let accessSize = WordAccess;
20212 let mayStore = 1;
20213 let BaseOpcode = "S2_storeri_pi";
20214 let isNVStorable = 1;
20215 let Constraints = "$Rx32 = $Rx32in";
20216 }
20217 def S2_pstorerif_zomap : HInst<
20218 (outs),
20219 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20220 "if (!$Pv4) memw($Rs32) = $Rt32",
20221 tc_f8e23f0b, TypeMAPPING> {
20222 let isPseudo = 1;
20223 let isCodeGenOnly = 1;
20224 }
20225 def S2_pstorerifnew_pi : HInst<
20226 (outs IntRegs:$Rx32),
20227 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20228 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20229 tc_53559e35, TypeST>, Enc_7eaeb6, AddrModeRel {
20230 let Inst{2-2} = 0b1;
20231 let Inst{7-7} = 0b1;
20232 let Inst{13-13} = 0b1;
20233 let Inst{31-21} = 0b10101011100;
20234 let isPredicated = 1;
20235 let isPredicatedFalse = 1;
20236 let addrMode = PostInc;
20237 let accessSize = WordAccess;
20238 let isPredicatedNew = 1;
20239 let mayStore = 1;
20240 let CextOpcode = "S2_storeri";
20241 let BaseOpcode = "S2_storeri_pi";
20242 let isNVStorable = 1;
20243 let Constraints = "$Rx32 = $Rx32in";
20244 }
20245 def S2_pstorerinewf_io : HInst<
20246 (outs),
20247 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20248 "if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20249 tc_8fb7ab1b, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20250 let Inst{2-2} = 0b0;
20251 let Inst{12-11} = 0b10;
20252 let Inst{31-21} = 0b01000100101;
20253 let isPredicated = 1;
20254 let isPredicatedFalse = 1;
20255 let addrMode = BaseImmOffset;
20256 let accessSize = WordAccess;
20257 let isNVStore = 1;
20258 let isNewValue = 1;
20259 let isRestrictNoSlot1Store = 1;
20260 let mayStore = 1;
20261 let CextOpcode = "S2_storeri";
20262 let InputType = "imm";
20263 let BaseOpcode = "S2_storeri_io";
20264 let isExtendable = 1;
20265 let opExtendable = 2;
20266 let isExtentSigned = 0;
20267 let opExtentBits = 8;
20268 let opExtentAlign = 2;
20269 let opNewValue = 3;
20270 }
20271 def S2_pstorerinewf_pi : HInst<
20272 (outs IntRegs:$Rx32),
20273 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20274 "if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20275 tc_838b34ea, TypeST>, Enc_65f095, AddrModeRel {
20276 let Inst{2-2} = 0b1;
20277 let Inst{7-7} = 0b0;
20278 let Inst{13-11} = 0b110;
20279 let Inst{31-21} = 0b10101011101;
20280 let isPredicated = 1;
20281 let isPredicatedFalse = 1;
20282 let addrMode = PostInc;
20283 let accessSize = WordAccess;
20284 let isNVStore = 1;
20285 let isNewValue = 1;
20286 let isRestrictNoSlot1Store = 1;
20287 let mayStore = 1;
20288 let CextOpcode = "S2_storeri";
20289 let BaseOpcode = "S2_storeri_pi";
20290 let opNewValue = 4;
20291 let Constraints = "$Rx32 = $Rx32in";
20292 }
20293 def S2_pstorerinewf_zomap : HInst<
20294 (outs),
20295 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20296 "if (!$Pv4) memw($Rs32) = $Nt8.new",
20297 tc_8fb7ab1b, TypeMAPPING> {
20298 let isPseudo = 1;
20299 let isCodeGenOnly = 1;
20300 let opNewValue = 2;
20301 }
20302 def S2_pstorerinewfnew_pi : HInst<
20303 (outs IntRegs:$Rx32),
20304 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20305 "if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20306 tc_d65dbf51, TypeST>, Enc_65f095, AddrModeRel {
20307 let Inst{2-2} = 0b1;
20308 let Inst{7-7} = 0b1;
20309 let Inst{13-11} = 0b110;
20310 let Inst{31-21} = 0b10101011101;
20311 let isPredicated = 1;
20312 let isPredicatedFalse = 1;
20313 let addrMode = PostInc;
20314 let accessSize = WordAccess;
20315 let isNVStore = 1;
20316 let isPredicatedNew = 1;
20317 let isNewValue = 1;
20318 let isRestrictNoSlot1Store = 1;
20319 let mayStore = 1;
20320 let CextOpcode = "S2_storeri";
20321 let BaseOpcode = "S2_storeri_pi";
20322 let opNewValue = 4;
20323 let Constraints = "$Rx32 = $Rx32in";
20324 }
20325 def S2_pstorerinewt_io : HInst<
20326 (outs),
20327 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20328 "if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20329 tc_8fb7ab1b, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20330 let Inst{2-2} = 0b0;
20331 let Inst{12-11} = 0b10;
20332 let Inst{31-21} = 0b01000000101;
20333 let isPredicated = 1;
20334 let addrMode = BaseImmOffset;
20335 let accessSize = WordAccess;
20336 let isNVStore = 1;
20337 let isNewValue = 1;
20338 let isRestrictNoSlot1Store = 1;
20339 let mayStore = 1;
20340 let CextOpcode = "S2_storeri";
20341 let InputType = "imm";
20342 let BaseOpcode = "S2_storeri_io";
20343 let isExtendable = 1;
20344 let opExtendable = 2;
20345 let isExtentSigned = 0;
20346 let opExtentBits = 8;
20347 let opExtentAlign = 2;
20348 let opNewValue = 3;
20349 }
20350 def S2_pstorerinewt_pi : HInst<
20351 (outs IntRegs:$Rx32),
20352 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20353 "if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20354 tc_838b34ea, TypeST>, Enc_65f095, AddrModeRel {
20355 let Inst{2-2} = 0b0;
20356 let Inst{7-7} = 0b0;
20357 let Inst{13-11} = 0b110;
20358 let Inst{31-21} = 0b10101011101;
20359 let isPredicated = 1;
20360 let addrMode = PostInc;
20361 let accessSize = WordAccess;
20362 let isNVStore = 1;
20363 let isNewValue = 1;
20364 let isRestrictNoSlot1Store = 1;
20365 let mayStore = 1;
20366 let CextOpcode = "S2_storeri";
20367 let BaseOpcode = "S2_storeri_pi";
20368 let opNewValue = 4;
20369 let Constraints = "$Rx32 = $Rx32in";
20370 }
20371 def S2_pstorerinewt_zomap : HInst<
20372 (outs),
20373 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20374 "if ($Pv4) memw($Rs32) = $Nt8.new",
20375 tc_8fb7ab1b, TypeMAPPING> {
20376 let isPseudo = 1;
20377 let isCodeGenOnly = 1;
20378 let opNewValue = 2;
20379 }
20380 def S2_pstorerinewtnew_pi : HInst<
20381 (outs IntRegs:$Rx32),
20382 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20383 "if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20384 tc_d65dbf51, TypeST>, Enc_65f095, AddrModeRel {
20385 let Inst{2-2} = 0b0;
20386 let Inst{7-7} = 0b1;
20387 let Inst{13-11} = 0b110;
20388 let Inst{31-21} = 0b10101011101;
20389 let isPredicated = 1;
20390 let addrMode = PostInc;
20391 let accessSize = WordAccess;
20392 let isNVStore = 1;
20393 let isPredicatedNew = 1;
20394 let isNewValue = 1;
20395 let isRestrictNoSlot1Store = 1;
20396 let mayStore = 1;
20397 let CextOpcode = "S2_storeri";
20398 let BaseOpcode = "S2_storeri_pi";
20399 let opNewValue = 4;
20400 let Constraints = "$Rx32 = $Rx32in";
20401 }
20402 def S2_pstorerit_io : HInst<
20403 (outs),
20404 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20405 "if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20406 tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel {
20407 let Inst{2-2} = 0b0;
20408 let Inst{31-21} = 0b01000000100;
20409 let isPredicated = 1;
20410 let addrMode = BaseImmOffset;
20411 let accessSize = WordAccess;
20412 let mayStore = 1;
20413 let CextOpcode = "S2_storeri";
20414 let InputType = "imm";
20415 let BaseOpcode = "S2_storeri_io";
20416 let isNVStorable = 1;
20417 let isExtendable = 1;
20418 let opExtendable = 2;
20419 let isExtentSigned = 0;
20420 let opExtentBits = 8;
20421 let opExtentAlign = 2;
20422 }
20423 def S2_pstorerit_pi : HInst<
20424 (outs IntRegs:$Rx32),
20425 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20426 "if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20427 tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel {
20428 let Inst{2-2} = 0b0;
20429 let Inst{7-7} = 0b0;
20430 let Inst{13-13} = 0b1;
20431 let Inst{31-21} = 0b10101011100;
20432 let isPredicated = 1;
20433 let addrMode = PostInc;
20434 let accessSize = WordAccess;
20435 let mayStore = 1;
20436 let BaseOpcode = "S2_storeri_pi";
20437 let isNVStorable = 1;
20438 let Constraints = "$Rx32 = $Rx32in";
20439 }
20440 def S2_pstorerit_zomap : HInst<
20441 (outs),
20442 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20443 "if ($Pv4) memw($Rs32) = $Rt32",
20444 tc_f8e23f0b, TypeMAPPING> {
20445 let isPseudo = 1;
20446 let isCodeGenOnly = 1;
20447 }
20448 def S2_pstoreritnew_pi : HInst<
20449 (outs IntRegs:$Rx32),
20450 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20451 "if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20452 tc_53559e35, TypeST>, Enc_7eaeb6, AddrModeRel {
20453 let Inst{2-2} = 0b0;
20454 let Inst{7-7} = 0b1;
20455 let Inst{13-13} = 0b1;
20456 let Inst{31-21} = 0b10101011100;
20457 let isPredicated = 1;
20458 let addrMode = PostInc;
20459 let accessSize = WordAccess;
20460 let isPredicatedNew = 1;
20461 let mayStore = 1;
20462 let BaseOpcode = "S2_storeri_pi";
20463 let isNVStorable = 1;
20464 let Constraints = "$Rx32 = $Rx32in";
20465 }
20466 def S2_setbit_i : HInst<
20467 (outs IntRegs:$Rd32),
20468 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
20469 "$Rd32 = setbit($Rs32,#$Ii)",
20470 tc_946df596, TypeS_2op>, Enc_a05677 {
20471 let Inst{7-5} = 0b000;
20472 let Inst{13-13} = 0b0;
20473 let Inst{31-21} = 0b10001100110;
20474 let hasNewValue = 1;
20475 let opNewValue = 0;
20476 }
20477 def S2_setbit_r : HInst<
20478 (outs IntRegs:$Rd32),
20479 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20480 "$Rd32 = setbit($Rs32,$Rt32)",
20481 tc_946df596, TypeS_3op>, Enc_5ab2be {
20482 let Inst{7-5} = 0b000;
20483 let Inst{13-13} = 0b0;
20484 let Inst{31-21} = 0b11000110100;
20485 let hasNewValue = 1;
20486 let opNewValue = 0;
20487 }
20488 def S2_shuffeb : HInst<
20489 (outs DoubleRegs:$Rdd32),
20490 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20491 "$Rdd32 = shuffeb($Rss32,$Rtt32)",
20492 tc_946df596, TypeS_3op>, Enc_a56825 {
20493 let Inst{7-5} = 0b010;
20494 let Inst{13-13} = 0b0;
20495 let Inst{31-21} = 0b11000001000;
20496 }
20497 def S2_shuffeh : HInst<
20498 (outs DoubleRegs:$Rdd32),
20499 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20500 "$Rdd32 = shuffeh($Rss32,$Rtt32)",
20501 tc_946df596, TypeS_3op>, Enc_a56825 {
20502 let Inst{7-5} = 0b110;
20503 let Inst{13-13} = 0b0;
20504 let Inst{31-21} = 0b11000001000;
20505 }
20506 def S2_shuffob : HInst<
20507 (outs DoubleRegs:$Rdd32),
20508 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20509 "$Rdd32 = shuffob($Rtt32,$Rss32)",
20510 tc_946df596, TypeS_3op>, Enc_ea23e4 {
20511 let Inst{7-5} = 0b100;
20512 let Inst{13-13} = 0b0;
20513 let Inst{31-21} = 0b11000001000;
20514 }
20515 def S2_shuffoh : HInst<
20516 (outs DoubleRegs:$Rdd32),
20517 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20518 "$Rdd32 = shuffoh($Rtt32,$Rss32)",
20519 tc_946df596, TypeS_3op>, Enc_ea23e4 {
20520 let Inst{7-5} = 0b000;
20521 let Inst{13-13} = 0b0;
20522 let Inst{31-21} = 0b11000001100;
20523 }
20524 def S2_storerb_io : HInst<
20525 (outs),
20526 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20527 "memb($Rs32+#$Ii) = $Rt32",
20528 tc_30b9bb4a, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20529 let Inst{24-21} = 0b1000;
20530 let Inst{31-27} = 0b10100;
20531 let addrMode = BaseImmOffset;
20532 let accessSize = ByteAccess;
20533 let mayStore = 1;
20534 let CextOpcode = "S2_storerb";
20535 let InputType = "imm";
20536 let BaseOpcode = "S2_storerb_io";
20537 let isPredicable = 1;
20538 let isNVStorable = 1;
20539 let isExtendable = 1;
20540 let opExtendable = 1;
20541 let isExtentSigned = 1;
20542 let opExtentBits = 11;
20543 let opExtentAlign = 0;
20544 }
20545 def S2_storerb_pbr : HInst<
20546 (outs IntRegs:$Rx32),
20547 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20548 "memb($Rx32++$Mu2:brev) = $Rt32",
20549 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
20550 let Inst{7-0} = 0b00000000;
20551 let Inst{31-21} = 0b10101111000;
20552 let addrMode = PostInc;
20553 let accessSize = ByteAccess;
20554 let mayStore = 1;
20555 let BaseOpcode = "S2_storerb_pbr";
20556 let isNVStorable = 1;
20557 let Constraints = "$Rx32 = $Rx32in";
20558 }
20559 def S2_storerb_pci : HInst<
20560 (outs IntRegs:$Rx32),
20561 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20562 "memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20563 tc_e86aa961, TypeST>, Enc_b15941, AddrModeRel {
20564 let Inst{2-0} = 0b000;
20565 let Inst{7-7} = 0b0;
20566 let Inst{31-21} = 0b10101001000;
20567 let addrMode = PostInc;
20568 let accessSize = ByteAccess;
20569 let mayStore = 1;
20570 let Uses = [CS];
20571 let BaseOpcode = "S2_storerb_pci";
20572 let isNVStorable = 1;
20573 let Constraints = "$Rx32 = $Rx32in";
20574 }
20575 def S2_storerb_pcr : HInst<
20576 (outs IntRegs:$Rx32),
20577 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20578 "memb($Rx32++I:circ($Mu2)) = $Rt32",
20579 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
20580 let Inst{7-0} = 0b00000010;
20581 let Inst{31-21} = 0b10101001000;
20582 let addrMode = PostInc;
20583 let accessSize = ByteAccess;
20584 let mayStore = 1;
20585 let Uses = [CS];
20586 let BaseOpcode = "S2_storerb_pcr";
20587 let isNVStorable = 1;
20588 let Constraints = "$Rx32 = $Rx32in";
20589 }
20590 def S2_storerb_pi : HInst<
20591 (outs IntRegs:$Rx32),
20592 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20593 "memb($Rx32++#$Ii) = $Rt32",
20594 tc_da97ee82, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
20595 let Inst{2-0} = 0b000;
20596 let Inst{7-7} = 0b0;
20597 let Inst{13-13} = 0b0;
20598 let Inst{31-21} = 0b10101011000;
20599 let addrMode = PostInc;
20600 let accessSize = ByteAccess;
20601 let mayStore = 1;
20602 let CextOpcode = "S2_storerb";
20603 let BaseOpcode = "S2_storerb_pi";
20604 let isPredicable = 1;
20605 let isNVStorable = 1;
20606 let Constraints = "$Rx32 = $Rx32in";
20607 }
20608 def S2_storerb_pr : HInst<
20609 (outs IntRegs:$Rx32),
20610 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20611 "memb($Rx32++$Mu2) = $Rt32",
20612 tc_da97ee82, TypeST>, Enc_d5c73f {
20613 let Inst{7-0} = 0b00000000;
20614 let Inst{31-21} = 0b10101101000;
20615 let addrMode = PostInc;
20616 let accessSize = ByteAccess;
20617 let mayStore = 1;
20618 let isNVStorable = 1;
20619 let Constraints = "$Rx32 = $Rx32in";
20620 }
20621 def S2_storerb_zomap : HInst<
20622 (outs),
20623 (ins IntRegs:$Rs32, IntRegs:$Rt32),
20624 "memb($Rs32) = $Rt32",
20625 tc_30b9bb4a, TypeMAPPING> {
20626 let isPseudo = 1;
20627 let isCodeGenOnly = 1;
20628 }
20629 def S2_storerbgp : HInst<
20630 (outs),
20631 (ins u32_0Imm:$Ii, IntRegs:$Rt32),
20632 "memb(gp+#$Ii) = $Rt32",
20633 tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
20634 let Inst{24-21} = 0b0000;
20635 let Inst{31-27} = 0b01001;
20636 let accessSize = ByteAccess;
20637 let mayStore = 1;
20638 let Uses = [GP];
20639 let BaseOpcode = "S2_storerbabs";
20640 let isPredicable = 1;
20641 let isNVStorable = 1;
20642 let opExtendable = 0;
20643 let isExtentSigned = 0;
20644 let opExtentBits = 16;
20645 let opExtentAlign = 0;
20646 }
20647 def S2_storerbnew_io : HInst<
20648 (outs),
20649 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
20650 "memb($Rs32+#$Ii) = $Nt8.new",
20651 tc_be9602ff, TypeST>, Enc_4df4e9, AddrModeRel {
20652 let Inst{12-11} = 0b00;
20653 let Inst{24-21} = 0b1101;
20654 let Inst{31-27} = 0b10100;
20655 let addrMode = BaseImmOffset;
20656 let accessSize = ByteAccess;
20657 let isNVStore = 1;
20658 let isNewValue = 1;
20659 let isRestrictNoSlot1Store = 1;
20660 let mayStore = 1;
20661 let CextOpcode = "S2_storerb";
20662 let InputType = "imm";
20663 let BaseOpcode = "S2_storerb_io";
20664 let isPredicable = 1;
20665 let isExtendable = 1;
20666 let opExtendable = 1;
20667 let isExtentSigned = 1;
20668 let opExtentBits = 11;
20669 let opExtentAlign = 0;
20670 let opNewValue = 2;
20671 }
20672 def S2_storerbnew_pbr : HInst<
20673 (outs IntRegs:$Rx32),
20674 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20675 "memb($Rx32++$Mu2:brev) = $Nt8.new",
20676 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
20677 let Inst{7-0} = 0b00000000;
20678 let Inst{12-11} = 0b00;
20679 let Inst{31-21} = 0b10101111101;
20680 let addrMode = PostInc;
20681 let accessSize = ByteAccess;
20682 let isNVStore = 1;
20683 let isNewValue = 1;
20684 let isRestrictNoSlot1Store = 1;
20685 let mayStore = 1;
20686 let BaseOpcode = "S2_storerb_pbr";
20687 let opNewValue = 3;
20688 let Constraints = "$Rx32 = $Rx32in";
20689 }
20690 def S2_storerbnew_pci : HInst<
20691 (outs IntRegs:$Rx32),
20692 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
20693 "memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
20694 tc_d5c0729a, TypeST>, Enc_96ce4f, AddrModeRel {
20695 let Inst{2-0} = 0b000;
20696 let Inst{7-7} = 0b0;
20697 let Inst{12-11} = 0b00;
20698 let Inst{31-21} = 0b10101001101;
20699 let addrMode = PostInc;
20700 let accessSize = ByteAccess;
20701 let isNVStore = 1;
20702 let isNewValue = 1;
20703 let isRestrictNoSlot1Store = 1;
20704 let mayStore = 1;
20705 let Uses = [CS];
20706 let BaseOpcode = "S2_storerb_pci";
20707 let opNewValue = 4;
20708 let Constraints = "$Rx32 = $Rx32in";
20709 }
20710 def S2_storerbnew_pcr : HInst<
20711 (outs IntRegs:$Rx32),
20712 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20713 "memb($Rx32++I:circ($Mu2)) = $Nt8.new",
20714 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
20715 let Inst{7-0} = 0b00000010;
20716 let Inst{12-11} = 0b00;
20717 let Inst{31-21} = 0b10101001101;
20718 let addrMode = PostInc;
20719 let accessSize = ByteAccess;
20720 let isNVStore = 1;
20721 let isNewValue = 1;
20722 let isRestrictNoSlot1Store = 1;
20723 let mayStore = 1;
20724 let Uses = [CS];
20725 let BaseOpcode = "S2_storerb_pcr";
20726 let opNewValue = 3;
20727 let Constraints = "$Rx32 = $Rx32in";
20728 }
20729 def S2_storerbnew_pi : HInst<
20730 (outs IntRegs:$Rx32),
20731 (ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
20732 "memb($Rx32++#$Ii) = $Nt8.new",
20733 tc_c79a189f, TypeST>, Enc_c7cd90, AddrModeRel {
20734 let Inst{2-0} = 0b000;
20735 let Inst{7-7} = 0b0;
20736 let Inst{13-11} = 0b000;
20737 let Inst{31-21} = 0b10101011101;
20738 let addrMode = PostInc;
20739 let accessSize = ByteAccess;
20740 let isNVStore = 1;
20741 let isNewValue = 1;
20742 let isRestrictNoSlot1Store = 1;
20743 let mayStore = 1;
20744 let BaseOpcode = "S2_storerb_pi";
20745 let isPredicable = 1;
20746 let isNVStorable = 1;
20747 let opNewValue = 3;
20748 let Constraints = "$Rx32 = $Rx32in";
20749 }
20750 def S2_storerbnew_pr : HInst<
20751 (outs IntRegs:$Rx32),
20752 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20753 "memb($Rx32++$Mu2) = $Nt8.new",
20754 tc_c79a189f, TypeST>, Enc_8dbe85 {
20755 let Inst{7-0} = 0b00000000;
20756 let Inst{12-11} = 0b00;
20757 let Inst{31-21} = 0b10101101101;
20758 let addrMode = PostInc;
20759 let accessSize = ByteAccess;
20760 let isNVStore = 1;
20761 let isNewValue = 1;
20762 let isRestrictNoSlot1Store = 1;
20763 let mayStore = 1;
20764 let opNewValue = 3;
20765 let Constraints = "$Rx32 = $Rx32in";
20766 }
20767 def S2_storerbnew_zomap : HInst<
20768 (outs),
20769 (ins IntRegs:$Rs32, IntRegs:$Nt8),
20770 "memb($Rs32) = $Nt8.new",
20771 tc_be9602ff, TypeMAPPING> {
20772 let isPseudo = 1;
20773 let isCodeGenOnly = 1;
20774 let opNewValue = 1;
20775 }
20776 def S2_storerbnewgp : HInst<
20777 (outs),
20778 (ins u32_0Imm:$Ii, IntRegs:$Nt8),
20779 "memb(gp+#$Ii) = $Nt8.new",
20780 tc_5bf126a6, TypeV2LDST>, Enc_ad1831, AddrModeRel {
20781 let Inst{12-11} = 0b00;
20782 let Inst{24-21} = 0b0101;
20783 let Inst{31-27} = 0b01001;
20784 let accessSize = ByteAccess;
20785 let isNVStore = 1;
20786 let isNewValue = 1;
20787 let isRestrictNoSlot1Store = 1;
20788 let mayStore = 1;
20789 let Uses = [GP];
20790 let BaseOpcode = "S2_storerbabs";
20791 let isPredicable = 1;
20792 let opExtendable = 0;
20793 let isExtentSigned = 0;
20794 let opExtentBits = 16;
20795 let opExtentAlign = 0;
20796 let opNewValue = 1;
20797 }
20798 def S2_storerd_io : HInst<
20799 (outs),
20800 (ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
20801 "memd($Rs32+#$Ii) = $Rtt32",
20802 tc_30b9bb4a, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
20803 let Inst{24-21} = 0b1110;
20804 let Inst{31-27} = 0b10100;
20805 let addrMode = BaseImmOffset;
20806 let accessSize = DoubleWordAccess;
20807 let mayStore = 1;
20808 let CextOpcode = "S2_storerd";
20809 let InputType = "imm";
20810 let BaseOpcode = "S2_storerd_io";
20811 let isPredicable = 1;
20812 let isExtendable = 1;
20813 let opExtendable = 1;
20814 let isExtentSigned = 1;
20815 let opExtentBits = 14;
20816 let opExtentAlign = 3;
20817 }
20818 def S2_storerd_pbr : HInst<
20819 (outs IntRegs:$Rx32),
20820 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20821 "memd($Rx32++$Mu2:brev) = $Rtt32",
20822 tc_da97ee82, TypeST>, Enc_928ca1 {
20823 let Inst{7-0} = 0b00000000;
20824 let Inst{31-21} = 0b10101111110;
20825 let addrMode = PostInc;
20826 let accessSize = DoubleWordAccess;
20827 let mayStore = 1;
20828 let Constraints = "$Rx32 = $Rx32in";
20829 }
20830 def S2_storerd_pci : HInst<
20831 (outs IntRegs:$Rx32),
20832 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20833 "memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
20834 tc_e86aa961, TypeST>, Enc_395cc4 {
20835 let Inst{2-0} = 0b000;
20836 let Inst{7-7} = 0b0;
20837 let Inst{31-21} = 0b10101001110;
20838 let addrMode = PostInc;
20839 let accessSize = DoubleWordAccess;
20840 let mayStore = 1;
20841 let Uses = [CS];
20842 let Constraints = "$Rx32 = $Rx32in";
20843 }
20844 def S2_storerd_pcr : HInst<
20845 (outs IntRegs:$Rx32),
20846 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20847 "memd($Rx32++I:circ($Mu2)) = $Rtt32",
20848 tc_da97ee82, TypeST>, Enc_928ca1 {
20849 let Inst{7-0} = 0b00000010;
20850 let Inst{31-21} = 0b10101001110;
20851 let addrMode = PostInc;
20852 let accessSize = DoubleWordAccess;
20853 let mayStore = 1;
20854 let Uses = [CS];
20855 let Constraints = "$Rx32 = $Rx32in";
20856 }
20857 def S2_storerd_pi : HInst<
20858 (outs IntRegs:$Rx32),
20859 (ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20860 "memd($Rx32++#$Ii) = $Rtt32",
20861 tc_da97ee82, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
20862 let Inst{2-0} = 0b000;
20863 let Inst{7-7} = 0b0;
20864 let Inst{13-13} = 0b0;
20865 let Inst{31-21} = 0b10101011110;
20866 let addrMode = PostInc;
20867 let accessSize = DoubleWordAccess;
20868 let mayStore = 1;
20869 let CextOpcode = "S2_storerd";
20870 let BaseOpcode = "S2_storerd_pi";
20871 let isPredicable = 1;
20872 let Constraints = "$Rx32 = $Rx32in";
20873 }
20874 def S2_storerd_pr : HInst<
20875 (outs IntRegs:$Rx32),
20876 (ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20877 "memd($Rx32++$Mu2) = $Rtt32",
20878 tc_da97ee82, TypeST>, Enc_928ca1 {
20879 let Inst{7-0} = 0b00000000;
20880 let Inst{31-21} = 0b10101101110;
20881 let addrMode = PostInc;
20882 let accessSize = DoubleWordAccess;
20883 let mayStore = 1;
20884 let Constraints = "$Rx32 = $Rx32in";
20885 }
20886 def S2_storerd_zomap : HInst<
20887 (outs),
20888 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
20889 "memd($Rs32) = $Rtt32",
20890 tc_30b9bb4a, TypeMAPPING> {
20891 let isPseudo = 1;
20892 let isCodeGenOnly = 1;
20893 }
20894 def S2_storerdgp : HInst<
20895 (outs),
20896 (ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20897 "memd(gp+#$Ii) = $Rtt32",
20898 tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel {
20899 let Inst{24-21} = 0b0110;
20900 let Inst{31-27} = 0b01001;
20901 let accessSize = DoubleWordAccess;
20902 let mayStore = 1;
20903 let Uses = [GP];
20904 let BaseOpcode = "S2_storerdabs";
20905 let isPredicable = 1;
20906 let opExtendable = 0;
20907 let isExtentSigned = 0;
20908 let opExtentBits = 19;
20909 let opExtentAlign = 3;
20910 }
20911 def S2_storerf_io : HInst<
20912 (outs),
20913 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
20914 "memh($Rs32+#$Ii) = $Rt32.h",
20915 tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
20916 let Inst{24-21} = 0b1011;
20917 let Inst{31-27} = 0b10100;
20918 let addrMode = BaseImmOffset;
20919 let accessSize = HalfWordAccess;
20920 let mayStore = 1;
20921 let CextOpcode = "S2_storerf";
20922 let InputType = "imm";
20923 let BaseOpcode = "S2_storerf_io";
20924 let isPredicable = 1;
20925 let isExtendable = 1;
20926 let opExtendable = 1;
20927 let isExtentSigned = 1;
20928 let opExtentBits = 12;
20929 let opExtentAlign = 1;
20930 }
20931 def S2_storerf_pbr : HInst<
20932 (outs IntRegs:$Rx32),
20933 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20934 "memh($Rx32++$Mu2:brev) = $Rt32.h",
20935 tc_da97ee82, TypeST>, Enc_d5c73f {
20936 let Inst{7-0} = 0b00000000;
20937 let Inst{31-21} = 0b10101111011;
20938 let addrMode = PostInc;
20939 let accessSize = HalfWordAccess;
20940 let mayStore = 1;
20941 let Constraints = "$Rx32 = $Rx32in";
20942 }
20943 def S2_storerf_pci : HInst<
20944 (outs IntRegs:$Rx32),
20945 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20946 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
20947 tc_e86aa961, TypeST>, Enc_935d9b {
20948 let Inst{2-0} = 0b000;
20949 let Inst{7-7} = 0b0;
20950 let Inst{31-21} = 0b10101001011;
20951 let addrMode = PostInc;
20952 let accessSize = HalfWordAccess;
20953 let mayStore = 1;
20954 let Uses = [CS];
20955 let Constraints = "$Rx32 = $Rx32in";
20956 }
20957 def S2_storerf_pcr : HInst<
20958 (outs IntRegs:$Rx32),
20959 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20960 "memh($Rx32++I:circ($Mu2)) = $Rt32.h",
20961 tc_da97ee82, TypeST>, Enc_d5c73f {
20962 let Inst{7-0} = 0b00000010;
20963 let Inst{31-21} = 0b10101001011;
20964 let addrMode = PostInc;
20965 let accessSize = HalfWordAccess;
20966 let mayStore = 1;
20967 let Uses = [CS];
20968 let Constraints = "$Rx32 = $Rx32in";
20969 }
20970 def S2_storerf_pi : HInst<
20971 (outs IntRegs:$Rx32),
20972 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20973 "memh($Rx32++#$Ii) = $Rt32.h",
20974 tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
20975 let Inst{2-0} = 0b000;
20976 let Inst{7-7} = 0b0;
20977 let Inst{13-13} = 0b0;
20978 let Inst{31-21} = 0b10101011011;
20979 let addrMode = PostInc;
20980 let accessSize = HalfWordAccess;
20981 let mayStore = 1;
20982 let CextOpcode = "S2_storerf";
20983 let BaseOpcode = "S2_storerf_pi";
20984 let isPredicable = 1;
20985 let Constraints = "$Rx32 = $Rx32in";
20986 }
20987 def S2_storerf_pr : HInst<
20988 (outs IntRegs:$Rx32),
20989 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20990 "memh($Rx32++$Mu2) = $Rt32.h",
20991 tc_da97ee82, TypeST>, Enc_d5c73f {
20992 let Inst{7-0} = 0b00000000;
20993 let Inst{31-21} = 0b10101101011;
20994 let addrMode = PostInc;
20995 let accessSize = HalfWordAccess;
20996 let mayStore = 1;
20997 let Constraints = "$Rx32 = $Rx32in";
20998 }
20999 def S2_storerf_zomap : HInst<
21000 (outs),
21001 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21002 "memh($Rs32) = $Rt32.h",
21003 tc_30b9bb4a, TypeMAPPING> {
21004 let isPseudo = 1;
21005 let isCodeGenOnly = 1;
21006 }
21007 def S2_storerfgp : HInst<
21008 (outs),
21009 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21010 "memh(gp+#$Ii) = $Rt32.h",
21011 tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21012 let Inst{24-21} = 0b0011;
21013 let Inst{31-27} = 0b01001;
21014 let accessSize = HalfWordAccess;
21015 let mayStore = 1;
21016 let Uses = [GP];
21017 let BaseOpcode = "S2_storerfabs";
21018 let isPredicable = 1;
21019 let opExtendable = 0;
21020 let isExtentSigned = 0;
21021 let opExtentBits = 17;
21022 let opExtentAlign = 1;
21023 }
21024 def S2_storerh_io : HInst<
21025 (outs),
21026 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21027 "memh($Rs32+#$Ii) = $Rt32",
21028 tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21029 let Inst{24-21} = 0b1010;
21030 let Inst{31-27} = 0b10100;
21031 let addrMode = BaseImmOffset;
21032 let accessSize = HalfWordAccess;
21033 let mayStore = 1;
21034 let CextOpcode = "S2_storerh";
21035 let InputType = "imm";
21036 let BaseOpcode = "S2_storerh_io";
21037 let isPredicable = 1;
21038 let isNVStorable = 1;
21039 let isExtendable = 1;
21040 let opExtendable = 1;
21041 let isExtentSigned = 1;
21042 let opExtentBits = 12;
21043 let opExtentAlign = 1;
21044 }
21045 def S2_storerh_pbr : HInst<
21046 (outs IntRegs:$Rx32),
21047 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21048 "memh($Rx32++$Mu2:brev) = $Rt32",
21049 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21050 let Inst{7-0} = 0b00000000;
21051 let Inst{31-21} = 0b10101111010;
21052 let addrMode = PostInc;
21053 let accessSize = HalfWordAccess;
21054 let mayStore = 1;
21055 let BaseOpcode = "S2_storerh_pbr";
21056 let isNVStorable = 1;
21057 let Constraints = "$Rx32 = $Rx32in";
21058 }
21059 def S2_storerh_pci : HInst<
21060 (outs IntRegs:$Rx32),
21061 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21062 "memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21063 tc_e86aa961, TypeST>, Enc_935d9b, AddrModeRel {
21064 let Inst{2-0} = 0b000;
21065 let Inst{7-7} = 0b0;
21066 let Inst{31-21} = 0b10101001010;
21067 let addrMode = PostInc;
21068 let accessSize = HalfWordAccess;
21069 let mayStore = 1;
21070 let Uses = [CS];
21071 let BaseOpcode = "S2_storerh_pci";
21072 let isNVStorable = 1;
21073 let Constraints = "$Rx32 = $Rx32in";
21074 }
21075 def S2_storerh_pcr : HInst<
21076 (outs IntRegs:$Rx32),
21077 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21078 "memh($Rx32++I:circ($Mu2)) = $Rt32",
21079 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21080 let Inst{7-0} = 0b00000010;
21081 let Inst{31-21} = 0b10101001010;
21082 let addrMode = PostInc;
21083 let accessSize = HalfWordAccess;
21084 let mayStore = 1;
21085 let Uses = [CS];
21086 let BaseOpcode = "S2_storerh_pcr";
21087 let isNVStorable = 1;
21088 let Constraints = "$Rx32 = $Rx32in";
21089 }
21090 def S2_storerh_pi : HInst<
21091 (outs IntRegs:$Rx32),
21092 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21093 "memh($Rx32++#$Ii) = $Rt32",
21094 tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21095 let Inst{2-0} = 0b000;
21096 let Inst{7-7} = 0b0;
21097 let Inst{13-13} = 0b0;
21098 let Inst{31-21} = 0b10101011010;
21099 let addrMode = PostInc;
21100 let accessSize = HalfWordAccess;
21101 let mayStore = 1;
21102 let CextOpcode = "S2_storerh";
21103 let BaseOpcode = "S2_storerh_pi";
21104 let isPredicable = 1;
21105 let isNVStorable = 1;
21106 let Constraints = "$Rx32 = $Rx32in";
21107 }
21108 def S2_storerh_pr : HInst<
21109 (outs IntRegs:$Rx32),
21110 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21111 "memh($Rx32++$Mu2) = $Rt32",
21112 tc_da97ee82, TypeST>, Enc_d5c73f {
21113 let Inst{7-0} = 0b00000000;
21114 let Inst{31-21} = 0b10101101010;
21115 let addrMode = PostInc;
21116 let accessSize = HalfWordAccess;
21117 let mayStore = 1;
21118 let isNVStorable = 1;
21119 let Constraints = "$Rx32 = $Rx32in";
21120 }
21121 def S2_storerh_zomap : HInst<
21122 (outs),
21123 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21124 "memh($Rs32) = $Rt32",
21125 tc_30b9bb4a, TypeMAPPING> {
21126 let isPseudo = 1;
21127 let isCodeGenOnly = 1;
21128 }
21129 def S2_storerhgp : HInst<
21130 (outs),
21131 (ins u31_1Imm:$Ii, IntRegs:$Rt32),
21132 "memh(gp+#$Ii) = $Rt32",
21133 tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21134 let Inst{24-21} = 0b0010;
21135 let Inst{31-27} = 0b01001;
21136 let accessSize = HalfWordAccess;
21137 let mayStore = 1;
21138 let Uses = [GP];
21139 let BaseOpcode = "S2_storerhabs";
21140 let isPredicable = 1;
21141 let isNVStorable = 1;
21142 let opExtendable = 0;
21143 let isExtentSigned = 0;
21144 let opExtentBits = 17;
21145 let opExtentAlign = 1;
21146 }
21147 def S2_storerhnew_io : HInst<
21148 (outs),
21149 (ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21150 "memh($Rs32+#$Ii) = $Nt8.new",
21151 tc_be9602ff, TypeST>, Enc_0d8870, AddrModeRel {
21152 let Inst{12-11} = 0b01;
21153 let Inst{24-21} = 0b1101;
21154 let Inst{31-27} = 0b10100;
21155 let addrMode = BaseImmOffset;
21156 let accessSize = HalfWordAccess;
21157 let isNVStore = 1;
21158 let isNewValue = 1;
21159 let isRestrictNoSlot1Store = 1;
21160 let mayStore = 1;
21161 let CextOpcode = "S2_storerh";
21162 let InputType = "imm";
21163 let BaseOpcode = "S2_storerh_io";
21164 let isPredicable = 1;
21165 let isExtendable = 1;
21166 let opExtendable = 1;
21167 let isExtentSigned = 1;
21168 let opExtentBits = 12;
21169 let opExtentAlign = 1;
21170 let opNewValue = 2;
21171 }
21172 def S2_storerhnew_pbr : HInst<
21173 (outs IntRegs:$Rx32),
21174 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21175 "memh($Rx32++$Mu2:brev) = $Nt8.new",
21176 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21177 let Inst{7-0} = 0b00000000;
21178 let Inst{12-11} = 0b01;
21179 let Inst{31-21} = 0b10101111101;
21180 let addrMode = PostInc;
21181 let accessSize = HalfWordAccess;
21182 let isNVStore = 1;
21183 let isNewValue = 1;
21184 let isRestrictNoSlot1Store = 1;
21185 let mayStore = 1;
21186 let BaseOpcode = "S2_storerh_pbr";
21187 let opNewValue = 3;
21188 let Constraints = "$Rx32 = $Rx32in";
21189 }
21190 def S2_storerhnew_pci : HInst<
21191 (outs IntRegs:$Rx32),
21192 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21193 "memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21194 tc_d5c0729a, TypeST>, Enc_91b9fe, AddrModeRel {
21195 let Inst{2-0} = 0b000;
21196 let Inst{7-7} = 0b0;
21197 let Inst{12-11} = 0b01;
21198 let Inst{31-21} = 0b10101001101;
21199 let addrMode = PostInc;
21200 let accessSize = HalfWordAccess;
21201 let isNVStore = 1;
21202 let isNewValue = 1;
21203 let isRestrictNoSlot1Store = 1;
21204 let mayStore = 1;
21205 let Uses = [CS];
21206 let BaseOpcode = "S2_storerh_pci";
21207 let opNewValue = 4;
21208 let Constraints = "$Rx32 = $Rx32in";
21209 }
21210 def S2_storerhnew_pcr : HInst<
21211 (outs IntRegs:$Rx32),
21212 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21213 "memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21214 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21215 let Inst{7-0} = 0b00000010;
21216 let Inst{12-11} = 0b01;
21217 let Inst{31-21} = 0b10101001101;
21218 let addrMode = PostInc;
21219 let accessSize = HalfWordAccess;
21220 let isNVStore = 1;
21221 let isNewValue = 1;
21222 let isRestrictNoSlot1Store = 1;
21223 let mayStore = 1;
21224 let Uses = [CS];
21225 let BaseOpcode = "S2_storerh_pcr";
21226 let opNewValue = 3;
21227 let Constraints = "$Rx32 = $Rx32in";
21228 }
21229 def S2_storerhnew_pi : HInst<
21230 (outs IntRegs:$Rx32),
21231 (ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21232 "memh($Rx32++#$Ii) = $Nt8.new",
21233 tc_c79a189f, TypeST>, Enc_e26546, AddrModeRel {
21234 let Inst{2-0} = 0b000;
21235 let Inst{7-7} = 0b0;
21236 let Inst{13-11} = 0b001;
21237 let Inst{31-21} = 0b10101011101;
21238 let addrMode = PostInc;
21239 let accessSize = HalfWordAccess;
21240 let isNVStore = 1;
21241 let isNewValue = 1;
21242 let isRestrictNoSlot1Store = 1;
21243 let mayStore = 1;
21244 let BaseOpcode = "S2_storerh_pi";
21245 let isNVStorable = 1;
21246 let isPredicable = 1;
21247 let opNewValue = 3;
21248 let Constraints = "$Rx32 = $Rx32in";
21249 }
21250 def S2_storerhnew_pr : HInst<
21251 (outs IntRegs:$Rx32),
21252 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21253 "memh($Rx32++$Mu2) = $Nt8.new",
21254 tc_c79a189f, TypeST>, Enc_8dbe85 {
21255 let Inst{7-0} = 0b00000000;
21256 let Inst{12-11} = 0b01;
21257 let Inst{31-21} = 0b10101101101;
21258 let addrMode = PostInc;
21259 let accessSize = HalfWordAccess;
21260 let isNVStore = 1;
21261 let isNewValue = 1;
21262 let isRestrictNoSlot1Store = 1;
21263 let mayStore = 1;
21264 let opNewValue = 3;
21265 let Constraints = "$Rx32 = $Rx32in";
21266 }
21267 def S2_storerhnew_zomap : HInst<
21268 (outs),
21269 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21270 "memh($Rs32) = $Nt8.new",
21271 tc_be9602ff, TypeMAPPING> {
21272 let isPseudo = 1;
21273 let isCodeGenOnly = 1;
21274 let opNewValue = 1;
21275 }
21276 def S2_storerhnewgp : HInst<
21277 (outs),
21278 (ins u31_1Imm:$Ii, IntRegs:$Nt8),
21279 "memh(gp+#$Ii) = $Nt8.new",
21280 tc_5bf126a6, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21281 let Inst{12-11} = 0b01;
21282 let Inst{24-21} = 0b0101;
21283 let Inst{31-27} = 0b01001;
21284 let accessSize = HalfWordAccess;
21285 let isNVStore = 1;
21286 let isNewValue = 1;
21287 let isRestrictNoSlot1Store = 1;
21288 let mayStore = 1;
21289 let Uses = [GP];
21290 let BaseOpcode = "S2_storerhabs";
21291 let isPredicable = 1;
21292 let opExtendable = 0;
21293 let isExtentSigned = 0;
21294 let opExtentBits = 17;
21295 let opExtentAlign = 1;
21296 let opNewValue = 1;
21297 }
21298 def S2_storeri_io : HInst<
21299 (outs),
21300 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21301 "memw($Rs32+#$Ii) = $Rt32",
21302 tc_30b9bb4a, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21303 let Inst{24-21} = 0b1100;
21304 let Inst{31-27} = 0b10100;
21305 let addrMode = BaseImmOffset;
21306 let accessSize = WordAccess;
21307 let mayStore = 1;
21308 let CextOpcode = "S2_storeri";
21309 let InputType = "imm";
21310 let BaseOpcode = "S2_storeri_io";
21311 let isPredicable = 1;
21312 let isNVStorable = 1;
21313 let isExtendable = 1;
21314 let opExtendable = 1;
21315 let isExtentSigned = 1;
21316 let opExtentBits = 13;
21317 let opExtentAlign = 2;
21318 }
21319 def S2_storeri_pbr : HInst<
21320 (outs IntRegs:$Rx32),
21321 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21322 "memw($Rx32++$Mu2:brev) = $Rt32",
21323 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21324 let Inst{7-0} = 0b00000000;
21325 let Inst{31-21} = 0b10101111100;
21326 let addrMode = PostInc;
21327 let accessSize = WordAccess;
21328 let mayStore = 1;
21329 let BaseOpcode = "S2_storeri_pbr";
21330 let isNVStorable = 1;
21331 let Constraints = "$Rx32 = $Rx32in";
21332 }
21333 def S2_storeri_pci : HInst<
21334 (outs IntRegs:$Rx32),
21335 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21336 "memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21337 tc_e86aa961, TypeST>, Enc_79b8c8, AddrModeRel {
21338 let Inst{2-0} = 0b000;
21339 let Inst{7-7} = 0b0;
21340 let Inst{31-21} = 0b10101001100;
21341 let addrMode = PostInc;
21342 let accessSize = WordAccess;
21343 let mayStore = 1;
21344 let Uses = [CS];
21345 let BaseOpcode = "S2_storeri_pci";
21346 let isNVStorable = 1;
21347 let Constraints = "$Rx32 = $Rx32in";
21348 }
21349 def S2_storeri_pcr : HInst<
21350 (outs IntRegs:$Rx32),
21351 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21352 "memw($Rx32++I:circ($Mu2)) = $Rt32",
21353 tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21354 let Inst{7-0} = 0b00000010;
21355 let Inst{31-21} = 0b10101001100;
21356 let addrMode = PostInc;
21357 let accessSize = WordAccess;
21358 let mayStore = 1;
21359 let Uses = [CS];
21360 let BaseOpcode = "S2_storeri_pcr";
21361 let isNVStorable = 1;
21362 let Constraints = "$Rx32 = $Rx32in";
21363 }
21364 def S2_storeri_pi : HInst<
21365 (outs IntRegs:$Rx32),
21366 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21367 "memw($Rx32++#$Ii) = $Rt32",
21368 tc_da97ee82, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21369 let Inst{2-0} = 0b000;
21370 let Inst{7-7} = 0b0;
21371 let Inst{13-13} = 0b0;
21372 let Inst{31-21} = 0b10101011100;
21373 let addrMode = PostInc;
21374 let accessSize = WordAccess;
21375 let mayStore = 1;
21376 let CextOpcode = "S2_storeri";
21377 let BaseOpcode = "S2_storeri_pi";
21378 let isPredicable = 1;
21379 let isNVStorable = 1;
21380 let Constraints = "$Rx32 = $Rx32in";
21381 }
21382 def S2_storeri_pr : HInst<
21383 (outs IntRegs:$Rx32),
21384 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21385 "memw($Rx32++$Mu2) = $Rt32",
21386 tc_da97ee82, TypeST>, Enc_d5c73f {
21387 let Inst{7-0} = 0b00000000;
21388 let Inst{31-21} = 0b10101101100;
21389 let addrMode = PostInc;
21390 let accessSize = WordAccess;
21391 let mayStore = 1;
21392 let isNVStorable = 1;
21393 let Constraints = "$Rx32 = $Rx32in";
21394 }
21395 def S2_storeri_zomap : HInst<
21396 (outs),
21397 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21398 "memw($Rs32) = $Rt32",
21399 tc_30b9bb4a, TypeMAPPING> {
21400 let isPseudo = 1;
21401 let isCodeGenOnly = 1;
21402 }
21403 def S2_storerigp : HInst<
21404 (outs),
21405 (ins u30_2Imm:$Ii, IntRegs:$Rt32),
21406 "memw(gp+#$Ii) = $Rt32",
21407 tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel {
21408 let Inst{24-21} = 0b0100;
21409 let Inst{31-27} = 0b01001;
21410 let accessSize = WordAccess;
21411 let mayStore = 1;
21412 let Uses = [GP];
21413 let BaseOpcode = "S2_storeriabs";
21414 let isPredicable = 1;
21415 let isNVStorable = 1;
21416 let opExtendable = 0;
21417 let isExtentSigned = 0;
21418 let opExtentBits = 18;
21419 let opExtentAlign = 2;
21420 }
21421 def S2_storerinew_io : HInst<
21422 (outs),
21423 (ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21424 "memw($Rs32+#$Ii) = $Nt8.new",
21425 tc_be9602ff, TypeST>, Enc_690862, AddrModeRel {
21426 let Inst{12-11} = 0b10;
21427 let Inst{24-21} = 0b1101;
21428 let Inst{31-27} = 0b10100;
21429 let addrMode = BaseImmOffset;
21430 let accessSize = WordAccess;
21431 let isNVStore = 1;
21432 let isNewValue = 1;
21433 let isRestrictNoSlot1Store = 1;
21434 let mayStore = 1;
21435 let CextOpcode = "S2_storeri";
21436 let InputType = "imm";
21437 let BaseOpcode = "S2_storeri_io";
21438 let isPredicable = 1;
21439 let isExtendable = 1;
21440 let opExtendable = 1;
21441 let isExtentSigned = 1;
21442 let opExtentBits = 13;
21443 let opExtentAlign = 2;
21444 let opNewValue = 2;
21445 }
21446 def S2_storerinew_pbr : HInst<
21447 (outs IntRegs:$Rx32),
21448 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21449 "memw($Rx32++$Mu2:brev) = $Nt8.new",
21450 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21451 let Inst{7-0} = 0b00000000;
21452 let Inst{12-11} = 0b10;
21453 let Inst{31-21} = 0b10101111101;
21454 let addrMode = PostInc;
21455 let accessSize = WordAccess;
21456 let isNVStore = 1;
21457 let isNewValue = 1;
21458 let isRestrictNoSlot1Store = 1;
21459 let mayStore = 1;
21460 let BaseOpcode = "S2_storeri_pbr";
21461 let opNewValue = 3;
21462 let Constraints = "$Rx32 = $Rx32in";
21463 }
21464 def S2_storerinew_pci : HInst<
21465 (outs IntRegs:$Rx32),
21466 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21467 "memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21468 tc_d5c0729a, TypeST>, Enc_3f97c8, AddrModeRel {
21469 let Inst{2-0} = 0b000;
21470 let Inst{7-7} = 0b0;
21471 let Inst{12-11} = 0b10;
21472 let Inst{31-21} = 0b10101001101;
21473 let addrMode = PostInc;
21474 let accessSize = WordAccess;
21475 let isNVStore = 1;
21476 let isNewValue = 1;
21477 let isRestrictNoSlot1Store = 1;
21478 let mayStore = 1;
21479 let Uses = [CS];
21480 let BaseOpcode = "S2_storeri_pci";
21481 let opNewValue = 4;
21482 let Constraints = "$Rx32 = $Rx32in";
21483 }
21484 def S2_storerinew_pcr : HInst<
21485 (outs IntRegs:$Rx32),
21486 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21487 "memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21488 tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21489 let Inst{7-0} = 0b00000010;
21490 let Inst{12-11} = 0b10;
21491 let Inst{31-21} = 0b10101001101;
21492 let addrMode = PostInc;
21493 let accessSize = WordAccess;
21494 let isNVStore = 1;
21495 let isNewValue = 1;
21496 let isRestrictNoSlot1Store = 1;
21497 let mayStore = 1;
21498 let Uses = [CS];
21499 let BaseOpcode = "S2_storeri_pcr";
21500 let opNewValue = 3;
21501 let Constraints = "$Rx32 = $Rx32in";
21502 }
21503 def S2_storerinew_pi : HInst<
21504 (outs IntRegs:$Rx32),
21505 (ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21506 "memw($Rx32++#$Ii) = $Nt8.new",
21507 tc_c79a189f, TypeST>, Enc_223005, AddrModeRel {
21508 let Inst{2-0} = 0b000;
21509 let Inst{7-7} = 0b0;
21510 let Inst{13-11} = 0b010;
21511 let Inst{31-21} = 0b10101011101;
21512 let addrMode = PostInc;
21513 let accessSize = WordAccess;
21514 let isNVStore = 1;
21515 let isNewValue = 1;
21516 let isRestrictNoSlot1Store = 1;
21517 let mayStore = 1;
21518 let BaseOpcode = "S2_storeri_pi";
21519 let isPredicable = 1;
21520 let opNewValue = 3;
21521 let Constraints = "$Rx32 = $Rx32in";
21522 }
21523 def S2_storerinew_pr : HInst<
21524 (outs IntRegs:$Rx32),
21525 (ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21526 "memw($Rx32++$Mu2) = $Nt8.new",
21527 tc_c79a189f, TypeST>, Enc_8dbe85 {
21528 let Inst{7-0} = 0b00000000;
21529 let Inst{12-11} = 0b10;
21530 let Inst{31-21} = 0b10101101101;
21531 let addrMode = PostInc;
21532 let accessSize = WordAccess;
21533 let isNVStore = 1;
21534 let isNewValue = 1;
21535 let isRestrictNoSlot1Store = 1;
21536 let mayStore = 1;
21537 let opNewValue = 3;
21538 let Constraints = "$Rx32 = $Rx32in";
21539 }
21540 def S2_storerinew_zomap : HInst<
21541 (outs),
21542 (ins IntRegs:$Rs32, IntRegs:$Nt8),
21543 "memw($Rs32) = $Nt8.new",
21544 tc_be9602ff, TypeMAPPING> {
21545 let isPseudo = 1;
21546 let isCodeGenOnly = 1;
21547 let opNewValue = 1;
21548 }
21549 def S2_storerinewgp : HInst<
21550 (outs),
21551 (ins u30_2Imm:$Ii, IntRegs:$Nt8),
21552 "memw(gp+#$Ii) = $Nt8.new",
21553 tc_5bf126a6, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21554 let Inst{12-11} = 0b10;
21555 let Inst{24-21} = 0b0101;
21556 let Inst{31-27} = 0b01001;
21557 let accessSize = WordAccess;
21558 let isNVStore = 1;
21559 let isNewValue = 1;
21560 let isRestrictNoSlot1Store = 1;
21561 let mayStore = 1;
21562 let Uses = [GP];
21563 let BaseOpcode = "S2_storeriabs";
21564 let isPredicable = 1;
21565 let opExtendable = 0;
21566 let isExtentSigned = 0;
21567 let opExtentBits = 18;
21568 let opExtentAlign = 2;
21569 let opNewValue = 1;
21570 }
21571 def S2_storew_locked : HInst<
21572 (outs PredRegs:$Pd4),
21573 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21574 "memw_locked($Rs32,$Pd4) = $Rt32",
21575 tc_5abb5e3f, TypeST>, Enc_c2b48e {
21576 let Inst{7-2} = 0b000000;
21577 let Inst{13-13} = 0b0;
21578 let Inst{31-21} = 0b10100000101;
21579 let accessSize = WordAccess;
21580 let isPredicateLate = 1;
21581 let isSoloAX = 1;
21582 let mayStore = 1;
21583 }
21584 def S2_svsathb : HInst<
21585 (outs IntRegs:$Rd32),
21586 (ins IntRegs:$Rs32),
21587 "$Rd32 = vsathb($Rs32)",
21588 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21589 let Inst{13-5} = 0b000000000;
21590 let Inst{31-21} = 0b10001100100;
21591 let hasNewValue = 1;
21592 let opNewValue = 0;
21593 let Defs = [USR_OVF];
21594 }
21595 def S2_svsathub : HInst<
21596 (outs IntRegs:$Rd32),
21597 (ins IntRegs:$Rs32),
21598 "$Rd32 = vsathub($Rs32)",
21599 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21600 let Inst{13-5} = 0b000000010;
21601 let Inst{31-21} = 0b10001100100;
21602 let hasNewValue = 1;
21603 let opNewValue = 0;
21604 let Defs = [USR_OVF];
21605 }
21606 def S2_tableidxb : HInst<
21607 (outs IntRegs:$Rx32),
21608 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21609 "$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
21610 tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21611 let Inst{31-22} = 0b1000011100;
21612 let hasNewValue = 1;
21613 let opNewValue = 0;
21614 let prefersSlot3 = 1;
21615 let Constraints = "$Rx32 = $Rx32in";
21616 }
21617 def S2_tableidxb_goodsyntax : HInst<
21618 (outs IntRegs:$Rx32),
21619 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21620 "$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
21621 tc_bfec0f01, TypeS_2op> {
21622 let hasNewValue = 1;
21623 let opNewValue = 0;
21624 let isPseudo = 1;
21625 let isCodeGenOnly = 1;
21626 let Constraints = "$Rx32 = $Rx32in";
21627 }
21628 def S2_tableidxd : HInst<
21629 (outs IntRegs:$Rx32),
21630 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21631 "$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
21632 tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21633 let Inst{31-22} = 0b1000011111;
21634 let hasNewValue = 1;
21635 let opNewValue = 0;
21636 let prefersSlot3 = 1;
21637 let Constraints = "$Rx32 = $Rx32in";
21638 }
21639 def S2_tableidxd_goodsyntax : HInst<
21640 (outs IntRegs:$Rx32),
21641 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21642 "$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
21643 tc_bfec0f01, TypeS_2op> {
21644 let hasNewValue = 1;
21645 let opNewValue = 0;
21646 let isPseudo = 1;
21647 let Constraints = "$Rx32 = $Rx32in";
21648 }
21649 def S2_tableidxh : HInst<
21650 (outs IntRegs:$Rx32),
21651 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21652 "$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
21653 tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21654 let Inst{31-22} = 0b1000011101;
21655 let hasNewValue = 1;
21656 let opNewValue = 0;
21657 let prefersSlot3 = 1;
21658 let Constraints = "$Rx32 = $Rx32in";
21659 }
21660 def S2_tableidxh_goodsyntax : HInst<
21661 (outs IntRegs:$Rx32),
21662 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21663 "$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
21664 tc_bfec0f01, TypeS_2op> {
21665 let hasNewValue = 1;
21666 let opNewValue = 0;
21667 let isPseudo = 1;
21668 let Constraints = "$Rx32 = $Rx32in";
21669 }
21670 def S2_tableidxw : HInst<
21671 (outs IntRegs:$Rx32),
21672 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21673 "$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
21674 tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21675 let Inst{31-22} = 0b1000011110;
21676 let hasNewValue = 1;
21677 let opNewValue = 0;
21678 let prefersSlot3 = 1;
21679 let Constraints = "$Rx32 = $Rx32in";
21680 }
21681 def S2_tableidxw_goodsyntax : HInst<
21682 (outs IntRegs:$Rx32),
21683 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21684 "$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
21685 tc_bfec0f01, TypeS_2op> {
21686 let hasNewValue = 1;
21687 let opNewValue = 0;
21688 let isPseudo = 1;
21689 let Constraints = "$Rx32 = $Rx32in";
21690 }
21691 def S2_togglebit_i : HInst<
21692 (outs IntRegs:$Rd32),
21693 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
21694 "$Rd32 = togglebit($Rs32,#$Ii)",
21695 tc_946df596, TypeS_2op>, Enc_a05677 {
21696 let Inst{7-5} = 0b010;
21697 let Inst{13-13} = 0b0;
21698 let Inst{31-21} = 0b10001100110;
21699 let hasNewValue = 1;
21700 let opNewValue = 0;
21701 }
21702 def S2_togglebit_r : HInst<
21703 (outs IntRegs:$Rd32),
21704 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21705 "$Rd32 = togglebit($Rs32,$Rt32)",
21706 tc_946df596, TypeS_3op>, Enc_5ab2be {
21707 let Inst{7-5} = 0b100;
21708 let Inst{13-13} = 0b0;
21709 let Inst{31-21} = 0b11000110100;
21710 let hasNewValue = 1;
21711 let opNewValue = 0;
21712 }
21713 def S2_tstbit_i : HInst<
21714 (outs PredRegs:$Pd4),
21715 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
21716 "$Pd4 = tstbit($Rs32,#$Ii)",
21717 tc_643b4717, TypeS_2op>, Enc_83ee64 {
21718 let Inst{7-2} = 0b000000;
21719 let Inst{13-13} = 0b0;
21720 let Inst{31-21} = 0b10000101000;
21721 }
21722 def S2_tstbit_r : HInst<
21723 (outs PredRegs:$Pd4),
21724 (ins IntRegs:$Rs32, IntRegs:$Rt32),
21725 "$Pd4 = tstbit($Rs32,$Rt32)",
21726 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
21727 let Inst{7-2} = 0b000000;
21728 let Inst{13-13} = 0b0;
21729 let Inst{31-21} = 0b11000111000;
21730 }
21731 def S2_valignib : HInst<
21732 (outs DoubleRegs:$Rdd32),
21733 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
21734 "$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
21735 tc_b4b5c03a, TypeS_3op>, Enc_729ff7 {
21736 let Inst{13-13} = 0b0;
21737 let Inst{31-21} = 0b11000000000;
21738 }
21739 def S2_valignrb : HInst<
21740 (outs DoubleRegs:$Rdd32),
21741 (ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
21742 "$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
21743 tc_b4b5c03a, TypeS_3op>, Enc_8c6530 {
21744 let Inst{7-7} = 0b0;
21745 let Inst{13-13} = 0b0;
21746 let Inst{31-21} = 0b11000010000;
21747 }
21748 def S2_vcnegh : HInst<
21749 (outs DoubleRegs:$Rdd32),
21750 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21751 "$Rdd32 = vcnegh($Rss32,$Rt32)",
21752 tc_779080bf, TypeS_3op>, Enc_927852 {
21753 let Inst{7-5} = 0b010;
21754 let Inst{13-13} = 0b0;
21755 let Inst{31-21} = 0b11000011110;
21756 let prefersSlot3 = 1;
21757 let Defs = [USR_OVF];
21758 }
21759 def S2_vcrotate : HInst<
21760 (outs DoubleRegs:$Rdd32),
21761 (ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21762 "$Rdd32 = vcrotate($Rss32,$Rt32)",
21763 tc_002cb246, TypeS_3op>, Enc_927852 {
21764 let Inst{7-5} = 0b000;
21765 let Inst{13-13} = 0b0;
21766 let Inst{31-21} = 0b11000011110;
21767 let prefersSlot3 = 1;
21768 let Defs = [USR_OVF];
21769 }
21770 def S2_vrcnegh : HInst<
21771 (outs DoubleRegs:$Rxx32),
21772 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
21773 "$Rxx32 += vrcnegh($Rss32,$Rt32)",
21774 tc_d773585a, TypeS_3op>, Enc_1aa186 {
21775 let Inst{7-5} = 0b111;
21776 let Inst{13-13} = 0b1;
21777 let Inst{31-21} = 0b11001011001;
21778 let prefersSlot3 = 1;
21779 let Constraints = "$Rxx32 = $Rxx32in";
21780 }
21781 def S2_vrndpackwh : HInst<
21782 (outs IntRegs:$Rd32),
21783 (ins DoubleRegs:$Rss32),
21784 "$Rd32 = vrndwh($Rss32)",
21785 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
21786 let Inst{13-5} = 0b000000100;
21787 let Inst{31-21} = 0b10001000100;
21788 let hasNewValue = 1;
21789 let opNewValue = 0;
21790 let prefersSlot3 = 1;
21791 }
21792 def S2_vrndpackwhs : HInst<
21793 (outs IntRegs:$Rd32),
21794 (ins DoubleRegs:$Rss32),
21795 "$Rd32 = vrndwh($Rss32):sat",
21796 tc_cf8126ae, TypeS_2op>, Enc_90cd8b {
21797 let Inst{13-5} = 0b000000110;
21798 let Inst{31-21} = 0b10001000100;
21799 let hasNewValue = 1;
21800 let opNewValue = 0;
21801 let prefersSlot3 = 1;
21802 let Defs = [USR_OVF];
21803 }
21804 def S2_vsathb : HInst<
21805 (outs IntRegs:$Rd32),
21806 (ins DoubleRegs:$Rss32),
21807 "$Rd32 = vsathb($Rss32)",
21808 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21809 let Inst{13-5} = 0b000000110;
21810 let Inst{31-21} = 0b10001000000;
21811 let hasNewValue = 1;
21812 let opNewValue = 0;
21813 let Defs = [USR_OVF];
21814 }
21815 def S2_vsathb_nopack : HInst<
21816 (outs DoubleRegs:$Rdd32),
21817 (ins DoubleRegs:$Rss32),
21818 "$Rdd32 = vsathb($Rss32)",
21819 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21820 let Inst{13-5} = 0b000000111;
21821 let Inst{31-21} = 0b10000000000;
21822 let Defs = [USR_OVF];
21823 }
21824 def S2_vsathub : HInst<
21825 (outs IntRegs:$Rd32),
21826 (ins DoubleRegs:$Rss32),
21827 "$Rd32 = vsathub($Rss32)",
21828 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21829 let Inst{13-5} = 0b000000000;
21830 let Inst{31-21} = 0b10001000000;
21831 let hasNewValue = 1;
21832 let opNewValue = 0;
21833 let Defs = [USR_OVF];
21834 }
21835 def S2_vsathub_nopack : HInst<
21836 (outs DoubleRegs:$Rdd32),
21837 (ins DoubleRegs:$Rss32),
21838 "$Rdd32 = vsathub($Rss32)",
21839 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21840 let Inst{13-5} = 0b000000100;
21841 let Inst{31-21} = 0b10000000000;
21842 let Defs = [USR_OVF];
21843 }
21844 def S2_vsatwh : HInst<
21845 (outs IntRegs:$Rd32),
21846 (ins DoubleRegs:$Rss32),
21847 "$Rd32 = vsatwh($Rss32)",
21848 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21849 let Inst{13-5} = 0b000000010;
21850 let Inst{31-21} = 0b10001000000;
21851 let hasNewValue = 1;
21852 let opNewValue = 0;
21853 let Defs = [USR_OVF];
21854 }
21855 def S2_vsatwh_nopack : HInst<
21856 (outs DoubleRegs:$Rdd32),
21857 (ins DoubleRegs:$Rss32),
21858 "$Rdd32 = vsatwh($Rss32)",
21859 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21860 let Inst{13-5} = 0b000000110;
21861 let Inst{31-21} = 0b10000000000;
21862 let Defs = [USR_OVF];
21863 }
21864 def S2_vsatwuh : HInst<
21865 (outs IntRegs:$Rd32),
21866 (ins DoubleRegs:$Rss32),
21867 "$Rd32 = vsatwuh($Rss32)",
21868 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21869 let Inst{13-5} = 0b000000100;
21870 let Inst{31-21} = 0b10001000000;
21871 let hasNewValue = 1;
21872 let opNewValue = 0;
21873 let Defs = [USR_OVF];
21874 }
21875 def S2_vsatwuh_nopack : HInst<
21876 (outs DoubleRegs:$Rdd32),
21877 (ins DoubleRegs:$Rss32),
21878 "$Rdd32 = vsatwuh($Rss32)",
21879 tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21880 let Inst{13-5} = 0b000000101;
21881 let Inst{31-21} = 0b10000000000;
21882 let Defs = [USR_OVF];
21883 }
21884 def S2_vsplatrb : HInst<
21885 (outs IntRegs:$Rd32),
21886 (ins IntRegs:$Rs32),
21887 "$Rd32 = vsplatb($Rs32)",
21888 tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21889 let Inst{13-5} = 0b000000111;
21890 let Inst{31-21} = 0b10001100010;
21891 let hasNewValue = 1;
21892 let opNewValue = 0;
21893 let isReMaterializable = 1;
21894 let isAsCheapAsAMove = 1;
21895 }
21896 def S2_vsplatrh : HInst<
21897 (outs DoubleRegs:$Rdd32),
21898 (ins IntRegs:$Rs32),
21899 "$Rdd32 = vsplath($Rs32)",
21900 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21901 let Inst{13-5} = 0b000000010;
21902 let Inst{31-21} = 0b10000100010;
21903 let isReMaterializable = 1;
21904 let isAsCheapAsAMove = 1;
21905 }
21906 def S2_vspliceib : HInst<
21907 (outs DoubleRegs:$Rdd32),
21908 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
21909 "$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
21910 tc_b4b5c03a, TypeS_3op>, Enc_d50cd3 {
21911 let Inst{13-13} = 0b0;
21912 let Inst{31-21} = 0b11000000100;
21913 }
21914 def S2_vsplicerb : HInst<
21915 (outs DoubleRegs:$Rdd32),
21916 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
21917 "$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
21918 tc_b4b5c03a, TypeS_3op>, Enc_dbd70c {
21919 let Inst{7-7} = 0b0;
21920 let Inst{13-13} = 0b0;
21921 let Inst{31-21} = 0b11000010100;
21922 }
21923 def S2_vsxtbh : HInst<
21924 (outs DoubleRegs:$Rdd32),
21925 (ins IntRegs:$Rs32),
21926 "$Rdd32 = vsxtbh($Rs32)",
21927 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21928 let Inst{13-5} = 0b000000000;
21929 let Inst{31-21} = 0b10000100000;
21930 let isReMaterializable = 1;
21931 let isAsCheapAsAMove = 1;
21932 }
21933 def S2_vsxthw : HInst<
21934 (outs DoubleRegs:$Rdd32),
21935 (ins IntRegs:$Rs32),
21936 "$Rdd32 = vsxthw($Rs32)",
21937 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21938 let Inst{13-5} = 0b000000100;
21939 let Inst{31-21} = 0b10000100000;
21940 let isReMaterializable = 1;
21941 let isAsCheapAsAMove = 1;
21942 }
21943 def S2_vtrunehb : HInst<
21944 (outs IntRegs:$Rd32),
21945 (ins DoubleRegs:$Rss32),
21946 "$Rd32 = vtrunehb($Rss32)",
21947 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21948 let Inst{13-5} = 0b000000010;
21949 let Inst{31-21} = 0b10001000100;
21950 let hasNewValue = 1;
21951 let opNewValue = 0;
21952 }
21953 def S2_vtrunewh : HInst<
21954 (outs DoubleRegs:$Rdd32),
21955 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21956 "$Rdd32 = vtrunewh($Rss32,$Rtt32)",
21957 tc_946df596, TypeS_3op>, Enc_a56825 {
21958 let Inst{7-5} = 0b010;
21959 let Inst{13-13} = 0b0;
21960 let Inst{31-21} = 0b11000001100;
21961 }
21962 def S2_vtrunohb : HInst<
21963 (outs IntRegs:$Rd32),
21964 (ins DoubleRegs:$Rss32),
21965 "$Rd32 = vtrunohb($Rss32)",
21966 tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21967 let Inst{13-5} = 0b000000000;
21968 let Inst{31-21} = 0b10001000100;
21969 let hasNewValue = 1;
21970 let opNewValue = 0;
21971 }
21972 def S2_vtrunowh : HInst<
21973 (outs DoubleRegs:$Rdd32),
21974 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21975 "$Rdd32 = vtrunowh($Rss32,$Rtt32)",
21976 tc_946df596, TypeS_3op>, Enc_a56825 {
21977 let Inst{7-5} = 0b100;
21978 let Inst{13-13} = 0b0;
21979 let Inst{31-21} = 0b11000001100;
21980 }
21981 def S2_vzxtbh : HInst<
21982 (outs DoubleRegs:$Rdd32),
21983 (ins IntRegs:$Rs32),
21984 "$Rdd32 = vzxtbh($Rs32)",
21985 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21986 let Inst{13-5} = 0b000000010;
21987 let Inst{31-21} = 0b10000100000;
21988 let isReMaterializable = 1;
21989 let isAsCheapAsAMove = 1;
21990 }
21991 def S2_vzxthw : HInst<
21992 (outs DoubleRegs:$Rdd32),
21993 (ins IntRegs:$Rs32),
21994 "$Rdd32 = vzxthw($Rs32)",
21995 tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21996 let Inst{13-5} = 0b000000110;
21997 let Inst{31-21} = 0b10000100000;
21998 let isReMaterializable = 1;
21999 let isAsCheapAsAMove = 1;
22000 }
22001 def S4_addaddi : HInst<
22002 (outs IntRegs:$Rd32),
22003 (ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22004 "$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22005 tc_f675fee8, TypeALU64>, Enc_8b8d61 {
22006 let Inst{31-23} = 0b110110110;
22007 let hasNewValue = 1;
22008 let opNewValue = 0;
22009 let prefersSlot3 = 1;
22010 let isExtendable = 1;
22011 let opExtendable = 3;
22012 let isExtentSigned = 1;
22013 let opExtentBits = 6;
22014 let opExtentAlign = 0;
22015 }
22016 def S4_addi_asl_ri : HInst<
22017 (outs IntRegs:$Rx32),
22018 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22019 "$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22020 tc_f675fee8, TypeALU64>, Enc_c31910 {
22021 let Inst{2-0} = 0b100;
22022 let Inst{4-4} = 0b0;
22023 let Inst{31-24} = 0b11011110;
22024 let hasNewValue = 1;
22025 let opNewValue = 0;
22026 let prefersSlot3 = 1;
22027 let isExtendable = 1;
22028 let opExtendable = 1;
22029 let isExtentSigned = 0;
22030 let opExtentBits = 8;
22031 let opExtentAlign = 0;
22032 let Constraints = "$Rx32 = $Rx32in";
22033 }
22034 def S4_addi_lsr_ri : HInst<
22035 (outs IntRegs:$Rx32),
22036 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22037 "$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22038 tc_f675fee8, TypeALU64>, Enc_c31910 {
22039 let Inst{2-0} = 0b100;
22040 let Inst{4-4} = 0b1;
22041 let Inst{31-24} = 0b11011110;
22042 let hasNewValue = 1;
22043 let opNewValue = 0;
22044 let prefersSlot3 = 1;
22045 let isExtendable = 1;
22046 let opExtendable = 1;
22047 let isExtentSigned = 0;
22048 let opExtentBits = 8;
22049 let opExtentAlign = 0;
22050 let Constraints = "$Rx32 = $Rx32in";
22051 }
22052 def S4_andi_asl_ri : HInst<
22053 (outs IntRegs:$Rx32),
22054 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22055 "$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22056 tc_f429765c, TypeALU64>, Enc_c31910 {
22057 let Inst{2-0} = 0b000;
22058 let Inst{4-4} = 0b0;
22059 let Inst{31-24} = 0b11011110;
22060 let hasNewValue = 1;
22061 let opNewValue = 0;
22062 let prefersSlot3 = 1;
22063 let isExtendable = 1;
22064 let opExtendable = 1;
22065 let isExtentSigned = 0;
22066 let opExtentBits = 8;
22067 let opExtentAlign = 0;
22068 let Constraints = "$Rx32 = $Rx32in";
22069 }
22070 def S4_andi_lsr_ri : HInst<
22071 (outs IntRegs:$Rx32),
22072 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22073 "$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22074 tc_f429765c, TypeALU64>, Enc_c31910 {
22075 let Inst{2-0} = 0b000;
22076 let Inst{4-4} = 0b1;
22077 let Inst{31-24} = 0b11011110;
22078 let hasNewValue = 1;
22079 let opNewValue = 0;
22080 let prefersSlot3 = 1;
22081 let isExtendable = 1;
22082 let opExtendable = 1;
22083 let isExtentSigned = 0;
22084 let opExtentBits = 8;
22085 let opExtentAlign = 0;
22086 let Constraints = "$Rx32 = $Rx32in";
22087 }
22088 def S4_clbaddi : HInst<
22089 (outs IntRegs:$Rd32),
22090 (ins IntRegs:$Rs32, s6_0Imm:$Ii),
22091 "$Rd32 = add(clb($Rs32),#$Ii)",
22092 tc_002cb246, TypeS_2op>, Enc_9fae8a {
22093 let Inst{7-5} = 0b000;
22094 let Inst{31-21} = 0b10001100001;
22095 let hasNewValue = 1;
22096 let opNewValue = 0;
22097 let prefersSlot3 = 1;
22098 }
22099 def S4_clbpaddi : HInst<
22100 (outs IntRegs:$Rd32),
22101 (ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22102 "$Rd32 = add(clb($Rss32),#$Ii)",
22103 tc_002cb246, TypeS_2op>, Enc_a1640c {
22104 let Inst{7-5} = 0b010;
22105 let Inst{31-21} = 0b10001000011;
22106 let hasNewValue = 1;
22107 let opNewValue = 0;
22108 let prefersSlot3 = 1;
22109 }
22110 def S4_clbpnorm : HInst<
22111 (outs IntRegs:$Rd32),
22112 (ins DoubleRegs:$Rss32),
22113 "$Rd32 = normamt($Rss32)",
22114 tc_14b5c689, TypeS_2op>, Enc_90cd8b {
22115 let Inst{13-5} = 0b000000000;
22116 let Inst{31-21} = 0b10001000011;
22117 let hasNewValue = 1;
22118 let opNewValue = 0;
22119 let prefersSlot3 = 1;
22120 }
22121 def S4_extract : HInst<
22122 (outs IntRegs:$Rd32),
22123 (ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22124 "$Rd32 = extract($Rs32,#$Ii,#$II)",
22125 tc_f675fee8, TypeS_2op>, Enc_b388cf {
22126 let Inst{13-13} = 0b0;
22127 let Inst{31-23} = 0b100011011;
22128 let hasNewValue = 1;
22129 let opNewValue = 0;
22130 let prefersSlot3 = 1;
22131 }
22132 def S4_extract_rp : HInst<
22133 (outs IntRegs:$Rd32),
22134 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22135 "$Rd32 = extract($Rs32,$Rtt32)",
22136 tc_002cb246, TypeS_3op>, Enc_e07374 {
22137 let Inst{7-5} = 0b010;
22138 let Inst{13-13} = 0b0;
22139 let Inst{31-21} = 0b11001001000;
22140 let hasNewValue = 1;
22141 let opNewValue = 0;
22142 let prefersSlot3 = 1;
22143 }
22144 def S4_extractp : HInst<
22145 (outs DoubleRegs:$Rdd32),
22146 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22147 "$Rdd32 = extract($Rss32,#$Ii,#$II)",
22148 tc_f675fee8, TypeS_2op>, Enc_b84c4c {
22149 let Inst{31-24} = 0b10001010;
22150 let prefersSlot3 = 1;
22151 }
22152 def S4_extractp_rp : HInst<
22153 (outs DoubleRegs:$Rdd32),
22154 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22155 "$Rdd32 = extract($Rss32,$Rtt32)",
22156 tc_002cb246, TypeS_3op>, Enc_a56825 {
22157 let Inst{7-5} = 0b100;
22158 let Inst{13-13} = 0b0;
22159 let Inst{31-21} = 0b11000001110;
22160 let prefersSlot3 = 1;
22161 }
22162 def S4_lsli : HInst<
22163 (outs IntRegs:$Rd32),
22164 (ins s6_0Imm:$Ii, IntRegs:$Rt32),
22165 "$Rd32 = lsl(#$Ii,$Rt32)",
22166 tc_946df596, TypeS_3op>, Enc_fef969 {
22167 let Inst{7-6} = 0b11;
22168 let Inst{13-13} = 0b0;
22169 let Inst{31-21} = 0b11000110100;
22170 let hasNewValue = 1;
22171 let opNewValue = 0;
22172 }
22173 def S4_ntstbit_i : HInst<
22174 (outs PredRegs:$Pd4),
22175 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
22176 "$Pd4 = !tstbit($Rs32,#$Ii)",
22177 tc_643b4717, TypeS_2op>, Enc_83ee64 {
22178 let Inst{7-2} = 0b000000;
22179 let Inst{13-13} = 0b0;
22180 let Inst{31-21} = 0b10000101001;
22181 }
22182 def S4_ntstbit_r : HInst<
22183 (outs PredRegs:$Pd4),
22184 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22185 "$Pd4 = !tstbit($Rs32,$Rt32)",
22186 tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
22187 let Inst{7-2} = 0b000000;
22188 let Inst{13-13} = 0b0;
22189 let Inst{31-21} = 0b11000111001;
22190 }
22191 def S4_or_andi : HInst<
22192 (outs IntRegs:$Rx32),
22193 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22194 "$Rx32 |= and($Rs32,#$Ii)",
22195 tc_f429765c, TypeALU64>, Enc_b0e9d8 {
22196 let Inst{31-22} = 0b1101101000;
22197 let hasNewValue = 1;
22198 let opNewValue = 0;
22199 let prefersSlot3 = 1;
22200 let InputType = "imm";
22201 let isExtendable = 1;
22202 let opExtendable = 3;
22203 let isExtentSigned = 1;
22204 let opExtentBits = 10;
22205 let opExtentAlign = 0;
22206 let Constraints = "$Rx32 = $Rx32in";
22207 }
22208 def S4_or_andix : HInst<
22209 (outs IntRegs:$Rx32),
22210 (ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22211 "$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22212 tc_f429765c, TypeALU64>, Enc_b4e6cf {
22213 let Inst{31-22} = 0b1101101001;
22214 let hasNewValue = 1;
22215 let opNewValue = 0;
22216 let prefersSlot3 = 1;
22217 let isExtendable = 1;
22218 let opExtendable = 3;
22219 let isExtentSigned = 1;
22220 let opExtentBits = 10;
22221 let opExtentAlign = 0;
22222 let Constraints = "$Rx32 = $Rx32in";
22223 }
22224 def S4_or_ori : HInst<
22225 (outs IntRegs:$Rx32),
22226 (ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22227 "$Rx32 |= or($Rs32,#$Ii)",
22228 tc_f429765c, TypeALU64>, Enc_b0e9d8 {
22229 let Inst{31-22} = 0b1101101010;
22230 let hasNewValue = 1;
22231 let opNewValue = 0;
22232 let prefersSlot3 = 1;
22233 let InputType = "imm";
22234 let isExtendable = 1;
22235 let opExtendable = 3;
22236 let isExtentSigned = 1;
22237 let opExtentBits = 10;
22238 let opExtentAlign = 0;
22239 let Constraints = "$Rx32 = $Rx32in";
22240 }
22241 def S4_ori_asl_ri : HInst<
22242 (outs IntRegs:$Rx32),
22243 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22244 "$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22245 tc_f429765c, TypeALU64>, Enc_c31910 {
22246 let Inst{2-0} = 0b010;
22247 let Inst{4-4} = 0b0;
22248 let Inst{31-24} = 0b11011110;
22249 let hasNewValue = 1;
22250 let opNewValue = 0;
22251 let prefersSlot3 = 1;
22252 let isExtendable = 1;
22253 let opExtendable = 1;
22254 let isExtentSigned = 0;
22255 let opExtentBits = 8;
22256 let opExtentAlign = 0;
22257 let Constraints = "$Rx32 = $Rx32in";
22258 }
22259 def S4_ori_lsr_ri : HInst<
22260 (outs IntRegs:$Rx32),
22261 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22262 "$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22263 tc_f429765c, TypeALU64>, Enc_c31910 {
22264 let Inst{2-0} = 0b010;
22265 let Inst{4-4} = 0b1;
22266 let Inst{31-24} = 0b11011110;
22267 let hasNewValue = 1;
22268 let opNewValue = 0;
22269 let prefersSlot3 = 1;
22270 let isExtendable = 1;
22271 let opExtendable = 1;
22272 let isExtentSigned = 0;
22273 let opExtentBits = 8;
22274 let opExtentAlign = 0;
22275 let Constraints = "$Rx32 = $Rx32in";
22276 }
22277 def S4_parity : HInst<
22278 (outs IntRegs:$Rd32),
22279 (ins IntRegs:$Rs32, IntRegs:$Rt32),
22280 "$Rd32 = parity($Rs32,$Rt32)",
22281 tc_002cb246, TypeALU64>, Enc_5ab2be {
22282 let Inst{7-5} = 0b000;
22283 let Inst{13-13} = 0b0;
22284 let Inst{31-21} = 0b11010101111;
22285 let hasNewValue = 1;
22286 let opNewValue = 0;
22287 let prefersSlot3 = 1;
22288 }
22289 def S4_pstorerbf_abs : HInst<
22290 (outs),
22291 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22292 "if (!$Pv4) memb(#$Ii) = $Rt32",
22293 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22294 let Inst{2-2} = 0b1;
22295 let Inst{7-7} = 0b1;
22296 let Inst{13-13} = 0b0;
22297 let Inst{31-18} = 0b10101111000000;
22298 let isPredicated = 1;
22299 let isPredicatedFalse = 1;
22300 let addrMode = Absolute;
22301 let accessSize = ByteAccess;
22302 let isExtended = 1;
22303 let mayStore = 1;
22304 let CextOpcode = "S2_storerb";
22305 let BaseOpcode = "S2_storerbabs";
22306 let isNVStorable = 1;
22307 let DecoderNamespace = "MustExtend";
22308 let isExtendable = 1;
22309 let opExtendable = 1;
22310 let isExtentSigned = 0;
22311 let opExtentBits = 6;
22312 let opExtentAlign = 0;
22313 }
22314 def S4_pstorerbf_rr : HInst<
22315 (outs),
22316 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22317 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22318 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
22319 let Inst{31-21} = 0b00110101000;
22320 let isPredicated = 1;
22321 let isPredicatedFalse = 1;
22322 let addrMode = BaseRegOffset;
22323 let accessSize = ByteAccess;
22324 let mayStore = 1;
22325 let CextOpcode = "S2_storerb";
22326 let InputType = "reg";
22327 let BaseOpcode = "S4_storerb_rr";
22328 let isNVStorable = 1;
22329 }
22330 def S4_pstorerbfnew_abs : HInst<
22331 (outs),
22332 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22333 "if (!$Pv4.new) memb(#$Ii) = $Rt32",
22334 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
22335 let Inst{2-2} = 0b1;
22336 let Inst{7-7} = 0b1;
22337 let Inst{13-13} = 0b1;
22338 let Inst{31-18} = 0b10101111000000;
22339 let isPredicated = 1;
22340 let isPredicatedFalse = 1;
22341 let addrMode = Absolute;
22342 let accessSize = ByteAccess;
22343 let isPredicatedNew = 1;
22344 let isExtended = 1;
22345 let mayStore = 1;
22346 let CextOpcode = "S2_storerb";
22347 let BaseOpcode = "S2_storerbabs";
22348 let isNVStorable = 1;
22349 let DecoderNamespace = "MustExtend";
22350 let isExtendable = 1;
22351 let opExtendable = 1;
22352 let isExtentSigned = 0;
22353 let opExtentBits = 6;
22354 let opExtentAlign = 0;
22355 }
22356 def S4_pstorerbfnew_io : HInst<
22357 (outs),
22358 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22359 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22360 tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22361 let Inst{2-2} = 0b0;
22362 let Inst{31-21} = 0b01000110000;
22363 let isPredicated = 1;
22364 let isPredicatedFalse = 1;
22365 let addrMode = BaseImmOffset;
22366 let accessSize = ByteAccess;
22367 let isPredicatedNew = 1;
22368 let mayStore = 1;
22369 let CextOpcode = "S2_storerb";
22370 let InputType = "imm";
22371 let BaseOpcode = "S2_storerb_io";
22372 let isNVStorable = 1;
22373 let isExtendable = 1;
22374 let opExtendable = 2;
22375 let isExtentSigned = 0;
22376 let opExtentBits = 6;
22377 let opExtentAlign = 0;
22378 }
22379 def S4_pstorerbfnew_rr : HInst<
22380 (outs),
22381 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22382 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22383 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
22384 let Inst{31-21} = 0b00110111000;
22385 let isPredicated = 1;
22386 let isPredicatedFalse = 1;
22387 let addrMode = BaseRegOffset;
22388 let accessSize = ByteAccess;
22389 let isPredicatedNew = 1;
22390 let mayStore = 1;
22391 let CextOpcode = "S2_storerb";
22392 let InputType = "reg";
22393 let BaseOpcode = "S4_storerb_rr";
22394 let isNVStorable = 1;
22395 }
22396 def S4_pstorerbfnew_zomap : HInst<
22397 (outs),
22398 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22399 "if (!$Pv4.new) memb($Rs32) = $Rt32",
22400 tc_da97ee82, TypeMAPPING> {
22401 let isPseudo = 1;
22402 let isCodeGenOnly = 1;
22403 }
22404 def S4_pstorerbnewf_abs : HInst<
22405 (outs),
22406 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22407 "if (!$Pv4) memb(#$Ii) = $Nt8.new",
22408 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
22409 let Inst{2-2} = 0b1;
22410 let Inst{7-7} = 0b1;
22411 let Inst{13-11} = 0b000;
22412 let Inst{31-18} = 0b10101111101000;
22413 let isPredicated = 1;
22414 let isPredicatedFalse = 1;
22415 let addrMode = Absolute;
22416 let accessSize = ByteAccess;
22417 let isNVStore = 1;
22418 let isNewValue = 1;
22419 let isExtended = 1;
22420 let isRestrictNoSlot1Store = 1;
22421 let mayStore = 1;
22422 let CextOpcode = "S2_storerb";
22423 let BaseOpcode = "S2_storerbabs";
22424 let DecoderNamespace = "MustExtend";
22425 let isExtendable = 1;
22426 let opExtendable = 1;
22427 let isExtentSigned = 0;
22428 let opExtentBits = 6;
22429 let opExtentAlign = 0;
22430 let opNewValue = 2;
22431 }
22432 def S4_pstorerbnewf_rr : HInst<
22433 (outs),
22434 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22435 "if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22436 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
22437 let Inst{4-3} = 0b00;
22438 let Inst{31-21} = 0b00110101101;
22439 let isPredicated = 1;
22440 let isPredicatedFalse = 1;
22441 let addrMode = BaseRegOffset;
22442 let accessSize = ByteAccess;
22443 let isNVStore = 1;
22444 let isNewValue = 1;
22445 let isRestrictNoSlot1Store = 1;
22446 let mayStore = 1;
22447 let CextOpcode = "S2_storerb";
22448 let InputType = "reg";
22449 let BaseOpcode = "S4_storerb_rr";
22450 let opNewValue = 4;
22451 }
22452 def S4_pstorerbnewfnew_abs : HInst<
22453 (outs),
22454 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22455 "if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22456 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
22457 let Inst{2-2} = 0b1;
22458 let Inst{7-7} = 0b1;
22459 let Inst{13-11} = 0b100;
22460 let Inst{31-18} = 0b10101111101000;
22461 let isPredicated = 1;
22462 let isPredicatedFalse = 1;
22463 let addrMode = Absolute;
22464 let accessSize = ByteAccess;
22465 let isNVStore = 1;
22466 let isPredicatedNew = 1;
22467 let isNewValue = 1;
22468 let isExtended = 1;
22469 let isRestrictNoSlot1Store = 1;
22470 let mayStore = 1;
22471 let CextOpcode = "S2_storerb";
22472 let BaseOpcode = "S2_storerbabs";
22473 let DecoderNamespace = "MustExtend";
22474 let isExtendable = 1;
22475 let opExtendable = 1;
22476 let isExtentSigned = 0;
22477 let opExtentBits = 6;
22478 let opExtentAlign = 0;
22479 let opNewValue = 2;
22480 }
22481 def S4_pstorerbnewfnew_io : HInst<
22482 (outs),
22483 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22484 "if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22485 tc_c79a189f, TypeV2LDST>, Enc_585242, AddrModeRel {
22486 let Inst{2-2} = 0b0;
22487 let Inst{12-11} = 0b00;
22488 let Inst{31-21} = 0b01000110101;
22489 let isPredicated = 1;
22490 let isPredicatedFalse = 1;
22491 let addrMode = BaseImmOffset;
22492 let accessSize = ByteAccess;
22493 let isNVStore = 1;
22494 let isPredicatedNew = 1;
22495 let isNewValue = 1;
22496 let isRestrictNoSlot1Store = 1;
22497 let mayStore = 1;
22498 let CextOpcode = "S2_storerb";
22499 let InputType = "imm";
22500 let BaseOpcode = "S2_storerb_io";
22501 let isExtendable = 1;
22502 let opExtendable = 2;
22503 let isExtentSigned = 0;
22504 let opExtentBits = 6;
22505 let opExtentAlign = 0;
22506 let opNewValue = 3;
22507 }
22508 def S4_pstorerbnewfnew_rr : HInst<
22509 (outs),
22510 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22511 "if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22512 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
22513 let Inst{4-3} = 0b00;
22514 let Inst{31-21} = 0b00110111101;
22515 let isPredicated = 1;
22516 let isPredicatedFalse = 1;
22517 let addrMode = BaseRegOffset;
22518 let accessSize = ByteAccess;
22519 let isNVStore = 1;
22520 let isPredicatedNew = 1;
22521 let isNewValue = 1;
22522 let isRestrictNoSlot1Store = 1;
22523 let mayStore = 1;
22524 let CextOpcode = "S2_storerb";
22525 let InputType = "reg";
22526 let BaseOpcode = "S4_storerb_rr";
22527 let opNewValue = 4;
22528 }
22529 def S4_pstorerbnewfnew_zomap : HInst<
22530 (outs),
22531 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22532 "if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22533 tc_c79a189f, TypeMAPPING> {
22534 let isPseudo = 1;
22535 let isCodeGenOnly = 1;
22536 let opNewValue = 2;
22537 }
22538 def S4_pstorerbnewt_abs : HInst<
22539 (outs),
22540 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22541 "if ($Pv4) memb(#$Ii) = $Nt8.new",
22542 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
22543 let Inst{2-2} = 0b0;
22544 let Inst{7-7} = 0b1;
22545 let Inst{13-11} = 0b000;
22546 let Inst{31-18} = 0b10101111101000;
22547 let isPredicated = 1;
22548 let addrMode = Absolute;
22549 let accessSize = ByteAccess;
22550 let isNVStore = 1;
22551 let isNewValue = 1;
22552 let isExtended = 1;
22553 let isRestrictNoSlot1Store = 1;
22554 let mayStore = 1;
22555 let CextOpcode = "S2_storerb";
22556 let BaseOpcode = "S2_storerbabs";
22557 let DecoderNamespace = "MustExtend";
22558 let isExtendable = 1;
22559 let opExtendable = 1;
22560 let isExtentSigned = 0;
22561 let opExtentBits = 6;
22562 let opExtentAlign = 0;
22563 let opNewValue = 2;
22564 }
22565 def S4_pstorerbnewt_rr : HInst<
22566 (outs),
22567 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22568 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22569 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
22570 let Inst{4-3} = 0b00;
22571 let Inst{31-21} = 0b00110100101;
22572 let isPredicated = 1;
22573 let addrMode = BaseRegOffset;
22574 let accessSize = ByteAccess;
22575 let isNVStore = 1;
22576 let isNewValue = 1;
22577 let isRestrictNoSlot1Store = 1;
22578 let mayStore = 1;
22579 let CextOpcode = "S2_storerb";
22580 let InputType = "reg";
22581 let BaseOpcode = "S4_storerb_rr";
22582 let opNewValue = 4;
22583 }
22584 def S4_pstorerbnewtnew_abs : HInst<
22585 (outs),
22586 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22587 "if ($Pv4.new) memb(#$Ii) = $Nt8.new",
22588 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
22589 let Inst{2-2} = 0b0;
22590 let Inst{7-7} = 0b1;
22591 let Inst{13-11} = 0b100;
22592 let Inst{31-18} = 0b10101111101000;
22593 let isPredicated = 1;
22594 let addrMode = Absolute;
22595 let accessSize = ByteAccess;
22596 let isNVStore = 1;
22597 let isPredicatedNew = 1;
22598 let isNewValue = 1;
22599 let isExtended = 1;
22600 let isRestrictNoSlot1Store = 1;
22601 let mayStore = 1;
22602 let CextOpcode = "S2_storerb";
22603 let BaseOpcode = "S2_storerbabs";
22604 let DecoderNamespace = "MustExtend";
22605 let isExtendable = 1;
22606 let opExtendable = 1;
22607 let isExtentSigned = 0;
22608 let opExtentBits = 6;
22609 let opExtentAlign = 0;
22610 let opNewValue = 2;
22611 }
22612 def S4_pstorerbnewtnew_io : HInst<
22613 (outs),
22614 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22615 "if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22616 tc_c79a189f, TypeV2LDST>, Enc_585242, AddrModeRel {
22617 let Inst{2-2} = 0b0;
22618 let Inst{12-11} = 0b00;
22619 let Inst{31-21} = 0b01000010101;
22620 let isPredicated = 1;
22621 let addrMode = BaseImmOffset;
22622 let accessSize = ByteAccess;
22623 let isNVStore = 1;
22624 let isPredicatedNew = 1;
22625 let isNewValue = 1;
22626 let isRestrictNoSlot1Store = 1;
22627 let mayStore = 1;
22628 let CextOpcode = "S2_storerb";
22629 let InputType = "imm";
22630 let BaseOpcode = "S2_storerb_io";
22631 let isExtendable = 1;
22632 let opExtendable = 2;
22633 let isExtentSigned = 0;
22634 let opExtentBits = 6;
22635 let opExtentAlign = 0;
22636 let opNewValue = 3;
22637 }
22638 def S4_pstorerbnewtnew_rr : HInst<
22639 (outs),
22640 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22641 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22642 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
22643 let Inst{4-3} = 0b00;
22644 let Inst{31-21} = 0b00110110101;
22645 let isPredicated = 1;
22646 let addrMode = BaseRegOffset;
22647 let accessSize = ByteAccess;
22648 let isNVStore = 1;
22649 let isPredicatedNew = 1;
22650 let isNewValue = 1;
22651 let isRestrictNoSlot1Store = 1;
22652 let mayStore = 1;
22653 let CextOpcode = "S2_storerb";
22654 let InputType = "reg";
22655 let BaseOpcode = "S4_storerb_rr";
22656 let opNewValue = 4;
22657 }
22658 def S4_pstorerbnewtnew_zomap : HInst<
22659 (outs),
22660 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22661 "if ($Pv4.new) memb($Rs32) = $Nt8.new",
22662 tc_c79a189f, TypeMAPPING> {
22663 let isPseudo = 1;
22664 let isCodeGenOnly = 1;
22665 let opNewValue = 2;
22666 }
22667 def S4_pstorerbt_abs : HInst<
22668 (outs),
22669 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22670 "if ($Pv4) memb(#$Ii) = $Rt32",
22671 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22672 let Inst{2-2} = 0b0;
22673 let Inst{7-7} = 0b1;
22674 let Inst{13-13} = 0b0;
22675 let Inst{31-18} = 0b10101111000000;
22676 let isPredicated = 1;
22677 let addrMode = Absolute;
22678 let accessSize = ByteAccess;
22679 let isExtended = 1;
22680 let mayStore = 1;
22681 let CextOpcode = "S2_storerb";
22682 let BaseOpcode = "S2_storerbabs";
22683 let isNVStorable = 1;
22684 let DecoderNamespace = "MustExtend";
22685 let isExtendable = 1;
22686 let opExtendable = 1;
22687 let isExtentSigned = 0;
22688 let opExtentBits = 6;
22689 let opExtentAlign = 0;
22690 }
22691 def S4_pstorerbt_rr : HInst<
22692 (outs),
22693 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22694 "if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22695 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
22696 let Inst{31-21} = 0b00110100000;
22697 let isPredicated = 1;
22698 let addrMode = BaseRegOffset;
22699 let accessSize = ByteAccess;
22700 let mayStore = 1;
22701 let CextOpcode = "S2_storerb";
22702 let InputType = "reg";
22703 let BaseOpcode = "S4_storerb_rr";
22704 let isNVStorable = 1;
22705 }
22706 def S4_pstorerbtnew_abs : HInst<
22707 (outs),
22708 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22709 "if ($Pv4.new) memb(#$Ii) = $Rt32",
22710 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
22711 let Inst{2-2} = 0b0;
22712 let Inst{7-7} = 0b1;
22713 let Inst{13-13} = 0b1;
22714 let Inst{31-18} = 0b10101111000000;
22715 let isPredicated = 1;
22716 let addrMode = Absolute;
22717 let accessSize = ByteAccess;
22718 let isPredicatedNew = 1;
22719 let isExtended = 1;
22720 let mayStore = 1;
22721 let CextOpcode = "S2_storerb";
22722 let BaseOpcode = "S2_storerbabs";
22723 let isNVStorable = 1;
22724 let DecoderNamespace = "MustExtend";
22725 let isExtendable = 1;
22726 let opExtendable = 1;
22727 let isExtentSigned = 0;
22728 let opExtentBits = 6;
22729 let opExtentAlign = 0;
22730 }
22731 def S4_pstorerbtnew_io : HInst<
22732 (outs),
22733 (ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22734 "if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22735 tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22736 let Inst{2-2} = 0b0;
22737 let Inst{31-21} = 0b01000010000;
22738 let isPredicated = 1;
22739 let addrMode = BaseImmOffset;
22740 let accessSize = ByteAccess;
22741 let isPredicatedNew = 1;
22742 let mayStore = 1;
22743 let CextOpcode = "S2_storerb";
22744 let InputType = "imm";
22745 let BaseOpcode = "S2_storerb_io";
22746 let isNVStorable = 1;
22747 let isExtendable = 1;
22748 let opExtendable = 2;
22749 let isExtentSigned = 0;
22750 let opExtentBits = 6;
22751 let opExtentAlign = 0;
22752 }
22753 def S4_pstorerbtnew_rr : HInst<
22754 (outs),
22755 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22756 "if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22757 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
22758 let Inst{31-21} = 0b00110110000;
22759 let isPredicated = 1;
22760 let addrMode = BaseRegOffset;
22761 let accessSize = ByteAccess;
22762 let isPredicatedNew = 1;
22763 let mayStore = 1;
22764 let CextOpcode = "S2_storerb";
22765 let InputType = "reg";
22766 let BaseOpcode = "S4_storerb_rr";
22767 let isNVStorable = 1;
22768 }
22769 def S4_pstorerbtnew_zomap : HInst<
22770 (outs),
22771 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22772 "if ($Pv4.new) memb($Rs32) = $Rt32",
22773 tc_da97ee82, TypeMAPPING> {
22774 let isPseudo = 1;
22775 let isCodeGenOnly = 1;
22776 }
22777 def S4_pstorerdf_abs : HInst<
22778 (outs),
22779 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22780 "if (!$Pv4) memd(#$Ii) = $Rtt32",
22781 tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel {
22782 let Inst{2-2} = 0b1;
22783 let Inst{7-7} = 0b1;
22784 let Inst{13-13} = 0b0;
22785 let Inst{31-18} = 0b10101111110000;
22786 let isPredicated = 1;
22787 let isPredicatedFalse = 1;
22788 let addrMode = Absolute;
22789 let accessSize = DoubleWordAccess;
22790 let isExtended = 1;
22791 let mayStore = 1;
22792 let CextOpcode = "S2_storerd";
22793 let BaseOpcode = "S2_storerdabs";
22794 let DecoderNamespace = "MustExtend";
22795 let isExtendable = 1;
22796 let opExtendable = 1;
22797 let isExtentSigned = 0;
22798 let opExtentBits = 6;
22799 let opExtentAlign = 0;
22800 }
22801 def S4_pstorerdf_rr : HInst<
22802 (outs),
22803 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22804 "if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22805 tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel {
22806 let Inst{31-21} = 0b00110101110;
22807 let isPredicated = 1;
22808 let isPredicatedFalse = 1;
22809 let addrMode = BaseRegOffset;
22810 let accessSize = DoubleWordAccess;
22811 let mayStore = 1;
22812 let CextOpcode = "S2_storerd";
22813 let InputType = "reg";
22814 let BaseOpcode = "S2_storerd_rr";
22815 }
22816 def S4_pstorerdfnew_abs : HInst<
22817 (outs),
22818 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22819 "if (!$Pv4.new) memd(#$Ii) = $Rtt32",
22820 tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel {
22821 let Inst{2-2} = 0b1;
22822 let Inst{7-7} = 0b1;
22823 let Inst{13-13} = 0b1;
22824 let Inst{31-18} = 0b10101111110000;
22825 let isPredicated = 1;
22826 let isPredicatedFalse = 1;
22827 let addrMode = Absolute;
22828 let accessSize = DoubleWordAccess;
22829 let isPredicatedNew = 1;
22830 let isExtended = 1;
22831 let mayStore = 1;
22832 let CextOpcode = "S2_storerd";
22833 let BaseOpcode = "S2_storerdabs";
22834 let DecoderNamespace = "MustExtend";
22835 let isExtendable = 1;
22836 let opExtendable = 1;
22837 let isExtentSigned = 0;
22838 let opExtentBits = 6;
22839 let opExtentAlign = 0;
22840 }
22841 def S4_pstorerdfnew_io : HInst<
22842 (outs),
22843 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22844 "if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22845 tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22846 let Inst{2-2} = 0b0;
22847 let Inst{31-21} = 0b01000110110;
22848 let isPredicated = 1;
22849 let isPredicatedFalse = 1;
22850 let addrMode = BaseImmOffset;
22851 let accessSize = DoubleWordAccess;
22852 let isPredicatedNew = 1;
22853 let mayStore = 1;
22854 let CextOpcode = "S2_storerd";
22855 let InputType = "imm";
22856 let BaseOpcode = "S2_storerd_io";
22857 let isExtendable = 1;
22858 let opExtendable = 2;
22859 let isExtentSigned = 0;
22860 let opExtentBits = 9;
22861 let opExtentAlign = 3;
22862 }
22863 def S4_pstorerdfnew_rr : HInst<
22864 (outs),
22865 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22866 "if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22867 tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel {
22868 let Inst{31-21} = 0b00110111110;
22869 let isPredicated = 1;
22870 let isPredicatedFalse = 1;
22871 let addrMode = BaseRegOffset;
22872 let accessSize = DoubleWordAccess;
22873 let isPredicatedNew = 1;
22874 let mayStore = 1;
22875 let CextOpcode = "S2_storerd";
22876 let InputType = "reg";
22877 let BaseOpcode = "S2_storerd_rr";
22878 }
22879 def S4_pstorerdfnew_zomap : HInst<
22880 (outs),
22881 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22882 "if (!$Pv4.new) memd($Rs32) = $Rtt32",
22883 tc_da97ee82, TypeMAPPING> {
22884 let isPseudo = 1;
22885 let isCodeGenOnly = 1;
22886 }
22887 def S4_pstorerdt_abs : HInst<
22888 (outs),
22889 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22890 "if ($Pv4) memd(#$Ii) = $Rtt32",
22891 tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel {
22892 let Inst{2-2} = 0b0;
22893 let Inst{7-7} = 0b1;
22894 let Inst{13-13} = 0b0;
22895 let Inst{31-18} = 0b10101111110000;
22896 let isPredicated = 1;
22897 let addrMode = Absolute;
22898 let accessSize = DoubleWordAccess;
22899 let isExtended = 1;
22900 let mayStore = 1;
22901 let CextOpcode = "S2_storerd";
22902 let BaseOpcode = "S2_storerdabs";
22903 let DecoderNamespace = "MustExtend";
22904 let isExtendable = 1;
22905 let opExtendable = 1;
22906 let isExtentSigned = 0;
22907 let opExtentBits = 6;
22908 let opExtentAlign = 0;
22909 }
22910 def S4_pstorerdt_rr : HInst<
22911 (outs),
22912 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22913 "if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22914 tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel {
22915 let Inst{31-21} = 0b00110100110;
22916 let isPredicated = 1;
22917 let addrMode = BaseRegOffset;
22918 let accessSize = DoubleWordAccess;
22919 let mayStore = 1;
22920 let CextOpcode = "S2_storerd";
22921 let InputType = "reg";
22922 let BaseOpcode = "S2_storerd_rr";
22923 }
22924 def S4_pstorerdtnew_abs : HInst<
22925 (outs),
22926 (ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22927 "if ($Pv4.new) memd(#$Ii) = $Rtt32",
22928 tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel {
22929 let Inst{2-2} = 0b0;
22930 let Inst{7-7} = 0b1;
22931 let Inst{13-13} = 0b1;
22932 let Inst{31-18} = 0b10101111110000;
22933 let isPredicated = 1;
22934 let addrMode = Absolute;
22935 let accessSize = DoubleWordAccess;
22936 let isPredicatedNew = 1;
22937 let isExtended = 1;
22938 let mayStore = 1;
22939 let CextOpcode = "S2_storerd";
22940 let BaseOpcode = "S2_storerdabs";
22941 let DecoderNamespace = "MustExtend";
22942 let isExtendable = 1;
22943 let opExtendable = 1;
22944 let isExtentSigned = 0;
22945 let opExtentBits = 6;
22946 let opExtentAlign = 0;
22947 }
22948 def S4_pstorerdtnew_io : HInst<
22949 (outs),
22950 (ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22951 "if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22952 tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22953 let Inst{2-2} = 0b0;
22954 let Inst{31-21} = 0b01000010110;
22955 let isPredicated = 1;
22956 let addrMode = BaseImmOffset;
22957 let accessSize = DoubleWordAccess;
22958 let isPredicatedNew = 1;
22959 let mayStore = 1;
22960 let CextOpcode = "S2_storerd";
22961 let InputType = "imm";
22962 let BaseOpcode = "S2_storerd_io";
22963 let isExtendable = 1;
22964 let opExtendable = 2;
22965 let isExtentSigned = 0;
22966 let opExtentBits = 9;
22967 let opExtentAlign = 3;
22968 }
22969 def S4_pstorerdtnew_rr : HInst<
22970 (outs),
22971 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22972 "if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22973 tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel {
22974 let Inst{31-21} = 0b00110110110;
22975 let isPredicated = 1;
22976 let addrMode = BaseRegOffset;
22977 let accessSize = DoubleWordAccess;
22978 let isPredicatedNew = 1;
22979 let mayStore = 1;
22980 let CextOpcode = "S2_storerd";
22981 let InputType = "reg";
22982 let BaseOpcode = "S2_storerd_rr";
22983 }
22984 def S4_pstorerdtnew_zomap : HInst<
22985 (outs),
22986 (ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22987 "if ($Pv4.new) memd($Rs32) = $Rtt32",
22988 tc_da97ee82, TypeMAPPING> {
22989 let isPseudo = 1;
22990 let isCodeGenOnly = 1;
22991 }
22992 def S4_pstorerff_abs : HInst<
22993 (outs),
22994 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22995 "if (!$Pv4) memh(#$Ii) = $Rt32.h",
22996 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22997 let Inst{2-2} = 0b1;
22998 let Inst{7-7} = 0b1;
22999 let Inst{13-13} = 0b0;
23000 let Inst{31-18} = 0b10101111011000;
23001 let isPredicated = 1;
23002 let isPredicatedFalse = 1;
23003 let addrMode = Absolute;
23004 let accessSize = HalfWordAccess;
23005 let isExtended = 1;
23006 let mayStore = 1;
23007 let CextOpcode = "S2_storerf";
23008 let BaseOpcode = "S2_storerfabs";
23009 let DecoderNamespace = "MustExtend";
23010 let isExtendable = 1;
23011 let opExtendable = 1;
23012 let isExtentSigned = 0;
23013 let opExtentBits = 6;
23014 let opExtentAlign = 0;
23015 }
23016 def S4_pstorerff_rr : HInst<
23017 (outs),
23018 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23019 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23020 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23021 let Inst{31-21} = 0b00110101011;
23022 let isPredicated = 1;
23023 let isPredicatedFalse = 1;
23024 let addrMode = BaseRegOffset;
23025 let accessSize = HalfWordAccess;
23026 let mayStore = 1;
23027 let CextOpcode = "S2_storerf";
23028 let InputType = "reg";
23029 let BaseOpcode = "S4_storerf_rr";
23030 }
23031 def S4_pstorerffnew_abs : HInst<
23032 (outs),
23033 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23034 "if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23035 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23036 let Inst{2-2} = 0b1;
23037 let Inst{7-7} = 0b1;
23038 let Inst{13-13} = 0b1;
23039 let Inst{31-18} = 0b10101111011000;
23040 let isPredicated = 1;
23041 let isPredicatedFalse = 1;
23042 let addrMode = Absolute;
23043 let accessSize = HalfWordAccess;
23044 let isPredicatedNew = 1;
23045 let isExtended = 1;
23046 let mayStore = 1;
23047 let CextOpcode = "S2_storerf";
23048 let BaseOpcode = "S2_storerfabs";
23049 let DecoderNamespace = "MustExtend";
23050 let isExtendable = 1;
23051 let opExtendable = 1;
23052 let isExtentSigned = 0;
23053 let opExtentBits = 6;
23054 let opExtentAlign = 0;
23055 }
23056 def S4_pstorerffnew_io : HInst<
23057 (outs),
23058 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23059 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23060 tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23061 let Inst{2-2} = 0b0;
23062 let Inst{31-21} = 0b01000110011;
23063 let isPredicated = 1;
23064 let isPredicatedFalse = 1;
23065 let addrMode = BaseImmOffset;
23066 let accessSize = HalfWordAccess;
23067 let isPredicatedNew = 1;
23068 let mayStore = 1;
23069 let CextOpcode = "S2_storerf";
23070 let InputType = "imm";
23071 let BaseOpcode = "S2_storerf_io";
23072 let isExtendable = 1;
23073 let opExtendable = 2;
23074 let isExtentSigned = 0;
23075 let opExtentBits = 7;
23076 let opExtentAlign = 1;
23077 }
23078 def S4_pstorerffnew_rr : HInst<
23079 (outs),
23080 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23081 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23082 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23083 let Inst{31-21} = 0b00110111011;
23084 let isPredicated = 1;
23085 let isPredicatedFalse = 1;
23086 let addrMode = BaseRegOffset;
23087 let accessSize = HalfWordAccess;
23088 let isPredicatedNew = 1;
23089 let mayStore = 1;
23090 let CextOpcode = "S2_storerf";
23091 let InputType = "reg";
23092 let BaseOpcode = "S4_storerf_rr";
23093 }
23094 def S4_pstorerffnew_zomap : HInst<
23095 (outs),
23096 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23097 "if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23098 tc_da97ee82, TypeMAPPING> {
23099 let isPseudo = 1;
23100 let isCodeGenOnly = 1;
23101 }
23102 def S4_pstorerft_abs : HInst<
23103 (outs),
23104 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23105 "if ($Pv4) memh(#$Ii) = $Rt32.h",
23106 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23107 let Inst{2-2} = 0b0;
23108 let Inst{7-7} = 0b1;
23109 let Inst{13-13} = 0b0;
23110 let Inst{31-18} = 0b10101111011000;
23111 let isPredicated = 1;
23112 let addrMode = Absolute;
23113 let accessSize = HalfWordAccess;
23114 let isExtended = 1;
23115 let mayStore = 1;
23116 let CextOpcode = "S2_storerf";
23117 let BaseOpcode = "S2_storerfabs";
23118 let DecoderNamespace = "MustExtend";
23119 let isExtendable = 1;
23120 let opExtendable = 1;
23121 let isExtentSigned = 0;
23122 let opExtentBits = 6;
23123 let opExtentAlign = 0;
23124 }
23125 def S4_pstorerft_rr : HInst<
23126 (outs),
23127 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23128 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23129 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23130 let Inst{31-21} = 0b00110100011;
23131 let isPredicated = 1;
23132 let addrMode = BaseRegOffset;
23133 let accessSize = HalfWordAccess;
23134 let mayStore = 1;
23135 let CextOpcode = "S2_storerf";
23136 let InputType = "reg";
23137 let BaseOpcode = "S4_storerf_rr";
23138 }
23139 def S4_pstorerftnew_abs : HInst<
23140 (outs),
23141 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23142 "if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23143 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23144 let Inst{2-2} = 0b0;
23145 let Inst{7-7} = 0b1;
23146 let Inst{13-13} = 0b1;
23147 let Inst{31-18} = 0b10101111011000;
23148 let isPredicated = 1;
23149 let addrMode = Absolute;
23150 let accessSize = HalfWordAccess;
23151 let isPredicatedNew = 1;
23152 let isExtended = 1;
23153 let mayStore = 1;
23154 let CextOpcode = "S2_storerf";
23155 let BaseOpcode = "S2_storerfabs";
23156 let DecoderNamespace = "MustExtend";
23157 let isExtendable = 1;
23158 let opExtendable = 1;
23159 let isExtentSigned = 0;
23160 let opExtentBits = 6;
23161 let opExtentAlign = 0;
23162 }
23163 def S4_pstorerftnew_io : HInst<
23164 (outs),
23165 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23166 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23167 tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23168 let Inst{2-2} = 0b0;
23169 let Inst{31-21} = 0b01000010011;
23170 let isPredicated = 1;
23171 let addrMode = BaseImmOffset;
23172 let accessSize = HalfWordAccess;
23173 let isPredicatedNew = 1;
23174 let mayStore = 1;
23175 let CextOpcode = "S2_storerf";
23176 let InputType = "imm";
23177 let BaseOpcode = "S2_storerf_io";
23178 let isExtendable = 1;
23179 let opExtendable = 2;
23180 let isExtentSigned = 0;
23181 let opExtentBits = 7;
23182 let opExtentAlign = 1;
23183 }
23184 def S4_pstorerftnew_rr : HInst<
23185 (outs),
23186 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23187 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23188 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23189 let Inst{31-21} = 0b00110110011;
23190 let isPredicated = 1;
23191 let addrMode = BaseRegOffset;
23192 let accessSize = HalfWordAccess;
23193 let isPredicatedNew = 1;
23194 let mayStore = 1;
23195 let CextOpcode = "S2_storerf";
23196 let InputType = "reg";
23197 let BaseOpcode = "S4_storerf_rr";
23198 }
23199 def S4_pstorerftnew_zomap : HInst<
23200 (outs),
23201 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23202 "if ($Pv4.new) memh($Rs32) = $Rt32.h",
23203 tc_da97ee82, TypeMAPPING> {
23204 let isPseudo = 1;
23205 let isCodeGenOnly = 1;
23206 }
23207 def S4_pstorerhf_abs : HInst<
23208 (outs),
23209 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23210 "if (!$Pv4) memh(#$Ii) = $Rt32",
23211 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23212 let Inst{2-2} = 0b1;
23213 let Inst{7-7} = 0b1;
23214 let Inst{13-13} = 0b0;
23215 let Inst{31-18} = 0b10101111010000;
23216 let isPredicated = 1;
23217 let isPredicatedFalse = 1;
23218 let addrMode = Absolute;
23219 let accessSize = HalfWordAccess;
23220 let isExtended = 1;
23221 let mayStore = 1;
23222 let CextOpcode = "S2_storerh";
23223 let BaseOpcode = "S2_storerhabs";
23224 let isNVStorable = 1;
23225 let DecoderNamespace = "MustExtend";
23226 let isExtendable = 1;
23227 let opExtendable = 1;
23228 let isExtentSigned = 0;
23229 let opExtentBits = 6;
23230 let opExtentAlign = 0;
23231 }
23232 def S4_pstorerhf_rr : HInst<
23233 (outs),
23234 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23235 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23236 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23237 let Inst{31-21} = 0b00110101010;
23238 let isPredicated = 1;
23239 let isPredicatedFalse = 1;
23240 let addrMode = BaseRegOffset;
23241 let accessSize = HalfWordAccess;
23242 let mayStore = 1;
23243 let CextOpcode = "S2_storerh";
23244 let InputType = "reg";
23245 let BaseOpcode = "S2_storerh_rr";
23246 let isNVStorable = 1;
23247 }
23248 def S4_pstorerhfnew_abs : HInst<
23249 (outs),
23250 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23251 "if (!$Pv4.new) memh(#$Ii) = $Rt32",
23252 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23253 let Inst{2-2} = 0b1;
23254 let Inst{7-7} = 0b1;
23255 let Inst{13-13} = 0b1;
23256 let Inst{31-18} = 0b10101111010000;
23257 let isPredicated = 1;
23258 let isPredicatedFalse = 1;
23259 let addrMode = Absolute;
23260 let accessSize = HalfWordAccess;
23261 let isPredicatedNew = 1;
23262 let isExtended = 1;
23263 let mayStore = 1;
23264 let CextOpcode = "S2_storerh";
23265 let BaseOpcode = "S2_storerhabs";
23266 let isNVStorable = 1;
23267 let DecoderNamespace = "MustExtend";
23268 let isExtendable = 1;
23269 let opExtendable = 1;
23270 let isExtentSigned = 0;
23271 let opExtentBits = 6;
23272 let opExtentAlign = 0;
23273 }
23274 def S4_pstorerhfnew_io : HInst<
23275 (outs),
23276 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23277 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23278 tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23279 let Inst{2-2} = 0b0;
23280 let Inst{31-21} = 0b01000110010;
23281 let isPredicated = 1;
23282 let isPredicatedFalse = 1;
23283 let addrMode = BaseImmOffset;
23284 let accessSize = HalfWordAccess;
23285 let isPredicatedNew = 1;
23286 let mayStore = 1;
23287 let CextOpcode = "S2_storerh";
23288 let InputType = "imm";
23289 let BaseOpcode = "S2_storerh_io";
23290 let isNVStorable = 1;
23291 let isExtendable = 1;
23292 let opExtendable = 2;
23293 let isExtentSigned = 0;
23294 let opExtentBits = 7;
23295 let opExtentAlign = 1;
23296 }
23297 def S4_pstorerhfnew_rr : HInst<
23298 (outs),
23299 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23300 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23301 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23302 let Inst{31-21} = 0b00110111010;
23303 let isPredicated = 1;
23304 let isPredicatedFalse = 1;
23305 let addrMode = BaseRegOffset;
23306 let accessSize = HalfWordAccess;
23307 let isPredicatedNew = 1;
23308 let mayStore = 1;
23309 let CextOpcode = "S2_storerh";
23310 let InputType = "reg";
23311 let BaseOpcode = "S2_storerh_rr";
23312 let isNVStorable = 1;
23313 }
23314 def S4_pstorerhfnew_zomap : HInst<
23315 (outs),
23316 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23317 "if (!$Pv4.new) memh($Rs32) = $Rt32",
23318 tc_da97ee82, TypeMAPPING> {
23319 let isPseudo = 1;
23320 let isCodeGenOnly = 1;
23321 }
23322 def S4_pstorerhnewf_abs : HInst<
23323 (outs),
23324 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23325 "if (!$Pv4) memh(#$Ii) = $Nt8.new",
23326 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23327 let Inst{2-2} = 0b1;
23328 let Inst{7-7} = 0b1;
23329 let Inst{13-11} = 0b001;
23330 let Inst{31-18} = 0b10101111101000;
23331 let isPredicated = 1;
23332 let isPredicatedFalse = 1;
23333 let addrMode = Absolute;
23334 let accessSize = HalfWordAccess;
23335 let isNVStore = 1;
23336 let isNewValue = 1;
23337 let isExtended = 1;
23338 let isRestrictNoSlot1Store = 1;
23339 let mayStore = 1;
23340 let CextOpcode = "S2_storerh";
23341 let BaseOpcode = "S2_storerhabs";
23342 let DecoderNamespace = "MustExtend";
23343 let isExtendable = 1;
23344 let opExtendable = 1;
23345 let isExtentSigned = 0;
23346 let opExtentBits = 6;
23347 let opExtentAlign = 0;
23348 let opNewValue = 2;
23349 }
23350 def S4_pstorerhnewf_rr : HInst<
23351 (outs),
23352 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23353 "if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23354 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23355 let Inst{4-3} = 0b01;
23356 let Inst{31-21} = 0b00110101101;
23357 let isPredicated = 1;
23358 let isPredicatedFalse = 1;
23359 let addrMode = BaseRegOffset;
23360 let accessSize = HalfWordAccess;
23361 let isNVStore = 1;
23362 let isNewValue = 1;
23363 let isRestrictNoSlot1Store = 1;
23364 let mayStore = 1;
23365 let CextOpcode = "S2_storerh";
23366 let InputType = "reg";
23367 let BaseOpcode = "S2_storerh_rr";
23368 let opNewValue = 4;
23369 }
23370 def S4_pstorerhnewfnew_abs : HInst<
23371 (outs),
23372 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23373 "if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23374 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23375 let Inst{2-2} = 0b1;
23376 let Inst{7-7} = 0b1;
23377 let Inst{13-11} = 0b101;
23378 let Inst{31-18} = 0b10101111101000;
23379 let isPredicated = 1;
23380 let isPredicatedFalse = 1;
23381 let addrMode = Absolute;
23382 let accessSize = HalfWordAccess;
23383 let isNVStore = 1;
23384 let isPredicatedNew = 1;
23385 let isNewValue = 1;
23386 let isExtended = 1;
23387 let isRestrictNoSlot1Store = 1;
23388 let mayStore = 1;
23389 let CextOpcode = "S2_storerh";
23390 let BaseOpcode = "S2_storerhabs";
23391 let DecoderNamespace = "MustExtend";
23392 let isExtendable = 1;
23393 let opExtendable = 1;
23394 let isExtentSigned = 0;
23395 let opExtentBits = 6;
23396 let opExtentAlign = 0;
23397 let opNewValue = 2;
23398 }
23399 def S4_pstorerhnewfnew_io : HInst<
23400 (outs),
23401 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23402 "if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23403 tc_c79a189f, TypeV2LDST>, Enc_f44229, AddrModeRel {
23404 let Inst{2-2} = 0b0;
23405 let Inst{12-11} = 0b01;
23406 let Inst{31-21} = 0b01000110101;
23407 let isPredicated = 1;
23408 let isPredicatedFalse = 1;
23409 let addrMode = BaseImmOffset;
23410 let accessSize = HalfWordAccess;
23411 let isNVStore = 1;
23412 let isPredicatedNew = 1;
23413 let isNewValue = 1;
23414 let isRestrictNoSlot1Store = 1;
23415 let mayStore = 1;
23416 let CextOpcode = "S2_storerh";
23417 let InputType = "imm";
23418 let BaseOpcode = "S2_storerh_io";
23419 let isExtendable = 1;
23420 let opExtendable = 2;
23421 let isExtentSigned = 0;
23422 let opExtentBits = 7;
23423 let opExtentAlign = 1;
23424 let opNewValue = 3;
23425 }
23426 def S4_pstorerhnewfnew_rr : HInst<
23427 (outs),
23428 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23429 "if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23430 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23431 let Inst{4-3} = 0b01;
23432 let Inst{31-21} = 0b00110111101;
23433 let isPredicated = 1;
23434 let isPredicatedFalse = 1;
23435 let addrMode = BaseRegOffset;
23436 let accessSize = HalfWordAccess;
23437 let isNVStore = 1;
23438 let isPredicatedNew = 1;
23439 let isNewValue = 1;
23440 let isRestrictNoSlot1Store = 1;
23441 let mayStore = 1;
23442 let CextOpcode = "S2_storerh";
23443 let InputType = "reg";
23444 let BaseOpcode = "S2_storerh_rr";
23445 let opNewValue = 4;
23446 }
23447 def S4_pstorerhnewfnew_zomap : HInst<
23448 (outs),
23449 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23450 "if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23451 tc_c79a189f, TypeMAPPING> {
23452 let isPseudo = 1;
23453 let isCodeGenOnly = 1;
23454 let opNewValue = 2;
23455 }
23456 def S4_pstorerhnewt_abs : HInst<
23457 (outs),
23458 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23459 "if ($Pv4) memh(#$Ii) = $Nt8.new",
23460 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23461 let Inst{2-2} = 0b0;
23462 let Inst{7-7} = 0b1;
23463 let Inst{13-11} = 0b001;
23464 let Inst{31-18} = 0b10101111101000;
23465 let isPredicated = 1;
23466 let addrMode = Absolute;
23467 let accessSize = HalfWordAccess;
23468 let isNVStore = 1;
23469 let isNewValue = 1;
23470 let isExtended = 1;
23471 let isRestrictNoSlot1Store = 1;
23472 let mayStore = 1;
23473 let CextOpcode = "S2_storerh";
23474 let BaseOpcode = "S2_storerhabs";
23475 let DecoderNamespace = "MustExtend";
23476 let isExtendable = 1;
23477 let opExtendable = 1;
23478 let isExtentSigned = 0;
23479 let opExtentBits = 6;
23480 let opExtentAlign = 0;
23481 let opNewValue = 2;
23482 }
23483 def S4_pstorerhnewt_rr : HInst<
23484 (outs),
23485 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23486 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23487 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23488 let Inst{4-3} = 0b01;
23489 let Inst{31-21} = 0b00110100101;
23490 let isPredicated = 1;
23491 let addrMode = BaseRegOffset;
23492 let accessSize = HalfWordAccess;
23493 let isNVStore = 1;
23494 let isNewValue = 1;
23495 let isRestrictNoSlot1Store = 1;
23496 let mayStore = 1;
23497 let CextOpcode = "S2_storerh";
23498 let InputType = "reg";
23499 let BaseOpcode = "S2_storerh_rr";
23500 let opNewValue = 4;
23501 }
23502 def S4_pstorerhnewtnew_abs : HInst<
23503 (outs),
23504 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23505 "if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23506 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23507 let Inst{2-2} = 0b0;
23508 let Inst{7-7} = 0b1;
23509 let Inst{13-11} = 0b101;
23510 let Inst{31-18} = 0b10101111101000;
23511 let isPredicated = 1;
23512 let addrMode = Absolute;
23513 let accessSize = HalfWordAccess;
23514 let isNVStore = 1;
23515 let isPredicatedNew = 1;
23516 let isNewValue = 1;
23517 let isExtended = 1;
23518 let isRestrictNoSlot1Store = 1;
23519 let mayStore = 1;
23520 let CextOpcode = "S2_storerh";
23521 let BaseOpcode = "S2_storerhabs";
23522 let DecoderNamespace = "MustExtend";
23523 let isExtendable = 1;
23524 let opExtendable = 1;
23525 let isExtentSigned = 0;
23526 let opExtentBits = 6;
23527 let opExtentAlign = 0;
23528 let opNewValue = 2;
23529 }
23530 def S4_pstorerhnewtnew_io : HInst<
23531 (outs),
23532 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23533 "if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23534 tc_c79a189f, TypeV2LDST>, Enc_f44229, AddrModeRel {
23535 let Inst{2-2} = 0b0;
23536 let Inst{12-11} = 0b01;
23537 let Inst{31-21} = 0b01000010101;
23538 let isPredicated = 1;
23539 let addrMode = BaseImmOffset;
23540 let accessSize = HalfWordAccess;
23541 let isNVStore = 1;
23542 let isPredicatedNew = 1;
23543 let isNewValue = 1;
23544 let isRestrictNoSlot1Store = 1;
23545 let mayStore = 1;
23546 let CextOpcode = "S2_storerh";
23547 let InputType = "imm";
23548 let BaseOpcode = "S2_storerh_io";
23549 let isExtendable = 1;
23550 let opExtendable = 2;
23551 let isExtentSigned = 0;
23552 let opExtentBits = 7;
23553 let opExtentAlign = 1;
23554 let opNewValue = 3;
23555 }
23556 def S4_pstorerhnewtnew_rr : HInst<
23557 (outs),
23558 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23559 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23560 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23561 let Inst{4-3} = 0b01;
23562 let Inst{31-21} = 0b00110110101;
23563 let isPredicated = 1;
23564 let addrMode = BaseRegOffset;
23565 let accessSize = HalfWordAccess;
23566 let isNVStore = 1;
23567 let isPredicatedNew = 1;
23568 let isNewValue = 1;
23569 let isRestrictNoSlot1Store = 1;
23570 let mayStore = 1;
23571 let CextOpcode = "S2_storerh";
23572 let InputType = "reg";
23573 let BaseOpcode = "S2_storerh_rr";
23574 let opNewValue = 4;
23575 }
23576 def S4_pstorerhnewtnew_zomap : HInst<
23577 (outs),
23578 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23579 "if ($Pv4.new) memh($Rs32) = $Nt8.new",
23580 tc_c79a189f, TypeMAPPING> {
23581 let isPseudo = 1;
23582 let isCodeGenOnly = 1;
23583 let opNewValue = 2;
23584 }
23585 def S4_pstorerht_abs : HInst<
23586 (outs),
23587 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23588 "if ($Pv4) memh(#$Ii) = $Rt32",
23589 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23590 let Inst{2-2} = 0b0;
23591 let Inst{7-7} = 0b1;
23592 let Inst{13-13} = 0b0;
23593 let Inst{31-18} = 0b10101111010000;
23594 let isPredicated = 1;
23595 let addrMode = Absolute;
23596 let accessSize = HalfWordAccess;
23597 let isExtended = 1;
23598 let mayStore = 1;
23599 let CextOpcode = "S2_storerh";
23600 let BaseOpcode = "S2_storerhabs";
23601 let isNVStorable = 1;
23602 let DecoderNamespace = "MustExtend";
23603 let isExtendable = 1;
23604 let opExtendable = 1;
23605 let isExtentSigned = 0;
23606 let opExtentBits = 6;
23607 let opExtentAlign = 0;
23608 }
23609 def S4_pstorerht_rr : HInst<
23610 (outs),
23611 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23612 "if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23613 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23614 let Inst{31-21} = 0b00110100010;
23615 let isPredicated = 1;
23616 let addrMode = BaseRegOffset;
23617 let accessSize = HalfWordAccess;
23618 let mayStore = 1;
23619 let CextOpcode = "S2_storerh";
23620 let InputType = "reg";
23621 let BaseOpcode = "S2_storerh_rr";
23622 let isNVStorable = 1;
23623 }
23624 def S4_pstorerhtnew_abs : HInst<
23625 (outs),
23626 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23627 "if ($Pv4.new) memh(#$Ii) = $Rt32",
23628 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23629 let Inst{2-2} = 0b0;
23630 let Inst{7-7} = 0b1;
23631 let Inst{13-13} = 0b1;
23632 let Inst{31-18} = 0b10101111010000;
23633 let isPredicated = 1;
23634 let addrMode = Absolute;
23635 let accessSize = HalfWordAccess;
23636 let isPredicatedNew = 1;
23637 let isExtended = 1;
23638 let mayStore = 1;
23639 let CextOpcode = "S2_storerh";
23640 let BaseOpcode = "S2_storerhabs";
23641 let isNVStorable = 1;
23642 let DecoderNamespace = "MustExtend";
23643 let isExtendable = 1;
23644 let opExtendable = 1;
23645 let isExtentSigned = 0;
23646 let opExtentBits = 6;
23647 let opExtentAlign = 0;
23648 }
23649 def S4_pstorerhtnew_io : HInst<
23650 (outs),
23651 (ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23652 "if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23653 tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23654 let Inst{2-2} = 0b0;
23655 let Inst{31-21} = 0b01000010010;
23656 let isPredicated = 1;
23657 let addrMode = BaseImmOffset;
23658 let accessSize = HalfWordAccess;
23659 let isPredicatedNew = 1;
23660 let mayStore = 1;
23661 let CextOpcode = "S2_storerh";
23662 let InputType = "imm";
23663 let BaseOpcode = "S2_storerh_io";
23664 let isNVStorable = 1;
23665 let isExtendable = 1;
23666 let opExtendable = 2;
23667 let isExtentSigned = 0;
23668 let opExtentBits = 7;
23669 let opExtentAlign = 1;
23670 }
23671 def S4_pstorerhtnew_rr : HInst<
23672 (outs),
23673 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23674 "if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23675 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23676 let Inst{31-21} = 0b00110110010;
23677 let isPredicated = 1;
23678 let addrMode = BaseRegOffset;
23679 let accessSize = HalfWordAccess;
23680 let isPredicatedNew = 1;
23681 let mayStore = 1;
23682 let CextOpcode = "S2_storerh";
23683 let InputType = "reg";
23684 let BaseOpcode = "S2_storerh_rr";
23685 let isNVStorable = 1;
23686 }
23687 def S4_pstorerhtnew_zomap : HInst<
23688 (outs),
23689 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23690 "if ($Pv4.new) memh($Rs32) = $Rt32",
23691 tc_da97ee82, TypeMAPPING> {
23692 let isPseudo = 1;
23693 let isCodeGenOnly = 1;
23694 }
23695 def S4_pstorerif_abs : HInst<
23696 (outs),
23697 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23698 "if (!$Pv4) memw(#$Ii) = $Rt32",
23699 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23700 let Inst{2-2} = 0b1;
23701 let Inst{7-7} = 0b1;
23702 let Inst{13-13} = 0b0;
23703 let Inst{31-18} = 0b10101111100000;
23704 let isPredicated = 1;
23705 let isPredicatedFalse = 1;
23706 let addrMode = Absolute;
23707 let accessSize = WordAccess;
23708 let isExtended = 1;
23709 let mayStore = 1;
23710 let CextOpcode = "S2_storeri";
23711 let BaseOpcode = "S2_storeriabs";
23712 let isNVStorable = 1;
23713 let DecoderNamespace = "MustExtend";
23714 let isExtendable = 1;
23715 let opExtendable = 1;
23716 let isExtentSigned = 0;
23717 let opExtentBits = 6;
23718 let opExtentAlign = 0;
23719 }
23720 def S4_pstorerif_rr : HInst<
23721 (outs),
23722 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23723 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23724 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23725 let Inst{31-21} = 0b00110101100;
23726 let isPredicated = 1;
23727 let isPredicatedFalse = 1;
23728 let addrMode = BaseRegOffset;
23729 let accessSize = WordAccess;
23730 let mayStore = 1;
23731 let CextOpcode = "S2_storeri";
23732 let InputType = "reg";
23733 let BaseOpcode = "S2_storeri_rr";
23734 let isNVStorable = 1;
23735 }
23736 def S4_pstorerifnew_abs : HInst<
23737 (outs),
23738 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23739 "if (!$Pv4.new) memw(#$Ii) = $Rt32",
23740 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23741 let Inst{2-2} = 0b1;
23742 let Inst{7-7} = 0b1;
23743 let Inst{13-13} = 0b1;
23744 let Inst{31-18} = 0b10101111100000;
23745 let isPredicated = 1;
23746 let isPredicatedFalse = 1;
23747 let addrMode = Absolute;
23748 let accessSize = WordAccess;
23749 let isPredicatedNew = 1;
23750 let isExtended = 1;
23751 let mayStore = 1;
23752 let CextOpcode = "S2_storeri";
23753 let BaseOpcode = "S2_storeriabs";
23754 let isNVStorable = 1;
23755 let DecoderNamespace = "MustExtend";
23756 let isExtendable = 1;
23757 let opExtendable = 1;
23758 let isExtentSigned = 0;
23759 let opExtentBits = 6;
23760 let opExtentAlign = 0;
23761 }
23762 def S4_pstorerifnew_io : HInst<
23763 (outs),
23764 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
23765 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
23766 tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel {
23767 let Inst{2-2} = 0b0;
23768 let Inst{31-21} = 0b01000110100;
23769 let isPredicated = 1;
23770 let isPredicatedFalse = 1;
23771 let addrMode = BaseImmOffset;
23772 let accessSize = WordAccess;
23773 let isPredicatedNew = 1;
23774 let mayStore = 1;
23775 let CextOpcode = "S2_storeri";
23776 let InputType = "imm";
23777 let BaseOpcode = "S2_storeri_io";
23778 let isNVStorable = 1;
23779 let isExtendable = 1;
23780 let opExtendable = 2;
23781 let isExtentSigned = 0;
23782 let opExtentBits = 8;
23783 let opExtentAlign = 2;
23784 }
23785 def S4_pstorerifnew_rr : HInst<
23786 (outs),
23787 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23788 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23789 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23790 let Inst{31-21} = 0b00110111100;
23791 let isPredicated = 1;
23792 let isPredicatedFalse = 1;
23793 let addrMode = BaseRegOffset;
23794 let accessSize = WordAccess;
23795 let isPredicatedNew = 1;
23796 let mayStore = 1;
23797 let CextOpcode = "S2_storeri";
23798 let InputType = "reg";
23799 let BaseOpcode = "S2_storeri_rr";
23800 let isNVStorable = 1;
23801 }
23802 def S4_pstorerifnew_zomap : HInst<
23803 (outs),
23804 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23805 "if (!$Pv4.new) memw($Rs32) = $Rt32",
23806 tc_da97ee82, TypeMAPPING> {
23807 let isPseudo = 1;
23808 let isCodeGenOnly = 1;
23809 }
23810 def S4_pstorerinewf_abs : HInst<
23811 (outs),
23812 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23813 "if (!$Pv4) memw(#$Ii) = $Nt8.new",
23814 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23815 let Inst{2-2} = 0b1;
23816 let Inst{7-7} = 0b1;
23817 let Inst{13-11} = 0b010;
23818 let Inst{31-18} = 0b10101111101000;
23819 let isPredicated = 1;
23820 let isPredicatedFalse = 1;
23821 let addrMode = Absolute;
23822 let accessSize = WordAccess;
23823 let isNVStore = 1;
23824 let isNewValue = 1;
23825 let isExtended = 1;
23826 let isRestrictNoSlot1Store = 1;
23827 let mayStore = 1;
23828 let CextOpcode = "S2_storeri";
23829 let BaseOpcode = "S2_storeriabs";
23830 let DecoderNamespace = "MustExtend";
23831 let isExtendable = 1;
23832 let opExtendable = 1;
23833 let isExtentSigned = 0;
23834 let opExtentBits = 6;
23835 let opExtentAlign = 0;
23836 let opNewValue = 2;
23837 }
23838 def S4_pstorerinewf_rr : HInst<
23839 (outs),
23840 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23841 "if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23842 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23843 let Inst{4-3} = 0b10;
23844 let Inst{31-21} = 0b00110101101;
23845 let isPredicated = 1;
23846 let isPredicatedFalse = 1;
23847 let addrMode = BaseRegOffset;
23848 let accessSize = WordAccess;
23849 let isNVStore = 1;
23850 let isNewValue = 1;
23851 let isRestrictNoSlot1Store = 1;
23852 let mayStore = 1;
23853 let CextOpcode = "S2_storeri";
23854 let InputType = "reg";
23855 let BaseOpcode = "S2_storeri_rr";
23856 let opNewValue = 4;
23857 }
23858 def S4_pstorerinewfnew_abs : HInst<
23859 (outs),
23860 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23861 "if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
23862 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23863 let Inst{2-2} = 0b1;
23864 let Inst{7-7} = 0b1;
23865 let Inst{13-11} = 0b110;
23866 let Inst{31-18} = 0b10101111101000;
23867 let isPredicated = 1;
23868 let isPredicatedFalse = 1;
23869 let addrMode = Absolute;
23870 let accessSize = WordAccess;
23871 let isNVStore = 1;
23872 let isPredicatedNew = 1;
23873 let isNewValue = 1;
23874 let isExtended = 1;
23875 let isRestrictNoSlot1Store = 1;
23876 let mayStore = 1;
23877 let CextOpcode = "S2_storeri";
23878 let BaseOpcode = "S2_storeriabs";
23879 let DecoderNamespace = "MustExtend";
23880 let isExtendable = 1;
23881 let opExtendable = 1;
23882 let isExtentSigned = 0;
23883 let opExtentBits = 6;
23884 let opExtentAlign = 0;
23885 let opNewValue = 2;
23886 }
23887 def S4_pstorerinewfnew_io : HInst<
23888 (outs),
23889 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
23890 "if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
23891 tc_c79a189f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
23892 let Inst{2-2} = 0b0;
23893 let Inst{12-11} = 0b10;
23894 let Inst{31-21} = 0b01000110101;
23895 let isPredicated = 1;
23896 let isPredicatedFalse = 1;
23897 let addrMode = BaseImmOffset;
23898 let accessSize = WordAccess;
23899 let isNVStore = 1;
23900 let isPredicatedNew = 1;
23901 let isNewValue = 1;
23902 let isRestrictNoSlot1Store = 1;
23903 let mayStore = 1;
23904 let CextOpcode = "S2_storeri";
23905 let InputType = "imm";
23906 let BaseOpcode = "S2_storeri_io";
23907 let isExtendable = 1;
23908 let opExtendable = 2;
23909 let isExtentSigned = 0;
23910 let opExtentBits = 8;
23911 let opExtentAlign = 2;
23912 let opNewValue = 3;
23913 }
23914 def S4_pstorerinewfnew_rr : HInst<
23915 (outs),
23916 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23917 "if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23918 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23919 let Inst{4-3} = 0b10;
23920 let Inst{31-21} = 0b00110111101;
23921 let isPredicated = 1;
23922 let isPredicatedFalse = 1;
23923 let addrMode = BaseRegOffset;
23924 let accessSize = WordAccess;
23925 let isNVStore = 1;
23926 let isPredicatedNew = 1;
23927 let isNewValue = 1;
23928 let isRestrictNoSlot1Store = 1;
23929 let mayStore = 1;
23930 let CextOpcode = "S2_storeri";
23931 let InputType = "reg";
23932 let BaseOpcode = "S2_storeri_rr";
23933 let opNewValue = 4;
23934 }
23935 def S4_pstorerinewfnew_zomap : HInst<
23936 (outs),
23937 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23938 "if (!$Pv4.new) memw($Rs32) = $Nt8.new",
23939 tc_c79a189f, TypeMAPPING> {
23940 let isPseudo = 1;
23941 let isCodeGenOnly = 1;
23942 let opNewValue = 2;
23943 }
23944 def S4_pstorerinewt_abs : HInst<
23945 (outs),
23946 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23947 "if ($Pv4) memw(#$Ii) = $Nt8.new",
23948 tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23949 let Inst{2-2} = 0b0;
23950 let Inst{7-7} = 0b1;
23951 let Inst{13-11} = 0b010;
23952 let Inst{31-18} = 0b10101111101000;
23953 let isPredicated = 1;
23954 let addrMode = Absolute;
23955 let accessSize = WordAccess;
23956 let isNVStore = 1;
23957 let isNewValue = 1;
23958 let isExtended = 1;
23959 let isRestrictNoSlot1Store = 1;
23960 let mayStore = 1;
23961 let CextOpcode = "S2_storeri";
23962 let BaseOpcode = "S2_storeriabs";
23963 let DecoderNamespace = "MustExtend";
23964 let isExtendable = 1;
23965 let opExtendable = 1;
23966 let isExtentSigned = 0;
23967 let opExtentBits = 6;
23968 let opExtentAlign = 0;
23969 let opNewValue = 2;
23970 }
23971 def S4_pstorerinewt_rr : HInst<
23972 (outs),
23973 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23974 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23975 tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23976 let Inst{4-3} = 0b10;
23977 let Inst{31-21} = 0b00110100101;
23978 let isPredicated = 1;
23979 let addrMode = BaseRegOffset;
23980 let accessSize = WordAccess;
23981 let isNVStore = 1;
23982 let isNewValue = 1;
23983 let isRestrictNoSlot1Store = 1;
23984 let mayStore = 1;
23985 let CextOpcode = "S2_storeri";
23986 let InputType = "reg";
23987 let BaseOpcode = "S2_storeri_rr";
23988 let opNewValue = 4;
23989 }
23990 def S4_pstorerinewtnew_abs : HInst<
23991 (outs),
23992 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23993 "if ($Pv4.new) memw(#$Ii) = $Nt8.new",
23994 tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23995 let Inst{2-2} = 0b0;
23996 let Inst{7-7} = 0b1;
23997 let Inst{13-11} = 0b110;
23998 let Inst{31-18} = 0b10101111101000;
23999 let isPredicated = 1;
24000 let addrMode = Absolute;
24001 let accessSize = WordAccess;
24002 let isNVStore = 1;
24003 let isPredicatedNew = 1;
24004 let isNewValue = 1;
24005 let isExtended = 1;
24006 let isRestrictNoSlot1Store = 1;
24007 let mayStore = 1;
24008 let CextOpcode = "S2_storeri";
24009 let BaseOpcode = "S2_storeriabs";
24010 let DecoderNamespace = "MustExtend";
24011 let isExtendable = 1;
24012 let opExtendable = 1;
24013 let isExtentSigned = 0;
24014 let opExtentBits = 6;
24015 let opExtentAlign = 0;
24016 let opNewValue = 2;
24017 }
24018 def S4_pstorerinewtnew_io : HInst<
24019 (outs),
24020 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24021 "if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24022 tc_c79a189f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24023 let Inst{2-2} = 0b0;
24024 let Inst{12-11} = 0b10;
24025 let Inst{31-21} = 0b01000010101;
24026 let isPredicated = 1;
24027 let addrMode = BaseImmOffset;
24028 let accessSize = WordAccess;
24029 let isNVStore = 1;
24030 let isPredicatedNew = 1;
24031 let isNewValue = 1;
24032 let isRestrictNoSlot1Store = 1;
24033 let mayStore = 1;
24034 let CextOpcode = "S2_storeri";
24035 let InputType = "imm";
24036 let BaseOpcode = "S2_storeri_io";
24037 let isExtendable = 1;
24038 let opExtendable = 2;
24039 let isExtentSigned = 0;
24040 let opExtentBits = 8;
24041 let opExtentAlign = 2;
24042 let opNewValue = 3;
24043 }
24044 def S4_pstorerinewtnew_rr : HInst<
24045 (outs),
24046 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24047 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24048 tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
24049 let Inst{4-3} = 0b10;
24050 let Inst{31-21} = 0b00110110101;
24051 let isPredicated = 1;
24052 let addrMode = BaseRegOffset;
24053 let accessSize = WordAccess;
24054 let isNVStore = 1;
24055 let isPredicatedNew = 1;
24056 let isNewValue = 1;
24057 let isRestrictNoSlot1Store = 1;
24058 let mayStore = 1;
24059 let CextOpcode = "S2_storeri";
24060 let InputType = "reg";
24061 let BaseOpcode = "S2_storeri_rr";
24062 let opNewValue = 4;
24063 }
24064 def S4_pstorerinewtnew_zomap : HInst<
24065 (outs),
24066 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24067 "if ($Pv4.new) memw($Rs32) = $Nt8.new",
24068 tc_c79a189f, TypeMAPPING> {
24069 let isPseudo = 1;
24070 let isCodeGenOnly = 1;
24071 let opNewValue = 2;
24072 }
24073 def S4_pstorerit_abs : HInst<
24074 (outs),
24075 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24076 "if ($Pv4) memw(#$Ii) = $Rt32",
24077 tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
24078 let Inst{2-2} = 0b0;
24079 let Inst{7-7} = 0b1;
24080 let Inst{13-13} = 0b0;
24081 let Inst{31-18} = 0b10101111100000;
24082 let isPredicated = 1;
24083 let addrMode = Absolute;
24084 let accessSize = WordAccess;
24085 let isExtended = 1;
24086 let mayStore = 1;
24087 let CextOpcode = "S2_storeri";
24088 let BaseOpcode = "S2_storeriabs";
24089 let isNVStorable = 1;
24090 let DecoderNamespace = "MustExtend";
24091 let isExtendable = 1;
24092 let opExtendable = 1;
24093 let isExtentSigned = 0;
24094 let opExtentBits = 6;
24095 let opExtentAlign = 0;
24096 }
24097 def S4_pstorerit_rr : HInst<
24098 (outs),
24099 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24100 "if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24101 tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
24102 let Inst{31-21} = 0b00110100100;
24103 let isPredicated = 1;
24104 let addrMode = BaseRegOffset;
24105 let accessSize = WordAccess;
24106 let mayStore = 1;
24107 let CextOpcode = "S2_storeri";
24108 let InputType = "reg";
24109 let BaseOpcode = "S2_storeri_rr";
24110 let isNVStorable = 1;
24111 }
24112 def S4_pstoreritnew_abs : HInst<
24113 (outs),
24114 (ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24115 "if ($Pv4.new) memw(#$Ii) = $Rt32",
24116 tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
24117 let Inst{2-2} = 0b0;
24118 let Inst{7-7} = 0b1;
24119 let Inst{13-13} = 0b1;
24120 let Inst{31-18} = 0b10101111100000;
24121 let isPredicated = 1;
24122 let addrMode = Absolute;
24123 let accessSize = WordAccess;
24124 let isPredicatedNew = 1;
24125 let isExtended = 1;
24126 let mayStore = 1;
24127 let CextOpcode = "S2_storeri";
24128 let BaseOpcode = "S2_storeriabs";
24129 let isNVStorable = 1;
24130 let DecoderNamespace = "MustExtend";
24131 let isExtendable = 1;
24132 let opExtendable = 1;
24133 let isExtentSigned = 0;
24134 let opExtentBits = 6;
24135 let opExtentAlign = 0;
24136 }
24137 def S4_pstoreritnew_io : HInst<
24138 (outs),
24139 (ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24140 "if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24141 tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel {
24142 let Inst{2-2} = 0b0;
24143 let Inst{31-21} = 0b01000010100;
24144 let isPredicated = 1;
24145 let addrMode = BaseImmOffset;
24146 let accessSize = WordAccess;
24147 let isPredicatedNew = 1;
24148 let mayStore = 1;
24149 let CextOpcode = "S2_storeri";
24150 let InputType = "imm";
24151 let BaseOpcode = "S2_storeri_io";
24152 let isNVStorable = 1;
24153 let isExtendable = 1;
24154 let opExtendable = 2;
24155 let isExtentSigned = 0;
24156 let opExtentBits = 8;
24157 let opExtentAlign = 2;
24158 }
24159 def S4_pstoreritnew_rr : HInst<
24160 (outs),
24161 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24162 "if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24163 tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
24164 let Inst{31-21} = 0b00110110100;
24165 let isPredicated = 1;
24166 let addrMode = BaseRegOffset;
24167 let accessSize = WordAccess;
24168 let isPredicatedNew = 1;
24169 let mayStore = 1;
24170 let CextOpcode = "S2_storeri";
24171 let InputType = "reg";
24172 let BaseOpcode = "S2_storeri_rr";
24173 let isNVStorable = 1;
24174 }
24175 def S4_pstoreritnew_zomap : HInst<
24176 (outs),
24177 (ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24178 "if ($Pv4.new) memw($Rs32) = $Rt32",
24179 tc_da97ee82, TypeMAPPING> {
24180 let isPseudo = 1;
24181 let isCodeGenOnly = 1;
24182 }
24183 def S4_stored_locked : HInst<
24184 (outs PredRegs:$Pd4),
24185 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24186 "memd_locked($Rs32,$Pd4) = $Rtt32",
24187 tc_5abb5e3f, TypeST>, Enc_d7dc10 {
24188 let Inst{7-2} = 0b000000;
24189 let Inst{13-13} = 0b0;
24190 let Inst{31-21} = 0b10100000111;
24191 let accessSize = DoubleWordAccess;
24192 let isPredicateLate = 1;
24193 let isSoloAX = 1;
24194 let mayStore = 1;
24195 }
24196 def S4_storeirb_io : HInst<
24197 (outs),
24198 (ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24199 "memb($Rs32+#$Ii) = #$II",
24200 tc_b83e6d73, TypeST>, Enc_8203bb, PredNewRel {
24201 let Inst{31-21} = 0b00111100000;
24202 let addrMode = BaseImmOffset;
24203 let accessSize = ByteAccess;
24204 let mayStore = 1;
24205 let CextOpcode = "S2_storerb";
24206 let InputType = "imm";
24207 let BaseOpcode = "S4_storeirb_io";
24208 let isPredicable = 1;
24209 let isExtendable = 1;
24210 let opExtendable = 2;
24211 let isExtentSigned = 1;
24212 let opExtentBits = 8;
24213 let opExtentAlign = 0;
24214 }
24215 def S4_storeirb_zomap : HInst<
24216 (outs),
24217 (ins IntRegs:$Rs32, s8_0Imm:$II),
24218 "memb($Rs32) = #$II",
24219 tc_b83e6d73, TypeMAPPING> {
24220 let isPseudo = 1;
24221 let isCodeGenOnly = 1;
24222 }
24223 def S4_storeirbf_io : HInst<
24224 (outs),
24225 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24226 "if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24227 tc_0b2be201, TypeST>, Enc_d7a65e, PredNewRel {
24228 let Inst{31-21} = 0b00111000100;
24229 let isPredicated = 1;
24230 let isPredicatedFalse = 1;
24231 let addrMode = BaseImmOffset;
24232 let accessSize = ByteAccess;
24233 let mayStore = 1;
24234 let CextOpcode = "S2_storerb";
24235 let InputType = "imm";
24236 let BaseOpcode = "S4_storeirb_io";
24237 let isExtendable = 1;
24238 let opExtendable = 3;
24239 let isExtentSigned = 1;
24240 let opExtentBits = 6;
24241 let opExtentAlign = 0;
24242 }
24243 def S4_storeirbf_zomap : HInst<
24244 (outs),
24245 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24246 "if (!$Pv4) memb($Rs32) = #$II",
24247 tc_0b2be201, TypeMAPPING> {
24248 let isPseudo = 1;
24249 let isCodeGenOnly = 1;
24250 }
24251 def S4_storeirbfnew_io : HInst<
24252 (outs),
24253 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24254 "if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24255 tc_c4f596e3, TypeST>, Enc_d7a65e, PredNewRel {
24256 let Inst{31-21} = 0b00111001100;
24257 let isPredicated = 1;
24258 let isPredicatedFalse = 1;
24259 let addrMode = BaseImmOffset;
24260 let accessSize = ByteAccess;
24261 let isPredicatedNew = 1;
24262 let mayStore = 1;
24263 let CextOpcode = "S2_storerb";
24264 let InputType = "imm";
24265 let BaseOpcode = "S4_storeirb_io";
24266 let isExtendable = 1;
24267 let opExtendable = 3;
24268 let isExtentSigned = 1;
24269 let opExtentBits = 6;
24270 let opExtentAlign = 0;
24271 }
24272 def S4_storeirbfnew_zomap : HInst<
24273 (outs),
24274 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24275 "if (!$Pv4.new) memb($Rs32) = #$II",
24276 tc_c4f596e3, TypeMAPPING> {
24277 let isPseudo = 1;
24278 let isCodeGenOnly = 1;
24279 }
24280 def S4_storeirbt_io : HInst<
24281 (outs),
24282 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24283 "if ($Pv4) memb($Rs32+#$Ii) = #$II",
24284 tc_0b2be201, TypeST>, Enc_d7a65e, PredNewRel {
24285 let Inst{31-21} = 0b00111000000;
24286 let isPredicated = 1;
24287 let addrMode = BaseImmOffset;
24288 let accessSize = ByteAccess;
24289 let mayStore = 1;
24290 let CextOpcode = "S2_storerb";
24291 let InputType = "imm";
24292 let BaseOpcode = "S4_storeirb_io";
24293 let isExtendable = 1;
24294 let opExtendable = 3;
24295 let isExtentSigned = 1;
24296 let opExtentBits = 6;
24297 let opExtentAlign = 0;
24298 }
24299 def S4_storeirbt_zomap : HInst<
24300 (outs),
24301 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24302 "if ($Pv4) memb($Rs32) = #$II",
24303 tc_0b2be201, TypeMAPPING> {
24304 let isPseudo = 1;
24305 let isCodeGenOnly = 1;
24306 }
24307 def S4_storeirbtnew_io : HInst<
24308 (outs),
24309 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24310 "if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24311 tc_c4f596e3, TypeST>, Enc_d7a65e, PredNewRel {
24312 let Inst{31-21} = 0b00111001000;
24313 let isPredicated = 1;
24314 let addrMode = BaseImmOffset;
24315 let accessSize = ByteAccess;
24316 let isPredicatedNew = 1;
24317 let mayStore = 1;
24318 let CextOpcode = "S2_storerb";
24319 let InputType = "imm";
24320 let BaseOpcode = "S4_storeirb_io";
24321 let isExtendable = 1;
24322 let opExtendable = 3;
24323 let isExtentSigned = 1;
24324 let opExtentBits = 6;
24325 let opExtentAlign = 0;
24326 }
24327 def S4_storeirbtnew_zomap : HInst<
24328 (outs),
24329 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24330 "if ($Pv4.new) memb($Rs32) = #$II",
24331 tc_c4f596e3, TypeMAPPING> {
24332 let isPseudo = 1;
24333 let isCodeGenOnly = 1;
24334 }
24335 def S4_storeirh_io : HInst<
24336 (outs),
24337 (ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24338 "memh($Rs32+#$Ii) = #$II",
24339 tc_b83e6d73, TypeST>, Enc_a803e0, PredNewRel {
24340 let Inst{31-21} = 0b00111100001;
24341 let addrMode = BaseImmOffset;
24342 let accessSize = HalfWordAccess;
24343 let mayStore = 1;
24344 let CextOpcode = "S2_storerh";
24345 let InputType = "imm";
24346 let BaseOpcode = "S4_storeirh_io";
24347 let isPredicable = 1;
24348 let isExtendable = 1;
24349 let opExtendable = 2;
24350 let isExtentSigned = 1;
24351 let opExtentBits = 8;
24352 let opExtentAlign = 0;
24353 }
24354 def S4_storeirh_zomap : HInst<
24355 (outs),
24356 (ins IntRegs:$Rs32, s8_0Imm:$II),
24357 "memh($Rs32) = #$II",
24358 tc_b83e6d73, TypeMAPPING> {
24359 let isPseudo = 1;
24360 let isCodeGenOnly = 1;
24361 }
24362 def S4_storeirhf_io : HInst<
24363 (outs),
24364 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24365 "if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24366 tc_0b2be201, TypeST>, Enc_f20719, PredNewRel {
24367 let Inst{31-21} = 0b00111000101;
24368 let isPredicated = 1;
24369 let isPredicatedFalse = 1;
24370 let addrMode = BaseImmOffset;
24371 let accessSize = HalfWordAccess;
24372 let mayStore = 1;
24373 let CextOpcode = "S2_storerh";
24374 let InputType = "imm";
24375 let BaseOpcode = "S4_storeirh_io";
24376 let isExtendable = 1;
24377 let opExtendable = 3;
24378 let isExtentSigned = 1;
24379 let opExtentBits = 6;
24380 let opExtentAlign = 0;
24381 }
24382 def S4_storeirhf_zomap : HInst<
24383 (outs),
24384 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24385 "if (!$Pv4) memh($Rs32) = #$II",
24386 tc_0b2be201, TypeMAPPING> {
24387 let isPseudo = 1;
24388 let isCodeGenOnly = 1;
24389 }
24390 def S4_storeirhfnew_io : HInst<
24391 (outs),
24392 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24393 "if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24394 tc_c4f596e3, TypeST>, Enc_f20719, PredNewRel {
24395 let Inst{31-21} = 0b00111001101;
24396 let isPredicated = 1;
24397 let isPredicatedFalse = 1;
24398 let addrMode = BaseImmOffset;
24399 let accessSize = HalfWordAccess;
24400 let isPredicatedNew = 1;
24401 let mayStore = 1;
24402 let CextOpcode = "S2_storerh";
24403 let InputType = "imm";
24404 let BaseOpcode = "S4_storeirh_io";
24405 let isExtendable = 1;
24406 let opExtendable = 3;
24407 let isExtentSigned = 1;
24408 let opExtentBits = 6;
24409 let opExtentAlign = 0;
24410 }
24411 def S4_storeirhfnew_zomap : HInst<
24412 (outs),
24413 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24414 "if (!$Pv4.new) memh($Rs32) = #$II",
24415 tc_c4f596e3, TypeMAPPING> {
24416 let isPseudo = 1;
24417 let isCodeGenOnly = 1;
24418 }
24419 def S4_storeirht_io : HInst<
24420 (outs),
24421 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24422 "if ($Pv4) memh($Rs32+#$Ii) = #$II",
24423 tc_0b2be201, TypeST>, Enc_f20719, PredNewRel {
24424 let Inst{31-21} = 0b00111000001;
24425 let isPredicated = 1;
24426 let addrMode = BaseImmOffset;
24427 let accessSize = HalfWordAccess;
24428 let mayStore = 1;
24429 let CextOpcode = "S2_storerh";
24430 let InputType = "imm";
24431 let BaseOpcode = "S4_storeirh_io";
24432 let isExtendable = 1;
24433 let opExtendable = 3;
24434 let isExtentSigned = 1;
24435 let opExtentBits = 6;
24436 let opExtentAlign = 0;
24437 }
24438 def S4_storeirht_zomap : HInst<
24439 (outs),
24440 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24441 "if ($Pv4) memh($Rs32) = #$II",
24442 tc_0b2be201, TypeMAPPING> {
24443 let isPseudo = 1;
24444 let isCodeGenOnly = 1;
24445 }
24446 def S4_storeirhtnew_io : HInst<
24447 (outs),
24448 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24449 "if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24450 tc_c4f596e3, TypeST>, Enc_f20719, PredNewRel {
24451 let Inst{31-21} = 0b00111001001;
24452 let isPredicated = 1;
24453 let addrMode = BaseImmOffset;
24454 let accessSize = HalfWordAccess;
24455 let isPredicatedNew = 1;
24456 let mayStore = 1;
24457 let CextOpcode = "S2_storerh";
24458 let InputType = "imm";
24459 let BaseOpcode = "S4_storeirh_io";
24460 let isExtendable = 1;
24461 let opExtendable = 3;
24462 let isExtentSigned = 1;
24463 let opExtentBits = 6;
24464 let opExtentAlign = 0;
24465 }
24466 def S4_storeirhtnew_zomap : HInst<
24467 (outs),
24468 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24469 "if ($Pv4.new) memh($Rs32) = #$II",
24470 tc_c4f596e3, TypeMAPPING> {
24471 let isPseudo = 1;
24472 let isCodeGenOnly = 1;
24473 }
24474 def S4_storeiri_io : HInst<
24475 (outs),
24476 (ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24477 "memw($Rs32+#$Ii) = #$II",
24478 tc_b83e6d73, TypeST>, Enc_f37377, PredNewRel {
24479 let Inst{31-21} = 0b00111100010;
24480 let addrMode = BaseImmOffset;
24481 let accessSize = WordAccess;
24482 let mayStore = 1;
24483 let CextOpcode = "S2_storeri";
24484 let InputType = "imm";
24485 let BaseOpcode = "S4_storeiri_io";
24486 let isPredicable = 1;
24487 let isExtendable = 1;
24488 let opExtendable = 2;
24489 let isExtentSigned = 1;
24490 let opExtentBits = 8;
24491 let opExtentAlign = 0;
24492 }
24493 def S4_storeiri_zomap : HInst<
24494 (outs),
24495 (ins IntRegs:$Rs32, s8_0Imm:$II),
24496 "memw($Rs32) = #$II",
24497 tc_b83e6d73, TypeMAPPING> {
24498 let isPseudo = 1;
24499 let isCodeGenOnly = 1;
24500 }
24501 def S4_storeirif_io : HInst<
24502 (outs),
24503 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24504 "if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24505 tc_0b2be201, TypeST>, Enc_5ccba9, PredNewRel {
24506 let Inst{31-21} = 0b00111000110;
24507 let isPredicated = 1;
24508 let isPredicatedFalse = 1;
24509 let addrMode = BaseImmOffset;
24510 let accessSize = WordAccess;
24511 let mayStore = 1;
24512 let CextOpcode = "S2_storeri";
24513 let InputType = "imm";
24514 let BaseOpcode = "S4_storeiri_io";
24515 let isExtendable = 1;
24516 let opExtendable = 3;
24517 let isExtentSigned = 1;
24518 let opExtentBits = 6;
24519 let opExtentAlign = 0;
24520 }
24521 def S4_storeirif_zomap : HInst<
24522 (outs),
24523 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24524 "if (!$Pv4) memw($Rs32) = #$II",
24525 tc_0b2be201, TypeMAPPING> {
24526 let isPseudo = 1;
24527 let isCodeGenOnly = 1;
24528 }
24529 def S4_storeirifnew_io : HInst<
24530 (outs),
24531 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24532 "if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
24533 tc_c4f596e3, TypeST>, Enc_5ccba9, PredNewRel {
24534 let Inst{31-21} = 0b00111001110;
24535 let isPredicated = 1;
24536 let isPredicatedFalse = 1;
24537 let addrMode = BaseImmOffset;
24538 let accessSize = WordAccess;
24539 let isPredicatedNew = 1;
24540 let mayStore = 1;
24541 let CextOpcode = "S2_storeri";
24542 let InputType = "imm";
24543 let BaseOpcode = "S4_storeiri_io";
24544 let isExtendable = 1;
24545 let opExtendable = 3;
24546 let isExtentSigned = 1;
24547 let opExtentBits = 6;
24548 let opExtentAlign = 0;
24549 }
24550 def S4_storeirifnew_zomap : HInst<
24551 (outs),
24552 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24553 "if (!$Pv4.new) memw($Rs32) = #$II",
24554 tc_c4f596e3, TypeMAPPING> {
24555 let isPseudo = 1;
24556 let isCodeGenOnly = 1;
24557 }
24558 def S4_storeirit_io : HInst<
24559 (outs),
24560 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24561 "if ($Pv4) memw($Rs32+#$Ii) = #$II",
24562 tc_0b2be201, TypeST>, Enc_5ccba9, PredNewRel {
24563 let Inst{31-21} = 0b00111000010;
24564 let isPredicated = 1;
24565 let addrMode = BaseImmOffset;
24566 let accessSize = WordAccess;
24567 let mayStore = 1;
24568 let CextOpcode = "S2_storeri";
24569 let InputType = "imm";
24570 let BaseOpcode = "S4_storeiri_io";
24571 let isExtendable = 1;
24572 let opExtendable = 3;
24573 let isExtentSigned = 1;
24574 let opExtentBits = 6;
24575 let opExtentAlign = 0;
24576 }
24577 def S4_storeirit_zomap : HInst<
24578 (outs),
24579 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24580 "if ($Pv4) memw($Rs32) = #$II",
24581 tc_0b2be201, TypeMAPPING> {
24582 let isPseudo = 1;
24583 let isCodeGenOnly = 1;
24584 }
24585 def S4_storeiritnew_io : HInst<
24586 (outs),
24587 (ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24588 "if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
24589 tc_c4f596e3, TypeST>, Enc_5ccba9, PredNewRel {
24590 let Inst{31-21} = 0b00111001010;
24591 let isPredicated = 1;
24592 let addrMode = BaseImmOffset;
24593 let accessSize = WordAccess;
24594 let isPredicatedNew = 1;
24595 let mayStore = 1;
24596 let CextOpcode = "S2_storeri";
24597 let InputType = "imm";
24598 let BaseOpcode = "S4_storeiri_io";
24599 let isExtendable = 1;
24600 let opExtendable = 3;
24601 let isExtentSigned = 1;
24602 let opExtentBits = 6;
24603 let opExtentAlign = 0;
24604 }
24605 def S4_storeiritnew_zomap : HInst<
24606 (outs),
24607 (ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24608 "if ($Pv4.new) memw($Rs32) = #$II",
24609 tc_c4f596e3, TypeMAPPING> {
24610 let isPseudo = 1;
24611 let isCodeGenOnly = 1;
24612 }
24613 def S4_storerb_ap : HInst<
24614 (outs IntRegs:$Re32),
24615 (ins u32_0Imm:$II, IntRegs:$Rt32),
24616 "memb($Re32=#$II) = $Rt32",
24617 tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24618 let Inst{7-6} = 0b10;
24619 let Inst{13-13} = 0b0;
24620 let Inst{31-21} = 0b10101011000;
24621 let addrMode = AbsoluteSet;
24622 let accessSize = ByteAccess;
24623 let isExtended = 1;
24624 let mayStore = 1;
24625 let BaseOpcode = "S2_storerb_ap";
24626 let isNVStorable = 1;
24627 let DecoderNamespace = "MustExtend";
24628 let isExtendable = 1;
24629 let opExtendable = 1;
24630 let isExtentSigned = 0;
24631 let opExtentBits = 6;
24632 let opExtentAlign = 0;
24633 }
24634 def S4_storerb_rr : HInst<
24635 (outs),
24636 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24637 "memb($Rs32+$Ru32<<#$Ii) = $Rt32",
24638 tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24639 let Inst{6-5} = 0b00;
24640 let Inst{31-21} = 0b00111011000;
24641 let addrMode = BaseRegOffset;
24642 let accessSize = ByteAccess;
24643 let mayStore = 1;
24644 let CextOpcode = "S2_storerb";
24645 let InputType = "reg";
24646 let BaseOpcode = "S4_storerb_rr";
24647 let isNVStorable = 1;
24648 let isPredicable = 1;
24649 }
24650 def S4_storerb_ur : HInst<
24651 (outs),
24652 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24653 "memb($Ru32<<#$Ii+#$II) = $Rt32",
24654 tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24655 let Inst{7-7} = 0b1;
24656 let Inst{31-21} = 0b10101101000;
24657 let addrMode = BaseLongOffset;
24658 let accessSize = ByteAccess;
24659 let isExtended = 1;
24660 let mayStore = 1;
24661 let CextOpcode = "S2_storerb";
24662 let InputType = "imm";
24663 let BaseOpcode = "S4_storerb_ur";
24664 let isNVStorable = 1;
24665 let DecoderNamespace = "MustExtend";
24666 let isExtendable = 1;
24667 let opExtendable = 2;
24668 let isExtentSigned = 0;
24669 let opExtentBits = 6;
24670 let opExtentAlign = 0;
24671 }
24672 def S4_storerbnew_ap : HInst<
24673 (outs IntRegs:$Re32),
24674 (ins u32_0Imm:$II, IntRegs:$Nt8),
24675 "memb($Re32=#$II) = $Nt8.new",
24676 tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
24677 let Inst{7-6} = 0b10;
24678 let Inst{13-11} = 0b000;
24679 let Inst{31-21} = 0b10101011101;
24680 let addrMode = AbsoluteSet;
24681 let accessSize = ByteAccess;
24682 let isNVStore = 1;
24683 let isNewValue = 1;
24684 let isExtended = 1;
24685 let isRestrictNoSlot1Store = 1;
24686 let mayStore = 1;
24687 let BaseOpcode = "S2_storerb_ap";
24688 let DecoderNamespace = "MustExtend";
24689 let isExtendable = 1;
24690 let opExtendable = 1;
24691 let isExtentSigned = 0;
24692 let opExtentBits = 6;
24693 let opExtentAlign = 0;
24694 let opNewValue = 2;
24695 }
24696 def S4_storerbnew_rr : HInst<
24697 (outs),
24698 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24699 "memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24700 tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
24701 let Inst{6-3} = 0b0000;
24702 let Inst{31-21} = 0b00111011101;
24703 let addrMode = BaseRegOffset;
24704 let accessSize = ByteAccess;
24705 let isNVStore = 1;
24706 let isNewValue = 1;
24707 let isRestrictNoSlot1Store = 1;
24708 let mayStore = 1;
24709 let CextOpcode = "S2_storerb";
24710 let InputType = "reg";
24711 let BaseOpcode = "S4_storerb_rr";
24712 let isPredicable = 1;
24713 let opNewValue = 3;
24714 }
24715 def S4_storerbnew_ur : HInst<
24716 (outs),
24717 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24718 "memb($Ru32<<#$Ii+#$II) = $Nt8.new",
24719 tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
24720 let Inst{7-7} = 0b1;
24721 let Inst{12-11} = 0b00;
24722 let Inst{31-21} = 0b10101101101;
24723 let addrMode = BaseLongOffset;
24724 let accessSize = ByteAccess;
24725 let isNVStore = 1;
24726 let isNewValue = 1;
24727 let isExtended = 1;
24728 let isRestrictNoSlot1Store = 1;
24729 let mayStore = 1;
24730 let CextOpcode = "S2_storerb";
24731 let BaseOpcode = "S4_storerb_ur";
24732 let DecoderNamespace = "MustExtend";
24733 let isExtendable = 1;
24734 let opExtendable = 2;
24735 let isExtentSigned = 0;
24736 let opExtentBits = 6;
24737 let opExtentAlign = 0;
24738 let opNewValue = 3;
24739 }
24740 def S4_storerd_ap : HInst<
24741 (outs IntRegs:$Re32),
24742 (ins u32_0Imm:$II, DoubleRegs:$Rtt32),
24743 "memd($Re32=#$II) = $Rtt32",
24744 tc_da4a37ed, TypeST>, Enc_c7a204 {
24745 let Inst{7-6} = 0b10;
24746 let Inst{13-13} = 0b0;
24747 let Inst{31-21} = 0b10101011110;
24748 let addrMode = AbsoluteSet;
24749 let accessSize = DoubleWordAccess;
24750 let isExtended = 1;
24751 let mayStore = 1;
24752 let BaseOpcode = "S4_storerd_ap";
24753 let DecoderNamespace = "MustExtend";
24754 let isExtendable = 1;
24755 let opExtendable = 1;
24756 let isExtentSigned = 0;
24757 let opExtentBits = 6;
24758 let opExtentAlign = 0;
24759 }
24760 def S4_storerd_rr : HInst<
24761 (outs),
24762 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
24763 "memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
24764 tc_5aee39f7, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
24765 let Inst{6-5} = 0b00;
24766 let Inst{31-21} = 0b00111011110;
24767 let addrMode = BaseRegOffset;
24768 let accessSize = DoubleWordAccess;
24769 let mayStore = 1;
24770 let CextOpcode = "S2_storerd";
24771 let InputType = "reg";
24772 let BaseOpcode = "S2_storerd_rr";
24773 let isPredicable = 1;
24774 }
24775 def S4_storerd_ur : HInst<
24776 (outs),
24777 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
24778 "memd($Ru32<<#$Ii+#$II) = $Rtt32",
24779 tc_14b272fa, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
24780 let Inst{7-7} = 0b1;
24781 let Inst{31-21} = 0b10101101110;
24782 let addrMode = BaseLongOffset;
24783 let accessSize = DoubleWordAccess;
24784 let isExtended = 1;
24785 let mayStore = 1;
24786 let CextOpcode = "S2_storerd";
24787 let InputType = "imm";
24788 let BaseOpcode = "S2_storerd_ur";
24789 let DecoderNamespace = "MustExtend";
24790 let isExtendable = 1;
24791 let opExtendable = 2;
24792 let isExtentSigned = 0;
24793 let opExtentBits = 6;
24794 let opExtentAlign = 0;
24795 }
24796 def S4_storerf_ap : HInst<
24797 (outs IntRegs:$Re32),
24798 (ins u32_0Imm:$II, IntRegs:$Rt32),
24799 "memh($Re32=#$II) = $Rt32.h",
24800 tc_da4a37ed, TypeST>, Enc_8bcba4 {
24801 let Inst{7-6} = 0b10;
24802 let Inst{13-13} = 0b0;
24803 let Inst{31-21} = 0b10101011011;
24804 let addrMode = AbsoluteSet;
24805 let accessSize = HalfWordAccess;
24806 let isExtended = 1;
24807 let mayStore = 1;
24808 let BaseOpcode = "S4_storerf_ap";
24809 let DecoderNamespace = "MustExtend";
24810 let isExtendable = 1;
24811 let opExtendable = 1;
24812 let isExtentSigned = 0;
24813 let opExtentBits = 6;
24814 let opExtentAlign = 0;
24815 }
24816 def S4_storerf_rr : HInst<
24817 (outs),
24818 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24819 "memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
24820 tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24821 let Inst{6-5} = 0b00;
24822 let Inst{31-21} = 0b00111011011;
24823 let addrMode = BaseRegOffset;
24824 let accessSize = HalfWordAccess;
24825 let mayStore = 1;
24826 let CextOpcode = "S2_storerf";
24827 let InputType = "reg";
24828 let BaseOpcode = "S4_storerf_rr";
24829 let isPredicable = 1;
24830 }
24831 def S4_storerf_ur : HInst<
24832 (outs),
24833 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24834 "memh($Ru32<<#$Ii+#$II) = $Rt32.h",
24835 tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24836 let Inst{7-7} = 0b1;
24837 let Inst{31-21} = 0b10101101011;
24838 let addrMode = BaseLongOffset;
24839 let accessSize = HalfWordAccess;
24840 let isExtended = 1;
24841 let mayStore = 1;
24842 let CextOpcode = "S2_storerf";
24843 let InputType = "imm";
24844 let BaseOpcode = "S4_storerf_rr";
24845 let DecoderNamespace = "MustExtend";
24846 let isExtendable = 1;
24847 let opExtendable = 2;
24848 let isExtentSigned = 0;
24849 let opExtentBits = 6;
24850 let opExtentAlign = 0;
24851 }
24852 def S4_storerh_ap : HInst<
24853 (outs IntRegs:$Re32),
24854 (ins u32_0Imm:$II, IntRegs:$Rt32),
24855 "memh($Re32=#$II) = $Rt32",
24856 tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24857 let Inst{7-6} = 0b10;
24858 let Inst{13-13} = 0b0;
24859 let Inst{31-21} = 0b10101011010;
24860 let addrMode = AbsoluteSet;
24861 let accessSize = HalfWordAccess;
24862 let isExtended = 1;
24863 let mayStore = 1;
24864 let BaseOpcode = "S2_storerh_ap";
24865 let isNVStorable = 1;
24866 let DecoderNamespace = "MustExtend";
24867 let isExtendable = 1;
24868 let opExtendable = 1;
24869 let isExtentSigned = 0;
24870 let opExtentBits = 6;
24871 let opExtentAlign = 0;
24872 }
24873 def S4_storerh_rr : HInst<
24874 (outs),
24875 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24876 "memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24877 tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24878 let Inst{6-5} = 0b00;
24879 let Inst{31-21} = 0b00111011010;
24880 let addrMode = BaseRegOffset;
24881 let accessSize = HalfWordAccess;
24882 let mayStore = 1;
24883 let CextOpcode = "S2_storerh";
24884 let InputType = "reg";
24885 let BaseOpcode = "S2_storerh_rr";
24886 let isNVStorable = 1;
24887 let isPredicable = 1;
24888 }
24889 def S4_storerh_ur : HInst<
24890 (outs),
24891 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24892 "memh($Ru32<<#$Ii+#$II) = $Rt32",
24893 tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24894 let Inst{7-7} = 0b1;
24895 let Inst{31-21} = 0b10101101010;
24896 let addrMode = BaseLongOffset;
24897 let accessSize = HalfWordAccess;
24898 let isExtended = 1;
24899 let mayStore = 1;
24900 let CextOpcode = "S2_storerh";
24901 let InputType = "imm";
24902 let BaseOpcode = "S2_storerh_ur";
24903 let isNVStorable = 1;
24904 let DecoderNamespace = "MustExtend";
24905 let isExtendable = 1;
24906 let opExtendable = 2;
24907 let isExtentSigned = 0;
24908 let opExtentBits = 6;
24909 let opExtentAlign = 0;
24910 }
24911 def S4_storerhnew_ap : HInst<
24912 (outs IntRegs:$Re32),
24913 (ins u32_0Imm:$II, IntRegs:$Nt8),
24914 "memh($Re32=#$II) = $Nt8.new",
24915 tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
24916 let Inst{7-6} = 0b10;
24917 let Inst{13-11} = 0b001;
24918 let Inst{31-21} = 0b10101011101;
24919 let addrMode = AbsoluteSet;
24920 let accessSize = HalfWordAccess;
24921 let isNVStore = 1;
24922 let isNewValue = 1;
24923 let isExtended = 1;
24924 let isRestrictNoSlot1Store = 1;
24925 let mayStore = 1;
24926 let BaseOpcode = "S2_storerh_ap";
24927 let DecoderNamespace = "MustExtend";
24928 let isExtendable = 1;
24929 let opExtendable = 1;
24930 let isExtentSigned = 0;
24931 let opExtentBits = 6;
24932 let opExtentAlign = 0;
24933 let opNewValue = 2;
24934 }
24935 def S4_storerhnew_rr : HInst<
24936 (outs),
24937 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24938 "memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24939 tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
24940 let Inst{6-3} = 0b0001;
24941 let Inst{31-21} = 0b00111011101;
24942 let addrMode = BaseRegOffset;
24943 let accessSize = HalfWordAccess;
24944 let isNVStore = 1;
24945 let isNewValue = 1;
24946 let isRestrictNoSlot1Store = 1;
24947 let mayStore = 1;
24948 let CextOpcode = "S2_storerh";
24949 let InputType = "reg";
24950 let BaseOpcode = "S2_storerh_rr";
24951 let isPredicable = 1;
24952 let opNewValue = 3;
24953 }
24954 def S4_storerhnew_ur : HInst<
24955 (outs),
24956 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24957 "memh($Ru32<<#$Ii+#$II) = $Nt8.new",
24958 tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
24959 let Inst{7-7} = 0b1;
24960 let Inst{12-11} = 0b01;
24961 let Inst{31-21} = 0b10101101101;
24962 let addrMode = BaseLongOffset;
24963 let accessSize = HalfWordAccess;
24964 let isNVStore = 1;
24965 let isNewValue = 1;
24966 let isExtended = 1;
24967 let isRestrictNoSlot1Store = 1;
24968 let mayStore = 1;
24969 let CextOpcode = "S2_storerh";
24970 let BaseOpcode = "S2_storerh_ur";
24971 let DecoderNamespace = "MustExtend";
24972 let isExtendable = 1;
24973 let opExtendable = 2;
24974 let isExtentSigned = 0;
24975 let opExtentBits = 6;
24976 let opExtentAlign = 0;
24977 let opNewValue = 3;
24978 }
24979 def S4_storeri_ap : HInst<
24980 (outs IntRegs:$Re32),
24981 (ins u32_0Imm:$II, IntRegs:$Rt32),
24982 "memw($Re32=#$II) = $Rt32",
24983 tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24984 let Inst{7-6} = 0b10;
24985 let Inst{13-13} = 0b0;
24986 let Inst{31-21} = 0b10101011100;
24987 let addrMode = AbsoluteSet;
24988 let accessSize = WordAccess;
24989 let isExtended = 1;
24990 let mayStore = 1;
24991 let BaseOpcode = "S2_storeri_ap";
24992 let isNVStorable = 1;
24993 let DecoderNamespace = "MustExtend";
24994 let isExtendable = 1;
24995 let opExtendable = 1;
24996 let isExtentSigned = 0;
24997 let opExtentBits = 6;
24998 let opExtentAlign = 0;
24999 }
25000 def S4_storeri_rr : HInst<
25001 (outs),
25002 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25003 "memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25004 tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25005 let Inst{6-5} = 0b00;
25006 let Inst{31-21} = 0b00111011100;
25007 let addrMode = BaseRegOffset;
25008 let accessSize = WordAccess;
25009 let mayStore = 1;
25010 let CextOpcode = "S2_storeri";
25011 let InputType = "reg";
25012 let BaseOpcode = "S2_storeri_rr";
25013 let isNVStorable = 1;
25014 let isPredicable = 1;
25015 }
25016 def S4_storeri_ur : HInst<
25017 (outs),
25018 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25019 "memw($Ru32<<#$Ii+#$II) = $Rt32",
25020 tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25021 let Inst{7-7} = 0b1;
25022 let Inst{31-21} = 0b10101101100;
25023 let addrMode = BaseLongOffset;
25024 let accessSize = WordAccess;
25025 let isExtended = 1;
25026 let mayStore = 1;
25027 let CextOpcode = "S2_storeri";
25028 let InputType = "imm";
25029 let BaseOpcode = "S2_storeri_ur";
25030 let isNVStorable = 1;
25031 let DecoderNamespace = "MustExtend";
25032 let isExtendable = 1;
25033 let opExtendable = 2;
25034 let isExtentSigned = 0;
25035 let opExtentBits = 6;
25036 let opExtentAlign = 0;
25037 }
25038 def S4_storerinew_ap : HInst<
25039 (outs IntRegs:$Re32),
25040 (ins u32_0Imm:$II, IntRegs:$Nt8),
25041 "memw($Re32=#$II) = $Nt8.new",
25042 tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
25043 let Inst{7-6} = 0b10;
25044 let Inst{13-11} = 0b010;
25045 let Inst{31-21} = 0b10101011101;
25046 let addrMode = AbsoluteSet;
25047 let accessSize = WordAccess;
25048 let isNVStore = 1;
25049 let isNewValue = 1;
25050 let isExtended = 1;
25051 let isRestrictNoSlot1Store = 1;
25052 let mayStore = 1;
25053 let BaseOpcode = "S2_storeri_ap";
25054 let DecoderNamespace = "MustExtend";
25055 let isExtendable = 1;
25056 let opExtendable = 1;
25057 let isExtentSigned = 0;
25058 let opExtentBits = 6;
25059 let opExtentAlign = 0;
25060 let opNewValue = 2;
25061 }
25062 def S4_storerinew_rr : HInst<
25063 (outs),
25064 (ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25065 "memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25066 tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
25067 let Inst{6-3} = 0b0010;
25068 let Inst{31-21} = 0b00111011101;
25069 let addrMode = BaseRegOffset;
25070 let accessSize = WordAccess;
25071 let isNVStore = 1;
25072 let isNewValue = 1;
25073 let isRestrictNoSlot1Store = 1;
25074 let mayStore = 1;
25075 let CextOpcode = "S2_storeri";
25076 let InputType = "reg";
25077 let BaseOpcode = "S2_storeri_rr";
25078 let isPredicable = 1;
25079 let opNewValue = 3;
25080 }
25081 def S4_storerinew_ur : HInst<
25082 (outs),
25083 (ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25084 "memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25085 tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
25086 let Inst{7-7} = 0b1;
25087 let Inst{12-11} = 0b10;
25088 let Inst{31-21} = 0b10101101101;
25089 let addrMode = BaseLongOffset;
25090 let accessSize = WordAccess;
25091 let isNVStore = 1;
25092 let isNewValue = 1;
25093 let isExtended = 1;
25094 let isRestrictNoSlot1Store = 1;
25095 let mayStore = 1;
25096 let CextOpcode = "S2_storeri";
25097 let BaseOpcode = "S2_storeri_ur";
25098 let DecoderNamespace = "MustExtend";
25099 let isExtendable = 1;
25100 let opExtendable = 2;
25101 let isExtentSigned = 0;
25102 let opExtentBits = 6;
25103 let opExtentAlign = 0;
25104 let opNewValue = 3;
25105 }
25106 def S4_subaddi : HInst<
25107 (outs IntRegs:$Rd32),
25108 (ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25109 "$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25110 tc_f675fee8, TypeALU64>, Enc_8b8d61 {
25111 let Inst{31-23} = 0b110110111;
25112 let hasNewValue = 1;
25113 let opNewValue = 0;
25114 let prefersSlot3 = 1;
25115 let isExtendable = 1;
25116 let opExtendable = 2;
25117 let isExtentSigned = 1;
25118 let opExtentBits = 6;
25119 let opExtentAlign = 0;
25120 }
25121 def S4_subi_asl_ri : HInst<
25122 (outs IntRegs:$Rx32),
25123 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25124 "$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25125 tc_f675fee8, TypeALU64>, Enc_c31910 {
25126 let Inst{2-0} = 0b110;
25127 let Inst{4-4} = 0b0;
25128 let Inst{31-24} = 0b11011110;
25129 let hasNewValue = 1;
25130 let opNewValue = 0;
25131 let prefersSlot3 = 1;
25132 let isExtendable = 1;
25133 let opExtendable = 1;
25134 let isExtentSigned = 0;
25135 let opExtentBits = 8;
25136 let opExtentAlign = 0;
25137 let Constraints = "$Rx32 = $Rx32in";
25138 }
25139 def S4_subi_lsr_ri : HInst<
25140 (outs IntRegs:$Rx32),
25141 (ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25142 "$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25143 tc_f675fee8, TypeALU64>, Enc_c31910 {
25144 let Inst{2-0} = 0b110;
25145 let Inst{4-4} = 0b1;
25146 let Inst{31-24} = 0b11011110;
25147 let hasNewValue = 1;
25148 let opNewValue = 0;
25149 let prefersSlot3 = 1;
25150 let isExtendable = 1;
25151 let opExtendable = 1;
25152 let isExtentSigned = 0;
25153 let opExtentBits = 8;
25154 let opExtentAlign = 0;
25155 let Constraints = "$Rx32 = $Rx32in";
25156 }
25157 def S4_vrcrotate : HInst<
25158 (outs DoubleRegs:$Rdd32),
25159 (ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25160 "$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25161 tc_13bfbcf9, TypeS_3op>, Enc_645d54 {
25162 let Inst{7-6} = 0b11;
25163 let Inst{31-21} = 0b11000011110;
25164 let prefersSlot3 = 1;
25165 }
25166 def S4_vrcrotate_acc : HInst<
25167 (outs DoubleRegs:$Rxx32),
25168 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25169 "$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25170 tc_9debc299, TypeS_3op>, Enc_b72622 {
25171 let Inst{7-6} = 0b00;
25172 let Inst{31-21} = 0b11001011101;
25173 let prefersSlot3 = 1;
25174 let Constraints = "$Rxx32 = $Rxx32in";
25175 }
25176 def S4_vxaddsubh : HInst<
25177 (outs DoubleRegs:$Rdd32),
25178 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25179 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25180 tc_779080bf, TypeS_3op>, Enc_a56825 {
25181 let Inst{7-5} = 0b100;
25182 let Inst{13-13} = 0b0;
25183 let Inst{31-21} = 0b11000001010;
25184 let prefersSlot3 = 1;
25185 let Defs = [USR_OVF];
25186 }
25187 def S4_vxaddsubhr : HInst<
25188 (outs DoubleRegs:$Rdd32),
25189 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25190 "$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25191 tc_002cb246, TypeS_3op>, Enc_a56825 {
25192 let Inst{7-5} = 0b000;
25193 let Inst{13-13} = 0b0;
25194 let Inst{31-21} = 0b11000001110;
25195 let prefersSlot3 = 1;
25196 let Defs = [USR_OVF];
25197 }
25198 def S4_vxaddsubw : HInst<
25199 (outs DoubleRegs:$Rdd32),
25200 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25201 "$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25202 tc_779080bf, TypeS_3op>, Enc_a56825 {
25203 let Inst{7-5} = 0b000;
25204 let Inst{13-13} = 0b0;
25205 let Inst{31-21} = 0b11000001010;
25206 let prefersSlot3 = 1;
25207 let Defs = [USR_OVF];
25208 }
25209 def S4_vxsubaddh : HInst<
25210 (outs DoubleRegs:$Rdd32),
25211 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25212 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25213 tc_779080bf, TypeS_3op>, Enc_a56825 {
25214 let Inst{7-5} = 0b110;
25215 let Inst{13-13} = 0b0;
25216 let Inst{31-21} = 0b11000001010;
25217 let prefersSlot3 = 1;
25218 let Defs = [USR_OVF];
25219 }
25220 def S4_vxsubaddhr : HInst<
25221 (outs DoubleRegs:$Rdd32),
25222 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25223 "$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25224 tc_002cb246, TypeS_3op>, Enc_a56825 {
25225 let Inst{7-5} = 0b010;
25226 let Inst{13-13} = 0b0;
25227 let Inst{31-21} = 0b11000001110;
25228 let prefersSlot3 = 1;
25229 let Defs = [USR_OVF];
25230 }
25231 def S4_vxsubaddw : HInst<
25232 (outs DoubleRegs:$Rdd32),
25233 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25234 "$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25235 tc_779080bf, TypeS_3op>, Enc_a56825 {
25236 let Inst{7-5} = 0b010;
25237 let Inst{13-13} = 0b0;
25238 let Inst{31-21} = 0b11000001010;
25239 let prefersSlot3 = 1;
25240 let Defs = [USR_OVF];
25241 }
25242 def S5_asrhub_rnd_sat : HInst<
25243 (outs IntRegs:$Rd32),
25244 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25245 "$Rd32 = vasrhub($Rss32,#$Ii):raw",
25246 tc_002cb246, TypeS_2op>, Enc_11a146 {
25247 let Inst{7-5} = 0b100;
25248 let Inst{13-12} = 0b00;
25249 let Inst{31-21} = 0b10001000011;
25250 let hasNewValue = 1;
25251 let opNewValue = 0;
25252 let prefersSlot3 = 1;
25253 let Defs = [USR_OVF];
25254 }
25255 def S5_asrhub_rnd_sat_goodsyntax : HInst<
25256 (outs IntRegs:$Rd32),
25257 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25258 "$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25259 tc_002cb246, TypeS_2op> {
25260 let hasNewValue = 1;
25261 let opNewValue = 0;
25262 let isPseudo = 1;
25263 }
25264 def S5_asrhub_sat : HInst<
25265 (outs IntRegs:$Rd32),
25266 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25267 "$Rd32 = vasrhub($Rss32,#$Ii):sat",
25268 tc_002cb246, TypeS_2op>, Enc_11a146 {
25269 let Inst{7-5} = 0b101;
25270 let Inst{13-12} = 0b00;
25271 let Inst{31-21} = 0b10001000011;
25272 let hasNewValue = 1;
25273 let opNewValue = 0;
25274 let prefersSlot3 = 1;
25275 let Defs = [USR_OVF];
25276 }
25277 def S5_popcountp : HInst<
25278 (outs IntRegs:$Rd32),
25279 (ins DoubleRegs:$Rss32),
25280 "$Rd32 = popcount($Rss32)",
25281 tc_703e822c, TypeS_2op>, Enc_90cd8b {
25282 let Inst{13-5} = 0b000000011;
25283 let Inst{31-21} = 0b10001000011;
25284 let hasNewValue = 1;
25285 let opNewValue = 0;
25286 let prefersSlot3 = 1;
25287 }
25288 def S5_vasrhrnd : HInst<
25289 (outs DoubleRegs:$Rdd32),
25290 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25291 "$Rdd32 = vasrh($Rss32,#$Ii):raw",
25292 tc_002cb246, TypeS_2op>, Enc_12b6e9 {
25293 let Inst{7-5} = 0b000;
25294 let Inst{13-12} = 0b00;
25295 let Inst{31-21} = 0b10000000001;
25296 let prefersSlot3 = 1;
25297 }
25298 def S5_vasrhrnd_goodsyntax : HInst<
25299 (outs DoubleRegs:$Rdd32),
25300 (ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25301 "$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25302 tc_002cb246, TypeS_2op> {
25303 let isPseudo = 1;
25304 }
25305 def S6_allocframe_to_raw : HInst<
25306 (outs),
25307 (ins u11_3Imm:$Ii),
25308 "allocframe(#$Ii)",
25309 tc_b44ecf75, TypeMAPPING>, Requires<[HasV65]> {
25310 let isPseudo = 1;
25311 let isCodeGenOnly = 1;
25312 }
25313 def S6_rol_i_p : HInst<
25314 (outs DoubleRegs:$Rdd32),
25315 (ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25316 "$Rdd32 = rol($Rss32,#$Ii)",
25317 tc_1fc97744, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25318 let Inst{7-5} = 0b011;
25319 let Inst{31-21} = 0b10000000000;
25320 }
25321 def S6_rol_i_p_acc : HInst<
25322 (outs DoubleRegs:$Rxx32),
25323 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25324 "$Rxx32 += rol($Rss32,#$Ii)",
25325 tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25326 let Inst{7-5} = 0b111;
25327 let Inst{31-21} = 0b10000010000;
25328 let prefersSlot3 = 1;
25329 let Constraints = "$Rxx32 = $Rxx32in";
25330 }
25331 def S6_rol_i_p_and : HInst<
25332 (outs DoubleRegs:$Rxx32),
25333 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25334 "$Rxx32 &= rol($Rss32,#$Ii)",
25335 tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25336 let Inst{7-5} = 0b011;
25337 let Inst{31-21} = 0b10000010010;
25338 let prefersSlot3 = 1;
25339 let Constraints = "$Rxx32 = $Rxx32in";
25340 }
25341 def S6_rol_i_p_nac : HInst<
25342 (outs DoubleRegs:$Rxx32),
25343 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25344 "$Rxx32 -= rol($Rss32,#$Ii)",
25345 tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25346 let Inst{7-5} = 0b011;
25347 let Inst{31-21} = 0b10000010000;
25348 let prefersSlot3 = 1;
25349 let Constraints = "$Rxx32 = $Rxx32in";
25350 }
25351 def S6_rol_i_p_or : HInst<
25352 (outs DoubleRegs:$Rxx32),
25353 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25354 "$Rxx32 |= rol($Rss32,#$Ii)",
25355 tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25356 let Inst{7-5} = 0b111;
25357 let Inst{31-21} = 0b10000010010;
25358 let prefersSlot3 = 1;
25359 let Constraints = "$Rxx32 = $Rxx32in";
25360 }
25361 def S6_rol_i_p_xacc : HInst<
25362 (outs DoubleRegs:$Rxx32),
25363 (ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25364 "$Rxx32 ^= rol($Rss32,#$Ii)",
25365 tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25366 let Inst{7-5} = 0b011;
25367 let Inst{31-21} = 0b10000010100;
25368 let prefersSlot3 = 1;
25369 let Constraints = "$Rxx32 = $Rxx32in";
25370 }
25371 def S6_rol_i_r : HInst<
25372 (outs IntRegs:$Rd32),
25373 (ins IntRegs:$Rs32, u5_0Imm:$Ii),
25374 "$Rd32 = rol($Rs32,#$Ii)",
25375 tc_1fc97744, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25376 let Inst{7-5} = 0b011;
25377 let Inst{13-13} = 0b0;
25378 let Inst{31-21} = 0b10001100000;
25379 let hasNewValue = 1;
25380 let opNewValue = 0;
25381 }
25382 def S6_rol_i_r_acc : HInst<
25383 (outs IntRegs:$Rx32),
25384 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25385 "$Rx32 += rol($Rs32,#$Ii)",
25386 tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25387 let Inst{7-5} = 0b111;
25388 let Inst{13-13} = 0b0;
25389 let Inst{31-21} = 0b10001110000;
25390 let hasNewValue = 1;
25391 let opNewValue = 0;
25392 let prefersSlot3 = 1;
25393 let Constraints = "$Rx32 = $Rx32in";
25394 }
25395 def S6_rol_i_r_and : HInst<
25396 (outs IntRegs:$Rx32),
25397 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25398 "$Rx32 &= rol($Rs32,#$Ii)",
25399 tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25400 let Inst{7-5} = 0b011;
25401 let Inst{13-13} = 0b0;
25402 let Inst{31-21} = 0b10001110010;
25403 let hasNewValue = 1;
25404 let opNewValue = 0;
25405 let prefersSlot3 = 1;
25406 let Constraints = "$Rx32 = $Rx32in";
25407 }
25408 def S6_rol_i_r_nac : HInst<
25409 (outs IntRegs:$Rx32),
25410 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25411 "$Rx32 -= rol($Rs32,#$Ii)",
25412 tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25413 let Inst{7-5} = 0b011;
25414 let Inst{13-13} = 0b0;
25415 let Inst{31-21} = 0b10001110000;
25416 let hasNewValue = 1;
25417 let opNewValue = 0;
25418 let prefersSlot3 = 1;
25419 let Constraints = "$Rx32 = $Rx32in";
25420 }
25421 def S6_rol_i_r_or : HInst<
25422 (outs IntRegs:$Rx32),
25423 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25424 "$Rx32 |= rol($Rs32,#$Ii)",
25425 tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25426 let Inst{7-5} = 0b111;
25427 let Inst{13-13} = 0b0;
25428 let Inst{31-21} = 0b10001110010;
25429 let hasNewValue = 1;
25430 let opNewValue = 0;
25431 let prefersSlot3 = 1;
25432 let Constraints = "$Rx32 = $Rx32in";
25433 }
25434 def S6_rol_i_r_xacc : HInst<
25435 (outs IntRegs:$Rx32),
25436 (ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25437 "$Rx32 ^= rol($Rs32,#$Ii)",
25438 tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25439 let Inst{7-5} = 0b011;
25440 let Inst{13-13} = 0b0;
25441 let Inst{31-21} = 0b10001110100;
25442 let hasNewValue = 1;
25443 let opNewValue = 0;
25444 let prefersSlot3 = 1;
25445 let Constraints = "$Rx32 = $Rx32in";
25446 }
25447 def S6_vsplatrbp : HInst<
25448 (outs DoubleRegs:$Rdd32),
25449 (ins IntRegs:$Rs32),
25450 "$Rdd32 = vsplatb($Rs32)",
25451 tc_a1c00888, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25452 let Inst{13-5} = 0b000000100;
25453 let Inst{31-21} = 0b10000100010;
25454 }
25455 def S6_vtrunehb_ppp : HInst<
25456 (outs DoubleRegs:$Rdd32),
25457 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25458 "$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25459 tc_1fc97744, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25460 let Inst{7-5} = 0b011;
25461 let Inst{13-13} = 0b0;
25462 let Inst{31-21} = 0b11000001100;
25463 }
25464 def S6_vtrunohb_ppp : HInst<
25465 (outs DoubleRegs:$Rdd32),
25466 (ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25467 "$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25468 tc_1fc97744, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25469 let Inst{7-5} = 0b101;
25470 let Inst{13-13} = 0b0;
25471 let Inst{31-21} = 0b11000001100;
25472 }
25473 def SA1_addi : HInst<
25474 (outs GeneralSubRegs:$Rx16),
25475 (ins IntRegs:$Rx16in, s32_0Imm:$Ii),
25476 "$Rx16 = add($Rx16in,#$Ii)",
25477 tc_0a705168, TypeSUBINSN>, Enc_93af4c {
25478 let Inst{12-11} = 0b00;
25479 let hasNewValue = 1;
25480 let opNewValue = 0;
25481 let AsmVariantName = "NonParsable";
25482 let DecoderNamespace = "SUBINSN_A";
25483 let isExtendable = 1;
25484 let opExtendable = 2;
25485 let isExtentSigned = 1;
25486 let opExtentBits = 7;
25487 let opExtentAlign = 0;
25488 let Constraints = "$Rx16 = $Rx16in";
25489 }
25490 def SA1_addrx : HInst<
25491 (outs GeneralSubRegs:$Rx16),
25492 (ins IntRegs:$Rx16in, GeneralSubRegs:$Rs16),
25493 "$Rx16 = add($Rx16in,$Rs16)",
25494 tc_0a705168, TypeSUBINSN>, Enc_0527db {
25495 let Inst{12-8} = 0b11000;
25496 let hasNewValue = 1;
25497 let opNewValue = 0;
25498 let AsmVariantName = "NonParsable";
25499 let DecoderNamespace = "SUBINSN_A";
25500 let Constraints = "$Rx16 = $Rx16in";
25501 }
25502 def SA1_addsp : HInst<
25503 (outs GeneralSubRegs:$Rd16),
25504 (ins u6_2Imm:$Ii),
25505 "$Rd16 = add(r29,#$Ii)",
25506 tc_9fc3dae0, TypeSUBINSN>, Enc_2df31d {
25507 let Inst{12-10} = 0b011;
25508 let hasNewValue = 1;
25509 let opNewValue = 0;
25510 let AsmVariantName = "NonParsable";
25511 let Uses = [R29];
25512 let DecoderNamespace = "SUBINSN_A";
25513 }
25514 def SA1_and1 : HInst<
25515 (outs GeneralSubRegs:$Rd16),
25516 (ins GeneralSubRegs:$Rs16),
25517 "$Rd16 = and($Rs16,#1)",
25518 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25519 let Inst{12-8} = 0b10010;
25520 let hasNewValue = 1;
25521 let opNewValue = 0;
25522 let AsmVariantName = "NonParsable";
25523 let DecoderNamespace = "SUBINSN_A";
25524 }
25525 def SA1_clrf : HInst<
25526 (outs GeneralSubRegs:$Rd16),
25527 (ins),
25528 "if (!p0) $Rd16 = #0",
25529 tc_a1123dda, TypeSUBINSN>, Enc_1f5ba6 {
25530 let Inst{12-4} = 0b110100111;
25531 let isPredicated = 1;
25532 let isPredicatedFalse = 1;
25533 let hasNewValue = 1;
25534 let opNewValue = 0;
25535 let AsmVariantName = "NonParsable";
25536 let Uses = [P0];
25537 let DecoderNamespace = "SUBINSN_A";
25538 }
25539 def SA1_clrfnew : HInst<
25540 (outs GeneralSubRegs:$Rd16),
25541 (ins),
25542 "if (!p0.new) $Rd16 = #0",
25543 tc_8b3e402a, TypeSUBINSN>, Enc_1f5ba6 {
25544 let Inst{12-4} = 0b110100101;
25545 let isPredicated = 1;
25546 let isPredicatedFalse = 1;
25547 let hasNewValue = 1;
25548 let opNewValue = 0;
25549 let AsmVariantName = "NonParsable";
25550 let isPredicatedNew = 1;
25551 let Uses = [P0];
25552 let DecoderNamespace = "SUBINSN_A";
25553 }
25554 def SA1_clrt : HInst<
25555 (outs GeneralSubRegs:$Rd16),
25556 (ins),
25557 "if (p0) $Rd16 = #0",
25558 tc_a1123dda, TypeSUBINSN>, Enc_1f5ba6 {
25559 let Inst{12-4} = 0b110100110;
25560 let isPredicated = 1;
25561 let hasNewValue = 1;
25562 let opNewValue = 0;
25563 let AsmVariantName = "NonParsable";
25564 let Uses = [P0];
25565 let DecoderNamespace = "SUBINSN_A";
25566 }
25567 def SA1_clrtnew : HInst<
25568 (outs GeneralSubRegs:$Rd16),
25569 (ins),
25570 "if (p0.new) $Rd16 = #0",
25571 tc_8b3e402a, TypeSUBINSN>, Enc_1f5ba6 {
25572 let Inst{12-4} = 0b110100100;
25573 let isPredicated = 1;
25574 let hasNewValue = 1;
25575 let opNewValue = 0;
25576 let AsmVariantName = "NonParsable";
25577 let isPredicatedNew = 1;
25578 let Uses = [P0];
25579 let DecoderNamespace = "SUBINSN_A";
25580 }
25581 def SA1_cmpeqi : HInst<
25582 (outs),
25583 (ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
25584 "p0 = cmp.eq($Rs16,#$Ii)",
25585 tc_5b7c0967, TypeSUBINSN>, Enc_63eaeb {
25586 let Inst{3-2} = 0b00;
25587 let Inst{12-8} = 0b11001;
25588 let AsmVariantName = "NonParsable";
25589 let Defs = [P0];
25590 let DecoderNamespace = "SUBINSN_A";
25591 }
25592 def SA1_combine0i : HInst<
25593 (outs GeneralDoubleLow8Regs:$Rdd8),
25594 (ins u2_0Imm:$Ii),
25595 "$Rdd8 = combine(#0,#$Ii)",
25596 tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25597 let Inst{4-3} = 0b00;
25598 let Inst{12-7} = 0b111000;
25599 let hasNewValue = 1;
25600 let opNewValue = 0;
25601 let AsmVariantName = "NonParsable";
25602 let DecoderNamespace = "SUBINSN_A";
25603 }
25604 def SA1_combine1i : HInst<
25605 (outs GeneralDoubleLow8Regs:$Rdd8),
25606 (ins u2_0Imm:$Ii),
25607 "$Rdd8 = combine(#1,#$Ii)",
25608 tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25609 let Inst{4-3} = 0b01;
25610 let Inst{12-7} = 0b111000;
25611 let hasNewValue = 1;
25612 let opNewValue = 0;
25613 let AsmVariantName = "NonParsable";
25614 let DecoderNamespace = "SUBINSN_A";
25615 }
25616 def SA1_combine2i : HInst<
25617 (outs GeneralDoubleLow8Regs:$Rdd8),
25618 (ins u2_0Imm:$Ii),
25619 "$Rdd8 = combine(#2,#$Ii)",
25620 tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25621 let Inst{4-3} = 0b10;
25622 let Inst{12-7} = 0b111000;
25623 let hasNewValue = 1;
25624 let opNewValue = 0;
25625 let AsmVariantName = "NonParsable";
25626 let DecoderNamespace = "SUBINSN_A";
25627 }
25628 def SA1_combine3i : HInst<
25629 (outs GeneralDoubleLow8Regs:$Rdd8),
25630 (ins u2_0Imm:$Ii),
25631 "$Rdd8 = combine(#3,#$Ii)",
25632 tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25633 let Inst{4-3} = 0b11;
25634 let Inst{12-7} = 0b111000;
25635 let hasNewValue = 1;
25636 let opNewValue = 0;
25637 let AsmVariantName = "NonParsable";
25638 let DecoderNamespace = "SUBINSN_A";
25639 }
25640 def SA1_combinerz : HInst<
25641 (outs GeneralDoubleLow8Regs:$Rdd8),
25642 (ins GeneralSubRegs:$Rs16),
25643 "$Rdd8 = combine($Rs16,#0)",
25644 tc_9fc3dae0, TypeSUBINSN>, Enc_399e12 {
25645 let Inst{3-3} = 0b1;
25646 let Inst{12-8} = 0b11101;
25647 let hasNewValue = 1;
25648 let opNewValue = 0;
25649 let AsmVariantName = "NonParsable";
25650 let DecoderNamespace = "SUBINSN_A";
25651 }
25652 def SA1_combinezr : HInst<
25653 (outs GeneralDoubleLow8Regs:$Rdd8),
25654 (ins GeneralSubRegs:$Rs16),
25655 "$Rdd8 = combine(#0,$Rs16)",
25656 tc_9fc3dae0, TypeSUBINSN>, Enc_399e12 {
25657 let Inst{3-3} = 0b0;
25658 let Inst{12-8} = 0b11101;
25659 let hasNewValue = 1;
25660 let opNewValue = 0;
25661 let AsmVariantName = "NonParsable";
25662 let DecoderNamespace = "SUBINSN_A";
25663 }
25664 def SA1_dec : HInst<
25665 (outs GeneralSubRegs:$Rd16),
25666 (ins GeneralSubRegs:$Rs16, n1Const:$n1),
25667 "$Rd16 = add($Rs16,#$n1)",
25668 tc_0a705168, TypeSUBINSN>, Enc_ee5ed0 {
25669 let Inst{12-8} = 0b10011;
25670 let hasNewValue = 1;
25671 let opNewValue = 0;
25672 let AsmVariantName = "NonParsable";
25673 let DecoderNamespace = "SUBINSN_A";
25674 }
25675 def SA1_inc : HInst<
25676 (outs GeneralSubRegs:$Rd16),
25677 (ins GeneralSubRegs:$Rs16),
25678 "$Rd16 = add($Rs16,#1)",
25679 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25680 let Inst{12-8} = 0b10001;
25681 let hasNewValue = 1;
25682 let opNewValue = 0;
25683 let AsmVariantName = "NonParsable";
25684 let DecoderNamespace = "SUBINSN_A";
25685 }
25686 def SA1_seti : HInst<
25687 (outs GeneralSubRegs:$Rd16),
25688 (ins u32_0Imm:$Ii),
25689 "$Rd16 = #$Ii",
25690 tc_9fc3dae0, TypeSUBINSN>, Enc_e39bb2 {
25691 let Inst{12-10} = 0b010;
25692 let hasNewValue = 1;
25693 let opNewValue = 0;
25694 let AsmVariantName = "NonParsable";
25695 let DecoderNamespace = "SUBINSN_A";
25696 let isExtendable = 1;
25697 let opExtendable = 1;
25698 let isExtentSigned = 0;
25699 let opExtentBits = 6;
25700 let opExtentAlign = 0;
25701 }
25702 def SA1_setin1 : HInst<
25703 (outs GeneralSubRegs:$Rd16),
25704 (ins n1Const:$n1),
25705 "$Rd16 = #$n1",
25706 tc_9fc3dae0, TypeSUBINSN>, Enc_7a0ea6 {
25707 let Inst{12-4} = 0b110100000;
25708 let hasNewValue = 1;
25709 let opNewValue = 0;
25710 let AsmVariantName = "NonParsable";
25711 let DecoderNamespace = "SUBINSN_A";
25712 }
25713 def SA1_sxtb : HInst<
25714 (outs GeneralSubRegs:$Rd16),
25715 (ins GeneralSubRegs:$Rs16),
25716 "$Rd16 = sxtb($Rs16)",
25717 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25718 let Inst{12-8} = 0b10101;
25719 let hasNewValue = 1;
25720 let opNewValue = 0;
25721 let AsmVariantName = "NonParsable";
25722 let DecoderNamespace = "SUBINSN_A";
25723 }
25724 def SA1_sxth : HInst<
25725 (outs GeneralSubRegs:$Rd16),
25726 (ins GeneralSubRegs:$Rs16),
25727 "$Rd16 = sxth($Rs16)",
25728 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25729 let Inst{12-8} = 0b10100;
25730 let hasNewValue = 1;
25731 let opNewValue = 0;
25732 let AsmVariantName = "NonParsable";
25733 let DecoderNamespace = "SUBINSN_A";
25734 }
25735 def SA1_tfr : HInst<
25736 (outs GeneralSubRegs:$Rd16),
25737 (ins GeneralSubRegs:$Rs16),
25738 "$Rd16 = $Rs16",
25739 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25740 let Inst{12-8} = 0b10000;
25741 let hasNewValue = 1;
25742 let opNewValue = 0;
25743 let AsmVariantName = "NonParsable";
25744 let DecoderNamespace = "SUBINSN_A";
25745 }
25746 def SA1_zxtb : HInst<
25747 (outs GeneralSubRegs:$Rd16),
25748 (ins GeneralSubRegs:$Rs16),
25749 "$Rd16 = and($Rs16,#255)",
25750 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25751 let Inst{12-8} = 0b10111;
25752 let hasNewValue = 1;
25753 let opNewValue = 0;
25754 let AsmVariantName = "NonParsable";
25755 let DecoderNamespace = "SUBINSN_A";
25756 }
25757 def SA1_zxth : HInst<
25758 (outs GeneralSubRegs:$Rd16),
25759 (ins GeneralSubRegs:$Rs16),
25760 "$Rd16 = zxth($Rs16)",
25761 tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25762 let Inst{12-8} = 0b10110;
25763 let hasNewValue = 1;
25764 let opNewValue = 0;
25765 let AsmVariantName = "NonParsable";
25766 let DecoderNamespace = "SUBINSN_A";
25767 }
25768 def SL1_loadri_io : HInst<
25769 (outs GeneralSubRegs:$Rd16),
25770 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
25771 "$Rd16 = memw($Rs16+#$Ii)",
25772 tc_17e0d2cd, TypeSUBINSN>, Enc_53dca9 {
25773 let Inst{12-12} = 0b0;
25774 let hasNewValue = 1;
25775 let opNewValue = 0;
25776 let addrMode = BaseImmOffset;
25777 let accessSize = WordAccess;
25778 let AsmVariantName = "NonParsable";
25779 let mayLoad = 1;
25780 let DecoderNamespace = "SUBINSN_L1";
25781 }
25782 def SL1_loadrub_io : HInst<
25783 (outs GeneralSubRegs:$Rd16),
25784 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
25785 "$Rd16 = memub($Rs16+#$Ii)",
25786 tc_17e0d2cd, TypeSUBINSN>, Enc_c175d0 {
25787 let Inst{12-12} = 0b1;
25788 let hasNewValue = 1;
25789 let opNewValue = 0;
25790 let addrMode = BaseImmOffset;
25791 let accessSize = ByteAccess;
25792 let AsmVariantName = "NonParsable";
25793 let mayLoad = 1;
25794 let DecoderNamespace = "SUBINSN_L1";
25795 }
25796 def SL2_deallocframe : HInst<
25797 (outs),
25798 (ins),
25799 "deallocframe",
25800 tc_39dfefe8, TypeSUBINSN>, Enc_e3b0c4 {
25801 let Inst{12-0} = 0b1111100000000;
25802 let accessSize = DoubleWordAccess;
25803 let AsmVariantName = "NonParsable";
25804 let mayLoad = 1;
25805 let Uses = [FRAMEKEY, R30];
25806 let Defs = [R30, R29, R31];
25807 let DecoderNamespace = "SUBINSN_L2";
25808 }
25809 def SL2_jumpr31 : HInst<
25810 (outs),
25811 (ins),
25812 "jumpr r31",
25813 tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25814 let Inst{12-0} = 0b1111111000000;
25815 let isTerminator = 1;
25816 let isIndirectBranch = 1;
25817 let AsmVariantName = "NonParsable";
25818 let cofMax1 = 1;
25819 let isReturn = 1;
25820 let Uses = [R31];
25821 let Defs = [PC];
25822 let DecoderNamespace = "SUBINSN_L2";
25823 }
25824 def SL2_jumpr31_f : HInst<
25825 (outs),
25826 (ins),
25827 "if (!p0) jumpr r31",
25828 tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25829 let Inst{12-0} = 0b1111111000101;
25830 let isPredicated = 1;
25831 let isPredicatedFalse = 1;
25832 let isTerminator = 1;
25833 let isIndirectBranch = 1;
25834 let AsmVariantName = "NonParsable";
25835 let cofMax1 = 1;
25836 let isReturn = 1;
25837 let Uses = [P0, R31];
25838 let Defs = [PC];
25839 let isTaken = Inst{4};
25840 let DecoderNamespace = "SUBINSN_L2";
25841 }
25842 def SL2_jumpr31_fnew : HInst<
25843 (outs),
25844 (ins),
25845 "if (!p0.new) jumpr:nt r31",
25846 tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25847 let Inst{12-0} = 0b1111111000111;
25848 let isPredicated = 1;
25849 let isPredicatedFalse = 1;
25850 let isTerminator = 1;
25851 let isIndirectBranch = 1;
25852 let AsmVariantName = "NonParsable";
25853 let isPredicatedNew = 1;
25854 let cofMax1 = 1;
25855 let isReturn = 1;
25856 let Uses = [P0, R31];
25857 let Defs = [PC];
25858 let isTaken = Inst{4};
25859 let DecoderNamespace = "SUBINSN_L2";
25860 }
25861 def SL2_jumpr31_t : HInst<
25862 (outs),
25863 (ins),
25864 "if (p0) jumpr r31",
25865 tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25866 let Inst{12-0} = 0b1111111000100;
25867 let isPredicated = 1;
25868 let isTerminator = 1;
25869 let isIndirectBranch = 1;
25870 let AsmVariantName = "NonParsable";
25871 let cofMax1 = 1;
25872 let isReturn = 1;
25873 let Uses = [P0, R31];
25874 let Defs = [PC];
25875 let isTaken = Inst{4};
25876 let DecoderNamespace = "SUBINSN_L2";
25877 }
25878 def SL2_jumpr31_tnew : HInst<
25879 (outs),
25880 (ins),
25881 "if (p0.new) jumpr:nt r31",
25882 tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25883 let Inst{12-0} = 0b1111111000110;
25884 let isPredicated = 1;
25885 let isTerminator = 1;
25886 let isIndirectBranch = 1;
25887 let AsmVariantName = "NonParsable";
25888 let isPredicatedNew = 1;
25889 let cofMax1 = 1;
25890 let isReturn = 1;
25891 let Uses = [P0, R31];
25892 let Defs = [PC];
25893 let isTaken = Inst{4};
25894 let DecoderNamespace = "SUBINSN_L2";
25895 }
25896 def SL2_loadrb_io : HInst<
25897 (outs GeneralSubRegs:$Rd16),
25898 (ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
25899 "$Rd16 = memb($Rs16+#$Ii)",
25900 tc_17e0d2cd, TypeSUBINSN>, Enc_2fbf3c {
25901 let Inst{12-11} = 0b10;
25902 let hasNewValue = 1;
25903 let opNewValue = 0;
25904 let addrMode = BaseImmOffset;
25905 let accessSize = ByteAccess;
25906 let AsmVariantName = "NonParsable";
25907 let mayLoad = 1;
25908 let DecoderNamespace = "SUBINSN_L2";
25909 }
25910 def SL2_loadrd_sp : HInst<
25911 (outs GeneralDoubleLow8Regs:$Rdd8),
25912 (ins u5_3Imm:$Ii),
25913 "$Rdd8 = memd(r29+#$Ii)",
25914 tc_c4db48cb, TypeSUBINSN>, Enc_86a14b {
25915 let Inst{12-8} = 0b11110;
25916 let hasNewValue = 1;
25917 let opNewValue = 0;
25918 let addrMode = BaseImmOffset;
25919 let accessSize = DoubleWordAccess;
25920 let AsmVariantName = "NonParsable";
25921 let mayLoad = 1;
25922 let Uses = [R29];
25923 let DecoderNamespace = "SUBINSN_L2";
25924 }
25925 def SL2_loadrh_io : HInst<
25926 (outs GeneralSubRegs:$Rd16),
25927 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25928 "$Rd16 = memh($Rs16+#$Ii)",
25929 tc_17e0d2cd, TypeSUBINSN>, Enc_2bae10 {
25930 let Inst{12-11} = 0b00;
25931 let hasNewValue = 1;
25932 let opNewValue = 0;
25933 let addrMode = BaseImmOffset;
25934 let accessSize = HalfWordAccess;
25935 let AsmVariantName = "NonParsable";
25936 let mayLoad = 1;
25937 let DecoderNamespace = "SUBINSN_L2";
25938 }
25939 def SL2_loadri_sp : HInst<
25940 (outs GeneralSubRegs:$Rd16),
25941 (ins u5_2Imm:$Ii),
25942 "$Rd16 = memw(r29+#$Ii)",
25943 tc_c4db48cb, TypeSUBINSN>, Enc_51635c {
25944 let Inst{12-9} = 0b1110;
25945 let hasNewValue = 1;
25946 let opNewValue = 0;
25947 let addrMode = BaseImmOffset;
25948 let accessSize = WordAccess;
25949 let AsmVariantName = "NonParsable";
25950 let mayLoad = 1;
25951 let Uses = [R29];
25952 let DecoderNamespace = "SUBINSN_L2";
25953 }
25954 def SL2_loadruh_io : HInst<
25955 (outs GeneralSubRegs:$Rd16),
25956 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25957 "$Rd16 = memuh($Rs16+#$Ii)",
25958 tc_17e0d2cd, TypeSUBINSN>, Enc_2bae10 {
25959 let Inst{12-11} = 0b01;
25960 let hasNewValue = 1;
25961 let opNewValue = 0;
25962 let addrMode = BaseImmOffset;
25963 let accessSize = HalfWordAccess;
25964 let AsmVariantName = "NonParsable";
25965 let mayLoad = 1;
25966 let DecoderNamespace = "SUBINSN_L2";
25967 }
25968 def SL2_return : HInst<
25969 (outs),
25970 (ins),
25971 "dealloc_return",
25972 tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
25973 let Inst{12-0} = 0b1111101000000;
25974 let isTerminator = 1;
25975 let isIndirectBranch = 1;
25976 let accessSize = DoubleWordAccess;
25977 let AsmVariantName = "NonParsable";
25978 let mayLoad = 1;
25979 let cofMax1 = 1;
25980 let isRestrictNoSlot1Store = 1;
25981 let isReturn = 1;
25982 let Uses = [FRAMEKEY, R30];
25983 let Defs = [PC, R30, R29, R31];
25984 let DecoderNamespace = "SUBINSN_L2";
25985 }
25986 def SL2_return_f : HInst<
25987 (outs),
25988 (ins),
25989 "if (!p0) dealloc_return",
25990 tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
25991 let Inst{12-0} = 0b1111101000101;
25992 let isPredicated = 1;
25993 let isPredicatedFalse = 1;
25994 let isTerminator = 1;
25995 let isIndirectBranch = 1;
25996 let accessSize = DoubleWordAccess;
25997 let AsmVariantName = "NonParsable";
25998 let mayLoad = 1;
25999 let cofMax1 = 1;
26000 let isRestrictNoSlot1Store = 1;
26001 let isReturn = 1;
26002 let Uses = [FRAMEKEY, P0, R30];
26003 let Defs = [PC, R30, R29, R31];
26004 let isTaken = Inst{4};
26005 let DecoderNamespace = "SUBINSN_L2";
26006 }
26007 def SL2_return_fnew : HInst<
26008 (outs),
26009 (ins),
26010 "if (!p0.new) dealloc_return:nt",
26011 tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26012 let Inst{12-0} = 0b1111101000111;
26013 let isPredicated = 1;
26014 let isPredicatedFalse = 1;
26015 let isTerminator = 1;
26016 let isIndirectBranch = 1;
26017 let accessSize = DoubleWordAccess;
26018 let AsmVariantName = "NonParsable";
26019 let isPredicatedNew = 1;
26020 let mayLoad = 1;
26021 let cofMax1 = 1;
26022 let isRestrictNoSlot1Store = 1;
26023 let isReturn = 1;
26024 let Uses = [FRAMEKEY, P0, R30];
26025 let Defs = [PC, R30, R29, R31];
26026 let isTaken = Inst{4};
26027 let DecoderNamespace = "SUBINSN_L2";
26028 }
26029 def SL2_return_t : HInst<
26030 (outs),
26031 (ins),
26032 "if (p0) dealloc_return",
26033 tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26034 let Inst{12-0} = 0b1111101000100;
26035 let isPredicated = 1;
26036 let isTerminator = 1;
26037 let isIndirectBranch = 1;
26038 let accessSize = DoubleWordAccess;
26039 let AsmVariantName = "NonParsable";
26040 let mayLoad = 1;
26041 let cofMax1 = 1;
26042 let isRestrictNoSlot1Store = 1;
26043 let isReturn = 1;
26044 let Uses = [FRAMEKEY, P0, R30];
26045 let Defs = [PC, R30, R29, R31];
26046 let isTaken = Inst{4};
26047 let DecoderNamespace = "SUBINSN_L2";
26048 }
26049 def SL2_return_tnew : HInst<
26050 (outs),
26051 (ins),
26052 "if (p0.new) dealloc_return:nt",
26053 tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26054 let Inst{12-0} = 0b1111101000110;
26055 let isPredicated = 1;
26056 let isTerminator = 1;
26057 let isIndirectBranch = 1;
26058 let accessSize = DoubleWordAccess;
26059 let AsmVariantName = "NonParsable";
26060 let isPredicatedNew = 1;
26061 let mayLoad = 1;
26062 let cofMax1 = 1;
26063 let isRestrictNoSlot1Store = 1;
26064 let isReturn = 1;
26065 let Uses = [FRAMEKEY, P0, R30];
26066 let Defs = [PC, R30, R29, R31];
26067 let isTaken = Inst{4};
26068 let DecoderNamespace = "SUBINSN_L2";
26069 }
26070 def SS1_storeb_io : HInst<
26071 (outs),
26072 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26073 "memb($Rs16+#$Ii) = $Rt16",
26074 tc_30b9bb4a, TypeSUBINSN>, Enc_b38ffc {
26075 let Inst{12-12} = 0b1;
26076 let addrMode = BaseImmOffset;
26077 let accessSize = ByteAccess;
26078 let AsmVariantName = "NonParsable";
26079 let mayStore = 1;
26080 let DecoderNamespace = "SUBINSN_S1";
26081 }
26082 def SS1_storew_io : HInst<
26083 (outs),
26084 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26085 "memw($Rs16+#$Ii) = $Rt16",
26086 tc_30b9bb4a, TypeSUBINSN>, Enc_f55a0c {
26087 let Inst{12-12} = 0b0;
26088 let addrMode = BaseImmOffset;
26089 let accessSize = WordAccess;
26090 let AsmVariantName = "NonParsable";
26091 let mayStore = 1;
26092 let DecoderNamespace = "SUBINSN_S1";
26093 }
26094 def SS2_allocframe : HInst<
26095 (outs),
26096 (ins u5_3Imm:$Ii),
26097 "allocframe(#$Ii)",
26098 tc_49a8207d, TypeSUBINSN>, Enc_6f70ca {
26099 let Inst{3-0} = 0b0000;
26100 let Inst{12-9} = 0b1110;
26101 let addrMode = BaseImmOffset;
26102 let accessSize = DoubleWordAccess;
26103 let AsmVariantName = "NonParsable";
26104 let mayStore = 1;
26105 let Uses = [FRAMEKEY, FRAMELIMIT, R30, R29, R31];
26106 let Defs = [R30, R29];
26107 let DecoderNamespace = "SUBINSN_S2";
26108 }
26109 def SS2_storebi0 : HInst<
26110 (outs),
26111 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26112 "memb($Rs16+#$Ii) = #0",
26113 tc_89e94ad3, TypeSUBINSN>, Enc_84d359 {
26114 let Inst{12-8} = 0b10010;
26115 let addrMode = BaseImmOffset;
26116 let accessSize = ByteAccess;
26117 let AsmVariantName = "NonParsable";
26118 let mayStore = 1;
26119 let DecoderNamespace = "SUBINSN_S2";
26120 }
26121 def SS2_storebi1 : HInst<
26122 (outs),
26123 (ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26124 "memb($Rs16+#$Ii) = #1",
26125 tc_89e94ad3, TypeSUBINSN>, Enc_84d359 {
26126 let Inst{12-8} = 0b10011;
26127 let addrMode = BaseImmOffset;
26128 let accessSize = ByteAccess;
26129 let AsmVariantName = "NonParsable";
26130 let mayStore = 1;
26131 let DecoderNamespace = "SUBINSN_S2";
26132 }
26133 def SS2_stored_sp : HInst<
26134 (outs),
26135 (ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26136 "memd(r29+#$Ii) = $Rtt8",
26137 tc_0371abea, TypeSUBINSN>, Enc_b8309d {
26138 let Inst{12-9} = 0b0101;
26139 let addrMode = BaseImmOffset;
26140 let accessSize = DoubleWordAccess;
26141 let AsmVariantName = "NonParsable";
26142 let mayStore = 1;
26143 let Uses = [R29];
26144 let DecoderNamespace = "SUBINSN_S2";
26145 }
26146 def SS2_storeh_io : HInst<
26147 (outs),
26148 (ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26149 "memh($Rs16+#$Ii) = $Rt16",
26150 tc_30b9bb4a, TypeSUBINSN>, Enc_625deb {
26151 let Inst{12-11} = 0b00;
26152 let addrMode = BaseImmOffset;
26153 let accessSize = HalfWordAccess;
26154 let AsmVariantName = "NonParsable";
26155 let mayStore = 1;
26156 let DecoderNamespace = "SUBINSN_S2";
26157 }
26158 def SS2_storew_sp : HInst<
26159 (outs),
26160 (ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26161 "memw(r29+#$Ii) = $Rt16",
26162 tc_0371abea, TypeSUBINSN>, Enc_87c142 {
26163 let Inst{12-9} = 0b0100;
26164 let addrMode = BaseImmOffset;
26165 let accessSize = WordAccess;
26166 let AsmVariantName = "NonParsable";
26167 let mayStore = 1;
26168 let Uses = [R29];
26169 let DecoderNamespace = "SUBINSN_S2";
26170 }
26171 def SS2_storewi0 : HInst<
26172 (outs),
26173 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26174 "memw($Rs16+#$Ii) = #0",
26175 tc_89e94ad3, TypeSUBINSN>, Enc_a6ce9c {
26176 let Inst{12-8} = 0b10000;
26177 let addrMode = BaseImmOffset;
26178 let accessSize = WordAccess;
26179 let AsmVariantName = "NonParsable";
26180 let mayStore = 1;
26181 let DecoderNamespace = "SUBINSN_S2";
26182 }
26183 def SS2_storewi1 : HInst<
26184 (outs),
26185 (ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26186 "memw($Rs16+#$Ii) = #1",
26187 tc_89e94ad3, TypeSUBINSN>, Enc_a6ce9c {
26188 let Inst{12-8} = 0b10001;
26189 let addrMode = BaseImmOffset;
26190 let accessSize = WordAccess;
26191 let AsmVariantName = "NonParsable";
26192 let mayStore = 1;
26193 let DecoderNamespace = "SUBINSN_S2";
26194 }
26195 def V6_MAP_equb : HInst<
26196 (outs HvxQR:$Qd4),
26197 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26198 "$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26199 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26200 let hasNewValue = 1;
26201 let opNewValue = 0;
26202 let isPseudo = 1;
26203 let isCodeGenOnly = 1;
26204 let DecoderNamespace = "EXT_mmvec";
26205 }
26206 def V6_MAP_equb_and : HInst<
26207 (outs HvxQR:$Qx4),
26208 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26209 "$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26210 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26211 let isPseudo = 1;
26212 let isCodeGenOnly = 1;
26213 let DecoderNamespace = "EXT_mmvec";
26214 let Constraints = "$Qx4 = $Qx4in";
26215 }
26216 def V6_MAP_equb_ior : HInst<
26217 (outs HvxQR:$Qx4),
26218 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26219 "$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26220 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26221 let isAccumulator = 1;
26222 let isPseudo = 1;
26223 let isCodeGenOnly = 1;
26224 let DecoderNamespace = "EXT_mmvec";
26225 let Constraints = "$Qx4 = $Qx4in";
26226 }
26227 def V6_MAP_equb_xor : HInst<
26228 (outs HvxQR:$Qx4),
26229 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26230 "$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26231 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26232 let isPseudo = 1;
26233 let isCodeGenOnly = 1;
26234 let DecoderNamespace = "EXT_mmvec";
26235 let Constraints = "$Qx4 = $Qx4in";
26236 }
26237 def V6_MAP_equh : HInst<
26238 (outs HvxQR:$Qd4),
26239 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26240 "$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26241 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26242 let hasNewValue = 1;
26243 let opNewValue = 0;
26244 let isPseudo = 1;
26245 let isCodeGenOnly = 1;
26246 let DecoderNamespace = "EXT_mmvec";
26247 }
26248 def V6_MAP_equh_and : HInst<
26249 (outs HvxQR:$Qx4),
26250 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26251 "$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26252 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26253 let isPseudo = 1;
26254 let isCodeGenOnly = 1;
26255 let DecoderNamespace = "EXT_mmvec";
26256 let Constraints = "$Qx4 = $Qx4in";
26257 }
26258 def V6_MAP_equh_ior : HInst<
26259 (outs HvxQR:$Qx4),
26260 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26261 "$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26262 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26263 let isAccumulator = 1;
26264 let isPseudo = 1;
26265 let isCodeGenOnly = 1;
26266 let DecoderNamespace = "EXT_mmvec";
26267 let Constraints = "$Qx4 = $Qx4in";
26268 }
26269 def V6_MAP_equh_xor : HInst<
26270 (outs HvxQR:$Qx4),
26271 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26272 "$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26273 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26274 let isPseudo = 1;
26275 let isCodeGenOnly = 1;
26276 let DecoderNamespace = "EXT_mmvec";
26277 let Constraints = "$Qx4 = $Qx4in";
26278 }
26279 def V6_MAP_equw : HInst<
26280 (outs HvxQR:$Qd4),
26281 (ins HvxVR:$Vu32, HvxVR:$Vv32),
26282 "$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26283 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26284 let hasNewValue = 1;
26285 let opNewValue = 0;
26286 let isPseudo = 1;
26287 let isCodeGenOnly = 1;
26288 let DecoderNamespace = "EXT_mmvec";
26289 }
26290 def V6_MAP_equw_and : HInst<
26291 (outs HvxQR:$Qx4),
26292 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26293 "$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26294 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26295 let isPseudo = 1;
26296 let isCodeGenOnly = 1;
26297 let DecoderNamespace = "EXT_mmvec";
26298 let Constraints = "$Qx4 = $Qx4in";
26299 }
26300 def V6_MAP_equw_ior : HInst<
26301 (outs HvxQR:$Qx4),
26302 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26303 "$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26304 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26305 let isAccumulator = 1;
26306 let isPseudo = 1;
26307 let isCodeGenOnly = 1;
26308 let DecoderNamespace = "EXT_mmvec";
26309 let Constraints = "$Qx4 = $Qx4in";
26310 }
26311 def V6_MAP_equw_xor : HInst<
26312 (outs HvxQR:$Qx4),
26313 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26314 "$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26315 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26316 let isPseudo = 1;
26317 let isCodeGenOnly = 1;
26318 let DecoderNamespace = "EXT_mmvec";
26319 let Constraints = "$Qx4 = $Qx4in";
26320 }
26321 def V6_extractw : HInst<
26322 (outs IntRegs:$Rd32),
26323 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26324 "$Rd32 = vextract($Vu32,$Rs32)",
26325 tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26326 let Inst{7-5} = 0b001;
26327 let Inst{13-13} = 0b0;
26328 let Inst{31-21} = 0b10010010000;
26329 let hasNewValue = 1;
26330 let opNewValue = 0;
26331 let isSolo = 1;
26332 let mayLoad = 1;
26333 let DecoderNamespace = "EXT_mmvec";
26334 }
26335 def V6_extractw_alt : HInst<
26336 (outs IntRegs:$Rd32),
26337 (ins HvxVR:$Vu32, IntRegs:$Rs32),
26338 "$Rd32.w = vextract($Vu32,$Rs32)",
26339 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26340 let hasNewValue = 1;
26341 let opNewValue = 0;
26342 let isPseudo = 1;
26343 let isCodeGenOnly = 1;
26344 let DecoderNamespace = "EXT_mmvec";
26345 }
26346 def V6_hi : HInst<
26347 (outs HvxVR:$Vd32),
26348 (ins HvxWR:$Vss32),
26349 "$Vd32 = hi($Vss32)",
26350 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26351 let hasNewValue = 1;
26352 let opNewValue = 0;
26353 let isPseudo = 1;
26354 let DecoderNamespace = "EXT_mmvec";
26355 }
26356 def V6_ld0 : HInst<
26357 (outs HvxVR:$Vd32),
26358 (ins IntRegs:$Rt32),
26359 "$Vd32 = vmem($Rt32)",
26360 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26361 let hasNewValue = 1;
26362 let opNewValue = 0;
26363 let isPseudo = 1;
26364 let isCodeGenOnly = 1;
26365 let DecoderNamespace = "EXT_mmvec";
26366 }
26367 def V6_ldcnp0 : HInst<
26368 (outs HvxVR:$Vd32),
26369 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26370 "if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26371 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26372 let hasNewValue = 1;
26373 let opNewValue = 0;
26374 let isPseudo = 1;
26375 let isCodeGenOnly = 1;
26376 let DecoderNamespace = "EXT_mmvec";
26377 }
26378 def V6_ldcnpnt0 : HInst<
26379 (outs HvxVR:$Vd32),
26380 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26381 "if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26382 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26383 let hasNewValue = 1;
26384 let opNewValue = 0;
26385 let isPseudo = 1;
26386 let isCodeGenOnly = 1;
26387 let DecoderNamespace = "EXT_mmvec";
26388 }
26389 def V6_ldcp0 : HInst<
26390 (outs HvxVR:$Vd32),
26391 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26392 "if ($Pv4) $Vd32.cur = vmem($Rt32)",
26393 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26394 let hasNewValue = 1;
26395 let opNewValue = 0;
26396 let isPseudo = 1;
26397 let isCodeGenOnly = 1;
26398 let DecoderNamespace = "EXT_mmvec";
26399 }
26400 def V6_ldcpnt0 : HInst<
26401 (outs HvxVR:$Vd32),
26402 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26403 "if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26404 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26405 let hasNewValue = 1;
26406 let opNewValue = 0;
26407 let isPseudo = 1;
26408 let isCodeGenOnly = 1;
26409 let DecoderNamespace = "EXT_mmvec";
26410 }
26411 def V6_ldnp0 : HInst<
26412 (outs HvxVR:$Vd32),
26413 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26414 "if (!$Pv4) $Vd32 = vmem($Rt32)",
26415 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26416 let hasNewValue = 1;
26417 let opNewValue = 0;
26418 let isPseudo = 1;
26419 let isCodeGenOnly = 1;
26420 let DecoderNamespace = "EXT_mmvec";
26421 }
26422 def V6_ldnpnt0 : HInst<
26423 (outs HvxVR:$Vd32),
26424 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26425 "if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26426 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26427 let hasNewValue = 1;
26428 let opNewValue = 0;
26429 let isPseudo = 1;
26430 let isCodeGenOnly = 1;
26431 let DecoderNamespace = "EXT_mmvec";
26432 }
26433 def V6_ldnt0 : HInst<
26434 (outs HvxVR:$Vd32),
26435 (ins IntRegs:$Rt32),
26436 "$Vd32 = vmem($Rt32):nt",
26437 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26438 let hasNewValue = 1;
26439 let opNewValue = 0;
26440 let isPseudo = 1;
26441 let isCodeGenOnly = 1;
26442 let DecoderNamespace = "EXT_mmvec";
26443 }
26444 def V6_ldntnt0 : HInst<
26445 (outs HvxVR:$Vd32),
26446 (ins IntRegs:$Rt32),
26447 "$Vd32 = vmem($Rt32):nt",
26448 PSEUDO, TypeMAPPING>, Requires<[HasV62]> {
26449 let hasNewValue = 1;
26450 let opNewValue = 0;
26451 let isPseudo = 1;
26452 let isCodeGenOnly = 1;
26453 let DecoderNamespace = "EXT_mmvec";
26454 }
26455 def V6_ldp0 : HInst<
26456 (outs HvxVR:$Vd32),
26457 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26458 "if ($Pv4) $Vd32 = vmem($Rt32)",
26459 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26460 let hasNewValue = 1;
26461 let opNewValue = 0;
26462 let isPseudo = 1;
26463 let isCodeGenOnly = 1;
26464 let DecoderNamespace = "EXT_mmvec";
26465 }
26466 def V6_ldpnt0 : HInst<
26467 (outs HvxVR:$Vd32),
26468 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26469 "if ($Pv4) $Vd32 = vmem($Rt32):nt",
26470 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26471 let hasNewValue = 1;
26472 let opNewValue = 0;
26473 let isPseudo = 1;
26474 let isCodeGenOnly = 1;
26475 let DecoderNamespace = "EXT_mmvec";
26476 }
26477 def V6_ldtnp0 : HInst<
26478 (outs HvxVR:$Vd32),
26479 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26480 "if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26481 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26482 let hasNewValue = 1;
26483 let opNewValue = 0;
26484 let isPseudo = 1;
26485 let isCodeGenOnly = 1;
26486 let DecoderNamespace = "EXT_mmvec";
26487 }
26488 def V6_ldtnpnt0 : HInst<
26489 (outs HvxVR:$Vd32),
26490 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26491 "if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26492 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26493 let hasNewValue = 1;
26494 let opNewValue = 0;
26495 let isPseudo = 1;
26496 let isCodeGenOnly = 1;
26497 let DecoderNamespace = "EXT_mmvec";
26498 }
26499 def V6_ldtp0 : HInst<
26500 (outs HvxVR:$Vd32),
26501 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26502 "if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26503 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26504 let hasNewValue = 1;
26505 let opNewValue = 0;
26506 let isPseudo = 1;
26507 let isCodeGenOnly = 1;
26508 let DecoderNamespace = "EXT_mmvec";
26509 }
26510 def V6_ldtpnt0 : HInst<
26511 (outs HvxVR:$Vd32),
26512 (ins PredRegs:$Pv4, IntRegs:$Rt32),
26513 "if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26514 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26515 let hasNewValue = 1;
26516 let opNewValue = 0;
26517 let isPseudo = 1;
26518 let isCodeGenOnly = 1;
26519 let DecoderNamespace = "EXT_mmvec";
26520 }
26521 def V6_ldu0 : HInst<
26522 (outs HvxVR:$Vd32),
26523 (ins IntRegs:$Rt32),
26524 "$Vd32 = vmemu($Rt32)",
26525 PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26526 let hasNewValue = 1;
26527 let opNewValue = 0;
26528 let isPseudo = 1;
26529 let isCodeGenOnly = 1;
26530 let DecoderNamespace = "EXT_mmvec";
26531 }
26532 def V6_lo : HInst<
26533 (outs HvxVR:$Vd32),
26534 (ins HvxWR:$Vss32),
26535 "$Vd32 = lo($Vss32)",
26536 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26537 let hasNewValue = 1;
26538 let opNewValue = 0;
26539 let isPseudo = 1;
26540 let DecoderNamespace = "EXT_mmvec";
26541 }
26542 def V6_lvsplatb : HInst<
26543 (outs HvxVR:$Vd32),
26544 (ins IntRegs:$Rt32),
26545 "$Vd32.b = vsplat($Rt32)",
26546 tc_c4edf264, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26547 let Inst{13-5} = 0b000000010;
26548 let Inst{31-21} = 0b00011001110;
26549 let hasNewValue = 1;
26550 let opNewValue = 0;
26551 let DecoderNamespace = "EXT_mmvec";
26552 }
26553 def V6_lvsplath : HInst<
26554 (outs HvxVR:$Vd32),
26555 (ins IntRegs:$Rt32),
26556 "$Vd32.h = vsplat($Rt32)",
26557 tc_c4edf264, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26558 let Inst{13-5} = 0b000000001;
26559 let Inst{31-21} = 0b00011001110;
26560 let hasNewValue = 1;
26561 let opNewValue = 0;
26562 let DecoderNamespace = "EXT_mmvec";
26563 }
26564 def V6_lvsplatw : HInst<
26565 (outs HvxVR:$Vd32),
26566 (ins IntRegs:$Rt32),
26567 "$Vd32 = vsplat($Rt32)",
26568 tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
26569 let Inst{13-5} = 0b000000001;
26570 let Inst{31-21} = 0b00011001101;
26571 let hasNewValue = 1;
26572 let opNewValue = 0;
26573 let DecoderNamespace = "EXT_mmvec";
26574 }
26575 def V6_pred_and : HInst<
26576 (outs HvxQR:$Qd4),
26577 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26578 "$Qd4 = and($Qs4,$Qt4)",
26579 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26580 let Inst{7-2} = 0b000000;
26581 let Inst{13-10} = 0b0000;
26582 let Inst{21-16} = 0b000011;
26583 let Inst{31-24} = 0b00011110;
26584 let hasNewValue = 1;
26585 let opNewValue = 0;
26586 let DecoderNamespace = "EXT_mmvec";
26587 }
26588 def V6_pred_and_n : HInst<
26589 (outs HvxQR:$Qd4),
26590 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26591 "$Qd4 = and($Qs4,!$Qt4)",
26592 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26593 let Inst{7-2} = 0b000101;
26594 let Inst{13-10} = 0b0000;
26595 let Inst{21-16} = 0b000011;
26596 let Inst{31-24} = 0b00011110;
26597 let hasNewValue = 1;
26598 let opNewValue = 0;
26599 let DecoderNamespace = "EXT_mmvec";
26600 }
26601 def V6_pred_not : HInst<
26602 (outs HvxQR:$Qd4),
26603 (ins HvxQR:$Qs4),
26604 "$Qd4 = not($Qs4)",
26605 tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
26606 let Inst{7-2} = 0b000010;
26607 let Inst{13-10} = 0b0000;
26608 let Inst{31-16} = 0b0001111000000011;
26609 let hasNewValue = 1;
26610 let opNewValue = 0;
26611 let DecoderNamespace = "EXT_mmvec";
26612 }
26613 def V6_pred_or : HInst<
26614 (outs HvxQR:$Qd4),
26615 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26616 "$Qd4 = or($Qs4,$Qt4)",
26617 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26618 let Inst{7-2} = 0b000001;
26619 let Inst{13-10} = 0b0000;
26620 let Inst{21-16} = 0b000011;
26621 let Inst{31-24} = 0b00011110;
26622 let hasNewValue = 1;
26623 let opNewValue = 0;
26624 let DecoderNamespace = "EXT_mmvec";
26625 }
26626 def V6_pred_or_n : HInst<
26627 (outs HvxQR:$Qd4),
26628 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26629 "$Qd4 = or($Qs4,!$Qt4)",
26630 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26631 let Inst{7-2} = 0b000100;
26632 let Inst{13-10} = 0b0000;
26633 let Inst{21-16} = 0b000011;
26634 let Inst{31-24} = 0b00011110;
26635 let hasNewValue = 1;
26636 let opNewValue = 0;
26637 let DecoderNamespace = "EXT_mmvec";
26638 }
26639 def V6_pred_scalar2 : HInst<
26640 (outs HvxQR:$Qd4),
26641 (ins IntRegs:$Rt32),
26642 "$Qd4 = vsetq($Rt32)",
26643 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
26644 let Inst{13-2} = 0b000000010001;
26645 let Inst{31-21} = 0b00011001101;
26646 let hasNewValue = 1;
26647 let opNewValue = 0;
26648 let DecoderNamespace = "EXT_mmvec";
26649 }
26650 def V6_pred_scalar2v2 : HInst<
26651 (outs HvxQR:$Qd4),
26652 (ins IntRegs:$Rt32),
26653 "$Qd4 = vsetq2($Rt32)",
26654 tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
26655 let Inst{13-2} = 0b000000010011;
26656 let Inst{31-21} = 0b00011001101;
26657 let hasNewValue = 1;
26658 let opNewValue = 0;
26659 let DecoderNamespace = "EXT_mmvec";
26660 }
26661 def V6_pred_xor : HInst<
26662 (outs HvxQR:$Qd4),
26663 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26664 "$Qd4 = xor($Qs4,$Qt4)",
26665 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26666 let Inst{7-2} = 0b000011;
26667 let Inst{13-10} = 0b0000;
26668 let Inst{21-16} = 0b000011;
26669 let Inst{31-24} = 0b00011110;
26670 let hasNewValue = 1;
26671 let opNewValue = 0;
26672 let DecoderNamespace = "EXT_mmvec";
26673 }
26674 def V6_shuffeqh : HInst<
26675 (outs HvxQR:$Qd4),
26676 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26677 "$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
26678 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
26679 let Inst{7-2} = 0b000110;
26680 let Inst{13-10} = 0b0000;
26681 let Inst{21-16} = 0b000011;
26682 let Inst{31-24} = 0b00011110;
26683 let hasNewValue = 1;
26684 let opNewValue = 0;
26685 let DecoderNamespace = "EXT_mmvec";
26686 }
26687 def V6_shuffeqw : HInst<
26688 (outs HvxQR:$Qd4),
26689 (ins HvxQR:$Qs4, HvxQR:$Qt4),
26690 "$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
26691 tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
26692 let Inst{7-2} = 0b000111;
26693 let Inst{13-10} = 0b0000;
26694 let Inst{21-16} = 0b000011;
26695 let Inst{31-24} = 0b00011110;
26696 let hasNewValue = 1;
26697 let opNewValue = 0;
26698 let DecoderNamespace = "EXT_mmvec";
26699 }
26700 def V6_st0 : HInst<
26701 (outs),
26702 (ins IntRegs:$Rt32, HvxVR:$Vs32),
26703 "vmem($Rt32) = $Vs32",
26704 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26705 let isPseudo = 1;
26706 let isCodeGenOnly = 1;
26707 let DecoderNamespace = "EXT_mmvec";
26708 }
26709 def V6_stn0 : HInst<
26710 (outs),
26711 (ins IntRegs:$Rt32, HvxVR:$Os8),
26712 "vmem($Rt32) = $Os8.new",
26713 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26714 let isPseudo = 1;
26715 let isCodeGenOnly = 1;
26716 let DecoderNamespace = "EXT_mmvec";
26717 let opNewValue = 1;
26718 }
26719 def V6_stnnt0 : HInst<
26720 (outs),
26721 (ins IntRegs:$Rt32, HvxVR:$Os8),
26722 "vmem($Rt32):nt = $Os8.new",
26723 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26724 let isPseudo = 1;
26725 let isCodeGenOnly = 1;
26726 let DecoderNamespace = "EXT_mmvec";
26727 let opNewValue = 1;
26728 }
26729 def V6_stnp0 : HInst<
26730 (outs),
26731 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26732 "if (!$Pv4) vmem($Rt32) = $Vs32",
26733 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26734 let isPseudo = 1;
26735 let isCodeGenOnly = 1;
26736 let DecoderNamespace = "EXT_mmvec";
26737 }
26738 def V6_stnpnt0 : HInst<
26739 (outs),
26740 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26741 "if (!$Pv4) vmem($Rt32):nt = $Vs32",
26742 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26743 let isPseudo = 1;
26744 let isCodeGenOnly = 1;
26745 let DecoderNamespace = "EXT_mmvec";
26746 }
26747 def V6_stnq0 : HInst<
26748 (outs),
26749 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26750 "if (!$Qv4) vmem($Rt32) = $Vs32",
26751 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26752 let isPseudo = 1;
26753 let isCodeGenOnly = 1;
26754 let DecoderNamespace = "EXT_mmvec";
26755 }
26756 def V6_stnqnt0 : HInst<
26757 (outs),
26758 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26759 "if (!$Qv4) vmem($Rt32):nt = $Vs32",
26760 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26761 let isPseudo = 1;
26762 let isCodeGenOnly = 1;
26763 let DecoderNamespace = "EXT_mmvec";
26764 }
26765 def V6_stnt0 : HInst<
26766 (outs),
26767 (ins IntRegs:$Rt32, HvxVR:$Vs32),
26768 "vmem($Rt32):nt = $Vs32",
26769 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26770 let isPseudo = 1;
26771 let isCodeGenOnly = 1;
26772 let DecoderNamespace = "EXT_mmvec";
26773 }
26774 def V6_stp0 : HInst<
26775 (outs),
26776 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26777 "if ($Pv4) vmem($Rt32) = $Vs32",
26778 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26779 let isPseudo = 1;
26780 let isCodeGenOnly = 1;
26781 let DecoderNamespace = "EXT_mmvec";
26782 }
26783 def V6_stpnt0 : HInst<
26784 (outs),
26785 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26786 "if ($Pv4) vmem($Rt32):nt = $Vs32",
26787 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26788 let isPseudo = 1;
26789 let isCodeGenOnly = 1;
26790 let DecoderNamespace = "EXT_mmvec";
26791 }
26792 def V6_stq0 : HInst<
26793 (outs),
26794 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26795 "if ($Qv4) vmem($Rt32) = $Vs32",
26796 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26797 let isPseudo = 1;
26798 let isCodeGenOnly = 1;
26799 let DecoderNamespace = "EXT_mmvec";
26800 }
26801 def V6_stqnt0 : HInst<
26802 (outs),
26803 (ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26804 "if ($Qv4) vmem($Rt32):nt = $Vs32",
26805 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26806 let isPseudo = 1;
26807 let isCodeGenOnly = 1;
26808 let DecoderNamespace = "EXT_mmvec";
26809 }
26810 def V6_stu0 : HInst<
26811 (outs),
26812 (ins IntRegs:$Rt32, HvxVR:$Vs32),
26813 "vmemu($Rt32) = $Vs32",
26814 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26815 let isPseudo = 1;
26816 let isCodeGenOnly = 1;
26817 let DecoderNamespace = "EXT_mmvec";
26818 }
26819 def V6_stunp0 : HInst<
26820 (outs),
26821 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26822 "if (!$Pv4) vmemu($Rt32) = $Vs32",
26823 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26824 let isPseudo = 1;
26825 let isCodeGenOnly = 1;
26826 let DecoderNamespace = "EXT_mmvec";
26827 }
26828 def V6_stup0 : HInst<
26829 (outs),
26830 (ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26831 "if ($Pv4) vmemu($Rt32) = $Vs32",
26832 PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26833 let isPseudo = 1;
26834 let isCodeGenOnly = 1;
26835 let DecoderNamespace = "EXT_mmvec";
26836 }
26837 def V6_vL32Ub_ai : HInst<
26838 (outs HvxVR:$Vd32),
26839 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
26840 "$Vd32 = vmemu($Rt32+#$Ii)",
26841 tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> {
26842 let Inst{7-5} = 0b111;
26843 let Inst{12-11} = 0b00;
26844 let Inst{31-21} = 0b00101000000;
26845 let hasNewValue = 1;
26846 let opNewValue = 0;
26847 let addrMode = BaseImmOffset;
26848 let accessSize = HVXVectorAccess;
26849 let isCVLoad = 1;
26850 let mayLoad = 1;
26851 let isRestrictNoSlot1Store = 1;
26852 let DecoderNamespace = "EXT_mmvec";
26853 }
26854 def V6_vL32Ub_pi : HInst<
26855 (outs HvxVR:$Vd32, IntRegs:$Rx32),
26856 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26857 "$Vd32 = vmemu($Rx32++#$Ii)",
26858 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> {
26859 let Inst{7-5} = 0b111;
26860 let Inst{13-11} = 0b000;
26861 let Inst{31-21} = 0b00101001000;
26862 let hasNewValue = 1;
26863 let opNewValue = 0;
26864 let addrMode = PostInc;
26865 let accessSize = HVXVectorAccess;
26866 let isCVLoad = 1;
26867 let mayLoad = 1;
26868 let isRestrictNoSlot1Store = 1;
26869 let BaseOpcode = "V6_vL32b_pi";
26870 let DecoderNamespace = "EXT_mmvec";
26871 let Constraints = "$Rx32 = $Rx32in";
26872 }
26873 def V6_vL32Ub_ppu : HInst<
26874 (outs HvxVR:$Vd32, IntRegs:$Rx32),
26875 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
26876 "$Vd32 = vmemu($Rx32++$Mu2)",
26877 tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
26878 let Inst{12-5} = 0b00000111;
26879 let Inst{31-21} = 0b00101011000;
26880 let hasNewValue = 1;
26881 let opNewValue = 0;
26882 let addrMode = PostInc;
26883 let accessSize = HVXVectorAccess;
26884 let isCVLoad = 1;
26885 let mayLoad = 1;
26886 let isRestrictNoSlot1Store = 1;
26887 let DecoderNamespace = "EXT_mmvec";
26888 let Constraints = "$Rx32 = $Rx32in";
26889 }
26890 def V6_vL32b_ai : HInst<
26891 (outs HvxVR:$Vd32),
26892 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
26893 "$Vd32 = vmem($Rt32+#$Ii)",
26894 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
26895 let Inst{7-5} = 0b000;
26896 let Inst{12-11} = 0b00;
26897 let Inst{31-21} = 0b00101000000;
26898 let hasNewValue = 1;
26899 let opNewValue = 0;
26900 let addrMode = BaseImmOffset;
26901 let accessSize = HVXVectorAccess;
26902 let isCVLoad = 1;
26903 let mayLoad = 1;
26904 let isRestrictNoSlot1Store = 1;
26905 let BaseOpcode = "V6_vL32b_ai";
26906 let isCVLoadable = 1;
26907 let isPredicable = 1;
26908 let DecoderNamespace = "EXT_mmvec";
26909 }
26910 def V6_vL32b_cur_ai : HInst<
26911 (outs HvxVR:$Vd32),
26912 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
26913 "$Vd32.cur = vmem($Rt32+#$Ii)",
26914 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
26915 let Inst{7-5} = 0b001;
26916 let Inst{12-11} = 0b00;
26917 let Inst{31-21} = 0b00101000000;
26918 let hasNewValue = 1;
26919 let opNewValue = 0;
26920 let addrMode = BaseImmOffset;
26921 let accessSize = HVXVectorAccess;
26922 let isCVLoad = 1;
26923 let CVINew = 1;
26924 let mayLoad = 1;
26925 let isRestrictNoSlot1Store = 1;
26926 let BaseOpcode = "V6_vL32b_cur_ai";
26927 let isPredicable = 1;
26928 let DecoderNamespace = "EXT_mmvec";
26929 }
26930 def V6_vL32b_cur_npred_ai : HInst<
26931 (outs HvxVR:$Vd32),
26932 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
26933 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
26934 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
26935 let Inst{7-5} = 0b101;
26936 let Inst{31-21} = 0b00101000100;
26937 let isPredicated = 1;
26938 let isPredicatedFalse = 1;
26939 let hasNewValue = 1;
26940 let opNewValue = 0;
26941 let addrMode = BaseImmOffset;
26942 let accessSize = HVXVectorAccess;
26943 let isCVLoad = 1;
26944 let CVINew = 1;
26945 let mayLoad = 1;
26946 let isRestrictNoSlot1Store = 1;
26947 let BaseOpcode = "V6_vL32b_cur_ai";
26948 let DecoderNamespace = "EXT_mmvec";
26949 }
26950 def V6_vL32b_cur_npred_pi : HInst<
26951 (outs HvxVR:$Vd32, IntRegs:$Rx32),
26952 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
26953 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
26954 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
26955 let Inst{7-5} = 0b101;
26956 let Inst{13-13} = 0b0;
26957 let Inst{31-21} = 0b00101001100;
26958 let isPredicated = 1;
26959 let isPredicatedFalse = 1;
26960 let hasNewValue = 1;
26961 let opNewValue = 0;
26962 let addrMode = PostInc;
26963 let accessSize = HVXVectorAccess;
26964 let isCVLoad = 1;
26965 let CVINew = 1;
26966 let mayLoad = 1;
26967 let isRestrictNoSlot1Store = 1;
26968 let BaseOpcode = "V6_vL32b_cur_pi";
26969 let DecoderNamespace = "EXT_mmvec";
26970 let Constraints = "$Rx32 = $Rx32in";
26971 }
26972 def V6_vL32b_cur_npred_ppu : HInst<
26973 (outs HvxVR:$Vd32, IntRegs:$Rx32),
26974 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
26975 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
26976 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
26977 let Inst{10-5} = 0b000101;
26978 let Inst{31-21} = 0b00101011100;
26979 let isPredicated = 1;
26980 let isPredicatedFalse = 1;
26981 let hasNewValue = 1;
26982 let opNewValue = 0;
26983 let addrMode = PostInc;
26984 let accessSize = HVXVectorAccess;
26985 let isCVLoad = 1;
26986 let CVINew = 1;
26987 let mayLoad = 1;
26988 let isRestrictNoSlot1Store = 1;
26989 let BaseOpcode = "V6_vL32b_cur_ppu";
26990 let DecoderNamespace = "EXT_mmvec";
26991 let Constraints = "$Rx32 = $Rx32in";
26992 }
26993 def V6_vL32b_cur_pi : HInst<
26994 (outs HvxVR:$Vd32, IntRegs:$Rx32),
26995 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26996 "$Vd32.cur = vmem($Rx32++#$Ii)",
26997 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
26998 let Inst{7-5} = 0b001;
26999 let Inst{13-11} = 0b000;
27000 let Inst{31-21} = 0b00101001000;
27001 let hasNewValue = 1;
27002 let opNewValue = 0;
27003 let addrMode = PostInc;
27004 let accessSize = HVXVectorAccess;
27005 let isCVLoad = 1;
27006 let CVINew = 1;
27007 let mayLoad = 1;
27008 let isRestrictNoSlot1Store = 1;
27009 let BaseOpcode = "V6_vL32b_cur_pi";
27010 let isPredicable = 1;
27011 let DecoderNamespace = "EXT_mmvec";
27012 let Constraints = "$Rx32 = $Rx32in";
27013 }
27014 def V6_vL32b_cur_ppu : HInst<
27015 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27016 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27017 "$Vd32.cur = vmem($Rx32++$Mu2)",
27018 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27019 let Inst{12-5} = 0b00000001;
27020 let Inst{31-21} = 0b00101011000;
27021 let hasNewValue = 1;
27022 let opNewValue = 0;
27023 let addrMode = PostInc;
27024 let accessSize = HVXVectorAccess;
27025 let isCVLoad = 1;
27026 let CVINew = 1;
27027 let mayLoad = 1;
27028 let isRestrictNoSlot1Store = 1;
27029 let BaseOpcode = "V6_vL32b_cur_ppu";
27030 let isPredicable = 1;
27031 let DecoderNamespace = "EXT_mmvec";
27032 let Constraints = "$Rx32 = $Rx32in";
27033 }
27034 def V6_vL32b_cur_pred_ai : HInst<
27035 (outs HvxVR:$Vd32),
27036 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27037 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27038 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27039 let Inst{7-5} = 0b100;
27040 let Inst{31-21} = 0b00101000100;
27041 let isPredicated = 1;
27042 let hasNewValue = 1;
27043 let opNewValue = 0;
27044 let addrMode = BaseImmOffset;
27045 let accessSize = HVXVectorAccess;
27046 let isCVLoad = 1;
27047 let CVINew = 1;
27048 let mayLoad = 1;
27049 let isRestrictNoSlot1Store = 1;
27050 let BaseOpcode = "V6_vL32b_cur_ai";
27051 let DecoderNamespace = "EXT_mmvec";
27052 }
27053 def V6_vL32b_cur_pred_pi : HInst<
27054 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27055 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27056 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27057 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27058 let Inst{7-5} = 0b100;
27059 let Inst{13-13} = 0b0;
27060 let Inst{31-21} = 0b00101001100;
27061 let isPredicated = 1;
27062 let hasNewValue = 1;
27063 let opNewValue = 0;
27064 let addrMode = PostInc;
27065 let accessSize = HVXVectorAccess;
27066 let isCVLoad = 1;
27067 let CVINew = 1;
27068 let mayLoad = 1;
27069 let isRestrictNoSlot1Store = 1;
27070 let BaseOpcode = "V6_vL32b_cur_pi";
27071 let DecoderNamespace = "EXT_mmvec";
27072 let Constraints = "$Rx32 = $Rx32in";
27073 }
27074 def V6_vL32b_cur_pred_ppu : HInst<
27075 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27076 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27077 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27078 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27079 let Inst{10-5} = 0b000100;
27080 let Inst{31-21} = 0b00101011100;
27081 let isPredicated = 1;
27082 let hasNewValue = 1;
27083 let opNewValue = 0;
27084 let addrMode = PostInc;
27085 let accessSize = HVXVectorAccess;
27086 let isCVLoad = 1;
27087 let CVINew = 1;
27088 let mayLoad = 1;
27089 let isRestrictNoSlot1Store = 1;
27090 let BaseOpcode = "V6_vL32b_cur_ppu";
27091 let DecoderNamespace = "EXT_mmvec";
27092 let Constraints = "$Rx32 = $Rx32in";
27093 }
27094 def V6_vL32b_npred_ai : HInst<
27095 (outs HvxVR:$Vd32),
27096 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27097 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27098 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27099 let Inst{7-5} = 0b011;
27100 let Inst{31-21} = 0b00101000100;
27101 let isPredicated = 1;
27102 let isPredicatedFalse = 1;
27103 let hasNewValue = 1;
27104 let opNewValue = 0;
27105 let addrMode = BaseImmOffset;
27106 let accessSize = HVXVectorAccess;
27107 let isCVLoad = 1;
27108 let mayLoad = 1;
27109 let isRestrictNoSlot1Store = 1;
27110 let BaseOpcode = "V6_vL32b_ai";
27111 let DecoderNamespace = "EXT_mmvec";
27112 }
27113 def V6_vL32b_npred_pi : HInst<
27114 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27115 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27116 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27117 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27118 let Inst{7-5} = 0b011;
27119 let Inst{13-13} = 0b0;
27120 let Inst{31-21} = 0b00101001100;
27121 let isPredicated = 1;
27122 let isPredicatedFalse = 1;
27123 let hasNewValue = 1;
27124 let opNewValue = 0;
27125 let addrMode = PostInc;
27126 let accessSize = HVXVectorAccess;
27127 let isCVLoad = 1;
27128 let mayLoad = 1;
27129 let isRestrictNoSlot1Store = 1;
27130 let BaseOpcode = "V6_vL32b_pi";
27131 let DecoderNamespace = "EXT_mmvec";
27132 let Constraints = "$Rx32 = $Rx32in";
27133 }
27134 def V6_vL32b_npred_ppu : HInst<
27135 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27136 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27137 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27138 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27139 let Inst{10-5} = 0b000011;
27140 let Inst{31-21} = 0b00101011100;
27141 let isPredicated = 1;
27142 let isPredicatedFalse = 1;
27143 let hasNewValue = 1;
27144 let opNewValue = 0;
27145 let addrMode = PostInc;
27146 let accessSize = HVXVectorAccess;
27147 let isCVLoad = 1;
27148 let mayLoad = 1;
27149 let isRestrictNoSlot1Store = 1;
27150 let BaseOpcode = "V6_vL32b_ppu";
27151 let DecoderNamespace = "EXT_mmvec";
27152 let Constraints = "$Rx32 = $Rx32in";
27153 }
27154 def V6_vL32b_nt_ai : HInst<
27155 (outs HvxVR:$Vd32),
27156 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27157 "$Vd32 = vmem($Rt32+#$Ii):nt",
27158 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27159 let Inst{7-5} = 0b000;
27160 let Inst{12-11} = 0b00;
27161 let Inst{31-21} = 0b00101000010;
27162 let hasNewValue = 1;
27163 let opNewValue = 0;
27164 let addrMode = BaseImmOffset;
27165 let accessSize = HVXVectorAccess;
27166 let isCVLoad = 1;
27167 let mayLoad = 1;
27168 let isNonTemporal = 1;
27169 let isRestrictNoSlot1Store = 1;
27170 let BaseOpcode = "V6_vL32b_nt_ai";
27171 let isCVLoadable = 1;
27172 let isPredicable = 1;
27173 let DecoderNamespace = "EXT_mmvec";
27174 }
27175 def V6_vL32b_nt_cur_ai : HInst<
27176 (outs HvxVR:$Vd32),
27177 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27178 "$Vd32.cur = vmem($Rt32+#$Ii):nt",
27179 tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27180 let Inst{7-5} = 0b001;
27181 let Inst{12-11} = 0b00;
27182 let Inst{31-21} = 0b00101000010;
27183 let hasNewValue = 1;
27184 let opNewValue = 0;
27185 let addrMode = BaseImmOffset;
27186 let accessSize = HVXVectorAccess;
27187 let isCVLoad = 1;
27188 let CVINew = 1;
27189 let mayLoad = 1;
27190 let isNonTemporal = 1;
27191 let isRestrictNoSlot1Store = 1;
27192 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27193 let isPredicable = 1;
27194 let DecoderNamespace = "EXT_mmvec";
27195 }
27196 def V6_vL32b_nt_cur_npred_ai : HInst<
27197 (outs HvxVR:$Vd32),
27198 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27199 "if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27200 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27201 let Inst{7-5} = 0b101;
27202 let Inst{31-21} = 0b00101000110;
27203 let isPredicated = 1;
27204 let isPredicatedFalse = 1;
27205 let hasNewValue = 1;
27206 let opNewValue = 0;
27207 let addrMode = BaseImmOffset;
27208 let accessSize = HVXVectorAccess;
27209 let isCVLoad = 1;
27210 let CVINew = 1;
27211 let mayLoad = 1;
27212 let isNonTemporal = 1;
27213 let isRestrictNoSlot1Store = 1;
27214 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27215 let DecoderNamespace = "EXT_mmvec";
27216 }
27217 def V6_vL32b_nt_cur_npred_pi : HInst<
27218 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27219 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27220 "if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27221 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27222 let Inst{7-5} = 0b101;
27223 let Inst{13-13} = 0b0;
27224 let Inst{31-21} = 0b00101001110;
27225 let isPredicated = 1;
27226 let isPredicatedFalse = 1;
27227 let hasNewValue = 1;
27228 let opNewValue = 0;
27229 let addrMode = PostInc;
27230 let accessSize = HVXVectorAccess;
27231 let isCVLoad = 1;
27232 let CVINew = 1;
27233 let mayLoad = 1;
27234 let isNonTemporal = 1;
27235 let isRestrictNoSlot1Store = 1;
27236 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27237 let DecoderNamespace = "EXT_mmvec";
27238 let Constraints = "$Rx32 = $Rx32in";
27239 }
27240 def V6_vL32b_nt_cur_npred_ppu : HInst<
27241 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27242 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27243 "if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27244 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27245 let Inst{10-5} = 0b000101;
27246 let Inst{31-21} = 0b00101011110;
27247 let isPredicated = 1;
27248 let isPredicatedFalse = 1;
27249 let hasNewValue = 1;
27250 let opNewValue = 0;
27251 let addrMode = PostInc;
27252 let accessSize = HVXVectorAccess;
27253 let isCVLoad = 1;
27254 let CVINew = 1;
27255 let mayLoad = 1;
27256 let isNonTemporal = 1;
27257 let isRestrictNoSlot1Store = 1;
27258 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27259 let DecoderNamespace = "EXT_mmvec";
27260 let Constraints = "$Rx32 = $Rx32in";
27261 }
27262 def V6_vL32b_nt_cur_pi : HInst<
27263 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27264 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27265 "$Vd32.cur = vmem($Rx32++#$Ii):nt",
27266 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27267 let Inst{7-5} = 0b001;
27268 let Inst{13-11} = 0b000;
27269 let Inst{31-21} = 0b00101001010;
27270 let hasNewValue = 1;
27271 let opNewValue = 0;
27272 let addrMode = PostInc;
27273 let accessSize = HVXVectorAccess;
27274 let isCVLoad = 1;
27275 let CVINew = 1;
27276 let mayLoad = 1;
27277 let isNonTemporal = 1;
27278 let isRestrictNoSlot1Store = 1;
27279 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27280 let isPredicable = 1;
27281 let DecoderNamespace = "EXT_mmvec";
27282 let Constraints = "$Rx32 = $Rx32in";
27283 }
27284 def V6_vL32b_nt_cur_ppu : HInst<
27285 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27286 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27287 "$Vd32.cur = vmem($Rx32++$Mu2):nt",
27288 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27289 let Inst{12-5} = 0b00000001;
27290 let Inst{31-21} = 0b00101011010;
27291 let hasNewValue = 1;
27292 let opNewValue = 0;
27293 let addrMode = PostInc;
27294 let accessSize = HVXVectorAccess;
27295 let isCVLoad = 1;
27296 let CVINew = 1;
27297 let mayLoad = 1;
27298 let isNonTemporal = 1;
27299 let isRestrictNoSlot1Store = 1;
27300 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27301 let isPredicable = 1;
27302 let DecoderNamespace = "EXT_mmvec";
27303 let Constraints = "$Rx32 = $Rx32in";
27304 }
27305 def V6_vL32b_nt_cur_pred_ai : HInst<
27306 (outs HvxVR:$Vd32),
27307 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27308 "if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27309 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27310 let Inst{7-5} = 0b100;
27311 let Inst{31-21} = 0b00101000110;
27312 let isPredicated = 1;
27313 let hasNewValue = 1;
27314 let opNewValue = 0;
27315 let addrMode = BaseImmOffset;
27316 let accessSize = HVXVectorAccess;
27317 let isCVLoad = 1;
27318 let CVINew = 1;
27319 let mayLoad = 1;
27320 let isNonTemporal = 1;
27321 let isRestrictNoSlot1Store = 1;
27322 let BaseOpcode = "V6_vL32b_nt_cur_ai";
27323 let DecoderNamespace = "EXT_mmvec";
27324 }
27325 def V6_vL32b_nt_cur_pred_pi : HInst<
27326 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27327 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27328 "if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27329 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27330 let Inst{7-5} = 0b100;
27331 let Inst{13-13} = 0b0;
27332 let Inst{31-21} = 0b00101001110;
27333 let isPredicated = 1;
27334 let hasNewValue = 1;
27335 let opNewValue = 0;
27336 let addrMode = PostInc;
27337 let accessSize = HVXVectorAccess;
27338 let isCVLoad = 1;
27339 let CVINew = 1;
27340 let mayLoad = 1;
27341 let isNonTemporal = 1;
27342 let isRestrictNoSlot1Store = 1;
27343 let BaseOpcode = "V6_vL32b_nt_cur_pi";
27344 let DecoderNamespace = "EXT_mmvec";
27345 let Constraints = "$Rx32 = $Rx32in";
27346 }
27347 def V6_vL32b_nt_cur_pred_ppu : HInst<
27348 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27349 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27350 "if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27351 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27352 let Inst{10-5} = 0b000100;
27353 let Inst{31-21} = 0b00101011110;
27354 let isPredicated = 1;
27355 let hasNewValue = 1;
27356 let opNewValue = 0;
27357 let addrMode = PostInc;
27358 let accessSize = HVXVectorAccess;
27359 let isCVLoad = 1;
27360 let CVINew = 1;
27361 let mayLoad = 1;
27362 let isNonTemporal = 1;
27363 let isRestrictNoSlot1Store = 1;
27364 let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27365 let DecoderNamespace = "EXT_mmvec";
27366 let Constraints = "$Rx32 = $Rx32in";
27367 }
27368 def V6_vL32b_nt_npred_ai : HInst<
27369 (outs HvxVR:$Vd32),
27370 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27371 "if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27372 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27373 let Inst{7-5} = 0b011;
27374 let Inst{31-21} = 0b00101000110;
27375 let isPredicated = 1;
27376 let isPredicatedFalse = 1;
27377 let hasNewValue = 1;
27378 let opNewValue = 0;
27379 let addrMode = BaseImmOffset;
27380 let accessSize = HVXVectorAccess;
27381 let isCVLoad = 1;
27382 let mayLoad = 1;
27383 let isNonTemporal = 1;
27384 let isRestrictNoSlot1Store = 1;
27385 let BaseOpcode = "V6_vL32b_nt_ai";
27386 let DecoderNamespace = "EXT_mmvec";
27387 }
27388 def V6_vL32b_nt_npred_pi : HInst<
27389 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27390 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27391 "if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27392 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27393 let Inst{7-5} = 0b011;
27394 let Inst{13-13} = 0b0;
27395 let Inst{31-21} = 0b00101001110;
27396 let isPredicated = 1;
27397 let isPredicatedFalse = 1;
27398 let hasNewValue = 1;
27399 let opNewValue = 0;
27400 let addrMode = PostInc;
27401 let accessSize = HVXVectorAccess;
27402 let isCVLoad = 1;
27403 let mayLoad = 1;
27404 let isNonTemporal = 1;
27405 let isRestrictNoSlot1Store = 1;
27406 let BaseOpcode = "V6_vL32b_nt_pi";
27407 let DecoderNamespace = "EXT_mmvec";
27408 let Constraints = "$Rx32 = $Rx32in";
27409 }
27410 def V6_vL32b_nt_npred_ppu : HInst<
27411 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27412 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27413 "if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27414 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27415 let Inst{10-5} = 0b000011;
27416 let Inst{31-21} = 0b00101011110;
27417 let isPredicated = 1;
27418 let isPredicatedFalse = 1;
27419 let hasNewValue = 1;
27420 let opNewValue = 0;
27421 let addrMode = PostInc;
27422 let accessSize = HVXVectorAccess;
27423 let isCVLoad = 1;
27424 let mayLoad = 1;
27425 let isNonTemporal = 1;
27426 let isRestrictNoSlot1Store = 1;
27427 let BaseOpcode = "V6_vL32b_nt_ppu";
27428 let DecoderNamespace = "EXT_mmvec";
27429 let Constraints = "$Rx32 = $Rx32in";
27430 }
27431 def V6_vL32b_nt_pi : HInst<
27432 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27433 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27434 "$Vd32 = vmem($Rx32++#$Ii):nt",
27435 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27436 let Inst{7-5} = 0b000;
27437 let Inst{13-11} = 0b000;
27438 let Inst{31-21} = 0b00101001010;
27439 let hasNewValue = 1;
27440 let opNewValue = 0;
27441 let addrMode = PostInc;
27442 let accessSize = HVXVectorAccess;
27443 let isCVLoad = 1;
27444 let mayLoad = 1;
27445 let isNonTemporal = 1;
27446 let isRestrictNoSlot1Store = 1;
27447 let BaseOpcode = "V6_vL32b_nt_pi";
27448 let isCVLoadable = 1;
27449 let isPredicable = 1;
27450 let DecoderNamespace = "EXT_mmvec";
27451 let Constraints = "$Rx32 = $Rx32in";
27452 }
27453 def V6_vL32b_nt_ppu : HInst<
27454 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27455 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27456 "$Vd32 = vmem($Rx32++$Mu2):nt",
27457 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27458 let Inst{12-5} = 0b00000000;
27459 let Inst{31-21} = 0b00101011010;
27460 let hasNewValue = 1;
27461 let opNewValue = 0;
27462 let addrMode = PostInc;
27463 let accessSize = HVXVectorAccess;
27464 let isCVLoad = 1;
27465 let mayLoad = 1;
27466 let isNonTemporal = 1;
27467 let isRestrictNoSlot1Store = 1;
27468 let BaseOpcode = "V6_vL32b_nt_ppu";
27469 let isCVLoadable = 1;
27470 let isPredicable = 1;
27471 let DecoderNamespace = "EXT_mmvec";
27472 let Constraints = "$Rx32 = $Rx32in";
27473 }
27474 def V6_vL32b_nt_pred_ai : HInst<
27475 (outs HvxVR:$Vd32),
27476 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27477 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27478 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27479 let Inst{7-5} = 0b010;
27480 let Inst{31-21} = 0b00101000110;
27481 let isPredicated = 1;
27482 let hasNewValue = 1;
27483 let opNewValue = 0;
27484 let addrMode = BaseImmOffset;
27485 let accessSize = HVXVectorAccess;
27486 let isCVLoad = 1;
27487 let mayLoad = 1;
27488 let isNonTemporal = 1;
27489 let isRestrictNoSlot1Store = 1;
27490 let BaseOpcode = "V6_vL32b_nt_ai";
27491 let DecoderNamespace = "EXT_mmvec";
27492 }
27493 def V6_vL32b_nt_pred_pi : HInst<
27494 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27495 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27496 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27497 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27498 let Inst{7-5} = 0b010;
27499 let Inst{13-13} = 0b0;
27500 let Inst{31-21} = 0b00101001110;
27501 let isPredicated = 1;
27502 let hasNewValue = 1;
27503 let opNewValue = 0;
27504 let addrMode = PostInc;
27505 let accessSize = HVXVectorAccess;
27506 let isCVLoad = 1;
27507 let mayLoad = 1;
27508 let isNonTemporal = 1;
27509 let isRestrictNoSlot1Store = 1;
27510 let BaseOpcode = "V6_vL32b_nt_pi";
27511 let DecoderNamespace = "EXT_mmvec";
27512 let Constraints = "$Rx32 = $Rx32in";
27513 }
27514 def V6_vL32b_nt_pred_ppu : HInst<
27515 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27516 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27517 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27518 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27519 let Inst{10-5} = 0b000010;
27520 let Inst{31-21} = 0b00101011110;
27521 let isPredicated = 1;
27522 let hasNewValue = 1;
27523 let opNewValue = 0;
27524 let addrMode = PostInc;
27525 let accessSize = HVXVectorAccess;
27526 let isCVLoad = 1;
27527 let mayLoad = 1;
27528 let isNonTemporal = 1;
27529 let isRestrictNoSlot1Store = 1;
27530 let BaseOpcode = "V6_vL32b_nt_ppu";
27531 let DecoderNamespace = "EXT_mmvec";
27532 let Constraints = "$Rx32 = $Rx32in";
27533 }
27534 def V6_vL32b_nt_tmp_ai : HInst<
27535 (outs HvxVR:$Vd32),
27536 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27537 "$Vd32.tmp = vmem($Rt32+#$Ii):nt",
27538 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27539 let Inst{7-5} = 0b010;
27540 let Inst{12-11} = 0b00;
27541 let Inst{31-21} = 0b00101000010;
27542 let hasNewValue = 1;
27543 let opNewValue = 0;
27544 let addrMode = BaseImmOffset;
27545 let accessSize = HVXVectorAccess;
27546 let isCVLoad = 1;
27547 let mayLoad = 1;
27548 let isNonTemporal = 1;
27549 let isRestrictNoSlot1Store = 1;
27550 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27551 let isPredicable = 1;
27552 let DecoderNamespace = "EXT_mmvec";
27553 }
27554 def V6_vL32b_nt_tmp_npred_ai : HInst<
27555 (outs HvxVR:$Vd32),
27556 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27557 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
27558 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27559 let Inst{7-5} = 0b111;
27560 let Inst{31-21} = 0b00101000110;
27561 let isPredicated = 1;
27562 let isPredicatedFalse = 1;
27563 let hasNewValue = 1;
27564 let opNewValue = 0;
27565 let addrMode = BaseImmOffset;
27566 let accessSize = HVXVectorAccess;
27567 let isCVLoad = 1;
27568 let mayLoad = 1;
27569 let isNonTemporal = 1;
27570 let isRestrictNoSlot1Store = 1;
27571 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27572 let DecoderNamespace = "EXT_mmvec";
27573 }
27574 def V6_vL32b_nt_tmp_npred_pi : HInst<
27575 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27576 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27577 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
27578 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27579 let Inst{7-5} = 0b111;
27580 let Inst{13-13} = 0b0;
27581 let Inst{31-21} = 0b00101001110;
27582 let isPredicated = 1;
27583 let isPredicatedFalse = 1;
27584 let hasNewValue = 1;
27585 let opNewValue = 0;
27586 let addrMode = PostInc;
27587 let accessSize = HVXVectorAccess;
27588 let isCVLoad = 1;
27589 let mayLoad = 1;
27590 let isNonTemporal = 1;
27591 let isRestrictNoSlot1Store = 1;
27592 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27593 let DecoderNamespace = "EXT_mmvec";
27594 let Constraints = "$Rx32 = $Rx32in";
27595 }
27596 def V6_vL32b_nt_tmp_npred_ppu : HInst<
27597 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27598 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27599 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
27600 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27601 let Inst{10-5} = 0b000111;
27602 let Inst{31-21} = 0b00101011110;
27603 let isPredicated = 1;
27604 let isPredicatedFalse = 1;
27605 let hasNewValue = 1;
27606 let opNewValue = 0;
27607 let addrMode = PostInc;
27608 let accessSize = HVXVectorAccess;
27609 let isCVLoad = 1;
27610 let mayLoad = 1;
27611 let isNonTemporal = 1;
27612 let isRestrictNoSlot1Store = 1;
27613 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27614 let DecoderNamespace = "EXT_mmvec";
27615 let Constraints = "$Rx32 = $Rx32in";
27616 }
27617 def V6_vL32b_nt_tmp_pi : HInst<
27618 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27619 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27620 "$Vd32.tmp = vmem($Rx32++#$Ii):nt",
27621 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27622 let Inst{7-5} = 0b010;
27623 let Inst{13-11} = 0b000;
27624 let Inst{31-21} = 0b00101001010;
27625 let hasNewValue = 1;
27626 let opNewValue = 0;
27627 let addrMode = PostInc;
27628 let accessSize = HVXVectorAccess;
27629 let isCVLoad = 1;
27630 let mayLoad = 1;
27631 let isNonTemporal = 1;
27632 let isRestrictNoSlot1Store = 1;
27633 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27634 let isPredicable = 1;
27635 let DecoderNamespace = "EXT_mmvec";
27636 let Constraints = "$Rx32 = $Rx32in";
27637 }
27638 def V6_vL32b_nt_tmp_ppu : HInst<
27639 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27640 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27641 "$Vd32.tmp = vmem($Rx32++$Mu2):nt",
27642 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27643 let Inst{12-5} = 0b00000010;
27644 let Inst{31-21} = 0b00101011010;
27645 let hasNewValue = 1;
27646 let opNewValue = 0;
27647 let addrMode = PostInc;
27648 let accessSize = HVXVectorAccess;
27649 let isCVLoad = 1;
27650 let mayLoad = 1;
27651 let isNonTemporal = 1;
27652 let isRestrictNoSlot1Store = 1;
27653 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27654 let isPredicable = 1;
27655 let DecoderNamespace = "EXT_mmvec";
27656 let Constraints = "$Rx32 = $Rx32in";
27657 }
27658 def V6_vL32b_nt_tmp_pred_ai : HInst<
27659 (outs HvxVR:$Vd32),
27660 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27661 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
27662 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27663 let Inst{7-5} = 0b110;
27664 let Inst{31-21} = 0b00101000110;
27665 let isPredicated = 1;
27666 let hasNewValue = 1;
27667 let opNewValue = 0;
27668 let addrMode = BaseImmOffset;
27669 let accessSize = HVXVectorAccess;
27670 let isCVLoad = 1;
27671 let mayLoad = 1;
27672 let isNonTemporal = 1;
27673 let isRestrictNoSlot1Store = 1;
27674 let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27675 let DecoderNamespace = "EXT_mmvec";
27676 }
27677 def V6_vL32b_nt_tmp_pred_pi : HInst<
27678 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27679 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27680 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
27681 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27682 let Inst{7-5} = 0b110;
27683 let Inst{13-13} = 0b0;
27684 let Inst{31-21} = 0b00101001110;
27685 let isPredicated = 1;
27686 let hasNewValue = 1;
27687 let opNewValue = 0;
27688 let addrMode = PostInc;
27689 let accessSize = HVXVectorAccess;
27690 let isCVLoad = 1;
27691 let mayLoad = 1;
27692 let isNonTemporal = 1;
27693 let isRestrictNoSlot1Store = 1;
27694 let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27695 let DecoderNamespace = "EXT_mmvec";
27696 let Constraints = "$Rx32 = $Rx32in";
27697 }
27698 def V6_vL32b_nt_tmp_pred_ppu : HInst<
27699 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27700 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27701 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
27702 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27703 let Inst{10-5} = 0b000110;
27704 let Inst{31-21} = 0b00101011110;
27705 let isPredicated = 1;
27706 let hasNewValue = 1;
27707 let opNewValue = 0;
27708 let addrMode = PostInc;
27709 let accessSize = HVXVectorAccess;
27710 let isCVLoad = 1;
27711 let mayLoad = 1;
27712 let isNonTemporal = 1;
27713 let isRestrictNoSlot1Store = 1;
27714 let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27715 let DecoderNamespace = "EXT_mmvec";
27716 let Constraints = "$Rx32 = $Rx32in";
27717 }
27718 def V6_vL32b_pi : HInst<
27719 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27720 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27721 "$Vd32 = vmem($Rx32++#$Ii)",
27722 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27723 let Inst{7-5} = 0b000;
27724 let Inst{13-11} = 0b000;
27725 let Inst{31-21} = 0b00101001000;
27726 let hasNewValue = 1;
27727 let opNewValue = 0;
27728 let addrMode = PostInc;
27729 let accessSize = HVXVectorAccess;
27730 let isCVLoad = 1;
27731 let mayLoad = 1;
27732 let isRestrictNoSlot1Store = 1;
27733 let BaseOpcode = "V6_vL32b_pi";
27734 let isCVLoadable = 1;
27735 let isPredicable = 1;
27736 let DecoderNamespace = "EXT_mmvec";
27737 let Constraints = "$Rx32 = $Rx32in";
27738 }
27739 def V6_vL32b_ppu : HInst<
27740 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27741 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27742 "$Vd32 = vmem($Rx32++$Mu2)",
27743 tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27744 let Inst{12-5} = 0b00000000;
27745 let Inst{31-21} = 0b00101011000;
27746 let hasNewValue = 1;
27747 let opNewValue = 0;
27748 let addrMode = PostInc;
27749 let accessSize = HVXVectorAccess;
27750 let isCVLoad = 1;
27751 let mayLoad = 1;
27752 let isRestrictNoSlot1Store = 1;
27753 let BaseOpcode = "V6_vL32b_ppu";
27754 let isCVLoadable = 1;
27755 let isPredicable = 1;
27756 let DecoderNamespace = "EXT_mmvec";
27757 let Constraints = "$Rx32 = $Rx32in";
27758 }
27759 def V6_vL32b_pred_ai : HInst<
27760 (outs HvxVR:$Vd32),
27761 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27762 "if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27763 tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27764 let Inst{7-5} = 0b010;
27765 let Inst{31-21} = 0b00101000100;
27766 let isPredicated = 1;
27767 let hasNewValue = 1;
27768 let opNewValue = 0;
27769 let addrMode = BaseImmOffset;
27770 let accessSize = HVXVectorAccess;
27771 let isCVLoad = 1;
27772 let mayLoad = 1;
27773 let isRestrictNoSlot1Store = 1;
27774 let BaseOpcode = "V6_vL32b_ai";
27775 let DecoderNamespace = "EXT_mmvec";
27776 }
27777 def V6_vL32b_pred_pi : HInst<
27778 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27779 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27780 "if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27781 tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27782 let Inst{7-5} = 0b010;
27783 let Inst{13-13} = 0b0;
27784 let Inst{31-21} = 0b00101001100;
27785 let isPredicated = 1;
27786 let hasNewValue = 1;
27787 let opNewValue = 0;
27788 let addrMode = PostInc;
27789 let accessSize = HVXVectorAccess;
27790 let isCVLoad = 1;
27791 let mayLoad = 1;
27792 let isRestrictNoSlot1Store = 1;
27793 let BaseOpcode = "V6_vL32b_pi";
27794 let DecoderNamespace = "EXT_mmvec";
27795 let Constraints = "$Rx32 = $Rx32in";
27796 }
27797 def V6_vL32b_pred_ppu : HInst<
27798 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27799 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27800 "if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27801 tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27802 let Inst{10-5} = 0b000010;
27803 let Inst{31-21} = 0b00101011100;
27804 let isPredicated = 1;
27805 let hasNewValue = 1;
27806 let opNewValue = 0;
27807 let addrMode = PostInc;
27808 let accessSize = HVXVectorAccess;
27809 let isCVLoad = 1;
27810 let mayLoad = 1;
27811 let isRestrictNoSlot1Store = 1;
27812 let BaseOpcode = "V6_vL32b_ppu";
27813 let DecoderNamespace = "EXT_mmvec";
27814 let Constraints = "$Rx32 = $Rx32in";
27815 }
27816 def V6_vL32b_tmp_ai : HInst<
27817 (outs HvxVR:$Vd32),
27818 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
27819 "$Vd32.tmp = vmem($Rt32+#$Ii)",
27820 tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27821 let Inst{7-5} = 0b010;
27822 let Inst{12-11} = 0b00;
27823 let Inst{31-21} = 0b00101000000;
27824 let hasNewValue = 1;
27825 let opNewValue = 0;
27826 let addrMode = BaseImmOffset;
27827 let accessSize = HVXVectorAccess;
27828 let isCVLoad = 1;
27829 let mayLoad = 1;
27830 let isRestrictNoSlot1Store = 1;
27831 let BaseOpcode = "V6_vL32b_tmp_ai";
27832 let isPredicable = 1;
27833 let DecoderNamespace = "EXT_mmvec";
27834 }
27835 def V6_vL32b_tmp_npred_ai : HInst<
27836 (outs HvxVR:$Vd32),
27837 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27838 "if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
27839 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27840 let Inst{7-5} = 0b111;
27841 let Inst{31-21} = 0b00101000100;
27842 let isPredicated = 1;
27843 let isPredicatedFalse = 1;
27844 let hasNewValue = 1;
27845 let opNewValue = 0;
27846 let addrMode = BaseImmOffset;
27847 let accessSize = HVXVectorAccess;
27848 let isCVLoad = 1;
27849 let mayLoad = 1;
27850 let isRestrictNoSlot1Store = 1;
27851 let BaseOpcode = "V6_vL32b_tmp_ai";
27852 let DecoderNamespace = "EXT_mmvec";
27853 }
27854 def V6_vL32b_tmp_npred_pi : HInst<
27855 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27856 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27857 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
27858 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27859 let Inst{7-5} = 0b111;
27860 let Inst{13-13} = 0b0;
27861 let Inst{31-21} = 0b00101001100;
27862 let isPredicated = 1;
27863 let isPredicatedFalse = 1;
27864 let hasNewValue = 1;
27865 let opNewValue = 0;
27866 let addrMode = PostInc;
27867 let accessSize = HVXVectorAccess;
27868 let isCVLoad = 1;
27869 let mayLoad = 1;
27870 let isRestrictNoSlot1Store = 1;
27871 let BaseOpcode = "V6_vL32b_tmp_pi";
27872 let DecoderNamespace = "EXT_mmvec";
27873 let Constraints = "$Rx32 = $Rx32in";
27874 }
27875 def V6_vL32b_tmp_npred_ppu : HInst<
27876 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27877 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27878 "if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
27879 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27880 let Inst{10-5} = 0b000111;
27881 let Inst{31-21} = 0b00101011100;
27882 let isPredicated = 1;
27883 let isPredicatedFalse = 1;
27884 let hasNewValue = 1;
27885 let opNewValue = 0;
27886 let addrMode = PostInc;
27887 let accessSize = HVXVectorAccess;
27888 let isCVLoad = 1;
27889 let mayLoad = 1;
27890 let isRestrictNoSlot1Store = 1;
27891 let BaseOpcode = "V6_vL32b_tmp_ppu";
27892 let DecoderNamespace = "EXT_mmvec";
27893 let Constraints = "$Rx32 = $Rx32in";
27894 }
27895 def V6_vL32b_tmp_pi : HInst<
27896 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27897 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27898 "$Vd32.tmp = vmem($Rx32++#$Ii)",
27899 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27900 let Inst{7-5} = 0b010;
27901 let Inst{13-11} = 0b000;
27902 let Inst{31-21} = 0b00101001000;
27903 let hasNewValue = 1;
27904 let opNewValue = 0;
27905 let addrMode = PostInc;
27906 let accessSize = HVXVectorAccess;
27907 let isCVLoad = 1;
27908 let mayLoad = 1;
27909 let isRestrictNoSlot1Store = 1;
27910 let BaseOpcode = "V6_vL32b_tmp_pi";
27911 let isPredicable = 1;
27912 let DecoderNamespace = "EXT_mmvec";
27913 let Constraints = "$Rx32 = $Rx32in";
27914 }
27915 def V6_vL32b_tmp_ppu : HInst<
27916 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27917 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
27918 "$Vd32.tmp = vmem($Rx32++$Mu2)",
27919 tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27920 let Inst{12-5} = 0b00000010;
27921 let Inst{31-21} = 0b00101011000;
27922 let hasNewValue = 1;
27923 let opNewValue = 0;
27924 let addrMode = PostInc;
27925 let accessSize = HVXVectorAccess;
27926 let isCVLoad = 1;
27927 let mayLoad = 1;
27928 let isRestrictNoSlot1Store = 1;
27929 let BaseOpcode = "V6_vL32b_tmp_ppu";
27930 let isPredicable = 1;
27931 let DecoderNamespace = "EXT_mmvec";
27932 let Constraints = "$Rx32 = $Rx32in";
27933 }
27934 def V6_vL32b_tmp_pred_ai : HInst<
27935 (outs HvxVR:$Vd32),
27936 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27937 "if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
27938 tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27939 let Inst{7-5} = 0b110;
27940 let Inst{31-21} = 0b00101000100;
27941 let isPredicated = 1;
27942 let hasNewValue = 1;
27943 let opNewValue = 0;
27944 let addrMode = BaseImmOffset;
27945 let accessSize = HVXVectorAccess;
27946 let isCVLoad = 1;
27947 let mayLoad = 1;
27948 let isRestrictNoSlot1Store = 1;
27949 let BaseOpcode = "V6_vL32b_tmp_ai";
27950 let DecoderNamespace = "EXT_mmvec";
27951 }
27952 def V6_vL32b_tmp_pred_pi : HInst<
27953 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27954 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27955 "if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
27956 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27957 let Inst{7-5} = 0b110;
27958 let Inst{13-13} = 0b0;
27959 let Inst{31-21} = 0b00101001100;
27960 let isPredicated = 1;
27961 let hasNewValue = 1;
27962 let opNewValue = 0;
27963 let addrMode = PostInc;
27964 let accessSize = HVXVectorAccess;
27965 let isCVLoad = 1;
27966 let mayLoad = 1;
27967 let isRestrictNoSlot1Store = 1;
27968 let BaseOpcode = "V6_vL32b_tmp_pi";
27969 let DecoderNamespace = "EXT_mmvec";
27970 let Constraints = "$Rx32 = $Rx32in";
27971 }
27972 def V6_vL32b_tmp_pred_ppu : HInst<
27973 (outs HvxVR:$Vd32, IntRegs:$Rx32),
27974 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27975 "if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
27976 tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27977 let Inst{10-5} = 0b000110;
27978 let Inst{31-21} = 0b00101011100;
27979 let isPredicated = 1;
27980 let hasNewValue = 1;
27981 let opNewValue = 0;
27982 let addrMode = PostInc;
27983 let accessSize = HVXVectorAccess;
27984 let isCVLoad = 1;
27985 let mayLoad = 1;
27986 let isRestrictNoSlot1Store = 1;
27987 let BaseOpcode = "V6_vL32b_tmp_ppu";
27988 let DecoderNamespace = "EXT_mmvec";
27989 let Constraints = "$Rx32 = $Rx32in";
27990 }
27991 def V6_vS32Ub_ai : HInst<
27992 (outs),
27993 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
27994 "vmemu($Rt32+#$Ii) = $Vs32",
27995 tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
27996 let Inst{7-5} = 0b111;
27997 let Inst{12-11} = 0b00;
27998 let Inst{31-21} = 0b00101000001;
27999 let addrMode = BaseImmOffset;
28000 let accessSize = HVXVectorAccess;
28001 let mayStore = 1;
28002 let BaseOpcode = "V6_vS32Ub_ai";
28003 let isPredicable = 1;
28004 let DecoderNamespace = "EXT_mmvec";
28005 }
28006 def V6_vS32Ub_npred_ai : HInst<
28007 (outs),
28008 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28009 "if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28010 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28011 let Inst{7-5} = 0b111;
28012 let Inst{31-21} = 0b00101000101;
28013 let isPredicated = 1;
28014 let isPredicatedFalse = 1;
28015 let addrMode = BaseImmOffset;
28016 let accessSize = HVXVectorAccess;
28017 let mayStore = 1;
28018 let BaseOpcode = "V6_vS32Ub_ai";
28019 let DecoderNamespace = "EXT_mmvec";
28020 }
28021 def V6_vS32Ub_npred_pi : HInst<
28022 (outs IntRegs:$Rx32),
28023 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28024 "if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28025 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28026 let Inst{7-5} = 0b111;
28027 let Inst{13-13} = 0b0;
28028 let Inst{31-21} = 0b00101001101;
28029 let isPredicated = 1;
28030 let isPredicatedFalse = 1;
28031 let addrMode = PostInc;
28032 let accessSize = HVXVectorAccess;
28033 let mayStore = 1;
28034 let BaseOpcode = "V6_vS32Ub_pi";
28035 let DecoderNamespace = "EXT_mmvec";
28036 let Constraints = "$Rx32 = $Rx32in";
28037 }
28038 def V6_vS32Ub_npred_ppu : HInst<
28039 (outs IntRegs:$Rx32),
28040 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28041 "if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28042 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28043 let Inst{10-5} = 0b000111;
28044 let Inst{31-21} = 0b00101011101;
28045 let isPredicated = 1;
28046 let isPredicatedFalse = 1;
28047 let addrMode = PostInc;
28048 let accessSize = HVXVectorAccess;
28049 let mayStore = 1;
28050 let BaseOpcode = "V6_vS32Ub_ppu";
28051 let DecoderNamespace = "EXT_mmvec";
28052 let Constraints = "$Rx32 = $Rx32in";
28053 }
28054 def V6_vS32Ub_pi : HInst<
28055 (outs IntRegs:$Rx32),
28056 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28057 "vmemu($Rx32++#$Ii) = $Vs32",
28058 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28059 let Inst{7-5} = 0b111;
28060 let Inst{13-11} = 0b000;
28061 let Inst{31-21} = 0b00101001001;
28062 let addrMode = PostInc;
28063 let accessSize = HVXVectorAccess;
28064 let mayStore = 1;
28065 let BaseOpcode = "V6_vS32Ub_pi";
28066 let isPredicable = 1;
28067 let DecoderNamespace = "EXT_mmvec";
28068 let Constraints = "$Rx32 = $Rx32in";
28069 }
28070 def V6_vS32Ub_ppu : HInst<
28071 (outs IntRegs:$Rx32),
28072 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28073 "vmemu($Rx32++$Mu2) = $Vs32",
28074 tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28075 let Inst{12-5} = 0b00000111;
28076 let Inst{31-21} = 0b00101011001;
28077 let addrMode = PostInc;
28078 let accessSize = HVXVectorAccess;
28079 let mayStore = 1;
28080 let BaseOpcode = "V6_vS32Ub_ppu";
28081 let isPredicable = 1;
28082 let DecoderNamespace = "EXT_mmvec";
28083 let Constraints = "$Rx32 = $Rx32in";
28084 }
28085 def V6_vS32Ub_pred_ai : HInst<
28086 (outs),
28087 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28088 "if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28089 tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28090 let Inst{7-5} = 0b110;
28091 let Inst{31-21} = 0b00101000101;
28092 let isPredicated = 1;
28093 let addrMode = BaseImmOffset;
28094 let accessSize = HVXVectorAccess;
28095 let mayStore = 1;
28096 let BaseOpcode = "V6_vS32Ub_ai";
28097 let DecoderNamespace = "EXT_mmvec";
28098 }
28099 def V6_vS32Ub_pred_pi : HInst<
28100 (outs IntRegs:$Rx32),
28101 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28102 "if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28103 tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28104 let Inst{7-5} = 0b110;
28105 let Inst{13-13} = 0b0;
28106 let Inst{31-21} = 0b00101001101;
28107 let isPredicated = 1;
28108 let addrMode = PostInc;
28109 let accessSize = HVXVectorAccess;
28110 let mayStore = 1;
28111 let BaseOpcode = "V6_vS32Ub_pi";
28112 let DecoderNamespace = "EXT_mmvec";
28113 let Constraints = "$Rx32 = $Rx32in";
28114 }
28115 def V6_vS32Ub_pred_ppu : HInst<
28116 (outs IntRegs:$Rx32),
28117 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28118 "if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28119 tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28120 let Inst{10-5} = 0b000110;
28121 let Inst{31-21} = 0b00101011101;
28122 let isPredicated = 1;
28123 let addrMode = PostInc;
28124 let accessSize = HVXVectorAccess;
28125 let mayStore = 1;
28126 let BaseOpcode = "V6_vS32Ub_ppu";
28127 let DecoderNamespace = "EXT_mmvec";
28128 let Constraints = "$Rx32 = $Rx32in";
28129 }
28130 def V6_vS32b_ai : HInst<
28131 (outs),
28132 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28133 "vmem($Rt32+#$Ii) = $Vs32",
28134 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28135 let Inst{7-5} = 0b000;
28136 let Inst{12-11} = 0b00;
28137 let Inst{31-21} = 0b00101000001;
28138 let addrMode = BaseImmOffset;
28139 let accessSize = HVXVectorAccess;
28140 let mayStore = 1;
28141 let BaseOpcode = "V6_vS32b_ai";
28142 let isNVStorable = 1;
28143 let isPredicable = 1;
28144 let DecoderNamespace = "EXT_mmvec";
28145 }
28146 def V6_vS32b_new_ai : HInst<
28147 (outs),
28148 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28149 "vmem($Rt32+#$Ii) = $Os8.new",
28150 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
28151 let Inst{7-3} = 0b00100;
28152 let Inst{12-11} = 0b00;
28153 let Inst{31-21} = 0b00101000001;
28154 let addrMode = BaseImmOffset;
28155 let accessSize = HVXVectorAccess;
28156 let isNVStore = 1;
28157 let CVINew = 1;
28158 let isNewValue = 1;
28159 let mayStore = 1;
28160 let BaseOpcode = "V6_vS32b_ai";
28161 let isPredicable = 1;
28162 let DecoderNamespace = "EXT_mmvec";
28163 let opNewValue = 2;
28164 }
28165 def V6_vS32b_new_npred_ai : HInst<
28166 (outs),
28167 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28168 "if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28169 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28170 let Inst{7-3} = 0b01101;
28171 let Inst{31-21} = 0b00101000101;
28172 let isPredicated = 1;
28173 let isPredicatedFalse = 1;
28174 let addrMode = BaseImmOffset;
28175 let accessSize = HVXVectorAccess;
28176 let isNVStore = 1;
28177 let CVINew = 1;
28178 let isNewValue = 1;
28179 let mayStore = 1;
28180 let BaseOpcode = "V6_vS32b_ai";
28181 let DecoderNamespace = "EXT_mmvec";
28182 let opNewValue = 3;
28183 }
28184 def V6_vS32b_new_npred_pi : HInst<
28185 (outs IntRegs:$Rx32),
28186 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28187 "if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28188 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28189 let Inst{7-3} = 0b01101;
28190 let Inst{13-13} = 0b0;
28191 let Inst{31-21} = 0b00101001101;
28192 let isPredicated = 1;
28193 let isPredicatedFalse = 1;
28194 let addrMode = PostInc;
28195 let accessSize = HVXVectorAccess;
28196 let isNVStore = 1;
28197 let CVINew = 1;
28198 let isNewValue = 1;
28199 let mayStore = 1;
28200 let BaseOpcode = "V6_vS32b_pi";
28201 let DecoderNamespace = "EXT_mmvec";
28202 let opNewValue = 4;
28203 let Constraints = "$Rx32 = $Rx32in";
28204 }
28205 def V6_vS32b_new_npred_ppu : HInst<
28206 (outs IntRegs:$Rx32),
28207 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28208 "if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28209 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28210 let Inst{10-3} = 0b00001101;
28211 let Inst{31-21} = 0b00101011101;
28212 let isPredicated = 1;
28213 let isPredicatedFalse = 1;
28214 let addrMode = PostInc;
28215 let accessSize = HVXVectorAccess;
28216 let isNVStore = 1;
28217 let CVINew = 1;
28218 let isNewValue = 1;
28219 let mayStore = 1;
28220 let BaseOpcode = "V6_vS32b_ppu";
28221 let DecoderNamespace = "EXT_mmvec";
28222 let opNewValue = 4;
28223 let Constraints = "$Rx32 = $Rx32in";
28224 }
28225 def V6_vS32b_new_pi : HInst<
28226 (outs IntRegs:$Rx32),
28227 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28228 "vmem($Rx32++#$Ii) = $Os8.new",
28229 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
28230 let Inst{7-3} = 0b00100;
28231 let Inst{13-11} = 0b000;
28232 let Inst{31-21} = 0b00101001001;
28233 let addrMode = PostInc;
28234 let accessSize = HVXVectorAccess;
28235 let isNVStore = 1;
28236 let CVINew = 1;
28237 let isNewValue = 1;
28238 let mayStore = 1;
28239 let BaseOpcode = "V6_vS32b_pi";
28240 let isPredicable = 1;
28241 let DecoderNamespace = "EXT_mmvec";
28242 let opNewValue = 3;
28243 let Constraints = "$Rx32 = $Rx32in";
28244 }
28245 def V6_vS32b_new_ppu : HInst<
28246 (outs IntRegs:$Rx32),
28247 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28248 "vmem($Rx32++$Mu2) = $Os8.new",
28249 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28250 let Inst{12-3} = 0b0000000100;
28251 let Inst{31-21} = 0b00101011001;
28252 let addrMode = PostInc;
28253 let accessSize = HVXVectorAccess;
28254 let isNVStore = 1;
28255 let CVINew = 1;
28256 let isNewValue = 1;
28257 let mayStore = 1;
28258 let BaseOpcode = "V6_vS32b_ppu";
28259 let isPredicable = 1;
28260 let DecoderNamespace = "EXT_mmvec";
28261 let opNewValue = 3;
28262 let Constraints = "$Rx32 = $Rx32in";
28263 }
28264 def V6_vS32b_new_pred_ai : HInst<
28265 (outs),
28266 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28267 "if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28268 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28269 let Inst{7-3} = 0b01000;
28270 let Inst{31-21} = 0b00101000101;
28271 let isPredicated = 1;
28272 let addrMode = BaseImmOffset;
28273 let accessSize = HVXVectorAccess;
28274 let isNVStore = 1;
28275 let CVINew = 1;
28276 let isNewValue = 1;
28277 let mayStore = 1;
28278 let BaseOpcode = "V6_vS32b_ai";
28279 let DecoderNamespace = "EXT_mmvec";
28280 let opNewValue = 3;
28281 }
28282 def V6_vS32b_new_pred_pi : HInst<
28283 (outs IntRegs:$Rx32),
28284 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28285 "if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28286 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28287 let Inst{7-3} = 0b01000;
28288 let Inst{13-13} = 0b0;
28289 let Inst{31-21} = 0b00101001101;
28290 let isPredicated = 1;
28291 let addrMode = PostInc;
28292 let accessSize = HVXVectorAccess;
28293 let isNVStore = 1;
28294 let CVINew = 1;
28295 let isNewValue = 1;
28296 let mayStore = 1;
28297 let BaseOpcode = "V6_vS32b_pi";
28298 let DecoderNamespace = "EXT_mmvec";
28299 let opNewValue = 4;
28300 let Constraints = "$Rx32 = $Rx32in";
28301 }
28302 def V6_vS32b_new_pred_ppu : HInst<
28303 (outs IntRegs:$Rx32),
28304 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28305 "if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28306 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28307 let Inst{10-3} = 0b00001000;
28308 let Inst{31-21} = 0b00101011101;
28309 let isPredicated = 1;
28310 let addrMode = PostInc;
28311 let accessSize = HVXVectorAccess;
28312 let isNVStore = 1;
28313 let CVINew = 1;
28314 let isNewValue = 1;
28315 let mayStore = 1;
28316 let BaseOpcode = "V6_vS32b_ppu";
28317 let DecoderNamespace = "EXT_mmvec";
28318 let opNewValue = 4;
28319 let Constraints = "$Rx32 = $Rx32in";
28320 }
28321 def V6_vS32b_npred_ai : HInst<
28322 (outs),
28323 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28324 "if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
28325 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28326 let Inst{7-5} = 0b001;
28327 let Inst{31-21} = 0b00101000101;
28328 let isPredicated = 1;
28329 let isPredicatedFalse = 1;
28330 let addrMode = BaseImmOffset;
28331 let accessSize = HVXVectorAccess;
28332 let mayStore = 1;
28333 let BaseOpcode = "V6_vS32b_ai";
28334 let isNVStorable = 1;
28335 let DecoderNamespace = "EXT_mmvec";
28336 }
28337 def V6_vS32b_npred_pi : HInst<
28338 (outs IntRegs:$Rx32),
28339 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28340 "if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
28341 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28342 let Inst{7-5} = 0b001;
28343 let Inst{13-13} = 0b0;
28344 let Inst{31-21} = 0b00101001101;
28345 let isPredicated = 1;
28346 let isPredicatedFalse = 1;
28347 let addrMode = PostInc;
28348 let accessSize = HVXVectorAccess;
28349 let mayStore = 1;
28350 let BaseOpcode = "V6_vS32b_pi";
28351 let isNVStorable = 1;
28352 let DecoderNamespace = "EXT_mmvec";
28353 let Constraints = "$Rx32 = $Rx32in";
28354 }
28355 def V6_vS32b_npred_ppu : HInst<
28356 (outs IntRegs:$Rx32),
28357 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28358 "if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
28359 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28360 let Inst{10-5} = 0b000001;
28361 let Inst{31-21} = 0b00101011101;
28362 let isPredicated = 1;
28363 let isPredicatedFalse = 1;
28364 let addrMode = PostInc;
28365 let accessSize = HVXVectorAccess;
28366 let mayStore = 1;
28367 let BaseOpcode = "V6_vS32b_ppu";
28368 let isNVStorable = 1;
28369 let DecoderNamespace = "EXT_mmvec";
28370 let Constraints = "$Rx32 = $Rx32in";
28371 }
28372 def V6_vS32b_nqpred_ai : HInst<
28373 (outs),
28374 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28375 "if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
28376 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28377 let Inst{7-5} = 0b001;
28378 let Inst{31-21} = 0b00101000100;
28379 let addrMode = BaseImmOffset;
28380 let accessSize = HVXVectorAccess;
28381 let mayStore = 1;
28382 let DecoderNamespace = "EXT_mmvec";
28383 }
28384 def V6_vS32b_nqpred_pi : HInst<
28385 (outs IntRegs:$Rx32),
28386 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28387 "if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
28388 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28389 let Inst{7-5} = 0b001;
28390 let Inst{13-13} = 0b0;
28391 let Inst{31-21} = 0b00101001100;
28392 let addrMode = PostInc;
28393 let accessSize = HVXVectorAccess;
28394 let mayStore = 1;
28395 let DecoderNamespace = "EXT_mmvec";
28396 let Constraints = "$Rx32 = $Rx32in";
28397 }
28398 def V6_vS32b_nqpred_ppu : HInst<
28399 (outs IntRegs:$Rx32),
28400 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28401 "if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
28402 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28403 let Inst{10-5} = 0b000001;
28404 let Inst{31-21} = 0b00101011100;
28405 let addrMode = PostInc;
28406 let accessSize = HVXVectorAccess;
28407 let mayStore = 1;
28408 let DecoderNamespace = "EXT_mmvec";
28409 let Constraints = "$Rx32 = $Rx32in";
28410 }
28411 def V6_vS32b_nt_ai : HInst<
28412 (outs),
28413 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28414 "vmem($Rt32+#$Ii):nt = $Vs32",
28415 tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28416 let Inst{7-5} = 0b000;
28417 let Inst{12-11} = 0b00;
28418 let Inst{31-21} = 0b00101000011;
28419 let addrMode = BaseImmOffset;
28420 let accessSize = HVXVectorAccess;
28421 let isNonTemporal = 1;
28422 let mayStore = 1;
28423 let BaseOpcode = "V6_vS32b_ai";
28424 let isNVStorable = 1;
28425 let isPredicable = 1;
28426 let DecoderNamespace = "EXT_mmvec";
28427 }
28428 def V6_vS32b_nt_new_ai : HInst<
28429 (outs),
28430 (ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28431 "vmem($Rt32+#$Ii):nt = $Os8.new",
28432 tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
28433 let Inst{7-3} = 0b00100;
28434 let Inst{12-11} = 0b00;
28435 let Inst{31-21} = 0b00101000011;
28436 let addrMode = BaseImmOffset;
28437 let accessSize = HVXVectorAccess;
28438 let isNVStore = 1;
28439 let CVINew = 1;
28440 let isNewValue = 1;
28441 let isNonTemporal = 1;
28442 let mayStore = 1;
28443 let BaseOpcode = "V6_vS32b_ai";
28444 let isPredicable = 1;
28445 let DecoderNamespace = "EXT_mmvec";
28446 let opNewValue = 2;
28447 }
28448 def V6_vS32b_nt_new_npred_ai : HInst<
28449 (outs),
28450 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28451 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
28452 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28453 let Inst{7-3} = 0b01111;
28454 let Inst{31-21} = 0b00101000111;
28455 let isPredicated = 1;
28456 let isPredicatedFalse = 1;
28457 let addrMode = BaseImmOffset;
28458 let accessSize = HVXVectorAccess;
28459 let isNVStore = 1;
28460 let CVINew = 1;
28461 let isNewValue = 1;
28462 let isNonTemporal = 1;
28463 let mayStore = 1;
28464 let BaseOpcode = "V6_vS32b_ai";
28465 let DecoderNamespace = "EXT_mmvec";
28466 let opNewValue = 3;
28467 }
28468 def V6_vS32b_nt_new_npred_pi : HInst<
28469 (outs IntRegs:$Rx32),
28470 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28471 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
28472 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28473 let Inst{7-3} = 0b01111;
28474 let Inst{13-13} = 0b0;
28475 let Inst{31-21} = 0b00101001111;
28476 let isPredicated = 1;
28477 let isPredicatedFalse = 1;
28478 let addrMode = PostInc;
28479 let accessSize = HVXVectorAccess;
28480 let isNVStore = 1;
28481 let CVINew = 1;
28482 let isNewValue = 1;
28483 let isNonTemporal = 1;
28484 let mayStore = 1;
28485 let BaseOpcode = "V6_vS32b_pi";
28486 let DecoderNamespace = "EXT_mmvec";
28487 let opNewValue = 4;
28488 let Constraints = "$Rx32 = $Rx32in";
28489 }
28490 def V6_vS32b_nt_new_npred_ppu : HInst<
28491 (outs IntRegs:$Rx32),
28492 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28493 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
28494 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28495 let Inst{10-3} = 0b00001111;
28496 let Inst{31-21} = 0b00101011111;
28497 let isPredicated = 1;
28498 let isPredicatedFalse = 1;
28499 let addrMode = PostInc;
28500 let accessSize = HVXVectorAccess;
28501 let isNVStore = 1;
28502 let CVINew = 1;
28503 let isNewValue = 1;
28504 let isNonTemporal = 1;
28505 let mayStore = 1;
28506 let BaseOpcode = "V6_vS32b_ppu";
28507 let DecoderNamespace = "EXT_mmvec";
28508 let opNewValue = 4;
28509 let Constraints = "$Rx32 = $Rx32in";
28510 }
28511 def V6_vS32b_nt_new_pi : HInst<
28512 (outs IntRegs:$Rx32),
28513 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28514 "vmem($Rx32++#$Ii):nt = $Os8.new",
28515 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
28516 let Inst{7-3} = 0b00100;
28517 let Inst{13-11} = 0b000;
28518 let Inst{31-21} = 0b00101001011;
28519 let addrMode = PostInc;
28520 let accessSize = HVXVectorAccess;
28521 let isNVStore = 1;
28522 let CVINew = 1;
28523 let isNewValue = 1;
28524 let isNonTemporal = 1;
28525 let mayStore = 1;
28526 let BaseOpcode = "V6_vS32b_pi";
28527 let isPredicable = 1;
28528 let DecoderNamespace = "EXT_mmvec";
28529 let opNewValue = 3;
28530 let Constraints = "$Rx32 = $Rx32in";
28531 }
28532 def V6_vS32b_nt_new_ppu : HInst<
28533 (outs IntRegs:$Rx32),
28534 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28535 "vmem($Rx32++$Mu2):nt = $Os8.new",
28536 tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28537 let Inst{12-3} = 0b0000000100;
28538 let Inst{31-21} = 0b00101011011;
28539 let addrMode = PostInc;
28540 let accessSize = HVXVectorAccess;
28541 let isNVStore = 1;
28542 let CVINew = 1;
28543 let isNewValue = 1;
28544 let isNonTemporal = 1;
28545 let mayStore = 1;
28546 let BaseOpcode = "V6_vS32b_ppu";
28547 let isPredicable = 1;
28548 let DecoderNamespace = "EXT_mmvec";
28549 let opNewValue = 3;
28550 let Constraints = "$Rx32 = $Rx32in";
28551 }
28552 def V6_vS32b_nt_new_pred_ai : HInst<
28553 (outs),
28554 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28555 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
28556 tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28557 let Inst{7-3} = 0b01010;
28558 let Inst{31-21} = 0b00101000111;
28559 let isPredicated = 1;
28560 let addrMode = BaseImmOffset;
28561 let accessSize = HVXVectorAccess;
28562 let isNVStore = 1;
28563 let CVINew = 1;
28564 let isNewValue = 1;
28565 let isNonTemporal = 1;
28566 let mayStore = 1;
28567 let BaseOpcode = "V6_vS32b_ai";
28568 let DecoderNamespace = "EXT_mmvec";
28569 let opNewValue = 3;
28570 }
28571 def V6_vS32b_nt_new_pred_pi : HInst<
28572 (outs IntRegs:$Rx32),
28573 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28574 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
28575 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28576 let Inst{7-3} = 0b01010;
28577 let Inst{13-13} = 0b0;
28578 let Inst{31-21} = 0b00101001111;
28579 let isPredicated = 1;
28580 let addrMode = PostInc;
28581 let accessSize = HVXVectorAccess;
28582 let isNVStore = 1;
28583 let CVINew = 1;
28584 let isNewValue = 1;
28585 let isNonTemporal = 1;
28586 let mayStore = 1;
28587 let BaseOpcode = "V6_vS32b_pi";
28588 let DecoderNamespace = "EXT_mmvec";
28589 let opNewValue = 4;
28590 let Constraints = "$Rx32 = $Rx32in";
28591 }
28592 def V6_vS32b_nt_new_pred_ppu : HInst<
28593 (outs IntRegs:$Rx32),
28594 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28595 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
28596 tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28597 let Inst{10-3} = 0b00001010;
28598 let Inst{31-21} = 0b00101011111;
28599 let isPredicated = 1;
28600 let addrMode = PostInc;
28601 let accessSize = HVXVectorAccess;
28602 let isNVStore = 1;
28603 let CVINew = 1;
28604 let isNewValue = 1;
28605 let isNonTemporal = 1;
28606 let mayStore = 1;
28607 let BaseOpcode = "V6_vS32b_ppu";
28608 let DecoderNamespace = "EXT_mmvec";
28609 let opNewValue = 4;
28610 let Constraints = "$Rx32 = $Rx32in";
28611 }
28612 def V6_vS32b_nt_npred_ai : HInst<
28613 (outs),
28614 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28615 "if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
28616 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28617 let Inst{7-5} = 0b001;
28618 let Inst{31-21} = 0b00101000111;
28619 let isPredicated = 1;
28620 let isPredicatedFalse = 1;
28621 let addrMode = BaseImmOffset;
28622 let accessSize = HVXVectorAccess;
28623 let isNonTemporal = 1;
28624 let mayStore = 1;
28625 let BaseOpcode = "V6_vS32b_ai";
28626 let isNVStorable = 1;
28627 let DecoderNamespace = "EXT_mmvec";
28628 }
28629 def V6_vS32b_nt_npred_pi : HInst<
28630 (outs IntRegs:$Rx32),
28631 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28632 "if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
28633 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28634 let Inst{7-5} = 0b001;
28635 let Inst{13-13} = 0b0;
28636 let Inst{31-21} = 0b00101001111;
28637 let isPredicated = 1;
28638 let isPredicatedFalse = 1;
28639 let addrMode = PostInc;
28640 let accessSize = HVXVectorAccess;
28641 let isNonTemporal = 1;
28642 let mayStore = 1;
28643 let BaseOpcode = "V6_vS32b_pi";
28644 let isNVStorable = 1;
28645 let DecoderNamespace = "EXT_mmvec";
28646 let Constraints = "$Rx32 = $Rx32in";
28647 }
28648 def V6_vS32b_nt_npred_ppu : HInst<
28649 (outs IntRegs:$Rx32),
28650 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28651 "if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
28652 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28653 let Inst{10-5} = 0b000001;
28654 let Inst{31-21} = 0b00101011111;
28655 let isPredicated = 1;
28656 let isPredicatedFalse = 1;
28657 let addrMode = PostInc;
28658 let accessSize = HVXVectorAccess;
28659 let isNonTemporal = 1;
28660 let mayStore = 1;
28661 let BaseOpcode = "V6_vS32b_ppu";
28662 let isNVStorable = 1;
28663 let DecoderNamespace = "EXT_mmvec";
28664 let Constraints = "$Rx32 = $Rx32in";
28665 }
28666 def V6_vS32b_nt_nqpred_ai : HInst<
28667 (outs),
28668 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28669 "if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
28670 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28671 let Inst{7-5} = 0b001;
28672 let Inst{31-21} = 0b00101000110;
28673 let addrMode = BaseImmOffset;
28674 let accessSize = HVXVectorAccess;
28675 let isNonTemporal = 1;
28676 let mayStore = 1;
28677 let DecoderNamespace = "EXT_mmvec";
28678 }
28679 def V6_vS32b_nt_nqpred_pi : HInst<
28680 (outs IntRegs:$Rx32),
28681 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28682 "if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
28683 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28684 let Inst{7-5} = 0b001;
28685 let Inst{13-13} = 0b0;
28686 let Inst{31-21} = 0b00101001110;
28687 let addrMode = PostInc;
28688 let accessSize = HVXVectorAccess;
28689 let isNonTemporal = 1;
28690 let mayStore = 1;
28691 let DecoderNamespace = "EXT_mmvec";
28692 let Constraints = "$Rx32 = $Rx32in";
28693 }
28694 def V6_vS32b_nt_nqpred_ppu : HInst<
28695 (outs IntRegs:$Rx32),
28696 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28697 "if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
28698 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28699 let Inst{10-5} = 0b000001;
28700 let Inst{31-21} = 0b00101011110;
28701 let addrMode = PostInc;
28702 let accessSize = HVXVectorAccess;
28703 let isNonTemporal = 1;
28704 let mayStore = 1;
28705 let DecoderNamespace = "EXT_mmvec";
28706 let Constraints = "$Rx32 = $Rx32in";
28707 }
28708 def V6_vS32b_nt_pi : HInst<
28709 (outs IntRegs:$Rx32),
28710 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28711 "vmem($Rx32++#$Ii):nt = $Vs32",
28712 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28713 let Inst{7-5} = 0b000;
28714 let Inst{13-11} = 0b000;
28715 let Inst{31-21} = 0b00101001011;
28716 let addrMode = PostInc;
28717 let accessSize = HVXVectorAccess;
28718 let isNonTemporal = 1;
28719 let mayStore = 1;
28720 let BaseOpcode = "V6_vS32b_pi";
28721 let isNVStorable = 1;
28722 let isPredicable = 1;
28723 let DecoderNamespace = "EXT_mmvec";
28724 let Constraints = "$Rx32 = $Rx32in";
28725 }
28726 def V6_vS32b_nt_ppu : HInst<
28727 (outs IntRegs:$Rx32),
28728 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28729 "vmem($Rx32++$Mu2):nt = $Vs32",
28730 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28731 let Inst{12-5} = 0b00000000;
28732 let Inst{31-21} = 0b00101011011;
28733 let addrMode = PostInc;
28734 let accessSize = HVXVectorAccess;
28735 let isNonTemporal = 1;
28736 let mayStore = 1;
28737 let BaseOpcode = "V6_vS32b_ppu";
28738 let isNVStorable = 1;
28739 let isPredicable = 1;
28740 let DecoderNamespace = "EXT_mmvec";
28741 let Constraints = "$Rx32 = $Rx32in";
28742 }
28743 def V6_vS32b_nt_pred_ai : HInst<
28744 (outs),
28745 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28746 "if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
28747 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28748 let Inst{7-5} = 0b000;
28749 let Inst{31-21} = 0b00101000111;
28750 let isPredicated = 1;
28751 let addrMode = BaseImmOffset;
28752 let accessSize = HVXVectorAccess;
28753 let isNonTemporal = 1;
28754 let mayStore = 1;
28755 let BaseOpcode = "V6_vS32b_ai";
28756 let isNVStorable = 1;
28757 let DecoderNamespace = "EXT_mmvec";
28758 }
28759 def V6_vS32b_nt_pred_pi : HInst<
28760 (outs IntRegs:$Rx32),
28761 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28762 "if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
28763 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28764 let Inst{7-5} = 0b000;
28765 let Inst{13-13} = 0b0;
28766 let Inst{31-21} = 0b00101001111;
28767 let isPredicated = 1;
28768 let addrMode = PostInc;
28769 let accessSize = HVXVectorAccess;
28770 let isNonTemporal = 1;
28771 let mayStore = 1;
28772 let BaseOpcode = "V6_vS32b_pi";
28773 let isNVStorable = 1;
28774 let DecoderNamespace = "EXT_mmvec";
28775 let Constraints = "$Rx32 = $Rx32in";
28776 }
28777 def V6_vS32b_nt_pred_ppu : HInst<
28778 (outs IntRegs:$Rx32),
28779 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28780 "if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
28781 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28782 let Inst{10-5} = 0b000000;
28783 let Inst{31-21} = 0b00101011111;
28784 let isPredicated = 1;
28785 let addrMode = PostInc;
28786 let accessSize = HVXVectorAccess;
28787 let isNonTemporal = 1;
28788 let mayStore = 1;
28789 let BaseOpcode = "V6_vS32b_ppu";
28790 let isNVStorable = 1;
28791 let DecoderNamespace = "EXT_mmvec";
28792 let Constraints = "$Rx32 = $Rx32in";
28793 }
28794 def V6_vS32b_nt_qpred_ai : HInst<
28795 (outs),
28796 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28797 "if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
28798 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28799 let Inst{7-5} = 0b000;
28800 let Inst{31-21} = 0b00101000110;
28801 let addrMode = BaseImmOffset;
28802 let accessSize = HVXVectorAccess;
28803 let isNonTemporal = 1;
28804 let mayStore = 1;
28805 let DecoderNamespace = "EXT_mmvec";
28806 }
28807 def V6_vS32b_nt_qpred_pi : HInst<
28808 (outs IntRegs:$Rx32),
28809 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28810 "if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
28811 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28812 let Inst{7-5} = 0b000;
28813 let Inst{13-13} = 0b0;
28814 let Inst{31-21} = 0b00101001110;
28815 let addrMode = PostInc;
28816 let accessSize = HVXVectorAccess;
28817 let isNonTemporal = 1;
28818 let mayStore = 1;
28819 let DecoderNamespace = "EXT_mmvec";
28820 let Constraints = "$Rx32 = $Rx32in";
28821 }
28822 def V6_vS32b_nt_qpred_ppu : HInst<
28823 (outs IntRegs:$Rx32),
28824 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28825 "if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
28826 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28827 let Inst{10-5} = 0b000000;
28828 let Inst{31-21} = 0b00101011110;
28829 let addrMode = PostInc;
28830 let accessSize = HVXVectorAccess;
28831 let isNonTemporal = 1;
28832 let mayStore = 1;
28833 let DecoderNamespace = "EXT_mmvec";
28834 let Constraints = "$Rx32 = $Rx32in";
28835 }
28836 def V6_vS32b_pi : HInst<
28837 (outs IntRegs:$Rx32),
28838 (ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28839 "vmem($Rx32++#$Ii) = $Vs32",
28840 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28841 let Inst{7-5} = 0b000;
28842 let Inst{13-11} = 0b000;
28843 let Inst{31-21} = 0b00101001001;
28844 let addrMode = PostInc;
28845 let accessSize = HVXVectorAccess;
28846 let mayStore = 1;
28847 let BaseOpcode = "V6_vS32b_pi";
28848 let isNVStorable = 1;
28849 let isPredicable = 1;
28850 let DecoderNamespace = "EXT_mmvec";
28851 let Constraints = "$Rx32 = $Rx32in";
28852 }
28853 def V6_vS32b_ppu : HInst<
28854 (outs IntRegs:$Rx32),
28855 (ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28856 "vmem($Rx32++$Mu2) = $Vs32",
28857 tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28858 let Inst{12-5} = 0b00000000;
28859 let Inst{31-21} = 0b00101011001;
28860 let addrMode = PostInc;
28861 let accessSize = HVXVectorAccess;
28862 let mayStore = 1;
28863 let isNVStorable = 1;
28864 let isPredicable = 1;
28865 let DecoderNamespace = "EXT_mmvec";
28866 let Constraints = "$Rx32 = $Rx32in";
28867 }
28868 def V6_vS32b_pred_ai : HInst<
28869 (outs),
28870 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28871 "if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
28872 tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28873 let Inst{7-5} = 0b000;
28874 let Inst{31-21} = 0b00101000101;
28875 let isPredicated = 1;
28876 let addrMode = BaseImmOffset;
28877 let accessSize = HVXVectorAccess;
28878 let mayStore = 1;
28879 let BaseOpcode = "V6_vS32b_ai";
28880 let isNVStorable = 1;
28881 let DecoderNamespace = "EXT_mmvec";
28882 }
28883 def V6_vS32b_pred_pi : HInst<
28884 (outs IntRegs:$Rx32),
28885 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28886 "if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
28887 tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28888 let Inst{7-5} = 0b000;
28889 let Inst{13-13} = 0b0;
28890 let Inst{31-21} = 0b00101001101;
28891 let isPredicated = 1;
28892 let addrMode = PostInc;
28893 let accessSize = HVXVectorAccess;
28894 let mayStore = 1;
28895 let BaseOpcode = "V6_vS32b_pi";
28896 let isNVStorable = 1;
28897 let DecoderNamespace = "EXT_mmvec";
28898 let Constraints = "$Rx32 = $Rx32in";
28899 }
28900 def V6_vS32b_pred_ppu : HInst<
28901 (outs IntRegs:$Rx32),
28902 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28903 "if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
28904 tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28905 let Inst{10-5} = 0b000000;
28906 let Inst{31-21} = 0b00101011101;
28907 let isPredicated = 1;
28908 let addrMode = PostInc;
28909 let accessSize = HVXVectorAccess;
28910 let mayStore = 1;
28911 let BaseOpcode = "V6_vS32b_ppu";
28912 let isNVStorable = 1;
28913 let DecoderNamespace = "EXT_mmvec";
28914 let Constraints = "$Rx32 = $Rx32in";
28915 }
28916 def V6_vS32b_qpred_ai : HInst<
28917 (outs),
28918 (ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28919 "if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
28920 tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28921 let Inst{7-5} = 0b000;
28922 let Inst{31-21} = 0b00101000100;
28923 let addrMode = BaseImmOffset;
28924 let accessSize = HVXVectorAccess;
28925 let mayStore = 1;
28926 let DecoderNamespace = "EXT_mmvec";
28927 }
28928 def V6_vS32b_qpred_pi : HInst<
28929 (outs IntRegs:$Rx32),
28930 (ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28931 "if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
28932 tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28933 let Inst{7-5} = 0b000;
28934 let Inst{13-13} = 0b0;
28935 let Inst{31-21} = 0b00101001100;
28936 let addrMode = PostInc;
28937 let accessSize = HVXVectorAccess;
28938 let mayStore = 1;
28939 let DecoderNamespace = "EXT_mmvec";
28940 let Constraints = "$Rx32 = $Rx32in";
28941 }
28942 def V6_vS32b_qpred_ppu : HInst<
28943 (outs IntRegs:$Rx32),
28944 (ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28945 "if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
28946 tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28947 let Inst{10-5} = 0b000000;
28948 let Inst{31-21} = 0b00101011100;
28949 let addrMode = PostInc;
28950 let accessSize = HVXVectorAccess;
28951 let mayStore = 1;
28952 let DecoderNamespace = "EXT_mmvec";
28953 let Constraints = "$Rx32 = $Rx32in";
28954 }
28955 def V6_vS32b_srls_ai : HInst<
28956 (outs),
28957 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
28958 "vmem($Rt32+#$Ii):scatter_release",
28959 tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
28960 let Inst{7-0} = 0b00101000;
28961 let Inst{12-11} = 0b00;
28962 let Inst{31-21} = 0b00101000001;
28963 let addrMode = BaseImmOffset;
28964 let accessSize = HVXVectorAccess;
28965 let CVINew = 1;
28966 let mayStore = 1;
28967 let DecoderNamespace = "EXT_mmvec";
28968 }
28969 def V6_vS32b_srls_pi : HInst<
28970 (outs IntRegs:$Rx32),
28971 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28972 "vmem($Rx32++#$Ii):scatter_release",
28973 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
28974 let Inst{7-0} = 0b00101000;
28975 let Inst{13-11} = 0b000;
28976 let Inst{31-21} = 0b00101001001;
28977 let addrMode = PostInc;
28978 let accessSize = HVXVectorAccess;
28979 let CVINew = 1;
28980 let mayStore = 1;
28981 let DecoderNamespace = "EXT_mmvec";
28982 let Constraints = "$Rx32 = $Rx32in";
28983 }
28984 def V6_vS32b_srls_ppu : HInst<
28985 (outs IntRegs:$Rx32),
28986 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
28987 "vmem($Rx32++$Mu2):scatter_release",
28988 tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
28989 let Inst{12-0} = 0b0000000101000;
28990 let Inst{31-21} = 0b00101011001;
28991 let addrMode = PostInc;
28992 let accessSize = HVXVectorAccess;
28993 let CVINew = 1;
28994 let mayStore = 1;
28995 let DecoderNamespace = "EXT_mmvec";
28996 let Constraints = "$Rx32 = $Rx32in";
28997 }
28998 def V6_vabsb : HInst<
28999 (outs HvxVR:$Vd32),
29000 (ins HvxVR:$Vu32),
29001 "$Vd32.b = vabs($Vu32.b)",
29002 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29003 let Inst{7-5} = 0b100;
29004 let Inst{13-13} = 0b0;
29005 let Inst{31-16} = 0b0001111000000001;
29006 let hasNewValue = 1;
29007 let opNewValue = 0;
29008 let DecoderNamespace = "EXT_mmvec";
29009 }
29010 def V6_vabsb_alt : HInst<
29011 (outs HvxVR:$Vd32),
29012 (ins HvxVR:$Vu32),
29013 "$Vd32 = vabsb($Vu32)",
29014 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29015 let hasNewValue = 1;
29016 let opNewValue = 0;
29017 let isPseudo = 1;
29018 let isCodeGenOnly = 1;
29019 let DecoderNamespace = "EXT_mmvec";
29020 }
29021 def V6_vabsb_sat : HInst<
29022 (outs HvxVR:$Vd32),
29023 (ins HvxVR:$Vu32),
29024 "$Vd32.b = vabs($Vu32.b):sat",
29025 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29026 let Inst{7-5} = 0b101;
29027 let Inst{13-13} = 0b0;
29028 let Inst{31-16} = 0b0001111000000001;
29029 let hasNewValue = 1;
29030 let opNewValue = 0;
29031 let DecoderNamespace = "EXT_mmvec";
29032 }
29033 def V6_vabsb_sat_alt : HInst<
29034 (outs HvxVR:$Vd32),
29035 (ins HvxVR:$Vu32),
29036 "$Vd32 = vabsb($Vu32):sat",
29037 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29038 let hasNewValue = 1;
29039 let opNewValue = 0;
29040 let isPseudo = 1;
29041 let isCodeGenOnly = 1;
29042 let DecoderNamespace = "EXT_mmvec";
29043 }
29044 def V6_vabsdiffh : HInst<
29045 (outs HvxVR:$Vd32),
29046 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29047 "$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29048 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29049 let Inst{7-5} = 0b001;
29050 let Inst{13-13} = 0b0;
29051 let Inst{31-21} = 0b00011100110;
29052 let hasNewValue = 1;
29053 let opNewValue = 0;
29054 let DecoderNamespace = "EXT_mmvec";
29055 }
29056 def V6_vabsdiffh_alt : HInst<
29057 (outs HvxVR:$Vd32),
29058 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29059 "$Vd32 = vabsdiffh($Vu32,$Vv32)",
29060 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29061 let hasNewValue = 1;
29062 let opNewValue = 0;
29063 let isPseudo = 1;
29064 let isCodeGenOnly = 1;
29065 let DecoderNamespace = "EXT_mmvec";
29066 }
29067 def V6_vabsdiffub : HInst<
29068 (outs HvxVR:$Vd32),
29069 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29070 "$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29071 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29072 let Inst{7-5} = 0b000;
29073 let Inst{13-13} = 0b0;
29074 let Inst{31-21} = 0b00011100110;
29075 let hasNewValue = 1;
29076 let opNewValue = 0;
29077 let DecoderNamespace = "EXT_mmvec";
29078 }
29079 def V6_vabsdiffub_alt : HInst<
29080 (outs HvxVR:$Vd32),
29081 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29082 "$Vd32 = vabsdiffub($Vu32,$Vv32)",
29083 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29084 let hasNewValue = 1;
29085 let opNewValue = 0;
29086 let isPseudo = 1;
29087 let isCodeGenOnly = 1;
29088 let DecoderNamespace = "EXT_mmvec";
29089 }
29090 def V6_vabsdiffuh : HInst<
29091 (outs HvxVR:$Vd32),
29092 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29093 "$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
29094 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29095 let Inst{7-5} = 0b010;
29096 let Inst{13-13} = 0b0;
29097 let Inst{31-21} = 0b00011100110;
29098 let hasNewValue = 1;
29099 let opNewValue = 0;
29100 let DecoderNamespace = "EXT_mmvec";
29101 }
29102 def V6_vabsdiffuh_alt : HInst<
29103 (outs HvxVR:$Vd32),
29104 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29105 "$Vd32 = vabsdiffuh($Vu32,$Vv32)",
29106 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29107 let hasNewValue = 1;
29108 let opNewValue = 0;
29109 let isPseudo = 1;
29110 let isCodeGenOnly = 1;
29111 let DecoderNamespace = "EXT_mmvec";
29112 }
29113 def V6_vabsdiffw : HInst<
29114 (outs HvxVR:$Vd32),
29115 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29116 "$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
29117 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29118 let Inst{7-5} = 0b011;
29119 let Inst{13-13} = 0b0;
29120 let Inst{31-21} = 0b00011100110;
29121 let hasNewValue = 1;
29122 let opNewValue = 0;
29123 let DecoderNamespace = "EXT_mmvec";
29124 }
29125 def V6_vabsdiffw_alt : HInst<
29126 (outs HvxVR:$Vd32),
29127 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29128 "$Vd32 = vabsdiffw($Vu32,$Vv32)",
29129 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29130 let hasNewValue = 1;
29131 let opNewValue = 0;
29132 let isPseudo = 1;
29133 let isCodeGenOnly = 1;
29134 let DecoderNamespace = "EXT_mmvec";
29135 }
29136 def V6_vabsh : HInst<
29137 (outs HvxVR:$Vd32),
29138 (ins HvxVR:$Vu32),
29139 "$Vd32.h = vabs($Vu32.h)",
29140 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29141 let Inst{7-5} = 0b000;
29142 let Inst{13-13} = 0b0;
29143 let Inst{31-16} = 0b0001111000000000;
29144 let hasNewValue = 1;
29145 let opNewValue = 0;
29146 let DecoderNamespace = "EXT_mmvec";
29147 }
29148 def V6_vabsh_alt : HInst<
29149 (outs HvxVR:$Vd32),
29150 (ins HvxVR:$Vu32),
29151 "$Vd32 = vabsh($Vu32)",
29152 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29153 let hasNewValue = 1;
29154 let opNewValue = 0;
29155 let isPseudo = 1;
29156 let isCodeGenOnly = 1;
29157 let DecoderNamespace = "EXT_mmvec";
29158 }
29159 def V6_vabsh_sat : HInst<
29160 (outs HvxVR:$Vd32),
29161 (ins HvxVR:$Vu32),
29162 "$Vd32.h = vabs($Vu32.h):sat",
29163 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29164 let Inst{7-5} = 0b001;
29165 let Inst{13-13} = 0b0;
29166 let Inst{31-16} = 0b0001111000000000;
29167 let hasNewValue = 1;
29168 let opNewValue = 0;
29169 let DecoderNamespace = "EXT_mmvec";
29170 }
29171 def V6_vabsh_sat_alt : HInst<
29172 (outs HvxVR:$Vd32),
29173 (ins HvxVR:$Vu32),
29174 "$Vd32 = vabsh($Vu32):sat",
29175 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29176 let hasNewValue = 1;
29177 let opNewValue = 0;
29178 let isPseudo = 1;
29179 let isCodeGenOnly = 1;
29180 let DecoderNamespace = "EXT_mmvec";
29181 }
29182 def V6_vabsub_alt : HInst<
29183 (outs HvxVR:$Vd32),
29184 (ins HvxVR:$Vu32),
29185 "$Vd32.ub = vabs($Vu32.b)",
29186 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29187 let hasNewValue = 1;
29188 let opNewValue = 0;
29189 let isPseudo = 1;
29190 let isCodeGenOnly = 1;
29191 let DecoderNamespace = "EXT_mmvec";
29192 }
29193 def V6_vabsuh_alt : HInst<
29194 (outs HvxVR:$Vd32),
29195 (ins HvxVR:$Vu32),
29196 "$Vd32.uh = vabs($Vu32.h)",
29197 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29198 let hasNewValue = 1;
29199 let opNewValue = 0;
29200 let isPseudo = 1;
29201 let isCodeGenOnly = 1;
29202 let DecoderNamespace = "EXT_mmvec";
29203 }
29204 def V6_vabsuw_alt : HInst<
29205 (outs HvxVR:$Vd32),
29206 (ins HvxVR:$Vu32),
29207 "$Vd32.uw = vabs($Vu32.w)",
29208 tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29209 let hasNewValue = 1;
29210 let opNewValue = 0;
29211 let isPseudo = 1;
29212 let isCodeGenOnly = 1;
29213 let DecoderNamespace = "EXT_mmvec";
29214 }
29215 def V6_vabsw : HInst<
29216 (outs HvxVR:$Vd32),
29217 (ins HvxVR:$Vu32),
29218 "$Vd32.w = vabs($Vu32.w)",
29219 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29220 let Inst{7-5} = 0b010;
29221 let Inst{13-13} = 0b0;
29222 let Inst{31-16} = 0b0001111000000000;
29223 let hasNewValue = 1;
29224 let opNewValue = 0;
29225 let DecoderNamespace = "EXT_mmvec";
29226 }
29227 def V6_vabsw_alt : HInst<
29228 (outs HvxVR:$Vd32),
29229 (ins HvxVR:$Vu32),
29230 "$Vd32 = vabsw($Vu32)",
29231 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29232 let hasNewValue = 1;
29233 let opNewValue = 0;
29234 let isPseudo = 1;
29235 let isCodeGenOnly = 1;
29236 let DecoderNamespace = "EXT_mmvec";
29237 }
29238 def V6_vabsw_sat : HInst<
29239 (outs HvxVR:$Vd32),
29240 (ins HvxVR:$Vu32),
29241 "$Vd32.w = vabs($Vu32.w):sat",
29242 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29243 let Inst{7-5} = 0b011;
29244 let Inst{13-13} = 0b0;
29245 let Inst{31-16} = 0b0001111000000000;
29246 let hasNewValue = 1;
29247 let opNewValue = 0;
29248 let DecoderNamespace = "EXT_mmvec";
29249 }
29250 def V6_vabsw_sat_alt : HInst<
29251 (outs HvxVR:$Vd32),
29252 (ins HvxVR:$Vu32),
29253 "$Vd32 = vabsw($Vu32):sat",
29254 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29255 let hasNewValue = 1;
29256 let opNewValue = 0;
29257 let isPseudo = 1;
29258 let isCodeGenOnly = 1;
29259 let DecoderNamespace = "EXT_mmvec";
29260 }
29261 def V6_vaddb : HInst<
29262 (outs HvxVR:$Vd32),
29263 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29264 "$Vd32.b = vadd($Vu32.b,$Vv32.b)",
29265 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29266 let Inst{7-5} = 0b110;
29267 let Inst{13-13} = 0b0;
29268 let Inst{31-21} = 0b00011111101;
29269 let hasNewValue = 1;
29270 let opNewValue = 0;
29271 let DecoderNamespace = "EXT_mmvec";
29272 }
29273 def V6_vaddb_alt : HInst<
29274 (outs HvxVR:$Vd32),
29275 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29276 "$Vd32 = vaddb($Vu32,$Vv32)",
29277 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29278 let hasNewValue = 1;
29279 let opNewValue = 0;
29280 let isPseudo = 1;
29281 let isCodeGenOnly = 1;
29282 let DecoderNamespace = "EXT_mmvec";
29283 }
29284 def V6_vaddb_dv : HInst<
29285 (outs HvxWR:$Vdd32),
29286 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29287 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
29288 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29289 let Inst{7-5} = 0b100;
29290 let Inst{13-13} = 0b0;
29291 let Inst{31-21} = 0b00011100011;
29292 let hasNewValue = 1;
29293 let opNewValue = 0;
29294 let DecoderNamespace = "EXT_mmvec";
29295 }
29296 def V6_vaddb_dv_alt : HInst<
29297 (outs HvxWR:$Vdd32),
29298 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29299 "$Vdd32 = vaddb($Vuu32,$Vvv32)",
29300 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29301 let hasNewValue = 1;
29302 let opNewValue = 0;
29303 let isPseudo = 1;
29304 let isCodeGenOnly = 1;
29305 let DecoderNamespace = "EXT_mmvec";
29306 }
29307 def V6_vaddbnq : HInst<
29308 (outs HvxVR:$Vx32),
29309 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29310 "if (!$Qv4) $Vx32.b += $Vu32.b",
29311 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29312 let Inst{7-5} = 0b011;
29313 let Inst{13-13} = 0b1;
29314 let Inst{21-16} = 0b000001;
29315 let Inst{31-24} = 0b00011110;
29316 let hasNewValue = 1;
29317 let opNewValue = 0;
29318 let isAccumulator = 1;
29319 let DecoderNamespace = "EXT_mmvec";
29320 let Constraints = "$Vx32 = $Vx32in";
29321 }
29322 def V6_vaddbnq_alt : HInst<
29323 (outs HvxVR:$Vx32),
29324 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29325 "if (!$Qv4.b) $Vx32.b += $Vu32.b",
29326 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29327 let hasNewValue = 1;
29328 let opNewValue = 0;
29329 let isAccumulator = 1;
29330 let isPseudo = 1;
29331 let isCodeGenOnly = 1;
29332 let DecoderNamespace = "EXT_mmvec";
29333 let Constraints = "$Vx32 = $Vx32in";
29334 }
29335 def V6_vaddbq : HInst<
29336 (outs HvxVR:$Vx32),
29337 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29338 "if ($Qv4) $Vx32.b += $Vu32.b",
29339 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29340 let Inst{7-5} = 0b000;
29341 let Inst{13-13} = 0b1;
29342 let Inst{21-16} = 0b000001;
29343 let Inst{31-24} = 0b00011110;
29344 let hasNewValue = 1;
29345 let opNewValue = 0;
29346 let isAccumulator = 1;
29347 let DecoderNamespace = "EXT_mmvec";
29348 let Constraints = "$Vx32 = $Vx32in";
29349 }
29350 def V6_vaddbq_alt : HInst<
29351 (outs HvxVR:$Vx32),
29352 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29353 "if ($Qv4.b) $Vx32.b += $Vu32.b",
29354 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29355 let hasNewValue = 1;
29356 let opNewValue = 0;
29357 let isAccumulator = 1;
29358 let isPseudo = 1;
29359 let isCodeGenOnly = 1;
29360 let DecoderNamespace = "EXT_mmvec";
29361 let Constraints = "$Vx32 = $Vx32in";
29362 }
29363 def V6_vaddbsat : HInst<
29364 (outs HvxVR:$Vd32),
29365 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29366 "$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
29367 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29368 let Inst{7-5} = 0b000;
29369 let Inst{13-13} = 0b0;
29370 let Inst{31-21} = 0b00011111000;
29371 let hasNewValue = 1;
29372 let opNewValue = 0;
29373 let DecoderNamespace = "EXT_mmvec";
29374 }
29375 def V6_vaddbsat_alt : HInst<
29376 (outs HvxVR:$Vd32),
29377 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29378 "$Vd32 = vaddb($Vu32,$Vv32):sat",
29379 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29380 let hasNewValue = 1;
29381 let opNewValue = 0;
29382 let isPseudo = 1;
29383 let isCodeGenOnly = 1;
29384 let DecoderNamespace = "EXT_mmvec";
29385 }
29386 def V6_vaddbsat_dv : HInst<
29387 (outs HvxWR:$Vdd32),
29388 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29389 "$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
29390 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
29391 let Inst{7-5} = 0b000;
29392 let Inst{13-13} = 0b0;
29393 let Inst{31-21} = 0b00011110101;
29394 let hasNewValue = 1;
29395 let opNewValue = 0;
29396 let DecoderNamespace = "EXT_mmvec";
29397 }
29398 def V6_vaddbsat_dv_alt : HInst<
29399 (outs HvxWR:$Vdd32),
29400 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29401 "$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
29402 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29403 let hasNewValue = 1;
29404 let opNewValue = 0;
29405 let isPseudo = 1;
29406 let isCodeGenOnly = 1;
29407 let DecoderNamespace = "EXT_mmvec";
29408 }
29409 def V6_vaddcarry : HInst<
29410 (outs HvxVR:$Vd32, HvxQR:$Qx4),
29411 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
29412 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
29413 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
29414 let Inst{7-7} = 0b0;
29415 let Inst{13-13} = 0b1;
29416 let Inst{31-21} = 0b00011100101;
29417 let hasNewValue = 1;
29418 let opNewValue = 0;
29419 let DecoderNamespace = "EXT_mmvec";
29420 let Constraints = "$Qx4 = $Qx4in";
29421 }
29422 def V6_vaddcarryo : HInst<
29423 (outs HvxVR:$Vd32, HvxQR:$Qe4),
29424 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29425 "$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
29426 tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> {
29427 let Inst{7-7} = 0b0;
29428 let Inst{13-13} = 0b1;
29429 let Inst{31-21} = 0b00011101101;
29430 let hasNewValue = 1;
29431 let opNewValue = 0;
29432 let hasNewValue2 = 1;
29433 let opNewValue2 = 1;
29434 let DecoderNamespace = "EXT_mmvec";
29435 }
29436 def V6_vaddcarrysat : HInst<
29437 (outs HvxVR:$Vd32),
29438 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
29439 "$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
29440 tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
29441 let Inst{7-7} = 0b0;
29442 let Inst{13-13} = 0b1;
29443 let Inst{31-21} = 0b00011101100;
29444 let hasNewValue = 1;
29445 let opNewValue = 0;
29446 let DecoderNamespace = "EXT_mmvec";
29447 }
29448 def V6_vaddclbh : HInst<
29449 (outs HvxVR:$Vd32),
29450 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29451 "$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
29452 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
29453 let Inst{7-5} = 0b000;
29454 let Inst{13-13} = 0b1;
29455 let Inst{31-21} = 0b00011111000;
29456 let hasNewValue = 1;
29457 let opNewValue = 0;
29458 let DecoderNamespace = "EXT_mmvec";
29459 }
29460 def V6_vaddclbw : HInst<
29461 (outs HvxVR:$Vd32),
29462 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29463 "$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
29464 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
29465 let Inst{7-5} = 0b001;
29466 let Inst{13-13} = 0b1;
29467 let Inst{31-21} = 0b00011111000;
29468 let hasNewValue = 1;
29469 let opNewValue = 0;
29470 let DecoderNamespace = "EXT_mmvec";
29471 }
29472 def V6_vaddh : HInst<
29473 (outs HvxVR:$Vd32),
29474 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29475 "$Vd32.h = vadd($Vu32.h,$Vv32.h)",
29476 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29477 let Inst{7-5} = 0b111;
29478 let Inst{13-13} = 0b0;
29479 let Inst{31-21} = 0b00011111101;
29480 let hasNewValue = 1;
29481 let opNewValue = 0;
29482 let DecoderNamespace = "EXT_mmvec";
29483 }
29484 def V6_vaddh_alt : HInst<
29485 (outs HvxVR:$Vd32),
29486 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29487 "$Vd32 = vaddh($Vu32,$Vv32)",
29488 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29489 let hasNewValue = 1;
29490 let opNewValue = 0;
29491 let isPseudo = 1;
29492 let isCodeGenOnly = 1;
29493 let DecoderNamespace = "EXT_mmvec";
29494 }
29495 def V6_vaddh_dv : HInst<
29496 (outs HvxWR:$Vdd32),
29497 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29498 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
29499 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29500 let Inst{7-5} = 0b101;
29501 let Inst{13-13} = 0b0;
29502 let Inst{31-21} = 0b00011100011;
29503 let hasNewValue = 1;
29504 let opNewValue = 0;
29505 let DecoderNamespace = "EXT_mmvec";
29506 }
29507 def V6_vaddh_dv_alt : HInst<
29508 (outs HvxWR:$Vdd32),
29509 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29510 "$Vdd32 = vaddh($Vuu32,$Vvv32)",
29511 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29512 let hasNewValue = 1;
29513 let opNewValue = 0;
29514 let isPseudo = 1;
29515 let isCodeGenOnly = 1;
29516 let DecoderNamespace = "EXT_mmvec";
29517 }
29518 def V6_vaddhnq : HInst<
29519 (outs HvxVR:$Vx32),
29520 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29521 "if (!$Qv4) $Vx32.h += $Vu32.h",
29522 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29523 let Inst{7-5} = 0b100;
29524 let Inst{13-13} = 0b1;
29525 let Inst{21-16} = 0b000001;
29526 let Inst{31-24} = 0b00011110;
29527 let hasNewValue = 1;
29528 let opNewValue = 0;
29529 let isAccumulator = 1;
29530 let DecoderNamespace = "EXT_mmvec";
29531 let Constraints = "$Vx32 = $Vx32in";
29532 }
29533 def V6_vaddhnq_alt : HInst<
29534 (outs HvxVR:$Vx32),
29535 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29536 "if (!$Qv4.h) $Vx32.h += $Vu32.h",
29537 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29538 let hasNewValue = 1;
29539 let opNewValue = 0;
29540 let isAccumulator = 1;
29541 let isPseudo = 1;
29542 let isCodeGenOnly = 1;
29543 let DecoderNamespace = "EXT_mmvec";
29544 let Constraints = "$Vx32 = $Vx32in";
29545 }
29546 def V6_vaddhq : HInst<
29547 (outs HvxVR:$Vx32),
29548 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29549 "if ($Qv4) $Vx32.h += $Vu32.h",
29550 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29551 let Inst{7-5} = 0b001;
29552 let Inst{13-13} = 0b1;
29553 let Inst{21-16} = 0b000001;
29554 let Inst{31-24} = 0b00011110;
29555 let hasNewValue = 1;
29556 let opNewValue = 0;
29557 let isAccumulator = 1;
29558 let DecoderNamespace = "EXT_mmvec";
29559 let Constraints = "$Vx32 = $Vx32in";
29560 }
29561 def V6_vaddhq_alt : HInst<
29562 (outs HvxVR:$Vx32),
29563 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29564 "if ($Qv4.h) $Vx32.h += $Vu32.h",
29565 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29566 let hasNewValue = 1;
29567 let opNewValue = 0;
29568 let isAccumulator = 1;
29569 let isPseudo = 1;
29570 let isCodeGenOnly = 1;
29571 let DecoderNamespace = "EXT_mmvec";
29572 let Constraints = "$Vx32 = $Vx32in";
29573 }
29574 def V6_vaddhsat : HInst<
29575 (outs HvxVR:$Vd32),
29576 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29577 "$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
29578 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29579 let Inst{7-5} = 0b011;
29580 let Inst{13-13} = 0b0;
29581 let Inst{31-21} = 0b00011100010;
29582 let hasNewValue = 1;
29583 let opNewValue = 0;
29584 let DecoderNamespace = "EXT_mmvec";
29585 }
29586 def V6_vaddhsat_alt : HInst<
29587 (outs HvxVR:$Vd32),
29588 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29589 "$Vd32 = vaddh($Vu32,$Vv32):sat",
29590 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29591 let hasNewValue = 1;
29592 let opNewValue = 0;
29593 let isPseudo = 1;
29594 let isCodeGenOnly = 1;
29595 let DecoderNamespace = "EXT_mmvec";
29596 }
29597 def V6_vaddhsat_dv : HInst<
29598 (outs HvxWR:$Vdd32),
29599 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29600 "$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
29601 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29602 let Inst{7-5} = 0b001;
29603 let Inst{13-13} = 0b0;
29604 let Inst{31-21} = 0b00011100100;
29605 let hasNewValue = 1;
29606 let opNewValue = 0;
29607 let DecoderNamespace = "EXT_mmvec";
29608 }
29609 def V6_vaddhsat_dv_alt : HInst<
29610 (outs HvxWR:$Vdd32),
29611 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29612 "$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
29613 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29614 let hasNewValue = 1;
29615 let opNewValue = 0;
29616 let isPseudo = 1;
29617 let isCodeGenOnly = 1;
29618 let DecoderNamespace = "EXT_mmvec";
29619 }
29620 def V6_vaddhw : HInst<
29621 (outs HvxWR:$Vdd32),
29622 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29623 "$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
29624 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29625 let Inst{7-5} = 0b100;
29626 let Inst{13-13} = 0b0;
29627 let Inst{31-21} = 0b00011100101;
29628 let hasNewValue = 1;
29629 let opNewValue = 0;
29630 let DecoderNamespace = "EXT_mmvec";
29631 }
29632 def V6_vaddhw_acc : HInst<
29633 (outs HvxWR:$Vxx32),
29634 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29635 "$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
29636 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29637 let Inst{7-5} = 0b010;
29638 let Inst{13-13} = 0b1;
29639 let Inst{31-21} = 0b00011100001;
29640 let hasNewValue = 1;
29641 let opNewValue = 0;
29642 let isAccumulator = 1;
29643 let DecoderNamespace = "EXT_mmvec";
29644 let Constraints = "$Vxx32 = $Vxx32in";
29645 }
29646 def V6_vaddhw_acc_alt : HInst<
29647 (outs HvxWR:$Vxx32),
29648 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29649 "$Vxx32 += vaddh($Vu32,$Vv32)",
29650 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29651 let hasNewValue = 1;
29652 let opNewValue = 0;
29653 let isAccumulator = 1;
29654 let isPseudo = 1;
29655 let isCodeGenOnly = 1;
29656 let DecoderNamespace = "EXT_mmvec";
29657 let Constraints = "$Vxx32 = $Vxx32in";
29658 }
29659 def V6_vaddhw_alt : HInst<
29660 (outs HvxWR:$Vdd32),
29661 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29662 "$Vdd32 = vaddh($Vu32,$Vv32)",
29663 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29664 let hasNewValue = 1;
29665 let opNewValue = 0;
29666 let isPseudo = 1;
29667 let isCodeGenOnly = 1;
29668 let DecoderNamespace = "EXT_mmvec";
29669 }
29670 def V6_vaddubh : HInst<
29671 (outs HvxWR:$Vdd32),
29672 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29673 "$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
29674 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29675 let Inst{7-5} = 0b010;
29676 let Inst{13-13} = 0b0;
29677 let Inst{31-21} = 0b00011100101;
29678 let hasNewValue = 1;
29679 let opNewValue = 0;
29680 let DecoderNamespace = "EXT_mmvec";
29681 }
29682 def V6_vaddubh_acc : HInst<
29683 (outs HvxWR:$Vxx32),
29684 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29685 "$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
29686 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29687 let Inst{7-5} = 0b101;
29688 let Inst{13-13} = 0b1;
29689 let Inst{31-21} = 0b00011100010;
29690 let hasNewValue = 1;
29691 let opNewValue = 0;
29692 let isAccumulator = 1;
29693 let DecoderNamespace = "EXT_mmvec";
29694 let Constraints = "$Vxx32 = $Vxx32in";
29695 }
29696 def V6_vaddubh_acc_alt : HInst<
29697 (outs HvxWR:$Vxx32),
29698 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29699 "$Vxx32 += vaddub($Vu32,$Vv32)",
29700 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29701 let hasNewValue = 1;
29702 let opNewValue = 0;
29703 let isAccumulator = 1;
29704 let isPseudo = 1;
29705 let isCodeGenOnly = 1;
29706 let DecoderNamespace = "EXT_mmvec";
29707 let Constraints = "$Vxx32 = $Vxx32in";
29708 }
29709 def V6_vaddubh_alt : HInst<
29710 (outs HvxWR:$Vdd32),
29711 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29712 "$Vdd32 = vaddub($Vu32,$Vv32)",
29713 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29714 let hasNewValue = 1;
29715 let opNewValue = 0;
29716 let isPseudo = 1;
29717 let isCodeGenOnly = 1;
29718 let DecoderNamespace = "EXT_mmvec";
29719 }
29720 def V6_vaddubsat : HInst<
29721 (outs HvxVR:$Vd32),
29722 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29723 "$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
29724 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29725 let Inst{7-5} = 0b001;
29726 let Inst{13-13} = 0b0;
29727 let Inst{31-21} = 0b00011100010;
29728 let hasNewValue = 1;
29729 let opNewValue = 0;
29730 let DecoderNamespace = "EXT_mmvec";
29731 }
29732 def V6_vaddubsat_alt : HInst<
29733 (outs HvxVR:$Vd32),
29734 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29735 "$Vd32 = vaddub($Vu32,$Vv32):sat",
29736 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29737 let hasNewValue = 1;
29738 let opNewValue = 0;
29739 let isPseudo = 1;
29740 let isCodeGenOnly = 1;
29741 let DecoderNamespace = "EXT_mmvec";
29742 }
29743 def V6_vaddubsat_dv : HInst<
29744 (outs HvxWR:$Vdd32),
29745 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29746 "$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
29747 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29748 let Inst{7-5} = 0b111;
29749 let Inst{13-13} = 0b0;
29750 let Inst{31-21} = 0b00011100011;
29751 let hasNewValue = 1;
29752 let opNewValue = 0;
29753 let DecoderNamespace = "EXT_mmvec";
29754 }
29755 def V6_vaddubsat_dv_alt : HInst<
29756 (outs HvxWR:$Vdd32),
29757 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29758 "$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
29759 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29760 let hasNewValue = 1;
29761 let opNewValue = 0;
29762 let isPseudo = 1;
29763 let isCodeGenOnly = 1;
29764 let DecoderNamespace = "EXT_mmvec";
29765 }
29766 def V6_vaddububb_sat : HInst<
29767 (outs HvxVR:$Vd32),
29768 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29769 "$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
29770 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29771 let Inst{7-5} = 0b100;
29772 let Inst{13-13} = 0b0;
29773 let Inst{31-21} = 0b00011110101;
29774 let hasNewValue = 1;
29775 let opNewValue = 0;
29776 let DecoderNamespace = "EXT_mmvec";
29777 }
29778 def V6_vadduhsat : HInst<
29779 (outs HvxVR:$Vd32),
29780 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29781 "$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
29782 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29783 let Inst{7-5} = 0b010;
29784 let Inst{13-13} = 0b0;
29785 let Inst{31-21} = 0b00011100010;
29786 let hasNewValue = 1;
29787 let opNewValue = 0;
29788 let DecoderNamespace = "EXT_mmvec";
29789 }
29790 def V6_vadduhsat_alt : HInst<
29791 (outs HvxVR:$Vd32),
29792 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29793 "$Vd32 = vadduh($Vu32,$Vv32):sat",
29794 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29795 let hasNewValue = 1;
29796 let opNewValue = 0;
29797 let isPseudo = 1;
29798 let isCodeGenOnly = 1;
29799 let DecoderNamespace = "EXT_mmvec";
29800 }
29801 def V6_vadduhsat_dv : HInst<
29802 (outs HvxWR:$Vdd32),
29803 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29804 "$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
29805 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29806 let Inst{7-5} = 0b000;
29807 let Inst{13-13} = 0b0;
29808 let Inst{31-21} = 0b00011100100;
29809 let hasNewValue = 1;
29810 let opNewValue = 0;
29811 let DecoderNamespace = "EXT_mmvec";
29812 }
29813 def V6_vadduhsat_dv_alt : HInst<
29814 (outs HvxWR:$Vdd32),
29815 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29816 "$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
29817 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29818 let hasNewValue = 1;
29819 let opNewValue = 0;
29820 let isPseudo = 1;
29821 let isCodeGenOnly = 1;
29822 let DecoderNamespace = "EXT_mmvec";
29823 }
29824 def V6_vadduhw : HInst<
29825 (outs HvxWR:$Vdd32),
29826 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29827 "$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
29828 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29829 let Inst{7-5} = 0b011;
29830 let Inst{13-13} = 0b0;
29831 let Inst{31-21} = 0b00011100101;
29832 let hasNewValue = 1;
29833 let opNewValue = 0;
29834 let DecoderNamespace = "EXT_mmvec";
29835 }
29836 def V6_vadduhw_acc : HInst<
29837 (outs HvxWR:$Vxx32),
29838 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29839 "$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
29840 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29841 let Inst{7-5} = 0b100;
29842 let Inst{13-13} = 0b1;
29843 let Inst{31-21} = 0b00011100010;
29844 let hasNewValue = 1;
29845 let opNewValue = 0;
29846 let isAccumulator = 1;
29847 let DecoderNamespace = "EXT_mmvec";
29848 let Constraints = "$Vxx32 = $Vxx32in";
29849 }
29850 def V6_vadduhw_acc_alt : HInst<
29851 (outs HvxWR:$Vxx32),
29852 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29853 "$Vxx32 += vadduh($Vu32,$Vv32)",
29854 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29855 let hasNewValue = 1;
29856 let opNewValue = 0;
29857 let isAccumulator = 1;
29858 let isPseudo = 1;
29859 let isCodeGenOnly = 1;
29860 let DecoderNamespace = "EXT_mmvec";
29861 let Constraints = "$Vxx32 = $Vxx32in";
29862 }
29863 def V6_vadduhw_alt : HInst<
29864 (outs HvxWR:$Vdd32),
29865 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29866 "$Vdd32 = vadduh($Vu32,$Vv32)",
29867 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29868 let hasNewValue = 1;
29869 let opNewValue = 0;
29870 let isPseudo = 1;
29871 let isCodeGenOnly = 1;
29872 let DecoderNamespace = "EXT_mmvec";
29873 }
29874 def V6_vadduwsat : HInst<
29875 (outs HvxVR:$Vd32),
29876 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29877 "$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
29878 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29879 let Inst{7-5} = 0b001;
29880 let Inst{13-13} = 0b0;
29881 let Inst{31-21} = 0b00011111011;
29882 let hasNewValue = 1;
29883 let opNewValue = 0;
29884 let DecoderNamespace = "EXT_mmvec";
29885 }
29886 def V6_vadduwsat_alt : HInst<
29887 (outs HvxVR:$Vd32),
29888 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29889 "$Vd32 = vadduw($Vu32,$Vv32):sat",
29890 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29891 let hasNewValue = 1;
29892 let opNewValue = 0;
29893 let isPseudo = 1;
29894 let isCodeGenOnly = 1;
29895 let DecoderNamespace = "EXT_mmvec";
29896 }
29897 def V6_vadduwsat_dv : HInst<
29898 (outs HvxWR:$Vdd32),
29899 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29900 "$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
29901 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
29902 let Inst{7-5} = 0b010;
29903 let Inst{13-13} = 0b0;
29904 let Inst{31-21} = 0b00011110101;
29905 let hasNewValue = 1;
29906 let opNewValue = 0;
29907 let DecoderNamespace = "EXT_mmvec";
29908 }
29909 def V6_vadduwsat_dv_alt : HInst<
29910 (outs HvxWR:$Vdd32),
29911 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29912 "$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
29913 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29914 let hasNewValue = 1;
29915 let opNewValue = 0;
29916 let isPseudo = 1;
29917 let isCodeGenOnly = 1;
29918 let DecoderNamespace = "EXT_mmvec";
29919 }
29920 def V6_vaddw : HInst<
29921 (outs HvxVR:$Vd32),
29922 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29923 "$Vd32.w = vadd($Vu32.w,$Vv32.w)",
29924 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29925 let Inst{7-5} = 0b000;
29926 let Inst{13-13} = 0b0;
29927 let Inst{31-21} = 0b00011100010;
29928 let hasNewValue = 1;
29929 let opNewValue = 0;
29930 let DecoderNamespace = "EXT_mmvec";
29931 }
29932 def V6_vaddw_alt : HInst<
29933 (outs HvxVR:$Vd32),
29934 (ins HvxVR:$Vu32, HvxVR:$Vv32),
29935 "$Vd32 = vaddw($Vu32,$Vv32)",
29936 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29937 let hasNewValue = 1;
29938 let opNewValue = 0;
29939 let isPseudo = 1;
29940 let isCodeGenOnly = 1;
29941 let DecoderNamespace = "EXT_mmvec";
29942 }
29943 def V6_vaddw_dv : HInst<
29944 (outs HvxWR:$Vdd32),
29945 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29946 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
29947 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29948 let Inst{7-5} = 0b110;
29949 let Inst{13-13} = 0b0;
29950 let Inst{31-21} = 0b00011100011;
29951 let hasNewValue = 1;
29952 let opNewValue = 0;
29953 let DecoderNamespace = "EXT_mmvec";
29954 }
29955 def V6_vaddw_dv_alt : HInst<
29956 (outs HvxWR:$Vdd32),
29957 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29958 "$Vdd32 = vaddw($Vuu32,$Vvv32)",
29959 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29960 let hasNewValue = 1;
29961 let opNewValue = 0;
29962 let isPseudo = 1;
29963 let isCodeGenOnly = 1;
29964 let DecoderNamespace = "EXT_mmvec";
29965 }
29966 def V6_vaddwnq : HInst<
29967 (outs HvxVR:$Vx32),
29968 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29969 "if (!$Qv4) $Vx32.w += $Vu32.w",
29970 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29971 let Inst{7-5} = 0b101;
29972 let Inst{13-13} = 0b1;
29973 let Inst{21-16} = 0b000001;
29974 let Inst{31-24} = 0b00011110;
29975 let hasNewValue = 1;
29976 let opNewValue = 0;
29977 let isAccumulator = 1;
29978 let DecoderNamespace = "EXT_mmvec";
29979 let Constraints = "$Vx32 = $Vx32in";
29980 }
29981 def V6_vaddwnq_alt : HInst<
29982 (outs HvxVR:$Vx32),
29983 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29984 "if (!$Qv4.w) $Vx32.w += $Vu32.w",
29985 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29986 let hasNewValue = 1;
29987 let opNewValue = 0;
29988 let isAccumulator = 1;
29989 let isPseudo = 1;
29990 let isCodeGenOnly = 1;
29991 let DecoderNamespace = "EXT_mmvec";
29992 let Constraints = "$Vx32 = $Vx32in";
29993 }
29994 def V6_vaddwq : HInst<
29995 (outs HvxVR:$Vx32),
29996 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29997 "if ($Qv4) $Vx32.w += $Vu32.w",
29998 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29999 let Inst{7-5} = 0b010;
30000 let Inst{13-13} = 0b1;
30001 let Inst{21-16} = 0b000001;
30002 let Inst{31-24} = 0b00011110;
30003 let hasNewValue = 1;
30004 let opNewValue = 0;
30005 let isAccumulator = 1;
30006 let DecoderNamespace = "EXT_mmvec";
30007 let Constraints = "$Vx32 = $Vx32in";
30008 }
30009 def V6_vaddwq_alt : HInst<
30010 (outs HvxVR:$Vx32),
30011 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30012 "if ($Qv4.w) $Vx32.w += $Vu32.w",
30013 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30014 let hasNewValue = 1;
30015 let opNewValue = 0;
30016 let isAccumulator = 1;
30017 let isPseudo = 1;
30018 let isCodeGenOnly = 1;
30019 let DecoderNamespace = "EXT_mmvec";
30020 let Constraints = "$Vx32 = $Vx32in";
30021 }
30022 def V6_vaddwsat : HInst<
30023 (outs HvxVR:$Vd32),
30024 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30025 "$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
30026 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30027 let Inst{7-5} = 0b100;
30028 let Inst{13-13} = 0b0;
30029 let Inst{31-21} = 0b00011100010;
30030 let hasNewValue = 1;
30031 let opNewValue = 0;
30032 let DecoderNamespace = "EXT_mmvec";
30033 }
30034 def V6_vaddwsat_alt : HInst<
30035 (outs HvxVR:$Vd32),
30036 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30037 "$Vd32 = vaddw($Vu32,$Vv32):sat",
30038 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30039 let hasNewValue = 1;
30040 let opNewValue = 0;
30041 let isPseudo = 1;
30042 let isCodeGenOnly = 1;
30043 let DecoderNamespace = "EXT_mmvec";
30044 }
30045 def V6_vaddwsat_dv : HInst<
30046 (outs HvxWR:$Vdd32),
30047 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30048 "$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
30049 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30050 let Inst{7-5} = 0b010;
30051 let Inst{13-13} = 0b0;
30052 let Inst{31-21} = 0b00011100100;
30053 let hasNewValue = 1;
30054 let opNewValue = 0;
30055 let DecoderNamespace = "EXT_mmvec";
30056 }
30057 def V6_vaddwsat_dv_alt : HInst<
30058 (outs HvxWR:$Vdd32),
30059 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30060 "$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
30061 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30062 let hasNewValue = 1;
30063 let opNewValue = 0;
30064 let isPseudo = 1;
30065 let isCodeGenOnly = 1;
30066 let DecoderNamespace = "EXT_mmvec";
30067 }
30068 def V6_valignb : HInst<
30069 (outs HvxVR:$Vd32),
30070 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30071 "$Vd32 = valign($Vu32,$Vv32,$Rt8)",
30072 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
30073 let Inst{7-5} = 0b000;
30074 let Inst{13-13} = 0b0;
30075 let Inst{31-24} = 0b00011011;
30076 let hasNewValue = 1;
30077 let opNewValue = 0;
30078 let DecoderNamespace = "EXT_mmvec";
30079 }
30080 def V6_valignbi : HInst<
30081 (outs HvxVR:$Vd32),
30082 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
30083 "$Vd32 = valign($Vu32,$Vv32,#$Ii)",
30084 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
30085 let Inst{13-13} = 0b1;
30086 let Inst{31-21} = 0b00011110001;
30087 let hasNewValue = 1;
30088 let opNewValue = 0;
30089 let DecoderNamespace = "EXT_mmvec";
30090 }
30091 def V6_vand : HInst<
30092 (outs HvxVR:$Vd32),
30093 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30094 "$Vd32 = vand($Vu32,$Vv32)",
30095 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30096 let Inst{7-5} = 0b101;
30097 let Inst{13-13} = 0b0;
30098 let Inst{31-21} = 0b00011100001;
30099 let hasNewValue = 1;
30100 let opNewValue = 0;
30101 let DecoderNamespace = "EXT_mmvec";
30102 }
30103 def V6_vandnqrt : HInst<
30104 (outs HvxVR:$Vd32),
30105 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30106 "$Vd32 = vand(!$Qu4,$Rt32)",
30107 tc_ac4046bc, TypeCVI_VX>, Enc_7b7ba8, Requires<[UseHVXV62]> {
30108 let Inst{7-5} = 0b101;
30109 let Inst{13-10} = 0b0001;
30110 let Inst{31-21} = 0b00011001101;
30111 let hasNewValue = 1;
30112 let opNewValue = 0;
30113 let DecoderNamespace = "EXT_mmvec";
30114 }
30115 def V6_vandnqrt_acc : HInst<
30116 (outs HvxVR:$Vx32),
30117 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30118 "$Vx32 |= vand(!$Qu4,$Rt32)",
30119 tc_2e8f5f6e, TypeCVI_VX>, Enc_895bd9, Requires<[UseHVXV62]> {
30120 let Inst{7-5} = 0b011;
30121 let Inst{13-10} = 0b1001;
30122 let Inst{31-21} = 0b00011001011;
30123 let hasNewValue = 1;
30124 let opNewValue = 0;
30125 let isAccumulator = 1;
30126 let DecoderNamespace = "EXT_mmvec";
30127 let Constraints = "$Vx32 = $Vx32in";
30128 }
30129 def V6_vandnqrt_acc_alt : HInst<
30130 (outs HvxVR:$Vx32),
30131 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30132 "$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
30133 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30134 let hasNewValue = 1;
30135 let opNewValue = 0;
30136 let isAccumulator = 1;
30137 let isPseudo = 1;
30138 let isCodeGenOnly = 1;
30139 let DecoderNamespace = "EXT_mmvec";
30140 let Constraints = "$Vx32 = $Vx32in";
30141 }
30142 def V6_vandnqrt_alt : HInst<
30143 (outs HvxVR:$Vd32),
30144 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30145 "$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
30146 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30147 let hasNewValue = 1;
30148 let opNewValue = 0;
30149 let isPseudo = 1;
30150 let isCodeGenOnly = 1;
30151 let DecoderNamespace = "EXT_mmvec";
30152 }
30153 def V6_vandqrt : HInst<
30154 (outs HvxVR:$Vd32),
30155 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30156 "$Vd32 = vand($Qu4,$Rt32)",
30157 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
30158 let Inst{7-5} = 0b101;
30159 let Inst{13-10} = 0b0000;
30160 let Inst{31-21} = 0b00011001101;
30161 let hasNewValue = 1;
30162 let opNewValue = 0;
30163 let DecoderNamespace = "EXT_mmvec";
30164 }
30165 def V6_vandqrt_acc : HInst<
30166 (outs HvxVR:$Vx32),
30167 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30168 "$Vx32 |= vand($Qu4,$Rt32)",
30169 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
30170 let Inst{7-5} = 0b011;
30171 let Inst{13-10} = 0b1000;
30172 let Inst{31-21} = 0b00011001011;
30173 let hasNewValue = 1;
30174 let opNewValue = 0;
30175 let isAccumulator = 1;
30176 let DecoderNamespace = "EXT_mmvec";
30177 let Constraints = "$Vx32 = $Vx32in";
30178 }
30179 def V6_vandqrt_acc_alt : HInst<
30180 (outs HvxVR:$Vx32),
30181 (ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30182 "$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
30183 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30184 let hasNewValue = 1;
30185 let opNewValue = 0;
30186 let isAccumulator = 1;
30187 let isPseudo = 1;
30188 let isCodeGenOnly = 1;
30189 let DecoderNamespace = "EXT_mmvec";
30190 let Constraints = "$Vx32 = $Vx32in";
30191 }
30192 def V6_vandqrt_alt : HInst<
30193 (outs HvxVR:$Vd32),
30194 (ins HvxQR:$Qu4, IntRegs:$Rt32),
30195 "$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
30196 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30197 let hasNewValue = 1;
30198 let opNewValue = 0;
30199 let isPseudo = 1;
30200 let isCodeGenOnly = 1;
30201 let DecoderNamespace = "EXT_mmvec";
30202 }
30203 def V6_vandvnqv : HInst<
30204 (outs HvxVR:$Vd32),
30205 (ins HvxQR:$Qv4, HvxVR:$Vu32),
30206 "$Vd32 = vand(!$Qv4,$Vu32)",
30207 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
30208 let Inst{7-5} = 0b001;
30209 let Inst{13-13} = 0b1;
30210 let Inst{21-16} = 0b000011;
30211 let Inst{31-24} = 0b00011110;
30212 let hasNewValue = 1;
30213 let opNewValue = 0;
30214 let DecoderNamespace = "EXT_mmvec";
30215 }
30216 def V6_vandvqv : HInst<
30217 (outs HvxVR:$Vd32),
30218 (ins HvxQR:$Qv4, HvxVR:$Vu32),
30219 "$Vd32 = vand($Qv4,$Vu32)",
30220 tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
30221 let Inst{7-5} = 0b000;
30222 let Inst{13-13} = 0b1;
30223 let Inst{21-16} = 0b000011;
30224 let Inst{31-24} = 0b00011110;
30225 let hasNewValue = 1;
30226 let opNewValue = 0;
30227 let DecoderNamespace = "EXT_mmvec";
30228 }
30229 def V6_vandvrt : HInst<
30230 (outs HvxQR:$Qd4),
30231 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30232 "$Qd4 = vand($Vu32,$Rt32)",
30233 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
30234 let Inst{7-2} = 0b010010;
30235 let Inst{13-13} = 0b0;
30236 let Inst{31-21} = 0b00011001101;
30237 let hasNewValue = 1;
30238 let opNewValue = 0;
30239 let DecoderNamespace = "EXT_mmvec";
30240 }
30241 def V6_vandvrt_acc : HInst<
30242 (outs HvxQR:$Qx4),
30243 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
30244 "$Qx4 |= vand($Vu32,$Rt32)",
30245 tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
30246 let Inst{7-2} = 0b100000;
30247 let Inst{13-13} = 0b1;
30248 let Inst{31-21} = 0b00011001011;
30249 let isAccumulator = 1;
30250 let DecoderNamespace = "EXT_mmvec";
30251 let Constraints = "$Qx4 = $Qx4in";
30252 }
30253 def V6_vandvrt_acc_alt : HInst<
30254 (outs HvxQR:$Qx4),
30255 (ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
30256 "$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
30257 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30258 let isAccumulator = 1;
30259 let isPseudo = 1;
30260 let isCodeGenOnly = 1;
30261 let DecoderNamespace = "EXT_mmvec";
30262 let Constraints = "$Qx4 = $Qx4in";
30263 }
30264 def V6_vandvrt_alt : HInst<
30265 (outs HvxQR:$Qd4),
30266 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30267 "$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
30268 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30269 let hasNewValue = 1;
30270 let opNewValue = 0;
30271 let isPseudo = 1;
30272 let isCodeGenOnly = 1;
30273 let DecoderNamespace = "EXT_mmvec";
30274 }
30275 def V6_vaslh : HInst<
30276 (outs HvxVR:$Vd32),
30277 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30278 "$Vd32.h = vasl($Vu32.h,$Rt32)",
30279 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30280 let Inst{7-5} = 0b000;
30281 let Inst{13-13} = 0b0;
30282 let Inst{31-21} = 0b00011001100;
30283 let hasNewValue = 1;
30284 let opNewValue = 0;
30285 let DecoderNamespace = "EXT_mmvec";
30286 }
30287 def V6_vaslh_acc : HInst<
30288 (outs HvxVR:$Vx32),
30289 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30290 "$Vx32.h += vasl($Vu32.h,$Rt32)",
30291 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
30292 let Inst{7-5} = 0b101;
30293 let Inst{13-13} = 0b1;
30294 let Inst{31-21} = 0b00011001101;
30295 let hasNewValue = 1;
30296 let opNewValue = 0;
30297 let isAccumulator = 1;
30298 let DecoderNamespace = "EXT_mmvec";
30299 let Constraints = "$Vx32 = $Vx32in";
30300 }
30301 def V6_vaslh_acc_alt : HInst<
30302 (outs HvxVR:$Vx32),
30303 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30304 "$Vx32 += vaslh($Vu32,$Rt32)",
30305 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30306 let hasNewValue = 1;
30307 let opNewValue = 0;
30308 let isAccumulator = 1;
30309 let isPseudo = 1;
30310 let isCodeGenOnly = 1;
30311 let DecoderNamespace = "EXT_mmvec";
30312 let Constraints = "$Vx32 = $Vx32in";
30313 }
30314 def V6_vaslh_alt : HInst<
30315 (outs HvxVR:$Vd32),
30316 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30317 "$Vd32 = vaslh($Vu32,$Rt32)",
30318 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30319 let hasNewValue = 1;
30320 let opNewValue = 0;
30321 let isPseudo = 1;
30322 let isCodeGenOnly = 1;
30323 let DecoderNamespace = "EXT_mmvec";
30324 }
30325 def V6_vaslhv : HInst<
30326 (outs HvxVR:$Vd32),
30327 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30328 "$Vd32.h = vasl($Vu32.h,$Vv32.h)",
30329 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30330 let Inst{7-5} = 0b101;
30331 let Inst{13-13} = 0b0;
30332 let Inst{31-21} = 0b00011111101;
30333 let hasNewValue = 1;
30334 let opNewValue = 0;
30335 let DecoderNamespace = "EXT_mmvec";
30336 }
30337 def V6_vaslhv_alt : HInst<
30338 (outs HvxVR:$Vd32),
30339 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30340 "$Vd32 = vaslh($Vu32,$Vv32)",
30341 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30342 let hasNewValue = 1;
30343 let opNewValue = 0;
30344 let isPseudo = 1;
30345 let isCodeGenOnly = 1;
30346 let DecoderNamespace = "EXT_mmvec";
30347 }
30348 def V6_vaslw : HInst<
30349 (outs HvxVR:$Vd32),
30350 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30351 "$Vd32.w = vasl($Vu32.w,$Rt32)",
30352 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30353 let Inst{7-5} = 0b111;
30354 let Inst{13-13} = 0b0;
30355 let Inst{31-21} = 0b00011001011;
30356 let hasNewValue = 1;
30357 let opNewValue = 0;
30358 let DecoderNamespace = "EXT_mmvec";
30359 }
30360 def V6_vaslw_acc : HInst<
30361 (outs HvxVR:$Vx32),
30362 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30363 "$Vx32.w += vasl($Vu32.w,$Rt32)",
30364 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
30365 let Inst{7-5} = 0b010;
30366 let Inst{13-13} = 0b1;
30367 let Inst{31-21} = 0b00011001011;
30368 let hasNewValue = 1;
30369 let opNewValue = 0;
30370 let isAccumulator = 1;
30371 let DecoderNamespace = "EXT_mmvec";
30372 let Constraints = "$Vx32 = $Vx32in";
30373 }
30374 def V6_vaslw_acc_alt : HInst<
30375 (outs HvxVR:$Vx32),
30376 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30377 "$Vx32 += vaslw($Vu32,$Rt32)",
30378 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30379 let hasNewValue = 1;
30380 let opNewValue = 0;
30381 let isAccumulator = 1;
30382 let isPseudo = 1;
30383 let isCodeGenOnly = 1;
30384 let DecoderNamespace = "EXT_mmvec";
30385 let Constraints = "$Vx32 = $Vx32in";
30386 }
30387 def V6_vaslw_alt : HInst<
30388 (outs HvxVR:$Vd32),
30389 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30390 "$Vd32 = vaslw($Vu32,$Rt32)",
30391 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30392 let hasNewValue = 1;
30393 let opNewValue = 0;
30394 let isPseudo = 1;
30395 let isCodeGenOnly = 1;
30396 let DecoderNamespace = "EXT_mmvec";
30397 }
30398 def V6_vaslwv : HInst<
30399 (outs HvxVR:$Vd32),
30400 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30401 "$Vd32.w = vasl($Vu32.w,$Vv32.w)",
30402 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30403 let Inst{7-5} = 0b100;
30404 let Inst{13-13} = 0b0;
30405 let Inst{31-21} = 0b00011111101;
30406 let hasNewValue = 1;
30407 let opNewValue = 0;
30408 let DecoderNamespace = "EXT_mmvec";
30409 }
30410 def V6_vaslwv_alt : HInst<
30411 (outs HvxVR:$Vd32),
30412 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30413 "$Vd32 = vaslw($Vu32,$Vv32)",
30414 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30415 let hasNewValue = 1;
30416 let opNewValue = 0;
30417 let isPseudo = 1;
30418 let isCodeGenOnly = 1;
30419 let DecoderNamespace = "EXT_mmvec";
30420 }
30421 def V6_vasr_into : HInst<
30422 (outs HvxWR:$Vxx32),
30423 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30424 "$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
30425 tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
30426 let Inst{7-5} = 0b111;
30427 let Inst{13-13} = 0b1;
30428 let Inst{31-21} = 0b00011010101;
30429 let hasNewValue = 1;
30430 let opNewValue = 0;
30431 let DecoderNamespace = "EXT_mmvec";
30432 let Constraints = "$Vxx32 = $Vxx32in";
30433 }
30434 def V6_vasr_into_alt : HInst<
30435 (outs HvxWR:$Vxx32),
30436 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30437 "$Vxx32 = vasrinto($Vu32,$Vv32)",
30438 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
30439 let hasNewValue = 1;
30440 let opNewValue = 0;
30441 let isPseudo = 1;
30442 let isCodeGenOnly = 1;
30443 let DecoderNamespace = "EXT_mmvec";
30444 let Constraints = "$Vxx32 = $Vxx32in";
30445 }
30446 def V6_vasrh : HInst<
30447 (outs HvxVR:$Vd32),
30448 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30449 "$Vd32.h = vasr($Vu32.h,$Rt32)",
30450 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30451 let Inst{7-5} = 0b110;
30452 let Inst{13-13} = 0b0;
30453 let Inst{31-21} = 0b00011001011;
30454 let hasNewValue = 1;
30455 let opNewValue = 0;
30456 let DecoderNamespace = "EXT_mmvec";
30457 }
30458 def V6_vasrh_acc : HInst<
30459 (outs HvxVR:$Vx32),
30460 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30461 "$Vx32.h += vasr($Vu32.h,$Rt32)",
30462 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
30463 let Inst{7-5} = 0b111;
30464 let Inst{13-13} = 0b1;
30465 let Inst{31-21} = 0b00011001100;
30466 let hasNewValue = 1;
30467 let opNewValue = 0;
30468 let isAccumulator = 1;
30469 let DecoderNamespace = "EXT_mmvec";
30470 let Constraints = "$Vx32 = $Vx32in";
30471 }
30472 def V6_vasrh_acc_alt : HInst<
30473 (outs HvxVR:$Vx32),
30474 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30475 "$Vx32 += vasrh($Vu32,$Rt32)",
30476 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30477 let hasNewValue = 1;
30478 let opNewValue = 0;
30479 let isAccumulator = 1;
30480 let isPseudo = 1;
30481 let isCodeGenOnly = 1;
30482 let DecoderNamespace = "EXT_mmvec";
30483 let Constraints = "$Vx32 = $Vx32in";
30484 }
30485 def V6_vasrh_alt : HInst<
30486 (outs HvxVR:$Vd32),
30487 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30488 "$Vd32 = vasrh($Vu32,$Rt32)",
30489 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30490 let hasNewValue = 1;
30491 let opNewValue = 0;
30492 let isPseudo = 1;
30493 let isCodeGenOnly = 1;
30494 let DecoderNamespace = "EXT_mmvec";
30495 }
30496 def V6_vasrhbrndsat : HInst<
30497 (outs HvxVR:$Vd32),
30498 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30499 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
30500 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30501 let Inst{7-5} = 0b000;
30502 let Inst{13-13} = 0b1;
30503 let Inst{31-24} = 0b00011011;
30504 let hasNewValue = 1;
30505 let opNewValue = 0;
30506 let DecoderNamespace = "EXT_mmvec";
30507 }
30508 def V6_vasrhbrndsat_alt : HInst<
30509 (outs HvxVR:$Vd32),
30510 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30511 "$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat",
30512 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30513 let hasNewValue = 1;
30514 let opNewValue = 0;
30515 let isPseudo = 1;
30516 let isCodeGenOnly = 1;
30517 }
30518 def V6_vasrhbsat : HInst<
30519 (outs HvxVR:$Vd32),
30520 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30521 "$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
30522 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30523 let Inst{7-5} = 0b000;
30524 let Inst{13-13} = 0b0;
30525 let Inst{31-24} = 0b00011000;
30526 let hasNewValue = 1;
30527 let opNewValue = 0;
30528 let DecoderNamespace = "EXT_mmvec";
30529 }
30530 def V6_vasrhubrndsat : HInst<
30531 (outs HvxVR:$Vd32),
30532 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30533 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
30534 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30535 let Inst{7-5} = 0b111;
30536 let Inst{13-13} = 0b0;
30537 let Inst{31-24} = 0b00011011;
30538 let hasNewValue = 1;
30539 let opNewValue = 0;
30540 let DecoderNamespace = "EXT_mmvec";
30541 }
30542 def V6_vasrhubrndsat_alt : HInst<
30543 (outs HvxVR:$Vd32),
30544 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30545 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):rnd:sat",
30546 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30547 let hasNewValue = 1;
30548 let opNewValue = 0;
30549 let isPseudo = 1;
30550 let isCodeGenOnly = 1;
30551 }
30552 def V6_vasrhubsat : HInst<
30553 (outs HvxVR:$Vd32),
30554 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30555 "$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
30556 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30557 let Inst{7-5} = 0b110;
30558 let Inst{13-13} = 0b0;
30559 let Inst{31-24} = 0b00011011;
30560 let hasNewValue = 1;
30561 let opNewValue = 0;
30562 let DecoderNamespace = "EXT_mmvec";
30563 }
30564 def V6_vasrhubsat_alt : HInst<
30565 (outs HvxVR:$Vd32),
30566 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30567 "$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):sat",
30568 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30569 let hasNewValue = 1;
30570 let opNewValue = 0;
30571 let isPseudo = 1;
30572 let isCodeGenOnly = 1;
30573 }
30574 def V6_vasrhv : HInst<
30575 (outs HvxVR:$Vd32),
30576 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30577 "$Vd32.h = vasr($Vu32.h,$Vv32.h)",
30578 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30579 let Inst{7-5} = 0b011;
30580 let Inst{13-13} = 0b0;
30581 let Inst{31-21} = 0b00011111101;
30582 let hasNewValue = 1;
30583 let opNewValue = 0;
30584 let DecoderNamespace = "EXT_mmvec";
30585 }
30586 def V6_vasrhv_alt : HInst<
30587 (outs HvxVR:$Vd32),
30588 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30589 "$Vd32 = vasrh($Vu32,$Vv32)",
30590 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30591 let hasNewValue = 1;
30592 let opNewValue = 0;
30593 let isPseudo = 1;
30594 let isCodeGenOnly = 1;
30595 let DecoderNamespace = "EXT_mmvec";
30596 }
30597 def V6_vasruhubrndsat : HInst<
30598 (outs HvxVR:$Vd32),
30599 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30600 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
30601 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30602 let Inst{7-5} = 0b111;
30603 let Inst{13-13} = 0b0;
30604 let Inst{31-24} = 0b00011000;
30605 let hasNewValue = 1;
30606 let opNewValue = 0;
30607 let DecoderNamespace = "EXT_mmvec";
30608 }
30609 def V6_vasruhubsat : HInst<
30610 (outs HvxVR:$Vd32),
30611 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30612 "$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
30613 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30614 let Inst{7-5} = 0b101;
30615 let Inst{13-13} = 0b1;
30616 let Inst{31-24} = 0b00011000;
30617 let hasNewValue = 1;
30618 let opNewValue = 0;
30619 let DecoderNamespace = "EXT_mmvec";
30620 }
30621 def V6_vasruwuhrndsat : HInst<
30622 (outs HvxVR:$Vd32),
30623 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30624 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
30625 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30626 let Inst{7-5} = 0b001;
30627 let Inst{13-13} = 0b0;
30628 let Inst{31-24} = 0b00011000;
30629 let hasNewValue = 1;
30630 let opNewValue = 0;
30631 let DecoderNamespace = "EXT_mmvec";
30632 }
30633 def V6_vasruwuhsat : HInst<
30634 (outs HvxVR:$Vd32),
30635 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30636 "$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
30637 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30638 let Inst{7-5} = 0b100;
30639 let Inst{13-13} = 0b1;
30640 let Inst{31-24} = 0b00011000;
30641 let hasNewValue = 1;
30642 let opNewValue = 0;
30643 let DecoderNamespace = "EXT_mmvec";
30644 }
30645 def V6_vasrw : HInst<
30646 (outs HvxVR:$Vd32),
30647 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30648 "$Vd32.w = vasr($Vu32.w,$Rt32)",
30649 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30650 let Inst{7-5} = 0b101;
30651 let Inst{13-13} = 0b0;
30652 let Inst{31-21} = 0b00011001011;
30653 let hasNewValue = 1;
30654 let opNewValue = 0;
30655 let DecoderNamespace = "EXT_mmvec";
30656 }
30657 def V6_vasrw_acc : HInst<
30658 (outs HvxVR:$Vx32),
30659 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30660 "$Vx32.w += vasr($Vu32.w,$Rt32)",
30661 tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
30662 let Inst{7-5} = 0b101;
30663 let Inst{13-13} = 0b1;
30664 let Inst{31-21} = 0b00011001011;
30665 let hasNewValue = 1;
30666 let opNewValue = 0;
30667 let isAccumulator = 1;
30668 let DecoderNamespace = "EXT_mmvec";
30669 let Constraints = "$Vx32 = $Vx32in";
30670 }
30671 def V6_vasrw_acc_alt : HInst<
30672 (outs HvxVR:$Vx32),
30673 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30674 "$Vx32 += vasrw($Vu32,$Rt32)",
30675 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30676 let hasNewValue = 1;
30677 let opNewValue = 0;
30678 let isAccumulator = 1;
30679 let isPseudo = 1;
30680 let isCodeGenOnly = 1;
30681 let DecoderNamespace = "EXT_mmvec";
30682 let Constraints = "$Vx32 = $Vx32in";
30683 }
30684 def V6_vasrw_alt : HInst<
30685 (outs HvxVR:$Vd32),
30686 (ins HvxVR:$Vu32, IntRegs:$Rt32),
30687 "$Vd32 = vasrw($Vu32,$Rt32)",
30688 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30689 let hasNewValue = 1;
30690 let opNewValue = 0;
30691 let isPseudo = 1;
30692 let isCodeGenOnly = 1;
30693 let DecoderNamespace = "EXT_mmvec";
30694 }
30695 def V6_vasrwh : HInst<
30696 (outs HvxVR:$Vd32),
30697 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30698 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
30699 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30700 let Inst{7-5} = 0b010;
30701 let Inst{13-13} = 0b0;
30702 let Inst{31-24} = 0b00011011;
30703 let hasNewValue = 1;
30704 let opNewValue = 0;
30705 let DecoderNamespace = "EXT_mmvec";
30706 }
30707 def V6_vasrwh_alt : HInst<
30708 (outs HvxVR:$Vd32),
30709 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30710 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8)",
30711 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30712 let hasNewValue = 1;
30713 let opNewValue = 0;
30714 let isPseudo = 1;
30715 let isCodeGenOnly = 1;
30716 }
30717 def V6_vasrwhrndsat : HInst<
30718 (outs HvxVR:$Vd32),
30719 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30720 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
30721 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30722 let Inst{7-5} = 0b100;
30723 let Inst{13-13} = 0b0;
30724 let Inst{31-24} = 0b00011011;
30725 let hasNewValue = 1;
30726 let opNewValue = 0;
30727 let DecoderNamespace = "EXT_mmvec";
30728 }
30729 def V6_vasrwhrndsat_alt : HInst<
30730 (outs HvxVR:$Vd32),
30731 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30732 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):rnd:sat",
30733 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30734 let hasNewValue = 1;
30735 let opNewValue = 0;
30736 let isPseudo = 1;
30737 let isCodeGenOnly = 1;
30738 }
30739 def V6_vasrwhsat : HInst<
30740 (outs HvxVR:$Vd32),
30741 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30742 "$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
30743 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30744 let Inst{7-5} = 0b011;
30745 let Inst{13-13} = 0b0;
30746 let Inst{31-24} = 0b00011011;
30747 let hasNewValue = 1;
30748 let opNewValue = 0;
30749 let DecoderNamespace = "EXT_mmvec";
30750 }
30751 def V6_vasrwhsat_alt : HInst<
30752 (outs HvxVR:$Vd32),
30753 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30754 "$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):sat",
30755 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30756 let hasNewValue = 1;
30757 let opNewValue = 0;
30758 let isPseudo = 1;
30759 let isCodeGenOnly = 1;
30760 }
30761 def V6_vasrwuhrndsat : HInst<
30762 (outs HvxVR:$Vd32),
30763 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30764 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
30765 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30766 let Inst{7-5} = 0b010;
30767 let Inst{13-13} = 0b0;
30768 let Inst{31-24} = 0b00011000;
30769 let hasNewValue = 1;
30770 let opNewValue = 0;
30771 let DecoderNamespace = "EXT_mmvec";
30772 }
30773 def V6_vasrwuhsat : HInst<
30774 (outs HvxVR:$Vd32),
30775 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30776 "$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
30777 tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30778 let Inst{7-5} = 0b101;
30779 let Inst{13-13} = 0b0;
30780 let Inst{31-24} = 0b00011011;
30781 let hasNewValue = 1;
30782 let opNewValue = 0;
30783 let DecoderNamespace = "EXT_mmvec";
30784 }
30785 def V6_vasrwuhsat_alt : HInst<
30786 (outs HvxVR:$Vd32),
30787 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30788 "$Vd32 = vasrwuh($Vu32,$Vv32,$Rt8):sat",
30789 tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30790 let hasNewValue = 1;
30791 let opNewValue = 0;
30792 let isPseudo = 1;
30793 let isCodeGenOnly = 1;
30794 }
30795 def V6_vasrwv : HInst<
30796 (outs HvxVR:$Vd32),
30797 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30798 "$Vd32.w = vasr($Vu32.w,$Vv32.w)",
30799 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30800 let Inst{7-5} = 0b000;
30801 let Inst{13-13} = 0b0;
30802 let Inst{31-21} = 0b00011111101;
30803 let hasNewValue = 1;
30804 let opNewValue = 0;
30805 let DecoderNamespace = "EXT_mmvec";
30806 }
30807 def V6_vasrwv_alt : HInst<
30808 (outs HvxVR:$Vd32),
30809 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30810 "$Vd32 = vasrw($Vu32,$Vv32)",
30811 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30812 let hasNewValue = 1;
30813 let opNewValue = 0;
30814 let isPseudo = 1;
30815 let isCodeGenOnly = 1;
30816 let DecoderNamespace = "EXT_mmvec";
30817 }
30818 def V6_vassign : HInst<
30819 (outs HvxVR:$Vd32),
30820 (ins HvxVR:$Vu32),
30821 "$Vd32 = $Vu32",
30822 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30823 let Inst{7-5} = 0b111;
30824 let Inst{13-13} = 0b1;
30825 let Inst{31-16} = 0b0001111000000011;
30826 let hasNewValue = 1;
30827 let opNewValue = 0;
30828 let DecoderNamespace = "EXT_mmvec";
30829 }
30830 def V6_vassignp : HInst<
30831 (outs HvxWR:$Vdd32),
30832 (ins HvxWR:$Vuu32),
30833 "$Vdd32 = $Vuu32",
30834 CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
30835 let hasNewValue = 1;
30836 let opNewValue = 0;
30837 let isPseudo = 1;
30838 let DecoderNamespace = "EXT_mmvec";
30839 }
30840 def V6_vavgb : HInst<
30841 (outs HvxVR:$Vd32),
30842 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30843 "$Vd32.b = vavg($Vu32.b,$Vv32.b)",
30844 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
30845 let Inst{7-5} = 0b100;
30846 let Inst{13-13} = 0b1;
30847 let Inst{31-21} = 0b00011111000;
30848 let hasNewValue = 1;
30849 let opNewValue = 0;
30850 let DecoderNamespace = "EXT_mmvec";
30851 }
30852 def V6_vavgb_alt : HInst<
30853 (outs HvxVR:$Vd32),
30854 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30855 "$Vd32 = vavgb($Vu32,$Vv32)",
30856 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30857 let hasNewValue = 1;
30858 let opNewValue = 0;
30859 let isPseudo = 1;
30860 let isCodeGenOnly = 1;
30861 let DecoderNamespace = "EXT_mmvec";
30862 }
30863 def V6_vavgbrnd : HInst<
30864 (outs HvxVR:$Vd32),
30865 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30866 "$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
30867 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
30868 let Inst{7-5} = 0b101;
30869 let Inst{13-13} = 0b1;
30870 let Inst{31-21} = 0b00011111000;
30871 let hasNewValue = 1;
30872 let opNewValue = 0;
30873 let DecoderNamespace = "EXT_mmvec";
30874 }
30875 def V6_vavgbrnd_alt : HInst<
30876 (outs HvxVR:$Vd32),
30877 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30878 "$Vd32 = vavgb($Vu32,$Vv32):rnd",
30879 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30880 let hasNewValue = 1;
30881 let opNewValue = 0;
30882 let isPseudo = 1;
30883 let isCodeGenOnly = 1;
30884 let DecoderNamespace = "EXT_mmvec";
30885 }
30886 def V6_vavgh : HInst<
30887 (outs HvxVR:$Vd32),
30888 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30889 "$Vd32.h = vavg($Vu32.h,$Vv32.h)",
30890 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30891 let Inst{7-5} = 0b110;
30892 let Inst{13-13} = 0b0;
30893 let Inst{31-21} = 0b00011100110;
30894 let hasNewValue = 1;
30895 let opNewValue = 0;
30896 let DecoderNamespace = "EXT_mmvec";
30897 }
30898 def V6_vavgh_alt : HInst<
30899 (outs HvxVR:$Vd32),
30900 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30901 "$Vd32 = vavgh($Vu32,$Vv32)",
30902 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30903 let hasNewValue = 1;
30904 let opNewValue = 0;
30905 let isPseudo = 1;
30906 let isCodeGenOnly = 1;
30907 let DecoderNamespace = "EXT_mmvec";
30908 }
30909 def V6_vavghrnd : HInst<
30910 (outs HvxVR:$Vd32),
30911 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30912 "$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
30913 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30914 let Inst{7-5} = 0b101;
30915 let Inst{13-13} = 0b0;
30916 let Inst{31-21} = 0b00011100111;
30917 let hasNewValue = 1;
30918 let opNewValue = 0;
30919 let DecoderNamespace = "EXT_mmvec";
30920 }
30921 def V6_vavghrnd_alt : HInst<
30922 (outs HvxVR:$Vd32),
30923 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30924 "$Vd32 = vavgh($Vu32,$Vv32):rnd",
30925 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30926 let hasNewValue = 1;
30927 let opNewValue = 0;
30928 let isPseudo = 1;
30929 let isCodeGenOnly = 1;
30930 let DecoderNamespace = "EXT_mmvec";
30931 }
30932 def V6_vavgub : HInst<
30933 (outs HvxVR:$Vd32),
30934 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30935 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
30936 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30937 let Inst{7-5} = 0b100;
30938 let Inst{13-13} = 0b0;
30939 let Inst{31-21} = 0b00011100110;
30940 let hasNewValue = 1;
30941 let opNewValue = 0;
30942 let DecoderNamespace = "EXT_mmvec";
30943 }
30944 def V6_vavgub_alt : HInst<
30945 (outs HvxVR:$Vd32),
30946 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30947 "$Vd32 = vavgub($Vu32,$Vv32)",
30948 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30949 let hasNewValue = 1;
30950 let opNewValue = 0;
30951 let isPseudo = 1;
30952 let isCodeGenOnly = 1;
30953 let DecoderNamespace = "EXT_mmvec";
30954 }
30955 def V6_vavgubrnd : HInst<
30956 (outs HvxVR:$Vd32),
30957 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30958 "$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
30959 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30960 let Inst{7-5} = 0b011;
30961 let Inst{13-13} = 0b0;
30962 let Inst{31-21} = 0b00011100111;
30963 let hasNewValue = 1;
30964 let opNewValue = 0;
30965 let DecoderNamespace = "EXT_mmvec";
30966 }
30967 def V6_vavgubrnd_alt : HInst<
30968 (outs HvxVR:$Vd32),
30969 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30970 "$Vd32 = vavgub($Vu32,$Vv32):rnd",
30971 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30972 let hasNewValue = 1;
30973 let opNewValue = 0;
30974 let isPseudo = 1;
30975 let isCodeGenOnly = 1;
30976 let DecoderNamespace = "EXT_mmvec";
30977 }
30978 def V6_vavguh : HInst<
30979 (outs HvxVR:$Vd32),
30980 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30981 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
30982 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30983 let Inst{7-5} = 0b101;
30984 let Inst{13-13} = 0b0;
30985 let Inst{31-21} = 0b00011100110;
30986 let hasNewValue = 1;
30987 let opNewValue = 0;
30988 let DecoderNamespace = "EXT_mmvec";
30989 }
30990 def V6_vavguh_alt : HInst<
30991 (outs HvxVR:$Vd32),
30992 (ins HvxVR:$Vu32, HvxVR:$Vv32),
30993 "$Vd32 = vavguh($Vu32,$Vv32)",
30994 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30995 let hasNewValue = 1;
30996 let opNewValue = 0;
30997 let isPseudo = 1;
30998 let isCodeGenOnly = 1;
30999 let DecoderNamespace = "EXT_mmvec";
31000 }
31001 def V6_vavguhrnd : HInst<
31002 (outs HvxVR:$Vd32),
31003 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31004 "$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
31005 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31006 let Inst{7-5} = 0b100;
31007 let Inst{13-13} = 0b0;
31008 let Inst{31-21} = 0b00011100111;
31009 let hasNewValue = 1;
31010 let opNewValue = 0;
31011 let DecoderNamespace = "EXT_mmvec";
31012 }
31013 def V6_vavguhrnd_alt : HInst<
31014 (outs HvxVR:$Vd32),
31015 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31016 "$Vd32 = vavguh($Vu32,$Vv32):rnd",
31017 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
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_vavguw : HInst<
31025 (outs HvxVR:$Vd32),
31026 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31027 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
31028 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31029 let Inst{7-5} = 0b010;
31030 let Inst{13-13} = 0b1;
31031 let Inst{31-21} = 0b00011111000;
31032 let hasNewValue = 1;
31033 let opNewValue = 0;
31034 let DecoderNamespace = "EXT_mmvec";
31035 }
31036 def V6_vavguw_alt : HInst<
31037 (outs HvxVR:$Vd32),
31038 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31039 "$Vd32 = vavguw($Vu32,$Vv32)",
31040 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31041 let hasNewValue = 1;
31042 let opNewValue = 0;
31043 let isPseudo = 1;
31044 let isCodeGenOnly = 1;
31045 let DecoderNamespace = "EXT_mmvec";
31046 }
31047 def V6_vavguwrnd : HInst<
31048 (outs HvxVR:$Vd32),
31049 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31050 "$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
31051 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31052 let Inst{7-5} = 0b011;
31053 let Inst{13-13} = 0b1;
31054 let Inst{31-21} = 0b00011111000;
31055 let hasNewValue = 1;
31056 let opNewValue = 0;
31057 let DecoderNamespace = "EXT_mmvec";
31058 }
31059 def V6_vavguwrnd_alt : HInst<
31060 (outs HvxVR:$Vd32),
31061 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31062 "$Vd32 = vavguw($Vu32,$Vv32):rnd",
31063 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31064 let hasNewValue = 1;
31065 let opNewValue = 0;
31066 let isPseudo = 1;
31067 let isCodeGenOnly = 1;
31068 let DecoderNamespace = "EXT_mmvec";
31069 }
31070 def V6_vavgw : HInst<
31071 (outs HvxVR:$Vd32),
31072 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31073 "$Vd32.w = vavg($Vu32.w,$Vv32.w)",
31074 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31075 let Inst{7-5} = 0b111;
31076 let Inst{13-13} = 0b0;
31077 let Inst{31-21} = 0b00011100110;
31078 let hasNewValue = 1;
31079 let opNewValue = 0;
31080 let DecoderNamespace = "EXT_mmvec";
31081 }
31082 def V6_vavgw_alt : HInst<
31083 (outs HvxVR:$Vd32),
31084 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31085 "$Vd32 = vavgw($Vu32,$Vv32)",
31086 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31087 let hasNewValue = 1;
31088 let opNewValue = 0;
31089 let isPseudo = 1;
31090 let isCodeGenOnly = 1;
31091 let DecoderNamespace = "EXT_mmvec";
31092 }
31093 def V6_vavgwrnd : HInst<
31094 (outs HvxVR:$Vd32),
31095 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31096 "$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
31097 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31098 let Inst{7-5} = 0b110;
31099 let Inst{13-13} = 0b0;
31100 let Inst{31-21} = 0b00011100111;
31101 let hasNewValue = 1;
31102 let opNewValue = 0;
31103 let DecoderNamespace = "EXT_mmvec";
31104 }
31105 def V6_vavgwrnd_alt : HInst<
31106 (outs HvxVR:$Vd32),
31107 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31108 "$Vd32 = vavgw($Vu32,$Vv32):rnd",
31109 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31110 let hasNewValue = 1;
31111 let opNewValue = 0;
31112 let isPseudo = 1;
31113 let isCodeGenOnly = 1;
31114 let DecoderNamespace = "EXT_mmvec";
31115 }
31116 def V6_vccombine : HInst<
31117 (outs HvxWR:$Vdd32),
31118 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
31119 "if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
31120 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
31121 let Inst{7-7} = 0b0;
31122 let Inst{13-13} = 0b0;
31123 let Inst{31-21} = 0b00011010011;
31124 let isPredicated = 1;
31125 let hasNewValue = 1;
31126 let opNewValue = 0;
31127 let DecoderNamespace = "EXT_mmvec";
31128 }
31129 def V6_vcl0h : HInst<
31130 (outs HvxVR:$Vd32),
31131 (ins HvxVR:$Vu32),
31132 "$Vd32.uh = vcl0($Vu32.uh)",
31133 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31134 let Inst{7-5} = 0b111;
31135 let Inst{13-13} = 0b0;
31136 let Inst{31-16} = 0b0001111000000010;
31137 let hasNewValue = 1;
31138 let opNewValue = 0;
31139 let DecoderNamespace = "EXT_mmvec";
31140 }
31141 def V6_vcl0h_alt : HInst<
31142 (outs HvxVR:$Vd32),
31143 (ins HvxVR:$Vu32),
31144 "$Vd32 = vcl0h($Vu32)",
31145 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31146 let hasNewValue = 1;
31147 let opNewValue = 0;
31148 let isPseudo = 1;
31149 let isCodeGenOnly = 1;
31150 let DecoderNamespace = "EXT_mmvec";
31151 }
31152 def V6_vcl0w : HInst<
31153 (outs HvxVR:$Vd32),
31154 (ins HvxVR:$Vu32),
31155 "$Vd32.uw = vcl0($Vu32.uw)",
31156 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31157 let Inst{7-5} = 0b101;
31158 let Inst{13-13} = 0b0;
31159 let Inst{31-16} = 0b0001111000000010;
31160 let hasNewValue = 1;
31161 let opNewValue = 0;
31162 let DecoderNamespace = "EXT_mmvec";
31163 }
31164 def V6_vcl0w_alt : HInst<
31165 (outs HvxVR:$Vd32),
31166 (ins HvxVR:$Vu32),
31167 "$Vd32 = vcl0w($Vu32)",
31168 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31169 let hasNewValue = 1;
31170 let opNewValue = 0;
31171 let isPseudo = 1;
31172 let isCodeGenOnly = 1;
31173 let DecoderNamespace = "EXT_mmvec";
31174 }
31175 def V6_vcmov : HInst<
31176 (outs HvxVR:$Vd32),
31177 (ins PredRegs:$Ps4, HvxVR:$Vu32),
31178 "if ($Ps4) $Vd32 = $Vu32",
31179 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
31180 let Inst{7-7} = 0b0;
31181 let Inst{13-13} = 0b0;
31182 let Inst{31-16} = 0b0001101000000000;
31183 let isPredicated = 1;
31184 let hasNewValue = 1;
31185 let opNewValue = 0;
31186 let DecoderNamespace = "EXT_mmvec";
31187 }
31188 def V6_vcombine : HInst<
31189 (outs HvxWR:$Vdd32),
31190 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31191 "$Vdd32 = vcombine($Vu32,$Vv32)",
31192 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
31193 let Inst{7-5} = 0b111;
31194 let Inst{13-13} = 0b0;
31195 let Inst{31-21} = 0b00011111010;
31196 let hasNewValue = 1;
31197 let opNewValue = 0;
31198 let isRegSequence = 1;
31199 let DecoderNamespace = "EXT_mmvec";
31200 }
31201 def V6_vd0 : HInst<
31202 (outs HvxVR:$Vd32),
31203 (ins),
31204 "$Vd32 = #0",
31205 CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
31206 let hasNewValue = 1;
31207 let opNewValue = 0;
31208 let isPseudo = 1;
31209 let isCodeGenOnly = 1;
31210 let DecoderNamespace = "EXT_mmvec";
31211 }
31212 def V6_vdd0 : HInst<
31213 (outs HvxWR:$Vdd32),
31214 (ins),
31215 "$Vdd32 = #0",
31216 tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
31217 let hasNewValue = 1;
31218 let opNewValue = 0;
31219 let isPseudo = 1;
31220 let isCodeGenOnly = 1;
31221 let DecoderNamespace = "EXT_mmvec";
31222 }
31223 def V6_vdeal : HInst<
31224 (outs HvxVR:$Vy32, HvxVR:$Vx32),
31225 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
31226 "vdeal($Vy32,$Vx32,$Rt32)",
31227 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
31228 let Inst{7-5} = 0b010;
31229 let Inst{13-13} = 0b1;
31230 let Inst{31-21} = 0b00011001111;
31231 let hasNewValue = 1;
31232 let opNewValue = 0;
31233 let hasNewValue2 = 1;
31234 let opNewValue2 = 1;
31235 let DecoderNamespace = "EXT_mmvec";
31236 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
31237 }
31238 def V6_vdealb : HInst<
31239 (outs HvxVR:$Vd32),
31240 (ins HvxVR:$Vu32),
31241 "$Vd32.b = vdeal($Vu32.b)",
31242 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
31243 let Inst{7-5} = 0b111;
31244 let Inst{13-13} = 0b0;
31245 let Inst{31-16} = 0b0001111000000000;
31246 let hasNewValue = 1;
31247 let opNewValue = 0;
31248 let DecoderNamespace = "EXT_mmvec";
31249 }
31250 def V6_vdealb4w : HInst<
31251 (outs HvxVR:$Vd32),
31252 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31253 "$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
31254 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
31255 let Inst{7-5} = 0b111;
31256 let Inst{13-13} = 0b0;
31257 let Inst{31-21} = 0b00011111001;
31258 let hasNewValue = 1;
31259 let opNewValue = 0;
31260 let DecoderNamespace = "EXT_mmvec";
31261 }
31262 def V6_vdealb4w_alt : HInst<
31263 (outs HvxVR:$Vd32),
31264 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31265 "$Vd32 = vdealb4w($Vu32,$Vv32)",
31266 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31267 let hasNewValue = 1;
31268 let opNewValue = 0;
31269 let isPseudo = 1;
31270 let isCodeGenOnly = 1;
31271 let DecoderNamespace = "EXT_mmvec";
31272 }
31273 def V6_vdealb_alt : HInst<
31274 (outs HvxVR:$Vd32),
31275 (ins HvxVR:$Vu32),
31276 "$Vd32 = vdealb($Vu32)",
31277 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31278 let hasNewValue = 1;
31279 let opNewValue = 0;
31280 let isPseudo = 1;
31281 let isCodeGenOnly = 1;
31282 let DecoderNamespace = "EXT_mmvec";
31283 }
31284 def V6_vdealh : HInst<
31285 (outs HvxVR:$Vd32),
31286 (ins HvxVR:$Vu32),
31287 "$Vd32.h = vdeal($Vu32.h)",
31288 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
31289 let Inst{7-5} = 0b110;
31290 let Inst{13-13} = 0b0;
31291 let Inst{31-16} = 0b0001111000000000;
31292 let hasNewValue = 1;
31293 let opNewValue = 0;
31294 let DecoderNamespace = "EXT_mmvec";
31295 }
31296 def V6_vdealh_alt : HInst<
31297 (outs HvxVR:$Vd32),
31298 (ins HvxVR:$Vu32),
31299 "$Vd32 = vdealh($Vu32)",
31300 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31301 let hasNewValue = 1;
31302 let opNewValue = 0;
31303 let isPseudo = 1;
31304 let isCodeGenOnly = 1;
31305 let DecoderNamespace = "EXT_mmvec";
31306 }
31307 def V6_vdealvdd : HInst<
31308 (outs HvxWR:$Vdd32),
31309 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31310 "$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
31311 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
31312 let Inst{7-5} = 0b100;
31313 let Inst{13-13} = 0b1;
31314 let Inst{31-24} = 0b00011011;
31315 let hasNewValue = 1;
31316 let opNewValue = 0;
31317 let DecoderNamespace = "EXT_mmvec";
31318 }
31319 def V6_vdelta : HInst<
31320 (outs HvxVR:$Vd32),
31321 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31322 "$Vd32 = vdelta($Vu32,$Vv32)",
31323 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
31324 let Inst{7-5} = 0b001;
31325 let Inst{13-13} = 0b0;
31326 let Inst{31-21} = 0b00011111001;
31327 let hasNewValue = 1;
31328 let opNewValue = 0;
31329 let DecoderNamespace = "EXT_mmvec";
31330 }
31331 def V6_vdmpybus : HInst<
31332 (outs HvxVR:$Vd32),
31333 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31334 "$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
31335 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
31336 let Inst{7-5} = 0b110;
31337 let Inst{13-13} = 0b0;
31338 let Inst{31-21} = 0b00011001000;
31339 let hasNewValue = 1;
31340 let opNewValue = 0;
31341 let DecoderNamespace = "EXT_mmvec";
31342 }
31343 def V6_vdmpybus_acc : HInst<
31344 (outs HvxVR:$Vx32),
31345 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31346 "$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
31347 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
31348 let Inst{7-5} = 0b110;
31349 let Inst{13-13} = 0b1;
31350 let Inst{31-21} = 0b00011001000;
31351 let hasNewValue = 1;
31352 let opNewValue = 0;
31353 let isAccumulator = 1;
31354 let DecoderNamespace = "EXT_mmvec";
31355 let Constraints = "$Vx32 = $Vx32in";
31356 }
31357 def V6_vdmpybus_acc_alt : HInst<
31358 (outs HvxVR:$Vx32),
31359 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31360 "$Vx32 += vdmpybus($Vu32,$Rt32)",
31361 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31362 let hasNewValue = 1;
31363 let opNewValue = 0;
31364 let isAccumulator = 1;
31365 let isPseudo = 1;
31366 let isCodeGenOnly = 1;
31367 let DecoderNamespace = "EXT_mmvec";
31368 let Constraints = "$Vx32 = $Vx32in";
31369 }
31370 def V6_vdmpybus_alt : HInst<
31371 (outs HvxVR:$Vd32),
31372 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31373 "$Vd32 = vdmpybus($Vu32,$Rt32)",
31374 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31375 let hasNewValue = 1;
31376 let opNewValue = 0;
31377 let isPseudo = 1;
31378 let isCodeGenOnly = 1;
31379 let DecoderNamespace = "EXT_mmvec";
31380 }
31381 def V6_vdmpybus_dv : HInst<
31382 (outs HvxWR:$Vdd32),
31383 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31384 "$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
31385 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31386 let Inst{7-5} = 0b111;
31387 let Inst{13-13} = 0b0;
31388 let Inst{31-21} = 0b00011001000;
31389 let hasNewValue = 1;
31390 let opNewValue = 0;
31391 let DecoderNamespace = "EXT_mmvec";
31392 }
31393 def V6_vdmpybus_dv_acc : HInst<
31394 (outs HvxWR:$Vxx32),
31395 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31396 "$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
31397 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31398 let Inst{7-5} = 0b111;
31399 let Inst{13-13} = 0b1;
31400 let Inst{31-21} = 0b00011001000;
31401 let hasNewValue = 1;
31402 let opNewValue = 0;
31403 let isAccumulator = 1;
31404 let DecoderNamespace = "EXT_mmvec";
31405 let Constraints = "$Vxx32 = $Vxx32in";
31406 }
31407 def V6_vdmpybus_dv_acc_alt : HInst<
31408 (outs HvxWR:$Vxx32),
31409 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31410 "$Vxx32 += vdmpybus($Vuu32,$Rt32)",
31411 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31412 let hasNewValue = 1;
31413 let opNewValue = 0;
31414 let isAccumulator = 1;
31415 let isPseudo = 1;
31416 let isCodeGenOnly = 1;
31417 let DecoderNamespace = "EXT_mmvec";
31418 let Constraints = "$Vxx32 = $Vxx32in";
31419 }
31420 def V6_vdmpybus_dv_alt : HInst<
31421 (outs HvxWR:$Vdd32),
31422 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31423 "$Vdd32 = vdmpybus($Vuu32,$Rt32)",
31424 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31425 let hasNewValue = 1;
31426 let opNewValue = 0;
31427 let isPseudo = 1;
31428 let isCodeGenOnly = 1;
31429 let DecoderNamespace = "EXT_mmvec";
31430 }
31431 def V6_vdmpyhb : HInst<
31432 (outs HvxVR:$Vd32),
31433 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31434 "$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
31435 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
31436 let Inst{7-5} = 0b010;
31437 let Inst{13-13} = 0b0;
31438 let Inst{31-21} = 0b00011001000;
31439 let hasNewValue = 1;
31440 let opNewValue = 0;
31441 let DecoderNamespace = "EXT_mmvec";
31442 }
31443 def V6_vdmpyhb_acc : HInst<
31444 (outs HvxVR:$Vx32),
31445 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31446 "$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
31447 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
31448 let Inst{7-5} = 0b011;
31449 let Inst{13-13} = 0b1;
31450 let Inst{31-21} = 0b00011001000;
31451 let hasNewValue = 1;
31452 let opNewValue = 0;
31453 let isAccumulator = 1;
31454 let DecoderNamespace = "EXT_mmvec";
31455 let Constraints = "$Vx32 = $Vx32in";
31456 }
31457 def V6_vdmpyhb_acc_alt : HInst<
31458 (outs HvxVR:$Vx32),
31459 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31460 "$Vx32 += vdmpyhb($Vu32,$Rt32)",
31461 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31462 let hasNewValue = 1;
31463 let opNewValue = 0;
31464 let isAccumulator = 1;
31465 let isPseudo = 1;
31466 let isCodeGenOnly = 1;
31467 let DecoderNamespace = "EXT_mmvec";
31468 let Constraints = "$Vx32 = $Vx32in";
31469 }
31470 def V6_vdmpyhb_alt : HInst<
31471 (outs HvxVR:$Vd32),
31472 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31473 "$Vd32 = vdmpyhb($Vu32,$Rt32)",
31474 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31475 let hasNewValue = 1;
31476 let opNewValue = 0;
31477 let isPseudo = 1;
31478 let isCodeGenOnly = 1;
31479 let DecoderNamespace = "EXT_mmvec";
31480 }
31481 def V6_vdmpyhb_dv : HInst<
31482 (outs HvxWR:$Vdd32),
31483 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31484 "$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
31485 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31486 let Inst{7-5} = 0b100;
31487 let Inst{13-13} = 0b0;
31488 let Inst{31-21} = 0b00011001001;
31489 let hasNewValue = 1;
31490 let opNewValue = 0;
31491 let DecoderNamespace = "EXT_mmvec";
31492 }
31493 def V6_vdmpyhb_dv_acc : HInst<
31494 (outs HvxWR:$Vxx32),
31495 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31496 "$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
31497 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31498 let Inst{7-5} = 0b100;
31499 let Inst{13-13} = 0b1;
31500 let Inst{31-21} = 0b00011001001;
31501 let hasNewValue = 1;
31502 let opNewValue = 0;
31503 let isAccumulator = 1;
31504 let DecoderNamespace = "EXT_mmvec";
31505 let Constraints = "$Vxx32 = $Vxx32in";
31506 }
31507 def V6_vdmpyhb_dv_acc_alt : HInst<
31508 (outs HvxWR:$Vxx32),
31509 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31510 "$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
31511 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31512 let hasNewValue = 1;
31513 let opNewValue = 0;
31514 let isAccumulator = 1;
31515 let isPseudo = 1;
31516 let isCodeGenOnly = 1;
31517 let DecoderNamespace = "EXT_mmvec";
31518 let Constraints = "$Vxx32 = $Vxx32in";
31519 }
31520 def V6_vdmpyhb_dv_alt : HInst<
31521 (outs HvxWR:$Vdd32),
31522 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31523 "$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
31524 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31525 let hasNewValue = 1;
31526 let opNewValue = 0;
31527 let isPseudo = 1;
31528 let isCodeGenOnly = 1;
31529 let DecoderNamespace = "EXT_mmvec";
31530 }
31531 def V6_vdmpyhisat : HInst<
31532 (outs HvxVR:$Vd32),
31533 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31534 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
31535 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
31536 let Inst{7-5} = 0b011;
31537 let Inst{13-13} = 0b0;
31538 let Inst{31-21} = 0b00011001001;
31539 let hasNewValue = 1;
31540 let opNewValue = 0;
31541 let DecoderNamespace = "EXT_mmvec";
31542 }
31543 def V6_vdmpyhisat_acc : HInst<
31544 (outs HvxVR:$Vx32),
31545 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31546 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
31547 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
31548 let Inst{7-5} = 0b010;
31549 let Inst{13-13} = 0b1;
31550 let Inst{31-21} = 0b00011001001;
31551 let hasNewValue = 1;
31552 let opNewValue = 0;
31553 let isAccumulator = 1;
31554 let DecoderNamespace = "EXT_mmvec";
31555 let Constraints = "$Vx32 = $Vx32in";
31556 }
31557 def V6_vdmpyhisat_acc_alt : HInst<
31558 (outs HvxVR:$Vx32),
31559 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31560 "$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
31561 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
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_vdmpyhisat_alt : HInst<
31571 (outs HvxVR:$Vd32),
31572 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31573 "$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
31574 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31575 let hasNewValue = 1;
31576 let opNewValue = 0;
31577 let isPseudo = 1;
31578 let isCodeGenOnly = 1;
31579 let DecoderNamespace = "EXT_mmvec";
31580 }
31581 def V6_vdmpyhsat : HInst<
31582 (outs HvxVR:$Vd32),
31583 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31584 "$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
31585 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
31586 let Inst{7-5} = 0b010;
31587 let Inst{13-13} = 0b0;
31588 let Inst{31-21} = 0b00011001001;
31589 let hasNewValue = 1;
31590 let opNewValue = 0;
31591 let DecoderNamespace = "EXT_mmvec";
31592 }
31593 def V6_vdmpyhsat_acc : HInst<
31594 (outs HvxVR:$Vx32),
31595 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31596 "$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
31597 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
31598 let Inst{7-5} = 0b011;
31599 let Inst{13-13} = 0b1;
31600 let Inst{31-21} = 0b00011001001;
31601 let hasNewValue = 1;
31602 let opNewValue = 0;
31603 let isAccumulator = 1;
31604 let DecoderNamespace = "EXT_mmvec";
31605 let Constraints = "$Vx32 = $Vx32in";
31606 }
31607 def V6_vdmpyhsat_acc_alt : HInst<
31608 (outs HvxVR:$Vx32),
31609 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31610 "$Vx32 += vdmpyh($Vu32,$Rt32):sat",
31611 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31612 let hasNewValue = 1;
31613 let opNewValue = 0;
31614 let isAccumulator = 1;
31615 let isPseudo = 1;
31616 let isCodeGenOnly = 1;
31617 let DecoderNamespace = "EXT_mmvec";
31618 let Constraints = "$Vx32 = $Vx32in";
31619 }
31620 def V6_vdmpyhsat_alt : HInst<
31621 (outs HvxVR:$Vd32),
31622 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31623 "$Vd32 = vdmpyh($Vu32,$Rt32):sat",
31624 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31625 let hasNewValue = 1;
31626 let opNewValue = 0;
31627 let isPseudo = 1;
31628 let isCodeGenOnly = 1;
31629 let DecoderNamespace = "EXT_mmvec";
31630 }
31631 def V6_vdmpyhsuisat : HInst<
31632 (outs HvxVR:$Vd32),
31633 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31634 "$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
31635 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
31636 let Inst{7-5} = 0b001;
31637 let Inst{13-13} = 0b0;
31638 let Inst{31-21} = 0b00011001001;
31639 let hasNewValue = 1;
31640 let opNewValue = 0;
31641 let DecoderNamespace = "EXT_mmvec";
31642 }
31643 def V6_vdmpyhsuisat_acc : HInst<
31644 (outs HvxVR:$Vx32),
31645 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31646 "$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
31647 tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
31648 let Inst{7-5} = 0b001;
31649 let Inst{13-13} = 0b1;
31650 let Inst{31-21} = 0b00011001001;
31651 let hasNewValue = 1;
31652 let opNewValue = 0;
31653 let isAccumulator = 1;
31654 let DecoderNamespace = "EXT_mmvec";
31655 let Constraints = "$Vx32 = $Vx32in";
31656 }
31657 def V6_vdmpyhsuisat_acc_alt : HInst<
31658 (outs HvxVR:$Vx32),
31659 (ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31660 "$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
31661 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31662 let hasNewValue = 1;
31663 let opNewValue = 0;
31664 let isAccumulator = 1;
31665 let isPseudo = 1;
31666 let isCodeGenOnly = 1;
31667 let DecoderNamespace = "EXT_mmvec";
31668 let Constraints = "$Vx32 = $Vx32in";
31669 }
31670 def V6_vdmpyhsuisat_alt : HInst<
31671 (outs HvxVR:$Vd32),
31672 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31673 "$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
31674 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31675 let hasNewValue = 1;
31676 let opNewValue = 0;
31677 let isPseudo = 1;
31678 let isCodeGenOnly = 1;
31679 let DecoderNamespace = "EXT_mmvec";
31680 }
31681 def V6_vdmpyhsusat : HInst<
31682 (outs HvxVR:$Vd32),
31683 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31684 "$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
31685 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
31686 let Inst{7-5} = 0b000;
31687 let Inst{13-13} = 0b0;
31688 let Inst{31-21} = 0b00011001001;
31689 let hasNewValue = 1;
31690 let opNewValue = 0;
31691 let DecoderNamespace = "EXT_mmvec";
31692 }
31693 def V6_vdmpyhsusat_acc : HInst<
31694 (outs HvxVR:$Vx32),
31695 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31696 "$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
31697 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
31698 let Inst{7-5} = 0b000;
31699 let Inst{13-13} = 0b1;
31700 let Inst{31-21} = 0b00011001001;
31701 let hasNewValue = 1;
31702 let opNewValue = 0;
31703 let isAccumulator = 1;
31704 let DecoderNamespace = "EXT_mmvec";
31705 let Constraints = "$Vx32 = $Vx32in";
31706 }
31707 def V6_vdmpyhsusat_acc_alt : HInst<
31708 (outs HvxVR:$Vx32),
31709 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31710 "$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
31711 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31712 let hasNewValue = 1;
31713 let opNewValue = 0;
31714 let isAccumulator = 1;
31715 let isPseudo = 1;
31716 let isCodeGenOnly = 1;
31717 let DecoderNamespace = "EXT_mmvec";
31718 let Constraints = "$Vx32 = $Vx32in";
31719 }
31720 def V6_vdmpyhsusat_alt : HInst<
31721 (outs HvxVR:$Vd32),
31722 (ins HvxVR:$Vu32, IntRegs:$Rt32),
31723 "$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
31724 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31725 let hasNewValue = 1;
31726 let opNewValue = 0;
31727 let isPseudo = 1;
31728 let isCodeGenOnly = 1;
31729 let DecoderNamespace = "EXT_mmvec";
31730 }
31731 def V6_vdmpyhvsat : HInst<
31732 (outs HvxVR:$Vd32),
31733 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31734 "$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
31735 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
31736 let Inst{7-5} = 0b011;
31737 let Inst{13-13} = 0b0;
31738 let Inst{31-21} = 0b00011100000;
31739 let hasNewValue = 1;
31740 let opNewValue = 0;
31741 let DecoderNamespace = "EXT_mmvec";
31742 }
31743 def V6_vdmpyhvsat_acc : HInst<
31744 (outs HvxVR:$Vx32),
31745 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31746 "$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
31747 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
31748 let Inst{7-5} = 0b011;
31749 let Inst{13-13} = 0b1;
31750 let Inst{31-21} = 0b00011100000;
31751 let hasNewValue = 1;
31752 let opNewValue = 0;
31753 let isAccumulator = 1;
31754 let DecoderNamespace = "EXT_mmvec";
31755 let Constraints = "$Vx32 = $Vx32in";
31756 }
31757 def V6_vdmpyhvsat_acc_alt : HInst<
31758 (outs HvxVR:$Vx32),
31759 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31760 "$Vx32 += vdmpyh($Vu32,$Vv32):sat",
31761 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31762 let hasNewValue = 1;
31763 let opNewValue = 0;
31764 let isAccumulator = 1;
31765 let isPseudo = 1;
31766 let isCodeGenOnly = 1;
31767 let DecoderNamespace = "EXT_mmvec";
31768 let Constraints = "$Vx32 = $Vx32in";
31769 }
31770 def V6_vdmpyhvsat_alt : HInst<
31771 (outs HvxVR:$Vd32),
31772 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31773 "$Vd32 = vdmpyh($Vu32,$Vv32):sat",
31774 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31775 let hasNewValue = 1;
31776 let opNewValue = 0;
31777 let isPseudo = 1;
31778 let isCodeGenOnly = 1;
31779 let DecoderNamespace = "EXT_mmvec";
31780 }
31781 def V6_vdsaduh : HInst<
31782 (outs HvxWR:$Vdd32),
31783 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31784 "$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
31785 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31786 let Inst{7-5} = 0b101;
31787 let Inst{13-13} = 0b0;
31788 let Inst{31-21} = 0b00011001000;
31789 let hasNewValue = 1;
31790 let opNewValue = 0;
31791 let DecoderNamespace = "EXT_mmvec";
31792 }
31793 def V6_vdsaduh_acc : HInst<
31794 (outs HvxWR:$Vxx32),
31795 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31796 "$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
31797 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31798 let Inst{7-5} = 0b000;
31799 let Inst{13-13} = 0b1;
31800 let Inst{31-21} = 0b00011001011;
31801 let hasNewValue = 1;
31802 let opNewValue = 0;
31803 let isAccumulator = 1;
31804 let DecoderNamespace = "EXT_mmvec";
31805 let Constraints = "$Vxx32 = $Vxx32in";
31806 }
31807 def V6_vdsaduh_acc_alt : HInst<
31808 (outs HvxWR:$Vxx32),
31809 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31810 "$Vxx32 += vdsaduh($Vuu32,$Rt32)",
31811 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31812 let hasNewValue = 1;
31813 let opNewValue = 0;
31814 let isAccumulator = 1;
31815 let isPseudo = 1;
31816 let isCodeGenOnly = 1;
31817 let DecoderNamespace = "EXT_mmvec";
31818 let Constraints = "$Vxx32 = $Vxx32in";
31819 }
31820 def V6_vdsaduh_alt : HInst<
31821 (outs HvxWR:$Vdd32),
31822 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
31823 "$Vdd32 = vdsaduh($Vuu32,$Rt32)",
31824 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31825 let hasNewValue = 1;
31826 let opNewValue = 0;
31827 let isPseudo = 1;
31828 let isCodeGenOnly = 1;
31829 let DecoderNamespace = "EXT_mmvec";
31830 }
31831 def V6_veqb : HInst<
31832 (outs HvxQR:$Qd4),
31833 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31834 "$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
31835 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31836 let Inst{7-2} = 0b000000;
31837 let Inst{13-13} = 0b0;
31838 let Inst{31-21} = 0b00011111100;
31839 let hasNewValue = 1;
31840 let opNewValue = 0;
31841 let DecoderNamespace = "EXT_mmvec";
31842 }
31843 def V6_veqb_and : HInst<
31844 (outs HvxQR:$Qx4),
31845 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31846 "$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
31847 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31848 let Inst{7-2} = 0b000000;
31849 let Inst{13-13} = 0b1;
31850 let Inst{31-21} = 0b00011100100;
31851 let DecoderNamespace = "EXT_mmvec";
31852 let Constraints = "$Qx4 = $Qx4in";
31853 }
31854 def V6_veqb_or : HInst<
31855 (outs HvxQR:$Qx4),
31856 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31857 "$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
31858 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31859 let Inst{7-2} = 0b010000;
31860 let Inst{13-13} = 0b1;
31861 let Inst{31-21} = 0b00011100100;
31862 let isAccumulator = 1;
31863 let DecoderNamespace = "EXT_mmvec";
31864 let Constraints = "$Qx4 = $Qx4in";
31865 }
31866 def V6_veqb_xor : HInst<
31867 (outs HvxQR:$Qx4),
31868 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31869 "$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
31870 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31871 let Inst{7-2} = 0b100000;
31872 let Inst{13-13} = 0b1;
31873 let Inst{31-21} = 0b00011100100;
31874 let DecoderNamespace = "EXT_mmvec";
31875 let Constraints = "$Qx4 = $Qx4in";
31876 }
31877 def V6_veqh : HInst<
31878 (outs HvxQR:$Qd4),
31879 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31880 "$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
31881 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31882 let Inst{7-2} = 0b000001;
31883 let Inst{13-13} = 0b0;
31884 let Inst{31-21} = 0b00011111100;
31885 let hasNewValue = 1;
31886 let opNewValue = 0;
31887 let DecoderNamespace = "EXT_mmvec";
31888 }
31889 def V6_veqh_and : HInst<
31890 (outs HvxQR:$Qx4),
31891 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31892 "$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
31893 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31894 let Inst{7-2} = 0b000001;
31895 let Inst{13-13} = 0b1;
31896 let Inst{31-21} = 0b00011100100;
31897 let DecoderNamespace = "EXT_mmvec";
31898 let Constraints = "$Qx4 = $Qx4in";
31899 }
31900 def V6_veqh_or : HInst<
31901 (outs HvxQR:$Qx4),
31902 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31903 "$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
31904 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31905 let Inst{7-2} = 0b010001;
31906 let Inst{13-13} = 0b1;
31907 let Inst{31-21} = 0b00011100100;
31908 let isAccumulator = 1;
31909 let DecoderNamespace = "EXT_mmvec";
31910 let Constraints = "$Qx4 = $Qx4in";
31911 }
31912 def V6_veqh_xor : HInst<
31913 (outs HvxQR:$Qx4),
31914 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31915 "$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
31916 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31917 let Inst{7-2} = 0b100001;
31918 let Inst{13-13} = 0b1;
31919 let Inst{31-21} = 0b00011100100;
31920 let DecoderNamespace = "EXT_mmvec";
31921 let Constraints = "$Qx4 = $Qx4in";
31922 }
31923 def V6_veqw : HInst<
31924 (outs HvxQR:$Qd4),
31925 (ins HvxVR:$Vu32, HvxVR:$Vv32),
31926 "$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
31927 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31928 let Inst{7-2} = 0b000010;
31929 let Inst{13-13} = 0b0;
31930 let Inst{31-21} = 0b00011111100;
31931 let hasNewValue = 1;
31932 let opNewValue = 0;
31933 let DecoderNamespace = "EXT_mmvec";
31934 }
31935 def V6_veqw_and : HInst<
31936 (outs HvxQR:$Qx4),
31937 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31938 "$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
31939 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31940 let Inst{7-2} = 0b000010;
31941 let Inst{13-13} = 0b1;
31942 let Inst{31-21} = 0b00011100100;
31943 let DecoderNamespace = "EXT_mmvec";
31944 let Constraints = "$Qx4 = $Qx4in";
31945 }
31946 def V6_veqw_or : HInst<
31947 (outs HvxQR:$Qx4),
31948 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31949 "$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
31950 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31951 let Inst{7-2} = 0b010010;
31952 let Inst{13-13} = 0b1;
31953 let Inst{31-21} = 0b00011100100;
31954 let isAccumulator = 1;
31955 let DecoderNamespace = "EXT_mmvec";
31956 let Constraints = "$Qx4 = $Qx4in";
31957 }
31958 def V6_veqw_xor : HInst<
31959 (outs HvxQR:$Qx4),
31960 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31961 "$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
31962 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31963 let Inst{7-2} = 0b100010;
31964 let Inst{13-13} = 0b1;
31965 let Inst{31-21} = 0b00011100100;
31966 let DecoderNamespace = "EXT_mmvec";
31967 let Constraints = "$Qx4 = $Qx4in";
31968 }
31969 def V6_vgathermh : HInst<
31970 (outs),
31971 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
31972 "vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
31973 tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
31974 let Inst{12-5} = 0b00001000;
31975 let Inst{31-21} = 0b00101111000;
31976 let hasNewValue = 1;
31977 let opNewValue = 0;
31978 let accessSize = HalfWordAccess;
31979 let isCVLoad = 1;
31980 let hasTmpDst = 1;
31981 let mayLoad = 1;
31982 let Defs = [VTMP];
31983 let DecoderNamespace = "EXT_mmvec";
31984 }
31985 def V6_vgathermhq : HInst<
31986 (outs),
31987 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
31988 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
31989 tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
31990 let Inst{12-7} = 0b001010;
31991 let Inst{31-21} = 0b00101111000;
31992 let hasNewValue = 1;
31993 let opNewValue = 0;
31994 let accessSize = HalfWordAccess;
31995 let isCVLoad = 1;
31996 let hasTmpDst = 1;
31997 let mayLoad = 1;
31998 let Defs = [VTMP];
31999 let DecoderNamespace = "EXT_mmvec";
32000 }
32001 def V6_vgathermhw : HInst<
32002 (outs),
32003 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32004 "vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32005 tc_05058f6f, TypeCVI_GATHER>, Enc_28dcbb, Requires<[UseHVXV65]> {
32006 let Inst{12-5} = 0b00010000;
32007 let Inst{31-21} = 0b00101111000;
32008 let hasNewValue = 1;
32009 let opNewValue = 0;
32010 let accessSize = HalfWordAccess;
32011 let isCVLoad = 1;
32012 let hasTmpDst = 1;
32013 let mayLoad = 1;
32014 let Defs = [VTMP];
32015 let DecoderNamespace = "EXT_mmvec";
32016 }
32017 def V6_vgathermhwq : HInst<
32018 (outs),
32019 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32020 "if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32021 tc_fd7610da, TypeCVI_GATHER>, Enc_4e4a80, Requires<[UseHVXV65]> {
32022 let Inst{12-7} = 0b001100;
32023 let Inst{31-21} = 0b00101111000;
32024 let hasNewValue = 1;
32025 let opNewValue = 0;
32026 let accessSize = HalfWordAccess;
32027 let isCVLoad = 1;
32028 let hasTmpDst = 1;
32029 let mayLoad = 1;
32030 let Defs = [VTMP];
32031 let DecoderNamespace = "EXT_mmvec";
32032 }
32033 def V6_vgathermw : HInst<
32034 (outs),
32035 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32036 "vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32037 tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
32038 let Inst{12-5} = 0b00000000;
32039 let Inst{31-21} = 0b00101111000;
32040 let hasNewValue = 1;
32041 let opNewValue = 0;
32042 let accessSize = WordAccess;
32043 let isCVLoad = 1;
32044 let hasTmpDst = 1;
32045 let mayLoad = 1;
32046 let Defs = [VTMP];
32047 let DecoderNamespace = "EXT_mmvec";
32048 }
32049 def V6_vgathermwq : HInst<
32050 (outs),
32051 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32052 "if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32053 tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
32054 let Inst{12-7} = 0b001000;
32055 let Inst{31-21} = 0b00101111000;
32056 let hasNewValue = 1;
32057 let opNewValue = 0;
32058 let accessSize = WordAccess;
32059 let isCVLoad = 1;
32060 let hasTmpDst = 1;
32061 let mayLoad = 1;
32062 let Defs = [VTMP];
32063 let DecoderNamespace = "EXT_mmvec";
32064 }
32065 def V6_vgtb : HInst<
32066 (outs HvxQR:$Qd4),
32067 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32068 "$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
32069 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32070 let Inst{7-2} = 0b000100;
32071 let Inst{13-13} = 0b0;
32072 let Inst{31-21} = 0b00011111100;
32073 let hasNewValue = 1;
32074 let opNewValue = 0;
32075 let DecoderNamespace = "EXT_mmvec";
32076 }
32077 def V6_vgtb_and : HInst<
32078 (outs HvxQR:$Qx4),
32079 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32080 "$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
32081 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32082 let Inst{7-2} = 0b000100;
32083 let Inst{13-13} = 0b1;
32084 let Inst{31-21} = 0b00011100100;
32085 let DecoderNamespace = "EXT_mmvec";
32086 let Constraints = "$Qx4 = $Qx4in";
32087 }
32088 def V6_vgtb_or : HInst<
32089 (outs HvxQR:$Qx4),
32090 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32091 "$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
32092 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32093 let Inst{7-2} = 0b010100;
32094 let Inst{13-13} = 0b1;
32095 let Inst{31-21} = 0b00011100100;
32096 let isAccumulator = 1;
32097 let DecoderNamespace = "EXT_mmvec";
32098 let Constraints = "$Qx4 = $Qx4in";
32099 }
32100 def V6_vgtb_xor : HInst<
32101 (outs HvxQR:$Qx4),
32102 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32103 "$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
32104 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32105 let Inst{7-2} = 0b100100;
32106 let Inst{13-13} = 0b1;
32107 let Inst{31-21} = 0b00011100100;
32108 let DecoderNamespace = "EXT_mmvec";
32109 let Constraints = "$Qx4 = $Qx4in";
32110 }
32111 def V6_vgth : HInst<
32112 (outs HvxQR:$Qd4),
32113 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32114 "$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
32115 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32116 let Inst{7-2} = 0b000101;
32117 let Inst{13-13} = 0b0;
32118 let Inst{31-21} = 0b00011111100;
32119 let hasNewValue = 1;
32120 let opNewValue = 0;
32121 let DecoderNamespace = "EXT_mmvec";
32122 }
32123 def V6_vgth_and : HInst<
32124 (outs HvxQR:$Qx4),
32125 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32126 "$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
32127 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32128 let Inst{7-2} = 0b000101;
32129 let Inst{13-13} = 0b1;
32130 let Inst{31-21} = 0b00011100100;
32131 let DecoderNamespace = "EXT_mmvec";
32132 let Constraints = "$Qx4 = $Qx4in";
32133 }
32134 def V6_vgth_or : HInst<
32135 (outs HvxQR:$Qx4),
32136 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32137 "$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
32138 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32139 let Inst{7-2} = 0b010101;
32140 let Inst{13-13} = 0b1;
32141 let Inst{31-21} = 0b00011100100;
32142 let isAccumulator = 1;
32143 let DecoderNamespace = "EXT_mmvec";
32144 let Constraints = "$Qx4 = $Qx4in";
32145 }
32146 def V6_vgth_xor : HInst<
32147 (outs HvxQR:$Qx4),
32148 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32149 "$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
32150 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32151 let Inst{7-2} = 0b100101;
32152 let Inst{13-13} = 0b1;
32153 let Inst{31-21} = 0b00011100100;
32154 let DecoderNamespace = "EXT_mmvec";
32155 let Constraints = "$Qx4 = $Qx4in";
32156 }
32157 def V6_vgtub : HInst<
32158 (outs HvxQR:$Qd4),
32159 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32160 "$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
32161 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32162 let Inst{7-2} = 0b001000;
32163 let Inst{13-13} = 0b0;
32164 let Inst{31-21} = 0b00011111100;
32165 let hasNewValue = 1;
32166 let opNewValue = 0;
32167 let DecoderNamespace = "EXT_mmvec";
32168 }
32169 def V6_vgtub_and : HInst<
32170 (outs HvxQR:$Qx4),
32171 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32172 "$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
32173 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32174 let Inst{7-2} = 0b001000;
32175 let Inst{13-13} = 0b1;
32176 let Inst{31-21} = 0b00011100100;
32177 let DecoderNamespace = "EXT_mmvec";
32178 let Constraints = "$Qx4 = $Qx4in";
32179 }
32180 def V6_vgtub_or : HInst<
32181 (outs HvxQR:$Qx4),
32182 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32183 "$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
32184 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32185 let Inst{7-2} = 0b011000;
32186 let Inst{13-13} = 0b1;
32187 let Inst{31-21} = 0b00011100100;
32188 let isAccumulator = 1;
32189 let DecoderNamespace = "EXT_mmvec";
32190 let Constraints = "$Qx4 = $Qx4in";
32191 }
32192 def V6_vgtub_xor : HInst<
32193 (outs HvxQR:$Qx4),
32194 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32195 "$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
32196 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32197 let Inst{7-2} = 0b101000;
32198 let Inst{13-13} = 0b1;
32199 let Inst{31-21} = 0b00011100100;
32200 let DecoderNamespace = "EXT_mmvec";
32201 let Constraints = "$Qx4 = $Qx4in";
32202 }
32203 def V6_vgtuh : HInst<
32204 (outs HvxQR:$Qd4),
32205 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32206 "$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
32207 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32208 let Inst{7-2} = 0b001001;
32209 let Inst{13-13} = 0b0;
32210 let Inst{31-21} = 0b00011111100;
32211 let hasNewValue = 1;
32212 let opNewValue = 0;
32213 let DecoderNamespace = "EXT_mmvec";
32214 }
32215 def V6_vgtuh_and : HInst<
32216 (outs HvxQR:$Qx4),
32217 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32218 "$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
32219 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32220 let Inst{7-2} = 0b001001;
32221 let Inst{13-13} = 0b1;
32222 let Inst{31-21} = 0b00011100100;
32223 let DecoderNamespace = "EXT_mmvec";
32224 let Constraints = "$Qx4 = $Qx4in";
32225 }
32226 def V6_vgtuh_or : HInst<
32227 (outs HvxQR:$Qx4),
32228 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32229 "$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
32230 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32231 let Inst{7-2} = 0b011001;
32232 let Inst{13-13} = 0b1;
32233 let Inst{31-21} = 0b00011100100;
32234 let isAccumulator = 1;
32235 let DecoderNamespace = "EXT_mmvec";
32236 let Constraints = "$Qx4 = $Qx4in";
32237 }
32238 def V6_vgtuh_xor : HInst<
32239 (outs HvxQR:$Qx4),
32240 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32241 "$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
32242 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32243 let Inst{7-2} = 0b101001;
32244 let Inst{13-13} = 0b1;
32245 let Inst{31-21} = 0b00011100100;
32246 let DecoderNamespace = "EXT_mmvec";
32247 let Constraints = "$Qx4 = $Qx4in";
32248 }
32249 def V6_vgtuw : HInst<
32250 (outs HvxQR:$Qd4),
32251 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32252 "$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
32253 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32254 let Inst{7-2} = 0b001010;
32255 let Inst{13-13} = 0b0;
32256 let Inst{31-21} = 0b00011111100;
32257 let hasNewValue = 1;
32258 let opNewValue = 0;
32259 let DecoderNamespace = "EXT_mmvec";
32260 }
32261 def V6_vgtuw_and : HInst<
32262 (outs HvxQR:$Qx4),
32263 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32264 "$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
32265 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32266 let Inst{7-2} = 0b001010;
32267 let Inst{13-13} = 0b1;
32268 let Inst{31-21} = 0b00011100100;
32269 let DecoderNamespace = "EXT_mmvec";
32270 let Constraints = "$Qx4 = $Qx4in";
32271 }
32272 def V6_vgtuw_or : HInst<
32273 (outs HvxQR:$Qx4),
32274 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32275 "$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
32276 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32277 let Inst{7-2} = 0b011010;
32278 let Inst{13-13} = 0b1;
32279 let Inst{31-21} = 0b00011100100;
32280 let isAccumulator = 1;
32281 let DecoderNamespace = "EXT_mmvec";
32282 let Constraints = "$Qx4 = $Qx4in";
32283 }
32284 def V6_vgtuw_xor : HInst<
32285 (outs HvxQR:$Qx4),
32286 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32287 "$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
32288 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32289 let Inst{7-2} = 0b101010;
32290 let Inst{13-13} = 0b1;
32291 let Inst{31-21} = 0b00011100100;
32292 let DecoderNamespace = "EXT_mmvec";
32293 let Constraints = "$Qx4 = $Qx4in";
32294 }
32295 def V6_vgtw : HInst<
32296 (outs HvxQR:$Qd4),
32297 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32298 "$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
32299 tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32300 let Inst{7-2} = 0b000110;
32301 let Inst{13-13} = 0b0;
32302 let Inst{31-21} = 0b00011111100;
32303 let hasNewValue = 1;
32304 let opNewValue = 0;
32305 let DecoderNamespace = "EXT_mmvec";
32306 }
32307 def V6_vgtw_and : HInst<
32308 (outs HvxQR:$Qx4),
32309 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32310 "$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
32311 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32312 let Inst{7-2} = 0b000110;
32313 let Inst{13-13} = 0b1;
32314 let Inst{31-21} = 0b00011100100;
32315 let DecoderNamespace = "EXT_mmvec";
32316 let Constraints = "$Qx4 = $Qx4in";
32317 }
32318 def V6_vgtw_or : HInst<
32319 (outs HvxQR:$Qx4),
32320 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32321 "$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
32322 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32323 let Inst{7-2} = 0b010110;
32324 let Inst{13-13} = 0b1;
32325 let Inst{31-21} = 0b00011100100;
32326 let isAccumulator = 1;
32327 let DecoderNamespace = "EXT_mmvec";
32328 let Constraints = "$Qx4 = $Qx4in";
32329 }
32330 def V6_vgtw_xor : HInst<
32331 (outs HvxQR:$Qx4),
32332 (ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32333 "$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
32334 tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32335 let Inst{7-2} = 0b100110;
32336 let Inst{13-13} = 0b1;
32337 let Inst{31-21} = 0b00011100100;
32338 let DecoderNamespace = "EXT_mmvec";
32339 let Constraints = "$Qx4 = $Qx4in";
32340 }
32341 def V6_vhist : HInst<
32342 (outs),
32343 (ins),
32344 "vhist",
32345 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
32346 let Inst{13-0} = 0b10000010000000;
32347 let Inst{31-16} = 0b0001111000000000;
32348 let DecoderNamespace = "EXT_mmvec";
32349 }
32350 def V6_vhistq : HInst<
32351 (outs),
32352 (ins HvxQR:$Qv4),
32353 "vhist($Qv4)",
32354 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
32355 let Inst{13-0} = 0b10000010000000;
32356 let Inst{21-16} = 0b000010;
32357 let Inst{31-24} = 0b00011110;
32358 let DecoderNamespace = "EXT_mmvec";
32359 }
32360 def V6_vinsertwr : HInst<
32361 (outs HvxVR:$Vx32),
32362 (ins HvxVR:$Vx32in, IntRegs:$Rt32),
32363 "$Vx32.w = vinsert($Rt32)",
32364 tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
32365 let Inst{13-5} = 0b100000001;
32366 let Inst{31-21} = 0b00011001101;
32367 let hasNewValue = 1;
32368 let opNewValue = 0;
32369 let DecoderNamespace = "EXT_mmvec";
32370 let Constraints = "$Vx32 = $Vx32in";
32371 }
32372 def V6_vlalignb : HInst<
32373 (outs HvxVR:$Vd32),
32374 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32375 "$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
32376 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
32377 let Inst{7-5} = 0b001;
32378 let Inst{13-13} = 0b0;
32379 let Inst{31-24} = 0b00011011;
32380 let hasNewValue = 1;
32381 let opNewValue = 0;
32382 let DecoderNamespace = "EXT_mmvec";
32383 }
32384 def V6_vlalignbi : HInst<
32385 (outs HvxVR:$Vd32),
32386 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32387 "$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
32388 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
32389 let Inst{13-13} = 0b1;
32390 let Inst{31-21} = 0b00011110011;
32391 let hasNewValue = 1;
32392 let opNewValue = 0;
32393 let DecoderNamespace = "EXT_mmvec";
32394 }
32395 def V6_vlsrb : HInst<
32396 (outs HvxVR:$Vd32),
32397 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32398 "$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
32399 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
32400 let Inst{7-5} = 0b011;
32401 let Inst{13-13} = 0b0;
32402 let Inst{31-21} = 0b00011001100;
32403 let hasNewValue = 1;
32404 let opNewValue = 0;
32405 let DecoderNamespace = "EXT_mmvec";
32406 }
32407 def V6_vlsrh : HInst<
32408 (outs HvxVR:$Vd32),
32409 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32410 "$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
32411 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
32412 let Inst{7-5} = 0b010;
32413 let Inst{13-13} = 0b0;
32414 let Inst{31-21} = 0b00011001100;
32415 let hasNewValue = 1;
32416 let opNewValue = 0;
32417 let DecoderNamespace = "EXT_mmvec";
32418 }
32419 def V6_vlsrh_alt : HInst<
32420 (outs HvxVR:$Vd32),
32421 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32422 "$Vd32 = vlsrh($Vu32,$Rt32)",
32423 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32424 let hasNewValue = 1;
32425 let opNewValue = 0;
32426 let isPseudo = 1;
32427 let isCodeGenOnly = 1;
32428 let DecoderNamespace = "EXT_mmvec";
32429 }
32430 def V6_vlsrhv : HInst<
32431 (outs HvxVR:$Vd32),
32432 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32433 "$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
32434 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
32435 let Inst{7-5} = 0b010;
32436 let Inst{13-13} = 0b0;
32437 let Inst{31-21} = 0b00011111101;
32438 let hasNewValue = 1;
32439 let opNewValue = 0;
32440 let DecoderNamespace = "EXT_mmvec";
32441 }
32442 def V6_vlsrhv_alt : HInst<
32443 (outs HvxVR:$Vd32),
32444 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32445 "$Vd32 = vlsrh($Vu32,$Vv32)",
32446 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32447 let hasNewValue = 1;
32448 let opNewValue = 0;
32449 let isPseudo = 1;
32450 let isCodeGenOnly = 1;
32451 let DecoderNamespace = "EXT_mmvec";
32452 }
32453 def V6_vlsrw : HInst<
32454 (outs HvxVR:$Vd32),
32455 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32456 "$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
32457 tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
32458 let Inst{7-5} = 0b001;
32459 let Inst{13-13} = 0b0;
32460 let Inst{31-21} = 0b00011001100;
32461 let hasNewValue = 1;
32462 let opNewValue = 0;
32463 let DecoderNamespace = "EXT_mmvec";
32464 }
32465 def V6_vlsrw_alt : HInst<
32466 (outs HvxVR:$Vd32),
32467 (ins HvxVR:$Vu32, IntRegs:$Rt32),
32468 "$Vd32 = vlsrw($Vu32,$Rt32)",
32469 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32470 let hasNewValue = 1;
32471 let opNewValue = 0;
32472 let isPseudo = 1;
32473 let isCodeGenOnly = 1;
32474 let DecoderNamespace = "EXT_mmvec";
32475 }
32476 def V6_vlsrwv : HInst<
32477 (outs HvxVR:$Vd32),
32478 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32479 "$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
32480 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
32481 let Inst{7-5} = 0b001;
32482 let Inst{13-13} = 0b0;
32483 let Inst{31-21} = 0b00011111101;
32484 let hasNewValue = 1;
32485 let opNewValue = 0;
32486 let DecoderNamespace = "EXT_mmvec";
32487 }
32488 def V6_vlsrwv_alt : HInst<
32489 (outs HvxVR:$Vd32),
32490 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32491 "$Vd32 = vlsrw($Vu32,$Vv32)",
32492 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32493 let hasNewValue = 1;
32494 let opNewValue = 0;
32495 let isPseudo = 1;
32496 let isCodeGenOnly = 1;
32497 let DecoderNamespace = "EXT_mmvec";
32498 }
32499 def V6_vlut4 : HInst<
32500 (outs HvxVR:$Vd32),
32501 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
32502 "$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
32503 tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
32504 let Inst{7-5} = 0b100;
32505 let Inst{13-13} = 0b0;
32506 let Inst{31-21} = 0b00011001011;
32507 let hasNewValue = 1;
32508 let opNewValue = 0;
32509 let DecoderNamespace = "EXT_mmvec";
32510 }
32511 def V6_vlutvvb : HInst<
32512 (outs HvxVR:$Vd32),
32513 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32514 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
32515 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
32516 let Inst{7-5} = 0b001;
32517 let Inst{13-13} = 0b1;
32518 let Inst{31-24} = 0b00011011;
32519 let hasNewValue = 1;
32520 let opNewValue = 0;
32521 let DecoderNamespace = "EXT_mmvec";
32522 }
32523 def V6_vlutvvb_nm : HInst<
32524 (outs HvxVR:$Vd32),
32525 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32526 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
32527 tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
32528 let Inst{7-5} = 0b011;
32529 let Inst{13-13} = 0b0;
32530 let Inst{31-24} = 0b00011000;
32531 let hasNewValue = 1;
32532 let opNewValue = 0;
32533 let DecoderNamespace = "EXT_mmvec";
32534 }
32535 def V6_vlutvvb_oracc : HInst<
32536 (outs HvxVR:$Vx32),
32537 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32538 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
32539 tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
32540 let Inst{7-5} = 0b101;
32541 let Inst{13-13} = 0b1;
32542 let Inst{31-24} = 0b00011011;
32543 let hasNewValue = 1;
32544 let opNewValue = 0;
32545 let isAccumulator = 1;
32546 let DecoderNamespace = "EXT_mmvec";
32547 let Constraints = "$Vx32 = $Vx32in";
32548 }
32549 def V6_vlutvvb_oracci : HInst<
32550 (outs HvxVR:$Vx32),
32551 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32552 "$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
32553 tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
32554 let Inst{13-13} = 0b1;
32555 let Inst{31-21} = 0b00011100110;
32556 let hasNewValue = 1;
32557 let opNewValue = 0;
32558 let isAccumulator = 1;
32559 let DecoderNamespace = "EXT_mmvec";
32560 let Constraints = "$Vx32 = $Vx32in";
32561 }
32562 def V6_vlutvvbi : HInst<
32563 (outs HvxVR:$Vd32),
32564 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32565 "$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
32566 tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
32567 let Inst{13-13} = 0b0;
32568 let Inst{31-21} = 0b00011110001;
32569 let hasNewValue = 1;
32570 let opNewValue = 0;
32571 let DecoderNamespace = "EXT_mmvec";
32572 }
32573 def V6_vlutvwh : HInst<
32574 (outs HvxWR:$Vdd32),
32575 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32576 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
32577 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32578 let Inst{7-5} = 0b110;
32579 let Inst{13-13} = 0b1;
32580 let Inst{31-24} = 0b00011011;
32581 let hasNewValue = 1;
32582 let opNewValue = 0;
32583 let DecoderNamespace = "EXT_mmvec";
32584 }
32585 def V6_vlutvwh_nm : HInst<
32586 (outs HvxWR:$Vdd32),
32587 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32588 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
32589 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
32590 let Inst{7-5} = 0b100;
32591 let Inst{13-13} = 0b0;
32592 let Inst{31-24} = 0b00011000;
32593 let hasNewValue = 1;
32594 let opNewValue = 0;
32595 let DecoderNamespace = "EXT_mmvec";
32596 }
32597 def V6_vlutvwh_oracc : HInst<
32598 (outs HvxWR:$Vxx32),
32599 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32600 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
32601 tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
32602 let Inst{7-5} = 0b111;
32603 let Inst{13-13} = 0b1;
32604 let Inst{31-24} = 0b00011011;
32605 let hasNewValue = 1;
32606 let opNewValue = 0;
32607 let isAccumulator = 1;
32608 let DecoderNamespace = "EXT_mmvec";
32609 let Constraints = "$Vxx32 = $Vxx32in";
32610 }
32611 def V6_vlutvwh_oracci : HInst<
32612 (outs HvxWR:$Vxx32),
32613 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32614 "$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
32615 tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
32616 let Inst{13-13} = 0b1;
32617 let Inst{31-21} = 0b00011100111;
32618 let hasNewValue = 1;
32619 let opNewValue = 0;
32620 let isAccumulator = 1;
32621 let DecoderNamespace = "EXT_mmvec";
32622 let Constraints = "$Vxx32 = $Vxx32in";
32623 }
32624 def V6_vlutvwhi : HInst<
32625 (outs HvxWR:$Vdd32),
32626 (ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32627 "$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
32628 tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
32629 let Inst{13-13} = 0b0;
32630 let Inst{31-21} = 0b00011110011;
32631 let hasNewValue = 1;
32632 let opNewValue = 0;
32633 let DecoderNamespace = "EXT_mmvec";
32634 }
32635 def V6_vmaxb : HInst<
32636 (outs HvxVR:$Vd32),
32637 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32638 "$Vd32.b = vmax($Vu32.b,$Vv32.b)",
32639 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
32640 let Inst{7-5} = 0b101;
32641 let Inst{13-13} = 0b0;
32642 let Inst{31-21} = 0b00011111001;
32643 let hasNewValue = 1;
32644 let opNewValue = 0;
32645 let DecoderNamespace = "EXT_mmvec";
32646 }
32647 def V6_vmaxb_alt : HInst<
32648 (outs HvxVR:$Vd32),
32649 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32650 "$Vd32 = vmaxb($Vu32,$Vv32)",
32651 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
32652 let hasNewValue = 1;
32653 let opNewValue = 0;
32654 let isPseudo = 1;
32655 let isCodeGenOnly = 1;
32656 let DecoderNamespace = "EXT_mmvec";
32657 }
32658 def V6_vmaxh : HInst<
32659 (outs HvxVR:$Vd32),
32660 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32661 "$Vd32.h = vmax($Vu32.h,$Vv32.h)",
32662 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32663 let Inst{7-5} = 0b111;
32664 let Inst{13-13} = 0b0;
32665 let Inst{31-21} = 0b00011111000;
32666 let hasNewValue = 1;
32667 let opNewValue = 0;
32668 let DecoderNamespace = "EXT_mmvec";
32669 }
32670 def V6_vmaxh_alt : HInst<
32671 (outs HvxVR:$Vd32),
32672 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32673 "$Vd32 = vmaxh($Vu32,$Vv32)",
32674 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32675 let hasNewValue = 1;
32676 let opNewValue = 0;
32677 let isPseudo = 1;
32678 let isCodeGenOnly = 1;
32679 let DecoderNamespace = "EXT_mmvec";
32680 }
32681 def V6_vmaxub : HInst<
32682 (outs HvxVR:$Vd32),
32683 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32684 "$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
32685 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32686 let Inst{7-5} = 0b101;
32687 let Inst{13-13} = 0b0;
32688 let Inst{31-21} = 0b00011111000;
32689 let hasNewValue = 1;
32690 let opNewValue = 0;
32691 let DecoderNamespace = "EXT_mmvec";
32692 }
32693 def V6_vmaxub_alt : HInst<
32694 (outs HvxVR:$Vd32),
32695 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32696 "$Vd32 = vmaxub($Vu32,$Vv32)",
32697 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32698 let hasNewValue = 1;
32699 let opNewValue = 0;
32700 let isPseudo = 1;
32701 let isCodeGenOnly = 1;
32702 let DecoderNamespace = "EXT_mmvec";
32703 }
32704 def V6_vmaxuh : HInst<
32705 (outs HvxVR:$Vd32),
32706 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32707 "$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
32708 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32709 let Inst{7-5} = 0b110;
32710 let Inst{13-13} = 0b0;
32711 let Inst{31-21} = 0b00011111000;
32712 let hasNewValue = 1;
32713 let opNewValue = 0;
32714 let DecoderNamespace = "EXT_mmvec";
32715 }
32716 def V6_vmaxuh_alt : HInst<
32717 (outs HvxVR:$Vd32),
32718 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32719 "$Vd32 = vmaxuh($Vu32,$Vv32)",
32720 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32721 let hasNewValue = 1;
32722 let opNewValue = 0;
32723 let isPseudo = 1;
32724 let isCodeGenOnly = 1;
32725 let DecoderNamespace = "EXT_mmvec";
32726 }
32727 def V6_vmaxw : HInst<
32728 (outs HvxVR:$Vd32),
32729 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32730 "$Vd32.w = vmax($Vu32.w,$Vv32.w)",
32731 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32732 let Inst{7-5} = 0b000;
32733 let Inst{13-13} = 0b0;
32734 let Inst{31-21} = 0b00011111001;
32735 let hasNewValue = 1;
32736 let opNewValue = 0;
32737 let DecoderNamespace = "EXT_mmvec";
32738 }
32739 def V6_vmaxw_alt : HInst<
32740 (outs HvxVR:$Vd32),
32741 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32742 "$Vd32 = vmaxw($Vu32,$Vv32)",
32743 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32744 let hasNewValue = 1;
32745 let opNewValue = 0;
32746 let isPseudo = 1;
32747 let isCodeGenOnly = 1;
32748 let DecoderNamespace = "EXT_mmvec";
32749 }
32750 def V6_vminb : HInst<
32751 (outs HvxVR:$Vd32),
32752 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32753 "$Vd32.b = vmin($Vu32.b,$Vv32.b)",
32754 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
32755 let Inst{7-5} = 0b100;
32756 let Inst{13-13} = 0b0;
32757 let Inst{31-21} = 0b00011111001;
32758 let hasNewValue = 1;
32759 let opNewValue = 0;
32760 let DecoderNamespace = "EXT_mmvec";
32761 }
32762 def V6_vminb_alt : HInst<
32763 (outs HvxVR:$Vd32),
32764 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32765 "$Vd32 = vminb($Vu32,$Vv32)",
32766 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
32767 let hasNewValue = 1;
32768 let opNewValue = 0;
32769 let isPseudo = 1;
32770 let isCodeGenOnly = 1;
32771 let DecoderNamespace = "EXT_mmvec";
32772 }
32773 def V6_vminh : HInst<
32774 (outs HvxVR:$Vd32),
32775 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32776 "$Vd32.h = vmin($Vu32.h,$Vv32.h)",
32777 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32778 let Inst{7-5} = 0b011;
32779 let Inst{13-13} = 0b0;
32780 let Inst{31-21} = 0b00011111000;
32781 let hasNewValue = 1;
32782 let opNewValue = 0;
32783 let DecoderNamespace = "EXT_mmvec";
32784 }
32785 def V6_vminh_alt : HInst<
32786 (outs HvxVR:$Vd32),
32787 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32788 "$Vd32 = vminh($Vu32,$Vv32)",
32789 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32790 let hasNewValue = 1;
32791 let opNewValue = 0;
32792 let isPseudo = 1;
32793 let isCodeGenOnly = 1;
32794 let DecoderNamespace = "EXT_mmvec";
32795 }
32796 def V6_vminub : HInst<
32797 (outs HvxVR:$Vd32),
32798 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32799 "$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
32800 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32801 let Inst{7-5} = 0b001;
32802 let Inst{13-13} = 0b0;
32803 let Inst{31-21} = 0b00011111000;
32804 let hasNewValue = 1;
32805 let opNewValue = 0;
32806 let DecoderNamespace = "EXT_mmvec";
32807 }
32808 def V6_vminub_alt : HInst<
32809 (outs HvxVR:$Vd32),
32810 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32811 "$Vd32 = vminub($Vu32,$Vv32)",
32812 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32813 let hasNewValue = 1;
32814 let opNewValue = 0;
32815 let isPseudo = 1;
32816 let isCodeGenOnly = 1;
32817 let DecoderNamespace = "EXT_mmvec";
32818 }
32819 def V6_vminuh : HInst<
32820 (outs HvxVR:$Vd32),
32821 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32822 "$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
32823 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32824 let Inst{7-5} = 0b010;
32825 let Inst{13-13} = 0b0;
32826 let Inst{31-21} = 0b00011111000;
32827 let hasNewValue = 1;
32828 let opNewValue = 0;
32829 let DecoderNamespace = "EXT_mmvec";
32830 }
32831 def V6_vminuh_alt : HInst<
32832 (outs HvxVR:$Vd32),
32833 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32834 "$Vd32 = vminuh($Vu32,$Vv32)",
32835 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32836 let hasNewValue = 1;
32837 let opNewValue = 0;
32838 let isPseudo = 1;
32839 let isCodeGenOnly = 1;
32840 let DecoderNamespace = "EXT_mmvec";
32841 }
32842 def V6_vminw : HInst<
32843 (outs HvxVR:$Vd32),
32844 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32845 "$Vd32.w = vmin($Vu32.w,$Vv32.w)",
32846 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32847 let Inst{7-5} = 0b100;
32848 let Inst{13-13} = 0b0;
32849 let Inst{31-21} = 0b00011111000;
32850 let hasNewValue = 1;
32851 let opNewValue = 0;
32852 let DecoderNamespace = "EXT_mmvec";
32853 }
32854 def V6_vminw_alt : HInst<
32855 (outs HvxVR:$Vd32),
32856 (ins HvxVR:$Vu32, HvxVR:$Vv32),
32857 "$Vd32 = vminw($Vu32,$Vv32)",
32858 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32859 let hasNewValue = 1;
32860 let opNewValue = 0;
32861 let isPseudo = 1;
32862 let isCodeGenOnly = 1;
32863 let DecoderNamespace = "EXT_mmvec";
32864 }
32865 def V6_vmpabus : HInst<
32866 (outs HvxWR:$Vdd32),
32867 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32868 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
32869 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32870 let Inst{7-5} = 0b110;
32871 let Inst{13-13} = 0b0;
32872 let Inst{31-21} = 0b00011001001;
32873 let hasNewValue = 1;
32874 let opNewValue = 0;
32875 let DecoderNamespace = "EXT_mmvec";
32876 }
32877 def V6_vmpabus_acc : HInst<
32878 (outs HvxWR:$Vxx32),
32879 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32880 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
32881 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32882 let Inst{7-5} = 0b110;
32883 let Inst{13-13} = 0b1;
32884 let Inst{31-21} = 0b00011001001;
32885 let hasNewValue = 1;
32886 let opNewValue = 0;
32887 let isAccumulator = 1;
32888 let DecoderNamespace = "EXT_mmvec";
32889 let Constraints = "$Vxx32 = $Vxx32in";
32890 }
32891 def V6_vmpabus_acc_alt : HInst<
32892 (outs HvxWR:$Vxx32),
32893 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32894 "$Vxx32 += vmpabus($Vuu32,$Rt32)",
32895 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32896 let hasNewValue = 1;
32897 let opNewValue = 0;
32898 let isAccumulator = 1;
32899 let isPseudo = 1;
32900 let isCodeGenOnly = 1;
32901 let DecoderNamespace = "EXT_mmvec";
32902 let Constraints = "$Vxx32 = $Vxx32in";
32903 }
32904 def V6_vmpabus_alt : HInst<
32905 (outs HvxWR:$Vdd32),
32906 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32907 "$Vdd32 = vmpabus($Vuu32,$Rt32)",
32908 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32909 let hasNewValue = 1;
32910 let opNewValue = 0;
32911 let isPseudo = 1;
32912 let isCodeGenOnly = 1;
32913 let DecoderNamespace = "EXT_mmvec";
32914 }
32915 def V6_vmpabusv : HInst<
32916 (outs HvxWR:$Vdd32),
32917 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32918 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
32919 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
32920 let Inst{7-5} = 0b011;
32921 let Inst{13-13} = 0b0;
32922 let Inst{31-21} = 0b00011100001;
32923 let hasNewValue = 1;
32924 let opNewValue = 0;
32925 let DecoderNamespace = "EXT_mmvec";
32926 }
32927 def V6_vmpabusv_alt : HInst<
32928 (outs HvxWR:$Vdd32),
32929 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32930 "$Vdd32 = vmpabus($Vuu32,$Vvv32)",
32931 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32932 let hasNewValue = 1;
32933 let opNewValue = 0;
32934 let isPseudo = 1;
32935 let isCodeGenOnly = 1;
32936 let DecoderNamespace = "EXT_mmvec";
32937 }
32938 def V6_vmpabuu : HInst<
32939 (outs HvxWR:$Vdd32),
32940 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32941 "$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
32942 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
32943 let Inst{7-5} = 0b011;
32944 let Inst{13-13} = 0b0;
32945 let Inst{31-21} = 0b00011001011;
32946 let hasNewValue = 1;
32947 let opNewValue = 0;
32948 let DecoderNamespace = "EXT_mmvec";
32949 }
32950 def V6_vmpabuu_acc : HInst<
32951 (outs HvxWR:$Vxx32),
32952 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32953 "$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
32954 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
32955 let Inst{7-5} = 0b100;
32956 let Inst{13-13} = 0b1;
32957 let Inst{31-21} = 0b00011001101;
32958 let hasNewValue = 1;
32959 let opNewValue = 0;
32960 let isAccumulator = 1;
32961 let DecoderNamespace = "EXT_mmvec";
32962 let Constraints = "$Vxx32 = $Vxx32in";
32963 }
32964 def V6_vmpabuu_acc_alt : HInst<
32965 (outs HvxWR:$Vxx32),
32966 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32967 "$Vxx32 += vmpabuu($Vuu32,$Rt32)",
32968 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32969 let hasNewValue = 1;
32970 let opNewValue = 0;
32971 let isAccumulator = 1;
32972 let isPseudo = 1;
32973 let isCodeGenOnly = 1;
32974 let DecoderNamespace = "EXT_mmvec";
32975 let Constraints = "$Vxx32 = $Vxx32in";
32976 }
32977 def V6_vmpabuu_alt : HInst<
32978 (outs HvxWR:$Vdd32),
32979 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
32980 "$Vdd32 = vmpabuu($Vuu32,$Rt32)",
32981 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32982 let hasNewValue = 1;
32983 let opNewValue = 0;
32984 let isPseudo = 1;
32985 let isCodeGenOnly = 1;
32986 let DecoderNamespace = "EXT_mmvec";
32987 }
32988 def V6_vmpabuuv : HInst<
32989 (outs HvxWR:$Vdd32),
32990 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32991 "$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
32992 tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
32993 let Inst{7-5} = 0b111;
32994 let Inst{13-13} = 0b0;
32995 let Inst{31-21} = 0b00011100111;
32996 let hasNewValue = 1;
32997 let opNewValue = 0;
32998 let DecoderNamespace = "EXT_mmvec";
32999 }
33000 def V6_vmpabuuv_alt : HInst<
33001 (outs HvxWR:$Vdd32),
33002 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33003 "$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
33004 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33005 let hasNewValue = 1;
33006 let opNewValue = 0;
33007 let isPseudo = 1;
33008 let isCodeGenOnly = 1;
33009 let DecoderNamespace = "EXT_mmvec";
33010 }
33011 def V6_vmpahb : HInst<
33012 (outs HvxWR:$Vdd32),
33013 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33014 "$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
33015 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33016 let Inst{7-5} = 0b111;
33017 let Inst{13-13} = 0b0;
33018 let Inst{31-21} = 0b00011001001;
33019 let hasNewValue = 1;
33020 let opNewValue = 0;
33021 let DecoderNamespace = "EXT_mmvec";
33022 }
33023 def V6_vmpahb_acc : HInst<
33024 (outs HvxWR:$Vxx32),
33025 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33026 "$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
33027 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33028 let Inst{7-5} = 0b111;
33029 let Inst{13-13} = 0b1;
33030 let Inst{31-21} = 0b00011001001;
33031 let hasNewValue = 1;
33032 let opNewValue = 0;
33033 let isAccumulator = 1;
33034 let DecoderNamespace = "EXT_mmvec";
33035 let Constraints = "$Vxx32 = $Vxx32in";
33036 }
33037 def V6_vmpahb_acc_alt : HInst<
33038 (outs HvxWR:$Vxx32),
33039 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33040 "$Vxx32 += vmpahb($Vuu32,$Rt32)",
33041 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33042 let hasNewValue = 1;
33043 let opNewValue = 0;
33044 let isAccumulator = 1;
33045 let isPseudo = 1;
33046 let isCodeGenOnly = 1;
33047 let DecoderNamespace = "EXT_mmvec";
33048 let Constraints = "$Vxx32 = $Vxx32in";
33049 }
33050 def V6_vmpahb_alt : HInst<
33051 (outs HvxWR:$Vdd32),
33052 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33053 "$Vdd32 = vmpahb($Vuu32,$Rt32)",
33054 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33055 let hasNewValue = 1;
33056 let opNewValue = 0;
33057 let isPseudo = 1;
33058 let isCodeGenOnly = 1;
33059 let DecoderNamespace = "EXT_mmvec";
33060 }
33061 def V6_vmpahhsat : HInst<
33062 (outs HvxVR:$Vx32),
33063 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33064 "$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
33065 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33066 let Inst{7-5} = 0b100;
33067 let Inst{13-13} = 0b1;
33068 let Inst{31-21} = 0b00011001100;
33069 let hasNewValue = 1;
33070 let opNewValue = 0;
33071 let DecoderNamespace = "EXT_mmvec";
33072 let Constraints = "$Vx32 = $Vx32in";
33073 }
33074 def V6_vmpauhb : HInst<
33075 (outs HvxWR:$Vdd32),
33076 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33077 "$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
33078 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
33079 let Inst{7-5} = 0b101;
33080 let Inst{13-13} = 0b0;
33081 let Inst{31-21} = 0b00011001100;
33082 let hasNewValue = 1;
33083 let opNewValue = 0;
33084 let DecoderNamespace = "EXT_mmvec";
33085 }
33086 def V6_vmpauhb_acc : HInst<
33087 (outs HvxWR:$Vxx32),
33088 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33089 "$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
33090 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
33091 let Inst{7-5} = 0b010;
33092 let Inst{13-13} = 0b1;
33093 let Inst{31-21} = 0b00011001100;
33094 let hasNewValue = 1;
33095 let opNewValue = 0;
33096 let isAccumulator = 1;
33097 let DecoderNamespace = "EXT_mmvec";
33098 let Constraints = "$Vxx32 = $Vxx32in";
33099 }
33100 def V6_vmpauhb_acc_alt : HInst<
33101 (outs HvxWR:$Vxx32),
33102 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33103 "$Vxx32 += vmpauhb($Vuu32,$Rt32)",
33104 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33105 let hasNewValue = 1;
33106 let opNewValue = 0;
33107 let isAccumulator = 1;
33108 let isPseudo = 1;
33109 let isCodeGenOnly = 1;
33110 let DecoderNamespace = "EXT_mmvec";
33111 let Constraints = "$Vxx32 = $Vxx32in";
33112 }
33113 def V6_vmpauhb_alt : HInst<
33114 (outs HvxWR:$Vdd32),
33115 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
33116 "$Vdd32 = vmpauhb($Vuu32,$Rt32)",
33117 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33118 let hasNewValue = 1;
33119 let opNewValue = 0;
33120 let isPseudo = 1;
33121 let isCodeGenOnly = 1;
33122 let DecoderNamespace = "EXT_mmvec";
33123 }
33124 def V6_vmpauhuhsat : HInst<
33125 (outs HvxVR:$Vx32),
33126 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33127 "$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
33128 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33129 let Inst{7-5} = 0b101;
33130 let Inst{13-13} = 0b1;
33131 let Inst{31-21} = 0b00011001100;
33132 let hasNewValue = 1;
33133 let opNewValue = 0;
33134 let DecoderNamespace = "EXT_mmvec";
33135 let Constraints = "$Vx32 = $Vx32in";
33136 }
33137 def V6_vmpsuhuhsat : HInst<
33138 (outs HvxVR:$Vx32),
33139 (ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33140 "$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
33141 tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33142 let Inst{7-5} = 0b110;
33143 let Inst{13-13} = 0b1;
33144 let Inst{31-21} = 0b00011001100;
33145 let hasNewValue = 1;
33146 let opNewValue = 0;
33147 let DecoderNamespace = "EXT_mmvec";
33148 let Constraints = "$Vx32 = $Vx32in";
33149 }
33150 def V6_vmpybus : HInst<
33151 (outs HvxWR:$Vdd32),
33152 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33153 "$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
33154 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
33155 let Inst{7-5} = 0b101;
33156 let Inst{13-13} = 0b0;
33157 let Inst{31-21} = 0b00011001001;
33158 let hasNewValue = 1;
33159 let opNewValue = 0;
33160 let DecoderNamespace = "EXT_mmvec";
33161 }
33162 def V6_vmpybus_acc : HInst<
33163 (outs HvxWR:$Vxx32),
33164 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33165 "$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
33166 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
33167 let Inst{7-5} = 0b101;
33168 let Inst{13-13} = 0b1;
33169 let Inst{31-21} = 0b00011001001;
33170 let hasNewValue = 1;
33171 let opNewValue = 0;
33172 let isAccumulator = 1;
33173 let DecoderNamespace = "EXT_mmvec";
33174 let Constraints = "$Vxx32 = $Vxx32in";
33175 }
33176 def V6_vmpybus_acc_alt : HInst<
33177 (outs HvxWR:$Vxx32),
33178 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33179 "$Vxx32 += vmpybus($Vu32,$Rt32)",
33180 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33181 let hasNewValue = 1;
33182 let opNewValue = 0;
33183 let isAccumulator = 1;
33184 let isPseudo = 1;
33185 let isCodeGenOnly = 1;
33186 let DecoderNamespace = "EXT_mmvec";
33187 let Constraints = "$Vxx32 = $Vxx32in";
33188 }
33189 def V6_vmpybus_alt : HInst<
33190 (outs HvxWR:$Vdd32),
33191 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33192 "$Vdd32 = vmpybus($Vu32,$Rt32)",
33193 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33194 let hasNewValue = 1;
33195 let opNewValue = 0;
33196 let isPseudo = 1;
33197 let isCodeGenOnly = 1;
33198 let DecoderNamespace = "EXT_mmvec";
33199 }
33200 def V6_vmpybusv : HInst<
33201 (outs HvxWR:$Vdd32),
33202 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33203 "$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
33204 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33205 let Inst{7-5} = 0b110;
33206 let Inst{13-13} = 0b0;
33207 let Inst{31-21} = 0b00011100000;
33208 let hasNewValue = 1;
33209 let opNewValue = 0;
33210 let DecoderNamespace = "EXT_mmvec";
33211 }
33212 def V6_vmpybusv_acc : HInst<
33213 (outs HvxWR:$Vxx32),
33214 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33215 "$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
33216 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33217 let Inst{7-5} = 0b110;
33218 let Inst{13-13} = 0b1;
33219 let Inst{31-21} = 0b00011100000;
33220 let hasNewValue = 1;
33221 let opNewValue = 0;
33222 let isAccumulator = 1;
33223 let DecoderNamespace = "EXT_mmvec";
33224 let Constraints = "$Vxx32 = $Vxx32in";
33225 }
33226 def V6_vmpybusv_acc_alt : HInst<
33227 (outs HvxWR:$Vxx32),
33228 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33229 "$Vxx32 += vmpybus($Vu32,$Vv32)",
33230 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33231 let hasNewValue = 1;
33232 let opNewValue = 0;
33233 let isAccumulator = 1;
33234 let isPseudo = 1;
33235 let isCodeGenOnly = 1;
33236 let DecoderNamespace = "EXT_mmvec";
33237 let Constraints = "$Vxx32 = $Vxx32in";
33238 }
33239 def V6_vmpybusv_alt : HInst<
33240 (outs HvxWR:$Vdd32),
33241 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33242 "$Vdd32 = vmpybus($Vu32,$Vv32)",
33243 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33244 let hasNewValue = 1;
33245 let opNewValue = 0;
33246 let isPseudo = 1;
33247 let isCodeGenOnly = 1;
33248 let DecoderNamespace = "EXT_mmvec";
33249 }
33250 def V6_vmpybv : HInst<
33251 (outs HvxWR:$Vdd32),
33252 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33253 "$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
33254 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33255 let Inst{7-5} = 0b100;
33256 let Inst{13-13} = 0b0;
33257 let Inst{31-21} = 0b00011100000;
33258 let hasNewValue = 1;
33259 let opNewValue = 0;
33260 let DecoderNamespace = "EXT_mmvec";
33261 }
33262 def V6_vmpybv_acc : HInst<
33263 (outs HvxWR:$Vxx32),
33264 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33265 "$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
33266 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33267 let Inst{7-5} = 0b100;
33268 let Inst{13-13} = 0b1;
33269 let Inst{31-21} = 0b00011100000;
33270 let hasNewValue = 1;
33271 let opNewValue = 0;
33272 let isAccumulator = 1;
33273 let DecoderNamespace = "EXT_mmvec";
33274 let Constraints = "$Vxx32 = $Vxx32in";
33275 }
33276 def V6_vmpybv_acc_alt : HInst<
33277 (outs HvxWR:$Vxx32),
33278 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33279 "$Vxx32 += vmpyb($Vu32,$Vv32)",
33280 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33281 let hasNewValue = 1;
33282 let opNewValue = 0;
33283 let isAccumulator = 1;
33284 let isPseudo = 1;
33285 let isCodeGenOnly = 1;
33286 let DecoderNamespace = "EXT_mmvec";
33287 let Constraints = "$Vxx32 = $Vxx32in";
33288 }
33289 def V6_vmpybv_alt : HInst<
33290 (outs HvxWR:$Vdd32),
33291 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33292 "$Vdd32 = vmpyb($Vu32,$Vv32)",
33293 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33294 let hasNewValue = 1;
33295 let opNewValue = 0;
33296 let isPseudo = 1;
33297 let isCodeGenOnly = 1;
33298 let DecoderNamespace = "EXT_mmvec";
33299 }
33300 def V6_vmpyewuh : HInst<
33301 (outs HvxVR:$Vd32),
33302 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33303 "$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
33304 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33305 let Inst{7-5} = 0b101;
33306 let Inst{13-13} = 0b0;
33307 let Inst{31-21} = 0b00011111111;
33308 let hasNewValue = 1;
33309 let opNewValue = 0;
33310 let DecoderNamespace = "EXT_mmvec";
33311 }
33312 def V6_vmpyewuh_64 : HInst<
33313 (outs HvxWR:$Vdd32),
33314 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33315 "$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
33316 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
33317 let Inst{7-5} = 0b110;
33318 let Inst{13-13} = 0b0;
33319 let Inst{31-21} = 0b00011110101;
33320 let hasNewValue = 1;
33321 let opNewValue = 0;
33322 let DecoderNamespace = "EXT_mmvec";
33323 }
33324 def V6_vmpyewuh_alt : HInst<
33325 (outs HvxVR:$Vd32),
33326 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33327 "$Vd32 = vmpyewuh($Vu32,$Vv32)",
33328 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33329 let hasNewValue = 1;
33330 let opNewValue = 0;
33331 let isPseudo = 1;
33332 let isCodeGenOnly = 1;
33333 let DecoderNamespace = "EXT_mmvec";
33334 }
33335 def V6_vmpyh : HInst<
33336 (outs HvxWR:$Vdd32),
33337 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33338 "$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
33339 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
33340 let Inst{7-5} = 0b000;
33341 let Inst{13-13} = 0b0;
33342 let Inst{31-21} = 0b00011001010;
33343 let hasNewValue = 1;
33344 let opNewValue = 0;
33345 let DecoderNamespace = "EXT_mmvec";
33346 }
33347 def V6_vmpyh_acc : HInst<
33348 (outs HvxWR:$Vxx32),
33349 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33350 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
33351 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
33352 let Inst{7-5} = 0b110;
33353 let Inst{13-13} = 0b1;
33354 let Inst{31-21} = 0b00011001101;
33355 let hasNewValue = 1;
33356 let opNewValue = 0;
33357 let isAccumulator = 1;
33358 let DecoderNamespace = "EXT_mmvec";
33359 let Constraints = "$Vxx32 = $Vxx32in";
33360 }
33361 def V6_vmpyh_acc_alt : HInst<
33362 (outs HvxWR:$Vxx32),
33363 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33364 "$Vxx32 += vmpyh($Vu32,$Rt32)",
33365 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
33366 let hasNewValue = 1;
33367 let opNewValue = 0;
33368 let isAccumulator = 1;
33369 let isPseudo = 1;
33370 let isCodeGenOnly = 1;
33371 let DecoderNamespace = "EXT_mmvec";
33372 let Constraints = "$Vxx32 = $Vxx32in";
33373 }
33374 def V6_vmpyh_alt : HInst<
33375 (outs HvxWR:$Vdd32),
33376 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33377 "$Vdd32 = vmpyh($Vu32,$Rt32)",
33378 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33379 let hasNewValue = 1;
33380 let opNewValue = 0;
33381 let isPseudo = 1;
33382 let isCodeGenOnly = 1;
33383 let DecoderNamespace = "EXT_mmvec";
33384 }
33385 def V6_vmpyhsat_acc : HInst<
33386 (outs HvxWR:$Vxx32),
33387 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33388 "$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
33389 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
33390 let Inst{7-5} = 0b000;
33391 let Inst{13-13} = 0b1;
33392 let Inst{31-21} = 0b00011001010;
33393 let hasNewValue = 1;
33394 let opNewValue = 0;
33395 let isAccumulator = 1;
33396 let DecoderNamespace = "EXT_mmvec";
33397 let Constraints = "$Vxx32 = $Vxx32in";
33398 }
33399 def V6_vmpyhsat_acc_alt : HInst<
33400 (outs HvxWR:$Vxx32),
33401 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33402 "$Vxx32 += vmpyh($Vu32,$Rt32):sat",
33403 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33404 let hasNewValue = 1;
33405 let opNewValue = 0;
33406 let isAccumulator = 1;
33407 let isPseudo = 1;
33408 let isCodeGenOnly = 1;
33409 let DecoderNamespace = "EXT_mmvec";
33410 let Constraints = "$Vxx32 = $Vxx32in";
33411 }
33412 def V6_vmpyhsrs : HInst<
33413 (outs HvxVR:$Vd32),
33414 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33415 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
33416 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33417 let Inst{7-5} = 0b010;
33418 let Inst{13-13} = 0b0;
33419 let Inst{31-21} = 0b00011001010;
33420 let hasNewValue = 1;
33421 let opNewValue = 0;
33422 let DecoderNamespace = "EXT_mmvec";
33423 }
33424 def V6_vmpyhsrs_alt : HInst<
33425 (outs HvxVR:$Vd32),
33426 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33427 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
33428 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33429 let hasNewValue = 1;
33430 let opNewValue = 0;
33431 let isPseudo = 1;
33432 let isCodeGenOnly = 1;
33433 let DecoderNamespace = "EXT_mmvec";
33434 }
33435 def V6_vmpyhss : HInst<
33436 (outs HvxVR:$Vd32),
33437 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33438 "$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
33439 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33440 let Inst{7-5} = 0b001;
33441 let Inst{13-13} = 0b0;
33442 let Inst{31-21} = 0b00011001010;
33443 let hasNewValue = 1;
33444 let opNewValue = 0;
33445 let DecoderNamespace = "EXT_mmvec";
33446 }
33447 def V6_vmpyhss_alt : HInst<
33448 (outs HvxVR:$Vd32),
33449 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33450 "$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
33451 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33452 let hasNewValue = 1;
33453 let opNewValue = 0;
33454 let isPseudo = 1;
33455 let isCodeGenOnly = 1;
33456 let DecoderNamespace = "EXT_mmvec";
33457 }
33458 def V6_vmpyhus : HInst<
33459 (outs HvxWR:$Vdd32),
33460 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33461 "$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
33462 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33463 let Inst{7-5} = 0b010;
33464 let Inst{13-13} = 0b0;
33465 let Inst{31-21} = 0b00011100001;
33466 let hasNewValue = 1;
33467 let opNewValue = 0;
33468 let DecoderNamespace = "EXT_mmvec";
33469 }
33470 def V6_vmpyhus_acc : HInst<
33471 (outs HvxWR:$Vxx32),
33472 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33473 "$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
33474 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33475 let Inst{7-5} = 0b001;
33476 let Inst{13-13} = 0b1;
33477 let Inst{31-21} = 0b00011100001;
33478 let hasNewValue = 1;
33479 let opNewValue = 0;
33480 let isAccumulator = 1;
33481 let DecoderNamespace = "EXT_mmvec";
33482 let Constraints = "$Vxx32 = $Vxx32in";
33483 }
33484 def V6_vmpyhus_acc_alt : HInst<
33485 (outs HvxWR:$Vxx32),
33486 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33487 "$Vxx32 += vmpyhus($Vu32,$Vv32)",
33488 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33489 let hasNewValue = 1;
33490 let opNewValue = 0;
33491 let isAccumulator = 1;
33492 let isPseudo = 1;
33493 let isCodeGenOnly = 1;
33494 let DecoderNamespace = "EXT_mmvec";
33495 let Constraints = "$Vxx32 = $Vxx32in";
33496 }
33497 def V6_vmpyhus_alt : HInst<
33498 (outs HvxWR:$Vdd32),
33499 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33500 "$Vdd32 = vmpyhus($Vu32,$Vv32)",
33501 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33502 let hasNewValue = 1;
33503 let opNewValue = 0;
33504 let isPseudo = 1;
33505 let isCodeGenOnly = 1;
33506 let DecoderNamespace = "EXT_mmvec";
33507 }
33508 def V6_vmpyhv : HInst<
33509 (outs HvxWR:$Vdd32),
33510 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33511 "$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
33512 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33513 let Inst{7-5} = 0b111;
33514 let Inst{13-13} = 0b0;
33515 let Inst{31-21} = 0b00011100000;
33516 let hasNewValue = 1;
33517 let opNewValue = 0;
33518 let DecoderNamespace = "EXT_mmvec";
33519 }
33520 def V6_vmpyhv_acc : HInst<
33521 (outs HvxWR:$Vxx32),
33522 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33523 "$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
33524 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33525 let Inst{7-5} = 0b111;
33526 let Inst{13-13} = 0b1;
33527 let Inst{31-21} = 0b00011100000;
33528 let hasNewValue = 1;
33529 let opNewValue = 0;
33530 let isAccumulator = 1;
33531 let DecoderNamespace = "EXT_mmvec";
33532 let Constraints = "$Vxx32 = $Vxx32in";
33533 }
33534 def V6_vmpyhv_acc_alt : HInst<
33535 (outs HvxWR:$Vxx32),
33536 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33537 "$Vxx32 += vmpyh($Vu32,$Vv32)",
33538 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33539 let hasNewValue = 1;
33540 let opNewValue = 0;
33541 let isAccumulator = 1;
33542 let isPseudo = 1;
33543 let isCodeGenOnly = 1;
33544 let DecoderNamespace = "EXT_mmvec";
33545 let Constraints = "$Vxx32 = $Vxx32in";
33546 }
33547 def V6_vmpyhv_alt : HInst<
33548 (outs HvxWR:$Vdd32),
33549 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33550 "$Vdd32 = vmpyh($Vu32,$Vv32)",
33551 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33552 let hasNewValue = 1;
33553 let opNewValue = 0;
33554 let isPseudo = 1;
33555 let isCodeGenOnly = 1;
33556 let DecoderNamespace = "EXT_mmvec";
33557 }
33558 def V6_vmpyhvsrs : HInst<
33559 (outs HvxVR:$Vd32),
33560 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33561 "$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
33562 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33563 let Inst{7-5} = 0b001;
33564 let Inst{13-13} = 0b0;
33565 let Inst{31-21} = 0b00011100001;
33566 let hasNewValue = 1;
33567 let opNewValue = 0;
33568 let DecoderNamespace = "EXT_mmvec";
33569 }
33570 def V6_vmpyhvsrs_alt : HInst<
33571 (outs HvxVR:$Vd32),
33572 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33573 "$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
33574 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33575 let hasNewValue = 1;
33576 let opNewValue = 0;
33577 let isPseudo = 1;
33578 let isCodeGenOnly = 1;
33579 let DecoderNamespace = "EXT_mmvec";
33580 }
33581 def V6_vmpyieoh : HInst<
33582 (outs HvxVR:$Vd32),
33583 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33584 "$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
33585 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
33586 let Inst{7-5} = 0b000;
33587 let Inst{13-13} = 0b0;
33588 let Inst{31-21} = 0b00011111011;
33589 let hasNewValue = 1;
33590 let opNewValue = 0;
33591 let DecoderNamespace = "EXT_mmvec";
33592 }
33593 def V6_vmpyiewh_acc : HInst<
33594 (outs HvxVR:$Vx32),
33595 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33596 "$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
33597 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33598 let Inst{7-5} = 0b000;
33599 let Inst{13-13} = 0b1;
33600 let Inst{31-21} = 0b00011100010;
33601 let hasNewValue = 1;
33602 let opNewValue = 0;
33603 let isAccumulator = 1;
33604 let DecoderNamespace = "EXT_mmvec";
33605 let Constraints = "$Vx32 = $Vx32in";
33606 }
33607 def V6_vmpyiewh_acc_alt : HInst<
33608 (outs HvxVR:$Vx32),
33609 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33610 "$Vx32 += vmpyiewh($Vu32,$Vv32)",
33611 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33612 let hasNewValue = 1;
33613 let opNewValue = 0;
33614 let isAccumulator = 1;
33615 let isPseudo = 1;
33616 let isCodeGenOnly = 1;
33617 let DecoderNamespace = "EXT_mmvec";
33618 let Constraints = "$Vx32 = $Vx32in";
33619 }
33620 def V6_vmpyiewuh : HInst<
33621 (outs HvxVR:$Vd32),
33622 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33623 "$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
33624 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33625 let Inst{7-5} = 0b000;
33626 let Inst{13-13} = 0b0;
33627 let Inst{31-21} = 0b00011111110;
33628 let hasNewValue = 1;
33629 let opNewValue = 0;
33630 let DecoderNamespace = "EXT_mmvec";
33631 }
33632 def V6_vmpyiewuh_acc : HInst<
33633 (outs HvxVR:$Vx32),
33634 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33635 "$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
33636 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33637 let Inst{7-5} = 0b101;
33638 let Inst{13-13} = 0b1;
33639 let Inst{31-21} = 0b00011100001;
33640 let hasNewValue = 1;
33641 let opNewValue = 0;
33642 let isAccumulator = 1;
33643 let DecoderNamespace = "EXT_mmvec";
33644 let Constraints = "$Vx32 = $Vx32in";
33645 }
33646 def V6_vmpyiewuh_acc_alt : HInst<
33647 (outs HvxVR:$Vx32),
33648 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33649 "$Vx32 += vmpyiewuh($Vu32,$Vv32)",
33650 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33651 let hasNewValue = 1;
33652 let opNewValue = 0;
33653 let isAccumulator = 1;
33654 let isPseudo = 1;
33655 let isCodeGenOnly = 1;
33656 let DecoderNamespace = "EXT_mmvec";
33657 let Constraints = "$Vx32 = $Vx32in";
33658 }
33659 def V6_vmpyiewuh_alt : HInst<
33660 (outs HvxVR:$Vd32),
33661 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33662 "$Vd32 = vmpyiewuh($Vu32,$Vv32)",
33663 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33664 let hasNewValue = 1;
33665 let opNewValue = 0;
33666 let isPseudo = 1;
33667 let isCodeGenOnly = 1;
33668 let DecoderNamespace = "EXT_mmvec";
33669 }
33670 def V6_vmpyih : HInst<
33671 (outs HvxVR:$Vd32),
33672 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33673 "$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
33674 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33675 let Inst{7-5} = 0b100;
33676 let Inst{13-13} = 0b0;
33677 let Inst{31-21} = 0b00011100001;
33678 let hasNewValue = 1;
33679 let opNewValue = 0;
33680 let DecoderNamespace = "EXT_mmvec";
33681 }
33682 def V6_vmpyih_acc : HInst<
33683 (outs HvxVR:$Vx32),
33684 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33685 "$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
33686 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33687 let Inst{7-5} = 0b100;
33688 let Inst{13-13} = 0b1;
33689 let Inst{31-21} = 0b00011100001;
33690 let hasNewValue = 1;
33691 let opNewValue = 0;
33692 let isAccumulator = 1;
33693 let DecoderNamespace = "EXT_mmvec";
33694 let Constraints = "$Vx32 = $Vx32in";
33695 }
33696 def V6_vmpyih_acc_alt : HInst<
33697 (outs HvxVR:$Vx32),
33698 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33699 "$Vx32 += vmpyih($Vu32,$Vv32)",
33700 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33701 let hasNewValue = 1;
33702 let opNewValue = 0;
33703 let isAccumulator = 1;
33704 let isPseudo = 1;
33705 let isCodeGenOnly = 1;
33706 let DecoderNamespace = "EXT_mmvec";
33707 let Constraints = "$Vx32 = $Vx32in";
33708 }
33709 def V6_vmpyih_alt : HInst<
33710 (outs HvxVR:$Vd32),
33711 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33712 "$Vd32 = vmpyih($Vu32,$Vv32)",
33713 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33714 let hasNewValue = 1;
33715 let opNewValue = 0;
33716 let isPseudo = 1;
33717 let isCodeGenOnly = 1;
33718 let DecoderNamespace = "EXT_mmvec";
33719 }
33720 def V6_vmpyihb : HInst<
33721 (outs HvxVR:$Vd32),
33722 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33723 "$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
33724 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33725 let Inst{7-5} = 0b000;
33726 let Inst{13-13} = 0b0;
33727 let Inst{31-21} = 0b00011001011;
33728 let hasNewValue = 1;
33729 let opNewValue = 0;
33730 let DecoderNamespace = "EXT_mmvec";
33731 }
33732 def V6_vmpyihb_acc : HInst<
33733 (outs HvxVR:$Vx32),
33734 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33735 "$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
33736 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33737 let Inst{7-5} = 0b001;
33738 let Inst{13-13} = 0b1;
33739 let Inst{31-21} = 0b00011001011;
33740 let hasNewValue = 1;
33741 let opNewValue = 0;
33742 let isAccumulator = 1;
33743 let DecoderNamespace = "EXT_mmvec";
33744 let Constraints = "$Vx32 = $Vx32in";
33745 }
33746 def V6_vmpyihb_acc_alt : HInst<
33747 (outs HvxVR:$Vx32),
33748 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33749 "$Vx32 += vmpyihb($Vu32,$Rt32)",
33750 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33751 let hasNewValue = 1;
33752 let opNewValue = 0;
33753 let isAccumulator = 1;
33754 let isPseudo = 1;
33755 let isCodeGenOnly = 1;
33756 let DecoderNamespace = "EXT_mmvec";
33757 let Constraints = "$Vx32 = $Vx32in";
33758 }
33759 def V6_vmpyihb_alt : HInst<
33760 (outs HvxVR:$Vd32),
33761 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33762 "$Vd32 = vmpyihb($Vu32,$Rt32)",
33763 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33764 let hasNewValue = 1;
33765 let opNewValue = 0;
33766 let isPseudo = 1;
33767 let isCodeGenOnly = 1;
33768 let DecoderNamespace = "EXT_mmvec";
33769 }
33770 def V6_vmpyiowh : HInst<
33771 (outs HvxVR:$Vd32),
33772 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33773 "$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
33774 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33775 let Inst{7-5} = 0b001;
33776 let Inst{13-13} = 0b0;
33777 let Inst{31-21} = 0b00011111110;
33778 let hasNewValue = 1;
33779 let opNewValue = 0;
33780 let DecoderNamespace = "EXT_mmvec";
33781 }
33782 def V6_vmpyiowh_alt : HInst<
33783 (outs HvxVR:$Vd32),
33784 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33785 "$Vd32 = vmpyiowh($Vu32,$Vv32)",
33786 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33787 let hasNewValue = 1;
33788 let opNewValue = 0;
33789 let isPseudo = 1;
33790 let isCodeGenOnly = 1;
33791 let DecoderNamespace = "EXT_mmvec";
33792 }
33793 def V6_vmpyiwb : HInst<
33794 (outs HvxVR:$Vd32),
33795 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33796 "$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
33797 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33798 let Inst{7-5} = 0b000;
33799 let Inst{13-13} = 0b0;
33800 let Inst{31-21} = 0b00011001101;
33801 let hasNewValue = 1;
33802 let opNewValue = 0;
33803 let DecoderNamespace = "EXT_mmvec";
33804 }
33805 def V6_vmpyiwb_acc : HInst<
33806 (outs HvxVR:$Vx32),
33807 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33808 "$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
33809 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33810 let Inst{7-5} = 0b010;
33811 let Inst{13-13} = 0b1;
33812 let Inst{31-21} = 0b00011001010;
33813 let hasNewValue = 1;
33814 let opNewValue = 0;
33815 let isAccumulator = 1;
33816 let DecoderNamespace = "EXT_mmvec";
33817 let Constraints = "$Vx32 = $Vx32in";
33818 }
33819 def V6_vmpyiwb_acc_alt : HInst<
33820 (outs HvxVR:$Vx32),
33821 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33822 "$Vx32 += vmpyiwb($Vu32,$Rt32)",
33823 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33824 let hasNewValue = 1;
33825 let opNewValue = 0;
33826 let isAccumulator = 1;
33827 let isPseudo = 1;
33828 let isCodeGenOnly = 1;
33829 let DecoderNamespace = "EXT_mmvec";
33830 let Constraints = "$Vx32 = $Vx32in";
33831 }
33832 def V6_vmpyiwb_alt : HInst<
33833 (outs HvxVR:$Vd32),
33834 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33835 "$Vd32 = vmpyiwb($Vu32,$Rt32)",
33836 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33837 let hasNewValue = 1;
33838 let opNewValue = 0;
33839 let isPseudo = 1;
33840 let isCodeGenOnly = 1;
33841 let DecoderNamespace = "EXT_mmvec";
33842 }
33843 def V6_vmpyiwh : HInst<
33844 (outs HvxVR:$Vd32),
33845 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33846 "$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
33847 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33848 let Inst{7-5} = 0b111;
33849 let Inst{13-13} = 0b0;
33850 let Inst{31-21} = 0b00011001100;
33851 let hasNewValue = 1;
33852 let opNewValue = 0;
33853 let DecoderNamespace = "EXT_mmvec";
33854 }
33855 def V6_vmpyiwh_acc : HInst<
33856 (outs HvxVR:$Vx32),
33857 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33858 "$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
33859 tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
33860 let Inst{7-5} = 0b011;
33861 let Inst{13-13} = 0b1;
33862 let Inst{31-21} = 0b00011001010;
33863 let hasNewValue = 1;
33864 let opNewValue = 0;
33865 let isAccumulator = 1;
33866 let DecoderNamespace = "EXT_mmvec";
33867 let Constraints = "$Vx32 = $Vx32in";
33868 }
33869 def V6_vmpyiwh_acc_alt : HInst<
33870 (outs HvxVR:$Vx32),
33871 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33872 "$Vx32 += vmpyiwh($Vu32,$Rt32)",
33873 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33874 let hasNewValue = 1;
33875 let opNewValue = 0;
33876 let isAccumulator = 1;
33877 let isPseudo = 1;
33878 let isCodeGenOnly = 1;
33879 let DecoderNamespace = "EXT_mmvec";
33880 let Constraints = "$Vx32 = $Vx32in";
33881 }
33882 def V6_vmpyiwh_alt : HInst<
33883 (outs HvxVR:$Vd32),
33884 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33885 "$Vd32 = vmpyiwh($Vu32,$Rt32)",
33886 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33887 let hasNewValue = 1;
33888 let opNewValue = 0;
33889 let isPseudo = 1;
33890 let isCodeGenOnly = 1;
33891 let DecoderNamespace = "EXT_mmvec";
33892 }
33893 def V6_vmpyiwub : HInst<
33894 (outs HvxVR:$Vd32),
33895 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33896 "$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
33897 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
33898 let Inst{7-5} = 0b110;
33899 let Inst{13-13} = 0b0;
33900 let Inst{31-21} = 0b00011001100;
33901 let hasNewValue = 1;
33902 let opNewValue = 0;
33903 let DecoderNamespace = "EXT_mmvec";
33904 }
33905 def V6_vmpyiwub_acc : HInst<
33906 (outs HvxVR:$Vx32),
33907 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33908 "$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
33909 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
33910 let Inst{7-5} = 0b001;
33911 let Inst{13-13} = 0b1;
33912 let Inst{31-21} = 0b00011001100;
33913 let hasNewValue = 1;
33914 let opNewValue = 0;
33915 let isAccumulator = 1;
33916 let DecoderNamespace = "EXT_mmvec";
33917 let Constraints = "$Vx32 = $Vx32in";
33918 }
33919 def V6_vmpyiwub_acc_alt : HInst<
33920 (outs HvxVR:$Vx32),
33921 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33922 "$Vx32 += vmpyiwub($Vu32,$Rt32)",
33923 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33924 let hasNewValue = 1;
33925 let opNewValue = 0;
33926 let isAccumulator = 1;
33927 let isPseudo = 1;
33928 let isCodeGenOnly = 1;
33929 let DecoderNamespace = "EXT_mmvec";
33930 let Constraints = "$Vx32 = $Vx32in";
33931 }
33932 def V6_vmpyiwub_alt : HInst<
33933 (outs HvxVR:$Vd32),
33934 (ins HvxVR:$Vu32, IntRegs:$Rt32),
33935 "$Vd32 = vmpyiwub($Vu32,$Rt32)",
33936 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33937 let hasNewValue = 1;
33938 let opNewValue = 0;
33939 let isPseudo = 1;
33940 let isCodeGenOnly = 1;
33941 let DecoderNamespace = "EXT_mmvec";
33942 }
33943 def V6_vmpyowh : HInst<
33944 (outs HvxVR:$Vd32),
33945 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33946 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
33947 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33948 let Inst{7-5} = 0b111;
33949 let Inst{13-13} = 0b0;
33950 let Inst{31-21} = 0b00011111111;
33951 let hasNewValue = 1;
33952 let opNewValue = 0;
33953 let DecoderNamespace = "EXT_mmvec";
33954 }
33955 def V6_vmpyowh_64_acc : HInst<
33956 (outs HvxWR:$Vxx32),
33957 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33958 "$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
33959 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
33960 let Inst{7-5} = 0b011;
33961 let Inst{13-13} = 0b1;
33962 let Inst{31-21} = 0b00011100001;
33963 let hasNewValue = 1;
33964 let opNewValue = 0;
33965 let isAccumulator = 1;
33966 let DecoderNamespace = "EXT_mmvec";
33967 let Constraints = "$Vxx32 = $Vxx32in";
33968 }
33969 def V6_vmpyowh_alt : HInst<
33970 (outs HvxVR:$Vd32),
33971 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33972 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
33973 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33974 let hasNewValue = 1;
33975 let opNewValue = 0;
33976 let isPseudo = 1;
33977 let isCodeGenOnly = 1;
33978 let DecoderNamespace = "EXT_mmvec";
33979 }
33980 def V6_vmpyowh_rnd : HInst<
33981 (outs HvxVR:$Vd32),
33982 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33983 "$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
33984 tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33985 let Inst{7-5} = 0b000;
33986 let Inst{13-13} = 0b0;
33987 let Inst{31-21} = 0b00011111010;
33988 let hasNewValue = 1;
33989 let opNewValue = 0;
33990 let DecoderNamespace = "EXT_mmvec";
33991 }
33992 def V6_vmpyowh_rnd_alt : HInst<
33993 (outs HvxVR:$Vd32),
33994 (ins HvxVR:$Vu32, HvxVR:$Vv32),
33995 "$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
33996 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33997 let hasNewValue = 1;
33998 let opNewValue = 0;
33999 let isPseudo = 1;
34000 let isCodeGenOnly = 1;
34001 let DecoderNamespace = "EXT_mmvec";
34002 }
34003 def V6_vmpyowh_rnd_sacc : HInst<
34004 (outs HvxVR:$Vx32),
34005 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34006 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
34007 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34008 let Inst{7-5} = 0b111;
34009 let Inst{13-13} = 0b1;
34010 let Inst{31-21} = 0b00011100001;
34011 let hasNewValue = 1;
34012 let opNewValue = 0;
34013 let isAccumulator = 1;
34014 let DecoderNamespace = "EXT_mmvec";
34015 let Constraints = "$Vx32 = $Vx32in";
34016 }
34017 def V6_vmpyowh_rnd_sacc_alt : HInst<
34018 (outs HvxVR:$Vx32),
34019 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34020 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
34021 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34022 let hasNewValue = 1;
34023 let opNewValue = 0;
34024 let isAccumulator = 1;
34025 let isPseudo = 1;
34026 let DecoderNamespace = "EXT_mmvec";
34027 let Constraints = "$Vx32 = $Vx32in";
34028 }
34029 def V6_vmpyowh_sacc : HInst<
34030 (outs HvxVR:$Vx32),
34031 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34032 "$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
34033 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34034 let Inst{7-5} = 0b110;
34035 let Inst{13-13} = 0b1;
34036 let Inst{31-21} = 0b00011100001;
34037 let hasNewValue = 1;
34038 let opNewValue = 0;
34039 let isAccumulator = 1;
34040 let DecoderNamespace = "EXT_mmvec";
34041 let Constraints = "$Vx32 = $Vx32in";
34042 }
34043 def V6_vmpyowh_sacc_alt : HInst<
34044 (outs HvxVR:$Vx32),
34045 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34046 "$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
34047 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34048 let hasNewValue = 1;
34049 let opNewValue = 0;
34050 let isAccumulator = 1;
34051 let isPseudo = 1;
34052 let DecoderNamespace = "EXT_mmvec";
34053 let Constraints = "$Vx32 = $Vx32in";
34054 }
34055 def V6_vmpyub : HInst<
34056 (outs HvxWR:$Vdd32),
34057 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34058 "$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
34059 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34060 let Inst{7-5} = 0b000;
34061 let Inst{13-13} = 0b0;
34062 let Inst{31-21} = 0b00011001110;
34063 let hasNewValue = 1;
34064 let opNewValue = 0;
34065 let DecoderNamespace = "EXT_mmvec";
34066 }
34067 def V6_vmpyub_acc : HInst<
34068 (outs HvxWR:$Vxx32),
34069 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34070 "$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
34071 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34072 let Inst{7-5} = 0b000;
34073 let Inst{13-13} = 0b1;
34074 let Inst{31-21} = 0b00011001100;
34075 let hasNewValue = 1;
34076 let opNewValue = 0;
34077 let isAccumulator = 1;
34078 let DecoderNamespace = "EXT_mmvec";
34079 let Constraints = "$Vxx32 = $Vxx32in";
34080 }
34081 def V6_vmpyub_acc_alt : HInst<
34082 (outs HvxWR:$Vxx32),
34083 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34084 "$Vxx32 += vmpyub($Vu32,$Rt32)",
34085 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34086 let hasNewValue = 1;
34087 let opNewValue = 0;
34088 let isAccumulator = 1;
34089 let isPseudo = 1;
34090 let isCodeGenOnly = 1;
34091 let DecoderNamespace = "EXT_mmvec";
34092 let Constraints = "$Vxx32 = $Vxx32in";
34093 }
34094 def V6_vmpyub_alt : HInst<
34095 (outs HvxWR:$Vdd32),
34096 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34097 "$Vdd32 = vmpyub($Vu32,$Rt32)",
34098 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34099 let hasNewValue = 1;
34100 let opNewValue = 0;
34101 let isPseudo = 1;
34102 let isCodeGenOnly = 1;
34103 let DecoderNamespace = "EXT_mmvec";
34104 }
34105 def V6_vmpyubv : HInst<
34106 (outs HvxWR:$Vdd32),
34107 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34108 "$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
34109 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34110 let Inst{7-5} = 0b101;
34111 let Inst{13-13} = 0b0;
34112 let Inst{31-21} = 0b00011100000;
34113 let hasNewValue = 1;
34114 let opNewValue = 0;
34115 let DecoderNamespace = "EXT_mmvec";
34116 }
34117 def V6_vmpyubv_acc : HInst<
34118 (outs HvxWR:$Vxx32),
34119 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34120 "$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
34121 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34122 let Inst{7-5} = 0b101;
34123 let Inst{13-13} = 0b1;
34124 let Inst{31-21} = 0b00011100000;
34125 let hasNewValue = 1;
34126 let opNewValue = 0;
34127 let isAccumulator = 1;
34128 let DecoderNamespace = "EXT_mmvec";
34129 let Constraints = "$Vxx32 = $Vxx32in";
34130 }
34131 def V6_vmpyubv_acc_alt : HInst<
34132 (outs HvxWR:$Vxx32),
34133 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34134 "$Vxx32 += vmpyub($Vu32,$Vv32)",
34135 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34136 let hasNewValue = 1;
34137 let opNewValue = 0;
34138 let isAccumulator = 1;
34139 let isPseudo = 1;
34140 let isCodeGenOnly = 1;
34141 let DecoderNamespace = "EXT_mmvec";
34142 let Constraints = "$Vxx32 = $Vxx32in";
34143 }
34144 def V6_vmpyubv_alt : HInst<
34145 (outs HvxWR:$Vdd32),
34146 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34147 "$Vdd32 = vmpyub($Vu32,$Vv32)",
34148 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34149 let hasNewValue = 1;
34150 let opNewValue = 0;
34151 let isPseudo = 1;
34152 let isCodeGenOnly = 1;
34153 let DecoderNamespace = "EXT_mmvec";
34154 }
34155 def V6_vmpyuh : HInst<
34156 (outs HvxWR:$Vdd32),
34157 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34158 "$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
34159 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34160 let Inst{7-5} = 0b011;
34161 let Inst{13-13} = 0b0;
34162 let Inst{31-21} = 0b00011001010;
34163 let hasNewValue = 1;
34164 let opNewValue = 0;
34165 let DecoderNamespace = "EXT_mmvec";
34166 }
34167 def V6_vmpyuh_acc : HInst<
34168 (outs HvxWR:$Vxx32),
34169 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34170 "$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
34171 tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34172 let Inst{7-5} = 0b001;
34173 let Inst{13-13} = 0b1;
34174 let Inst{31-21} = 0b00011001010;
34175 let hasNewValue = 1;
34176 let opNewValue = 0;
34177 let isAccumulator = 1;
34178 let DecoderNamespace = "EXT_mmvec";
34179 let Constraints = "$Vxx32 = $Vxx32in";
34180 }
34181 def V6_vmpyuh_acc_alt : HInst<
34182 (outs HvxWR:$Vxx32),
34183 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34184 "$Vxx32 += vmpyuh($Vu32,$Rt32)",
34185 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34186 let hasNewValue = 1;
34187 let opNewValue = 0;
34188 let isAccumulator = 1;
34189 let isPseudo = 1;
34190 let isCodeGenOnly = 1;
34191 let DecoderNamespace = "EXT_mmvec";
34192 let Constraints = "$Vxx32 = $Vxx32in";
34193 }
34194 def V6_vmpyuh_alt : HInst<
34195 (outs HvxWR:$Vdd32),
34196 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34197 "$Vdd32 = vmpyuh($Vu32,$Rt32)",
34198 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34199 let hasNewValue = 1;
34200 let opNewValue = 0;
34201 let isPseudo = 1;
34202 let isCodeGenOnly = 1;
34203 let DecoderNamespace = "EXT_mmvec";
34204 }
34205 def V6_vmpyuhe : HInst<
34206 (outs HvxVR:$Vd32),
34207 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34208 "$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
34209 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
34210 let Inst{7-5} = 0b010;
34211 let Inst{13-13} = 0b0;
34212 let Inst{31-21} = 0b00011001011;
34213 let hasNewValue = 1;
34214 let opNewValue = 0;
34215 let DecoderNamespace = "EXT_mmvec";
34216 }
34217 def V6_vmpyuhe_acc : HInst<
34218 (outs HvxVR:$Vx32),
34219 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34220 "$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
34221 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
34222 let Inst{7-5} = 0b011;
34223 let Inst{13-13} = 0b1;
34224 let Inst{31-21} = 0b00011001100;
34225 let hasNewValue = 1;
34226 let opNewValue = 0;
34227 let isAccumulator = 1;
34228 let DecoderNamespace = "EXT_mmvec";
34229 let Constraints = "$Vx32 = $Vx32in";
34230 }
34231 def V6_vmpyuhv : HInst<
34232 (outs HvxWR:$Vdd32),
34233 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34234 "$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
34235 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34236 let Inst{7-5} = 0b000;
34237 let Inst{13-13} = 0b0;
34238 let Inst{31-21} = 0b00011100001;
34239 let hasNewValue = 1;
34240 let opNewValue = 0;
34241 let DecoderNamespace = "EXT_mmvec";
34242 }
34243 def V6_vmpyuhv_acc : HInst<
34244 (outs HvxWR:$Vxx32),
34245 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34246 "$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
34247 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34248 let Inst{7-5} = 0b000;
34249 let Inst{13-13} = 0b1;
34250 let Inst{31-21} = 0b00011100001;
34251 let hasNewValue = 1;
34252 let opNewValue = 0;
34253 let isAccumulator = 1;
34254 let DecoderNamespace = "EXT_mmvec";
34255 let Constraints = "$Vxx32 = $Vxx32in";
34256 }
34257 def V6_vmpyuhv_acc_alt : HInst<
34258 (outs HvxWR:$Vxx32),
34259 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34260 "$Vxx32 += vmpyuh($Vu32,$Vv32)",
34261 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34262 let hasNewValue = 1;
34263 let opNewValue = 0;
34264 let isAccumulator = 1;
34265 let isPseudo = 1;
34266 let isCodeGenOnly = 1;
34267 let DecoderNamespace = "EXT_mmvec";
34268 let Constraints = "$Vxx32 = $Vxx32in";
34269 }
34270 def V6_vmpyuhv_alt : HInst<
34271 (outs HvxWR:$Vdd32),
34272 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34273 "$Vdd32 = vmpyuh($Vu32,$Vv32)",
34274 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34275 let hasNewValue = 1;
34276 let opNewValue = 0;
34277 let isPseudo = 1;
34278 let isCodeGenOnly = 1;
34279 let DecoderNamespace = "EXT_mmvec";
34280 }
34281 def V6_vmux : HInst<
34282 (outs HvxVR:$Vd32),
34283 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
34284 "$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
34285 tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
34286 let Inst{7-7} = 0b0;
34287 let Inst{13-13} = 0b1;
34288 let Inst{31-21} = 0b00011110111;
34289 let hasNewValue = 1;
34290 let opNewValue = 0;
34291 let DecoderNamespace = "EXT_mmvec";
34292 }
34293 def V6_vnavgb : HInst<
34294 (outs HvxVR:$Vd32),
34295 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34296 "$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
34297 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
34298 let Inst{7-5} = 0b110;
34299 let Inst{13-13} = 0b1;
34300 let Inst{31-21} = 0b00011111000;
34301 let hasNewValue = 1;
34302 let opNewValue = 0;
34303 let DecoderNamespace = "EXT_mmvec";
34304 }
34305 def V6_vnavgb_alt : HInst<
34306 (outs HvxVR:$Vd32),
34307 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34308 "$Vd32 = vnavgb($Vu32,$Vv32)",
34309 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34310 let hasNewValue = 1;
34311 let opNewValue = 0;
34312 let isPseudo = 1;
34313 let isCodeGenOnly = 1;
34314 let DecoderNamespace = "EXT_mmvec";
34315 }
34316 def V6_vnavgh : HInst<
34317 (outs HvxVR:$Vd32),
34318 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34319 "$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
34320 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34321 let Inst{7-5} = 0b001;
34322 let Inst{13-13} = 0b0;
34323 let Inst{31-21} = 0b00011100111;
34324 let hasNewValue = 1;
34325 let opNewValue = 0;
34326 let DecoderNamespace = "EXT_mmvec";
34327 }
34328 def V6_vnavgh_alt : HInst<
34329 (outs HvxVR:$Vd32),
34330 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34331 "$Vd32 = vnavgh($Vu32,$Vv32)",
34332 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
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_vnavgub : HInst<
34340 (outs HvxVR:$Vd32),
34341 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34342 "$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
34343 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34344 let Inst{7-5} = 0b000;
34345 let Inst{13-13} = 0b0;
34346 let Inst{31-21} = 0b00011100111;
34347 let hasNewValue = 1;
34348 let opNewValue = 0;
34349 let DecoderNamespace = "EXT_mmvec";
34350 }
34351 def V6_vnavgub_alt : HInst<
34352 (outs HvxVR:$Vd32),
34353 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34354 "$Vd32 = vnavgub($Vu32,$Vv32)",
34355 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34356 let hasNewValue = 1;
34357 let opNewValue = 0;
34358 let isPseudo = 1;
34359 let isCodeGenOnly = 1;
34360 let DecoderNamespace = "EXT_mmvec";
34361 }
34362 def V6_vnavgw : HInst<
34363 (outs HvxVR:$Vd32),
34364 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34365 "$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
34366 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34367 let Inst{7-5} = 0b010;
34368 let Inst{13-13} = 0b0;
34369 let Inst{31-21} = 0b00011100111;
34370 let hasNewValue = 1;
34371 let opNewValue = 0;
34372 let DecoderNamespace = "EXT_mmvec";
34373 }
34374 def V6_vnavgw_alt : HInst<
34375 (outs HvxVR:$Vd32),
34376 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34377 "$Vd32 = vnavgw($Vu32,$Vv32)",
34378 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34379 let hasNewValue = 1;
34380 let opNewValue = 0;
34381 let isPseudo = 1;
34382 let isCodeGenOnly = 1;
34383 let DecoderNamespace = "EXT_mmvec";
34384 }
34385 def V6_vnccombine : HInst<
34386 (outs HvxWR:$Vdd32),
34387 (ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
34388 "if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
34389 tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
34390 let Inst{7-7} = 0b0;
34391 let Inst{13-13} = 0b0;
34392 let Inst{31-21} = 0b00011010010;
34393 let isPredicated = 1;
34394 let isPredicatedFalse = 1;
34395 let hasNewValue = 1;
34396 let opNewValue = 0;
34397 let DecoderNamespace = "EXT_mmvec";
34398 }
34399 def V6_vncmov : HInst<
34400 (outs HvxVR:$Vd32),
34401 (ins PredRegs:$Ps4, HvxVR:$Vu32),
34402 "if (!$Ps4) $Vd32 = $Vu32",
34403 tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
34404 let Inst{7-7} = 0b0;
34405 let Inst{13-13} = 0b0;
34406 let Inst{31-16} = 0b0001101000100000;
34407 let isPredicated = 1;
34408 let isPredicatedFalse = 1;
34409 let hasNewValue = 1;
34410 let opNewValue = 0;
34411 let DecoderNamespace = "EXT_mmvec";
34412 }
34413 def V6_vnormamth : HInst<
34414 (outs HvxVR:$Vd32),
34415 (ins HvxVR:$Vu32),
34416 "$Vd32.h = vnormamt($Vu32.h)",
34417 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34418 let Inst{7-5} = 0b101;
34419 let Inst{13-13} = 0b0;
34420 let Inst{31-16} = 0b0001111000000011;
34421 let hasNewValue = 1;
34422 let opNewValue = 0;
34423 let DecoderNamespace = "EXT_mmvec";
34424 }
34425 def V6_vnormamth_alt : HInst<
34426 (outs HvxVR:$Vd32),
34427 (ins HvxVR:$Vu32),
34428 "$Vd32 = vnormamth($Vu32)",
34429 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34430 let hasNewValue = 1;
34431 let opNewValue = 0;
34432 let isPseudo = 1;
34433 let isCodeGenOnly = 1;
34434 let DecoderNamespace = "EXT_mmvec";
34435 }
34436 def V6_vnormamtw : HInst<
34437 (outs HvxVR:$Vd32),
34438 (ins HvxVR:$Vu32),
34439 "$Vd32.w = vnormamt($Vu32.w)",
34440 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34441 let Inst{7-5} = 0b100;
34442 let Inst{13-13} = 0b0;
34443 let Inst{31-16} = 0b0001111000000011;
34444 let hasNewValue = 1;
34445 let opNewValue = 0;
34446 let DecoderNamespace = "EXT_mmvec";
34447 }
34448 def V6_vnormamtw_alt : HInst<
34449 (outs HvxVR:$Vd32),
34450 (ins HvxVR:$Vu32),
34451 "$Vd32 = vnormamtw($Vu32)",
34452 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34453 let hasNewValue = 1;
34454 let opNewValue = 0;
34455 let isPseudo = 1;
34456 let isCodeGenOnly = 1;
34457 let DecoderNamespace = "EXT_mmvec";
34458 }
34459 def V6_vnot : HInst<
34460 (outs HvxVR:$Vd32),
34461 (ins HvxVR:$Vu32),
34462 "$Vd32 = vnot($Vu32)",
34463 tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
34464 let Inst{7-5} = 0b100;
34465 let Inst{13-13} = 0b0;
34466 let Inst{31-16} = 0b0001111000000000;
34467 let hasNewValue = 1;
34468 let opNewValue = 0;
34469 let DecoderNamespace = "EXT_mmvec";
34470 }
34471 def V6_vor : HInst<
34472 (outs HvxVR:$Vd32),
34473 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34474 "$Vd32 = vor($Vu32,$Vv32)",
34475 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34476 let Inst{7-5} = 0b110;
34477 let Inst{13-13} = 0b0;
34478 let Inst{31-21} = 0b00011100001;
34479 let hasNewValue = 1;
34480 let opNewValue = 0;
34481 let DecoderNamespace = "EXT_mmvec";
34482 }
34483 def V6_vpackeb : HInst<
34484 (outs HvxVR:$Vd32),
34485 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34486 "$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
34487 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34488 let Inst{7-5} = 0b010;
34489 let Inst{13-13} = 0b0;
34490 let Inst{31-21} = 0b00011111110;
34491 let hasNewValue = 1;
34492 let opNewValue = 0;
34493 let DecoderNamespace = "EXT_mmvec";
34494 }
34495 def V6_vpackeb_alt : HInst<
34496 (outs HvxVR:$Vd32),
34497 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34498 "$Vd32 = vpackeb($Vu32,$Vv32)",
34499 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34500 let hasNewValue = 1;
34501 let opNewValue = 0;
34502 let isPseudo = 1;
34503 let isCodeGenOnly = 1;
34504 let DecoderNamespace = "EXT_mmvec";
34505 }
34506 def V6_vpackeh : HInst<
34507 (outs HvxVR:$Vd32),
34508 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34509 "$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
34510 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34511 let Inst{7-5} = 0b011;
34512 let Inst{13-13} = 0b0;
34513 let Inst{31-21} = 0b00011111110;
34514 let hasNewValue = 1;
34515 let opNewValue = 0;
34516 let DecoderNamespace = "EXT_mmvec";
34517 }
34518 def V6_vpackeh_alt : HInst<
34519 (outs HvxVR:$Vd32),
34520 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34521 "$Vd32 = vpackeh($Vu32,$Vv32)",
34522 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34523 let hasNewValue = 1;
34524 let opNewValue = 0;
34525 let isPseudo = 1;
34526 let isCodeGenOnly = 1;
34527 let DecoderNamespace = "EXT_mmvec";
34528 }
34529 def V6_vpackhb_sat : HInst<
34530 (outs HvxVR:$Vd32),
34531 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34532 "$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
34533 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34534 let Inst{7-5} = 0b110;
34535 let Inst{13-13} = 0b0;
34536 let Inst{31-21} = 0b00011111110;
34537 let hasNewValue = 1;
34538 let opNewValue = 0;
34539 let DecoderNamespace = "EXT_mmvec";
34540 }
34541 def V6_vpackhb_sat_alt : HInst<
34542 (outs HvxVR:$Vd32),
34543 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34544 "$Vd32 = vpackhb($Vu32,$Vv32):sat",
34545 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34546 let hasNewValue = 1;
34547 let opNewValue = 0;
34548 let isPseudo = 1;
34549 let isCodeGenOnly = 1;
34550 let DecoderNamespace = "EXT_mmvec";
34551 }
34552 def V6_vpackhub_sat : HInst<
34553 (outs HvxVR:$Vd32),
34554 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34555 "$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
34556 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34557 let Inst{7-5} = 0b101;
34558 let Inst{13-13} = 0b0;
34559 let Inst{31-21} = 0b00011111110;
34560 let hasNewValue = 1;
34561 let opNewValue = 0;
34562 let DecoderNamespace = "EXT_mmvec";
34563 }
34564 def V6_vpackhub_sat_alt : HInst<
34565 (outs HvxVR:$Vd32),
34566 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34567 "$Vd32 = vpackhub($Vu32,$Vv32):sat",
34568 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34569 let hasNewValue = 1;
34570 let opNewValue = 0;
34571 let isPseudo = 1;
34572 let isCodeGenOnly = 1;
34573 let DecoderNamespace = "EXT_mmvec";
34574 }
34575 def V6_vpackob : HInst<
34576 (outs HvxVR:$Vd32),
34577 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34578 "$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
34579 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34580 let Inst{7-5} = 0b001;
34581 let Inst{13-13} = 0b0;
34582 let Inst{31-21} = 0b00011111111;
34583 let hasNewValue = 1;
34584 let opNewValue = 0;
34585 let DecoderNamespace = "EXT_mmvec";
34586 }
34587 def V6_vpackob_alt : HInst<
34588 (outs HvxVR:$Vd32),
34589 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34590 "$Vd32 = vpackob($Vu32,$Vv32)",
34591 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34592 let hasNewValue = 1;
34593 let opNewValue = 0;
34594 let isPseudo = 1;
34595 let isCodeGenOnly = 1;
34596 let DecoderNamespace = "EXT_mmvec";
34597 }
34598 def V6_vpackoh : HInst<
34599 (outs HvxVR:$Vd32),
34600 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34601 "$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
34602 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34603 let Inst{7-5} = 0b010;
34604 let Inst{13-13} = 0b0;
34605 let Inst{31-21} = 0b00011111111;
34606 let hasNewValue = 1;
34607 let opNewValue = 0;
34608 let DecoderNamespace = "EXT_mmvec";
34609 }
34610 def V6_vpackoh_alt : HInst<
34611 (outs HvxVR:$Vd32),
34612 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34613 "$Vd32 = vpackoh($Vu32,$Vv32)",
34614 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34615 let hasNewValue = 1;
34616 let opNewValue = 0;
34617 let isPseudo = 1;
34618 let isCodeGenOnly = 1;
34619 let DecoderNamespace = "EXT_mmvec";
34620 }
34621 def V6_vpackwh_sat : HInst<
34622 (outs HvxVR:$Vd32),
34623 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34624 "$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
34625 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34626 let Inst{7-5} = 0b000;
34627 let Inst{13-13} = 0b0;
34628 let Inst{31-21} = 0b00011111111;
34629 let hasNewValue = 1;
34630 let opNewValue = 0;
34631 let DecoderNamespace = "EXT_mmvec";
34632 }
34633 def V6_vpackwh_sat_alt : HInst<
34634 (outs HvxVR:$Vd32),
34635 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34636 "$Vd32 = vpackwh($Vu32,$Vv32):sat",
34637 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34638 let hasNewValue = 1;
34639 let opNewValue = 0;
34640 let isPseudo = 1;
34641 let isCodeGenOnly = 1;
34642 let DecoderNamespace = "EXT_mmvec";
34643 }
34644 def V6_vpackwuh_sat : HInst<
34645 (outs HvxVR:$Vd32),
34646 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34647 "$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
34648 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34649 let Inst{7-5} = 0b111;
34650 let Inst{13-13} = 0b0;
34651 let Inst{31-21} = 0b00011111110;
34652 let hasNewValue = 1;
34653 let opNewValue = 0;
34654 let DecoderNamespace = "EXT_mmvec";
34655 }
34656 def V6_vpackwuh_sat_alt : HInst<
34657 (outs HvxVR:$Vd32),
34658 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34659 "$Vd32 = vpackwuh($Vu32,$Vv32):sat",
34660 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34661 let hasNewValue = 1;
34662 let opNewValue = 0;
34663 let isPseudo = 1;
34664 let isCodeGenOnly = 1;
34665 let DecoderNamespace = "EXT_mmvec";
34666 }
34667 def V6_vpopcounth : HInst<
34668 (outs HvxVR:$Vd32),
34669 (ins HvxVR:$Vu32),
34670 "$Vd32.h = vpopcount($Vu32.h)",
34671 tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34672 let Inst{7-5} = 0b110;
34673 let Inst{13-13} = 0b0;
34674 let Inst{31-16} = 0b0001111000000010;
34675 let hasNewValue = 1;
34676 let opNewValue = 0;
34677 let DecoderNamespace = "EXT_mmvec";
34678 }
34679 def V6_vpopcounth_alt : HInst<
34680 (outs HvxVR:$Vd32),
34681 (ins HvxVR:$Vu32),
34682 "$Vd32 = vpopcounth($Vu32)",
34683 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34684 let hasNewValue = 1;
34685 let opNewValue = 0;
34686 let isPseudo = 1;
34687 let isCodeGenOnly = 1;
34688 let DecoderNamespace = "EXT_mmvec";
34689 }
34690 def V6_vprefixqb : HInst<
34691 (outs HvxVR:$Vd32),
34692 (ins HvxQR:$Qv4),
34693 "$Vd32.b = prefixsum($Qv4)",
34694 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34695 let Inst{13-5} = 0b100000010;
34696 let Inst{21-16} = 0b000011;
34697 let Inst{31-24} = 0b00011110;
34698 let hasNewValue = 1;
34699 let opNewValue = 0;
34700 let DecoderNamespace = "EXT_mmvec";
34701 }
34702 def V6_vprefixqh : HInst<
34703 (outs HvxVR:$Vd32),
34704 (ins HvxQR:$Qv4),
34705 "$Vd32.h = prefixsum($Qv4)",
34706 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34707 let Inst{13-5} = 0b100001010;
34708 let Inst{21-16} = 0b000011;
34709 let Inst{31-24} = 0b00011110;
34710 let hasNewValue = 1;
34711 let opNewValue = 0;
34712 let DecoderNamespace = "EXT_mmvec";
34713 }
34714 def V6_vprefixqw : HInst<
34715 (outs HvxVR:$Vd32),
34716 (ins HvxQR:$Qv4),
34717 "$Vd32.w = prefixsum($Qv4)",
34718 tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34719 let Inst{13-5} = 0b100010010;
34720 let Inst{21-16} = 0b000011;
34721 let Inst{31-24} = 0b00011110;
34722 let hasNewValue = 1;
34723 let opNewValue = 0;
34724 let DecoderNamespace = "EXT_mmvec";
34725 }
34726 def V6_vrdelta : HInst<
34727 (outs HvxVR:$Vd32),
34728 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34729 "$Vd32 = vrdelta($Vu32,$Vv32)",
34730 tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34731 let Inst{7-5} = 0b011;
34732 let Inst{13-13} = 0b0;
34733 let Inst{31-21} = 0b00011111001;
34734 let hasNewValue = 1;
34735 let opNewValue = 0;
34736 let DecoderNamespace = "EXT_mmvec";
34737 }
34738 def V6_vrmpybub_rtt : HInst<
34739 (outs HvxWR:$Vdd32),
34740 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34741 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
34742 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
34743 let Inst{7-5} = 0b101;
34744 let Inst{13-13} = 0b0;
34745 let Inst{31-21} = 0b00011001110;
34746 let hasNewValue = 1;
34747 let opNewValue = 0;
34748 let DecoderNamespace = "EXT_mmvec";
34749 }
34750 def V6_vrmpybub_rtt_acc : HInst<
34751 (outs HvxWR:$Vxx32),
34752 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34753 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
34754 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
34755 let Inst{7-5} = 0b000;
34756 let Inst{13-13} = 0b1;
34757 let Inst{31-21} = 0b00011001101;
34758 let hasNewValue = 1;
34759 let opNewValue = 0;
34760 let isAccumulator = 1;
34761 let DecoderNamespace = "EXT_mmvec";
34762 let Constraints = "$Vxx32 = $Vxx32in";
34763 }
34764 def V6_vrmpybub_rtt_acc_alt : HInst<
34765 (outs HvxWR:$Vxx32),
34766 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34767 "$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
34768 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34769 let hasNewValue = 1;
34770 let opNewValue = 0;
34771 let isAccumulator = 1;
34772 let isPseudo = 1;
34773 let isCodeGenOnly = 1;
34774 let DecoderNamespace = "EXT_mmvec";
34775 let Constraints = "$Vxx32 = $Vxx32in";
34776 }
34777 def V6_vrmpybub_rtt_alt : HInst<
34778 (outs HvxWR:$Vdd32),
34779 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34780 "$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
34781 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34782 let hasNewValue = 1;
34783 let opNewValue = 0;
34784 let isPseudo = 1;
34785 let isCodeGenOnly = 1;
34786 let DecoderNamespace = "EXT_mmvec";
34787 }
34788 def V6_vrmpybus : HInst<
34789 (outs HvxVR:$Vd32),
34790 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34791 "$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
34792 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34793 let Inst{7-5} = 0b100;
34794 let Inst{13-13} = 0b0;
34795 let Inst{31-21} = 0b00011001000;
34796 let hasNewValue = 1;
34797 let opNewValue = 0;
34798 let DecoderNamespace = "EXT_mmvec";
34799 }
34800 def V6_vrmpybus_acc : HInst<
34801 (outs HvxVR:$Vx32),
34802 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34803 "$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
34804 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
34805 let Inst{7-5} = 0b101;
34806 let Inst{13-13} = 0b1;
34807 let Inst{31-21} = 0b00011001000;
34808 let hasNewValue = 1;
34809 let opNewValue = 0;
34810 let isAccumulator = 1;
34811 let DecoderNamespace = "EXT_mmvec";
34812 let Constraints = "$Vx32 = $Vx32in";
34813 }
34814 def V6_vrmpybus_acc_alt : HInst<
34815 (outs HvxVR:$Vx32),
34816 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34817 "$Vx32 += vrmpybus($Vu32,$Rt32)",
34818 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34819 let hasNewValue = 1;
34820 let opNewValue = 0;
34821 let isAccumulator = 1;
34822 let isPseudo = 1;
34823 let isCodeGenOnly = 1;
34824 let DecoderNamespace = "EXT_mmvec";
34825 let Constraints = "$Vx32 = $Vx32in";
34826 }
34827 def V6_vrmpybus_alt : HInst<
34828 (outs HvxVR:$Vd32),
34829 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34830 "$Vd32 = vrmpybus($Vu32,$Rt32)",
34831 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34832 let hasNewValue = 1;
34833 let opNewValue = 0;
34834 let isPseudo = 1;
34835 let isCodeGenOnly = 1;
34836 let DecoderNamespace = "EXT_mmvec";
34837 }
34838 def V6_vrmpybusi : HInst<
34839 (outs HvxWR:$Vdd32),
34840 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34841 "$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
34842 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
34843 let Inst{7-6} = 0b10;
34844 let Inst{13-13} = 0b0;
34845 let Inst{31-21} = 0b00011001010;
34846 let hasNewValue = 1;
34847 let opNewValue = 0;
34848 let DecoderNamespace = "EXT_mmvec";
34849 }
34850 def V6_vrmpybusi_acc : HInst<
34851 (outs HvxWR:$Vxx32),
34852 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34853 "$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
34854 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
34855 let Inst{7-6} = 0b10;
34856 let Inst{13-13} = 0b1;
34857 let Inst{31-21} = 0b00011001010;
34858 let hasNewValue = 1;
34859 let opNewValue = 0;
34860 let isAccumulator = 1;
34861 let DecoderNamespace = "EXT_mmvec";
34862 let Constraints = "$Vxx32 = $Vxx32in";
34863 }
34864 def V6_vrmpybusi_acc_alt : HInst<
34865 (outs HvxWR:$Vxx32),
34866 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34867 "$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
34868 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34869 let hasNewValue = 1;
34870 let opNewValue = 0;
34871 let isAccumulator = 1;
34872 let isPseudo = 1;
34873 let isCodeGenOnly = 1;
34874 let DecoderNamespace = "EXT_mmvec";
34875 let Constraints = "$Vxx32 = $Vxx32in";
34876 }
34877 def V6_vrmpybusi_alt : HInst<
34878 (outs HvxWR:$Vdd32),
34879 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34880 "$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
34881 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34882 let hasNewValue = 1;
34883 let opNewValue = 0;
34884 let isPseudo = 1;
34885 let isCodeGenOnly = 1;
34886 let DecoderNamespace = "EXT_mmvec";
34887 }
34888 def V6_vrmpybusv : HInst<
34889 (outs HvxVR:$Vd32),
34890 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34891 "$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
34892 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
34893 let Inst{7-5} = 0b010;
34894 let Inst{13-13} = 0b0;
34895 let Inst{31-21} = 0b00011100000;
34896 let hasNewValue = 1;
34897 let opNewValue = 0;
34898 let DecoderNamespace = "EXT_mmvec";
34899 }
34900 def V6_vrmpybusv_acc : HInst<
34901 (outs HvxVR:$Vx32),
34902 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34903 "$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
34904 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34905 let Inst{7-5} = 0b010;
34906 let Inst{13-13} = 0b1;
34907 let Inst{31-21} = 0b00011100000;
34908 let hasNewValue = 1;
34909 let opNewValue = 0;
34910 let isAccumulator = 1;
34911 let DecoderNamespace = "EXT_mmvec";
34912 let Constraints = "$Vx32 = $Vx32in";
34913 }
34914 def V6_vrmpybusv_acc_alt : HInst<
34915 (outs HvxVR:$Vx32),
34916 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34917 "$Vx32 += vrmpybus($Vu32,$Vv32)",
34918 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34919 let hasNewValue = 1;
34920 let opNewValue = 0;
34921 let isAccumulator = 1;
34922 let isPseudo = 1;
34923 let isCodeGenOnly = 1;
34924 let DecoderNamespace = "EXT_mmvec";
34925 let Constraints = "$Vx32 = $Vx32in";
34926 }
34927 def V6_vrmpybusv_alt : HInst<
34928 (outs HvxVR:$Vd32),
34929 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34930 "$Vd32 = vrmpybus($Vu32,$Vv32)",
34931 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34932 let hasNewValue = 1;
34933 let opNewValue = 0;
34934 let isPseudo = 1;
34935 let isCodeGenOnly = 1;
34936 let DecoderNamespace = "EXT_mmvec";
34937 }
34938 def V6_vrmpybv : HInst<
34939 (outs HvxVR:$Vd32),
34940 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34941 "$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
34942 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
34943 let Inst{7-5} = 0b001;
34944 let Inst{13-13} = 0b0;
34945 let Inst{31-21} = 0b00011100000;
34946 let hasNewValue = 1;
34947 let opNewValue = 0;
34948 let DecoderNamespace = "EXT_mmvec";
34949 }
34950 def V6_vrmpybv_acc : HInst<
34951 (outs HvxVR:$Vx32),
34952 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34953 "$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
34954 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34955 let Inst{7-5} = 0b001;
34956 let Inst{13-13} = 0b1;
34957 let Inst{31-21} = 0b00011100000;
34958 let hasNewValue = 1;
34959 let opNewValue = 0;
34960 let isAccumulator = 1;
34961 let DecoderNamespace = "EXT_mmvec";
34962 let Constraints = "$Vx32 = $Vx32in";
34963 }
34964 def V6_vrmpybv_acc_alt : HInst<
34965 (outs HvxVR:$Vx32),
34966 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34967 "$Vx32 += vrmpyb($Vu32,$Vv32)",
34968 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34969 let hasNewValue = 1;
34970 let opNewValue = 0;
34971 let isAccumulator = 1;
34972 let isPseudo = 1;
34973 let isCodeGenOnly = 1;
34974 let DecoderNamespace = "EXT_mmvec";
34975 let Constraints = "$Vx32 = $Vx32in";
34976 }
34977 def V6_vrmpybv_alt : HInst<
34978 (outs HvxVR:$Vd32),
34979 (ins HvxVR:$Vu32, HvxVR:$Vv32),
34980 "$Vd32 = vrmpyb($Vu32,$Vv32)",
34981 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34982 let hasNewValue = 1;
34983 let opNewValue = 0;
34984 let isPseudo = 1;
34985 let isCodeGenOnly = 1;
34986 let DecoderNamespace = "EXT_mmvec";
34987 }
34988 def V6_vrmpyub : HInst<
34989 (outs HvxVR:$Vd32),
34990 (ins HvxVR:$Vu32, IntRegs:$Rt32),
34991 "$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
34992 tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34993 let Inst{7-5} = 0b011;
34994 let Inst{13-13} = 0b0;
34995 let Inst{31-21} = 0b00011001000;
34996 let hasNewValue = 1;
34997 let opNewValue = 0;
34998 let DecoderNamespace = "EXT_mmvec";
34999 }
35000 def V6_vrmpyub_acc : HInst<
35001 (outs HvxVR:$Vx32),
35002 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35003 "$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
35004 tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
35005 let Inst{7-5} = 0b100;
35006 let Inst{13-13} = 0b1;
35007 let Inst{31-21} = 0b00011001000;
35008 let hasNewValue = 1;
35009 let opNewValue = 0;
35010 let isAccumulator = 1;
35011 let DecoderNamespace = "EXT_mmvec";
35012 let Constraints = "$Vx32 = $Vx32in";
35013 }
35014 def V6_vrmpyub_acc_alt : HInst<
35015 (outs HvxVR:$Vx32),
35016 (ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35017 "$Vx32 += vrmpyub($Vu32,$Rt32)",
35018 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35019 let hasNewValue = 1;
35020 let opNewValue = 0;
35021 let isAccumulator = 1;
35022 let isPseudo = 1;
35023 let isCodeGenOnly = 1;
35024 let DecoderNamespace = "EXT_mmvec";
35025 let Constraints = "$Vx32 = $Vx32in";
35026 }
35027 def V6_vrmpyub_alt : HInst<
35028 (outs HvxVR:$Vd32),
35029 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35030 "$Vd32 = vrmpyub($Vu32,$Rt32)",
35031 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35032 let hasNewValue = 1;
35033 let opNewValue = 0;
35034 let isPseudo = 1;
35035 let isCodeGenOnly = 1;
35036 let DecoderNamespace = "EXT_mmvec";
35037 }
35038 def V6_vrmpyub_rtt : HInst<
35039 (outs HvxWR:$Vdd32),
35040 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35041 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
35042 tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
35043 let Inst{7-5} = 0b100;
35044 let Inst{13-13} = 0b0;
35045 let Inst{31-21} = 0b00011001110;
35046 let hasNewValue = 1;
35047 let opNewValue = 0;
35048 let DecoderNamespace = "EXT_mmvec";
35049 }
35050 def V6_vrmpyub_rtt_acc : HInst<
35051 (outs HvxWR:$Vxx32),
35052 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35053 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
35054 tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
35055 let Inst{7-5} = 0b111;
35056 let Inst{13-13} = 0b1;
35057 let Inst{31-21} = 0b00011001101;
35058 let hasNewValue = 1;
35059 let opNewValue = 0;
35060 let isAccumulator = 1;
35061 let DecoderNamespace = "EXT_mmvec";
35062 let Constraints = "$Vxx32 = $Vxx32in";
35063 }
35064 def V6_vrmpyub_rtt_acc_alt : HInst<
35065 (outs HvxWR:$Vxx32),
35066 (ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35067 "$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
35068 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35069 let hasNewValue = 1;
35070 let opNewValue = 0;
35071 let isAccumulator = 1;
35072 let isPseudo = 1;
35073 let isCodeGenOnly = 1;
35074 let DecoderNamespace = "EXT_mmvec";
35075 let Constraints = "$Vxx32 = $Vxx32in";
35076 }
35077 def V6_vrmpyub_rtt_alt : HInst<
35078 (outs HvxWR:$Vdd32),
35079 (ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35080 "$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
35081 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35082 let hasNewValue = 1;
35083 let opNewValue = 0;
35084 let isPseudo = 1;
35085 let isCodeGenOnly = 1;
35086 let DecoderNamespace = "EXT_mmvec";
35087 }
35088 def V6_vrmpyubi : HInst<
35089 (outs HvxWR:$Vdd32),
35090 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35091 "$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
35092 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
35093 let Inst{7-6} = 0b11;
35094 let Inst{13-13} = 0b0;
35095 let Inst{31-21} = 0b00011001101;
35096 let hasNewValue = 1;
35097 let opNewValue = 0;
35098 let DecoderNamespace = "EXT_mmvec";
35099 }
35100 def V6_vrmpyubi_acc : HInst<
35101 (outs HvxWR:$Vxx32),
35102 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35103 "$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
35104 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
35105 let Inst{7-6} = 0b11;
35106 let Inst{13-13} = 0b1;
35107 let Inst{31-21} = 0b00011001011;
35108 let hasNewValue = 1;
35109 let opNewValue = 0;
35110 let isAccumulator = 1;
35111 let DecoderNamespace = "EXT_mmvec";
35112 let Constraints = "$Vxx32 = $Vxx32in";
35113 }
35114 def V6_vrmpyubi_acc_alt : HInst<
35115 (outs HvxWR:$Vxx32),
35116 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35117 "$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
35118 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35119 let hasNewValue = 1;
35120 let opNewValue = 0;
35121 let isAccumulator = 1;
35122 let isPseudo = 1;
35123 let isCodeGenOnly = 1;
35124 let DecoderNamespace = "EXT_mmvec";
35125 let Constraints = "$Vxx32 = $Vxx32in";
35126 }
35127 def V6_vrmpyubi_alt : HInst<
35128 (outs HvxWR:$Vdd32),
35129 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35130 "$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
35131 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35132 let hasNewValue = 1;
35133 let opNewValue = 0;
35134 let isPseudo = 1;
35135 let isCodeGenOnly = 1;
35136 let DecoderNamespace = "EXT_mmvec";
35137 }
35138 def V6_vrmpyubv : HInst<
35139 (outs HvxVR:$Vd32),
35140 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35141 "$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
35142 tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35143 let Inst{7-5} = 0b000;
35144 let Inst{13-13} = 0b0;
35145 let Inst{31-21} = 0b00011100000;
35146 let hasNewValue = 1;
35147 let opNewValue = 0;
35148 let DecoderNamespace = "EXT_mmvec";
35149 }
35150 def V6_vrmpyubv_acc : HInst<
35151 (outs HvxVR:$Vx32),
35152 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35153 "$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
35154 tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35155 let Inst{7-5} = 0b000;
35156 let Inst{13-13} = 0b1;
35157 let Inst{31-21} = 0b00011100000;
35158 let hasNewValue = 1;
35159 let opNewValue = 0;
35160 let isAccumulator = 1;
35161 let DecoderNamespace = "EXT_mmvec";
35162 let Constraints = "$Vx32 = $Vx32in";
35163 }
35164 def V6_vrmpyubv_acc_alt : HInst<
35165 (outs HvxVR:$Vx32),
35166 (ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35167 "$Vx32 += vrmpyub($Vu32,$Vv32)",
35168 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35169 let hasNewValue = 1;
35170 let opNewValue = 0;
35171 let isAccumulator = 1;
35172 let isPseudo = 1;
35173 let isCodeGenOnly = 1;
35174 let DecoderNamespace = "EXT_mmvec";
35175 let Constraints = "$Vx32 = $Vx32in";
35176 }
35177 def V6_vrmpyubv_alt : HInst<
35178 (outs HvxVR:$Vd32),
35179 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35180 "$Vd32 = vrmpyub($Vu32,$Vv32)",
35181 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35182 let hasNewValue = 1;
35183 let opNewValue = 0;
35184 let isPseudo = 1;
35185 let isCodeGenOnly = 1;
35186 let DecoderNamespace = "EXT_mmvec";
35187 }
35188 def V6_vrmpyzbb_rt : HInst<
35189 (outs HvxVQR:$Vdddd32),
35190 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35191 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
35192 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35193 let Inst{7-5} = 0b000;
35194 let Inst{13-13} = 0b0;
35195 let Inst{31-19} = 0b0001100111101;
35196 let hasNewValue = 1;
35197 let opNewValue = 0;
35198 let DecoderNamespace = "EXT_mmvec";
35199 }
35200 def V6_vrmpyzbb_rt_acc : HInst<
35201 (outs HvxVQR:$Vyyyy32),
35202 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35203 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
35204 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35205 let Inst{7-5} = 0b010;
35206 let Inst{13-13} = 0b1;
35207 let Inst{31-19} = 0b0001100111000;
35208 let hasNewValue = 1;
35209 let opNewValue = 0;
35210 let isAccumulator = 1;
35211 let DecoderNamespace = "EXT_mmvec";
35212 let Constraints = "$Vyyyy32 = $Vyyyy32in";
35213 }
35214 def V6_vrmpyzbb_rx : HInst<
35215 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35216 (ins HvxVR:$Vu32, IntRegs:$Rx8in),
35217 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
35218 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35219 let Inst{7-5} = 0b000;
35220 let Inst{13-13} = 0b0;
35221 let Inst{31-19} = 0b0001100111100;
35222 let hasNewValue = 1;
35223 let opNewValue = 0;
35224 let DecoderNamespace = "EXT_mmvec";
35225 let Constraints = "$Rx8 = $Rx8in";
35226 }
35227 def V6_vrmpyzbb_rx_acc : HInst<
35228 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35229 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35230 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
35231 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35232 let Inst{7-5} = 0b010;
35233 let Inst{13-13} = 0b1;
35234 let Inst{31-19} = 0b0001100111001;
35235 let hasNewValue = 1;
35236 let opNewValue = 0;
35237 let isAccumulator = 1;
35238 let DecoderNamespace = "EXT_mmvec";
35239 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35240 }
35241 def V6_vrmpyzbub_rt : HInst<
35242 (outs HvxVQR:$Vdddd32),
35243 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35244 "$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
35245 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35246 let Inst{7-5} = 0b010;
35247 let Inst{13-13} = 0b0;
35248 let Inst{31-19} = 0b0001100111111;
35249 let hasNewValue = 1;
35250 let opNewValue = 0;
35251 let DecoderNamespace = "EXT_mmvec";
35252 }
35253 def V6_vrmpyzbub_rt_acc : HInst<
35254 (outs HvxVQR:$Vyyyy32),
35255 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35256 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
35257 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35258 let Inst{7-5} = 0b001;
35259 let Inst{13-13} = 0b1;
35260 let Inst{31-19} = 0b0001100111010;
35261 let hasNewValue = 1;
35262 let opNewValue = 0;
35263 let isAccumulator = 1;
35264 let DecoderNamespace = "EXT_mmvec";
35265 let Constraints = "$Vyyyy32 = $Vyyyy32in";
35266 }
35267 def V6_vrmpyzbub_rx : HInst<
35268 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35269 (ins HvxVR:$Vu32, IntRegs:$Rx8in),
35270 "$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
35271 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35272 let Inst{7-5} = 0b010;
35273 let Inst{13-13} = 0b0;
35274 let Inst{31-19} = 0b0001100111110;
35275 let hasNewValue = 1;
35276 let opNewValue = 0;
35277 let DecoderNamespace = "EXT_mmvec";
35278 let Constraints = "$Rx8 = $Rx8in";
35279 }
35280 def V6_vrmpyzbub_rx_acc : HInst<
35281 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35282 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35283 "$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
35284 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35285 let Inst{7-5} = 0b001;
35286 let Inst{13-13} = 0b1;
35287 let Inst{31-19} = 0b0001100111011;
35288 let hasNewValue = 1;
35289 let opNewValue = 0;
35290 let isAccumulator = 1;
35291 let DecoderNamespace = "EXT_mmvec";
35292 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35293 }
35294 def V6_vrmpyzcb_rt : HInst<
35295 (outs HvxVQR:$Vdddd32),
35296 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35297 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
35298 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35299 let Inst{7-5} = 0b001;
35300 let Inst{13-13} = 0b0;
35301 let Inst{31-19} = 0b0001100111101;
35302 let hasNewValue = 1;
35303 let opNewValue = 0;
35304 let DecoderNamespace = "EXT_mmvec";
35305 }
35306 def V6_vrmpyzcb_rt_acc : HInst<
35307 (outs HvxVQR:$Vyyyy32),
35308 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35309 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
35310 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35311 let Inst{7-5} = 0b011;
35312 let Inst{13-13} = 0b1;
35313 let Inst{31-19} = 0b0001100111000;
35314 let hasNewValue = 1;
35315 let opNewValue = 0;
35316 let isAccumulator = 1;
35317 let DecoderNamespace = "EXT_mmvec";
35318 let Constraints = "$Vyyyy32 = $Vyyyy32in";
35319 }
35320 def V6_vrmpyzcb_rx : HInst<
35321 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35322 (ins HvxVR:$Vu32, IntRegs:$Rx8in),
35323 "$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
35324 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35325 let Inst{7-5} = 0b001;
35326 let Inst{13-13} = 0b0;
35327 let Inst{31-19} = 0b0001100111100;
35328 let hasNewValue = 1;
35329 let opNewValue = 0;
35330 let DecoderNamespace = "EXT_mmvec";
35331 let Constraints = "$Rx8 = $Rx8in";
35332 }
35333 def V6_vrmpyzcb_rx_acc : HInst<
35334 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35335 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35336 "$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
35337 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35338 let Inst{7-5} = 0b011;
35339 let Inst{13-13} = 0b1;
35340 let Inst{31-19} = 0b0001100111001;
35341 let hasNewValue = 1;
35342 let opNewValue = 0;
35343 let isAccumulator = 1;
35344 let DecoderNamespace = "EXT_mmvec";
35345 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35346 }
35347 def V6_vrmpyzcbs_rt : HInst<
35348 (outs HvxVQR:$Vdddd32),
35349 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35350 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
35351 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35352 let Inst{7-5} = 0b010;
35353 let Inst{13-13} = 0b0;
35354 let Inst{31-19} = 0b0001100111101;
35355 let hasNewValue = 1;
35356 let opNewValue = 0;
35357 let DecoderNamespace = "EXT_mmvec";
35358 }
35359 def V6_vrmpyzcbs_rt_acc : HInst<
35360 (outs HvxVQR:$Vyyyy32),
35361 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35362 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
35363 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35364 let Inst{7-5} = 0b001;
35365 let Inst{13-13} = 0b1;
35366 let Inst{31-19} = 0b0001100111000;
35367 let hasNewValue = 1;
35368 let opNewValue = 0;
35369 let isAccumulator = 1;
35370 let DecoderNamespace = "EXT_mmvec";
35371 let Constraints = "$Vyyyy32 = $Vyyyy32in";
35372 }
35373 def V6_vrmpyzcbs_rx : HInst<
35374 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35375 (ins HvxVR:$Vu32, IntRegs:$Rx8in),
35376 "$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
35377 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35378 let Inst{7-5} = 0b010;
35379 let Inst{13-13} = 0b0;
35380 let Inst{31-19} = 0b0001100111100;
35381 let hasNewValue = 1;
35382 let opNewValue = 0;
35383 let DecoderNamespace = "EXT_mmvec";
35384 let Constraints = "$Rx8 = $Rx8in";
35385 }
35386 def V6_vrmpyzcbs_rx_acc : HInst<
35387 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35388 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35389 "$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
35390 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35391 let Inst{7-5} = 0b001;
35392 let Inst{13-13} = 0b1;
35393 let Inst{31-19} = 0b0001100111001;
35394 let hasNewValue = 1;
35395 let opNewValue = 0;
35396 let isAccumulator = 1;
35397 let DecoderNamespace = "EXT_mmvec";
35398 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35399 }
35400 def V6_vrmpyznb_rt : HInst<
35401 (outs HvxVQR:$Vdddd32),
35402 (ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35403 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
35404 tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35405 let Inst{7-5} = 0b000;
35406 let Inst{13-13} = 0b0;
35407 let Inst{31-19} = 0b0001100111111;
35408 let hasNewValue = 1;
35409 let opNewValue = 0;
35410 let DecoderNamespace = "EXT_mmvec";
35411 }
35412 def V6_vrmpyznb_rt_acc : HInst<
35413 (outs HvxVQR:$Vyyyy32),
35414 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35415 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
35416 tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35417 let Inst{7-5} = 0b010;
35418 let Inst{13-13} = 0b1;
35419 let Inst{31-19} = 0b0001100111010;
35420 let hasNewValue = 1;
35421 let opNewValue = 0;
35422 let isAccumulator = 1;
35423 let DecoderNamespace = "EXT_mmvec";
35424 let Constraints = "$Vyyyy32 = $Vyyyy32in";
35425 }
35426 def V6_vrmpyznb_rx : HInst<
35427 (outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35428 (ins HvxVR:$Vu32, IntRegs:$Rx8in),
35429 "$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
35430 tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35431 let Inst{7-5} = 0b000;
35432 let Inst{13-13} = 0b0;
35433 let Inst{31-19} = 0b0001100111110;
35434 let hasNewValue = 1;
35435 let opNewValue = 0;
35436 let DecoderNamespace = "EXT_mmvec";
35437 let Constraints = "$Rx8 = $Rx8in";
35438 }
35439 def V6_vrmpyznb_rx_acc : HInst<
35440 (outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35441 (ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35442 "$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
35443 tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35444 let Inst{7-5} = 0b010;
35445 let Inst{13-13} = 0b1;
35446 let Inst{31-19} = 0b0001100111011;
35447 let hasNewValue = 1;
35448 let opNewValue = 0;
35449 let isAccumulator = 1;
35450 let DecoderNamespace = "EXT_mmvec";
35451 let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35452 }
35453 def V6_vror : HInst<
35454 (outs HvxVR:$Vd32),
35455 (ins HvxVR:$Vu32, IntRegs:$Rt32),
35456 "$Vd32 = vror($Vu32,$Rt32)",
35457 tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
35458 let Inst{7-5} = 0b001;
35459 let Inst{13-13} = 0b0;
35460 let Inst{31-21} = 0b00011001011;
35461 let hasNewValue = 1;
35462 let opNewValue = 0;
35463 let DecoderNamespace = "EXT_mmvec";
35464 }
35465 def V6_vrotr : HInst<
35466 (outs HvxVR:$Vd32),
35467 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35468 "$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
35469 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
35470 let Inst{7-5} = 0b111;
35471 let Inst{13-13} = 0b1;
35472 let Inst{31-21} = 0b00011010100;
35473 let hasNewValue = 1;
35474 let opNewValue = 0;
35475 let DecoderNamespace = "EXT_mmvec";
35476 }
35477 def V6_vrotr_alt : HInst<
35478 (outs HvxVR:$Vd32),
35479 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35480 "$Vd32 = vrotr($Vu32,$Vv32)",
35481 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
35482 let hasNewValue = 1;
35483 let opNewValue = 0;
35484 let isPseudo = 1;
35485 let isCodeGenOnly = 1;
35486 let DecoderNamespace = "EXT_mmvec";
35487 }
35488 def V6_vroundhb : HInst<
35489 (outs HvxVR:$Vd32),
35490 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35491 "$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
35492 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35493 let Inst{7-5} = 0b110;
35494 let Inst{13-13} = 0b0;
35495 let Inst{31-21} = 0b00011111011;
35496 let hasNewValue = 1;
35497 let opNewValue = 0;
35498 let DecoderNamespace = "EXT_mmvec";
35499 }
35500 def V6_vroundhb_alt : HInst<
35501 (outs HvxVR:$Vd32),
35502 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35503 "$Vd32 = vroundhb($Vu32,$Vv32):sat",
35504 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35505 let hasNewValue = 1;
35506 let opNewValue = 0;
35507 let isPseudo = 1;
35508 let isCodeGenOnly = 1;
35509 let DecoderNamespace = "EXT_mmvec";
35510 }
35511 def V6_vroundhub : HInst<
35512 (outs HvxVR:$Vd32),
35513 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35514 "$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
35515 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35516 let Inst{7-5} = 0b111;
35517 let Inst{13-13} = 0b0;
35518 let Inst{31-21} = 0b00011111011;
35519 let hasNewValue = 1;
35520 let opNewValue = 0;
35521 let DecoderNamespace = "EXT_mmvec";
35522 }
35523 def V6_vroundhub_alt : HInst<
35524 (outs HvxVR:$Vd32),
35525 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35526 "$Vd32 = vroundhub($Vu32,$Vv32):sat",
35527 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35528 let hasNewValue = 1;
35529 let opNewValue = 0;
35530 let isPseudo = 1;
35531 let isCodeGenOnly = 1;
35532 let DecoderNamespace = "EXT_mmvec";
35533 }
35534 def V6_vrounduhub : HInst<
35535 (outs HvxVR:$Vd32),
35536 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35537 "$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
35538 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
35539 let Inst{7-5} = 0b011;
35540 let Inst{13-13} = 0b0;
35541 let Inst{31-21} = 0b00011111111;
35542 let hasNewValue = 1;
35543 let opNewValue = 0;
35544 let DecoderNamespace = "EXT_mmvec";
35545 }
35546 def V6_vrounduhub_alt : HInst<
35547 (outs HvxVR:$Vd32),
35548 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35549 "$Vd32 = vrounduhub($Vu32,$Vv32):sat",
35550 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35551 let hasNewValue = 1;
35552 let opNewValue = 0;
35553 let isPseudo = 1;
35554 let isCodeGenOnly = 1;
35555 let DecoderNamespace = "EXT_mmvec";
35556 }
35557 def V6_vrounduwuh : HInst<
35558 (outs HvxVR:$Vd32),
35559 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35560 "$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
35561 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
35562 let Inst{7-5} = 0b100;
35563 let Inst{13-13} = 0b0;
35564 let Inst{31-21} = 0b00011111111;
35565 let hasNewValue = 1;
35566 let opNewValue = 0;
35567 let DecoderNamespace = "EXT_mmvec";
35568 }
35569 def V6_vrounduwuh_alt : HInst<
35570 (outs HvxVR:$Vd32),
35571 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35572 "$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
35573 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35574 let hasNewValue = 1;
35575 let opNewValue = 0;
35576 let isPseudo = 1;
35577 let isCodeGenOnly = 1;
35578 let DecoderNamespace = "EXT_mmvec";
35579 }
35580 def V6_vroundwh : HInst<
35581 (outs HvxVR:$Vd32),
35582 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35583 "$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
35584 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35585 let Inst{7-5} = 0b100;
35586 let Inst{13-13} = 0b0;
35587 let Inst{31-21} = 0b00011111011;
35588 let hasNewValue = 1;
35589 let opNewValue = 0;
35590 let DecoderNamespace = "EXT_mmvec";
35591 }
35592 def V6_vroundwh_alt : HInst<
35593 (outs HvxVR:$Vd32),
35594 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35595 "$Vd32 = vroundwh($Vu32,$Vv32):sat",
35596 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35597 let hasNewValue = 1;
35598 let opNewValue = 0;
35599 let isPseudo = 1;
35600 let isCodeGenOnly = 1;
35601 let DecoderNamespace = "EXT_mmvec";
35602 }
35603 def V6_vroundwuh : HInst<
35604 (outs HvxVR:$Vd32),
35605 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35606 "$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
35607 tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35608 let Inst{7-5} = 0b101;
35609 let Inst{13-13} = 0b0;
35610 let Inst{31-21} = 0b00011111011;
35611 let hasNewValue = 1;
35612 let opNewValue = 0;
35613 let DecoderNamespace = "EXT_mmvec";
35614 }
35615 def V6_vroundwuh_alt : HInst<
35616 (outs HvxVR:$Vd32),
35617 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35618 "$Vd32 = vroundwuh($Vu32,$Vv32):sat",
35619 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35620 let hasNewValue = 1;
35621 let opNewValue = 0;
35622 let isPseudo = 1;
35623 let isCodeGenOnly = 1;
35624 let DecoderNamespace = "EXT_mmvec";
35625 }
35626 def V6_vrsadubi : HInst<
35627 (outs HvxWR:$Vdd32),
35628 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35629 "$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
35630 tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
35631 let Inst{7-6} = 0b11;
35632 let Inst{13-13} = 0b0;
35633 let Inst{31-21} = 0b00011001010;
35634 let hasNewValue = 1;
35635 let opNewValue = 0;
35636 let DecoderNamespace = "EXT_mmvec";
35637 }
35638 def V6_vrsadubi_acc : HInst<
35639 (outs HvxWR:$Vxx32),
35640 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35641 "$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
35642 tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
35643 let Inst{7-6} = 0b11;
35644 let Inst{13-13} = 0b1;
35645 let Inst{31-21} = 0b00011001010;
35646 let hasNewValue = 1;
35647 let opNewValue = 0;
35648 let isAccumulator = 1;
35649 let DecoderNamespace = "EXT_mmvec";
35650 let Constraints = "$Vxx32 = $Vxx32in";
35651 }
35652 def V6_vrsadubi_acc_alt : HInst<
35653 (outs HvxWR:$Vxx32),
35654 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35655 "$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
35656 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35657 let hasNewValue = 1;
35658 let opNewValue = 0;
35659 let isAccumulator = 1;
35660 let isPseudo = 1;
35661 let isCodeGenOnly = 1;
35662 let DecoderNamespace = "EXT_mmvec";
35663 let Constraints = "$Vxx32 = $Vxx32in";
35664 }
35665 def V6_vrsadubi_alt : HInst<
35666 (outs HvxWR:$Vdd32),
35667 (ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35668 "$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
35669 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35670 let hasNewValue = 1;
35671 let opNewValue = 0;
35672 let isPseudo = 1;
35673 let isCodeGenOnly = 1;
35674 let DecoderNamespace = "EXT_mmvec";
35675 }
35676 def V6_vsatdw : HInst<
35677 (outs HvxVR:$Vd32),
35678 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35679 "$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
35680 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
35681 let Inst{7-5} = 0b111;
35682 let Inst{13-13} = 0b1;
35683 let Inst{31-21} = 0b00011101100;
35684 let hasNewValue = 1;
35685 let opNewValue = 0;
35686 let DecoderNamespace = "EXT_mmvec";
35687 }
35688 def V6_vsathub : HInst<
35689 (outs HvxVR:$Vd32),
35690 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35691 "$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
35692 tc_8772086c, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> {
35693 let Inst{7-5} = 0b010;
35694 let Inst{13-13} = 0b0;
35695 let Inst{31-21} = 0b00011111011;
35696 let hasNewValue = 1;
35697 let opNewValue = 0;
35698 let DecoderNamespace = "EXT_mmvec";
35699 }
35700 def V6_vsathub_alt : HInst<
35701 (outs HvxVR:$Vd32),
35702 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35703 "$Vd32 = vsathub($Vu32,$Vv32)",
35704 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35705 let hasNewValue = 1;
35706 let opNewValue = 0;
35707 let isPseudo = 1;
35708 let isCodeGenOnly = 1;
35709 let DecoderNamespace = "EXT_mmvec";
35710 }
35711 def V6_vsatuwuh : HInst<
35712 (outs HvxVR:$Vd32),
35713 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35714 "$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
35715 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
35716 let Inst{7-5} = 0b110;
35717 let Inst{13-13} = 0b0;
35718 let Inst{31-21} = 0b00011111001;
35719 let hasNewValue = 1;
35720 let opNewValue = 0;
35721 let DecoderNamespace = "EXT_mmvec";
35722 }
35723 def V6_vsatuwuh_alt : HInst<
35724 (outs HvxVR:$Vd32),
35725 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35726 "$Vd32 = vsatuwuh($Vu32,$Vv32)",
35727 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35728 let hasNewValue = 1;
35729 let opNewValue = 0;
35730 let isPseudo = 1;
35731 let isCodeGenOnly = 1;
35732 let DecoderNamespace = "EXT_mmvec";
35733 }
35734 def V6_vsatwh : HInst<
35735 (outs HvxVR:$Vd32),
35736 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35737 "$Vd32.h = vsat($Vu32.w,$Vv32.w)",
35738 tc_8772086c, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> {
35739 let Inst{7-5} = 0b011;
35740 let Inst{13-13} = 0b0;
35741 let Inst{31-21} = 0b00011111011;
35742 let hasNewValue = 1;
35743 let opNewValue = 0;
35744 let DecoderNamespace = "EXT_mmvec";
35745 }
35746 def V6_vsatwh_alt : HInst<
35747 (outs HvxVR:$Vd32),
35748 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35749 "$Vd32 = vsatwh($Vu32,$Vv32)",
35750 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35751 let hasNewValue = 1;
35752 let opNewValue = 0;
35753 let isPseudo = 1;
35754 let isCodeGenOnly = 1;
35755 let DecoderNamespace = "EXT_mmvec";
35756 }
35757 def V6_vsb : HInst<
35758 (outs HvxWR:$Vdd32),
35759 (ins HvxVR:$Vu32),
35760 "$Vdd32.h = vsxt($Vu32.b)",
35761 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
35762 let Inst{7-5} = 0b011;
35763 let Inst{13-13} = 0b0;
35764 let Inst{31-16} = 0b0001111000000010;
35765 let hasNewValue = 1;
35766 let opNewValue = 0;
35767 let DecoderNamespace = "EXT_mmvec";
35768 }
35769 def V6_vsb_alt : HInst<
35770 (outs HvxWR:$Vdd32),
35771 (ins HvxVR:$Vu32),
35772 "$Vdd32 = vsxtb($Vu32)",
35773 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35774 let hasNewValue = 1;
35775 let opNewValue = 0;
35776 let isPseudo = 1;
35777 let isCodeGenOnly = 1;
35778 let DecoderNamespace = "EXT_mmvec";
35779 }
35780 def V6_vscattermh : HInst<
35781 (outs),
35782 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35783 "vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
35784 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35785 let Inst{7-5} = 0b001;
35786 let Inst{31-21} = 0b00101111001;
35787 let accessSize = HalfWordAccess;
35788 let mayStore = 1;
35789 let DecoderNamespace = "EXT_mmvec";
35790 }
35791 def V6_vscattermh_add : HInst<
35792 (outs),
35793 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35794 "vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
35795 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35796 let Inst{7-5} = 0b101;
35797 let Inst{31-21} = 0b00101111001;
35798 let accessSize = HalfWordAccess;
35799 let isAccumulator = 1;
35800 let mayStore = 1;
35801 let DecoderNamespace = "EXT_mmvec";
35802 }
35803 def V6_vscattermh_add_alt : HInst<
35804 (outs),
35805 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35806 "vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
35807 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35808 let isAccumulator = 1;
35809 let isPseudo = 1;
35810 let isCodeGenOnly = 1;
35811 let DecoderNamespace = "EXT_mmvec";
35812 }
35813 def V6_vscattermh_alt : HInst<
35814 (outs),
35815 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35816 "vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
35817 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35818 let isPseudo = 1;
35819 let isCodeGenOnly = 1;
35820 let DecoderNamespace = "EXT_mmvec";
35821 }
35822 def V6_vscattermhq : HInst<
35823 (outs),
35824 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35825 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
35826 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
35827 let Inst{7-7} = 0b1;
35828 let Inst{31-21} = 0b00101111100;
35829 let accessSize = HalfWordAccess;
35830 let mayStore = 1;
35831 let DecoderNamespace = "EXT_mmvec";
35832 }
35833 def V6_vscattermhq_alt : HInst<
35834 (outs),
35835 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35836 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
35837 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35838 let isPseudo = 1;
35839 let isCodeGenOnly = 1;
35840 let DecoderNamespace = "EXT_mmvec";
35841 }
35842 def V6_vscattermhw : HInst<
35843 (outs),
35844 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35845 "vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
35846 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
35847 let Inst{7-5} = 0b010;
35848 let Inst{31-21} = 0b00101111001;
35849 let accessSize = HalfWordAccess;
35850 let mayStore = 1;
35851 let DecoderNamespace = "EXT_mmvec";
35852 }
35853 def V6_vscattermhw_add : HInst<
35854 (outs),
35855 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35856 "vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
35857 tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
35858 let Inst{7-5} = 0b110;
35859 let Inst{31-21} = 0b00101111001;
35860 let accessSize = HalfWordAccess;
35861 let isAccumulator = 1;
35862 let mayStore = 1;
35863 let DecoderNamespace = "EXT_mmvec";
35864 }
35865 def V6_vscattermhwq : HInst<
35866 (outs),
35867 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35868 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
35869 tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
35870 let Inst{7-7} = 0b0;
35871 let Inst{31-21} = 0b00101111101;
35872 let accessSize = HalfWordAccess;
35873 let mayStore = 1;
35874 let DecoderNamespace = "EXT_mmvec";
35875 }
35876 def V6_vscattermw : HInst<
35877 (outs),
35878 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35879 "vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
35880 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35881 let Inst{7-5} = 0b000;
35882 let Inst{31-21} = 0b00101111001;
35883 let accessSize = WordAccess;
35884 let mayStore = 1;
35885 let DecoderNamespace = "EXT_mmvec";
35886 }
35887 def V6_vscattermw_add : HInst<
35888 (outs),
35889 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35890 "vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
35891 tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35892 let Inst{7-5} = 0b100;
35893 let Inst{31-21} = 0b00101111001;
35894 let accessSize = WordAccess;
35895 let isAccumulator = 1;
35896 let mayStore = 1;
35897 let DecoderNamespace = "EXT_mmvec";
35898 }
35899 def V6_vscattermw_add_alt : HInst<
35900 (outs),
35901 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35902 "vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
35903 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35904 let isAccumulator = 1;
35905 let isPseudo = 1;
35906 let isCodeGenOnly = 1;
35907 let DecoderNamespace = "EXT_mmvec";
35908 }
35909 def V6_vscattermw_alt : HInst<
35910 (outs),
35911 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35912 "vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
35913 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35914 let isPseudo = 1;
35915 let isCodeGenOnly = 1;
35916 let DecoderNamespace = "EXT_mmvec";
35917 }
35918 def V6_vscattermwh_add_alt : HInst<
35919 (outs),
35920 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35921 "vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
35922 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35923 let isAccumulator = 1;
35924 let isPseudo = 1;
35925 let isCodeGenOnly = 1;
35926 let DecoderNamespace = "EXT_mmvec";
35927 }
35928 def V6_vscattermwh_alt : HInst<
35929 (outs),
35930 (ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35931 "vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
35932 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35933 let isPseudo = 1;
35934 let isCodeGenOnly = 1;
35935 let DecoderNamespace = "EXT_mmvec";
35936 }
35937 def V6_vscattermwhq_alt : HInst<
35938 (outs),
35939 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35940 "if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
35941 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35942 let isPseudo = 1;
35943 let isCodeGenOnly = 1;
35944 let DecoderNamespace = "EXT_mmvec";
35945 }
35946 def V6_vscattermwq : HInst<
35947 (outs),
35948 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35949 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
35950 tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
35951 let Inst{7-7} = 0b0;
35952 let Inst{31-21} = 0b00101111100;
35953 let accessSize = WordAccess;
35954 let mayStore = 1;
35955 let DecoderNamespace = "EXT_mmvec";
35956 }
35957 def V6_vscattermwq_alt : HInst<
35958 (outs),
35959 (ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35960 "if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
35961 PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35962 let isPseudo = 1;
35963 let isCodeGenOnly = 1;
35964 let DecoderNamespace = "EXT_mmvec";
35965 }
35966 def V6_vsh : HInst<
35967 (outs HvxWR:$Vdd32),
35968 (ins HvxVR:$Vu32),
35969 "$Vdd32.w = vsxt($Vu32.h)",
35970 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
35971 let Inst{7-5} = 0b100;
35972 let Inst{13-13} = 0b0;
35973 let Inst{31-16} = 0b0001111000000010;
35974 let hasNewValue = 1;
35975 let opNewValue = 0;
35976 let DecoderNamespace = "EXT_mmvec";
35977 }
35978 def V6_vsh_alt : HInst<
35979 (outs HvxWR:$Vdd32),
35980 (ins HvxVR:$Vu32),
35981 "$Vdd32 = vsxth($Vu32)",
35982 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35983 let hasNewValue = 1;
35984 let opNewValue = 0;
35985 let isPseudo = 1;
35986 let isCodeGenOnly = 1;
35987 let DecoderNamespace = "EXT_mmvec";
35988 }
35989 def V6_vshufeh : HInst<
35990 (outs HvxVR:$Vd32),
35991 (ins HvxVR:$Vu32, HvxVR:$Vv32),
35992 "$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
35993 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35994 let Inst{7-5} = 0b011;
35995 let Inst{13-13} = 0b0;
35996 let Inst{31-21} = 0b00011111010;
35997 let hasNewValue = 1;
35998 let opNewValue = 0;
35999 let DecoderNamespace = "EXT_mmvec";
36000 }
36001 def V6_vshufeh_alt : HInst<
36002 (outs HvxVR:$Vd32),
36003 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36004 "$Vd32 = vshuffeh($Vu32,$Vv32)",
36005 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36006 let hasNewValue = 1;
36007 let opNewValue = 0;
36008 let isPseudo = 1;
36009 let isCodeGenOnly = 1;
36010 let DecoderNamespace = "EXT_mmvec";
36011 }
36012 def V6_vshuff : HInst<
36013 (outs HvxVR:$Vy32, HvxVR:$Vx32),
36014 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
36015 "vshuff($Vy32,$Vx32,$Rt32)",
36016 tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
36017 let Inst{7-5} = 0b001;
36018 let Inst{13-13} = 0b1;
36019 let Inst{31-21} = 0b00011001111;
36020 let hasNewValue = 1;
36021 let opNewValue = 0;
36022 let hasNewValue2 = 1;
36023 let opNewValue2 = 1;
36024 let DecoderNamespace = "EXT_mmvec";
36025 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
36026 }
36027 def V6_vshuffb : HInst<
36028 (outs HvxVR:$Vd32),
36029 (ins HvxVR:$Vu32),
36030 "$Vd32.b = vshuff($Vu32.b)",
36031 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
36032 let Inst{7-5} = 0b000;
36033 let Inst{13-13} = 0b0;
36034 let Inst{31-16} = 0b0001111000000010;
36035 let hasNewValue = 1;
36036 let opNewValue = 0;
36037 let DecoderNamespace = "EXT_mmvec";
36038 }
36039 def V6_vshuffb_alt : HInst<
36040 (outs HvxVR:$Vd32),
36041 (ins HvxVR:$Vu32),
36042 "$Vd32 = vshuffb($Vu32)",
36043 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36044 let hasNewValue = 1;
36045 let opNewValue = 0;
36046 let isPseudo = 1;
36047 let isCodeGenOnly = 1;
36048 let DecoderNamespace = "EXT_mmvec";
36049 }
36050 def V6_vshuffeb : HInst<
36051 (outs HvxVR:$Vd32),
36052 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36053 "$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
36054 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36055 let Inst{7-5} = 0b001;
36056 let Inst{13-13} = 0b0;
36057 let Inst{31-21} = 0b00011111010;
36058 let hasNewValue = 1;
36059 let opNewValue = 0;
36060 let DecoderNamespace = "EXT_mmvec";
36061 }
36062 def V6_vshuffeb_alt : HInst<
36063 (outs HvxVR:$Vd32),
36064 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36065 "$Vd32 = vshuffeb($Vu32,$Vv32)",
36066 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36067 let hasNewValue = 1;
36068 let opNewValue = 0;
36069 let isPseudo = 1;
36070 let isCodeGenOnly = 1;
36071 let DecoderNamespace = "EXT_mmvec";
36072 }
36073 def V6_vshuffh : HInst<
36074 (outs HvxVR:$Vd32),
36075 (ins HvxVR:$Vu32),
36076 "$Vd32.h = vshuff($Vu32.h)",
36077 tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
36078 let Inst{7-5} = 0b111;
36079 let Inst{13-13} = 0b0;
36080 let Inst{31-16} = 0b0001111000000001;
36081 let hasNewValue = 1;
36082 let opNewValue = 0;
36083 let DecoderNamespace = "EXT_mmvec";
36084 }
36085 def V6_vshuffh_alt : HInst<
36086 (outs HvxVR:$Vd32),
36087 (ins HvxVR:$Vu32),
36088 "$Vd32 = vshuffh($Vu32)",
36089 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36090 let hasNewValue = 1;
36091 let opNewValue = 0;
36092 let isPseudo = 1;
36093 let isCodeGenOnly = 1;
36094 let DecoderNamespace = "EXT_mmvec";
36095 }
36096 def V6_vshuffob : HInst<
36097 (outs HvxVR:$Vd32),
36098 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36099 "$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
36100 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36101 let Inst{7-5} = 0b010;
36102 let Inst{13-13} = 0b0;
36103 let Inst{31-21} = 0b00011111010;
36104 let hasNewValue = 1;
36105 let opNewValue = 0;
36106 let DecoderNamespace = "EXT_mmvec";
36107 }
36108 def V6_vshuffob_alt : HInst<
36109 (outs HvxVR:$Vd32),
36110 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36111 "$Vd32 = vshuffob($Vu32,$Vv32)",
36112 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36113 let hasNewValue = 1;
36114 let opNewValue = 0;
36115 let isPseudo = 1;
36116 let isCodeGenOnly = 1;
36117 let DecoderNamespace = "EXT_mmvec";
36118 }
36119 def V6_vshuffvdd : HInst<
36120 (outs HvxWR:$Vdd32),
36121 (ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
36122 "$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
36123 tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
36124 let Inst{7-5} = 0b011;
36125 let Inst{13-13} = 0b1;
36126 let Inst{31-24} = 0b00011011;
36127 let hasNewValue = 1;
36128 let opNewValue = 0;
36129 let DecoderNamespace = "EXT_mmvec";
36130 }
36131 def V6_vshufoeb : HInst<
36132 (outs HvxWR:$Vdd32),
36133 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36134 "$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
36135 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36136 let Inst{7-5} = 0b110;
36137 let Inst{13-13} = 0b0;
36138 let Inst{31-21} = 0b00011111010;
36139 let hasNewValue = 1;
36140 let opNewValue = 0;
36141 let DecoderNamespace = "EXT_mmvec";
36142 }
36143 def V6_vshufoeb_alt : HInst<
36144 (outs HvxWR:$Vdd32),
36145 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36146 "$Vdd32 = vshuffoeb($Vu32,$Vv32)",
36147 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36148 let hasNewValue = 1;
36149 let opNewValue = 0;
36150 let isPseudo = 1;
36151 let isCodeGenOnly = 1;
36152 let DecoderNamespace = "EXT_mmvec";
36153 }
36154 def V6_vshufoeh : HInst<
36155 (outs HvxWR:$Vdd32),
36156 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36157 "$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
36158 tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36159 let Inst{7-5} = 0b101;
36160 let Inst{13-13} = 0b0;
36161 let Inst{31-21} = 0b00011111010;
36162 let hasNewValue = 1;
36163 let opNewValue = 0;
36164 let DecoderNamespace = "EXT_mmvec";
36165 }
36166 def V6_vshufoeh_alt : HInst<
36167 (outs HvxWR:$Vdd32),
36168 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36169 "$Vdd32 = vshuffoeh($Vu32,$Vv32)",
36170 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36171 let hasNewValue = 1;
36172 let opNewValue = 0;
36173 let isPseudo = 1;
36174 let isCodeGenOnly = 1;
36175 let DecoderNamespace = "EXT_mmvec";
36176 }
36177 def V6_vshufoh : HInst<
36178 (outs HvxVR:$Vd32),
36179 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36180 "$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
36181 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36182 let Inst{7-5} = 0b100;
36183 let Inst{13-13} = 0b0;
36184 let Inst{31-21} = 0b00011111010;
36185 let hasNewValue = 1;
36186 let opNewValue = 0;
36187 let DecoderNamespace = "EXT_mmvec";
36188 }
36189 def V6_vshufoh_alt : HInst<
36190 (outs HvxVR:$Vd32),
36191 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36192 "$Vd32 = vshuffoh($Vu32,$Vv32)",
36193 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36194 let hasNewValue = 1;
36195 let opNewValue = 0;
36196 let isPseudo = 1;
36197 let isCodeGenOnly = 1;
36198 let DecoderNamespace = "EXT_mmvec";
36199 }
36200 def V6_vsubb : HInst<
36201 (outs HvxVR:$Vd32),
36202 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36203 "$Vd32.b = vsub($Vu32.b,$Vv32.b)",
36204 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36205 let Inst{7-5} = 0b101;
36206 let Inst{13-13} = 0b0;
36207 let Inst{31-21} = 0b00011100010;
36208 let hasNewValue = 1;
36209 let opNewValue = 0;
36210 let DecoderNamespace = "EXT_mmvec";
36211 }
36212 def V6_vsubb_alt : HInst<
36213 (outs HvxVR:$Vd32),
36214 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36215 "$Vd32 = vsubb($Vu32,$Vv32)",
36216 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36217 let hasNewValue = 1;
36218 let opNewValue = 0;
36219 let isPseudo = 1;
36220 let isCodeGenOnly = 1;
36221 let DecoderNamespace = "EXT_mmvec";
36222 }
36223 def V6_vsubb_dv : HInst<
36224 (outs HvxWR:$Vdd32),
36225 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36226 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
36227 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36228 let Inst{7-5} = 0b011;
36229 let Inst{13-13} = 0b0;
36230 let Inst{31-21} = 0b00011100100;
36231 let hasNewValue = 1;
36232 let opNewValue = 0;
36233 let DecoderNamespace = "EXT_mmvec";
36234 }
36235 def V6_vsubb_dv_alt : HInst<
36236 (outs HvxWR:$Vdd32),
36237 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36238 "$Vdd32 = vsubb($Vuu32,$Vvv32)",
36239 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36240 let hasNewValue = 1;
36241 let opNewValue = 0;
36242 let isPseudo = 1;
36243 let isCodeGenOnly = 1;
36244 let DecoderNamespace = "EXT_mmvec";
36245 }
36246 def V6_vsubbnq : HInst<
36247 (outs HvxVR:$Vx32),
36248 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36249 "if (!$Qv4) $Vx32.b -= $Vu32.b",
36250 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36251 let Inst{7-5} = 0b001;
36252 let Inst{13-13} = 0b1;
36253 let Inst{21-16} = 0b000010;
36254 let Inst{31-24} = 0b00011110;
36255 let hasNewValue = 1;
36256 let opNewValue = 0;
36257 let DecoderNamespace = "EXT_mmvec";
36258 let Constraints = "$Vx32 = $Vx32in";
36259 }
36260 def V6_vsubbnq_alt : HInst<
36261 (outs HvxVR:$Vx32),
36262 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36263 "if (!$Qv4.b) $Vx32.b -= $Vu32.b",
36264 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36265 let hasNewValue = 1;
36266 let opNewValue = 0;
36267 let isPseudo = 1;
36268 let isCodeGenOnly = 1;
36269 let DecoderNamespace = "EXT_mmvec";
36270 let Constraints = "$Vx32 = $Vx32in";
36271 }
36272 def V6_vsubbq : HInst<
36273 (outs HvxVR:$Vx32),
36274 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36275 "if ($Qv4) $Vx32.b -= $Vu32.b",
36276 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36277 let Inst{7-5} = 0b110;
36278 let Inst{13-13} = 0b1;
36279 let Inst{21-16} = 0b000001;
36280 let Inst{31-24} = 0b00011110;
36281 let hasNewValue = 1;
36282 let opNewValue = 0;
36283 let DecoderNamespace = "EXT_mmvec";
36284 let Constraints = "$Vx32 = $Vx32in";
36285 }
36286 def V6_vsubbq_alt : HInst<
36287 (outs HvxVR:$Vx32),
36288 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36289 "if ($Qv4.b) $Vx32.b -= $Vu32.b",
36290 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36291 let hasNewValue = 1;
36292 let opNewValue = 0;
36293 let isPseudo = 1;
36294 let isCodeGenOnly = 1;
36295 let DecoderNamespace = "EXT_mmvec";
36296 let Constraints = "$Vx32 = $Vx32in";
36297 }
36298 def V6_vsubbsat : HInst<
36299 (outs HvxVR:$Vd32),
36300 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36301 "$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
36302 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36303 let Inst{7-5} = 0b010;
36304 let Inst{13-13} = 0b0;
36305 let Inst{31-21} = 0b00011111001;
36306 let hasNewValue = 1;
36307 let opNewValue = 0;
36308 let DecoderNamespace = "EXT_mmvec";
36309 }
36310 def V6_vsubbsat_alt : HInst<
36311 (outs HvxVR:$Vd32),
36312 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36313 "$Vd32 = vsubb($Vu32,$Vv32):sat",
36314 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36315 let hasNewValue = 1;
36316 let opNewValue = 0;
36317 let isPseudo = 1;
36318 let isCodeGenOnly = 1;
36319 let DecoderNamespace = "EXT_mmvec";
36320 }
36321 def V6_vsubbsat_dv : HInst<
36322 (outs HvxWR:$Vdd32),
36323 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36324 "$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
36325 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
36326 let Inst{7-5} = 0b001;
36327 let Inst{13-13} = 0b0;
36328 let Inst{31-21} = 0b00011110101;
36329 let hasNewValue = 1;
36330 let opNewValue = 0;
36331 let DecoderNamespace = "EXT_mmvec";
36332 }
36333 def V6_vsubbsat_dv_alt : HInst<
36334 (outs HvxWR:$Vdd32),
36335 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36336 "$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
36337 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36338 let hasNewValue = 1;
36339 let opNewValue = 0;
36340 let isPseudo = 1;
36341 let isCodeGenOnly = 1;
36342 let DecoderNamespace = "EXT_mmvec";
36343 }
36344 def V6_vsubcarry : HInst<
36345 (outs HvxVR:$Vd32, HvxQR:$Qx4),
36346 (ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
36347 "$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
36348 tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
36349 let Inst{7-7} = 0b1;
36350 let Inst{13-13} = 0b1;
36351 let Inst{31-21} = 0b00011100101;
36352 let hasNewValue = 1;
36353 let opNewValue = 0;
36354 let DecoderNamespace = "EXT_mmvec";
36355 let Constraints = "$Qx4 = $Qx4in";
36356 }
36357 def V6_vsubcarryo : HInst<
36358 (outs HvxVR:$Vd32, HvxQR:$Qe4),
36359 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36360 "$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
36361 tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> {
36362 let Inst{7-7} = 0b1;
36363 let Inst{13-13} = 0b1;
36364 let Inst{31-21} = 0b00011101101;
36365 let hasNewValue = 1;
36366 let opNewValue = 0;
36367 let hasNewValue2 = 1;
36368 let opNewValue2 = 1;
36369 let DecoderNamespace = "EXT_mmvec";
36370 }
36371 def V6_vsubh : HInst<
36372 (outs HvxVR:$Vd32),
36373 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36374 "$Vd32.h = vsub($Vu32.h,$Vv32.h)",
36375 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36376 let Inst{7-5} = 0b110;
36377 let Inst{13-13} = 0b0;
36378 let Inst{31-21} = 0b00011100010;
36379 let hasNewValue = 1;
36380 let opNewValue = 0;
36381 let DecoderNamespace = "EXT_mmvec";
36382 }
36383 def V6_vsubh_alt : HInst<
36384 (outs HvxVR:$Vd32),
36385 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36386 "$Vd32 = vsubh($Vu32,$Vv32)",
36387 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36388 let hasNewValue = 1;
36389 let opNewValue = 0;
36390 let isPseudo = 1;
36391 let isCodeGenOnly = 1;
36392 let DecoderNamespace = "EXT_mmvec";
36393 }
36394 def V6_vsubh_dv : HInst<
36395 (outs HvxWR:$Vdd32),
36396 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36397 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
36398 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36399 let Inst{7-5} = 0b100;
36400 let Inst{13-13} = 0b0;
36401 let Inst{31-21} = 0b00011100100;
36402 let hasNewValue = 1;
36403 let opNewValue = 0;
36404 let DecoderNamespace = "EXT_mmvec";
36405 }
36406 def V6_vsubh_dv_alt : HInst<
36407 (outs HvxWR:$Vdd32),
36408 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36409 "$Vdd32 = vsubh($Vuu32,$Vvv32)",
36410 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36411 let hasNewValue = 1;
36412 let opNewValue = 0;
36413 let isPseudo = 1;
36414 let isCodeGenOnly = 1;
36415 let DecoderNamespace = "EXT_mmvec";
36416 }
36417 def V6_vsubhnq : HInst<
36418 (outs HvxVR:$Vx32),
36419 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36420 "if (!$Qv4) $Vx32.h -= $Vu32.h",
36421 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36422 let Inst{7-5} = 0b010;
36423 let Inst{13-13} = 0b1;
36424 let Inst{21-16} = 0b000010;
36425 let Inst{31-24} = 0b00011110;
36426 let hasNewValue = 1;
36427 let opNewValue = 0;
36428 let DecoderNamespace = "EXT_mmvec";
36429 let Constraints = "$Vx32 = $Vx32in";
36430 }
36431 def V6_vsubhnq_alt : HInst<
36432 (outs HvxVR:$Vx32),
36433 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36434 "if (!$Qv4.h) $Vx32.h -= $Vu32.h",
36435 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36436 let hasNewValue = 1;
36437 let opNewValue = 0;
36438 let isPseudo = 1;
36439 let isCodeGenOnly = 1;
36440 let DecoderNamespace = "EXT_mmvec";
36441 let Constraints = "$Vx32 = $Vx32in";
36442 }
36443 def V6_vsubhq : HInst<
36444 (outs HvxVR:$Vx32),
36445 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36446 "if ($Qv4) $Vx32.h -= $Vu32.h",
36447 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36448 let Inst{7-5} = 0b111;
36449 let Inst{13-13} = 0b1;
36450 let Inst{21-16} = 0b000001;
36451 let Inst{31-24} = 0b00011110;
36452 let hasNewValue = 1;
36453 let opNewValue = 0;
36454 let DecoderNamespace = "EXT_mmvec";
36455 let Constraints = "$Vx32 = $Vx32in";
36456 }
36457 def V6_vsubhq_alt : HInst<
36458 (outs HvxVR:$Vx32),
36459 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36460 "if ($Qv4.h) $Vx32.h -= $Vu32.h",
36461 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36462 let hasNewValue = 1;
36463 let opNewValue = 0;
36464 let isPseudo = 1;
36465 let isCodeGenOnly = 1;
36466 let DecoderNamespace = "EXT_mmvec";
36467 let Constraints = "$Vx32 = $Vx32in";
36468 }
36469 def V6_vsubhsat : HInst<
36470 (outs HvxVR:$Vd32),
36471 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36472 "$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
36473 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36474 let Inst{7-5} = 0b010;
36475 let Inst{13-13} = 0b0;
36476 let Inst{31-21} = 0b00011100011;
36477 let hasNewValue = 1;
36478 let opNewValue = 0;
36479 let DecoderNamespace = "EXT_mmvec";
36480 }
36481 def V6_vsubhsat_alt : HInst<
36482 (outs HvxVR:$Vd32),
36483 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36484 "$Vd32 = vsubh($Vu32,$Vv32):sat",
36485 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36486 let hasNewValue = 1;
36487 let opNewValue = 0;
36488 let isPseudo = 1;
36489 let isCodeGenOnly = 1;
36490 let DecoderNamespace = "EXT_mmvec";
36491 }
36492 def V6_vsubhsat_dv : HInst<
36493 (outs HvxWR:$Vdd32),
36494 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36495 "$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
36496 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36497 let Inst{7-5} = 0b000;
36498 let Inst{13-13} = 0b0;
36499 let Inst{31-21} = 0b00011100101;
36500 let hasNewValue = 1;
36501 let opNewValue = 0;
36502 let DecoderNamespace = "EXT_mmvec";
36503 }
36504 def V6_vsubhsat_dv_alt : HInst<
36505 (outs HvxWR:$Vdd32),
36506 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36507 "$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
36508 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36509 let hasNewValue = 1;
36510 let opNewValue = 0;
36511 let isPseudo = 1;
36512 let isCodeGenOnly = 1;
36513 let DecoderNamespace = "EXT_mmvec";
36514 }
36515 def V6_vsubhw : HInst<
36516 (outs HvxWR:$Vdd32),
36517 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36518 "$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
36519 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36520 let Inst{7-5} = 0b111;
36521 let Inst{13-13} = 0b0;
36522 let Inst{31-21} = 0b00011100101;
36523 let hasNewValue = 1;
36524 let opNewValue = 0;
36525 let DecoderNamespace = "EXT_mmvec";
36526 }
36527 def V6_vsubhw_alt : HInst<
36528 (outs HvxWR:$Vdd32),
36529 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36530 "$Vdd32 = vsubh($Vu32,$Vv32)",
36531 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36532 let hasNewValue = 1;
36533 let opNewValue = 0;
36534 let isPseudo = 1;
36535 let isCodeGenOnly = 1;
36536 let DecoderNamespace = "EXT_mmvec";
36537 }
36538 def V6_vsububh : HInst<
36539 (outs HvxWR:$Vdd32),
36540 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36541 "$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
36542 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36543 let Inst{7-5} = 0b101;
36544 let Inst{13-13} = 0b0;
36545 let Inst{31-21} = 0b00011100101;
36546 let hasNewValue = 1;
36547 let opNewValue = 0;
36548 let DecoderNamespace = "EXT_mmvec";
36549 }
36550 def V6_vsububh_alt : HInst<
36551 (outs HvxWR:$Vdd32),
36552 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36553 "$Vdd32 = vsubub($Vu32,$Vv32)",
36554 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36555 let hasNewValue = 1;
36556 let opNewValue = 0;
36557 let isPseudo = 1;
36558 let isCodeGenOnly = 1;
36559 let DecoderNamespace = "EXT_mmvec";
36560 }
36561 def V6_vsububsat : HInst<
36562 (outs HvxVR:$Vd32),
36563 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36564 "$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
36565 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36566 let Inst{7-5} = 0b000;
36567 let Inst{13-13} = 0b0;
36568 let Inst{31-21} = 0b00011100011;
36569 let hasNewValue = 1;
36570 let opNewValue = 0;
36571 let DecoderNamespace = "EXT_mmvec";
36572 }
36573 def V6_vsububsat_alt : HInst<
36574 (outs HvxVR:$Vd32),
36575 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36576 "$Vd32 = vsubub($Vu32,$Vv32):sat",
36577 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36578 let hasNewValue = 1;
36579 let opNewValue = 0;
36580 let isPseudo = 1;
36581 let isCodeGenOnly = 1;
36582 let DecoderNamespace = "EXT_mmvec";
36583 }
36584 def V6_vsububsat_dv : HInst<
36585 (outs HvxWR:$Vdd32),
36586 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36587 "$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
36588 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36589 let Inst{7-5} = 0b110;
36590 let Inst{13-13} = 0b0;
36591 let Inst{31-21} = 0b00011100100;
36592 let hasNewValue = 1;
36593 let opNewValue = 0;
36594 let DecoderNamespace = "EXT_mmvec";
36595 }
36596 def V6_vsububsat_dv_alt : HInst<
36597 (outs HvxWR:$Vdd32),
36598 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36599 "$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
36600 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36601 let hasNewValue = 1;
36602 let opNewValue = 0;
36603 let isPseudo = 1;
36604 let isCodeGenOnly = 1;
36605 let DecoderNamespace = "EXT_mmvec";
36606 }
36607 def V6_vsubububb_sat : HInst<
36608 (outs HvxVR:$Vd32),
36609 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36610 "$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
36611 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36612 let Inst{7-5} = 0b101;
36613 let Inst{13-13} = 0b0;
36614 let Inst{31-21} = 0b00011110101;
36615 let hasNewValue = 1;
36616 let opNewValue = 0;
36617 let DecoderNamespace = "EXT_mmvec";
36618 }
36619 def V6_vsubuhsat : HInst<
36620 (outs HvxVR:$Vd32),
36621 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36622 "$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
36623 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36624 let Inst{7-5} = 0b001;
36625 let Inst{13-13} = 0b0;
36626 let Inst{31-21} = 0b00011100011;
36627 let hasNewValue = 1;
36628 let opNewValue = 0;
36629 let DecoderNamespace = "EXT_mmvec";
36630 }
36631 def V6_vsubuhsat_alt : HInst<
36632 (outs HvxVR:$Vd32),
36633 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36634 "$Vd32 = vsubuh($Vu32,$Vv32):sat",
36635 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36636 let hasNewValue = 1;
36637 let opNewValue = 0;
36638 let isPseudo = 1;
36639 let isCodeGenOnly = 1;
36640 let DecoderNamespace = "EXT_mmvec";
36641 }
36642 def V6_vsubuhsat_dv : HInst<
36643 (outs HvxWR:$Vdd32),
36644 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36645 "$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
36646 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36647 let Inst{7-5} = 0b111;
36648 let Inst{13-13} = 0b0;
36649 let Inst{31-21} = 0b00011100100;
36650 let hasNewValue = 1;
36651 let opNewValue = 0;
36652 let DecoderNamespace = "EXT_mmvec";
36653 }
36654 def V6_vsubuhsat_dv_alt : HInst<
36655 (outs HvxWR:$Vdd32),
36656 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36657 "$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
36658 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36659 let hasNewValue = 1;
36660 let opNewValue = 0;
36661 let isPseudo = 1;
36662 let isCodeGenOnly = 1;
36663 let DecoderNamespace = "EXT_mmvec";
36664 }
36665 def V6_vsubuhw : HInst<
36666 (outs HvxWR:$Vdd32),
36667 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36668 "$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
36669 tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36670 let Inst{7-5} = 0b110;
36671 let Inst{13-13} = 0b0;
36672 let Inst{31-21} = 0b00011100101;
36673 let hasNewValue = 1;
36674 let opNewValue = 0;
36675 let DecoderNamespace = "EXT_mmvec";
36676 }
36677 def V6_vsubuhw_alt : HInst<
36678 (outs HvxWR:$Vdd32),
36679 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36680 "$Vdd32 = vsubuh($Vu32,$Vv32)",
36681 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36682 let hasNewValue = 1;
36683 let opNewValue = 0;
36684 let isPseudo = 1;
36685 let isCodeGenOnly = 1;
36686 let DecoderNamespace = "EXT_mmvec";
36687 }
36688 def V6_vsubuwsat : HInst<
36689 (outs HvxVR:$Vd32),
36690 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36691 "$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
36692 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36693 let Inst{7-5} = 0b100;
36694 let Inst{13-13} = 0b0;
36695 let Inst{31-21} = 0b00011111110;
36696 let hasNewValue = 1;
36697 let opNewValue = 0;
36698 let DecoderNamespace = "EXT_mmvec";
36699 }
36700 def V6_vsubuwsat_alt : HInst<
36701 (outs HvxVR:$Vd32),
36702 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36703 "$Vd32 = vsubuw($Vu32,$Vv32):sat",
36704 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36705 let hasNewValue = 1;
36706 let opNewValue = 0;
36707 let isPseudo = 1;
36708 let isCodeGenOnly = 1;
36709 let DecoderNamespace = "EXT_mmvec";
36710 }
36711 def V6_vsubuwsat_dv : HInst<
36712 (outs HvxWR:$Vdd32),
36713 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36714 "$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
36715 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
36716 let Inst{7-5} = 0b011;
36717 let Inst{13-13} = 0b0;
36718 let Inst{31-21} = 0b00011110101;
36719 let hasNewValue = 1;
36720 let opNewValue = 0;
36721 let DecoderNamespace = "EXT_mmvec";
36722 }
36723 def V6_vsubuwsat_dv_alt : HInst<
36724 (outs HvxWR:$Vdd32),
36725 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36726 "$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
36727 PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36728 let hasNewValue = 1;
36729 let opNewValue = 0;
36730 let isPseudo = 1;
36731 let isCodeGenOnly = 1;
36732 let DecoderNamespace = "EXT_mmvec";
36733 }
36734 def V6_vsubw : HInst<
36735 (outs HvxVR:$Vd32),
36736 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36737 "$Vd32.w = vsub($Vu32.w,$Vv32.w)",
36738 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36739 let Inst{7-5} = 0b111;
36740 let Inst{13-13} = 0b0;
36741 let Inst{31-21} = 0b00011100010;
36742 let hasNewValue = 1;
36743 let opNewValue = 0;
36744 let DecoderNamespace = "EXT_mmvec";
36745 }
36746 def V6_vsubw_alt : HInst<
36747 (outs HvxVR:$Vd32),
36748 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36749 "$Vd32 = vsubw($Vu32,$Vv32)",
36750 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36751 let hasNewValue = 1;
36752 let opNewValue = 0;
36753 let isPseudo = 1;
36754 let isCodeGenOnly = 1;
36755 let DecoderNamespace = "EXT_mmvec";
36756 }
36757 def V6_vsubw_dv : HInst<
36758 (outs HvxWR:$Vdd32),
36759 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36760 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
36761 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36762 let Inst{7-5} = 0b101;
36763 let Inst{13-13} = 0b0;
36764 let Inst{31-21} = 0b00011100100;
36765 let hasNewValue = 1;
36766 let opNewValue = 0;
36767 let DecoderNamespace = "EXT_mmvec";
36768 }
36769 def V6_vsubw_dv_alt : HInst<
36770 (outs HvxWR:$Vdd32),
36771 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36772 "$Vdd32 = vsubw($Vuu32,$Vvv32)",
36773 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36774 let hasNewValue = 1;
36775 let opNewValue = 0;
36776 let isPseudo = 1;
36777 let isCodeGenOnly = 1;
36778 let DecoderNamespace = "EXT_mmvec";
36779 }
36780 def V6_vsubwnq : HInst<
36781 (outs HvxVR:$Vx32),
36782 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36783 "if (!$Qv4) $Vx32.w -= $Vu32.w",
36784 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36785 let Inst{7-5} = 0b011;
36786 let Inst{13-13} = 0b1;
36787 let Inst{21-16} = 0b000010;
36788 let Inst{31-24} = 0b00011110;
36789 let hasNewValue = 1;
36790 let opNewValue = 0;
36791 let DecoderNamespace = "EXT_mmvec";
36792 let Constraints = "$Vx32 = $Vx32in";
36793 }
36794 def V6_vsubwnq_alt : HInst<
36795 (outs HvxVR:$Vx32),
36796 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36797 "if (!$Qv4.w) $Vx32.w -= $Vu32.w",
36798 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36799 let hasNewValue = 1;
36800 let opNewValue = 0;
36801 let isPseudo = 1;
36802 let isCodeGenOnly = 1;
36803 let DecoderNamespace = "EXT_mmvec";
36804 let Constraints = "$Vx32 = $Vx32in";
36805 }
36806 def V6_vsubwq : HInst<
36807 (outs HvxVR:$Vx32),
36808 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36809 "if ($Qv4) $Vx32.w -= $Vu32.w",
36810 tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36811 let Inst{7-5} = 0b000;
36812 let Inst{13-13} = 0b1;
36813 let Inst{21-16} = 0b000010;
36814 let Inst{31-24} = 0b00011110;
36815 let hasNewValue = 1;
36816 let opNewValue = 0;
36817 let DecoderNamespace = "EXT_mmvec";
36818 let Constraints = "$Vx32 = $Vx32in";
36819 }
36820 def V6_vsubwq_alt : HInst<
36821 (outs HvxVR:$Vx32),
36822 (ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36823 "if ($Qv4.w) $Vx32.w -= $Vu32.w",
36824 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36825 let hasNewValue = 1;
36826 let opNewValue = 0;
36827 let isPseudo = 1;
36828 let isCodeGenOnly = 1;
36829 let DecoderNamespace = "EXT_mmvec";
36830 let Constraints = "$Vx32 = $Vx32in";
36831 }
36832 def V6_vsubwsat : HInst<
36833 (outs HvxVR:$Vd32),
36834 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36835 "$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
36836 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36837 let Inst{7-5} = 0b011;
36838 let Inst{13-13} = 0b0;
36839 let Inst{31-21} = 0b00011100011;
36840 let hasNewValue = 1;
36841 let opNewValue = 0;
36842 let DecoderNamespace = "EXT_mmvec";
36843 }
36844 def V6_vsubwsat_alt : HInst<
36845 (outs HvxVR:$Vd32),
36846 (ins HvxVR:$Vu32, HvxVR:$Vv32),
36847 "$Vd32 = vsubw($Vu32,$Vv32):sat",
36848 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36849 let hasNewValue = 1;
36850 let opNewValue = 0;
36851 let isPseudo = 1;
36852 let isCodeGenOnly = 1;
36853 let DecoderNamespace = "EXT_mmvec";
36854 }
36855 def V6_vsubwsat_dv : HInst<
36856 (outs HvxWR:$Vdd32),
36857 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36858 "$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
36859 tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36860 let Inst{7-5} = 0b001;
36861 let Inst{13-13} = 0b0;
36862 let Inst{31-21} = 0b00011100101;
36863 let hasNewValue = 1;
36864 let opNewValue = 0;
36865 let DecoderNamespace = "EXT_mmvec";
36866 }
36867 def V6_vsubwsat_dv_alt : HInst<
36868 (outs HvxWR:$Vdd32),
36869 (ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36870 "$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
36871 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36872 let hasNewValue = 1;
36873 let opNewValue = 0;
36874 let isPseudo = 1;
36875 let isCodeGenOnly = 1;
36876 let DecoderNamespace = "EXT_mmvec";
36877 }
36878 def V6_vswap : HInst<
36879 (outs HvxWR:$Vdd32),
36880 (ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
36881 "$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
36882 tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
36883 let Inst{7-7} = 0b0;
36884 let Inst{13-13} = 0b1;
36885 let Inst{31-21} = 0b00011110101;
36886 let hasNewValue = 1;
36887 let opNewValue = 0;
36888 let DecoderNamespace = "EXT_mmvec";
36889 }
36890 def V6_vtmpyb : HInst<
36891 (outs HvxWR:$Vdd32),
36892 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
36893 "$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
36894 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36895 let Inst{7-5} = 0b000;
36896 let Inst{13-13} = 0b0;
36897 let Inst{31-21} = 0b00011001000;
36898 let hasNewValue = 1;
36899 let opNewValue = 0;
36900 let DecoderNamespace = "EXT_mmvec";
36901 }
36902 def V6_vtmpyb_acc : HInst<
36903 (outs HvxWR:$Vxx32),
36904 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36905 "$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
36906 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
36907 let Inst{7-5} = 0b000;
36908 let Inst{13-13} = 0b1;
36909 let Inst{31-21} = 0b00011001000;
36910 let hasNewValue = 1;
36911 let opNewValue = 0;
36912 let isAccumulator = 1;
36913 let DecoderNamespace = "EXT_mmvec";
36914 let Constraints = "$Vxx32 = $Vxx32in";
36915 }
36916 def V6_vtmpyb_acc_alt : HInst<
36917 (outs HvxWR:$Vxx32),
36918 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36919 "$Vxx32 += vtmpyb($Vuu32,$Rt32)",
36920 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36921 let hasNewValue = 1;
36922 let opNewValue = 0;
36923 let isAccumulator = 1;
36924 let isPseudo = 1;
36925 let isCodeGenOnly = 1;
36926 let DecoderNamespace = "EXT_mmvec";
36927 let Constraints = "$Vxx32 = $Vxx32in";
36928 }
36929 def V6_vtmpyb_alt : HInst<
36930 (outs HvxWR:$Vdd32),
36931 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
36932 "$Vdd32 = vtmpyb($Vuu32,$Rt32)",
36933 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36934 let hasNewValue = 1;
36935 let opNewValue = 0;
36936 let isPseudo = 1;
36937 let isCodeGenOnly = 1;
36938 let DecoderNamespace = "EXT_mmvec";
36939 }
36940 def V6_vtmpybus : HInst<
36941 (outs HvxWR:$Vdd32),
36942 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
36943 "$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
36944 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36945 let Inst{7-5} = 0b001;
36946 let Inst{13-13} = 0b0;
36947 let Inst{31-21} = 0b00011001000;
36948 let hasNewValue = 1;
36949 let opNewValue = 0;
36950 let DecoderNamespace = "EXT_mmvec";
36951 }
36952 def V6_vtmpybus_acc : HInst<
36953 (outs HvxWR:$Vxx32),
36954 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36955 "$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
36956 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
36957 let Inst{7-5} = 0b001;
36958 let Inst{13-13} = 0b1;
36959 let Inst{31-21} = 0b00011001000;
36960 let hasNewValue = 1;
36961 let opNewValue = 0;
36962 let isAccumulator = 1;
36963 let DecoderNamespace = "EXT_mmvec";
36964 let Constraints = "$Vxx32 = $Vxx32in";
36965 }
36966 def V6_vtmpybus_acc_alt : HInst<
36967 (outs HvxWR:$Vxx32),
36968 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36969 "$Vxx32 += vtmpybus($Vuu32,$Rt32)",
36970 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36971 let hasNewValue = 1;
36972 let opNewValue = 0;
36973 let isAccumulator = 1;
36974 let isPseudo = 1;
36975 let isCodeGenOnly = 1;
36976 let DecoderNamespace = "EXT_mmvec";
36977 let Constraints = "$Vxx32 = $Vxx32in";
36978 }
36979 def V6_vtmpybus_alt : HInst<
36980 (outs HvxWR:$Vdd32),
36981 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
36982 "$Vdd32 = vtmpybus($Vuu32,$Rt32)",
36983 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36984 let hasNewValue = 1;
36985 let opNewValue = 0;
36986 let isPseudo = 1;
36987 let isCodeGenOnly = 1;
36988 let DecoderNamespace = "EXT_mmvec";
36989 }
36990 def V6_vtmpyhb : HInst<
36991 (outs HvxWR:$Vdd32),
36992 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
36993 "$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
36994 tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36995 let Inst{7-5} = 0b100;
36996 let Inst{13-13} = 0b0;
36997 let Inst{31-21} = 0b00011001101;
36998 let hasNewValue = 1;
36999 let opNewValue = 0;
37000 let DecoderNamespace = "EXT_mmvec";
37001 }
37002 def V6_vtmpyhb_acc : HInst<
37003 (outs HvxWR:$Vxx32),
37004 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
37005 "$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
37006 tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
37007 let Inst{7-5} = 0b010;
37008 let Inst{13-13} = 0b1;
37009 let Inst{31-21} = 0b00011001000;
37010 let hasNewValue = 1;
37011 let opNewValue = 0;
37012 let isAccumulator = 1;
37013 let DecoderNamespace = "EXT_mmvec";
37014 let Constraints = "$Vxx32 = $Vxx32in";
37015 }
37016 def V6_vtmpyhb_acc_alt : HInst<
37017 (outs HvxWR:$Vxx32),
37018 (ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
37019 "$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
37020 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37021 let hasNewValue = 1;
37022 let opNewValue = 0;
37023 let isAccumulator = 1;
37024 let isPseudo = 1;
37025 let isCodeGenOnly = 1;
37026 let DecoderNamespace = "EXT_mmvec";
37027 let Constraints = "$Vxx32 = $Vxx32in";
37028 }
37029 def V6_vtmpyhb_alt : HInst<
37030 (outs HvxWR:$Vdd32),
37031 (ins HvxWR:$Vuu32, IntRegs:$Rt32),
37032 "$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
37033 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37034 let hasNewValue = 1;
37035 let opNewValue = 0;
37036 let isPseudo = 1;
37037 let isCodeGenOnly = 1;
37038 let DecoderNamespace = "EXT_mmvec";
37039 }
37040 def V6_vtran2x2_map : HInst<
37041 (outs HvxVR:$Vy32, HvxVR:$Vx32),
37042 (ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
37043 "vtrans2x2($Vy32,$Vx32,$Rt32)",
37044 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37045 let hasNewValue = 1;
37046 let opNewValue = 0;
37047 let hasNewValue2 = 1;
37048 let opNewValue2 = 1;
37049 let isPseudo = 1;
37050 let isCodeGenOnly = 1;
37051 let DecoderNamespace = "EXT_mmvec";
37052 let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
37053 }
37054 def V6_vunpackb : HInst<
37055 (outs HvxWR:$Vdd32),
37056 (ins HvxVR:$Vu32),
37057 "$Vdd32.h = vunpack($Vu32.b)",
37058 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37059 let Inst{7-5} = 0b010;
37060 let Inst{13-13} = 0b0;
37061 let Inst{31-16} = 0b0001111000000001;
37062 let hasNewValue = 1;
37063 let opNewValue = 0;
37064 let DecoderNamespace = "EXT_mmvec";
37065 }
37066 def V6_vunpackb_alt : HInst<
37067 (outs HvxWR:$Vdd32),
37068 (ins HvxVR:$Vu32),
37069 "$Vdd32 = vunpackb($Vu32)",
37070 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37071 let hasNewValue = 1;
37072 let opNewValue = 0;
37073 let isPseudo = 1;
37074 let isCodeGenOnly = 1;
37075 let DecoderNamespace = "EXT_mmvec";
37076 }
37077 def V6_vunpackh : HInst<
37078 (outs HvxWR:$Vdd32),
37079 (ins HvxVR:$Vu32),
37080 "$Vdd32.w = vunpack($Vu32.h)",
37081 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37082 let Inst{7-5} = 0b011;
37083 let Inst{13-13} = 0b0;
37084 let Inst{31-16} = 0b0001111000000001;
37085 let hasNewValue = 1;
37086 let opNewValue = 0;
37087 let DecoderNamespace = "EXT_mmvec";
37088 }
37089 def V6_vunpackh_alt : HInst<
37090 (outs HvxWR:$Vdd32),
37091 (ins HvxVR:$Vu32),
37092 "$Vdd32 = vunpackh($Vu32)",
37093 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37094 let hasNewValue = 1;
37095 let opNewValue = 0;
37096 let isPseudo = 1;
37097 let isCodeGenOnly = 1;
37098 let DecoderNamespace = "EXT_mmvec";
37099 }
37100 def V6_vunpackob : HInst<
37101 (outs HvxWR:$Vxx32),
37102 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37103 "$Vxx32.h |= vunpacko($Vu32.b)",
37104 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
37105 let Inst{7-5} = 0b000;
37106 let Inst{13-13} = 0b1;
37107 let Inst{31-16} = 0b0001111000000000;
37108 let hasNewValue = 1;
37109 let opNewValue = 0;
37110 let isAccumulator = 1;
37111 let DecoderNamespace = "EXT_mmvec";
37112 let Constraints = "$Vxx32 = $Vxx32in";
37113 }
37114 def V6_vunpackob_alt : HInst<
37115 (outs HvxWR:$Vxx32),
37116 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37117 "$Vxx32 |= vunpackob($Vu32)",
37118 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37119 let hasNewValue = 1;
37120 let opNewValue = 0;
37121 let isAccumulator = 1;
37122 let isPseudo = 1;
37123 let DecoderNamespace = "EXT_mmvec";
37124 let Constraints = "$Vxx32 = $Vxx32in";
37125 }
37126 def V6_vunpackoh : HInst<
37127 (outs HvxWR:$Vxx32),
37128 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37129 "$Vxx32.w |= vunpacko($Vu32.h)",
37130 tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
37131 let Inst{7-5} = 0b001;
37132 let Inst{13-13} = 0b1;
37133 let Inst{31-16} = 0b0001111000000000;
37134 let hasNewValue = 1;
37135 let opNewValue = 0;
37136 let isAccumulator = 1;
37137 let DecoderNamespace = "EXT_mmvec";
37138 let Constraints = "$Vxx32 = $Vxx32in";
37139 }
37140 def V6_vunpackoh_alt : HInst<
37141 (outs HvxWR:$Vxx32),
37142 (ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37143 "$Vxx32 |= vunpackoh($Vu32)",
37144 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37145 let hasNewValue = 1;
37146 let opNewValue = 0;
37147 let isAccumulator = 1;
37148 let isPseudo = 1;
37149 let isCodeGenOnly = 1;
37150 let DecoderNamespace = "EXT_mmvec";
37151 let Constraints = "$Vxx32 = $Vxx32in";
37152 }
37153 def V6_vunpackub : HInst<
37154 (outs HvxWR:$Vdd32),
37155 (ins HvxVR:$Vu32),
37156 "$Vdd32.uh = vunpack($Vu32.ub)",
37157 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37158 let Inst{7-5} = 0b000;
37159 let Inst{13-13} = 0b0;
37160 let Inst{31-16} = 0b0001111000000001;
37161 let hasNewValue = 1;
37162 let opNewValue = 0;
37163 let DecoderNamespace = "EXT_mmvec";
37164 }
37165 def V6_vunpackub_alt : HInst<
37166 (outs HvxWR:$Vdd32),
37167 (ins HvxVR:$Vu32),
37168 "$Vdd32 = vunpackub($Vu32)",
37169 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37170 let hasNewValue = 1;
37171 let opNewValue = 0;
37172 let isPseudo = 1;
37173 let isCodeGenOnly = 1;
37174 let DecoderNamespace = "EXT_mmvec";
37175 }
37176 def V6_vunpackuh : HInst<
37177 (outs HvxWR:$Vdd32),
37178 (ins HvxVR:$Vu32),
37179 "$Vdd32.uw = vunpack($Vu32.uh)",
37180 tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37181 let Inst{7-5} = 0b001;
37182 let Inst{13-13} = 0b0;
37183 let Inst{31-16} = 0b0001111000000001;
37184 let hasNewValue = 1;
37185 let opNewValue = 0;
37186 let DecoderNamespace = "EXT_mmvec";
37187 }
37188 def V6_vunpackuh_alt : HInst<
37189 (outs HvxWR:$Vdd32),
37190 (ins HvxVR:$Vu32),
37191 "$Vdd32 = vunpackuh($Vu32)",
37192 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37193 let hasNewValue = 1;
37194 let opNewValue = 0;
37195 let isPseudo = 1;
37196 let isCodeGenOnly = 1;
37197 let DecoderNamespace = "EXT_mmvec";
37198 }
37199 def V6_vwhist128 : HInst<
37200 (outs),
37201 (ins),
37202 "vwhist128",
37203 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37204 let Inst{13-0} = 0b10010010000000;
37205 let Inst{31-16} = 0b0001111000000000;
37206 let DecoderNamespace = "EXT_mmvec";
37207 }
37208 def V6_vwhist128m : HInst<
37209 (outs),
37210 (ins u1_0Imm:$Ii),
37211 "vwhist128(#$Ii)",
37212 tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
37213 let Inst{7-0} = 0b10000000;
37214 let Inst{13-9} = 0b10011;
37215 let Inst{31-16} = 0b0001111000000000;
37216 let DecoderNamespace = "EXT_mmvec";
37217 }
37218 def V6_vwhist128q : HInst<
37219 (outs),
37220 (ins HvxQR:$Qv4),
37221 "vwhist128($Qv4)",
37222 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37223 let Inst{13-0} = 0b10010010000000;
37224 let Inst{21-16} = 0b000010;
37225 let Inst{31-24} = 0b00011110;
37226 let DecoderNamespace = "EXT_mmvec";
37227 }
37228 def V6_vwhist128qm : HInst<
37229 (outs),
37230 (ins HvxQR:$Qv4, u1_0Imm:$Ii),
37231 "vwhist128($Qv4,#$Ii)",
37232 tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
37233 let Inst{7-0} = 0b10000000;
37234 let Inst{13-9} = 0b10011;
37235 let Inst{21-16} = 0b000010;
37236 let Inst{31-24} = 0b00011110;
37237 let DecoderNamespace = "EXT_mmvec";
37238 }
37239 def V6_vwhist256 : HInst<
37240 (outs),
37241 (ins),
37242 "vwhist256",
37243 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37244 let Inst{13-0} = 0b10001010000000;
37245 let Inst{31-16} = 0b0001111000000000;
37246 let DecoderNamespace = "EXT_mmvec";
37247 }
37248 def V6_vwhist256_sat : HInst<
37249 (outs),
37250 (ins),
37251 "vwhist256:sat",
37252 tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37253 let Inst{13-0} = 0b10001110000000;
37254 let Inst{31-16} = 0b0001111000000000;
37255 let DecoderNamespace = "EXT_mmvec";
37256 }
37257 def V6_vwhist256q : HInst<
37258 (outs),
37259 (ins HvxQR:$Qv4),
37260 "vwhist256($Qv4)",
37261 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37262 let Inst{13-0} = 0b10001010000000;
37263 let Inst{21-16} = 0b000010;
37264 let Inst{31-24} = 0b00011110;
37265 let DecoderNamespace = "EXT_mmvec";
37266 }
37267 def V6_vwhist256q_sat : HInst<
37268 (outs),
37269 (ins HvxQR:$Qv4),
37270 "vwhist256($Qv4):sat",
37271 tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37272 let Inst{13-0} = 0b10001110000000;
37273 let Inst{21-16} = 0b000010;
37274 let Inst{31-24} = 0b00011110;
37275 let DecoderNamespace = "EXT_mmvec";
37276 }
37277 def V6_vxor : HInst<
37278 (outs HvxVR:$Vd32),
37279 (ins HvxVR:$Vu32, HvxVR:$Vv32),
37280 "$Vd32 = vxor($Vu32,$Vv32)",
37281 tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37282 let Inst{7-5} = 0b111;
37283 let Inst{13-13} = 0b0;
37284 let Inst{31-21} = 0b00011100001;
37285 let hasNewValue = 1;
37286 let opNewValue = 0;
37287 let DecoderNamespace = "EXT_mmvec";
37288 }
37289 def V6_vzb : HInst<
37290 (outs HvxWR:$Vdd32),
37291 (ins HvxVR:$Vu32),
37292 "$Vdd32.uh = vzxt($Vu32.ub)",
37293 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37294 let Inst{7-5} = 0b001;
37295 let Inst{13-13} = 0b0;
37296 let Inst{31-16} = 0b0001111000000010;
37297 let hasNewValue = 1;
37298 let opNewValue = 0;
37299 let DecoderNamespace = "EXT_mmvec";
37300 }
37301 def V6_vzb_alt : HInst<
37302 (outs HvxWR:$Vdd32),
37303 (ins HvxVR:$Vu32),
37304 "$Vdd32 = vzxtb($Vu32)",
37305 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37306 let hasNewValue = 1;
37307 let opNewValue = 0;
37308 let isPseudo = 1;
37309 let isCodeGenOnly = 1;
37310 let DecoderNamespace = "EXT_mmvec";
37311 }
37312 def V6_vzh : HInst<
37313 (outs HvxWR:$Vdd32),
37314 (ins HvxVR:$Vu32),
37315 "$Vdd32.uw = vzxt($Vu32.uh)",
37316 tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37317 let Inst{7-5} = 0b010;
37318 let Inst{13-13} = 0b0;
37319 let Inst{31-16} = 0b0001111000000010;
37320 let hasNewValue = 1;
37321 let opNewValue = 0;
37322 let DecoderNamespace = "EXT_mmvec";
37323 }
37324 def V6_vzh_alt : HInst<
37325 (outs HvxWR:$Vdd32),
37326 (ins HvxVR:$Vu32),
37327 "$Vdd32 = vzxth($Vu32)",
37328 PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37329 let hasNewValue = 1;
37330 let opNewValue = 0;
37331 let isPseudo = 1;
37332 let isCodeGenOnly = 1;
37333 let DecoderNamespace = "EXT_mmvec";
37334 }
37335 def V6_zLd_ai : HInst<
37336 (outs),
37337 (ins IntRegs:$Rt32, s4_0Imm:$Ii),
37338 "z = vmem($Rt32+#$Ii)",
37339 tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> {
37340 let Inst{7-0} = 0b00000000;
37341 let Inst{12-11} = 0b00;
37342 let Inst{31-21} = 0b00101100000;
37343 let addrMode = BaseImmOffset;
37344 let mayLoad = 1;
37345 let isRestrictNoSlot1Store = 1;
37346 let DecoderNamespace = "EXT_mmvec";
37347 }
37348 def V6_zLd_pi : HInst<
37349 (outs IntRegs:$Rx32),
37350 (ins IntRegs:$Rx32in, s3_0Imm:$Ii),
37351 "z = vmem($Rx32++#$Ii)",
37352 tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> {
37353 let Inst{7-0} = 0b00000000;
37354 let Inst{13-11} = 0b000;
37355 let Inst{31-21} = 0b00101101000;
37356 let addrMode = PostInc;
37357 let mayLoad = 1;
37358 let isRestrictNoSlot1Store = 1;
37359 let DecoderNamespace = "EXT_mmvec";
37360 let Constraints = "$Rx32 = $Rx32in";
37361 }
37362 def V6_zLd_ppu : HInst<
37363 (outs IntRegs:$Rx32),
37364 (ins IntRegs:$Rx32in, ModRegs:$Mu2),
37365 "z = vmem($Rx32++$Mu2)",
37366 tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
37367 let Inst{12-0} = 0b0000000000001;
37368 let Inst{31-21} = 0b00101101000;
37369 let addrMode = PostInc;
37370 let mayLoad = 1;
37371 let isRestrictNoSlot1Store = 1;
37372 let DecoderNamespace = "EXT_mmvec";
37373 let Constraints = "$Rx32 = $Rx32in";
37374 }
37375 def V6_zLd_pred_ai : HInst<
37376 (outs),
37377 (ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
37378 "if ($Pv4) z = vmem($Rt32+#$Ii)",
37379 tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
37380 let Inst{7-0} = 0b00000000;
37381 let Inst{31-21} = 0b00101100100;
37382 let isPredicated = 1;
37383 let addrMode = BaseImmOffset;
37384 let mayLoad = 1;
37385 let isRestrictNoSlot1Store = 1;
37386 let DecoderNamespace = "EXT_mmvec";
37387 }
37388 def V6_zLd_pred_pi : HInst<
37389 (outs IntRegs:$Rx32),
37390 (ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
37391 "if ($Pv4) z = vmem($Rx32++#$Ii)",
37392 tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
37393 let Inst{7-0} = 0b00000000;
37394 let Inst{13-13} = 0b0;
37395 let Inst{31-21} = 0b00101101100;
37396 let isPredicated = 1;
37397 let addrMode = PostInc;
37398 let mayLoad = 1;
37399 let isRestrictNoSlot1Store = 1;
37400 let DecoderNamespace = "EXT_mmvec";
37401 let Constraints = "$Rx32 = $Rx32in";
37402 }
37403 def V6_zLd_pred_ppu : HInst<
37404 (outs IntRegs:$Rx32),
37405 (ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
37406 "if ($Pv4) z = vmem($Rx32++$Mu2)",
37407 tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
37408 let Inst{10-0} = 0b00000000001;
37409 let Inst{31-21} = 0b00101101100;
37410 let isPredicated = 1;
37411 let addrMode = PostInc;
37412 let mayLoad = 1;
37413 let isRestrictNoSlot1Store = 1;
37414 let DecoderNamespace = "EXT_mmvec";
37415 let Constraints = "$Rx32 = $Rx32in";
37416 }
37417 def V6_zextract : HInst<
37418 (outs HvxVR:$Vd32),
37419 (ins IntRegs:$Rt32),
37420 "$Vd32 = zextract($Rt32)",
37421 tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
37422 let Inst{13-5} = 0b000001001;
37423 let Inst{31-21} = 0b00011001101;
37424 let hasNewValue = 1;
37425 let opNewValue = 0;
37426 let DecoderNamespace = "EXT_mmvec";
37427 }
37428 def V6_zld0 : HInst<
37429 (outs),
37430 (ins IntRegs:$Rt32),
37431 "z = vmem($Rt32)",
37432 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
37433 let isPseudo = 1;
37434 let isCodeGenOnly = 1;
37435 let DecoderNamespace = "EXT_mmvec";
37436 }
37437 def V6_zldp0 : HInst<
37438 (outs),
37439 (ins PredRegs:$Pv4, IntRegs:$Rt32),
37440 "if ($Pv4) z = vmem($Rt32)",
37441 PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
37442 let isPseudo = 1;
37443 let isCodeGenOnly = 1;
37444 let DecoderNamespace = "EXT_mmvec";
37445 }
37446 def Y2_barrier : HInst<
37447 (outs),
37448 (ins),
37449 "barrier",
37450 tc_8c99de45, TypeST>, Enc_e3b0c4 {
37451 let Inst{13-0} = 0b00000000000000;
37452 let Inst{31-16} = 0b1010100000000000;
37453 let isSoloAX = 1;
37454 let hasSideEffects = 1;
37455 }
37456 def Y2_break : HInst<
37457 (outs),
37458 (ins),
37459 "brkpt",
37460 tc_9ad9998f, TypeCR>, Enc_e3b0c4 {
37461 let Inst{13-0} = 0b00000000000000;
37462 let Inst{31-16} = 0b0110110000100000;
37463 let isSolo = 1;
37464 }
37465 def Y2_dccleana : HInst<
37466 (outs),
37467 (ins IntRegs:$Rs32),
37468 "dccleana($Rs32)",
37469 tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37470 let Inst{13-0} = 0b00000000000000;
37471 let Inst{31-21} = 0b10100000000;
37472 let isRestrictSlot1AOK = 1;
37473 let hasSideEffects = 1;
37474 }
37475 def Y2_dccleaninva : HInst<
37476 (outs),
37477 (ins IntRegs:$Rs32),
37478 "dccleaninva($Rs32)",
37479 tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37480 let Inst{13-0} = 0b00000000000000;
37481 let Inst{31-21} = 0b10100000010;
37482 let isRestrictSlot1AOK = 1;
37483 let hasSideEffects = 1;
37484 }
37485 def Y2_dcfetch : HInst<
37486 (outs),
37487 (ins IntRegs:$Rs32),
37488 "dcfetch($Rs32)",
37489 tc_d63f638c, TypeMAPPING> {
37490 let hasSideEffects = 1;
37491 let isPseudo = 1;
37492 let isCodeGenOnly = 1;
37493 }
37494 def Y2_dcfetchbo : HInst<
37495 (outs),
37496 (ins IntRegs:$Rs32, u11_3Imm:$Ii),
37497 "dcfetch($Rs32+#$Ii)",
37498 tc_9ca930f7, TypeLD>, Enc_2d829e {
37499 let Inst{13-11} = 0b000;
37500 let Inst{31-21} = 0b10010100000;
37501 let addrMode = BaseImmOffset;
37502 let isRestrictNoSlot1Store = 1;
37503 let hasSideEffects = 1;
37504 }
37505 def Y2_dcinva : HInst<
37506 (outs),
37507 (ins IntRegs:$Rs32),
37508 "dcinva($Rs32)",
37509 tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37510 let Inst{13-0} = 0b00000000000000;
37511 let Inst{31-21} = 0b10100000001;
37512 let isRestrictSlot1AOK = 1;
37513 let hasSideEffects = 1;
37514 }
37515 def Y2_dczeroa : HInst<
37516 (outs),
37517 (ins IntRegs:$Rs32),
37518 "dczeroa($Rs32)",
37519 tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37520 let Inst{13-0} = 0b00000000000000;
37521 let Inst{31-21} = 0b10100000110;
37522 let isRestrictSlot1AOK = 1;
37523 let mayStore = 1;
37524 let hasSideEffects = 1;
37525 }
37526 def Y2_icinva : HInst<
37527 (outs),
37528 (ins IntRegs:$Rs32),
37529 "icinva($Rs32)",
37530 tc_5d7f5414, TypeJ>, Enc_ecbcc8 {
37531 let Inst{13-0} = 0b00000000000000;
37532 let Inst{31-21} = 0b01010110110;
37533 let isSolo = 1;
37534 }
37535 def Y2_isync : HInst<
37536 (outs),
37537 (ins),
37538 "isync",
37539 tc_8b121f4a, TypeJ>, Enc_e3b0c4 {
37540 let Inst{13-0} = 0b00000000000010;
37541 let Inst{31-16} = 0b0101011111000000;
37542 let isSolo = 1;
37543 }
37544 def Y2_syncht : HInst<
37545 (outs),
37546 (ins),
37547 "syncht",
37548 tc_8c99de45, TypeST>, Enc_e3b0c4 {
37549 let Inst{13-0} = 0b00000000000000;
37550 let Inst{31-16} = 0b1010100001000000;
37551 let isSolo = 1;
37552 }
37553 def Y2_wait : HInst<
37554 (outs),
37555 (ins IntRegs:$Rs32),
37556 "wait($Rs32)",
37557 tc_174516e8, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
37558 let Inst{13-0} = 0b00000000000000;
37559 let Inst{31-21} = 0b01100100010;
37560 let isSolo = 1;
37561 }
37562 def Y4_l2fetch : HInst<
37563 (outs),
37564 (ins IntRegs:$Rs32, IntRegs:$Rt32),
37565 "l2fetch($Rs32,$Rt32)",
37566 tc_fe211424, TypeST>, Enc_ca3887 {
37567 let Inst{7-0} = 0b00000000;
37568 let Inst{13-13} = 0b0;
37569 let Inst{31-21} = 0b10100110000;
37570 let isSoloAX = 1;
37571 let mayStore = 1;
37572 let hasSideEffects = 1;
37573 }
37574 def Y4_trace : HInst<
37575 (outs),
37576 (ins IntRegs:$Rs32),
37577 "trace($Rs32)",
37578 tc_6b25e783, TypeCR>, Enc_ecbcc8 {
37579 let Inst{13-0} = 0b00000000000000;
37580 let Inst{31-21} = 0b01100010010;
37581 let isSoloAX = 1;
37582 }
37583 def Y5_l2fetch : HInst<
37584 (outs),
37585 (ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
37586 "l2fetch($Rs32,$Rtt32)",
37587 tc_fe211424, TypeST>, Enc_e6abcf {
37588 let Inst{7-0} = 0b00000000;
37589 let Inst{13-13} = 0b0;
37590 let Inst{31-21} = 0b10100110100;
37591 let isSoloAX = 1;
37592 let mayStore = 1;
37593 let hasSideEffects = 1;
37594 }
37595 def dep_A2_addsat : HInst<
37596 (outs IntRegs:$Rd32),
37597 (ins IntRegs:$Rs32, IntRegs:$Rt32),
37598 "$Rd32 = add($Rs32,$Rt32):sat:deprecated",
37599 tc_779080bf, TypeALU64>, Enc_5ab2be {
37600 let Inst{7-5} = 0b000;
37601 let Inst{13-13} = 0b0;
37602 let Inst{31-21} = 0b11010101100;
37603 let hasNewValue = 1;
37604 let opNewValue = 0;
37605 let prefersSlot3 = 1;
37606 let Defs = [USR_OVF];
37607 }
37608 def dep_A2_subsat : HInst<
37609 (outs IntRegs:$Rd32),
37610 (ins IntRegs:$Rt32, IntRegs:$Rs32),
37611 "$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
37612 tc_779080bf, TypeALU64>, Enc_bd6011 {
37613 let Inst{7-5} = 0b100;
37614 let Inst{13-13} = 0b0;
37615 let Inst{31-21} = 0b11010101100;
37616 let hasNewValue = 1;
37617 let opNewValue = 0;
37618 let prefersSlot3 = 1;
37619 let Defs = [USR_OVF];
37620 }
37621 def dep_S2_packhl : HInst<
37622 (outs DoubleRegs:$Rdd32),
37623 (ins IntRegs:$Rs32, IntRegs:$Rt32),
37624 "$Rdd32 = packhl($Rs32,$Rt32):deprecated",
37625 tc_946df596, TypeALU64>, Enc_be32a5 {
37626 let Inst{7-5} = 0b000;
37627 let Inst{13-13} = 0b0;
37628 let Inst{31-21} = 0b11010100000;
37629 }