1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8// Automatically generated file, please consult code owner before editing.
9//===----------------------------------------------------------------------===//
10
11def A2_abs : HInst<
12(outs IntRegs:$Rd32),
13(ins IntRegs:$Rs32),
14"$Rd32 = abs($Rs32)",
15tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
16let Inst{13-5} = 0b000000100;
17let Inst{31-21} = 0b10001100100;
18let hasNewValue = 1;
19let opNewValue = 0;
20let prefersSlot3 = 1;
21}
22def A2_absp : HInst<
23(outs DoubleRegs:$Rdd32),
24(ins DoubleRegs:$Rss32),
25"$Rdd32 = abs($Rss32)",
26tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
27let Inst{13-5} = 0b000000110;
28let Inst{31-21} = 0b10000000100;
29let prefersSlot3 = 1;
30}
31def A2_abssat : HInst<
32(outs IntRegs:$Rd32),
33(ins IntRegs:$Rs32),
34"$Rd32 = abs($Rs32):sat",
35tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
36let Inst{13-5} = 0b000000101;
37let Inst{31-21} = 0b10001100100;
38let hasNewValue = 1;
39let opNewValue = 0;
40let prefersSlot3 = 1;
41let Defs = [USR_OVF];
42}
43def A2_add : HInst<
44(outs IntRegs:$Rd32),
45(ins IntRegs:$Rs32, IntRegs:$Rt32),
46"$Rd32 = add($Rs32,$Rt32)",
47tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
48let Inst{7-5} = 0b000;
49let Inst{13-13} = 0b0;
50let Inst{31-21} = 0b11110011000;
51let hasNewValue = 1;
52let opNewValue = 0;
53let CextOpcode = "A2_add";
54let InputType = "reg";
55let BaseOpcode = "A2_add";
56let isCommutable = 1;
57let isPredicable = 1;
58}
59def A2_addh_h16_hh : HInst<
60(outs IntRegs:$Rd32),
61(ins IntRegs:$Rt32, IntRegs:$Rs32),
62"$Rd32 = add($Rt32.h,$Rs32.h):<<16",
63tc_679309b8, TypeALU64>, Enc_bd6011 {
64let Inst{7-5} = 0b011;
65let Inst{13-13} = 0b0;
66let Inst{31-21} = 0b11010101010;
67let hasNewValue = 1;
68let opNewValue = 0;
69let prefersSlot3 = 1;
70}
71def A2_addh_h16_hl : HInst<
72(outs IntRegs:$Rd32),
73(ins IntRegs:$Rt32, IntRegs:$Rs32),
74"$Rd32 = add($Rt32.h,$Rs32.l):<<16",
75tc_679309b8, TypeALU64>, Enc_bd6011 {
76let Inst{7-5} = 0b010;
77let Inst{13-13} = 0b0;
78let Inst{31-21} = 0b11010101010;
79let hasNewValue = 1;
80let opNewValue = 0;
81let prefersSlot3 = 1;
82}
83def A2_addh_h16_lh : HInst<
84(outs IntRegs:$Rd32),
85(ins IntRegs:$Rt32, IntRegs:$Rs32),
86"$Rd32 = add($Rt32.l,$Rs32.h):<<16",
87tc_679309b8, TypeALU64>, Enc_bd6011 {
88let Inst{7-5} = 0b001;
89let Inst{13-13} = 0b0;
90let Inst{31-21} = 0b11010101010;
91let hasNewValue = 1;
92let opNewValue = 0;
93let prefersSlot3 = 1;
94}
95def A2_addh_h16_ll : HInst<
96(outs IntRegs:$Rd32),
97(ins IntRegs:$Rt32, IntRegs:$Rs32),
98"$Rd32 = add($Rt32.l,$Rs32.l):<<16",
99tc_679309b8, TypeALU64>, Enc_bd6011 {
100let Inst{7-5} = 0b000;
101let Inst{13-13} = 0b0;
102let Inst{31-21} = 0b11010101010;
103let hasNewValue = 1;
104let opNewValue = 0;
105let prefersSlot3 = 1;
106}
107def A2_addh_h16_sat_hh : HInst<
108(outs IntRegs:$Rd32),
109(ins IntRegs:$Rt32, IntRegs:$Rs32),
110"$Rd32 = add($Rt32.h,$Rs32.h):sat:<<16",
111tc_779080bf, TypeALU64>, Enc_bd6011 {
112let Inst{7-5} = 0b111;
113let Inst{13-13} = 0b0;
114let Inst{31-21} = 0b11010101010;
115let hasNewValue = 1;
116let opNewValue = 0;
117let prefersSlot3 = 1;
118let Defs = [USR_OVF];
119}
120def A2_addh_h16_sat_hl : HInst<
121(outs IntRegs:$Rd32),
122(ins IntRegs:$Rt32, IntRegs:$Rs32),
123"$Rd32 = add($Rt32.h,$Rs32.l):sat:<<16",
124tc_779080bf, TypeALU64>, Enc_bd6011 {
125let Inst{7-5} = 0b110;
126let Inst{13-13} = 0b0;
127let Inst{31-21} = 0b11010101010;
128let hasNewValue = 1;
129let opNewValue = 0;
130let prefersSlot3 = 1;
131let Defs = [USR_OVF];
132}
133def A2_addh_h16_sat_lh : HInst<
134(outs IntRegs:$Rd32),
135(ins IntRegs:$Rt32, IntRegs:$Rs32),
136"$Rd32 = add($Rt32.l,$Rs32.h):sat:<<16",
137tc_779080bf, TypeALU64>, Enc_bd6011 {
138let Inst{7-5} = 0b101;
139let Inst{13-13} = 0b0;
140let Inst{31-21} = 0b11010101010;
141let hasNewValue = 1;
142let opNewValue = 0;
143let prefersSlot3 = 1;
144let Defs = [USR_OVF];
145}
146def A2_addh_h16_sat_ll : HInst<
147(outs IntRegs:$Rd32),
148(ins IntRegs:$Rt32, IntRegs:$Rs32),
149"$Rd32 = add($Rt32.l,$Rs32.l):sat:<<16",
150tc_779080bf, TypeALU64>, Enc_bd6011 {
151let Inst{7-5} = 0b100;
152let Inst{13-13} = 0b0;
153let Inst{31-21} = 0b11010101010;
154let hasNewValue = 1;
155let opNewValue = 0;
156let prefersSlot3 = 1;
157let Defs = [USR_OVF];
158}
159def A2_addh_l16_hl : HInst<
160(outs IntRegs:$Rd32),
161(ins IntRegs:$Rt32, IntRegs:$Rs32),
162"$Rd32 = add($Rt32.l,$Rs32.h)",
163tc_4414d8b1, TypeALU64>, Enc_bd6011 {
164let Inst{7-5} = 0b010;
165let Inst{13-13} = 0b0;
166let Inst{31-21} = 0b11010101000;
167let hasNewValue = 1;
168let opNewValue = 0;
169let prefersSlot3 = 1;
170}
171def A2_addh_l16_ll : HInst<
172(outs IntRegs:$Rd32),
173(ins IntRegs:$Rt32, IntRegs:$Rs32),
174"$Rd32 = add($Rt32.l,$Rs32.l)",
175tc_4414d8b1, TypeALU64>, Enc_bd6011 {
176let Inst{7-5} = 0b000;
177let Inst{13-13} = 0b0;
178let Inst{31-21} = 0b11010101000;
179let hasNewValue = 1;
180let opNewValue = 0;
181let prefersSlot3 = 1;
182}
183def A2_addh_l16_sat_hl : HInst<
184(outs IntRegs:$Rd32),
185(ins IntRegs:$Rt32, IntRegs:$Rs32),
186"$Rd32 = add($Rt32.l,$Rs32.h):sat",
187tc_779080bf, TypeALU64>, Enc_bd6011 {
188let Inst{7-5} = 0b110;
189let Inst{13-13} = 0b0;
190let Inst{31-21} = 0b11010101000;
191let hasNewValue = 1;
192let opNewValue = 0;
193let prefersSlot3 = 1;
194let Defs = [USR_OVF];
195}
196def A2_addh_l16_sat_ll : HInst<
197(outs IntRegs:$Rd32),
198(ins IntRegs:$Rt32, IntRegs:$Rs32),
199"$Rd32 = add($Rt32.l,$Rs32.l):sat",
200tc_779080bf, TypeALU64>, Enc_bd6011 {
201let Inst{7-5} = 0b100;
202let Inst{13-13} = 0b0;
203let Inst{31-21} = 0b11010101000;
204let hasNewValue = 1;
205let opNewValue = 0;
206let prefersSlot3 = 1;
207let Defs = [USR_OVF];
208}
209def A2_addi : HInst<
210(outs IntRegs:$Rd32),
211(ins IntRegs:$Rs32, s32_0Imm:$Ii),
212"$Rd32 = add($Rs32,#$Ii)",
213tc_5a2711e5, TypeALU32_ADDI>, Enc_cb9321, PredNewRel, ImmRegRel {
214let Inst{31-28} = 0b1011;
215let hasNewValue = 1;
216let opNewValue = 0;
217let CextOpcode = "A2_add";
218let InputType = "imm";
219let BaseOpcode = "A2_addi";
220let isPredicable = 1;
221let isAdd = 1;
222let isExtendable = 1;
223let opExtendable = 2;
224let isExtentSigned = 1;
225let opExtentBits = 16;
226let opExtentAlign = 0;
227}
228def A2_addp : HInst<
229(outs DoubleRegs:$Rdd32),
230(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
231"$Rdd32 = add($Rss32,$Rtt32)",
232tc_946df596, TypeALU64>, Enc_a56825 {
233let Inst{7-5} = 0b111;
234let Inst{13-13} = 0b0;
235let Inst{31-21} = 0b11010011000;
236let isCommutable = 1;
237let isAdd = 1;
238}
239def A2_addpsat : HInst<
240(outs DoubleRegs:$Rdd32),
241(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
242"$Rdd32 = add($Rss32,$Rtt32):sat",
243tc_779080bf, TypeALU64>, Enc_a56825 {
244let Inst{7-5} = 0b101;
245let Inst{13-13} = 0b0;
246let Inst{31-21} = 0b11010011011;
247let prefersSlot3 = 1;
248let Defs = [USR_OVF];
249let isCommutable = 1;
250}
251def A2_addsat : HInst<
252(outs IntRegs:$Rd32),
253(ins IntRegs:$Rs32, IntRegs:$Rt32),
254"$Rd32 = add($Rs32,$Rt32):sat",
255tc_61830035, TypeALU32_3op>, Enc_5ab2be {
256let Inst{7-5} = 0b000;
257let Inst{13-13} = 0b0;
258let Inst{31-21} = 0b11110110010;
259let hasNewValue = 1;
260let opNewValue = 0;
261let prefersSlot3 = 1;
262let Defs = [USR_OVF];
263let InputType = "reg";
264let isCommutable = 1;
265}
266def A2_addsp : HInst<
267(outs DoubleRegs:$Rdd32),
268(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
269"$Rdd32 = add($Rs32,$Rtt32)",
270tc_679309b8, TypeALU64> {
271let isPseudo = 1;
272}
273def A2_addsph : HInst<
274(outs DoubleRegs:$Rdd32),
275(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
276"$Rdd32 = add($Rss32,$Rtt32):raw:hi",
277tc_679309b8, TypeALU64>, Enc_a56825 {
278let Inst{7-5} = 0b111;
279let Inst{13-13} = 0b0;
280let Inst{31-21} = 0b11010011011;
281let prefersSlot3 = 1;
282}
283def A2_addspl : HInst<
284(outs DoubleRegs:$Rdd32),
285(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
286"$Rdd32 = add($Rss32,$Rtt32):raw:lo",
287tc_679309b8, TypeALU64>, Enc_a56825 {
288let Inst{7-5} = 0b110;
289let Inst{13-13} = 0b0;
290let Inst{31-21} = 0b11010011011;
291let prefersSlot3 = 1;
292}
293def A2_and : HInst<
294(outs IntRegs:$Rd32),
295(ins IntRegs:$Rs32, IntRegs:$Rt32),
296"$Rd32 = and($Rs32,$Rt32)",
297tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
298let Inst{7-5} = 0b000;
299let Inst{13-13} = 0b0;
300let Inst{31-21} = 0b11110001000;
301let hasNewValue = 1;
302let opNewValue = 0;
303let CextOpcode = "A2_and";
304let InputType = "reg";
305let BaseOpcode = "A2_and";
306let isCommutable = 1;
307let isPredicable = 1;
308}
309def A2_andir : HInst<
310(outs IntRegs:$Rd32),
311(ins IntRegs:$Rs32, s32_0Imm:$Ii),
312"$Rd32 = and($Rs32,#$Ii)",
313tc_5a2711e5, TypeALU32_2op>, Enc_140c83, ImmRegRel {
314let Inst{31-22} = 0b0111011000;
315let hasNewValue = 1;
316let opNewValue = 0;
317let CextOpcode = "A2_and";
318let InputType = "imm";
319let isExtendable = 1;
320let opExtendable = 2;
321let isExtentSigned = 1;
322let opExtentBits = 10;
323let opExtentAlign = 0;
324}
325def A2_andp : HInst<
326(outs DoubleRegs:$Rdd32),
327(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
328"$Rdd32 = and($Rss32,$Rtt32)",
329tc_946df596, TypeALU64>, Enc_a56825 {
330let Inst{7-5} = 0b000;
331let Inst{13-13} = 0b0;
332let Inst{31-21} = 0b11010011111;
333let isCommutable = 1;
334}
335def A2_aslh : HInst<
336(outs IntRegs:$Rd32),
337(ins IntRegs:$Rs32),
338"$Rd32 = aslh($Rs32)",
339tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
340let Inst{13-5} = 0b000000000;
341let Inst{31-21} = 0b01110000000;
342let hasNewValue = 1;
343let opNewValue = 0;
344let BaseOpcode = "A2_aslh";
345let isPredicable = 1;
346}
347def A2_asrh : HInst<
348(outs IntRegs:$Rd32),
349(ins IntRegs:$Rs32),
350"$Rd32 = asrh($Rs32)",
351tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
352let Inst{13-5} = 0b000000000;
353let Inst{31-21} = 0b01110000001;
354let hasNewValue = 1;
355let opNewValue = 0;
356let BaseOpcode = "A2_asrh";
357let isPredicable = 1;
358}
359def A2_combine_hh : HInst<
360(outs IntRegs:$Rd32),
361(ins IntRegs:$Rt32, IntRegs:$Rs32),
362"$Rd32 = combine($Rt32.h,$Rs32.h)",
363tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
364let Inst{7-5} = 0b000;
365let Inst{13-13} = 0b0;
366let Inst{31-21} = 0b11110011100;
367let hasNewValue = 1;
368let opNewValue = 0;
369let InputType = "reg";
370}
371def A2_combine_hl : HInst<
372(outs IntRegs:$Rd32),
373(ins IntRegs:$Rt32, IntRegs:$Rs32),
374"$Rd32 = combine($Rt32.h,$Rs32.l)",
375tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
376let Inst{7-5} = 0b000;
377let Inst{13-13} = 0b0;
378let Inst{31-21} = 0b11110011101;
379let hasNewValue = 1;
380let opNewValue = 0;
381let InputType = "reg";
382}
383def A2_combine_lh : HInst<
384(outs IntRegs:$Rd32),
385(ins IntRegs:$Rt32, IntRegs:$Rs32),
386"$Rd32 = combine($Rt32.l,$Rs32.h)",
387tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
388let Inst{7-5} = 0b000;
389let Inst{13-13} = 0b0;
390let Inst{31-21} = 0b11110011110;
391let hasNewValue = 1;
392let opNewValue = 0;
393let InputType = "reg";
394}
395def A2_combine_ll : HInst<
396(outs IntRegs:$Rd32),
397(ins IntRegs:$Rt32, IntRegs:$Rs32),
398"$Rd32 = combine($Rt32.l,$Rs32.l)",
399tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
400let Inst{7-5} = 0b000;
401let Inst{13-13} = 0b0;
402let Inst{31-21} = 0b11110011111;
403let hasNewValue = 1;
404let opNewValue = 0;
405let InputType = "reg";
406}
407def A2_combineii : HInst<
408(outs DoubleRegs:$Rdd32),
409(ins s32_0Imm:$Ii, s8_0Imm:$II),
410"$Rdd32 = combine(#$Ii,#$II)",
411tc_5a2711e5, TypeALU32_2op>, Enc_18c338 {
412let Inst{31-23} = 0b011111000;
413let isReMaterializable = 1;
414let isAsCheapAsAMove = 1;
415let isMoveImm = 1;
416let isExtendable = 1;
417let opExtendable = 1;
418let isExtentSigned = 1;
419let opExtentBits = 8;
420let opExtentAlign = 0;
421}
422def A2_combinew : HInst<
423(outs DoubleRegs:$Rdd32),
424(ins IntRegs:$Rs32, IntRegs:$Rt32),
425"$Rdd32 = combine($Rs32,$Rt32)",
426tc_5a2711e5, TypeALU32_3op>, Enc_be32a5, PredNewRel {
427let Inst{7-5} = 0b000;
428let Inst{13-13} = 0b0;
429let Inst{31-21} = 0b11110101000;
430let InputType = "reg";
431let BaseOpcode = "A2_combinew";
432let isPredicable = 1;
433}
434def A2_max : HInst<
435(outs IntRegs:$Rd32),
436(ins IntRegs:$Rs32, IntRegs:$Rt32),
437"$Rd32 = max($Rs32,$Rt32)",
438tc_779080bf, TypeALU64>, Enc_5ab2be {
439let Inst{7-5} = 0b000;
440let Inst{13-13} = 0b0;
441let Inst{31-21} = 0b11010101110;
442let hasNewValue = 1;
443let opNewValue = 0;
444let prefersSlot3 = 1;
445}
446def A2_maxp : HInst<
447(outs DoubleRegs:$Rdd32),
448(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
449"$Rdd32 = max($Rss32,$Rtt32)",
450tc_779080bf, TypeALU64>, Enc_a56825 {
451let Inst{7-5} = 0b100;
452let Inst{13-13} = 0b0;
453let Inst{31-21} = 0b11010011110;
454let prefersSlot3 = 1;
455}
456def A2_maxu : HInst<
457(outs IntRegs:$Rd32),
458(ins IntRegs:$Rs32, IntRegs:$Rt32),
459"$Rd32 = maxu($Rs32,$Rt32)",
460tc_779080bf, TypeALU64>, Enc_5ab2be {
461let Inst{7-5} = 0b100;
462let Inst{13-13} = 0b0;
463let Inst{31-21} = 0b11010101110;
464let hasNewValue = 1;
465let opNewValue = 0;
466let prefersSlot3 = 1;
467}
468def A2_maxup : HInst<
469(outs DoubleRegs:$Rdd32),
470(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
471"$Rdd32 = maxu($Rss32,$Rtt32)",
472tc_779080bf, TypeALU64>, Enc_a56825 {
473let Inst{7-5} = 0b101;
474let Inst{13-13} = 0b0;
475let Inst{31-21} = 0b11010011110;
476let prefersSlot3 = 1;
477}
478def A2_min : HInst<
479(outs IntRegs:$Rd32),
480(ins IntRegs:$Rt32, IntRegs:$Rs32),
481"$Rd32 = min($Rt32,$Rs32)",
482tc_779080bf, TypeALU64>, Enc_bd6011 {
483let Inst{7-5} = 0b000;
484let Inst{13-13} = 0b0;
485let Inst{31-21} = 0b11010101101;
486let hasNewValue = 1;
487let opNewValue = 0;
488let prefersSlot3 = 1;
489}
490def A2_minp : HInst<
491(outs DoubleRegs:$Rdd32),
492(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
493"$Rdd32 = min($Rtt32,$Rss32)",
494tc_779080bf, TypeALU64>, Enc_ea23e4 {
495let Inst{7-5} = 0b110;
496let Inst{13-13} = 0b0;
497let Inst{31-21} = 0b11010011101;
498let prefersSlot3 = 1;
499}
500def A2_minu : HInst<
501(outs IntRegs:$Rd32),
502(ins IntRegs:$Rt32, IntRegs:$Rs32),
503"$Rd32 = minu($Rt32,$Rs32)",
504tc_779080bf, TypeALU64>, Enc_bd6011 {
505let Inst{7-5} = 0b100;
506let Inst{13-13} = 0b0;
507let Inst{31-21} = 0b11010101101;
508let hasNewValue = 1;
509let opNewValue = 0;
510let prefersSlot3 = 1;
511}
512def A2_minup : HInst<
513(outs DoubleRegs:$Rdd32),
514(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
515"$Rdd32 = minu($Rtt32,$Rss32)",
516tc_779080bf, TypeALU64>, Enc_ea23e4 {
517let Inst{7-5} = 0b111;
518let Inst{13-13} = 0b0;
519let Inst{31-21} = 0b11010011101;
520let prefersSlot3 = 1;
521}
522def A2_neg : HInst<
523(outs IntRegs:$Rd32),
524(ins IntRegs:$Rs32),
525"$Rd32 = neg($Rs32)",
526tc_57890846, TypeALU32_2op> {
527let hasNewValue = 1;
528let opNewValue = 0;
529let isPseudo = 1;
530let isCodeGenOnly = 1;
531}
532def A2_negp : HInst<
533(outs DoubleRegs:$Rdd32),
534(ins DoubleRegs:$Rss32),
535"$Rdd32 = neg($Rss32)",
536tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
537let Inst{13-5} = 0b000000101;
538let Inst{31-21} = 0b10000000100;
539}
540def A2_negsat : HInst<
541(outs IntRegs:$Rd32),
542(ins IntRegs:$Rs32),
543"$Rd32 = neg($Rs32):sat",
544tc_cf8126ae, TypeS_2op>, Enc_5e2823 {
545let Inst{13-5} = 0b000000110;
546let Inst{31-21} = 0b10001100100;
547let hasNewValue = 1;
548let opNewValue = 0;
549let prefersSlot3 = 1;
550let Defs = [USR_OVF];
551}
552def A2_nop : HInst<
553(outs),
554(ins),
555"nop",
556tc_2eabeebe, TypeALU32_2op>, Enc_e3b0c4 {
557let Inst{13-0} = 0b00000000000000;
558let Inst{31-16} = 0b0111111100000000;
559}
560def A2_not : HInst<
561(outs IntRegs:$Rd32),
562(ins IntRegs:$Rs32),
563"$Rd32 = not($Rs32)",
564tc_57890846, TypeALU32_2op> {
565let hasNewValue = 1;
566let opNewValue = 0;
567let isPseudo = 1;
568let isCodeGenOnly = 1;
569}
570def A2_notp : HInst<
571(outs DoubleRegs:$Rdd32),
572(ins DoubleRegs:$Rss32),
573"$Rdd32 = not($Rss32)",
574tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
575let Inst{13-5} = 0b000000100;
576let Inst{31-21} = 0b10000000100;
577}
578def A2_or : HInst<
579(outs IntRegs:$Rd32),
580(ins IntRegs:$Rs32, IntRegs:$Rt32),
581"$Rd32 = or($Rs32,$Rt32)",
582tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel, ImmRegRel {
583let Inst{7-5} = 0b000;
584let Inst{13-13} = 0b0;
585let Inst{31-21} = 0b11110001001;
586let hasNewValue = 1;
587let opNewValue = 0;
588let CextOpcode = "A2_or";
589let InputType = "reg";
590let BaseOpcode = "A2_or";
591let isCommutable = 1;
592let isPredicable = 1;
593}
594def A2_orir : HInst<
595(outs IntRegs:$Rd32),
596(ins IntRegs:$Rs32, s32_0Imm:$Ii),
597"$Rd32 = or($Rs32,#$Ii)",
598tc_5a2711e5, TypeALU32_2op>, Enc_140c83, ImmRegRel {
599let Inst{31-22} = 0b0111011010;
600let hasNewValue = 1;
601let opNewValue = 0;
602let CextOpcode = "A2_or";
603let InputType = "imm";
604let isExtendable = 1;
605let opExtendable = 2;
606let isExtentSigned = 1;
607let opExtentBits = 10;
608let opExtentAlign = 0;
609}
610def A2_orp : HInst<
611(outs DoubleRegs:$Rdd32),
612(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
613"$Rdd32 = or($Rss32,$Rtt32)",
614tc_946df596, TypeALU64>, Enc_a56825 {
615let Inst{7-5} = 0b010;
616let Inst{13-13} = 0b0;
617let Inst{31-21} = 0b11010011111;
618let isCommutable = 1;
619}
620def A2_paddf : HInst<
621(outs IntRegs:$Rd32),
622(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
623"if (!$Pu4) $Rd32 = add($Rs32,$Rt32)",
624tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
625let Inst{7-7} = 0b1;
626let Inst{13-13} = 0b0;
627let Inst{31-21} = 0b11111011000;
628let isPredicated = 1;
629let isPredicatedFalse = 1;
630let hasNewValue = 1;
631let opNewValue = 0;
632let CextOpcode = "A2_add";
633let InputType = "reg";
634let BaseOpcode = "A2_add";
635}
636def A2_paddfnew : HInst<
637(outs IntRegs:$Rd32),
638(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
639"if (!$Pu4.new) $Rd32 = add($Rs32,$Rt32)",
640tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
641let Inst{7-7} = 0b1;
642let Inst{13-13} = 0b1;
643let Inst{31-21} = 0b11111011000;
644let isPredicated = 1;
645let isPredicatedFalse = 1;
646let hasNewValue = 1;
647let opNewValue = 0;
648let isPredicatedNew = 1;
649let CextOpcode = "A2_add";
650let InputType = "reg";
651let BaseOpcode = "A2_add";
652}
653def A2_paddif : HInst<
654(outs IntRegs:$Rd32),
655(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
656"if (!$Pu4) $Rd32 = add($Rs32,#$Ii)",
657tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
658let Inst{13-13} = 0b0;
659let Inst{31-23} = 0b011101001;
660let isPredicated = 1;
661let isPredicatedFalse = 1;
662let hasNewValue = 1;
663let opNewValue = 0;
664let CextOpcode = "A2_add";
665let InputType = "imm";
666let BaseOpcode = "A2_addi";
667let isExtendable = 1;
668let opExtendable = 3;
669let isExtentSigned = 1;
670let opExtentBits = 8;
671let opExtentAlign = 0;
672}
673def A2_paddifnew : HInst<
674(outs IntRegs:$Rd32),
675(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
676"if (!$Pu4.new) $Rd32 = add($Rs32,#$Ii)",
677tc_05c070ec, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
678let Inst{13-13} = 0b1;
679let Inst{31-23} = 0b011101001;
680let isPredicated = 1;
681let isPredicatedFalse = 1;
682let hasNewValue = 1;
683let opNewValue = 0;
684let isPredicatedNew = 1;
685let CextOpcode = "A2_add";
686let InputType = "imm";
687let BaseOpcode = "A2_addi";
688let isExtendable = 1;
689let opExtendable = 3;
690let isExtentSigned = 1;
691let opExtentBits = 8;
692let opExtentAlign = 0;
693}
694def A2_paddit : HInst<
695(outs IntRegs:$Rd32),
696(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
697"if ($Pu4) $Rd32 = add($Rs32,#$Ii)",
698tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
699let Inst{13-13} = 0b0;
700let Inst{31-23} = 0b011101000;
701let isPredicated = 1;
702let hasNewValue = 1;
703let opNewValue = 0;
704let CextOpcode = "A2_add";
705let InputType = "imm";
706let BaseOpcode = "A2_addi";
707let isExtendable = 1;
708let opExtendable = 3;
709let isExtentSigned = 1;
710let opExtentBits = 8;
711let opExtentAlign = 0;
712}
713def A2_padditnew : HInst<
714(outs IntRegs:$Rd32),
715(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
716"if ($Pu4.new) $Rd32 = add($Rs32,#$Ii)",
717tc_05c070ec, TypeALU32_2op>, Enc_e38e1f, PredNewRel, ImmRegRel {
718let Inst{13-13} = 0b1;
719let Inst{31-23} = 0b011101000;
720let isPredicated = 1;
721let hasNewValue = 1;
722let opNewValue = 0;
723let isPredicatedNew = 1;
724let CextOpcode = "A2_add";
725let InputType = "imm";
726let BaseOpcode = "A2_addi";
727let isExtendable = 1;
728let opExtendable = 3;
729let isExtentSigned = 1;
730let opExtentBits = 8;
731let opExtentAlign = 0;
732}
733def A2_paddt : HInst<
734(outs IntRegs:$Rd32),
735(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
736"if ($Pu4) $Rd32 = add($Rs32,$Rt32)",
737tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
738let Inst{7-7} = 0b0;
739let Inst{13-13} = 0b0;
740let Inst{31-21} = 0b11111011000;
741let isPredicated = 1;
742let hasNewValue = 1;
743let opNewValue = 0;
744let CextOpcode = "A2_add";
745let InputType = "reg";
746let BaseOpcode = "A2_add";
747}
748def A2_paddtnew : HInst<
749(outs IntRegs:$Rd32),
750(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
751"if ($Pu4.new) $Rd32 = add($Rs32,$Rt32)",
752tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel, ImmRegRel {
753let Inst{7-7} = 0b0;
754let Inst{13-13} = 0b1;
755let Inst{31-21} = 0b11111011000;
756let isPredicated = 1;
757let hasNewValue = 1;
758let opNewValue = 0;
759let isPredicatedNew = 1;
760let CextOpcode = "A2_add";
761let InputType = "reg";
762let BaseOpcode = "A2_add";
763}
764def A2_pandf : HInst<
765(outs IntRegs:$Rd32),
766(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
767"if (!$Pu4) $Rd32 = and($Rs32,$Rt32)",
768tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
769let Inst{7-7} = 0b1;
770let Inst{13-13} = 0b0;
771let Inst{31-21} = 0b11111001000;
772let isPredicated = 1;
773let isPredicatedFalse = 1;
774let hasNewValue = 1;
775let opNewValue = 0;
776let BaseOpcode = "A2_and";
777}
778def A2_pandfnew : HInst<
779(outs IntRegs:$Rd32),
780(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
781"if (!$Pu4.new) $Rd32 = and($Rs32,$Rt32)",
782tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
783let Inst{7-7} = 0b1;
784let Inst{13-13} = 0b1;
785let Inst{31-21} = 0b11111001000;
786let isPredicated = 1;
787let isPredicatedFalse = 1;
788let hasNewValue = 1;
789let opNewValue = 0;
790let isPredicatedNew = 1;
791let BaseOpcode = "A2_and";
792}
793def A2_pandt : HInst<
794(outs IntRegs:$Rd32),
795(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
796"if ($Pu4) $Rd32 = and($Rs32,$Rt32)",
797tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
798let Inst{7-7} = 0b0;
799let Inst{13-13} = 0b0;
800let Inst{31-21} = 0b11111001000;
801let isPredicated = 1;
802let hasNewValue = 1;
803let opNewValue = 0;
804let BaseOpcode = "A2_and";
805}
806def A2_pandtnew : HInst<
807(outs IntRegs:$Rd32),
808(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
809"if ($Pu4.new) $Rd32 = and($Rs32,$Rt32)",
810tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
811let Inst{7-7} = 0b0;
812let Inst{13-13} = 0b1;
813let Inst{31-21} = 0b11111001000;
814let isPredicated = 1;
815let hasNewValue = 1;
816let opNewValue = 0;
817let isPredicatedNew = 1;
818let BaseOpcode = "A2_and";
819}
820def A2_porf : HInst<
821(outs IntRegs:$Rd32),
822(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
823"if (!$Pu4) $Rd32 = or($Rs32,$Rt32)",
824tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
825let Inst{7-7} = 0b1;
826let Inst{13-13} = 0b0;
827let Inst{31-21} = 0b11111001001;
828let isPredicated = 1;
829let isPredicatedFalse = 1;
830let hasNewValue = 1;
831let opNewValue = 0;
832let BaseOpcode = "A2_or";
833}
834def A2_porfnew : HInst<
835(outs IntRegs:$Rd32),
836(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
837"if (!$Pu4.new) $Rd32 = or($Rs32,$Rt32)",
838tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
839let Inst{7-7} = 0b1;
840let Inst{13-13} = 0b1;
841let Inst{31-21} = 0b11111001001;
842let isPredicated = 1;
843let isPredicatedFalse = 1;
844let hasNewValue = 1;
845let opNewValue = 0;
846let isPredicatedNew = 1;
847let BaseOpcode = "A2_or";
848}
849def A2_port : HInst<
850(outs IntRegs:$Rd32),
851(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
852"if ($Pu4) $Rd32 = or($Rs32,$Rt32)",
853tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
854let Inst{7-7} = 0b0;
855let Inst{13-13} = 0b0;
856let Inst{31-21} = 0b11111001001;
857let isPredicated = 1;
858let hasNewValue = 1;
859let opNewValue = 0;
860let BaseOpcode = "A2_or";
861}
862def A2_portnew : HInst<
863(outs IntRegs:$Rd32),
864(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
865"if ($Pu4.new) $Rd32 = or($Rs32,$Rt32)",
866tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
867let Inst{7-7} = 0b0;
868let Inst{13-13} = 0b1;
869let Inst{31-21} = 0b11111001001;
870let isPredicated = 1;
871let hasNewValue = 1;
872let opNewValue = 0;
873let isPredicatedNew = 1;
874let BaseOpcode = "A2_or";
875}
876def A2_psubf : HInst<
877(outs IntRegs:$Rd32),
878(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
879"if (!$Pu4) $Rd32 = sub($Rt32,$Rs32)",
880tc_4c5ba658, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
881let Inst{7-7} = 0b1;
882let Inst{13-13} = 0b0;
883let Inst{31-21} = 0b11111011001;
884let isPredicated = 1;
885let isPredicatedFalse = 1;
886let hasNewValue = 1;
887let opNewValue = 0;
888let BaseOpcode = "A2_sub";
889}
890def A2_psubfnew : HInst<
891(outs IntRegs:$Rd32),
892(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
893"if (!$Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
894tc_05c070ec, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
895let Inst{7-7} = 0b1;
896let Inst{13-13} = 0b1;
897let Inst{31-21} = 0b11111011001;
898let isPredicated = 1;
899let isPredicatedFalse = 1;
900let hasNewValue = 1;
901let opNewValue = 0;
902let isPredicatedNew = 1;
903let BaseOpcode = "A2_sub";
904}
905def A2_psubt : HInst<
906(outs IntRegs:$Rd32),
907(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
908"if ($Pu4) $Rd32 = sub($Rt32,$Rs32)",
909tc_4c5ba658, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
910let Inst{7-7} = 0b0;
911let Inst{13-13} = 0b0;
912let Inst{31-21} = 0b11111011001;
913let isPredicated = 1;
914let hasNewValue = 1;
915let opNewValue = 0;
916let BaseOpcode = "A2_sub";
917}
918def A2_psubtnew : HInst<
919(outs IntRegs:$Rd32),
920(ins PredRegs:$Pu4, IntRegs:$Rt32, IntRegs:$Rs32),
921"if ($Pu4.new) $Rd32 = sub($Rt32,$Rs32)",
922tc_05c070ec, TypeALU32_3op>, Enc_9b0bc1, PredNewRel {
923let Inst{7-7} = 0b0;
924let Inst{13-13} = 0b1;
925let Inst{31-21} = 0b11111011001;
926let isPredicated = 1;
927let hasNewValue = 1;
928let opNewValue = 0;
929let isPredicatedNew = 1;
930let BaseOpcode = "A2_sub";
931}
932def A2_pxorf : HInst<
933(outs IntRegs:$Rd32),
934(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
935"if (!$Pu4) $Rd32 = xor($Rs32,$Rt32)",
936tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
937let Inst{7-7} = 0b1;
938let Inst{13-13} = 0b0;
939let Inst{31-21} = 0b11111001011;
940let isPredicated = 1;
941let isPredicatedFalse = 1;
942let hasNewValue = 1;
943let opNewValue = 0;
944let BaseOpcode = "A2_xor";
945}
946def A2_pxorfnew : HInst<
947(outs IntRegs:$Rd32),
948(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
949"if (!$Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
950tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
951let Inst{7-7} = 0b1;
952let Inst{13-13} = 0b1;
953let Inst{31-21} = 0b11111001011;
954let isPredicated = 1;
955let isPredicatedFalse = 1;
956let hasNewValue = 1;
957let opNewValue = 0;
958let isPredicatedNew = 1;
959let BaseOpcode = "A2_xor";
960}
961def A2_pxort : HInst<
962(outs IntRegs:$Rd32),
963(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
964"if ($Pu4) $Rd32 = xor($Rs32,$Rt32)",
965tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
966let Inst{7-7} = 0b0;
967let Inst{13-13} = 0b0;
968let Inst{31-21} = 0b11111001011;
969let isPredicated = 1;
970let hasNewValue = 1;
971let opNewValue = 0;
972let BaseOpcode = "A2_xor";
973}
974def A2_pxortnew : HInst<
975(outs IntRegs:$Rd32),
976(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
977"if ($Pu4.new) $Rd32 = xor($Rs32,$Rt32)",
978tc_05c070ec, TypeALU32_3op>, Enc_ea4c54, PredNewRel {
979let Inst{7-7} = 0b0;
980let Inst{13-13} = 0b1;
981let Inst{31-21} = 0b11111001011;
982let isPredicated = 1;
983let hasNewValue = 1;
984let opNewValue = 0;
985let isPredicatedNew = 1;
986let BaseOpcode = "A2_xor";
987}
988def A2_roundsat : HInst<
989(outs IntRegs:$Rd32),
990(ins DoubleRegs:$Rss32),
991"$Rd32 = round($Rss32):sat",
992tc_cf8126ae, TypeS_2op>, Enc_90cd8b {
993let Inst{13-5} = 0b000000001;
994let Inst{31-21} = 0b10001000110;
995let hasNewValue = 1;
996let opNewValue = 0;
997let prefersSlot3 = 1;
998let Defs = [USR_OVF];
999}
1000def A2_sat : HInst<
1001(outs IntRegs:$Rd32),
1002(ins DoubleRegs:$Rss32),
1003"$Rd32 = sat($Rss32)",
1004tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
1005let Inst{13-5} = 0b000000000;
1006let Inst{31-21} = 0b10001000110;
1007let hasNewValue = 1;
1008let opNewValue = 0;
1009let Defs = [USR_OVF];
1010}
1011def A2_satb : HInst<
1012(outs IntRegs:$Rd32),
1013(ins IntRegs:$Rs32),
1014"$Rd32 = satb($Rs32)",
1015tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1016let Inst{13-5} = 0b000000111;
1017let Inst{31-21} = 0b10001100110;
1018let hasNewValue = 1;
1019let opNewValue = 0;
1020let Defs = [USR_OVF];
1021}
1022def A2_sath : HInst<
1023(outs IntRegs:$Rd32),
1024(ins IntRegs:$Rs32),
1025"$Rd32 = sath($Rs32)",
1026tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1027let Inst{13-5} = 0b000000100;
1028let Inst{31-21} = 0b10001100110;
1029let hasNewValue = 1;
1030let opNewValue = 0;
1031let Defs = [USR_OVF];
1032}
1033def A2_satub : HInst<
1034(outs IntRegs:$Rd32),
1035(ins IntRegs:$Rs32),
1036"$Rd32 = satub($Rs32)",
1037tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1038let Inst{13-5} = 0b000000110;
1039let Inst{31-21} = 0b10001100110;
1040let hasNewValue = 1;
1041let opNewValue = 0;
1042let Defs = [USR_OVF];
1043}
1044def A2_satuh : HInst<
1045(outs IntRegs:$Rd32),
1046(ins IntRegs:$Rs32),
1047"$Rd32 = satuh($Rs32)",
1048tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1049let Inst{13-5} = 0b000000101;
1050let Inst{31-21} = 0b10001100110;
1051let hasNewValue = 1;
1052let opNewValue = 0;
1053let Defs = [USR_OVF];
1054}
1055def A2_sub : HInst<
1056(outs IntRegs:$Rd32),
1057(ins IntRegs:$Rt32, IntRegs:$Rs32),
1058"$Rd32 = sub($Rt32,$Rs32)",
1059tc_5a2711e5, TypeALU32_3op>, Enc_bd6011, PredNewRel, ImmRegRel {
1060let Inst{7-5} = 0b000;
1061let Inst{13-13} = 0b0;
1062let Inst{31-21} = 0b11110011001;
1063let hasNewValue = 1;
1064let opNewValue = 0;
1065let CextOpcode = "A2_sub";
1066let InputType = "reg";
1067let BaseOpcode = "A2_sub";
1068let isPredicable = 1;
1069}
1070def A2_subh_h16_hh : HInst<
1071(outs IntRegs:$Rd32),
1072(ins IntRegs:$Rt32, IntRegs:$Rs32),
1073"$Rd32 = sub($Rt32.h,$Rs32.h):<<16",
1074tc_679309b8, TypeALU64>, Enc_bd6011 {
1075let Inst{7-5} = 0b011;
1076let Inst{13-13} = 0b0;
1077let Inst{31-21} = 0b11010101011;
1078let hasNewValue = 1;
1079let opNewValue = 0;
1080let prefersSlot3 = 1;
1081}
1082def A2_subh_h16_hl : HInst<
1083(outs IntRegs:$Rd32),
1084(ins IntRegs:$Rt32, IntRegs:$Rs32),
1085"$Rd32 = sub($Rt32.h,$Rs32.l):<<16",
1086tc_679309b8, TypeALU64>, Enc_bd6011 {
1087let Inst{7-5} = 0b010;
1088let Inst{13-13} = 0b0;
1089let Inst{31-21} = 0b11010101011;
1090let hasNewValue = 1;
1091let opNewValue = 0;
1092let prefersSlot3 = 1;
1093}
1094def A2_subh_h16_lh : HInst<
1095(outs IntRegs:$Rd32),
1096(ins IntRegs:$Rt32, IntRegs:$Rs32),
1097"$Rd32 = sub($Rt32.l,$Rs32.h):<<16",
1098tc_679309b8, TypeALU64>, Enc_bd6011 {
1099let Inst{7-5} = 0b001;
1100let Inst{13-13} = 0b0;
1101let Inst{31-21} = 0b11010101011;
1102let hasNewValue = 1;
1103let opNewValue = 0;
1104let prefersSlot3 = 1;
1105}
1106def A2_subh_h16_ll : HInst<
1107(outs IntRegs:$Rd32),
1108(ins IntRegs:$Rt32, IntRegs:$Rs32),
1109"$Rd32 = sub($Rt32.l,$Rs32.l):<<16",
1110tc_679309b8, TypeALU64>, Enc_bd6011 {
1111let Inst{7-5} = 0b000;
1112let Inst{13-13} = 0b0;
1113let Inst{31-21} = 0b11010101011;
1114let hasNewValue = 1;
1115let opNewValue = 0;
1116let prefersSlot3 = 1;
1117}
1118def A2_subh_h16_sat_hh : HInst<
1119(outs IntRegs:$Rd32),
1120(ins IntRegs:$Rt32, IntRegs:$Rs32),
1121"$Rd32 = sub($Rt32.h,$Rs32.h):sat:<<16",
1122tc_779080bf, TypeALU64>, Enc_bd6011 {
1123let Inst{7-5} = 0b111;
1124let Inst{13-13} = 0b0;
1125let Inst{31-21} = 0b11010101011;
1126let hasNewValue = 1;
1127let opNewValue = 0;
1128let prefersSlot3 = 1;
1129let Defs = [USR_OVF];
1130}
1131def A2_subh_h16_sat_hl : HInst<
1132(outs IntRegs:$Rd32),
1133(ins IntRegs:$Rt32, IntRegs:$Rs32),
1134"$Rd32 = sub($Rt32.h,$Rs32.l):sat:<<16",
1135tc_779080bf, TypeALU64>, Enc_bd6011 {
1136let Inst{7-5} = 0b110;
1137let Inst{13-13} = 0b0;
1138let Inst{31-21} = 0b11010101011;
1139let hasNewValue = 1;
1140let opNewValue = 0;
1141let prefersSlot3 = 1;
1142let Defs = [USR_OVF];
1143}
1144def A2_subh_h16_sat_lh : HInst<
1145(outs IntRegs:$Rd32),
1146(ins IntRegs:$Rt32, IntRegs:$Rs32),
1147"$Rd32 = sub($Rt32.l,$Rs32.h):sat:<<16",
1148tc_779080bf, TypeALU64>, Enc_bd6011 {
1149let Inst{7-5} = 0b101;
1150let Inst{13-13} = 0b0;
1151let Inst{31-21} = 0b11010101011;
1152let hasNewValue = 1;
1153let opNewValue = 0;
1154let prefersSlot3 = 1;
1155let Defs = [USR_OVF];
1156}
1157def A2_subh_h16_sat_ll : HInst<
1158(outs IntRegs:$Rd32),
1159(ins IntRegs:$Rt32, IntRegs:$Rs32),
1160"$Rd32 = sub($Rt32.l,$Rs32.l):sat:<<16",
1161tc_779080bf, TypeALU64>, Enc_bd6011 {
1162let Inst{7-5} = 0b100;
1163let Inst{13-13} = 0b0;
1164let Inst{31-21} = 0b11010101011;
1165let hasNewValue = 1;
1166let opNewValue = 0;
1167let prefersSlot3 = 1;
1168let Defs = [USR_OVF];
1169}
1170def A2_subh_l16_hl : HInst<
1171(outs IntRegs:$Rd32),
1172(ins IntRegs:$Rt32, IntRegs:$Rs32),
1173"$Rd32 = sub($Rt32.l,$Rs32.h)",
1174tc_4414d8b1, TypeALU64>, Enc_bd6011 {
1175let Inst{7-5} = 0b010;
1176let Inst{13-13} = 0b0;
1177let Inst{31-21} = 0b11010101001;
1178let hasNewValue = 1;
1179let opNewValue = 0;
1180let prefersSlot3 = 1;
1181}
1182def A2_subh_l16_ll : HInst<
1183(outs IntRegs:$Rd32),
1184(ins IntRegs:$Rt32, IntRegs:$Rs32),
1185"$Rd32 = sub($Rt32.l,$Rs32.l)",
1186tc_4414d8b1, TypeALU64>, Enc_bd6011 {
1187let Inst{7-5} = 0b000;
1188let Inst{13-13} = 0b0;
1189let Inst{31-21} = 0b11010101001;
1190let hasNewValue = 1;
1191let opNewValue = 0;
1192let prefersSlot3 = 1;
1193}
1194def A2_subh_l16_sat_hl : HInst<
1195(outs IntRegs:$Rd32),
1196(ins IntRegs:$Rt32, IntRegs:$Rs32),
1197"$Rd32 = sub($Rt32.l,$Rs32.h):sat",
1198tc_779080bf, TypeALU64>, Enc_bd6011 {
1199let Inst{7-5} = 0b110;
1200let Inst{13-13} = 0b0;
1201let Inst{31-21} = 0b11010101001;
1202let hasNewValue = 1;
1203let opNewValue = 0;
1204let prefersSlot3 = 1;
1205let Defs = [USR_OVF];
1206}
1207def A2_subh_l16_sat_ll : HInst<
1208(outs IntRegs:$Rd32),
1209(ins IntRegs:$Rt32, IntRegs:$Rs32),
1210"$Rd32 = sub($Rt32.l,$Rs32.l):sat",
1211tc_779080bf, TypeALU64>, Enc_bd6011 {
1212let Inst{7-5} = 0b100;
1213let Inst{13-13} = 0b0;
1214let Inst{31-21} = 0b11010101001;
1215let hasNewValue = 1;
1216let opNewValue = 0;
1217let prefersSlot3 = 1;
1218let Defs = [USR_OVF];
1219}
1220def A2_subp : HInst<
1221(outs DoubleRegs:$Rdd32),
1222(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1223"$Rdd32 = sub($Rtt32,$Rss32)",
1224tc_946df596, TypeALU64>, Enc_ea23e4 {
1225let Inst{7-5} = 0b111;
1226let Inst{13-13} = 0b0;
1227let Inst{31-21} = 0b11010011001;
1228}
1229def A2_subri : HInst<
1230(outs IntRegs:$Rd32),
1231(ins s32_0Imm:$Ii, IntRegs:$Rs32),
1232"$Rd32 = sub(#$Ii,$Rs32)",
1233tc_5a2711e5, TypeALU32_2op>, Enc_140c83, PredNewRel, ImmRegRel {
1234let Inst{31-22} = 0b0111011001;
1235let hasNewValue = 1;
1236let opNewValue = 0;
1237let CextOpcode = "A2_sub";
1238let InputType = "imm";
1239let isExtendable = 1;
1240let opExtendable = 1;
1241let isExtentSigned = 1;
1242let opExtentBits = 10;
1243let opExtentAlign = 0;
1244}
1245def A2_subsat : HInst<
1246(outs IntRegs:$Rd32),
1247(ins IntRegs:$Rt32, IntRegs:$Rs32),
1248"$Rd32 = sub($Rt32,$Rs32):sat",
1249tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1250let Inst{7-5} = 0b000;
1251let Inst{13-13} = 0b0;
1252let Inst{31-21} = 0b11110110110;
1253let hasNewValue = 1;
1254let opNewValue = 0;
1255let prefersSlot3 = 1;
1256let Defs = [USR_OVF];
1257let InputType = "reg";
1258}
1259def A2_svaddh : HInst<
1260(outs IntRegs:$Rd32),
1261(ins IntRegs:$Rs32, IntRegs:$Rt32),
1262"$Rd32 = vaddh($Rs32,$Rt32)",
1263tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be {
1264let Inst{7-5} = 0b000;
1265let Inst{13-13} = 0b0;
1266let Inst{31-21} = 0b11110110000;
1267let hasNewValue = 1;
1268let opNewValue = 0;
1269let InputType = "reg";
1270let isCommutable = 1;
1271}
1272def A2_svaddhs : HInst<
1273(outs IntRegs:$Rd32),
1274(ins IntRegs:$Rs32, IntRegs:$Rt32),
1275"$Rd32 = vaddh($Rs32,$Rt32):sat",
1276tc_61830035, TypeALU32_3op>, Enc_5ab2be {
1277let Inst{7-5} = 0b000;
1278let Inst{13-13} = 0b0;
1279let Inst{31-21} = 0b11110110001;
1280let hasNewValue = 1;
1281let opNewValue = 0;
1282let prefersSlot3 = 1;
1283let Defs = [USR_OVF];
1284let InputType = "reg";
1285let isCommutable = 1;
1286}
1287def A2_svadduhs : HInst<
1288(outs IntRegs:$Rd32),
1289(ins IntRegs:$Rs32, IntRegs:$Rt32),
1290"$Rd32 = vadduh($Rs32,$Rt32):sat",
1291tc_61830035, TypeALU32_3op>, Enc_5ab2be {
1292let Inst{7-5} = 0b000;
1293let Inst{13-13} = 0b0;
1294let Inst{31-21} = 0b11110110011;
1295let hasNewValue = 1;
1296let opNewValue = 0;
1297let prefersSlot3 = 1;
1298let Defs = [USR_OVF];
1299let InputType = "reg";
1300let isCommutable = 1;
1301}
1302def A2_svavgh : HInst<
1303(outs IntRegs:$Rd32),
1304(ins IntRegs:$Rs32, IntRegs:$Rt32),
1305"$Rd32 = vavgh($Rs32,$Rt32)",
1306tc_1c80410a, TypeALU32_3op>, Enc_5ab2be {
1307let Inst{7-5} = 0b000;
1308let Inst{13-13} = 0b0;
1309let Inst{31-21} = 0b11110111000;
1310let hasNewValue = 1;
1311let opNewValue = 0;
1312let prefersSlot3 = 1;
1313let InputType = "reg";
1314let isCommutable = 1;
1315}
1316def A2_svavghs : HInst<
1317(outs IntRegs:$Rd32),
1318(ins IntRegs:$Rs32, IntRegs:$Rt32),
1319"$Rd32 = vavgh($Rs32,$Rt32):rnd",
1320tc_d08ee0f4, TypeALU32_3op>, Enc_5ab2be {
1321let Inst{7-5} = 0b000;
1322let Inst{13-13} = 0b0;
1323let Inst{31-21} = 0b11110111001;
1324let hasNewValue = 1;
1325let opNewValue = 0;
1326let prefersSlot3 = 1;
1327let InputType = "reg";
1328let isCommutable = 1;
1329}
1330def A2_svnavgh : HInst<
1331(outs IntRegs:$Rd32),
1332(ins IntRegs:$Rt32, IntRegs:$Rs32),
1333"$Rd32 = vnavgh($Rt32,$Rs32)",
1334tc_1c80410a, TypeALU32_3op>, Enc_bd6011 {
1335let Inst{7-5} = 0b000;
1336let Inst{13-13} = 0b0;
1337let Inst{31-21} = 0b11110111011;
1338let hasNewValue = 1;
1339let opNewValue = 0;
1340let prefersSlot3 = 1;
1341let InputType = "reg";
1342}
1343def A2_svsubh : HInst<
1344(outs IntRegs:$Rd32),
1345(ins IntRegs:$Rt32, IntRegs:$Rs32),
1346"$Rd32 = vsubh($Rt32,$Rs32)",
1347tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
1348let Inst{7-5} = 0b000;
1349let Inst{13-13} = 0b0;
1350let Inst{31-21} = 0b11110110100;
1351let hasNewValue = 1;
1352let opNewValue = 0;
1353let InputType = "reg";
1354}
1355def A2_svsubhs : HInst<
1356(outs IntRegs:$Rd32),
1357(ins IntRegs:$Rt32, IntRegs:$Rs32),
1358"$Rd32 = vsubh($Rt32,$Rs32):sat",
1359tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1360let Inst{7-5} = 0b000;
1361let Inst{13-13} = 0b0;
1362let Inst{31-21} = 0b11110110101;
1363let hasNewValue = 1;
1364let opNewValue = 0;
1365let prefersSlot3 = 1;
1366let Defs = [USR_OVF];
1367let InputType = "reg";
1368}
1369def A2_svsubuhs : HInst<
1370(outs IntRegs:$Rd32),
1371(ins IntRegs:$Rt32, IntRegs:$Rs32),
1372"$Rd32 = vsubuh($Rt32,$Rs32):sat",
1373tc_61830035, TypeALU32_3op>, Enc_bd6011 {
1374let Inst{7-5} = 0b000;
1375let Inst{13-13} = 0b0;
1376let Inst{31-21} = 0b11110110111;
1377let hasNewValue = 1;
1378let opNewValue = 0;
1379let prefersSlot3 = 1;
1380let Defs = [USR_OVF];
1381let InputType = "reg";
1382}
1383def A2_swiz : HInst<
1384(outs IntRegs:$Rd32),
1385(ins IntRegs:$Rs32),
1386"$Rd32 = swiz($Rs32)",
1387tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
1388let Inst{13-5} = 0b000000111;
1389let Inst{31-21} = 0b10001100100;
1390let hasNewValue = 1;
1391let opNewValue = 0;
1392}
1393def A2_sxtb : HInst<
1394(outs IntRegs:$Rd32),
1395(ins IntRegs:$Rs32),
1396"$Rd32 = sxtb($Rs32)",
1397tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1398let Inst{13-5} = 0b000000000;
1399let Inst{31-21} = 0b01110000101;
1400let hasNewValue = 1;
1401let opNewValue = 0;
1402let BaseOpcode = "A2_sxtb";
1403let isPredicable = 1;
1404}
1405def A2_sxth : HInst<
1406(outs IntRegs:$Rd32),
1407(ins IntRegs:$Rs32),
1408"$Rd32 = sxth($Rs32)",
1409tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1410let Inst{13-5} = 0b000000000;
1411let Inst{31-21} = 0b01110000111;
1412let hasNewValue = 1;
1413let opNewValue = 0;
1414let BaseOpcode = "A2_sxth";
1415let isPredicable = 1;
1416}
1417def A2_sxtw : HInst<
1418(outs DoubleRegs:$Rdd32),
1419(ins IntRegs:$Rs32),
1420"$Rdd32 = sxtw($Rs32)",
1421tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
1422let Inst{13-5} = 0b000000000;
1423let Inst{31-21} = 0b10000100010;
1424}
1425def A2_tfr : HInst<
1426(outs IntRegs:$Rd32),
1427(ins IntRegs:$Rs32),
1428"$Rd32 = $Rs32",
1429tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
1430let Inst{13-5} = 0b000000000;
1431let Inst{31-21} = 0b01110000011;
1432let hasNewValue = 1;
1433let opNewValue = 0;
1434let InputType = "reg";
1435let BaseOpcode = "A2_tfr";
1436let isPredicable = 1;
1437}
1438def A2_tfrcrr : HInst<
1439(outs IntRegs:$Rd32),
1440(ins CtrRegs:$Cs32),
1441"$Rd32 = $Cs32",
1442tc_b9272d6c, TypeCR>, Enc_0cb018 {
1443let Inst{13-5} = 0b000000000;
1444let Inst{31-21} = 0b01101010000;
1445let hasNewValue = 1;
1446let opNewValue = 0;
1447}
1448def A2_tfrf : HInst<
1449(outs IntRegs:$Rd32),
1450(ins PredRegs:$Pu4, IntRegs:$Rs32),
1451"if (!$Pu4) $Rd32 = $Rs32",
1452tc_4c5ba658, TypeALU32_2op>, PredNewRel, ImmRegRel {
1453let isPredicated = 1;
1454let isPredicatedFalse = 1;
1455let hasNewValue = 1;
1456let opNewValue = 0;
1457let CextOpcode = "A2_tfr";
1458let InputType = "reg";
1459let BaseOpcode = "A2_tfr";
1460let isPseudo = 1;
1461let isCodeGenOnly = 1;
1462}
1463def A2_tfrfnew : HInst<
1464(outs IntRegs:$Rd32),
1465(ins PredRegs:$Pu4, IntRegs:$Rs32),
1466"if (!$Pu4.new) $Rd32 = $Rs32",
1467tc_05c070ec, TypeALU32_2op>, PredNewRel, ImmRegRel {
1468let isPredicated = 1;
1469let isPredicatedFalse = 1;
1470let hasNewValue = 1;
1471let opNewValue = 0;
1472let isPredicatedNew = 1;
1473let CextOpcode = "A2_tfr";
1474let InputType = "reg";
1475let BaseOpcode = "A2_tfr";
1476let isPseudo = 1;
1477let isCodeGenOnly = 1;
1478}
1479def A2_tfrih : HInst<
1480(outs IntRegs:$Rx32),
1481(ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1482"$Rx32.h = #$Ii",
1483tc_5a2711e5, TypeALU32_2op>, Enc_51436c {
1484let Inst{21-21} = 0b1;
1485let Inst{31-24} = 0b01110010;
1486let hasNewValue = 1;
1487let opNewValue = 0;
1488let Constraints = "$Rx32 = $Rx32in";
1489}
1490def A2_tfril : HInst<
1491(outs IntRegs:$Rx32),
1492(ins IntRegs:$Rx32in, u16_0Imm:$Ii),
1493"$Rx32.l = #$Ii",
1494tc_5a2711e5, TypeALU32_2op>, Enc_51436c {
1495let Inst{21-21} = 0b1;
1496let Inst{31-24} = 0b01110001;
1497let hasNewValue = 1;
1498let opNewValue = 0;
1499let Constraints = "$Rx32 = $Rx32in";
1500}
1501def A2_tfrp : HInst<
1502(outs DoubleRegs:$Rdd32),
1503(ins DoubleRegs:$Rss32),
1504"$Rdd32 = $Rss32",
1505tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1506let BaseOpcode = "A2_tfrp";
1507let isPredicable = 1;
1508let isPseudo = 1;
1509}
1510def A2_tfrpf : HInst<
1511(outs DoubleRegs:$Rdd32),
1512(ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1513"if (!$Pu4) $Rdd32 = $Rss32",
1514tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1515let isPredicated = 1;
1516let isPredicatedFalse = 1;
1517let BaseOpcode = "A2_tfrp";
1518let isPseudo = 1;
1519}
1520def A2_tfrpfnew : HInst<
1521(outs DoubleRegs:$Rdd32),
1522(ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1523"if (!$Pu4.new) $Rdd32 = $Rss32",
1524tc_1ae57e39, TypeALU32_2op>, PredNewRel {
1525let isPredicated = 1;
1526let isPredicatedFalse = 1;
1527let isPredicatedNew = 1;
1528let BaseOpcode = "A2_tfrp";
1529let isPseudo = 1;
1530}
1531def A2_tfrpi : HInst<
1532(outs DoubleRegs:$Rdd32),
1533(ins s8_0Imm:$Ii),
1534"$Rdd32 = #$Ii",
1535tc_5a2711e5, TypeALU64> {
1536let isReMaterializable = 1;
1537let isAsCheapAsAMove = 1;
1538let isMoveImm = 1;
1539let isPseudo = 1;
1540}
1541def A2_tfrpt : HInst<
1542(outs DoubleRegs:$Rdd32),
1543(ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1544"if ($Pu4) $Rdd32 = $Rss32",
1545tc_5a2711e5, TypeALU32_2op>, PredNewRel {
1546let isPredicated = 1;
1547let BaseOpcode = "A2_tfrp";
1548let isPseudo = 1;
1549}
1550def A2_tfrptnew : HInst<
1551(outs DoubleRegs:$Rdd32),
1552(ins PredRegs:$Pu4, DoubleRegs:$Rss32),
1553"if ($Pu4.new) $Rdd32 = $Rss32",
1554tc_1ae57e39, TypeALU32_2op>, PredNewRel {
1555let isPredicated = 1;
1556let isPredicatedNew = 1;
1557let BaseOpcode = "A2_tfrp";
1558let isPseudo = 1;
1559}
1560def A2_tfrrcr : HInst<
1561(outs CtrRegs:$Cd32),
1562(ins IntRegs:$Rs32),
1563"$Cd32 = $Rs32",
1564tc_434c8e1e, TypeCR>, Enc_bd811a {
1565let Inst{13-5} = 0b000000000;
1566let Inst{31-21} = 0b01100010001;
1567let hasNewValue = 1;
1568let opNewValue = 0;
1569}
1570def A2_tfrsi : HInst<
1571(outs IntRegs:$Rd32),
1572(ins s32_0Imm:$Ii),
1573"$Rd32 = #$Ii",
1574tc_57890846, TypeALU32_2op>, Enc_5e87ce, PredNewRel, ImmRegRel {
1575let Inst{21-21} = 0b0;
1576let Inst{31-24} = 0b01111000;
1577let hasNewValue = 1;
1578let opNewValue = 0;
1579let CextOpcode = "A2_tfr";
1580let InputType = "imm";
1581let BaseOpcode = "A2_tfrsi";
1582let isPredicable = 1;
1583let isReMaterializable = 1;
1584let isAsCheapAsAMove = 1;
1585let isMoveImm = 1;
1586let isExtendable = 1;
1587let opExtendable = 1;
1588let isExtentSigned = 1;
1589let opExtentBits = 16;
1590let opExtentAlign = 0;
1591}
1592def A2_tfrt : HInst<
1593(outs IntRegs:$Rd32),
1594(ins PredRegs:$Pu4, IntRegs:$Rs32),
1595"if ($Pu4) $Rd32 = $Rs32",
1596tc_4c5ba658, TypeALU32_2op>, PredNewRel, ImmRegRel {
1597let isPredicated = 1;
1598let hasNewValue = 1;
1599let opNewValue = 0;
1600let CextOpcode = "A2_tfr";
1601let InputType = "reg";
1602let BaseOpcode = "A2_tfr";
1603let isPseudo = 1;
1604let isCodeGenOnly = 1;
1605}
1606def A2_tfrtnew : HInst<
1607(outs IntRegs:$Rd32),
1608(ins PredRegs:$Pu4, IntRegs:$Rs32),
1609"if ($Pu4.new) $Rd32 = $Rs32",
1610tc_05c070ec, TypeALU32_2op>, PredNewRel, ImmRegRel {
1611let isPredicated = 1;
1612let hasNewValue = 1;
1613let opNewValue = 0;
1614let isPredicatedNew = 1;
1615let CextOpcode = "A2_tfr";
1616let InputType = "reg";
1617let BaseOpcode = "A2_tfr";
1618let isPseudo = 1;
1619let isCodeGenOnly = 1;
1620}
1621def A2_vabsh : HInst<
1622(outs DoubleRegs:$Rdd32),
1623(ins DoubleRegs:$Rss32),
1624"$Rdd32 = vabsh($Rss32)",
1625tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1626let Inst{13-5} = 0b000000100;
1627let Inst{31-21} = 0b10000000010;
1628let prefersSlot3 = 1;
1629}
1630def A2_vabshsat : HInst<
1631(outs DoubleRegs:$Rdd32),
1632(ins DoubleRegs:$Rss32),
1633"$Rdd32 = vabsh($Rss32):sat",
1634tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1635let Inst{13-5} = 0b000000101;
1636let Inst{31-21} = 0b10000000010;
1637let prefersSlot3 = 1;
1638let Defs = [USR_OVF];
1639}
1640def A2_vabsw : HInst<
1641(outs DoubleRegs:$Rdd32),
1642(ins DoubleRegs:$Rss32),
1643"$Rdd32 = vabsw($Rss32)",
1644tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1645let Inst{13-5} = 0b000000110;
1646let Inst{31-21} = 0b10000000010;
1647let prefersSlot3 = 1;
1648}
1649def A2_vabswsat : HInst<
1650(outs DoubleRegs:$Rdd32),
1651(ins DoubleRegs:$Rss32),
1652"$Rdd32 = vabsw($Rss32):sat",
1653tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1654let Inst{13-5} = 0b000000111;
1655let Inst{31-21} = 0b10000000010;
1656let prefersSlot3 = 1;
1657let Defs = [USR_OVF];
1658}
1659def A2_vaddb_map : HInst<
1660(outs DoubleRegs:$Rdd32),
1661(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1662"$Rdd32 = vaddb($Rss32,$Rtt32)",
1663tc_946df596, TypeMAPPING> {
1664let isPseudo = 1;
1665let isCodeGenOnly = 1;
1666}
1667def A2_vaddh : HInst<
1668(outs DoubleRegs:$Rdd32),
1669(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1670"$Rdd32 = vaddh($Rss32,$Rtt32)",
1671tc_946df596, TypeALU64>, Enc_a56825 {
1672let Inst{7-5} = 0b010;
1673let Inst{13-13} = 0b0;
1674let Inst{31-21} = 0b11010011000;
1675}
1676def A2_vaddhs : HInst<
1677(outs DoubleRegs:$Rdd32),
1678(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1679"$Rdd32 = vaddh($Rss32,$Rtt32):sat",
1680tc_779080bf, TypeALU64>, Enc_a56825 {
1681let Inst{7-5} = 0b011;
1682let Inst{13-13} = 0b0;
1683let Inst{31-21} = 0b11010011000;
1684let prefersSlot3 = 1;
1685let Defs = [USR_OVF];
1686}
1687def A2_vaddub : HInst<
1688(outs DoubleRegs:$Rdd32),
1689(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1690"$Rdd32 = vaddub($Rss32,$Rtt32)",
1691tc_946df596, TypeALU64>, Enc_a56825 {
1692let Inst{7-5} = 0b000;
1693let Inst{13-13} = 0b0;
1694let Inst{31-21} = 0b11010011000;
1695}
1696def A2_vaddubs : HInst<
1697(outs DoubleRegs:$Rdd32),
1698(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1699"$Rdd32 = vaddub($Rss32,$Rtt32):sat",
1700tc_779080bf, TypeALU64>, Enc_a56825 {
1701let Inst{7-5} = 0b001;
1702let Inst{13-13} = 0b0;
1703let Inst{31-21} = 0b11010011000;
1704let prefersSlot3 = 1;
1705let Defs = [USR_OVF];
1706}
1707def A2_vadduhs : HInst<
1708(outs DoubleRegs:$Rdd32),
1709(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1710"$Rdd32 = vadduh($Rss32,$Rtt32):sat",
1711tc_779080bf, TypeALU64>, Enc_a56825 {
1712let Inst{7-5} = 0b100;
1713let Inst{13-13} = 0b0;
1714let Inst{31-21} = 0b11010011000;
1715let prefersSlot3 = 1;
1716let Defs = [USR_OVF];
1717}
1718def A2_vaddw : HInst<
1719(outs DoubleRegs:$Rdd32),
1720(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1721"$Rdd32 = vaddw($Rss32,$Rtt32)",
1722tc_946df596, TypeALU64>, Enc_a56825 {
1723let Inst{7-5} = 0b101;
1724let Inst{13-13} = 0b0;
1725let Inst{31-21} = 0b11010011000;
1726}
1727def A2_vaddws : HInst<
1728(outs DoubleRegs:$Rdd32),
1729(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1730"$Rdd32 = vaddw($Rss32,$Rtt32):sat",
1731tc_779080bf, TypeALU64>, Enc_a56825 {
1732let Inst{7-5} = 0b110;
1733let Inst{13-13} = 0b0;
1734let Inst{31-21} = 0b11010011000;
1735let prefersSlot3 = 1;
1736let Defs = [USR_OVF];
1737}
1738def A2_vavgh : HInst<
1739(outs DoubleRegs:$Rdd32),
1740(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1741"$Rdd32 = vavgh($Rss32,$Rtt32)",
1742tc_6132ba3d, TypeALU64>, Enc_a56825 {
1743let Inst{7-5} = 0b010;
1744let Inst{13-13} = 0b0;
1745let Inst{31-21} = 0b11010011010;
1746let prefersSlot3 = 1;
1747}
1748def A2_vavghcr : HInst<
1749(outs DoubleRegs:$Rdd32),
1750(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1751"$Rdd32 = vavgh($Rss32,$Rtt32):crnd",
1752tc_002cb246, TypeALU64>, Enc_a56825 {
1753let Inst{7-5} = 0b100;
1754let Inst{13-13} = 0b0;
1755let Inst{31-21} = 0b11010011010;
1756let prefersSlot3 = 1;
1757}
1758def A2_vavghr : HInst<
1759(outs DoubleRegs:$Rdd32),
1760(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1761"$Rdd32 = vavgh($Rss32,$Rtt32):rnd",
1762tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1763let Inst{7-5} = 0b011;
1764let Inst{13-13} = 0b0;
1765let Inst{31-21} = 0b11010011010;
1766let prefersSlot3 = 1;
1767}
1768def A2_vavgub : HInst<
1769(outs DoubleRegs:$Rdd32),
1770(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1771"$Rdd32 = vavgub($Rss32,$Rtt32)",
1772tc_6132ba3d, TypeALU64>, Enc_a56825 {
1773let Inst{7-5} = 0b000;
1774let Inst{13-13} = 0b0;
1775let Inst{31-21} = 0b11010011010;
1776let prefersSlot3 = 1;
1777}
1778def A2_vavgubr : HInst<
1779(outs DoubleRegs:$Rdd32),
1780(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1781"$Rdd32 = vavgub($Rss32,$Rtt32):rnd",
1782tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1783let Inst{7-5} = 0b001;
1784let Inst{13-13} = 0b0;
1785let Inst{31-21} = 0b11010011010;
1786let prefersSlot3 = 1;
1787}
1788def A2_vavguh : HInst<
1789(outs DoubleRegs:$Rdd32),
1790(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1791"$Rdd32 = vavguh($Rss32,$Rtt32)",
1792tc_6132ba3d, TypeALU64>, Enc_a56825 {
1793let Inst{7-5} = 0b101;
1794let Inst{13-13} = 0b0;
1795let Inst{31-21} = 0b11010011010;
1796let prefersSlot3 = 1;
1797}
1798def A2_vavguhr : HInst<
1799(outs DoubleRegs:$Rdd32),
1800(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1801"$Rdd32 = vavguh($Rss32,$Rtt32):rnd",
1802tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1803let Inst{7-5} = 0b110;
1804let Inst{13-13} = 0b0;
1805let Inst{31-21} = 0b11010011010;
1806let prefersSlot3 = 1;
1807}
1808def A2_vavguw : HInst<
1809(outs DoubleRegs:$Rdd32),
1810(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1811"$Rdd32 = vavguw($Rss32,$Rtt32)",
1812tc_6132ba3d, TypeALU64>, Enc_a56825 {
1813let Inst{7-5} = 0b011;
1814let Inst{13-13} = 0b0;
1815let Inst{31-21} = 0b11010011011;
1816let prefersSlot3 = 1;
1817}
1818def A2_vavguwr : HInst<
1819(outs DoubleRegs:$Rdd32),
1820(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1821"$Rdd32 = vavguw($Rss32,$Rtt32):rnd",
1822tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1823let Inst{7-5} = 0b100;
1824let Inst{13-13} = 0b0;
1825let Inst{31-21} = 0b11010011011;
1826let prefersSlot3 = 1;
1827}
1828def A2_vavgw : HInst<
1829(outs DoubleRegs:$Rdd32),
1830(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1831"$Rdd32 = vavgw($Rss32,$Rtt32)",
1832tc_6132ba3d, TypeALU64>, Enc_a56825 {
1833let Inst{7-5} = 0b000;
1834let Inst{13-13} = 0b0;
1835let Inst{31-21} = 0b11010011011;
1836let prefersSlot3 = 1;
1837}
1838def A2_vavgwcr : HInst<
1839(outs DoubleRegs:$Rdd32),
1840(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1841"$Rdd32 = vavgw($Rss32,$Rtt32):crnd",
1842tc_002cb246, TypeALU64>, Enc_a56825 {
1843let Inst{7-5} = 0b010;
1844let Inst{13-13} = 0b0;
1845let Inst{31-21} = 0b11010011011;
1846let prefersSlot3 = 1;
1847}
1848def A2_vavgwr : HInst<
1849(outs DoubleRegs:$Rdd32),
1850(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1851"$Rdd32 = vavgw($Rss32,$Rtt32):rnd",
1852tc_e4a7f9f0, TypeALU64>, Enc_a56825 {
1853let Inst{7-5} = 0b001;
1854let Inst{13-13} = 0b0;
1855let Inst{31-21} = 0b11010011011;
1856let prefersSlot3 = 1;
1857}
1858def A2_vcmpbeq : HInst<
1859(outs PredRegs:$Pd4),
1860(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1861"$Pd4 = vcmpb.eq($Rss32,$Rtt32)",
1862tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1863let Inst{7-2} = 0b110000;
1864let Inst{13-13} = 0b0;
1865let Inst{31-21} = 0b11010010000;
1866}
1867def A2_vcmpbgtu : HInst<
1868(outs PredRegs:$Pd4),
1869(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1870"$Pd4 = vcmpb.gtu($Rss32,$Rtt32)",
1871tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1872let Inst{7-2} = 0b111000;
1873let Inst{13-13} = 0b0;
1874let Inst{31-21} = 0b11010010000;
1875}
1876def A2_vcmpheq : HInst<
1877(outs PredRegs:$Pd4),
1878(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1879"$Pd4 = vcmph.eq($Rss32,$Rtt32)",
1880tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1881let Inst{7-2} = 0b011000;
1882let Inst{13-13} = 0b0;
1883let Inst{31-21} = 0b11010010000;
1884}
1885def A2_vcmphgt : HInst<
1886(outs PredRegs:$Pd4),
1887(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1888"$Pd4 = vcmph.gt($Rss32,$Rtt32)",
1889tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1890let Inst{7-2} = 0b100000;
1891let Inst{13-13} = 0b0;
1892let Inst{31-21} = 0b11010010000;
1893}
1894def A2_vcmphgtu : HInst<
1895(outs PredRegs:$Pd4),
1896(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1897"$Pd4 = vcmph.gtu($Rss32,$Rtt32)",
1898tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1899let Inst{7-2} = 0b101000;
1900let Inst{13-13} = 0b0;
1901let Inst{31-21} = 0b11010010000;
1902}
1903def A2_vcmpweq : HInst<
1904(outs PredRegs:$Pd4),
1905(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1906"$Pd4 = vcmpw.eq($Rss32,$Rtt32)",
1907tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1908let Inst{7-2} = 0b000000;
1909let Inst{13-13} = 0b0;
1910let Inst{31-21} = 0b11010010000;
1911}
1912def A2_vcmpwgt : HInst<
1913(outs PredRegs:$Pd4),
1914(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1915"$Pd4 = vcmpw.gt($Rss32,$Rtt32)",
1916tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1917let Inst{7-2} = 0b001000;
1918let Inst{13-13} = 0b0;
1919let Inst{31-21} = 0b11010010000;
1920}
1921def A2_vcmpwgtu : HInst<
1922(outs PredRegs:$Pd4),
1923(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
1924"$Pd4 = vcmpw.gtu($Rss32,$Rtt32)",
1925tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
1926let Inst{7-2} = 0b010000;
1927let Inst{13-13} = 0b0;
1928let Inst{31-21} = 0b11010010000;
1929}
1930def A2_vconj : HInst<
1931(outs DoubleRegs:$Rdd32),
1932(ins DoubleRegs:$Rss32),
1933"$Rdd32 = vconj($Rss32):sat",
1934tc_cf8126ae, TypeS_2op>, Enc_b9c5fb {
1935let Inst{13-5} = 0b000000111;
1936let Inst{31-21} = 0b10000000100;
1937let prefersSlot3 = 1;
1938let Defs = [USR_OVF];
1939}
1940def A2_vmaxb : HInst<
1941(outs DoubleRegs:$Rdd32),
1942(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1943"$Rdd32 = vmaxb($Rtt32,$Rss32)",
1944tc_779080bf, TypeALU64>, Enc_ea23e4 {
1945let Inst{7-5} = 0b110;
1946let Inst{13-13} = 0b0;
1947let Inst{31-21} = 0b11010011110;
1948let prefersSlot3 = 1;
1949}
1950def A2_vmaxh : HInst<
1951(outs DoubleRegs:$Rdd32),
1952(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1953"$Rdd32 = vmaxh($Rtt32,$Rss32)",
1954tc_779080bf, TypeALU64>, Enc_ea23e4 {
1955let Inst{7-5} = 0b001;
1956let Inst{13-13} = 0b0;
1957let Inst{31-21} = 0b11010011110;
1958let prefersSlot3 = 1;
1959}
1960def A2_vmaxub : HInst<
1961(outs DoubleRegs:$Rdd32),
1962(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1963"$Rdd32 = vmaxub($Rtt32,$Rss32)",
1964tc_779080bf, TypeALU64>, Enc_ea23e4 {
1965let Inst{7-5} = 0b000;
1966let Inst{13-13} = 0b0;
1967let Inst{31-21} = 0b11010011110;
1968let prefersSlot3 = 1;
1969}
1970def A2_vmaxuh : HInst<
1971(outs DoubleRegs:$Rdd32),
1972(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1973"$Rdd32 = vmaxuh($Rtt32,$Rss32)",
1974tc_779080bf, TypeALU64>, Enc_ea23e4 {
1975let Inst{7-5} = 0b010;
1976let Inst{13-13} = 0b0;
1977let Inst{31-21} = 0b11010011110;
1978let prefersSlot3 = 1;
1979}
1980def A2_vmaxuw : HInst<
1981(outs DoubleRegs:$Rdd32),
1982(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1983"$Rdd32 = vmaxuw($Rtt32,$Rss32)",
1984tc_779080bf, TypeALU64>, Enc_ea23e4 {
1985let Inst{7-5} = 0b101;
1986let Inst{13-13} = 0b0;
1987let Inst{31-21} = 0b11010011101;
1988let prefersSlot3 = 1;
1989}
1990def A2_vmaxw : HInst<
1991(outs DoubleRegs:$Rdd32),
1992(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
1993"$Rdd32 = vmaxw($Rtt32,$Rss32)",
1994tc_779080bf, TypeALU64>, Enc_ea23e4 {
1995let Inst{7-5} = 0b011;
1996let Inst{13-13} = 0b0;
1997let Inst{31-21} = 0b11010011110;
1998let prefersSlot3 = 1;
1999}
2000def A2_vminb : HInst<
2001(outs DoubleRegs:$Rdd32),
2002(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2003"$Rdd32 = vminb($Rtt32,$Rss32)",
2004tc_779080bf, TypeALU64>, Enc_ea23e4 {
2005let Inst{7-5} = 0b111;
2006let Inst{13-13} = 0b0;
2007let Inst{31-21} = 0b11010011110;
2008let prefersSlot3 = 1;
2009}
2010def A2_vminh : HInst<
2011(outs DoubleRegs:$Rdd32),
2012(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2013"$Rdd32 = vminh($Rtt32,$Rss32)",
2014tc_779080bf, TypeALU64>, Enc_ea23e4 {
2015let Inst{7-5} = 0b001;
2016let Inst{13-13} = 0b0;
2017let Inst{31-21} = 0b11010011101;
2018let prefersSlot3 = 1;
2019}
2020def A2_vminub : HInst<
2021(outs DoubleRegs:$Rdd32),
2022(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2023"$Rdd32 = vminub($Rtt32,$Rss32)",
2024tc_779080bf, TypeALU64>, Enc_ea23e4 {
2025let Inst{7-5} = 0b000;
2026let Inst{13-13} = 0b0;
2027let Inst{31-21} = 0b11010011101;
2028let prefersSlot3 = 1;
2029}
2030def A2_vminuh : HInst<
2031(outs DoubleRegs:$Rdd32),
2032(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2033"$Rdd32 = vminuh($Rtt32,$Rss32)",
2034tc_779080bf, TypeALU64>, Enc_ea23e4 {
2035let Inst{7-5} = 0b010;
2036let Inst{13-13} = 0b0;
2037let Inst{31-21} = 0b11010011101;
2038let prefersSlot3 = 1;
2039}
2040def A2_vminuw : HInst<
2041(outs DoubleRegs:$Rdd32),
2042(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2043"$Rdd32 = vminuw($Rtt32,$Rss32)",
2044tc_779080bf, TypeALU64>, Enc_ea23e4 {
2045let Inst{7-5} = 0b100;
2046let Inst{13-13} = 0b0;
2047let Inst{31-21} = 0b11010011101;
2048let prefersSlot3 = 1;
2049}
2050def A2_vminw : HInst<
2051(outs DoubleRegs:$Rdd32),
2052(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2053"$Rdd32 = vminw($Rtt32,$Rss32)",
2054tc_779080bf, TypeALU64>, Enc_ea23e4 {
2055let Inst{7-5} = 0b011;
2056let Inst{13-13} = 0b0;
2057let Inst{31-21} = 0b11010011101;
2058let prefersSlot3 = 1;
2059}
2060def A2_vnavgh : HInst<
2061(outs DoubleRegs:$Rdd32),
2062(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2063"$Rdd32 = vnavgh($Rtt32,$Rss32)",
2064tc_6132ba3d, TypeALU64>, Enc_ea23e4 {
2065let Inst{7-5} = 0b000;
2066let Inst{13-13} = 0b0;
2067let Inst{31-21} = 0b11010011100;
2068let prefersSlot3 = 1;
2069}
2070def A2_vnavghcr : HInst<
2071(outs DoubleRegs:$Rdd32),
2072(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2073"$Rdd32 = vnavgh($Rtt32,$Rss32):crnd:sat",
2074tc_002cb246, TypeALU64>, Enc_ea23e4 {
2075let Inst{7-5} = 0b010;
2076let Inst{13-13} = 0b0;
2077let Inst{31-21} = 0b11010011100;
2078let prefersSlot3 = 1;
2079let Defs = [USR_OVF];
2080}
2081def A2_vnavghr : HInst<
2082(outs DoubleRegs:$Rdd32),
2083(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2084"$Rdd32 = vnavgh($Rtt32,$Rss32):rnd:sat",
2085tc_002cb246, TypeALU64>, Enc_ea23e4 {
2086let Inst{7-5} = 0b001;
2087let Inst{13-13} = 0b0;
2088let Inst{31-21} = 0b11010011100;
2089let prefersSlot3 = 1;
2090let Defs = [USR_OVF];
2091}
2092def A2_vnavgw : HInst<
2093(outs DoubleRegs:$Rdd32),
2094(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2095"$Rdd32 = vnavgw($Rtt32,$Rss32)",
2096tc_6132ba3d, TypeALU64>, Enc_ea23e4 {
2097let Inst{7-5} = 0b011;
2098let Inst{13-13} = 0b0;
2099let Inst{31-21} = 0b11010011100;
2100let prefersSlot3 = 1;
2101}
2102def A2_vnavgwcr : HInst<
2103(outs DoubleRegs:$Rdd32),
2104(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2105"$Rdd32 = vnavgw($Rtt32,$Rss32):crnd:sat",
2106tc_002cb246, TypeALU64>, Enc_ea23e4 {
2107let Inst{7-5} = 0b110;
2108let Inst{13-13} = 0b0;
2109let Inst{31-21} = 0b11010011100;
2110let prefersSlot3 = 1;
2111let Defs = [USR_OVF];
2112}
2113def A2_vnavgwr : HInst<
2114(outs DoubleRegs:$Rdd32),
2115(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2116"$Rdd32 = vnavgw($Rtt32,$Rss32):rnd:sat",
2117tc_002cb246, TypeALU64>, Enc_ea23e4 {
2118let Inst{7-5} = 0b100;
2119let Inst{13-13} = 0b0;
2120let Inst{31-21} = 0b11010011100;
2121let prefersSlot3 = 1;
2122let Defs = [USR_OVF];
2123}
2124def A2_vraddub : HInst<
2125(outs DoubleRegs:$Rdd32),
2126(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2127"$Rdd32 = vraddub($Rss32,$Rtt32)",
2128tc_bafaade3, TypeM>, Enc_a56825 {
2129let Inst{7-5} = 0b001;
2130let Inst{13-13} = 0b0;
2131let Inst{31-21} = 0b11101000010;
2132let prefersSlot3 = 1;
2133}
2134def A2_vraddub_acc : HInst<
2135(outs DoubleRegs:$Rxx32),
2136(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2137"$Rxx32 += vraddub($Rss32,$Rtt32)",
2138tc_d773585a, TypeM>, Enc_88c16c {
2139let Inst{7-5} = 0b001;
2140let Inst{13-13} = 0b0;
2141let Inst{31-21} = 0b11101010010;
2142let prefersSlot3 = 1;
2143let Constraints = "$Rxx32 = $Rxx32in";
2144}
2145def A2_vrsadub : HInst<
2146(outs DoubleRegs:$Rdd32),
2147(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2148"$Rdd32 = vrsadub($Rss32,$Rtt32)",
2149tc_bafaade3, TypeM>, Enc_a56825 {
2150let Inst{7-5} = 0b010;
2151let Inst{13-13} = 0b0;
2152let Inst{31-21} = 0b11101000010;
2153let prefersSlot3 = 1;
2154}
2155def A2_vrsadub_acc : HInst<
2156(outs DoubleRegs:$Rxx32),
2157(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2158"$Rxx32 += vrsadub($Rss32,$Rtt32)",
2159tc_d773585a, TypeM>, Enc_88c16c {
2160let Inst{7-5} = 0b010;
2161let Inst{13-13} = 0b0;
2162let Inst{31-21} = 0b11101010010;
2163let prefersSlot3 = 1;
2164let Constraints = "$Rxx32 = $Rxx32in";
2165}
2166def A2_vsubb_map : HInst<
2167(outs DoubleRegs:$Rdd32),
2168(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2169"$Rdd32 = vsubb($Rss32,$Rtt32)",
2170tc_946df596, TypeMAPPING> {
2171let isPseudo = 1;
2172let isCodeGenOnly = 1;
2173}
2174def A2_vsubh : HInst<
2175(outs DoubleRegs:$Rdd32),
2176(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2177"$Rdd32 = vsubh($Rtt32,$Rss32)",
2178tc_946df596, TypeALU64>, Enc_ea23e4 {
2179let Inst{7-5} = 0b010;
2180let Inst{13-13} = 0b0;
2181let Inst{31-21} = 0b11010011001;
2182}
2183def A2_vsubhs : HInst<
2184(outs DoubleRegs:$Rdd32),
2185(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2186"$Rdd32 = vsubh($Rtt32,$Rss32):sat",
2187tc_779080bf, TypeALU64>, Enc_ea23e4 {
2188let Inst{7-5} = 0b011;
2189let Inst{13-13} = 0b0;
2190let Inst{31-21} = 0b11010011001;
2191let prefersSlot3 = 1;
2192let Defs = [USR_OVF];
2193}
2194def A2_vsubub : HInst<
2195(outs DoubleRegs:$Rdd32),
2196(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2197"$Rdd32 = vsubub($Rtt32,$Rss32)",
2198tc_946df596, TypeALU64>, Enc_ea23e4 {
2199let Inst{7-5} = 0b000;
2200let Inst{13-13} = 0b0;
2201let Inst{31-21} = 0b11010011001;
2202}
2203def A2_vsububs : HInst<
2204(outs DoubleRegs:$Rdd32),
2205(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2206"$Rdd32 = vsubub($Rtt32,$Rss32):sat",
2207tc_779080bf, TypeALU64>, Enc_ea23e4 {
2208let Inst{7-5} = 0b001;
2209let Inst{13-13} = 0b0;
2210let Inst{31-21} = 0b11010011001;
2211let prefersSlot3 = 1;
2212let Defs = [USR_OVF];
2213}
2214def A2_vsubuhs : HInst<
2215(outs DoubleRegs:$Rdd32),
2216(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2217"$Rdd32 = vsubuh($Rtt32,$Rss32):sat",
2218tc_779080bf, TypeALU64>, Enc_ea23e4 {
2219let Inst{7-5} = 0b100;
2220let Inst{13-13} = 0b0;
2221let Inst{31-21} = 0b11010011001;
2222let prefersSlot3 = 1;
2223let Defs = [USR_OVF];
2224}
2225def A2_vsubw : HInst<
2226(outs DoubleRegs:$Rdd32),
2227(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2228"$Rdd32 = vsubw($Rtt32,$Rss32)",
2229tc_946df596, TypeALU64>, Enc_ea23e4 {
2230let Inst{7-5} = 0b101;
2231let Inst{13-13} = 0b0;
2232let Inst{31-21} = 0b11010011001;
2233}
2234def A2_vsubws : HInst<
2235(outs DoubleRegs:$Rdd32),
2236(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2237"$Rdd32 = vsubw($Rtt32,$Rss32):sat",
2238tc_779080bf, TypeALU64>, Enc_ea23e4 {
2239let Inst{7-5} = 0b110;
2240let Inst{13-13} = 0b0;
2241let Inst{31-21} = 0b11010011001;
2242let prefersSlot3 = 1;
2243let Defs = [USR_OVF];
2244}
2245def A2_xor : HInst<
2246(outs IntRegs:$Rd32),
2247(ins IntRegs:$Rs32, IntRegs:$Rt32),
2248"$Rd32 = xor($Rs32,$Rt32)",
2249tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, PredNewRel {
2250let Inst{7-5} = 0b000;
2251let Inst{13-13} = 0b0;
2252let Inst{31-21} = 0b11110001011;
2253let hasNewValue = 1;
2254let opNewValue = 0;
2255let InputType = "reg";
2256let BaseOpcode = "A2_xor";
2257let isCommutable = 1;
2258let isPredicable = 1;
2259}
2260def A2_xorp : HInst<
2261(outs DoubleRegs:$Rdd32),
2262(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2263"$Rdd32 = xor($Rss32,$Rtt32)",
2264tc_946df596, TypeALU64>, Enc_a56825 {
2265let Inst{7-5} = 0b100;
2266let Inst{13-13} = 0b0;
2267let Inst{31-21} = 0b11010011111;
2268let isCommutable = 1;
2269}
2270def A2_zxtb : HInst<
2271(outs IntRegs:$Rd32),
2272(ins IntRegs:$Rs32),
2273"$Rd32 = zxtb($Rs32)",
2274tc_5a2711e5, TypeALU32_2op>, PredNewRel {
2275let hasNewValue = 1;
2276let opNewValue = 0;
2277let BaseOpcode = "A2_zxtb";
2278let isPredicable = 1;
2279let isPseudo = 1;
2280let isCodeGenOnly = 1;
2281}
2282def A2_zxth : HInst<
2283(outs IntRegs:$Rd32),
2284(ins IntRegs:$Rs32),
2285"$Rd32 = zxth($Rs32)",
2286tc_57890846, TypeALU32_2op>, Enc_5e2823, PredNewRel {
2287let Inst{13-5} = 0b000000000;
2288let Inst{31-21} = 0b01110000110;
2289let hasNewValue = 1;
2290let opNewValue = 0;
2291let BaseOpcode = "A2_zxth";
2292let isPredicable = 1;
2293}
2294def A4_addp_c : HInst<
2295(outs DoubleRegs:$Rdd32, PredRegs:$Px4),
2296(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
2297"$Rdd32 = add($Rss32,$Rtt32,$Px4):carry",
2298tc_9c3ecd83, TypeS_3op>, Enc_2b3f60 {
2299let Inst{7-7} = 0b0;
2300let Inst{13-13} = 0b0;
2301let Inst{31-21} = 0b11000010110;
2302let isPredicateLate = 1;
2303let Constraints = "$Px4 = $Px4in";
2304}
2305def A4_andn : HInst<
2306(outs IntRegs:$Rd32),
2307(ins IntRegs:$Rt32, IntRegs:$Rs32),
2308"$Rd32 = and($Rt32,~$Rs32)",
2309tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
2310let Inst{7-5} = 0b000;
2311let Inst{13-13} = 0b0;
2312let Inst{31-21} = 0b11110001100;
2313let hasNewValue = 1;
2314let opNewValue = 0;
2315let InputType = "reg";
2316}
2317def A4_andnp : HInst<
2318(outs DoubleRegs:$Rdd32),
2319(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2320"$Rdd32 = and($Rtt32,~$Rss32)",
2321tc_946df596, TypeALU64>, Enc_ea23e4 {
2322let Inst{7-5} = 0b001;
2323let Inst{13-13} = 0b0;
2324let Inst{31-21} = 0b11010011111;
2325}
2326def A4_bitsplit : HInst<
2327(outs DoubleRegs:$Rdd32),
2328(ins IntRegs:$Rs32, IntRegs:$Rt32),
2329"$Rdd32 = bitsplit($Rs32,$Rt32)",
2330tc_4414d8b1, TypeALU64>, Enc_be32a5 {
2331let Inst{7-5} = 0b000;
2332let Inst{13-13} = 0b0;
2333let Inst{31-21} = 0b11010100001;
2334let prefersSlot3 = 1;
2335}
2336def A4_bitspliti : HInst<
2337(outs DoubleRegs:$Rdd32),
2338(ins IntRegs:$Rs32, u5_0Imm:$Ii),
2339"$Rdd32 = bitsplit($Rs32,#$Ii)",
2340tc_4414d8b1, TypeS_2op>, Enc_311abd {
2341let Inst{7-5} = 0b100;
2342let Inst{13-13} = 0b0;
2343let Inst{31-21} = 0b10001000110;
2344let prefersSlot3 = 1;
2345}
2346def A4_boundscheck : HInst<
2347(outs PredRegs:$Pd4),
2348(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
2349"$Pd4 = boundscheck($Rs32,$Rtt32)",
2350tc_85d5d03f, TypeALU64> {
2351let isPseudo = 1;
2352}
2353def A4_boundscheck_hi : HInst<
2354(outs PredRegs:$Pd4),
2355(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2356"$Pd4 = boundscheck($Rss32,$Rtt32):raw:hi",
2357tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
2358let Inst{7-2} = 0b101000;
2359let Inst{13-13} = 0b1;
2360let Inst{31-21} = 0b11010010000;
2361}
2362def A4_boundscheck_lo : HInst<
2363(outs PredRegs:$Pd4),
2364(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
2365"$Pd4 = boundscheck($Rss32,$Rtt32):raw:lo",
2366tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
2367let Inst{7-2} = 0b100000;
2368let Inst{13-13} = 0b1;
2369let Inst{31-21} = 0b11010010000;
2370}
2371def A4_cmpbeq : HInst<
2372(outs PredRegs:$Pd4),
2373(ins IntRegs:$Rs32, IntRegs:$Rt32),
2374"$Pd4 = cmpb.eq($Rs32,$Rt32)",
2375tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2376let Inst{7-2} = 0b110000;
2377let Inst{13-13} = 0b0;
2378let Inst{31-21} = 0b11000111110;
2379let CextOpcode = "A4_cmpbeq";
2380let InputType = "reg";
2381let isCommutable = 1;
2382let isCompare = 1;
2383}
2384def A4_cmpbeqi : HInst<
2385(outs PredRegs:$Pd4),
2386(ins IntRegs:$Rs32, u8_0Imm:$Ii),
2387"$Pd4 = cmpb.eq($Rs32,#$Ii)",
2388tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2389let Inst{4-2} = 0b000;
2390let Inst{13-13} = 0b0;
2391let Inst{31-21} = 0b11011101000;
2392let CextOpcode = "A4_cmpbeq";
2393let InputType = "imm";
2394let isCommutable = 1;
2395let isCompare = 1;
2396}
2397def A4_cmpbgt : HInst<
2398(outs PredRegs:$Pd4),
2399(ins IntRegs:$Rs32, IntRegs:$Rt32),
2400"$Pd4 = cmpb.gt($Rs32,$Rt32)",
2401tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2402let Inst{7-2} = 0b010000;
2403let Inst{13-13} = 0b0;
2404let Inst{31-21} = 0b11000111110;
2405let CextOpcode = "A4_cmpbgt";
2406let InputType = "reg";
2407let isCompare = 1;
2408}
2409def A4_cmpbgti : HInst<
2410(outs PredRegs:$Pd4),
2411(ins IntRegs:$Rs32, s8_0Imm:$Ii),
2412"$Pd4 = cmpb.gt($Rs32,#$Ii)",
2413tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2414let Inst{4-2} = 0b000;
2415let Inst{13-13} = 0b0;
2416let Inst{31-21} = 0b11011101001;
2417let CextOpcode = "A4_cmpbgt";
2418let InputType = "imm";
2419let isCompare = 1;
2420}
2421def A4_cmpbgtu : HInst<
2422(outs PredRegs:$Pd4),
2423(ins IntRegs:$Rs32, IntRegs:$Rt32),
2424"$Pd4 = cmpb.gtu($Rs32,$Rt32)",
2425tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2426let Inst{7-2} = 0b111000;
2427let Inst{13-13} = 0b0;
2428let Inst{31-21} = 0b11000111110;
2429let CextOpcode = "A4_cmpbgtu";
2430let InputType = "reg";
2431let isCompare = 1;
2432}
2433def A4_cmpbgtui : HInst<
2434(outs PredRegs:$Pd4),
2435(ins IntRegs:$Rs32, u32_0Imm:$Ii),
2436"$Pd4 = cmpb.gtu($Rs32,#$Ii)",
2437tc_643b4717, TypeALU64>, Enc_02553a, ImmRegRel {
2438let Inst{4-2} = 0b000;
2439let Inst{13-12} = 0b00;
2440let Inst{31-21} = 0b11011101010;
2441let CextOpcode = "A4_cmpbgtu";
2442let InputType = "imm";
2443let isCompare = 1;
2444let isExtendable = 1;
2445let opExtendable = 2;
2446let isExtentSigned = 0;
2447let opExtentBits = 7;
2448let opExtentAlign = 0;
2449}
2450def A4_cmpheq : HInst<
2451(outs PredRegs:$Pd4),
2452(ins IntRegs:$Rs32, IntRegs:$Rt32),
2453"$Pd4 = cmph.eq($Rs32,$Rt32)",
2454tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2455let Inst{7-2} = 0b011000;
2456let Inst{13-13} = 0b0;
2457let Inst{31-21} = 0b11000111110;
2458let CextOpcode = "A4_cmpheq";
2459let InputType = "reg";
2460let isCommutable = 1;
2461let isCompare = 1;
2462}
2463def A4_cmpheqi : HInst<
2464(outs PredRegs:$Pd4),
2465(ins IntRegs:$Rs32, s32_0Imm:$Ii),
2466"$Pd4 = cmph.eq($Rs32,#$Ii)",
2467tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2468let Inst{4-2} = 0b010;
2469let Inst{13-13} = 0b0;
2470let Inst{31-21} = 0b11011101000;
2471let CextOpcode = "A4_cmpheq";
2472let InputType = "imm";
2473let isCommutable = 1;
2474let isCompare = 1;
2475let isExtendable = 1;
2476let opExtendable = 2;
2477let isExtentSigned = 1;
2478let opExtentBits = 8;
2479let opExtentAlign = 0;
2480}
2481def A4_cmphgt : HInst<
2482(outs PredRegs:$Pd4),
2483(ins IntRegs:$Rs32, IntRegs:$Rt32),
2484"$Pd4 = cmph.gt($Rs32,$Rt32)",
2485tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2486let Inst{7-2} = 0b100000;
2487let Inst{13-13} = 0b0;
2488let Inst{31-21} = 0b11000111110;
2489let CextOpcode = "A4_cmphgt";
2490let InputType = "reg";
2491let isCompare = 1;
2492}
2493def A4_cmphgti : HInst<
2494(outs PredRegs:$Pd4),
2495(ins IntRegs:$Rs32, s32_0Imm:$Ii),
2496"$Pd4 = cmph.gt($Rs32,#$Ii)",
2497tc_643b4717, TypeALU64>, Enc_08d755, ImmRegRel {
2498let Inst{4-2} = 0b010;
2499let Inst{13-13} = 0b0;
2500let Inst{31-21} = 0b11011101001;
2501let CextOpcode = "A4_cmphgt";
2502let InputType = "imm";
2503let isCompare = 1;
2504let isExtendable = 1;
2505let opExtendable = 2;
2506let isExtentSigned = 1;
2507let opExtentBits = 8;
2508let opExtentAlign = 0;
2509}
2510def A4_cmphgtu : HInst<
2511(outs PredRegs:$Pd4),
2512(ins IntRegs:$Rs32, IntRegs:$Rt32),
2513"$Pd4 = cmph.gtu($Rs32,$Rt32)",
2514tc_85d5d03f, TypeS_3op>, Enc_c2b48e, ImmRegRel {
2515let Inst{7-2} = 0b101000;
2516let Inst{13-13} = 0b0;
2517let Inst{31-21} = 0b11000111110;
2518let CextOpcode = "A4_cmphgtu";
2519let InputType = "reg";
2520let isCompare = 1;
2521}
2522def A4_cmphgtui : HInst<
2523(outs PredRegs:$Pd4),
2524(ins IntRegs:$Rs32, u32_0Imm:$Ii),
2525"$Pd4 = cmph.gtu($Rs32,#$Ii)",
2526tc_643b4717, TypeALU64>, Enc_02553a, ImmRegRel {
2527let Inst{4-2} = 0b010;
2528let Inst{13-12} = 0b00;
2529let Inst{31-21} = 0b11011101010;
2530let CextOpcode = "A4_cmphgtu";
2531let InputType = "imm";
2532let isCompare = 1;
2533let isExtendable = 1;
2534let opExtendable = 2;
2535let isExtentSigned = 0;
2536let opExtentBits = 7;
2537let opExtentAlign = 0;
2538}
2539def A4_combineii : HInst<
2540(outs DoubleRegs:$Rdd32),
2541(ins s8_0Imm:$Ii, u32_0Imm:$II),
2542"$Rdd32 = combine(#$Ii,#$II)",
2543tc_5a2711e5, TypeALU32_2op>, Enc_f0cca7 {
2544let Inst{31-21} = 0b01111100100;
2545let isExtendable = 1;
2546let opExtendable = 2;
2547let isExtentSigned = 0;
2548let opExtentBits = 6;
2549let opExtentAlign = 0;
2550}
2551def A4_combineir : HInst<
2552(outs DoubleRegs:$Rdd32),
2553(ins s32_0Imm:$Ii, IntRegs:$Rs32),
2554"$Rdd32 = combine(#$Ii,$Rs32)",
2555tc_5a2711e5, TypeALU32_2op>, Enc_9cdba7 {
2556let Inst{13-13} = 0b1;
2557let Inst{31-21} = 0b01110011001;
2558let isExtendable = 1;
2559let opExtendable = 1;
2560let isExtentSigned = 1;
2561let opExtentBits = 8;
2562let opExtentAlign = 0;
2563}
2564def A4_combineri : HInst<
2565(outs DoubleRegs:$Rdd32),
2566(ins IntRegs:$Rs32, s32_0Imm:$Ii),
2567"$Rdd32 = combine($Rs32,#$Ii)",
2568tc_5a2711e5, TypeALU32_2op>, Enc_9cdba7 {
2569let Inst{13-13} = 0b1;
2570let Inst{31-21} = 0b01110011000;
2571let isExtendable = 1;
2572let opExtendable = 2;
2573let isExtentSigned = 1;
2574let opExtentBits = 8;
2575let opExtentAlign = 0;
2576}
2577def A4_cround_ri : HInst<
2578(outs IntRegs:$Rd32),
2579(ins IntRegs:$Rs32, u5_0Imm:$Ii),
2580"$Rd32 = cround($Rs32,#$Ii)",
2581tc_002cb246, TypeS_2op>, Enc_a05677 {
2582let Inst{7-5} = 0b000;
2583let Inst{13-13} = 0b0;
2584let Inst{31-21} = 0b10001100111;
2585let hasNewValue = 1;
2586let opNewValue = 0;
2587let prefersSlot3 = 1;
2588}
2589def A4_cround_rr : HInst<
2590(outs IntRegs:$Rd32),
2591(ins IntRegs:$Rs32, IntRegs:$Rt32),
2592"$Rd32 = cround($Rs32,$Rt32)",
2593tc_002cb246, TypeS_3op>, Enc_5ab2be {
2594let Inst{7-5} = 0b000;
2595let Inst{13-13} = 0b0;
2596let Inst{31-21} = 0b11000110110;
2597let hasNewValue = 1;
2598let opNewValue = 0;
2599let prefersSlot3 = 1;
2600}
2601def A4_ext : HInst<
2602(outs),
2603(ins u26_6Imm:$Ii),
2604"immext(#$Ii)",
2605tc_862b3e70, TypeEXTENDER>, Enc_2b518f {
2606let Inst{31-28} = 0b0000;
2607}
2608def A4_modwrapu : HInst<
2609(outs IntRegs:$Rd32),
2610(ins IntRegs:$Rs32, IntRegs:$Rt32),
2611"$Rd32 = modwrap($Rs32,$Rt32)",
2612tc_779080bf, TypeALU64>, Enc_5ab2be {
2613let Inst{7-5} = 0b111;
2614let Inst{13-13} = 0b0;
2615let Inst{31-21} = 0b11010011111;
2616let hasNewValue = 1;
2617let opNewValue = 0;
2618let prefersSlot3 = 1;
2619}
2620def A4_orn : HInst<
2621(outs IntRegs:$Rd32),
2622(ins IntRegs:$Rt32, IntRegs:$Rs32),
2623"$Rd32 = or($Rt32,~$Rs32)",
2624tc_5a2711e5, TypeALU32_3op>, Enc_bd6011 {
2625let Inst{7-5} = 0b000;
2626let Inst{13-13} = 0b0;
2627let Inst{31-21} = 0b11110001101;
2628let hasNewValue = 1;
2629let opNewValue = 0;
2630let InputType = "reg";
2631}
2632def A4_ornp : HInst<
2633(outs DoubleRegs:$Rdd32),
2634(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
2635"$Rdd32 = or($Rtt32,~$Rss32)",
2636tc_946df596, TypeALU64>, Enc_ea23e4 {
2637let Inst{7-5} = 0b011;
2638let Inst{13-13} = 0b0;
2639let Inst{31-21} = 0b11010011111;
2640}
2641def A4_paslhf : HInst<
2642(outs IntRegs:$Rd32),
2643(ins PredRegs:$Pu4, IntRegs:$Rs32),
2644"if (!$Pu4) $Rd32 = aslh($Rs32)",
2645tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2646let Inst{7-5} = 0b000;
2647let Inst{13-10} = 0b1010;
2648let Inst{31-21} = 0b01110000000;
2649let isPredicated = 1;
2650let isPredicatedFalse = 1;
2651let hasNewValue = 1;
2652let opNewValue = 0;
2653let BaseOpcode = "A2_aslh";
2654}
2655def A4_paslhfnew : HInst<
2656(outs IntRegs:$Rd32),
2657(ins PredRegs:$Pu4, IntRegs:$Rs32),
2658"if (!$Pu4.new) $Rd32 = aslh($Rs32)",
2659tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2660let Inst{7-5} = 0b000;
2661let Inst{13-10} = 0b1011;
2662let Inst{31-21} = 0b01110000000;
2663let isPredicated = 1;
2664let isPredicatedFalse = 1;
2665let hasNewValue = 1;
2666let opNewValue = 0;
2667let isPredicatedNew = 1;
2668let BaseOpcode = "A2_aslh";
2669}
2670def A4_paslht : HInst<
2671(outs IntRegs:$Rd32),
2672(ins PredRegs:$Pu4, IntRegs:$Rs32),
2673"if ($Pu4) $Rd32 = aslh($Rs32)",
2674tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2675let Inst{7-5} = 0b000;
2676let Inst{13-10} = 0b1000;
2677let Inst{31-21} = 0b01110000000;
2678let isPredicated = 1;
2679let hasNewValue = 1;
2680let opNewValue = 0;
2681let BaseOpcode = "A2_aslh";
2682}
2683def A4_paslhtnew : HInst<
2684(outs IntRegs:$Rd32),
2685(ins PredRegs:$Pu4, IntRegs:$Rs32),
2686"if ($Pu4.new) $Rd32 = aslh($Rs32)",
2687tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2688let Inst{7-5} = 0b000;
2689let Inst{13-10} = 0b1001;
2690let Inst{31-21} = 0b01110000000;
2691let isPredicated = 1;
2692let hasNewValue = 1;
2693let opNewValue = 0;
2694let isPredicatedNew = 1;
2695let BaseOpcode = "A2_aslh";
2696}
2697def A4_pasrhf : HInst<
2698(outs IntRegs:$Rd32),
2699(ins PredRegs:$Pu4, IntRegs:$Rs32),
2700"if (!$Pu4) $Rd32 = asrh($Rs32)",
2701tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2702let Inst{7-5} = 0b000;
2703let Inst{13-10} = 0b1010;
2704let Inst{31-21} = 0b01110000001;
2705let isPredicated = 1;
2706let isPredicatedFalse = 1;
2707let hasNewValue = 1;
2708let opNewValue = 0;
2709let BaseOpcode = "A2_asrh";
2710}
2711def A4_pasrhfnew : HInst<
2712(outs IntRegs:$Rd32),
2713(ins PredRegs:$Pu4, IntRegs:$Rs32),
2714"if (!$Pu4.new) $Rd32 = asrh($Rs32)",
2715tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2716let Inst{7-5} = 0b000;
2717let Inst{13-10} = 0b1011;
2718let Inst{31-21} = 0b01110000001;
2719let isPredicated = 1;
2720let isPredicatedFalse = 1;
2721let hasNewValue = 1;
2722let opNewValue = 0;
2723let isPredicatedNew = 1;
2724let BaseOpcode = "A2_asrh";
2725}
2726def A4_pasrht : HInst<
2727(outs IntRegs:$Rd32),
2728(ins PredRegs:$Pu4, IntRegs:$Rs32),
2729"if ($Pu4) $Rd32 = asrh($Rs32)",
2730tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2731let Inst{7-5} = 0b000;
2732let Inst{13-10} = 0b1000;
2733let Inst{31-21} = 0b01110000001;
2734let isPredicated = 1;
2735let hasNewValue = 1;
2736let opNewValue = 0;
2737let BaseOpcode = "A2_asrh";
2738}
2739def A4_pasrhtnew : HInst<
2740(outs IntRegs:$Rd32),
2741(ins PredRegs:$Pu4, IntRegs:$Rs32),
2742"if ($Pu4.new) $Rd32 = asrh($Rs32)",
2743tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2744let Inst{7-5} = 0b000;
2745let Inst{13-10} = 0b1001;
2746let Inst{31-21} = 0b01110000001;
2747let isPredicated = 1;
2748let hasNewValue = 1;
2749let opNewValue = 0;
2750let isPredicatedNew = 1;
2751let BaseOpcode = "A2_asrh";
2752}
2753def A4_psxtbf : HInst<
2754(outs IntRegs:$Rd32),
2755(ins PredRegs:$Pu4, IntRegs:$Rs32),
2756"if (!$Pu4) $Rd32 = sxtb($Rs32)",
2757tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2758let Inst{7-5} = 0b000;
2759let Inst{13-10} = 0b1010;
2760let Inst{31-21} = 0b01110000101;
2761let isPredicated = 1;
2762let isPredicatedFalse = 1;
2763let hasNewValue = 1;
2764let opNewValue = 0;
2765let BaseOpcode = "A2_sxtb";
2766}
2767def A4_psxtbfnew : HInst<
2768(outs IntRegs:$Rd32),
2769(ins PredRegs:$Pu4, IntRegs:$Rs32),
2770"if (!$Pu4.new) $Rd32 = sxtb($Rs32)",
2771tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2772let Inst{7-5} = 0b000;
2773let Inst{13-10} = 0b1011;
2774let Inst{31-21} = 0b01110000101;
2775let isPredicated = 1;
2776let isPredicatedFalse = 1;
2777let hasNewValue = 1;
2778let opNewValue = 0;
2779let isPredicatedNew = 1;
2780let BaseOpcode = "A2_sxtb";
2781}
2782def A4_psxtbt : HInst<
2783(outs IntRegs:$Rd32),
2784(ins PredRegs:$Pu4, IntRegs:$Rs32),
2785"if ($Pu4) $Rd32 = sxtb($Rs32)",
2786tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2787let Inst{7-5} = 0b000;
2788let Inst{13-10} = 0b1000;
2789let Inst{31-21} = 0b01110000101;
2790let isPredicated = 1;
2791let hasNewValue = 1;
2792let opNewValue = 0;
2793let BaseOpcode = "A2_sxtb";
2794}
2795def A4_psxtbtnew : HInst<
2796(outs IntRegs:$Rd32),
2797(ins PredRegs:$Pu4, IntRegs:$Rs32),
2798"if ($Pu4.new) $Rd32 = sxtb($Rs32)",
2799tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2800let Inst{7-5} = 0b000;
2801let Inst{13-10} = 0b1001;
2802let Inst{31-21} = 0b01110000101;
2803let isPredicated = 1;
2804let hasNewValue = 1;
2805let opNewValue = 0;
2806let isPredicatedNew = 1;
2807let BaseOpcode = "A2_sxtb";
2808}
2809def A4_psxthf : HInst<
2810(outs IntRegs:$Rd32),
2811(ins PredRegs:$Pu4, IntRegs:$Rs32),
2812"if (!$Pu4) $Rd32 = sxth($Rs32)",
2813tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2814let Inst{7-5} = 0b000;
2815let Inst{13-10} = 0b1010;
2816let Inst{31-21} = 0b01110000111;
2817let isPredicated = 1;
2818let isPredicatedFalse = 1;
2819let hasNewValue = 1;
2820let opNewValue = 0;
2821let BaseOpcode = "A2_sxth";
2822}
2823def A4_psxthfnew : HInst<
2824(outs IntRegs:$Rd32),
2825(ins PredRegs:$Pu4, IntRegs:$Rs32),
2826"if (!$Pu4.new) $Rd32 = sxth($Rs32)",
2827tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2828let Inst{7-5} = 0b000;
2829let Inst{13-10} = 0b1011;
2830let Inst{31-21} = 0b01110000111;
2831let isPredicated = 1;
2832let isPredicatedFalse = 1;
2833let hasNewValue = 1;
2834let opNewValue = 0;
2835let isPredicatedNew = 1;
2836let BaseOpcode = "A2_sxth";
2837}
2838def A4_psxtht : HInst<
2839(outs IntRegs:$Rd32),
2840(ins PredRegs:$Pu4, IntRegs:$Rs32),
2841"if ($Pu4) $Rd32 = sxth($Rs32)",
2842tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2843let Inst{7-5} = 0b000;
2844let Inst{13-10} = 0b1000;
2845let Inst{31-21} = 0b01110000111;
2846let isPredicated = 1;
2847let hasNewValue = 1;
2848let opNewValue = 0;
2849let BaseOpcode = "A2_sxth";
2850}
2851def A4_psxthtnew : HInst<
2852(outs IntRegs:$Rd32),
2853(ins PredRegs:$Pu4, IntRegs:$Rs32),
2854"if ($Pu4.new) $Rd32 = sxth($Rs32)",
2855tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2856let Inst{7-5} = 0b000;
2857let Inst{13-10} = 0b1001;
2858let Inst{31-21} = 0b01110000111;
2859let isPredicated = 1;
2860let hasNewValue = 1;
2861let opNewValue = 0;
2862let isPredicatedNew = 1;
2863let BaseOpcode = "A2_sxth";
2864}
2865def A4_pzxtbf : HInst<
2866(outs IntRegs:$Rd32),
2867(ins PredRegs:$Pu4, IntRegs:$Rs32),
2868"if (!$Pu4) $Rd32 = zxtb($Rs32)",
2869tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2870let Inst{7-5} = 0b000;
2871let Inst{13-10} = 0b1010;
2872let Inst{31-21} = 0b01110000100;
2873let isPredicated = 1;
2874let isPredicatedFalse = 1;
2875let hasNewValue = 1;
2876let opNewValue = 0;
2877let BaseOpcode = "A2_zxtb";
2878}
2879def A4_pzxtbfnew : HInst<
2880(outs IntRegs:$Rd32),
2881(ins PredRegs:$Pu4, IntRegs:$Rs32),
2882"if (!$Pu4.new) $Rd32 = zxtb($Rs32)",
2883tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2884let Inst{7-5} = 0b000;
2885let Inst{13-10} = 0b1011;
2886let Inst{31-21} = 0b01110000100;
2887let isPredicated = 1;
2888let isPredicatedFalse = 1;
2889let hasNewValue = 1;
2890let opNewValue = 0;
2891let isPredicatedNew = 1;
2892let BaseOpcode = "A2_zxtb";
2893}
2894def A4_pzxtbt : HInst<
2895(outs IntRegs:$Rd32),
2896(ins PredRegs:$Pu4, IntRegs:$Rs32),
2897"if ($Pu4) $Rd32 = zxtb($Rs32)",
2898tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2899let Inst{7-5} = 0b000;
2900let Inst{13-10} = 0b1000;
2901let Inst{31-21} = 0b01110000100;
2902let isPredicated = 1;
2903let hasNewValue = 1;
2904let opNewValue = 0;
2905let BaseOpcode = "A2_zxtb";
2906}
2907def A4_pzxtbtnew : HInst<
2908(outs IntRegs:$Rd32),
2909(ins PredRegs:$Pu4, IntRegs:$Rs32),
2910"if ($Pu4.new) $Rd32 = zxtb($Rs32)",
2911tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2912let Inst{7-5} = 0b000;
2913let Inst{13-10} = 0b1001;
2914let Inst{31-21} = 0b01110000100;
2915let isPredicated = 1;
2916let hasNewValue = 1;
2917let opNewValue = 0;
2918let isPredicatedNew = 1;
2919let BaseOpcode = "A2_zxtb";
2920}
2921def A4_pzxthf : HInst<
2922(outs IntRegs:$Rd32),
2923(ins PredRegs:$Pu4, IntRegs:$Rs32),
2924"if (!$Pu4) $Rd32 = zxth($Rs32)",
2925tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2926let Inst{7-5} = 0b000;
2927let Inst{13-10} = 0b1010;
2928let Inst{31-21} = 0b01110000110;
2929let isPredicated = 1;
2930let isPredicatedFalse = 1;
2931let hasNewValue = 1;
2932let opNewValue = 0;
2933let BaseOpcode = "A2_zxth";
2934}
2935def A4_pzxthfnew : HInst<
2936(outs IntRegs:$Rd32),
2937(ins PredRegs:$Pu4, IntRegs:$Rs32),
2938"if (!$Pu4.new) $Rd32 = zxth($Rs32)",
2939tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2940let Inst{7-5} = 0b000;
2941let Inst{13-10} = 0b1011;
2942let Inst{31-21} = 0b01110000110;
2943let isPredicated = 1;
2944let isPredicatedFalse = 1;
2945let hasNewValue = 1;
2946let opNewValue = 0;
2947let isPredicatedNew = 1;
2948let BaseOpcode = "A2_zxth";
2949}
2950def A4_pzxtht : HInst<
2951(outs IntRegs:$Rd32),
2952(ins PredRegs:$Pu4, IntRegs:$Rs32),
2953"if ($Pu4) $Rd32 = zxth($Rs32)",
2954tc_5a2711e5, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2955let Inst{7-5} = 0b000;
2956let Inst{13-10} = 0b1000;
2957let Inst{31-21} = 0b01110000110;
2958let isPredicated = 1;
2959let hasNewValue = 1;
2960let opNewValue = 0;
2961let BaseOpcode = "A2_zxth";
2962}
2963def A4_pzxthtnew : HInst<
2964(outs IntRegs:$Rd32),
2965(ins PredRegs:$Pu4, IntRegs:$Rs32),
2966"if ($Pu4.new) $Rd32 = zxth($Rs32)",
2967tc_1ae57e39, TypeALU32_2op>, Enc_fb6577, PredNewRel {
2968let Inst{7-5} = 0b000;
2969let Inst{13-10} = 0b1001;
2970let Inst{31-21} = 0b01110000110;
2971let isPredicated = 1;
2972let hasNewValue = 1;
2973let opNewValue = 0;
2974let isPredicatedNew = 1;
2975let BaseOpcode = "A2_zxth";
2976}
2977def A4_rcmpeq : HInst<
2978(outs IntRegs:$Rd32),
2979(ins IntRegs:$Rs32, IntRegs:$Rt32),
2980"$Rd32 = cmp.eq($Rs32,$Rt32)",
2981tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
2982let Inst{7-5} = 0b000;
2983let Inst{13-13} = 0b0;
2984let Inst{31-21} = 0b11110011010;
2985let hasNewValue = 1;
2986let opNewValue = 0;
2987let CextOpcode = "A4_rcmpeq";
2988let InputType = "reg";
2989let isCommutable = 1;
2990}
2991def A4_rcmpeqi : HInst<
2992(outs IntRegs:$Rd32),
2993(ins IntRegs:$Rs32, s32_0Imm:$Ii),
2994"$Rd32 = cmp.eq($Rs32,#$Ii)",
2995tc_5a2711e5, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
2996let Inst{13-13} = 0b1;
2997let Inst{31-21} = 0b01110011010;
2998let hasNewValue = 1;
2999let opNewValue = 0;
3000let CextOpcode = "A4_rcmpeqi";
3001let InputType = "imm";
3002let isExtendable = 1;
3003let opExtendable = 2;
3004let isExtentSigned = 1;
3005let opExtentBits = 8;
3006let opExtentAlign = 0;
3007}
3008def A4_rcmpneq : HInst<
3009(outs IntRegs:$Rd32),
3010(ins IntRegs:$Rs32, IntRegs:$Rt32),
3011"$Rd32 = !cmp.eq($Rs32,$Rt32)",
3012tc_5a2711e5, TypeALU32_3op>, Enc_5ab2be, ImmRegRel {
3013let Inst{7-5} = 0b000;
3014let Inst{13-13} = 0b0;
3015let Inst{31-21} = 0b11110011011;
3016let hasNewValue = 1;
3017let opNewValue = 0;
3018let CextOpcode = "A4_rcmpneq";
3019let InputType = "reg";
3020let isCommutable = 1;
3021}
3022def A4_rcmpneqi : HInst<
3023(outs IntRegs:$Rd32),
3024(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3025"$Rd32 = !cmp.eq($Rs32,#$Ii)",
3026tc_5a2711e5, TypeALU32_2op>, Enc_b8c967, ImmRegRel {
3027let Inst{13-13} = 0b1;
3028let Inst{31-21} = 0b01110011011;
3029let hasNewValue = 1;
3030let opNewValue = 0;
3031let CextOpcode = "A4_rcmpeqi";
3032let InputType = "imm";
3033let isExtendable = 1;
3034let opExtendable = 2;
3035let isExtentSigned = 1;
3036let opExtentBits = 8;
3037let opExtentAlign = 0;
3038}
3039def A4_round_ri : HInst<
3040(outs IntRegs:$Rd32),
3041(ins IntRegs:$Rs32, u5_0Imm:$Ii),
3042"$Rd32 = round($Rs32,#$Ii)",
3043tc_002cb246, TypeS_2op>, Enc_a05677 {
3044let Inst{7-5} = 0b100;
3045let Inst{13-13} = 0b0;
3046let Inst{31-21} = 0b10001100111;
3047let hasNewValue = 1;
3048let opNewValue = 0;
3049let prefersSlot3 = 1;
3050}
3051def A4_round_ri_sat : HInst<
3052(outs IntRegs:$Rd32),
3053(ins IntRegs:$Rs32, u5_0Imm:$Ii),
3054"$Rd32 = round($Rs32,#$Ii):sat",
3055tc_002cb246, TypeS_2op>, Enc_a05677 {
3056let Inst{7-5} = 0b110;
3057let Inst{13-13} = 0b0;
3058let Inst{31-21} = 0b10001100111;
3059let hasNewValue = 1;
3060let opNewValue = 0;
3061let prefersSlot3 = 1;
3062let Defs = [USR_OVF];
3063}
3064def A4_round_rr : HInst<
3065(outs IntRegs:$Rd32),
3066(ins IntRegs:$Rs32, IntRegs:$Rt32),
3067"$Rd32 = round($Rs32,$Rt32)",
3068tc_002cb246, TypeS_3op>, Enc_5ab2be {
3069let Inst{7-5} = 0b100;
3070let Inst{13-13} = 0b0;
3071let Inst{31-21} = 0b11000110110;
3072let hasNewValue = 1;
3073let opNewValue = 0;
3074let prefersSlot3 = 1;
3075}
3076def A4_round_rr_sat : HInst<
3077(outs IntRegs:$Rd32),
3078(ins IntRegs:$Rs32, IntRegs:$Rt32),
3079"$Rd32 = round($Rs32,$Rt32):sat",
3080tc_002cb246, TypeS_3op>, Enc_5ab2be {
3081let Inst{7-5} = 0b110;
3082let Inst{13-13} = 0b0;
3083let Inst{31-21} = 0b11000110110;
3084let hasNewValue = 1;
3085let opNewValue = 0;
3086let prefersSlot3 = 1;
3087let Defs = [USR_OVF];
3088}
3089def A4_subp_c : HInst<
3090(outs DoubleRegs:$Rdd32, PredRegs:$Px4),
3091(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Px4in),
3092"$Rdd32 = sub($Rss32,$Rtt32,$Px4):carry",
3093tc_9c3ecd83, TypeS_3op>, Enc_2b3f60 {
3094let Inst{7-7} = 0b0;
3095let Inst{13-13} = 0b0;
3096let Inst{31-21} = 0b11000010111;
3097let isPredicateLate = 1;
3098let Constraints = "$Px4 = $Px4in";
3099}
3100def A4_tfrcpp : HInst<
3101(outs DoubleRegs:$Rdd32),
3102(ins CtrRegs64:$Css32),
3103"$Rdd32 = $Css32",
3104tc_b9272d6c, TypeCR>, Enc_667b39 {
3105let Inst{13-5} = 0b000000000;
3106let Inst{31-21} = 0b01101000000;
3107}
3108def A4_tfrpcp : HInst<
3109(outs CtrRegs64:$Cdd32),
3110(ins DoubleRegs:$Rss32),
3111"$Cdd32 = $Rss32",
3112tc_434c8e1e, TypeCR>, Enc_0ed752 {
3113let Inst{13-5} = 0b000000000;
3114let Inst{31-21} = 0b01100011001;
3115}
3116def A4_tlbmatch : HInst<
3117(outs PredRegs:$Pd4),
3118(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
3119"$Pd4 = tlbmatch($Rss32,$Rt32)",
3120tc_4837eefb, TypeALU64>, Enc_03833b {
3121let Inst{7-2} = 0b011000;
3122let Inst{13-13} = 0b1;
3123let Inst{31-21} = 0b11010010000;
3124let isPredicateLate = 1;
3125}
3126def A4_vcmpbeq_any : HInst<
3127(outs PredRegs:$Pd4),
3128(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3129"$Pd4 = any8(vcmpb.eq($Rss32,$Rtt32))",
3130tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3131let Inst{7-2} = 0b000000;
3132let Inst{13-13} = 0b1;
3133let Inst{31-21} = 0b11010010000;
3134}
3135def A4_vcmpbeqi : HInst<
3136(outs PredRegs:$Pd4),
3137(ins DoubleRegs:$Rss32, u8_0Imm:$Ii),
3138"$Pd4 = vcmpb.eq($Rss32,#$Ii)",
3139tc_643b4717, TypeALU64>, Enc_0d8adb {
3140let Inst{4-2} = 0b000;
3141let Inst{13-13} = 0b0;
3142let Inst{31-21} = 0b11011100000;
3143}
3144def A4_vcmpbgt : HInst<
3145(outs PredRegs:$Pd4),
3146(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3147"$Pd4 = vcmpb.gt($Rss32,$Rtt32)",
3148tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3149let Inst{7-2} = 0b010000;
3150let Inst{13-13} = 0b1;
3151let Inst{31-21} = 0b11010010000;
3152}
3153def A4_vcmpbgti : HInst<
3154(outs PredRegs:$Pd4),
3155(ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3156"$Pd4 = vcmpb.gt($Rss32,#$Ii)",
3157tc_643b4717, TypeALU64>, Enc_0d8adb {
3158let Inst{4-2} = 0b000;
3159let Inst{13-13} = 0b0;
3160let Inst{31-21} = 0b11011100001;
3161}
3162def A4_vcmpbgtui : HInst<
3163(outs PredRegs:$Pd4),
3164(ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3165"$Pd4 = vcmpb.gtu($Rss32,#$Ii)",
3166tc_643b4717, TypeALU64>, Enc_3680c2 {
3167let Inst{4-2} = 0b000;
3168let Inst{13-12} = 0b00;
3169let Inst{31-21} = 0b11011100010;
3170}
3171def A4_vcmpheqi : HInst<
3172(outs PredRegs:$Pd4),
3173(ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3174"$Pd4 = vcmph.eq($Rss32,#$Ii)",
3175tc_643b4717, TypeALU64>, Enc_0d8adb {
3176let Inst{4-2} = 0b010;
3177let Inst{13-13} = 0b0;
3178let Inst{31-21} = 0b11011100000;
3179}
3180def A4_vcmphgti : HInst<
3181(outs PredRegs:$Pd4),
3182(ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3183"$Pd4 = vcmph.gt($Rss32,#$Ii)",
3184tc_643b4717, TypeALU64>, Enc_0d8adb {
3185let Inst{4-2} = 0b010;
3186let Inst{13-13} = 0b0;
3187let Inst{31-21} = 0b11011100001;
3188}
3189def A4_vcmphgtui : HInst<
3190(outs PredRegs:$Pd4),
3191(ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3192"$Pd4 = vcmph.gtu($Rss32,#$Ii)",
3193tc_643b4717, TypeALU64>, Enc_3680c2 {
3194let Inst{4-2} = 0b010;
3195let Inst{13-12} = 0b00;
3196let Inst{31-21} = 0b11011100010;
3197}
3198def A4_vcmpweqi : HInst<
3199(outs PredRegs:$Pd4),
3200(ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3201"$Pd4 = vcmpw.eq($Rss32,#$Ii)",
3202tc_643b4717, TypeALU64>, Enc_0d8adb {
3203let Inst{4-2} = 0b100;
3204let Inst{13-13} = 0b0;
3205let Inst{31-21} = 0b11011100000;
3206}
3207def A4_vcmpwgti : HInst<
3208(outs PredRegs:$Pd4),
3209(ins DoubleRegs:$Rss32, s8_0Imm:$Ii),
3210"$Pd4 = vcmpw.gt($Rss32,#$Ii)",
3211tc_643b4717, TypeALU64>, Enc_0d8adb {
3212let Inst{4-2} = 0b100;
3213let Inst{13-13} = 0b0;
3214let Inst{31-21} = 0b11011100001;
3215}
3216def A4_vcmpwgtui : HInst<
3217(outs PredRegs:$Pd4),
3218(ins DoubleRegs:$Rss32, u7_0Imm:$Ii),
3219"$Pd4 = vcmpw.gtu($Rss32,#$Ii)",
3220tc_643b4717, TypeALU64>, Enc_3680c2 {
3221let Inst{4-2} = 0b100;
3222let Inst{13-12} = 0b00;
3223let Inst{31-21} = 0b11011100010;
3224}
3225def A4_vrmaxh : HInst<
3226(outs DoubleRegs:$Rxx32),
3227(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3228"$Rxx32 = vrmaxh($Rss32,$Ru32)",
3229tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3230let Inst{7-5} = 0b001;
3231let Inst{13-13} = 0b0;
3232let Inst{31-21} = 0b11001011001;
3233let prefersSlot3 = 1;
3234let Constraints = "$Rxx32 = $Rxx32in";
3235}
3236def A4_vrmaxuh : HInst<
3237(outs DoubleRegs:$Rxx32),
3238(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3239"$Rxx32 = vrmaxuh($Rss32,$Ru32)",
3240tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3241let Inst{7-5} = 0b001;
3242let Inst{13-13} = 0b1;
3243let Inst{31-21} = 0b11001011001;
3244let prefersSlot3 = 1;
3245let Constraints = "$Rxx32 = $Rxx32in";
3246}
3247def A4_vrmaxuw : HInst<
3248(outs DoubleRegs:$Rxx32),
3249(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3250"$Rxx32 = vrmaxuw($Rss32,$Ru32)",
3251tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3252let Inst{7-5} = 0b010;
3253let Inst{13-13} = 0b1;
3254let Inst{31-21} = 0b11001011001;
3255let prefersSlot3 = 1;
3256let Constraints = "$Rxx32 = $Rxx32in";
3257}
3258def A4_vrmaxw : HInst<
3259(outs DoubleRegs:$Rxx32),
3260(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3261"$Rxx32 = vrmaxw($Rss32,$Ru32)",
3262tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3263let Inst{7-5} = 0b010;
3264let Inst{13-13} = 0b0;
3265let Inst{31-21} = 0b11001011001;
3266let prefersSlot3 = 1;
3267let Constraints = "$Rxx32 = $Rxx32in";
3268}
3269def A4_vrminh : HInst<
3270(outs DoubleRegs:$Rxx32),
3271(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3272"$Rxx32 = vrminh($Rss32,$Ru32)",
3273tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3274let Inst{7-5} = 0b101;
3275let Inst{13-13} = 0b0;
3276let Inst{31-21} = 0b11001011001;
3277let prefersSlot3 = 1;
3278let Constraints = "$Rxx32 = $Rxx32in";
3279}
3280def A4_vrminuh : HInst<
3281(outs DoubleRegs:$Rxx32),
3282(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3283"$Rxx32 = vrminuh($Rss32,$Ru32)",
3284tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3285let Inst{7-5} = 0b101;
3286let Inst{13-13} = 0b1;
3287let Inst{31-21} = 0b11001011001;
3288let prefersSlot3 = 1;
3289let Constraints = "$Rxx32 = $Rxx32in";
3290}
3291def A4_vrminuw : HInst<
3292(outs DoubleRegs:$Rxx32),
3293(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3294"$Rxx32 = vrminuw($Rss32,$Ru32)",
3295tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3296let Inst{7-5} = 0b110;
3297let Inst{13-13} = 0b1;
3298let Inst{31-21} = 0b11001011001;
3299let prefersSlot3 = 1;
3300let Constraints = "$Rxx32 = $Rxx32in";
3301}
3302def A4_vrminw : HInst<
3303(outs DoubleRegs:$Rxx32),
3304(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Ru32),
3305"$Rxx32 = vrminw($Rss32,$Ru32)",
3306tc_5b54b33f, TypeS_3op>, Enc_412ff0 {
3307let Inst{7-5} = 0b110;
3308let Inst{13-13} = 0b0;
3309let Inst{31-21} = 0b11001011001;
3310let prefersSlot3 = 1;
3311let Constraints = "$Rxx32 = $Rxx32in";
3312}
3313def A5_ACS : HInst<
3314(outs DoubleRegs:$Rxx32, PredRegs:$Pe4),
3315(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3316"$Rxx32,$Pe4 = vacsh($Rss32,$Rtt32)",
3317tc_d1aa9eaa, TypeM>, Enc_831a7d, Requires<[HasV55]> {
3318let Inst{7-7} = 0b0;
3319let Inst{13-13} = 0b0;
3320let Inst{31-21} = 0b11101010101;
3321let isPredicateLate = 1;
3322let prefersSlot3 = 1;
3323let Defs = [USR_OVF];
3324let Constraints = "$Rxx32 = $Rxx32in";
3325}
3326def A5_vaddhubs : HInst<
3327(outs IntRegs:$Rd32),
3328(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3329"$Rd32 = vaddhub($Rss32,$Rtt32):sat",
3330tc_002cb246, TypeS_3op>, Enc_d2216a {
3331let Inst{7-5} = 0b001;
3332let Inst{13-13} = 0b0;
3333let Inst{31-21} = 0b11000001010;
3334let hasNewValue = 1;
3335let opNewValue = 0;
3336let prefersSlot3 = 1;
3337let Defs = [USR_OVF];
3338}
3339def A6_vcmpbeq_notany : HInst<
3340(outs PredRegs:$Pd4),
3341(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3342"$Pd4 = !any8(vcmpb.eq($Rss32,$Rtt32))",
3343tc_1fc97744, TypeALU64>, Enc_fcf7a7, Requires<[HasV65]> {
3344let Inst{7-2} = 0b001000;
3345let Inst{13-13} = 0b1;
3346let Inst{31-21} = 0b11010010000;
3347}
3348def A6_vminub_RdP : HInst<
3349(outs DoubleRegs:$Rdd32, PredRegs:$Pe4),
3350(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
3351"$Rdd32,$Pe4 = vminub($Rtt32,$Rss32)",
3352tc_f9058dd7, TypeM>, Enc_d2c7f1, Requires<[HasV62]> {
3353let Inst{7-7} = 0b0;
3354let Inst{13-13} = 0b0;
3355let Inst{31-21} = 0b11101010111;
3356let isPredicateLate = 1;
3357let prefersSlot3 = 1;
3358}
3359def C2_all8 : HInst<
3360(outs PredRegs:$Pd4),
3361(ins PredRegs:$Ps4),
3362"$Pd4 = all8($Ps4)",
3363tc_de554571, TypeCR>, Enc_65d691 {
3364let Inst{13-2} = 0b000000000000;
3365let Inst{31-18} = 0b01101011101000;
3366}
3367def C2_and : HInst<
3368(outs PredRegs:$Pd4),
3369(ins PredRegs:$Pt4, PredRegs:$Ps4),
3370"$Pd4 = and($Pt4,$Ps4)",
3371tc_640086b5, TypeCR>, Enc_454a26 {
3372let Inst{7-2} = 0b000000;
3373let Inst{13-10} = 0b0000;
3374let Inst{31-18} = 0b01101011000000;
3375}
3376def C2_andn : HInst<
3377(outs PredRegs:$Pd4),
3378(ins PredRegs:$Pt4, PredRegs:$Ps4),
3379"$Pd4 = and($Pt4,!$Ps4)",
3380tc_640086b5, TypeCR>, Enc_454a26 {
3381let Inst{7-2} = 0b000000;
3382let Inst{13-10} = 0b0000;
3383let Inst{31-18} = 0b01101011011000;
3384}
3385def C2_any8 : HInst<
3386(outs PredRegs:$Pd4),
3387(ins PredRegs:$Ps4),
3388"$Pd4 = any8($Ps4)",
3389tc_de554571, TypeCR>, Enc_65d691 {
3390let Inst{13-2} = 0b000000000000;
3391let Inst{31-18} = 0b01101011100000;
3392}
3393def C2_bitsclr : HInst<
3394(outs PredRegs:$Pd4),
3395(ins IntRegs:$Rs32, IntRegs:$Rt32),
3396"$Pd4 = bitsclr($Rs32,$Rt32)",
3397tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
3398let Inst{7-2} = 0b000000;
3399let Inst{13-13} = 0b0;
3400let Inst{31-21} = 0b11000111100;
3401}
3402def C2_bitsclri : HInst<
3403(outs PredRegs:$Pd4),
3404(ins IntRegs:$Rs32, u6_0Imm:$Ii),
3405"$Pd4 = bitsclr($Rs32,#$Ii)",
3406tc_643b4717, TypeS_2op>, Enc_5d6c34 {
3407let Inst{7-2} = 0b000000;
3408let Inst{31-21} = 0b10000101100;
3409}
3410def C2_bitsset : HInst<
3411(outs PredRegs:$Pd4),
3412(ins IntRegs:$Rs32, IntRegs:$Rt32),
3413"$Pd4 = bitsset($Rs32,$Rt32)",
3414tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
3415let Inst{7-2} = 0b000000;
3416let Inst{13-13} = 0b0;
3417let Inst{31-21} = 0b11000111010;
3418}
3419def C2_ccombinewf : HInst<
3420(outs DoubleRegs:$Rdd32),
3421(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3422"if (!$Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3423tc_4c5ba658, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3424let Inst{7-7} = 0b1;
3425let Inst{13-13} = 0b0;
3426let Inst{31-21} = 0b11111101000;
3427let isPredicated = 1;
3428let isPredicatedFalse = 1;
3429let BaseOpcode = "A2_combinew";
3430}
3431def C2_ccombinewnewf : HInst<
3432(outs DoubleRegs:$Rdd32),
3433(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3434"if (!$Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3435tc_05c070ec, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3436let Inst{7-7} = 0b1;
3437let Inst{13-13} = 0b1;
3438let Inst{31-21} = 0b11111101000;
3439let isPredicated = 1;
3440let isPredicatedFalse = 1;
3441let isPredicatedNew = 1;
3442let BaseOpcode = "A2_combinew";
3443}
3444def C2_ccombinewnewt : HInst<
3445(outs DoubleRegs:$Rdd32),
3446(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3447"if ($Pu4.new) $Rdd32 = combine($Rs32,$Rt32)",
3448tc_05c070ec, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3449let Inst{7-7} = 0b0;
3450let Inst{13-13} = 0b1;
3451let Inst{31-21} = 0b11111101000;
3452let isPredicated = 1;
3453let isPredicatedNew = 1;
3454let BaseOpcode = "A2_combinew";
3455}
3456def C2_ccombinewt : HInst<
3457(outs DoubleRegs:$Rdd32),
3458(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3459"if ($Pu4) $Rdd32 = combine($Rs32,$Rt32)",
3460tc_4c5ba658, TypeALU32_3op>, Enc_cb4b4e, PredNewRel {
3461let Inst{7-7} = 0b0;
3462let Inst{13-13} = 0b0;
3463let Inst{31-21} = 0b11111101000;
3464let isPredicated = 1;
3465let BaseOpcode = "A2_combinew";
3466}
3467def C2_cmoveif : HInst<
3468(outs IntRegs:$Rd32),
3469(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3470"if (!$Pu4) $Rd32 = #$Ii",
3471tc_5a2711e5, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3472let Inst{13-13} = 0b0;
3473let Inst{20-20} = 0b0;
3474let Inst{31-23} = 0b011111101;
3475let isPredicated = 1;
3476let isPredicatedFalse = 1;
3477let hasNewValue = 1;
3478let opNewValue = 0;
3479let CextOpcode = "A2_tfr";
3480let InputType = "imm";
3481let BaseOpcode = "A2_tfrsi";
3482let isMoveImm = 1;
3483let isExtendable = 1;
3484let opExtendable = 2;
3485let isExtentSigned = 1;
3486let opExtentBits = 12;
3487let opExtentAlign = 0;
3488}
3489def C2_cmoveit : HInst<
3490(outs IntRegs:$Rd32),
3491(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3492"if ($Pu4) $Rd32 = #$Ii",
3493tc_5a2711e5, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3494let Inst{13-13} = 0b0;
3495let Inst{20-20} = 0b0;
3496let Inst{31-23} = 0b011111100;
3497let isPredicated = 1;
3498let hasNewValue = 1;
3499let opNewValue = 0;
3500let CextOpcode = "A2_tfr";
3501let InputType = "imm";
3502let BaseOpcode = "A2_tfrsi";
3503let isMoveImm = 1;
3504let isExtendable = 1;
3505let opExtendable = 2;
3506let isExtentSigned = 1;
3507let opExtentBits = 12;
3508let opExtentAlign = 0;
3509}
3510def C2_cmovenewif : HInst<
3511(outs IntRegs:$Rd32),
3512(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3513"if (!$Pu4.new) $Rd32 = #$Ii",
3514tc_1ae57e39, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3515let Inst{13-13} = 0b1;
3516let Inst{20-20} = 0b0;
3517let Inst{31-23} = 0b011111101;
3518let isPredicated = 1;
3519let isPredicatedFalse = 1;
3520let hasNewValue = 1;
3521let opNewValue = 0;
3522let isPredicatedNew = 1;
3523let CextOpcode = "A2_tfr";
3524let InputType = "imm";
3525let BaseOpcode = "A2_tfrsi";
3526let isMoveImm = 1;
3527let isExtendable = 1;
3528let opExtendable = 2;
3529let isExtentSigned = 1;
3530let opExtentBits = 12;
3531let opExtentAlign = 0;
3532}
3533def C2_cmovenewit : HInst<
3534(outs IntRegs:$Rd32),
3535(ins PredRegs:$Pu4, s32_0Imm:$Ii),
3536"if ($Pu4.new) $Rd32 = #$Ii",
3537tc_1ae57e39, TypeALU32_2op>, Enc_cda00a, PredNewRel, ImmRegRel {
3538let Inst{13-13} = 0b1;
3539let Inst{20-20} = 0b0;
3540let Inst{31-23} = 0b011111100;
3541let isPredicated = 1;
3542let hasNewValue = 1;
3543let opNewValue = 0;
3544let isPredicatedNew = 1;
3545let CextOpcode = "A2_tfr";
3546let InputType = "imm";
3547let BaseOpcode = "A2_tfrsi";
3548let isMoveImm = 1;
3549let isExtendable = 1;
3550let opExtendable = 2;
3551let isExtentSigned = 1;
3552let opExtentBits = 12;
3553let opExtentAlign = 0;
3554}
3555def C2_cmpeq : HInst<
3556(outs PredRegs:$Pd4),
3557(ins IntRegs:$Rs32, IntRegs:$Rt32),
3558"$Pd4 = cmp.eq($Rs32,$Rt32)",
3559tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3560let Inst{7-2} = 0b000000;
3561let Inst{13-13} = 0b0;
3562let Inst{31-21} = 0b11110010000;
3563let CextOpcode = "C2_cmpeq";
3564let InputType = "reg";
3565let isCommutable = 1;
3566let isCompare = 1;
3567}
3568def C2_cmpeqi : HInst<
3569(outs PredRegs:$Pd4),
3570(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3571"$Pd4 = cmp.eq($Rs32,#$Ii)",
3572tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3573let Inst{4-2} = 0b000;
3574let Inst{31-22} = 0b0111010100;
3575let CextOpcode = "C2_cmpeq";
3576let InputType = "imm";
3577let isCompare = 1;
3578let isExtendable = 1;
3579let opExtendable = 2;
3580let isExtentSigned = 1;
3581let opExtentBits = 10;
3582let opExtentAlign = 0;
3583}
3584def C2_cmpeqp : HInst<
3585(outs PredRegs:$Pd4),
3586(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3587"$Pd4 = cmp.eq($Rss32,$Rtt32)",
3588tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3589let Inst{7-2} = 0b000000;
3590let Inst{13-13} = 0b0;
3591let Inst{31-21} = 0b11010010100;
3592let isCommutable = 1;
3593let isCompare = 1;
3594}
3595def C2_cmpgei : HInst<
3596(outs PredRegs:$Pd4),
3597(ins IntRegs:$Rs32, s8_0Imm:$Ii),
3598"$Pd4 = cmp.ge($Rs32,#$Ii)",
3599tc_56f114f4, TypeALU32_2op> {
3600let isCompare = 1;
3601let isPseudo = 1;
3602}
3603def C2_cmpgeui : HInst<
3604(outs PredRegs:$Pd4),
3605(ins IntRegs:$Rs32, u8_0Imm:$Ii),
3606"$Pd4 = cmp.geu($Rs32,#$Ii)",
3607tc_56f114f4, TypeALU32_2op> {
3608let isCompare = 1;
3609let isPseudo = 1;
3610}
3611def C2_cmpgt : HInst<
3612(outs PredRegs:$Pd4),
3613(ins IntRegs:$Rs32, IntRegs:$Rt32),
3614"$Pd4 = cmp.gt($Rs32,$Rt32)",
3615tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3616let Inst{7-2} = 0b000000;
3617let Inst{13-13} = 0b0;
3618let Inst{31-21} = 0b11110010010;
3619let CextOpcode = "C2_cmpgt";
3620let InputType = "reg";
3621let isCompare = 1;
3622}
3623def C2_cmpgti : HInst<
3624(outs PredRegs:$Pd4),
3625(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3626"$Pd4 = cmp.gt($Rs32,#$Ii)",
3627tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3628let Inst{4-2} = 0b000;
3629let Inst{31-22} = 0b0111010101;
3630let CextOpcode = "C2_cmpgt";
3631let InputType = "imm";
3632let isCompare = 1;
3633let isExtendable = 1;
3634let opExtendable = 2;
3635let isExtentSigned = 1;
3636let opExtentBits = 10;
3637let opExtentAlign = 0;
3638}
3639def C2_cmpgtp : HInst<
3640(outs PredRegs:$Pd4),
3641(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3642"$Pd4 = cmp.gt($Rss32,$Rtt32)",
3643tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3644let Inst{7-2} = 0b010000;
3645let Inst{13-13} = 0b0;
3646let Inst{31-21} = 0b11010010100;
3647let isCompare = 1;
3648}
3649def C2_cmpgtu : HInst<
3650(outs PredRegs:$Pd4),
3651(ins IntRegs:$Rs32, IntRegs:$Rt32),
3652"$Pd4 = cmp.gtu($Rs32,$Rt32)",
3653tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3654let Inst{7-2} = 0b000000;
3655let Inst{13-13} = 0b0;
3656let Inst{31-21} = 0b11110010011;
3657let CextOpcode = "C2_cmpgtu";
3658let InputType = "reg";
3659let isCompare = 1;
3660}
3661def C2_cmpgtui : HInst<
3662(outs PredRegs:$Pd4),
3663(ins IntRegs:$Rs32, u32_0Imm:$Ii),
3664"$Pd4 = cmp.gtu($Rs32,#$Ii)",
3665tc_56f114f4, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3666let Inst{4-2} = 0b000;
3667let Inst{31-21} = 0b01110101100;
3668let CextOpcode = "C2_cmpgtu";
3669let InputType = "imm";
3670let isCompare = 1;
3671let isExtendable = 1;
3672let opExtendable = 2;
3673let isExtentSigned = 0;
3674let opExtentBits = 9;
3675let opExtentAlign = 0;
3676}
3677def C2_cmpgtup : HInst<
3678(outs PredRegs:$Pd4),
3679(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3680"$Pd4 = cmp.gtu($Rss32,$Rtt32)",
3681tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
3682let Inst{7-2} = 0b100000;
3683let Inst{13-13} = 0b0;
3684let Inst{31-21} = 0b11010010100;
3685let isCompare = 1;
3686}
3687def C2_cmplt : HInst<
3688(outs PredRegs:$Pd4),
3689(ins IntRegs:$Rs32, IntRegs:$Rt32),
3690"$Pd4 = cmp.lt($Rs32,$Rt32)",
3691tc_56f114f4, TypeALU32_3op> {
3692let isCompare = 1;
3693let isPseudo = 1;
3694let isCodeGenOnly = 1;
3695}
3696def C2_cmpltu : HInst<
3697(outs PredRegs:$Pd4),
3698(ins IntRegs:$Rs32, IntRegs:$Rt32),
3699"$Pd4 = cmp.ltu($Rs32,$Rt32)",
3700tc_56f114f4, TypeALU32_3op> {
3701let isCompare = 1;
3702let isPseudo = 1;
3703let isCodeGenOnly = 1;
3704}
3705def C2_mask : HInst<
3706(outs DoubleRegs:$Rdd32),
3707(ins PredRegs:$Pt4),
3708"$Rdd32 = mask($Pt4)",
3709tc_0ae0825c, TypeS_2op>, Enc_78e566 {
3710let Inst{7-5} = 0b000;
3711let Inst{13-10} = 0b0000;
3712let Inst{31-16} = 0b1000011000000000;
3713}
3714def C2_mux : HInst<
3715(outs IntRegs:$Rd32),
3716(ins PredRegs:$Pu4, IntRegs:$Rs32, IntRegs:$Rt32),
3717"$Rd32 = mux($Pu4,$Rs32,$Rt32)",
3718tc_4c5ba658, TypeALU32_3op>, Enc_ea4c54 {
3719let Inst{7-7} = 0b0;
3720let Inst{13-13} = 0b0;
3721let Inst{31-21} = 0b11110100000;
3722let hasNewValue = 1;
3723let opNewValue = 0;
3724let InputType = "reg";
3725}
3726def C2_muxii : HInst<
3727(outs IntRegs:$Rd32),
3728(ins PredRegs:$Pu4, s32_0Imm:$Ii, s8_0Imm:$II),
3729"$Rd32 = mux($Pu4,#$Ii,#$II)",
3730tc_4c5ba658, TypeALU32_2op>, Enc_830e5d {
3731let Inst{31-25} = 0b0111101;
3732let hasNewValue = 1;
3733let opNewValue = 0;
3734let isExtendable = 1;
3735let opExtendable = 2;
3736let isExtentSigned = 1;
3737let opExtentBits = 8;
3738let opExtentAlign = 0;
3739}
3740def C2_muxir : HInst<
3741(outs IntRegs:$Rd32),
3742(ins PredRegs:$Pu4, IntRegs:$Rs32, s32_0Imm:$Ii),
3743"$Rd32 = mux($Pu4,$Rs32,#$Ii)",
3744tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f {
3745let Inst{13-13} = 0b0;
3746let Inst{31-23} = 0b011100110;
3747let hasNewValue = 1;
3748let opNewValue = 0;
3749let InputType = "imm";
3750let isExtendable = 1;
3751let opExtendable = 3;
3752let isExtentSigned = 1;
3753let opExtentBits = 8;
3754let opExtentAlign = 0;
3755}
3756def C2_muxri : HInst<
3757(outs IntRegs:$Rd32),
3758(ins PredRegs:$Pu4, s32_0Imm:$Ii, IntRegs:$Rs32),
3759"$Rd32 = mux($Pu4,#$Ii,$Rs32)",
3760tc_4c5ba658, TypeALU32_2op>, Enc_e38e1f {
3761let Inst{13-13} = 0b0;
3762let Inst{31-23} = 0b011100111;
3763let hasNewValue = 1;
3764let opNewValue = 0;
3765let InputType = "imm";
3766let isExtendable = 1;
3767let opExtendable = 2;
3768let isExtentSigned = 1;
3769let opExtentBits = 8;
3770let opExtentAlign = 0;
3771}
3772def C2_not : HInst<
3773(outs PredRegs:$Pd4),
3774(ins PredRegs:$Ps4),
3775"$Pd4 = not($Ps4)",
3776tc_de554571, TypeCR>, Enc_65d691 {
3777let Inst{13-2} = 0b000000000000;
3778let Inst{31-18} = 0b01101011110000;
3779}
3780def C2_or : HInst<
3781(outs PredRegs:$Pd4),
3782(ins PredRegs:$Pt4, PredRegs:$Ps4),
3783"$Pd4 = or($Pt4,$Ps4)",
3784tc_640086b5, TypeCR>, Enc_454a26 {
3785let Inst{7-2} = 0b000000;
3786let Inst{13-10} = 0b0000;
3787let Inst{31-18} = 0b01101011001000;
3788}
3789def C2_orn : HInst<
3790(outs PredRegs:$Pd4),
3791(ins PredRegs:$Pt4, PredRegs:$Ps4),
3792"$Pd4 = or($Pt4,!$Ps4)",
3793tc_640086b5, TypeCR>, Enc_454a26 {
3794let Inst{7-2} = 0b000000;
3795let Inst{13-10} = 0b0000;
3796let Inst{31-18} = 0b01101011111000;
3797}
3798def C2_pxfer_map : HInst<
3799(outs PredRegs:$Pd4),
3800(ins PredRegs:$Ps4),
3801"$Pd4 = $Ps4",
3802tc_640086b5, TypeMAPPING> {
3803let isPseudo = 1;
3804let isCodeGenOnly = 1;
3805}
3806def C2_tfrpr : HInst<
3807(outs IntRegs:$Rd32),
3808(ins PredRegs:$Ps4),
3809"$Rd32 = $Ps4",
3810tc_0ae0825c, TypeS_2op>, Enc_f5e933 {
3811let Inst{13-5} = 0b000000000;
3812let Inst{31-18} = 0b10001001010000;
3813let hasNewValue = 1;
3814let opNewValue = 0;
3815}
3816def C2_tfrrp : HInst<
3817(outs PredRegs:$Pd4),
3818(ins IntRegs:$Rs32),
3819"$Pd4 = $Rs32",
3820tc_cfd8378a, TypeS_2op>, Enc_48b75f {
3821let Inst{13-2} = 0b000000000000;
3822let Inst{31-21} = 0b10000101010;
3823}
3824def C2_vitpack : HInst<
3825(outs IntRegs:$Rd32),
3826(ins PredRegs:$Ps4, PredRegs:$Pt4),
3827"$Rd32 = vitpack($Ps4,$Pt4)",
3828tc_4414d8b1, TypeS_2op>, Enc_527412 {
3829let Inst{7-5} = 0b000;
3830let Inst{13-10} = 0b0000;
3831let Inst{31-18} = 0b10001001000000;
3832let hasNewValue = 1;
3833let opNewValue = 0;
3834let prefersSlot3 = 1;
3835}
3836def C2_vmux : HInst<
3837(outs DoubleRegs:$Rdd32),
3838(ins PredRegs:$Pu4, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
3839"$Rdd32 = vmux($Pu4,$Rss32,$Rtt32)",
3840tc_b4b5c03a, TypeALU64>, Enc_329361 {
3841let Inst{7-7} = 0b0;
3842let Inst{13-13} = 0b0;
3843let Inst{31-21} = 0b11010001000;
3844}
3845def C2_xor : HInst<
3846(outs PredRegs:$Pd4),
3847(ins PredRegs:$Ps4, PredRegs:$Pt4),
3848"$Pd4 = xor($Ps4,$Pt4)",
3849tc_640086b5, TypeCR>, Enc_284ebb {
3850let Inst{7-2} = 0b000000;
3851let Inst{13-10} = 0b0000;
3852let Inst{31-18} = 0b01101011010000;
3853}
3854def C4_addipc : HInst<
3855(outs IntRegs:$Rd32),
3856(ins u32_0Imm:$Ii),
3857"$Rd32 = add(pc,#$Ii)",
3858tc_a813cf9a, TypeCR>, Enc_607661 {
3859let Inst{6-5} = 0b00;
3860let Inst{13-13} = 0b0;
3861let Inst{31-16} = 0b0110101001001001;
3862let hasNewValue = 1;
3863let opNewValue = 0;
3864let isExtendable = 1;
3865let opExtendable = 1;
3866let isExtentSigned = 0;
3867let opExtentBits = 6;
3868let opExtentAlign = 0;
3869}
3870def C4_and_and : HInst<
3871(outs PredRegs:$Pd4),
3872(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3873"$Pd4 = and($Ps4,and($Pt4,$Pu4))",
3874tc_b31c2e97, TypeCR>, Enc_9ac432 {
3875let Inst{5-2} = 0b0000;
3876let Inst{13-10} = 0b0000;
3877let Inst{31-18} = 0b01101011000100;
3878}
3879def C4_and_andn : HInst<
3880(outs PredRegs:$Pd4),
3881(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3882"$Pd4 = and($Ps4,and($Pt4,!$Pu4))",
3883tc_b31c2e97, TypeCR>, Enc_9ac432 {
3884let Inst{5-2} = 0b0000;
3885let Inst{13-10} = 0b0000;
3886let Inst{31-18} = 0b01101011100100;
3887}
3888def C4_and_or : HInst<
3889(outs PredRegs:$Pd4),
3890(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3891"$Pd4 = and($Ps4,or($Pt4,$Pu4))",
3892tc_b31c2e97, TypeCR>, Enc_9ac432 {
3893let Inst{5-2} = 0b0000;
3894let Inst{13-10} = 0b0000;
3895let Inst{31-18} = 0b01101011001100;
3896}
3897def C4_and_orn : HInst<
3898(outs PredRegs:$Pd4),
3899(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
3900"$Pd4 = and($Ps4,or($Pt4,!$Pu4))",
3901tc_b31c2e97, TypeCR>, Enc_9ac432 {
3902let Inst{5-2} = 0b0000;
3903let Inst{13-10} = 0b0000;
3904let Inst{31-18} = 0b01101011101100;
3905}
3906def C4_cmplte : HInst<
3907(outs PredRegs:$Pd4),
3908(ins IntRegs:$Rs32, IntRegs:$Rt32),
3909"$Pd4 = !cmp.gt($Rs32,$Rt32)",
3910tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3911let Inst{7-2} = 0b000100;
3912let Inst{13-13} = 0b0;
3913let Inst{31-21} = 0b11110010010;
3914let CextOpcode = "C4_cmplte";
3915let InputType = "reg";
3916let isCompare = 1;
3917}
3918def C4_cmpltei : HInst<
3919(outs PredRegs:$Pd4),
3920(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3921"$Pd4 = !cmp.gt($Rs32,#$Ii)",
3922tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3923let Inst{4-2} = 0b100;
3924let Inst{31-22} = 0b0111010101;
3925let CextOpcode = "C4_cmplte";
3926let InputType = "imm";
3927let isCompare = 1;
3928let isExtendable = 1;
3929let opExtendable = 2;
3930let isExtentSigned = 1;
3931let opExtentBits = 10;
3932let opExtentAlign = 0;
3933}
3934def C4_cmplteu : HInst<
3935(outs PredRegs:$Pd4),
3936(ins IntRegs:$Rs32, IntRegs:$Rt32),
3937"$Pd4 = !cmp.gtu($Rs32,$Rt32)",
3938tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3939let Inst{7-2} = 0b000100;
3940let Inst{13-13} = 0b0;
3941let Inst{31-21} = 0b11110010011;
3942let CextOpcode = "C4_cmplteu";
3943let InputType = "reg";
3944let isCompare = 1;
3945}
3946def C4_cmplteui : HInst<
3947(outs PredRegs:$Pd4),
3948(ins IntRegs:$Rs32, u32_0Imm:$Ii),
3949"$Pd4 = !cmp.gtu($Rs32,#$Ii)",
3950tc_56f114f4, TypeALU32_2op>, Enc_c0cdde, ImmRegRel {
3951let Inst{4-2} = 0b100;
3952let Inst{31-21} = 0b01110101100;
3953let CextOpcode = "C4_cmplteu";
3954let InputType = "imm";
3955let isCompare = 1;
3956let isExtendable = 1;
3957let opExtendable = 2;
3958let isExtentSigned = 0;
3959let opExtentBits = 9;
3960let opExtentAlign = 0;
3961}
3962def C4_cmpneq : HInst<
3963(outs PredRegs:$Pd4),
3964(ins IntRegs:$Rs32, IntRegs:$Rt32),
3965"$Pd4 = !cmp.eq($Rs32,$Rt32)",
3966tc_de4df740, TypeALU32_3op>, Enc_c2b48e, ImmRegRel {
3967let Inst{7-2} = 0b000100;
3968let Inst{13-13} = 0b0;
3969let Inst{31-21} = 0b11110010000;
3970let CextOpcode = "C4_cmpneq";
3971let InputType = "reg";
3972let isCommutable = 1;
3973let isCompare = 1;
3974}
3975def C4_cmpneqi : HInst<
3976(outs PredRegs:$Pd4),
3977(ins IntRegs:$Rs32, s32_0Imm:$Ii),
3978"$Pd4 = !cmp.eq($Rs32,#$Ii)",
3979tc_56f114f4, TypeALU32_2op>, Enc_bd0b33, ImmRegRel {
3980let Inst{4-2} = 0b100;
3981let Inst{31-22} = 0b0111010100;
3982let CextOpcode = "C4_cmpneq";
3983let InputType = "imm";
3984let isCompare = 1;
3985let isExtendable = 1;
3986let opExtendable = 2;
3987let isExtentSigned = 1;
3988let opExtentBits = 10;
3989let opExtentAlign = 0;
3990}
3991def C4_fastcorner9 : HInst<
3992(outs PredRegs:$Pd4),
3993(ins PredRegs:$Ps4, PredRegs:$Pt4),
3994"$Pd4 = fastcorner9($Ps4,$Pt4)",
3995tc_640086b5, TypeCR>, Enc_284ebb {
3996let Inst{7-2} = 0b100100;
3997let Inst{13-10} = 0b1000;
3998let Inst{31-18} = 0b01101011000000;
3999}
4000def C4_fastcorner9_not : HInst<
4001(outs PredRegs:$Pd4),
4002(ins PredRegs:$Ps4, PredRegs:$Pt4),
4003"$Pd4 = !fastcorner9($Ps4,$Pt4)",
4004tc_640086b5, TypeCR>, Enc_284ebb {
4005let Inst{7-2} = 0b100100;
4006let Inst{13-10} = 0b1000;
4007let Inst{31-18} = 0b01101011000100;
4008}
4009def C4_nbitsclr : HInst<
4010(outs PredRegs:$Pd4),
4011(ins IntRegs:$Rs32, IntRegs:$Rt32),
4012"$Pd4 = !bitsclr($Rs32,$Rt32)",
4013tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4014let Inst{7-2} = 0b000000;
4015let Inst{13-13} = 0b0;
4016let Inst{31-21} = 0b11000111101;
4017}
4018def C4_nbitsclri : HInst<
4019(outs PredRegs:$Pd4),
4020(ins IntRegs:$Rs32, u6_0Imm:$Ii),
4021"$Pd4 = !bitsclr($Rs32,#$Ii)",
4022tc_643b4717, TypeS_2op>, Enc_5d6c34 {
4023let Inst{7-2} = 0b000000;
4024let Inst{31-21} = 0b10000101101;
4025}
4026def C4_nbitsset : HInst<
4027(outs PredRegs:$Pd4),
4028(ins IntRegs:$Rs32, IntRegs:$Rt32),
4029"$Pd4 = !bitsset($Rs32,$Rt32)",
4030tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4031let Inst{7-2} = 0b000000;
4032let Inst{13-13} = 0b0;
4033let Inst{31-21} = 0b11000111011;
4034}
4035def C4_or_and : HInst<
4036(outs PredRegs:$Pd4),
4037(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4038"$Pd4 = or($Ps4,and($Pt4,$Pu4))",
4039tc_b31c2e97, TypeCR>, Enc_9ac432 {
4040let Inst{5-2} = 0b0000;
4041let Inst{13-10} = 0b0000;
4042let Inst{31-18} = 0b01101011010100;
4043}
4044def C4_or_andn : HInst<
4045(outs PredRegs:$Pd4),
4046(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4047"$Pd4 = or($Ps4,and($Pt4,!$Pu4))",
4048tc_b31c2e97, TypeCR>, Enc_9ac432 {
4049let Inst{5-2} = 0b0000;
4050let Inst{13-10} = 0b0000;
4051let Inst{31-18} = 0b01101011110100;
4052}
4053def C4_or_or : HInst<
4054(outs PredRegs:$Pd4),
4055(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4056"$Pd4 = or($Ps4,or($Pt4,$Pu4))",
4057tc_b31c2e97, TypeCR>, Enc_9ac432 {
4058let Inst{5-2} = 0b0000;
4059let Inst{13-10} = 0b0000;
4060let Inst{31-18} = 0b01101011011100;
4061}
4062def C4_or_orn : HInst<
4063(outs PredRegs:$Pd4),
4064(ins PredRegs:$Ps4, PredRegs:$Pt4, PredRegs:$Pu4),
4065"$Pd4 = or($Ps4,or($Pt4,!$Pu4))",
4066tc_b31c2e97, TypeCR>, Enc_9ac432 {
4067let Inst{5-2} = 0b0000;
4068let Inst{13-10} = 0b0000;
4069let Inst{31-18} = 0b01101011111100;
4070}
4071def F2_conv_d2df : HInst<
4072(outs DoubleRegs:$Rdd32),
4073(ins DoubleRegs:$Rss32),
4074"$Rdd32 = convert_d2df($Rss32)",
4075tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4076let Inst{13-5} = 0b000000011;
4077let Inst{31-21} = 0b10000000111;
4078let isFP = 1;
4079let Uses = [USR];
4080}
4081def F2_conv_d2sf : HInst<
4082(outs IntRegs:$Rd32),
4083(ins DoubleRegs:$Rss32),
4084"$Rd32 = convert_d2sf($Rss32)",
4085tc_3a867367, TypeS_2op>, Enc_90cd8b {
4086let Inst{13-5} = 0b000000001;
4087let Inst{31-21} = 0b10001000010;
4088let hasNewValue = 1;
4089let opNewValue = 0;
4090let isFP = 1;
4091let Uses = [USR];
4092}
4093def F2_conv_df2d : HInst<
4094(outs DoubleRegs:$Rdd32),
4095(ins DoubleRegs:$Rss32),
4096"$Rdd32 = convert_df2d($Rss32)",
4097tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4098let Inst{13-5} = 0b000000000;
4099let Inst{31-21} = 0b10000000111;
4100let isFP = 1;
4101let Uses = [USR];
4102}
4103def F2_conv_df2d_chop : HInst<
4104(outs DoubleRegs:$Rdd32),
4105(ins DoubleRegs:$Rss32),
4106"$Rdd32 = convert_df2d($Rss32):chop",
4107tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4108let Inst{13-5} = 0b000000110;
4109let Inst{31-21} = 0b10000000111;
4110let isFP = 1;
4111let Uses = [USR];
4112}
4113def F2_conv_df2sf : HInst<
4114(outs IntRegs:$Rd32),
4115(ins DoubleRegs:$Rss32),
4116"$Rd32 = convert_df2sf($Rss32)",
4117tc_3a867367, TypeS_2op>, Enc_90cd8b {
4118let Inst{13-5} = 0b000000001;
4119let Inst{31-21} = 0b10001000000;
4120let hasNewValue = 1;
4121let opNewValue = 0;
4122let isFP = 1;
4123let Uses = [USR];
4124}
4125def F2_conv_df2ud : HInst<
4126(outs DoubleRegs:$Rdd32),
4127(ins DoubleRegs:$Rss32),
4128"$Rdd32 = convert_df2ud($Rss32)",
4129tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4130let Inst{13-5} = 0b000000001;
4131let Inst{31-21} = 0b10000000111;
4132let isFP = 1;
4133let Uses = [USR];
4134}
4135def F2_conv_df2ud_chop : HInst<
4136(outs DoubleRegs:$Rdd32),
4137(ins DoubleRegs:$Rss32),
4138"$Rdd32 = convert_df2ud($Rss32):chop",
4139tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4140let Inst{13-5} = 0b000000111;
4141let Inst{31-21} = 0b10000000111;
4142let isFP = 1;
4143let Uses = [USR];
4144}
4145def F2_conv_df2uw : HInst<
4146(outs IntRegs:$Rd32),
4147(ins DoubleRegs:$Rss32),
4148"$Rd32 = convert_df2uw($Rss32)",
4149tc_3a867367, TypeS_2op>, Enc_90cd8b {
4150let Inst{13-5} = 0b000000001;
4151let Inst{31-21} = 0b10001000011;
4152let hasNewValue = 1;
4153let opNewValue = 0;
4154let isFP = 1;
4155let Uses = [USR];
4156}
4157def F2_conv_df2uw_chop : HInst<
4158(outs IntRegs:$Rd32),
4159(ins DoubleRegs:$Rss32),
4160"$Rd32 = convert_df2uw($Rss32):chop",
4161tc_3a867367, TypeS_2op>, Enc_90cd8b {
4162let Inst{13-5} = 0b000000001;
4163let Inst{31-21} = 0b10001000101;
4164let hasNewValue = 1;
4165let opNewValue = 0;
4166let isFP = 1;
4167let Uses = [USR];
4168}
4169def F2_conv_df2w : HInst<
4170(outs IntRegs:$Rd32),
4171(ins DoubleRegs:$Rss32),
4172"$Rd32 = convert_df2w($Rss32)",
4173tc_3a867367, TypeS_2op>, Enc_90cd8b {
4174let Inst{13-5} = 0b000000001;
4175let Inst{31-21} = 0b10001000100;
4176let hasNewValue = 1;
4177let opNewValue = 0;
4178let isFP = 1;
4179let Uses = [USR];
4180}
4181def F2_conv_df2w_chop : HInst<
4182(outs IntRegs:$Rd32),
4183(ins DoubleRegs:$Rss32),
4184"$Rd32 = convert_df2w($Rss32):chop",
4185tc_3a867367, TypeS_2op>, Enc_90cd8b {
4186let Inst{13-5} = 0b000000001;
4187let Inst{31-21} = 0b10001000111;
4188let hasNewValue = 1;
4189let opNewValue = 0;
4190let isFP = 1;
4191let Uses = [USR];
4192}
4193def F2_conv_sf2d : HInst<
4194(outs DoubleRegs:$Rdd32),
4195(ins IntRegs:$Rs32),
4196"$Rdd32 = convert_sf2d($Rs32)",
4197tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4198let Inst{13-5} = 0b000000100;
4199let Inst{31-21} = 0b10000100100;
4200let isFP = 1;
4201let Uses = [USR];
4202}
4203def F2_conv_sf2d_chop : HInst<
4204(outs DoubleRegs:$Rdd32),
4205(ins IntRegs:$Rs32),
4206"$Rdd32 = convert_sf2d($Rs32):chop",
4207tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4208let Inst{13-5} = 0b000000110;
4209let Inst{31-21} = 0b10000100100;
4210let isFP = 1;
4211let Uses = [USR];
4212}
4213def F2_conv_sf2df : HInst<
4214(outs DoubleRegs:$Rdd32),
4215(ins IntRegs:$Rs32),
4216"$Rdd32 = convert_sf2df($Rs32)",
4217tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4218let Inst{13-5} = 0b000000000;
4219let Inst{31-21} = 0b10000100100;
4220let isFP = 1;
4221let Uses = [USR];
4222}
4223def F2_conv_sf2ud : HInst<
4224(outs DoubleRegs:$Rdd32),
4225(ins IntRegs:$Rs32),
4226"$Rdd32 = convert_sf2ud($Rs32)",
4227tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4228let Inst{13-5} = 0b000000011;
4229let Inst{31-21} = 0b10000100100;
4230let isFP = 1;
4231let Uses = [USR];
4232}
4233def F2_conv_sf2ud_chop : HInst<
4234(outs DoubleRegs:$Rdd32),
4235(ins IntRegs:$Rs32),
4236"$Rdd32 = convert_sf2ud($Rs32):chop",
4237tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4238let Inst{13-5} = 0b000000101;
4239let Inst{31-21} = 0b10000100100;
4240let isFP = 1;
4241let Uses = [USR];
4242}
4243def F2_conv_sf2uw : HInst<
4244(outs IntRegs:$Rd32),
4245(ins IntRegs:$Rs32),
4246"$Rd32 = convert_sf2uw($Rs32)",
4247tc_3a867367, TypeS_2op>, Enc_5e2823 {
4248let Inst{13-5} = 0b000000000;
4249let Inst{31-21} = 0b10001011011;
4250let hasNewValue = 1;
4251let opNewValue = 0;
4252let isFP = 1;
4253let Uses = [USR];
4254}
4255def F2_conv_sf2uw_chop : HInst<
4256(outs IntRegs:$Rd32),
4257(ins IntRegs:$Rs32),
4258"$Rd32 = convert_sf2uw($Rs32):chop",
4259tc_3a867367, TypeS_2op>, Enc_5e2823 {
4260let Inst{13-5} = 0b000000001;
4261let Inst{31-21} = 0b10001011011;
4262let hasNewValue = 1;
4263let opNewValue = 0;
4264let isFP = 1;
4265let Uses = [USR];
4266}
4267def F2_conv_sf2w : HInst<
4268(outs IntRegs:$Rd32),
4269(ins IntRegs:$Rs32),
4270"$Rd32 = convert_sf2w($Rs32)",
4271tc_3a867367, TypeS_2op>, Enc_5e2823 {
4272let Inst{13-5} = 0b000000000;
4273let Inst{31-21} = 0b10001011100;
4274let hasNewValue = 1;
4275let opNewValue = 0;
4276let isFP = 1;
4277let Uses = [USR];
4278}
4279def F2_conv_sf2w_chop : HInst<
4280(outs IntRegs:$Rd32),
4281(ins IntRegs:$Rs32),
4282"$Rd32 = convert_sf2w($Rs32):chop",
4283tc_3a867367, TypeS_2op>, Enc_5e2823 {
4284let Inst{13-5} = 0b000000001;
4285let Inst{31-21} = 0b10001011100;
4286let hasNewValue = 1;
4287let opNewValue = 0;
4288let isFP = 1;
4289let Uses = [USR];
4290}
4291def F2_conv_ud2df : HInst<
4292(outs DoubleRegs:$Rdd32),
4293(ins DoubleRegs:$Rss32),
4294"$Rdd32 = convert_ud2df($Rss32)",
4295tc_3a867367, TypeS_2op>, Enc_b9c5fb {
4296let Inst{13-5} = 0b000000010;
4297let Inst{31-21} = 0b10000000111;
4298let isFP = 1;
4299let Uses = [USR];
4300}
4301def F2_conv_ud2sf : HInst<
4302(outs IntRegs:$Rd32),
4303(ins DoubleRegs:$Rss32),
4304"$Rd32 = convert_ud2sf($Rss32)",
4305tc_3a867367, TypeS_2op>, Enc_90cd8b {
4306let Inst{13-5} = 0b000000001;
4307let Inst{31-21} = 0b10001000001;
4308let hasNewValue = 1;
4309let opNewValue = 0;
4310let isFP = 1;
4311let Uses = [USR];
4312}
4313def F2_conv_uw2df : HInst<
4314(outs DoubleRegs:$Rdd32),
4315(ins IntRegs:$Rs32),
4316"$Rdd32 = convert_uw2df($Rs32)",
4317tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4318let Inst{13-5} = 0b000000001;
4319let Inst{31-21} = 0b10000100100;
4320let isFP = 1;
4321let Uses = [USR];
4322}
4323def F2_conv_uw2sf : HInst<
4324(outs IntRegs:$Rd32),
4325(ins IntRegs:$Rs32),
4326"$Rd32 = convert_uw2sf($Rs32)",
4327tc_3a867367, TypeS_2op>, Enc_5e2823 {
4328let Inst{13-5} = 0b000000000;
4329let Inst{31-21} = 0b10001011001;
4330let hasNewValue = 1;
4331let opNewValue = 0;
4332let isFP = 1;
4333let Uses = [USR];
4334}
4335def F2_conv_w2df : HInst<
4336(outs DoubleRegs:$Rdd32),
4337(ins IntRegs:$Rs32),
4338"$Rdd32 = convert_w2df($Rs32)",
4339tc_3a867367, TypeS_2op>, Enc_3a3d62 {
4340let Inst{13-5} = 0b000000010;
4341let Inst{31-21} = 0b10000100100;
4342let isFP = 1;
4343let Uses = [USR];
4344}
4345def F2_conv_w2sf : HInst<
4346(outs IntRegs:$Rd32),
4347(ins IntRegs:$Rs32),
4348"$Rd32 = convert_w2sf($Rs32)",
4349tc_3a867367, TypeS_2op>, Enc_5e2823 {
4350let Inst{13-5} = 0b000000000;
4351let Inst{31-21} = 0b10001011010;
4352let hasNewValue = 1;
4353let opNewValue = 0;
4354let isFP = 1;
4355let Uses = [USR];
4356}
4357def F2_dfadd : HInst<
4358(outs DoubleRegs:$Rdd32),
4359(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4360"$Rdd32 = dfadd($Rss32,$Rtt32)",
4361tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> {
4362let Inst{7-5} = 0b011;
4363let Inst{13-13} = 0b0;
4364let Inst{31-21} = 0b11101000000;
4365let isFP = 1;
4366let Uses = [USR];
4367}
4368def F2_dfclass : HInst<
4369(outs PredRegs:$Pd4),
4370(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
4371"$Pd4 = dfclass($Rss32,#$Ii)",
4372tc_643b4717, TypeALU64>, Enc_1f19b5 {
4373let Inst{4-2} = 0b100;
4374let Inst{13-10} = 0b0000;
4375let Inst{31-21} = 0b11011100100;
4376let isFP = 1;
4377let Uses = [USR];
4378}
4379def F2_dfcmpeq : HInst<
4380(outs PredRegs:$Pd4),
4381(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4382"$Pd4 = dfcmp.eq($Rss32,$Rtt32)",
4383tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4384let Inst{7-2} = 0b000000;
4385let Inst{13-13} = 0b0;
4386let Inst{31-21} = 0b11010010111;
4387let isFP = 1;
4388let Uses = [USR];
4389let isCompare = 1;
4390}
4391def F2_dfcmpge : HInst<
4392(outs PredRegs:$Pd4),
4393(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4394"$Pd4 = dfcmp.ge($Rss32,$Rtt32)",
4395tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4396let Inst{7-2} = 0b010000;
4397let Inst{13-13} = 0b0;
4398let Inst{31-21} = 0b11010010111;
4399let isFP = 1;
4400let Uses = [USR];
4401let isCompare = 1;
4402}
4403def F2_dfcmpgt : HInst<
4404(outs PredRegs:$Pd4),
4405(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4406"$Pd4 = dfcmp.gt($Rss32,$Rtt32)",
4407tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4408let Inst{7-2} = 0b001000;
4409let Inst{13-13} = 0b0;
4410let Inst{31-21} = 0b11010010111;
4411let isFP = 1;
4412let Uses = [USR];
4413let isCompare = 1;
4414}
4415def F2_dfcmpuo : HInst<
4416(outs PredRegs:$Pd4),
4417(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4418"$Pd4 = dfcmp.uo($Rss32,$Rtt32)",
4419tc_85d5d03f, TypeALU64>, Enc_fcf7a7 {
4420let Inst{7-2} = 0b011000;
4421let Inst{13-13} = 0b0;
4422let Inst{31-21} = 0b11010010111;
4423let isFP = 1;
4424let Uses = [USR];
4425let isCompare = 1;
4426}
4427def F2_dfimm_n : HInst<
4428(outs DoubleRegs:$Rdd32),
4429(ins u10_0Imm:$Ii),
4430"$Rdd32 = dfmake(#$Ii):neg",
4431tc_9e313203, TypeALU64>, Enc_e6c957 {
4432let Inst{20-16} = 0b00000;
4433let Inst{31-22} = 0b1101100101;
4434let prefersSlot3 = 1;
4435}
4436def F2_dfimm_p : HInst<
4437(outs DoubleRegs:$Rdd32),
4438(ins u10_0Imm:$Ii),
4439"$Rdd32 = dfmake(#$Ii):pos",
4440tc_9e313203, TypeALU64>, Enc_e6c957 {
4441let Inst{20-16} = 0b00000;
4442let Inst{31-22} = 0b1101100100;
4443let prefersSlot3 = 1;
4444}
4445def F2_dfsub : HInst<
4446(outs DoubleRegs:$Rdd32),
4447(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
4448"$Rdd32 = dfsub($Rss32,$Rtt32)",
4449tc_2f7c551d, TypeM>, Enc_a56825, Requires<[HasV66]> {
4450let Inst{7-5} = 0b011;
4451let Inst{13-13} = 0b0;
4452let Inst{31-21} = 0b11101000100;
4453let isFP = 1;
4454let Uses = [USR];
4455}
4456def F2_sfadd : HInst<
4457(outs IntRegs:$Rd32),
4458(ins IntRegs:$Rs32, IntRegs:$Rt32),
4459"$Rd32 = sfadd($Rs32,$Rt32)",
4460tc_3b470976, TypeM>, Enc_5ab2be {
4461let Inst{7-5} = 0b000;
4462let Inst{13-13} = 0b0;
4463let Inst{31-21} = 0b11101011000;
4464let hasNewValue = 1;
4465let opNewValue = 0;
4466let isFP = 1;
4467let Uses = [USR];
4468let isCommutable = 1;
4469}
4470def F2_sfclass : HInst<
4471(outs PredRegs:$Pd4),
4472(ins IntRegs:$Rs32, u5_0Imm:$Ii),
4473"$Pd4 = sfclass($Rs32,#$Ii)",
4474tc_643b4717, TypeS_2op>, Enc_83ee64 {
4475let Inst{7-2} = 0b000000;
4476let Inst{13-13} = 0b0;
4477let Inst{31-21} = 0b10000101111;
4478let isFP = 1;
4479let Uses = [USR];
4480}
4481def F2_sfcmpeq : HInst<
4482(outs PredRegs:$Pd4),
4483(ins IntRegs:$Rs32, IntRegs:$Rt32),
4484"$Pd4 = sfcmp.eq($Rs32,$Rt32)",
4485tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4486let Inst{7-2} = 0b011000;
4487let Inst{13-13} = 0b0;
4488let Inst{31-21} = 0b11000111111;
4489let isFP = 1;
4490let Uses = [USR];
4491let isCompare = 1;
4492}
4493def F2_sfcmpge : HInst<
4494(outs PredRegs:$Pd4),
4495(ins IntRegs:$Rs32, IntRegs:$Rt32),
4496"$Pd4 = sfcmp.ge($Rs32,$Rt32)",
4497tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4498let Inst{7-2} = 0b000000;
4499let Inst{13-13} = 0b0;
4500let Inst{31-21} = 0b11000111111;
4501let isFP = 1;
4502let Uses = [USR];
4503let isCompare = 1;
4504}
4505def F2_sfcmpgt : HInst<
4506(outs PredRegs:$Pd4),
4507(ins IntRegs:$Rs32, IntRegs:$Rt32),
4508"$Pd4 = sfcmp.gt($Rs32,$Rt32)",
4509tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4510let Inst{7-2} = 0b100000;
4511let Inst{13-13} = 0b0;
4512let Inst{31-21} = 0b11000111111;
4513let isFP = 1;
4514let Uses = [USR];
4515let isCompare = 1;
4516}
4517def F2_sfcmpuo : HInst<
4518(outs PredRegs:$Pd4),
4519(ins IntRegs:$Rs32, IntRegs:$Rt32),
4520"$Pd4 = sfcmp.uo($Rs32,$Rt32)",
4521tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
4522let Inst{7-2} = 0b001000;
4523let Inst{13-13} = 0b0;
4524let Inst{31-21} = 0b11000111111;
4525let isFP = 1;
4526let Uses = [USR];
4527let isCompare = 1;
4528}
4529def F2_sffixupd : HInst<
4530(outs IntRegs:$Rd32),
4531(ins IntRegs:$Rs32, IntRegs:$Rt32),
4532"$Rd32 = sffixupd($Rs32,$Rt32)",
4533tc_3b470976, TypeM>, Enc_5ab2be {
4534let Inst{7-5} = 0b001;
4535let Inst{13-13} = 0b0;
4536let Inst{31-21} = 0b11101011110;
4537let hasNewValue = 1;
4538let opNewValue = 0;
4539let isFP = 1;
4540}
4541def F2_sffixupn : HInst<
4542(outs IntRegs:$Rd32),
4543(ins IntRegs:$Rs32, IntRegs:$Rt32),
4544"$Rd32 = sffixupn($Rs32,$Rt32)",
4545tc_3b470976, TypeM>, Enc_5ab2be {
4546let Inst{7-5} = 0b000;
4547let Inst{13-13} = 0b0;
4548let Inst{31-21} = 0b11101011110;
4549let hasNewValue = 1;
4550let opNewValue = 0;
4551let isFP = 1;
4552}
4553def F2_sffixupr : HInst<
4554(outs IntRegs:$Rd32),
4555(ins IntRegs:$Rs32),
4556"$Rd32 = sffixupr($Rs32)",
4557tc_3a867367, TypeS_2op>, Enc_5e2823 {
4558let Inst{13-5} = 0b000000000;
4559let Inst{31-21} = 0b10001011101;
4560let hasNewValue = 1;
4561let opNewValue = 0;
4562let isFP = 1;
4563}
4564def F2_sffma : HInst<
4565(outs IntRegs:$Rx32),
4566(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4567"$Rx32 += sfmpy($Rs32,$Rt32)",
4568tc_a58fd5cc, TypeM>, Enc_2ae154 {
4569let Inst{7-5} = 0b100;
4570let Inst{13-13} = 0b0;
4571let Inst{31-21} = 0b11101111000;
4572let hasNewValue = 1;
4573let opNewValue = 0;
4574let isFP = 1;
4575let Uses = [USR];
4576let Constraints = "$Rx32 = $Rx32in";
4577}
4578def F2_sffma_lib : HInst<
4579(outs IntRegs:$Rx32),
4580(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4581"$Rx32 += sfmpy($Rs32,$Rt32):lib",
4582tc_a58fd5cc, TypeM>, Enc_2ae154 {
4583let Inst{7-5} = 0b110;
4584let Inst{13-13} = 0b0;
4585let Inst{31-21} = 0b11101111000;
4586let hasNewValue = 1;
4587let opNewValue = 0;
4588let isFP = 1;
4589let Uses = [USR];
4590let Constraints = "$Rx32 = $Rx32in";
4591}
4592def F2_sffma_sc : HInst<
4593(outs IntRegs:$Rx32),
4594(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32, PredRegs:$Pu4),
4595"$Rx32 += sfmpy($Rs32,$Rt32,$Pu4):scale",
4596tc_4560740b, TypeM>, Enc_437f33 {
4597let Inst{7-7} = 0b1;
4598let Inst{13-13} = 0b0;
4599let Inst{31-21} = 0b11101111011;
4600let hasNewValue = 1;
4601let opNewValue = 0;
4602let isFP = 1;
4603let Uses = [USR];
4604let Constraints = "$Rx32 = $Rx32in";
4605}
4606def F2_sffms : HInst<
4607(outs IntRegs:$Rx32),
4608(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4609"$Rx32 -= sfmpy($Rs32,$Rt32)",
4610tc_a58fd5cc, TypeM>, Enc_2ae154 {
4611let Inst{7-5} = 0b101;
4612let Inst{13-13} = 0b0;
4613let Inst{31-21} = 0b11101111000;
4614let hasNewValue = 1;
4615let opNewValue = 0;
4616let isFP = 1;
4617let Uses = [USR];
4618let Constraints = "$Rx32 = $Rx32in";
4619}
4620def F2_sffms_lib : HInst<
4621(outs IntRegs:$Rx32),
4622(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
4623"$Rx32 -= sfmpy($Rs32,$Rt32):lib",
4624tc_a58fd5cc, TypeM>, Enc_2ae154 {
4625let Inst{7-5} = 0b111;
4626let Inst{13-13} = 0b0;
4627let Inst{31-21} = 0b11101111000;
4628let hasNewValue = 1;
4629let opNewValue = 0;
4630let isFP = 1;
4631let Uses = [USR];
4632let Constraints = "$Rx32 = $Rx32in";
4633}
4634def F2_sfimm_n : HInst<
4635(outs IntRegs:$Rd32),
4636(ins u10_0Imm:$Ii),
4637"$Rd32 = sfmake(#$Ii):neg",
4638tc_9e313203, TypeALU64>, Enc_6c9440 {
4639let Inst{20-16} = 0b00000;
4640let Inst{31-22} = 0b1101011001;
4641let hasNewValue = 1;
4642let opNewValue = 0;
4643let prefersSlot3 = 1;
4644}
4645def F2_sfimm_p : HInst<
4646(outs IntRegs:$Rd32),
4647(ins u10_0Imm:$Ii),
4648"$Rd32 = sfmake(#$Ii):pos",
4649tc_9e313203, TypeALU64>, Enc_6c9440 {
4650let Inst{20-16} = 0b00000;
4651let Inst{31-22} = 0b1101011000;
4652let hasNewValue = 1;
4653let opNewValue = 0;
4654let prefersSlot3 = 1;
4655}
4656def F2_sfinvsqrta : HInst<
4657(outs IntRegs:$Rd32, PredRegs:$Pe4),
4658(ins IntRegs:$Rs32),
4659"$Rd32,$Pe4 = sfinvsqrta($Rs32)",
4660tc_b8bffe55, TypeS_2op>, Enc_890909 {
4661let Inst{13-7} = 0b0000000;
4662let Inst{31-21} = 0b10001011111;
4663let hasNewValue = 1;
4664let opNewValue = 0;
4665let isFP = 1;
4666let isPredicateLate = 1;
4667}
4668def F2_sfmax : HInst<
4669(outs IntRegs:$Rd32),
4670(ins IntRegs:$Rs32, IntRegs:$Rt32),
4671"$Rd32 = sfmax($Rs32,$Rt32)",
4672tc_88b4f13d, TypeM>, Enc_5ab2be {
4673let Inst{7-5} = 0b000;
4674let Inst{13-13} = 0b0;
4675let Inst{31-21} = 0b11101011100;
4676let hasNewValue = 1;
4677let opNewValue = 0;
4678let isFP = 1;
4679let prefersSlot3 = 1;
4680let Uses = [USR];
4681}
4682def F2_sfmin : HInst<
4683(outs IntRegs:$Rd32),
4684(ins IntRegs:$Rs32, IntRegs:$Rt32),
4685"$Rd32 = sfmin($Rs32,$Rt32)",
4686tc_88b4f13d, TypeM>, Enc_5ab2be {
4687let Inst{7-5} = 0b001;
4688let Inst{13-13} = 0b0;
4689let Inst{31-21} = 0b11101011100;
4690let hasNewValue = 1;
4691let opNewValue = 0;
4692let isFP = 1;
4693let prefersSlot3 = 1;
4694let Uses = [USR];
4695}
4696def F2_sfmpy : HInst<
4697(outs IntRegs:$Rd32),
4698(ins IntRegs:$Rs32, IntRegs:$Rt32),
4699"$Rd32 = sfmpy($Rs32,$Rt32)",
4700tc_3b470976, TypeM>, Enc_5ab2be {
4701let Inst{7-5} = 0b000;
4702let Inst{13-13} = 0b0;
4703let Inst{31-21} = 0b11101011010;
4704let hasNewValue = 1;
4705let opNewValue = 0;
4706let isFP = 1;
4707let Uses = [USR];
4708let isCommutable = 1;
4709}
4710def F2_sfrecipa : HInst<
4711(outs IntRegs:$Rd32, PredRegs:$Pe4),
4712(ins IntRegs:$Rs32, IntRegs:$Rt32),
4713"$Rd32,$Pe4 = sfrecipa($Rs32,$Rt32)",
4714tc_2ff964b4, TypeM>, Enc_a94f3b {
4715let Inst{7-7} = 0b1;
4716let Inst{13-13} = 0b0;
4717let Inst{31-21} = 0b11101011111;
4718let hasNewValue = 1;
4719let opNewValue = 0;
4720let isFP = 1;
4721let isPredicateLate = 1;
4722}
4723def F2_sfsub : HInst<
4724(outs IntRegs:$Rd32),
4725(ins IntRegs:$Rs32, IntRegs:$Rt32),
4726"$Rd32 = sfsub($Rs32,$Rt32)",
4727tc_3b470976, TypeM>, Enc_5ab2be {
4728let Inst{7-5} = 0b001;
4729let Inst{13-13} = 0b0;
4730let Inst{31-21} = 0b11101011000;
4731let hasNewValue = 1;
4732let opNewValue = 0;
4733let isFP = 1;
4734let Uses = [USR];
4735}
4736def G4_tfrgcpp : HInst<
4737(outs DoubleRegs:$Rdd32),
4738(ins GuestRegs64:$Gss32),
4739"$Rdd32 = $Gss32",
4740tc_0d8f5752, TypeCR>, Enc_0aa344 {
4741let Inst{13-5} = 0b000000000;
4742let Inst{31-21} = 0b01101000001;
4743}
4744def G4_tfrgcrr : HInst<
4745(outs IntRegs:$Rd32),
4746(ins GuestRegs:$Gs32),
4747"$Rd32 = $Gs32",
4748tc_0d8f5752, TypeCR>, Enc_44271f {
4749let Inst{13-5} = 0b000000000;
4750let Inst{31-21} = 0b01101010001;
4751let hasNewValue = 1;
4752let opNewValue = 0;
4753}
4754def G4_tfrgpcp : HInst<
4755(outs GuestRegs64:$Gdd32),
4756(ins DoubleRegs:$Rss32),
4757"$Gdd32 = $Rss32",
4758tc_bcf98408, TypeCR>, Enc_ed5027 {
4759let Inst{13-5} = 0b000000000;
4760let Inst{31-21} = 0b01100011000;
4761let hasNewValue = 1;
4762let opNewValue = 0;
4763}
4764def G4_tfrgrcr : HInst<
4765(outs GuestRegs:$Gd32),
4766(ins IntRegs:$Rs32),
4767"$Gd32 = $Rs32",
4768tc_bcf98408, TypeCR>, Enc_621fba {
4769let Inst{13-5} = 0b000000000;
4770let Inst{31-21} = 0b01100010000;
4771let hasNewValue = 1;
4772let opNewValue = 0;
4773}
4774def J2_call : HInst<
4775(outs),
4776(ins a30_2Imm:$Ii),
4777"call $Ii",
4778tc_4ae7b58b, TypeJ>, Enc_81ac1d, PredRel {
4779let Inst{0-0} = 0b0;
4780let Inst{31-25} = 0b0101101;
4781let isCall = 1;
4782let prefersSlot3 = 1;
4783let cofRelax2 = 1;
4784let cofMax1 = 1;
4785let Uses = [R29];
4786let Defs = [PC, R31];
4787let BaseOpcode = "J2_call";
4788let isPredicable = 1;
4789let hasSideEffects = 1;
4790let isExtendable = 1;
4791let opExtendable = 0;
4792let isExtentSigned = 1;
4793let opExtentBits = 24;
4794let opExtentAlign = 2;
4795}
4796def J2_callf : HInst<
4797(outs),
4798(ins PredRegs:$Pu4, a30_2Imm:$Ii),
4799"if (!$Pu4) call $Ii",
4800tc_1d81e60e, TypeJ>, Enc_daea09, PredRel {
4801let Inst{0-0} = 0b0;
4802let Inst{12-10} = 0b000;
4803let Inst{21-21} = 0b1;
4804let Inst{31-24} = 0b01011101;
4805let isPredicated = 1;
4806let isPredicatedFalse = 1;
4807let isCall = 1;
4808let prefersSlot3 = 1;
4809let cofRelax1 = 1;
4810let cofRelax2 = 1;
4811let cofMax1 = 1;
4812let Uses = [R29];
4813let Defs = [PC, R31];
4814let BaseOpcode = "J2_call";
4815let hasSideEffects = 1;
4816let isTaken = Inst{12};
4817let isExtendable = 1;
4818let opExtendable = 1;
4819let isExtentSigned = 1;
4820let opExtentBits = 17;
4821let opExtentAlign = 2;
4822}
4823def J2_callr : HInst<
4824(outs),
4825(ins IntRegs:$Rs32),
4826"callr $Rs32",
4827tc_3bd75825, TypeJ>, Enc_ecbcc8 {
4828let Inst{13-0} = 0b00000000000000;
4829let Inst{31-21} = 0b01010000101;
4830let isCall = 1;
4831let prefersSlot3 = 1;
4832let cofMax1 = 1;
4833let Uses = [R29];
4834let Defs = [PC, R31];
4835let hasSideEffects = 1;
4836}
4837def J2_callrf : HInst<
4838(outs),
4839(ins PredRegs:$Pu4, IntRegs:$Rs32),
4840"if (!$Pu4) callr $Rs32",
4841tc_1ad90acd, TypeJ>, Enc_88d4d9 {
4842let Inst{7-0} = 0b00000000;
4843let Inst{13-10} = 0b0000;
4844let Inst{31-21} = 0b01010001001;
4845let isPredicated = 1;
4846let isPredicatedFalse = 1;
4847let isCall = 1;
4848let prefersSlot3 = 1;
4849let cofMax1 = 1;
4850let Uses = [R29];
4851let Defs = [PC, R31];
4852let hasSideEffects = 1;
4853let isTaken = Inst{12};
4854}
4855def J2_callrt : HInst<
4856(outs),
4857(ins PredRegs:$Pu4, IntRegs:$Rs32),
4858"if ($Pu4) callr $Rs32",
4859tc_1ad90acd, TypeJ>, Enc_88d4d9 {
4860let Inst{7-0} = 0b00000000;
4861let Inst{13-10} = 0b0000;
4862let Inst{31-21} = 0b01010001000;
4863let isPredicated = 1;
4864let isCall = 1;
4865let prefersSlot3 = 1;
4866let cofMax1 = 1;
4867let Uses = [R29];
4868let Defs = [PC, R31];
4869let hasSideEffects = 1;
4870let isTaken = Inst{12};
4871}
4872def J2_callt : HInst<
4873(outs),
4874(ins PredRegs:$Pu4, a30_2Imm:$Ii),
4875"if ($Pu4) call $Ii",
4876tc_1d81e60e, TypeJ>, Enc_daea09, PredRel {
4877let Inst{0-0} = 0b0;
4878let Inst{12-10} = 0b000;
4879let Inst{21-21} = 0b0;
4880let Inst{31-24} = 0b01011101;
4881let isPredicated = 1;
4882let isCall = 1;
4883let prefersSlot3 = 1;
4884let cofRelax1 = 1;
4885let cofRelax2 = 1;
4886let cofMax1 = 1;
4887let Uses = [R29];
4888let Defs = [PC, R31];
4889let BaseOpcode = "J2_call";
4890let hasSideEffects = 1;
4891let isTaken = Inst{12};
4892let isExtendable = 1;
4893let opExtendable = 1;
4894let isExtentSigned = 1;
4895let opExtentBits = 17;
4896let opExtentAlign = 2;
4897}
4898def J2_endloop0 : HInst<
4899(outs),
4900(ins),
4901"endloop0",
4902tc_1b6f7cec, TypeJ> {
4903let Uses = [LC0, SA0];
4904let Defs = [LC0, P3, PC, USR];
4905let isBranch = 1;
4906let isTerminator = 1;
4907let isPseudo = 1;
4908}
4909def J2_endloop01 : HInst<
4910(outs),
4911(ins),
4912"endloop01",
4913tc_1b6f7cec, TypeJ> {
4914let Uses = [LC0, LC1, SA0, SA1];
4915let Defs = [LC0, LC1, P3, PC, USR];
4916let isPseudo = 1;
4917}
4918def J2_endloop1 : HInst<
4919(outs),
4920(ins),
4921"endloop1",
4922tc_1b6f7cec, TypeJ> {
4923let Uses = [LC1, SA1];
4924let Defs = [LC1, PC];
4925let isBranch = 1;
4926let isTerminator = 1;
4927let isPseudo = 1;
4928}
4929def J2_jump : HInst<
4930(outs),
4931(ins b30_2Imm:$Ii),
4932"jump $Ii",
4933tc_ae53734a, TypeJ>, Enc_81ac1d, PredNewRel {
4934let Inst{0-0} = 0b0;
4935let Inst{31-25} = 0b0101100;
4936let isTerminator = 1;
4937let isBranch = 1;
4938let cofRelax2 = 1;
4939let cofMax1 = 1;
4940let Defs = [PC];
4941let InputType = "imm";
4942let BaseOpcode = "J2_jump";
4943let isBarrier = 1;
4944let isPredicable = 1;
4945let isExtendable = 1;
4946let opExtendable = 0;
4947let isExtentSigned = 1;
4948let opExtentBits = 24;
4949let opExtentAlign = 2;
4950}
4951def J2_jumpf : HInst<
4952(outs),
4953(ins PredRegs:$Pu4, b30_2Imm:$Ii),
4954"if (!$Pu4) jump:nt $Ii",
4955tc_db2bce9c, TypeJ>, Enc_daea09, PredNewRel {
4956let Inst{0-0} = 0b0;
4957let Inst{12-10} = 0b000;
4958let Inst{21-21} = 0b1;
4959let Inst{31-24} = 0b01011100;
4960let isPredicated = 1;
4961let isPredicatedFalse = 1;
4962let isTerminator = 1;
4963let isBranch = 1;
4964let cofRelax1 = 1;
4965let cofRelax2 = 1;
4966let cofMax1 = 1;
4967let Defs = [PC];
4968let InputType = "imm";
4969let BaseOpcode = "J2_jump";
4970let isTaken = Inst{12};
4971let isExtendable = 1;
4972let opExtendable = 1;
4973let isExtentSigned = 1;
4974let opExtentBits = 17;
4975let opExtentAlign = 2;
4976}
4977def J2_jumpf_nopred_map : HInst<
4978(outs),
4979(ins PredRegs:$Pu4, b15_2Imm:$Ii),
4980"if (!$Pu4) jump $Ii",
4981tc_db2bce9c, TypeMAPPING>, Requires<[HasV60]> {
4982let isPseudo = 1;
4983let isCodeGenOnly = 1;
4984}
4985def J2_jumpfnew : HInst<
4986(outs),
4987(ins PredRegs:$Pu4, b30_2Imm:$Ii),
4988"if (!$Pu4.new) jump:nt $Ii",
4989tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
4990let Inst{0-0} = 0b0;
4991let Inst{12-10} = 0b010;
4992let Inst{21-21} = 0b1;
4993let Inst{31-24} = 0b01011100;
4994let isPredicated = 1;
4995let isPredicatedFalse = 1;
4996let isTerminator = 1;
4997let isBranch = 1;
4998let isPredicatedNew = 1;
4999let cofRelax1 = 1;
5000let cofRelax2 = 1;
5001let cofMax1 = 1;
5002let Defs = [PC];
5003let InputType = "imm";
5004let BaseOpcode = "J2_jump";
5005let isTaken = Inst{12};
5006let isExtendable = 1;
5007let opExtendable = 1;
5008let isExtentSigned = 1;
5009let opExtentBits = 17;
5010let opExtentAlign = 2;
5011}
5012def J2_jumpfnewpt : HInst<
5013(outs),
5014(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5015"if (!$Pu4.new) jump:t $Ii",
5016tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5017let Inst{0-0} = 0b0;
5018let Inst{12-10} = 0b110;
5019let Inst{21-21} = 0b1;
5020let Inst{31-24} = 0b01011100;
5021let isPredicated = 1;
5022let isPredicatedFalse = 1;
5023let isTerminator = 1;
5024let isBranch = 1;
5025let isPredicatedNew = 1;
5026let cofRelax1 = 1;
5027let cofRelax2 = 1;
5028let cofMax1 = 1;
5029let Defs = [PC];
5030let InputType = "imm";
5031let BaseOpcode = "J2_jump";
5032let isTaken = Inst{12};
5033let isExtendable = 1;
5034let opExtendable = 1;
5035let isExtentSigned = 1;
5036let opExtentBits = 17;
5037let opExtentAlign = 2;
5038}
5039def J2_jumpfpt : HInst<
5040(outs),
5041(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5042"if (!$Pu4) jump:t $Ii",
5043tc_cd374165, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5044let Inst{0-0} = 0b0;
5045let Inst{12-10} = 0b100;
5046let Inst{21-21} = 0b1;
5047let Inst{31-24} = 0b01011100;
5048let isPredicated = 1;
5049let isPredicatedFalse = 1;
5050let isTerminator = 1;
5051let isBranch = 1;
5052let cofRelax1 = 1;
5053let cofRelax2 = 1;
5054let cofMax1 = 1;
5055let Defs = [PC];
5056let InputType = "imm";
5057let BaseOpcode = "J2_jump";
5058let isTaken = Inst{12};
5059let isExtendable = 1;
5060let opExtendable = 1;
5061let isExtentSigned = 1;
5062let opExtentBits = 17;
5063let opExtentAlign = 2;
5064}
5065def J2_jumpr : HInst<
5066(outs),
5067(ins IntRegs:$Rs32),
5068"jumpr $Rs32",
5069tc_d5b7b0c1, TypeJ>, Enc_ecbcc8, PredNewRel {
5070let Inst{13-0} = 0b00000000000000;
5071let Inst{31-21} = 0b01010010100;
5072let isTerminator = 1;
5073let isIndirectBranch = 1;
5074let isBranch = 1;
5075let cofMax1 = 1;
5076let Defs = [PC];
5077let InputType = "reg";
5078let BaseOpcode = "J2_jumpr";
5079let isBarrier = 1;
5080let isPredicable = 1;
5081}
5082def J2_jumprf : HInst<
5083(outs),
5084(ins PredRegs:$Pu4, IntRegs:$Rs32),
5085"if (!$Pu4) jumpr:nt $Rs32",
5086tc_85c9c08f, TypeJ>, Enc_88d4d9, PredNewRel {
5087let Inst{7-0} = 0b00000000;
5088let Inst{13-10} = 0b0000;
5089let Inst{31-21} = 0b01010011011;
5090let isPredicated = 1;
5091let isPredicatedFalse = 1;
5092let isTerminator = 1;
5093let isIndirectBranch = 1;
5094let isBranch = 1;
5095let cofMax1 = 1;
5096let Defs = [PC];
5097let InputType = "reg";
5098let BaseOpcode = "J2_jumpr";
5099let isTaken = Inst{12};
5100}
5101def J2_jumprf_nopred_map : HInst<
5102(outs),
5103(ins PredRegs:$Pu4, IntRegs:$Rs32),
5104"if (!$Pu4) jumpr $Rs32",
5105tc_85c9c08f, TypeMAPPING>, Requires<[HasV60]> {
5106let isPseudo = 1;
5107let isCodeGenOnly = 1;
5108}
5109def J2_jumprfnew : HInst<
5110(outs),
5111(ins PredRegs:$Pu4, IntRegs:$Rs32),
5112"if (!$Pu4.new) jumpr:nt $Rs32",
5113tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5114let Inst{7-0} = 0b00000000;
5115let Inst{13-10} = 0b0010;
5116let Inst{31-21} = 0b01010011011;
5117let isPredicated = 1;
5118let isPredicatedFalse = 1;
5119let isTerminator = 1;
5120let isIndirectBranch = 1;
5121let isBranch = 1;
5122let isPredicatedNew = 1;
5123let cofMax1 = 1;
5124let Defs = [PC];
5125let InputType = "reg";
5126let BaseOpcode = "J2_jumpr";
5127let isTaken = Inst{12};
5128}
5129def J2_jumprfnewpt : HInst<
5130(outs),
5131(ins PredRegs:$Pu4, IntRegs:$Rs32),
5132"if (!$Pu4.new) jumpr:t $Rs32",
5133tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5134let Inst{7-0} = 0b00000000;
5135let Inst{13-10} = 0b0110;
5136let Inst{31-21} = 0b01010011011;
5137let isPredicated = 1;
5138let isPredicatedFalse = 1;
5139let isTerminator = 1;
5140let isIndirectBranch = 1;
5141let isBranch = 1;
5142let isPredicatedNew = 1;
5143let cofMax1 = 1;
5144let Defs = [PC];
5145let InputType = "reg";
5146let BaseOpcode = "J2_jumpr";
5147let isTaken = Inst{12};
5148}
5149def J2_jumprfpt : HInst<
5150(outs),
5151(ins PredRegs:$Pu4, IntRegs:$Rs32),
5152"if (!$Pu4) jumpr:t $Rs32",
5153tc_e78647bd, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5154let Inst{7-0} = 0b00000000;
5155let Inst{13-10} = 0b0100;
5156let Inst{31-21} = 0b01010011011;
5157let isPredicated = 1;
5158let isPredicatedFalse = 1;
5159let isTerminator = 1;
5160let isIndirectBranch = 1;
5161let isBranch = 1;
5162let cofMax1 = 1;
5163let Defs = [PC];
5164let InputType = "reg";
5165let BaseOpcode = "J2_jumpr";
5166let isTaken = Inst{12};
5167}
5168def J2_jumprgtez : HInst<
5169(outs),
5170(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5171"if ($Rs32>=#0) jump:nt $Ii",
5172tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5173let Inst{0-0} = 0b0;
5174let Inst{12-12} = 0b0;
5175let Inst{31-22} = 0b0110000101;
5176let isPredicated = 1;
5177let isTerminator = 1;
5178let isBranch = 1;
5179let isPredicatedNew = 1;
5180let cofRelax1 = 1;
5181let cofRelax2 = 1;
5182let cofMax1 = 1;
5183let Defs = [PC];
5184let isTaken = Inst{12};
5185}
5186def J2_jumprgtezpt : HInst<
5187(outs),
5188(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5189"if ($Rs32>=#0) jump:t $Ii",
5190tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5191let Inst{0-0} = 0b0;
5192let Inst{12-12} = 0b1;
5193let Inst{31-22} = 0b0110000101;
5194let isPredicated = 1;
5195let isTerminator = 1;
5196let isBranch = 1;
5197let isPredicatedNew = 1;
5198let cofRelax1 = 1;
5199let cofRelax2 = 1;
5200let cofMax1 = 1;
5201let Defs = [PC];
5202let isTaken = Inst{12};
5203}
5204def J2_jumprltez : HInst<
5205(outs),
5206(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5207"if ($Rs32<=#0) jump:nt $Ii",
5208tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5209let Inst{0-0} = 0b0;
5210let Inst{12-12} = 0b0;
5211let Inst{31-22} = 0b0110000111;
5212let isPredicated = 1;
5213let isTerminator = 1;
5214let isBranch = 1;
5215let isPredicatedNew = 1;
5216let cofRelax1 = 1;
5217let cofRelax2 = 1;
5218let cofMax1 = 1;
5219let Defs = [PC];
5220let isTaken = Inst{12};
5221}
5222def J2_jumprltezpt : HInst<
5223(outs),
5224(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5225"if ($Rs32<=#0) jump:t $Ii",
5226tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5227let Inst{0-0} = 0b0;
5228let Inst{12-12} = 0b1;
5229let Inst{31-22} = 0b0110000111;
5230let isPredicated = 1;
5231let isTerminator = 1;
5232let isBranch = 1;
5233let isPredicatedNew = 1;
5234let cofRelax1 = 1;
5235let cofRelax2 = 1;
5236let cofMax1 = 1;
5237let Defs = [PC];
5238let isTaken = Inst{12};
5239}
5240def J2_jumprnz : HInst<
5241(outs),
5242(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5243"if ($Rs32==#0) jump:nt $Ii",
5244tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5245let Inst{0-0} = 0b0;
5246let Inst{12-12} = 0b0;
5247let Inst{31-22} = 0b0110000110;
5248let isPredicated = 1;
5249let isTerminator = 1;
5250let isBranch = 1;
5251let isPredicatedNew = 1;
5252let cofRelax1 = 1;
5253let cofRelax2 = 1;
5254let cofMax1 = 1;
5255let Defs = [PC];
5256let isTaken = Inst{12};
5257}
5258def J2_jumprnzpt : HInst<
5259(outs),
5260(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5261"if ($Rs32==#0) jump:t $Ii",
5262tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5263let Inst{0-0} = 0b0;
5264let Inst{12-12} = 0b1;
5265let Inst{31-22} = 0b0110000110;
5266let isPredicated = 1;
5267let isTerminator = 1;
5268let isBranch = 1;
5269let isPredicatedNew = 1;
5270let cofRelax1 = 1;
5271let cofRelax2 = 1;
5272let cofMax1 = 1;
5273let Defs = [PC];
5274let isTaken = Inst{12};
5275}
5276def J2_jumprt : HInst<
5277(outs),
5278(ins PredRegs:$Pu4, IntRegs:$Rs32),
5279"if ($Pu4) jumpr:nt $Rs32",
5280tc_85c9c08f, TypeJ>, Enc_88d4d9, PredNewRel {
5281let Inst{7-0} = 0b00000000;
5282let Inst{13-10} = 0b0000;
5283let Inst{31-21} = 0b01010011010;
5284let isPredicated = 1;
5285let isTerminator = 1;
5286let isIndirectBranch = 1;
5287let isBranch = 1;
5288let cofMax1 = 1;
5289let Defs = [PC];
5290let InputType = "reg";
5291let BaseOpcode = "J2_jumpr";
5292let isTaken = Inst{12};
5293}
5294def J2_jumprt_nopred_map : HInst<
5295(outs),
5296(ins PredRegs:$Pu4, IntRegs:$Rs32),
5297"if ($Pu4) jumpr $Rs32",
5298tc_85c9c08f, TypeMAPPING>, Requires<[HasV60]> {
5299let isPseudo = 1;
5300let isCodeGenOnly = 1;
5301}
5302def J2_jumprtnew : HInst<
5303(outs),
5304(ins PredRegs:$Pu4, IntRegs:$Rs32),
5305"if ($Pu4.new) jumpr:nt $Rs32",
5306tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5307let Inst{7-0} = 0b00000000;
5308let Inst{13-10} = 0b0010;
5309let Inst{31-21} = 0b01010011010;
5310let isPredicated = 1;
5311let isTerminator = 1;
5312let isIndirectBranch = 1;
5313let isBranch = 1;
5314let isPredicatedNew = 1;
5315let cofMax1 = 1;
5316let Defs = [PC];
5317let InputType = "reg";
5318let BaseOpcode = "J2_jumpr";
5319let isTaken = Inst{12};
5320}
5321def J2_jumprtnewpt : HInst<
5322(outs),
5323(ins PredRegs:$Pu4, IntRegs:$Rs32),
5324"if ($Pu4.new) jumpr:t $Rs32",
5325tc_b51dc29a, TypeJ>, Enc_88d4d9, PredNewRel {
5326let Inst{7-0} = 0b00000000;
5327let Inst{13-10} = 0b0110;
5328let Inst{31-21} = 0b01010011010;
5329let isPredicated = 1;
5330let isTerminator = 1;
5331let isIndirectBranch = 1;
5332let isBranch = 1;
5333let isPredicatedNew = 1;
5334let cofMax1 = 1;
5335let Defs = [PC];
5336let InputType = "reg";
5337let BaseOpcode = "J2_jumpr";
5338let isTaken = Inst{12};
5339}
5340def J2_jumprtpt : HInst<
5341(outs),
5342(ins PredRegs:$Pu4, IntRegs:$Rs32),
5343"if ($Pu4) jumpr:t $Rs32",
5344tc_e78647bd, TypeJ>, Enc_88d4d9, Requires<[HasV60]>, PredNewRel {
5345let Inst{7-0} = 0b00000000;
5346let Inst{13-10} = 0b0100;
5347let Inst{31-21} = 0b01010011010;
5348let isPredicated = 1;
5349let isTerminator = 1;
5350let isIndirectBranch = 1;
5351let isBranch = 1;
5352let cofMax1 = 1;
5353let Defs = [PC];
5354let InputType = "reg";
5355let BaseOpcode = "J2_jumpr";
5356let isTaken = Inst{12};
5357}
5358def J2_jumprz : HInst<
5359(outs),
5360(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5361"if ($Rs32!=#0) jump:nt $Ii",
5362tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5363let Inst{0-0} = 0b0;
5364let Inst{12-12} = 0b0;
5365let Inst{31-22} = 0b0110000100;
5366let isPredicated = 1;
5367let isTerminator = 1;
5368let isBranch = 1;
5369let isPredicatedNew = 1;
5370let cofRelax1 = 1;
5371let cofRelax2 = 1;
5372let cofMax1 = 1;
5373let Defs = [PC];
5374let isTaken = Inst{12};
5375}
5376def J2_jumprzpt : HInst<
5377(outs),
5378(ins IntRegs:$Rs32, b13_2Imm:$Ii),
5379"if ($Rs32!=#0) jump:t $Ii",
5380tc_d9d43ecb, TypeCR>, Enc_0fa531 {
5381let Inst{0-0} = 0b0;
5382let Inst{12-12} = 0b1;
5383let Inst{31-22} = 0b0110000100;
5384let isPredicated = 1;
5385let isTerminator = 1;
5386let isBranch = 1;
5387let isPredicatedNew = 1;
5388let cofRelax1 = 1;
5389let cofRelax2 = 1;
5390let cofMax1 = 1;
5391let Defs = [PC];
5392let isTaken = Inst{12};
5393}
5394def J2_jumpt : HInst<
5395(outs),
5396(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5397"if ($Pu4) jump:nt $Ii",
5398tc_db2bce9c, TypeJ>, Enc_daea09, PredNewRel {
5399let Inst{0-0} = 0b0;
5400let Inst{12-10} = 0b000;
5401let Inst{21-21} = 0b0;
5402let Inst{31-24} = 0b01011100;
5403let isPredicated = 1;
5404let isTerminator = 1;
5405let isBranch = 1;
5406let cofRelax1 = 1;
5407let cofRelax2 = 1;
5408let cofMax1 = 1;
5409let Defs = [PC];
5410let InputType = "imm";
5411let BaseOpcode = "J2_jump";
5412let isTaken = Inst{12};
5413let isExtendable = 1;
5414let opExtendable = 1;
5415let isExtentSigned = 1;
5416let opExtentBits = 17;
5417let opExtentAlign = 2;
5418}
5419def J2_jumpt_nopred_map : HInst<
5420(outs),
5421(ins PredRegs:$Pu4, b15_2Imm:$Ii),
5422"if ($Pu4) jump $Ii",
5423tc_db2bce9c, TypeMAPPING>, Requires<[HasV60]> {
5424let isPseudo = 1;
5425let isCodeGenOnly = 1;
5426}
5427def J2_jumptnew : HInst<
5428(outs),
5429(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5430"if ($Pu4.new) jump:nt $Ii",
5431tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5432let Inst{0-0} = 0b0;
5433let Inst{12-10} = 0b010;
5434let Inst{21-21} = 0b0;
5435let Inst{31-24} = 0b01011100;
5436let isPredicated = 1;
5437let isTerminator = 1;
5438let isBranch = 1;
5439let isPredicatedNew = 1;
5440let cofRelax1 = 1;
5441let cofRelax2 = 1;
5442let cofMax1 = 1;
5443let Defs = [PC];
5444let InputType = "imm";
5445let BaseOpcode = "J2_jump";
5446let isTaken = Inst{12};
5447let isExtendable = 1;
5448let opExtendable = 1;
5449let isExtentSigned = 1;
5450let opExtentBits = 17;
5451let opExtentAlign = 2;
5452}
5453def J2_jumptnewpt : HInst<
5454(outs),
5455(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5456"if ($Pu4.new) jump:t $Ii",
5457tc_20cdee80, TypeJ>, Enc_daea09, PredNewRel {
5458let Inst{0-0} = 0b0;
5459let Inst{12-10} = 0b110;
5460let Inst{21-21} = 0b0;
5461let Inst{31-24} = 0b01011100;
5462let isPredicated = 1;
5463let isTerminator = 1;
5464let isBranch = 1;
5465let isPredicatedNew = 1;
5466let cofRelax1 = 1;
5467let cofRelax2 = 1;
5468let cofMax1 = 1;
5469let Defs = [PC];
5470let InputType = "imm";
5471let BaseOpcode = "J2_jump";
5472let isTaken = Inst{12};
5473let isExtendable = 1;
5474let opExtendable = 1;
5475let isExtentSigned = 1;
5476let opExtentBits = 17;
5477let opExtentAlign = 2;
5478}
5479def J2_jumptpt : HInst<
5480(outs),
5481(ins PredRegs:$Pu4, b30_2Imm:$Ii),
5482"if ($Pu4) jump:t $Ii",
5483tc_cd374165, TypeJ>, Enc_daea09, Requires<[HasV60]>, PredNewRel {
5484let Inst{0-0} = 0b0;
5485let Inst{12-10} = 0b100;
5486let Inst{21-21} = 0b0;
5487let Inst{31-24} = 0b01011100;
5488let isPredicated = 1;
5489let isTerminator = 1;
5490let isBranch = 1;
5491let cofRelax1 = 1;
5492let cofRelax2 = 1;
5493let cofMax1 = 1;
5494let Defs = [PC];
5495let InputType = "imm";
5496let BaseOpcode = "J2_jump";
5497let isTaken = Inst{12};
5498let isExtendable = 1;
5499let opExtendable = 1;
5500let isExtentSigned = 1;
5501let opExtentBits = 17;
5502let opExtentAlign = 2;
5503}
5504def J2_loop0i : HInst<
5505(outs),
5506(ins b30_2Imm:$Ii, u10_0Imm:$II),
5507"loop0($Ii,#$II)",
5508tc_a9d88b22, TypeCR>, Enc_4dc228 {
5509let Inst{2-2} = 0b0;
5510let Inst{13-13} = 0b0;
5511let Inst{31-21} = 0b01101001000;
5512let cofRelax1 = 1;
5513let cofRelax2 = 1;
5514let Defs = [LC0, SA0, USR];
5515let isExtendable = 1;
5516let opExtendable = 0;
5517let isExtentSigned = 1;
5518let opExtentBits = 9;
5519let opExtentAlign = 2;
5520}
5521def J2_loop0r : HInst<
5522(outs),
5523(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5524"loop0($Ii,$Rs32)",
5525tc_df3319ed, TypeCR>, Enc_864a5a {
5526let Inst{2-0} = 0b000;
5527let Inst{7-5} = 0b000;
5528let Inst{13-13} = 0b0;
5529let Inst{31-21} = 0b01100000000;
5530let cofRelax1 = 1;
5531let cofRelax2 = 1;
5532let Defs = [LC0, SA0, USR];
5533let isExtendable = 1;
5534let opExtendable = 0;
5535let isExtentSigned = 1;
5536let opExtentBits = 9;
5537let opExtentAlign = 2;
5538}
5539def J2_loop1i : HInst<
5540(outs),
5541(ins b30_2Imm:$Ii, u10_0Imm:$II),
5542"loop1($Ii,#$II)",
5543tc_a9d88b22, TypeCR>, Enc_4dc228 {
5544let Inst{2-2} = 0b0;
5545let Inst{13-13} = 0b0;
5546let Inst{31-21} = 0b01101001001;
5547let cofRelax1 = 1;
5548let cofRelax2 = 1;
5549let Defs = [LC1, SA1];
5550let isExtendable = 1;
5551let opExtendable = 0;
5552let isExtentSigned = 1;
5553let opExtentBits = 9;
5554let opExtentAlign = 2;
5555}
5556def J2_loop1r : HInst<
5557(outs),
5558(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5559"loop1($Ii,$Rs32)",
5560tc_df3319ed, TypeCR>, Enc_864a5a {
5561let Inst{2-0} = 0b000;
5562let Inst{7-5} = 0b000;
5563let Inst{13-13} = 0b0;
5564let Inst{31-21} = 0b01100000001;
5565let cofRelax1 = 1;
5566let cofRelax2 = 1;
5567let Defs = [LC1, SA1];
5568let isExtendable = 1;
5569let opExtendable = 0;
5570let isExtentSigned = 1;
5571let opExtentBits = 9;
5572let opExtentAlign = 2;
5573}
5574def J2_pause : HInst<
5575(outs),
5576(ins u8_0Imm:$Ii),
5577"pause(#$Ii)",
5578tc_8d9d0154, TypeJ>, Enc_a51a9a {
5579let Inst{1-0} = 0b00;
5580let Inst{7-5} = 0b000;
5581let Inst{13-13} = 0b0;
5582let Inst{31-16} = 0b0101010001000000;
5583let isSolo = 1;
5584}
5585def J2_ploop1si : HInst<
5586(outs),
5587(ins b30_2Imm:$Ii, u10_0Imm:$II),
5588"p3 = sp1loop0($Ii,#$II)",
5589tc_1c4528a2, TypeCR>, Enc_4dc228 {
5590let Inst{2-2} = 0b0;
5591let Inst{13-13} = 0b0;
5592let Inst{31-21} = 0b01101001101;
5593let isPredicateLate = 1;
5594let cofRelax1 = 1;
5595let cofRelax2 = 1;
5596let Defs = [LC0, P3, SA0, USR];
5597let isExtendable = 1;
5598let opExtendable = 0;
5599let isExtentSigned = 1;
5600let opExtentBits = 9;
5601let opExtentAlign = 2;
5602}
5603def J2_ploop1sr : HInst<
5604(outs),
5605(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5606"p3 = sp1loop0($Ii,$Rs32)",
5607tc_32779c6f, TypeCR>, Enc_864a5a {
5608let Inst{2-0} = 0b000;
5609let Inst{7-5} = 0b000;
5610let Inst{13-13} = 0b0;
5611let Inst{31-21} = 0b01100000101;
5612let isPredicateLate = 1;
5613let cofRelax1 = 1;
5614let cofRelax2 = 1;
5615let Defs = [LC0, P3, SA0, USR];
5616let isExtendable = 1;
5617let opExtendable = 0;
5618let isExtentSigned = 1;
5619let opExtentBits = 9;
5620let opExtentAlign = 2;
5621}
5622def J2_ploop2si : HInst<
5623(outs),
5624(ins b30_2Imm:$Ii, u10_0Imm:$II),
5625"p3 = sp2loop0($Ii,#$II)",
5626tc_1c4528a2, TypeCR>, Enc_4dc228 {
5627let Inst{2-2} = 0b0;
5628let Inst{13-13} = 0b0;
5629let Inst{31-21} = 0b01101001110;
5630let isPredicateLate = 1;
5631let cofRelax1 = 1;
5632let cofRelax2 = 1;
5633let Defs = [LC0, P3, SA0, USR];
5634let isExtendable = 1;
5635let opExtendable = 0;
5636let isExtentSigned = 1;
5637let opExtentBits = 9;
5638let opExtentAlign = 2;
5639}
5640def J2_ploop2sr : HInst<
5641(outs),
5642(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5643"p3 = sp2loop0($Ii,$Rs32)",
5644tc_32779c6f, TypeCR>, Enc_864a5a {
5645let Inst{2-0} = 0b000;
5646let Inst{7-5} = 0b000;
5647let Inst{13-13} = 0b0;
5648let Inst{31-21} = 0b01100000110;
5649let isPredicateLate = 1;
5650let cofRelax1 = 1;
5651let cofRelax2 = 1;
5652let Defs = [LC0, P3, SA0, USR];
5653let isExtendable = 1;
5654let opExtendable = 0;
5655let isExtentSigned = 1;
5656let opExtentBits = 9;
5657let opExtentAlign = 2;
5658}
5659def J2_ploop3si : HInst<
5660(outs),
5661(ins b30_2Imm:$Ii, u10_0Imm:$II),
5662"p3 = sp3loop0($Ii,#$II)",
5663tc_1c4528a2, TypeCR>, Enc_4dc228 {
5664let Inst{2-2} = 0b0;
5665let Inst{13-13} = 0b0;
5666let Inst{31-21} = 0b01101001111;
5667let isPredicateLate = 1;
5668let cofRelax1 = 1;
5669let cofRelax2 = 1;
5670let Defs = [LC0, P3, SA0, USR];
5671let isExtendable = 1;
5672let opExtendable = 0;
5673let isExtentSigned = 1;
5674let opExtentBits = 9;
5675let opExtentAlign = 2;
5676}
5677def J2_ploop3sr : HInst<
5678(outs),
5679(ins b30_2Imm:$Ii, IntRegs:$Rs32),
5680"p3 = sp3loop0($Ii,$Rs32)",
5681tc_32779c6f, TypeCR>, Enc_864a5a {
5682let Inst{2-0} = 0b000;
5683let Inst{7-5} = 0b000;
5684let Inst{13-13} = 0b0;
5685let Inst{31-21} = 0b01100000111;
5686let isPredicateLate = 1;
5687let cofRelax1 = 1;
5688let cofRelax2 = 1;
5689let Defs = [LC0, P3, SA0, USR];
5690let isExtendable = 1;
5691let opExtendable = 0;
5692let isExtentSigned = 1;
5693let opExtentBits = 9;
5694let opExtentAlign = 2;
5695}
5696def J2_trap0 : HInst<
5697(outs),
5698(ins u8_0Imm:$Ii),
5699"trap0(#$Ii)",
5700tc_fc3999b4, TypeJ>, Enc_a51a9a {
5701let Inst{1-0} = 0b00;
5702let Inst{7-5} = 0b000;
5703let Inst{13-13} = 0b0;
5704let Inst{31-16} = 0b0101010000000000;
5705let isSolo = 1;
5706let hasSideEffects = 1;
5707}
5708def J2_trap1 : HInst<
5709(outs IntRegs:$Rx32),
5710(ins IntRegs:$Rx32in, u8_0Imm:$Ii),
5711"trap1($Rx32,#$Ii)",
5712tc_b9e09e03, TypeJ>, Enc_33f8ba {
5713let Inst{1-0} = 0b00;
5714let Inst{7-5} = 0b000;
5715let Inst{13-13} = 0b0;
5716let Inst{31-21} = 0b01010100100;
5717let hasNewValue = 1;
5718let opNewValue = 0;
5719let isSolo = 1;
5720let Uses = [GOSP];
5721let Defs = [GOSP, PC];
5722let hasSideEffects = 1;
5723let Constraints = "$Rx32 = $Rx32in";
5724}
5725def J2_trap1_noregmap : HInst<
5726(outs),
5727(ins u8_0Imm:$Ii),
5728"trap1(#$Ii)",
5729tc_b9e09e03, TypeMAPPING> {
5730let hasSideEffects = 1;
5731let isPseudo = 1;
5732let isCodeGenOnly = 1;
5733}
5734def J4_cmpeq_f_jumpnv_nt : HInst<
5735(outs),
5736(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5737"if (!cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5738tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5739let Inst{0-0} = 0b0;
5740let Inst{13-13} = 0b0;
5741let Inst{19-19} = 0b0;
5742let Inst{31-22} = 0b0010000001;
5743let isPredicated = 1;
5744let isPredicatedFalse = 1;
5745let isTerminator = 1;
5746let isBranch = 1;
5747let isNewValue = 1;
5748let cofMax1 = 1;
5749let isRestrictNoSlot1Store = 1;
5750let Defs = [PC];
5751let BaseOpcode = "J4_cmpeqr";
5752let isTaken = Inst{13};
5753let isExtendable = 1;
5754let opExtendable = 2;
5755let isExtentSigned = 1;
5756let opExtentBits = 11;
5757let opExtentAlign = 2;
5758let opNewValue = 0;
5759}
5760def J4_cmpeq_f_jumpnv_t : HInst<
5761(outs),
5762(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5763"if (!cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5764tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5765let Inst{0-0} = 0b0;
5766let Inst{13-13} = 0b1;
5767let Inst{19-19} = 0b0;
5768let Inst{31-22} = 0b0010000001;
5769let isPredicated = 1;
5770let isPredicatedFalse = 1;
5771let isTerminator = 1;
5772let isBranch = 1;
5773let isNewValue = 1;
5774let cofMax1 = 1;
5775let isRestrictNoSlot1Store = 1;
5776let Defs = [PC];
5777let BaseOpcode = "J4_cmpeqr";
5778let isTaken = Inst{13};
5779let isExtendable = 1;
5780let opExtendable = 2;
5781let isExtentSigned = 1;
5782let opExtentBits = 11;
5783let opExtentAlign = 2;
5784let opNewValue = 0;
5785}
5786def J4_cmpeq_fp0_jump_nt : HInst<
5787(outs),
5788(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5789"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
5790tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5791let Inst{0-0} = 0b0;
5792let Inst{13-12} = 0b00;
5793let Inst{31-22} = 0b0001010001;
5794let isPredicated = 1;
5795let isPredicatedFalse = 1;
5796let isTerminator = 1;
5797let isBranch = 1;
5798let isPredicatedNew = 1;
5799let cofRelax1 = 1;
5800let cofRelax2 = 1;
5801let cofMax1 = 1;
5802let Uses = [P0];
5803let Defs = [P0, PC];
5804let BaseOpcode = "J4_cmpeqp0";
5805let isTaken = Inst{13};
5806let isExtendable = 1;
5807let opExtendable = 2;
5808let isExtentSigned = 1;
5809let opExtentBits = 11;
5810let opExtentAlign = 2;
5811}
5812def J4_cmpeq_fp0_jump_t : HInst<
5813(outs),
5814(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5815"p0 = cmp.eq($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
5816tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5817let Inst{0-0} = 0b0;
5818let Inst{13-12} = 0b10;
5819let Inst{31-22} = 0b0001010001;
5820let isPredicated = 1;
5821let isPredicatedFalse = 1;
5822let isTerminator = 1;
5823let isBranch = 1;
5824let isPredicatedNew = 1;
5825let cofRelax1 = 1;
5826let cofRelax2 = 1;
5827let cofMax1 = 1;
5828let Uses = [P0];
5829let Defs = [P0, PC];
5830let BaseOpcode = "J4_cmpeqp0";
5831let isTaken = Inst{13};
5832let isExtendable = 1;
5833let opExtendable = 2;
5834let isExtentSigned = 1;
5835let opExtentBits = 11;
5836let opExtentAlign = 2;
5837}
5838def J4_cmpeq_fp1_jump_nt : HInst<
5839(outs),
5840(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5841"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
5842tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5843let Inst{0-0} = 0b0;
5844let Inst{13-12} = 0b01;
5845let Inst{31-22} = 0b0001010001;
5846let isPredicated = 1;
5847let isPredicatedFalse = 1;
5848let isTerminator = 1;
5849let isBranch = 1;
5850let isPredicatedNew = 1;
5851let cofRelax1 = 1;
5852let cofRelax2 = 1;
5853let cofMax1 = 1;
5854let Uses = [P1];
5855let Defs = [P1, PC];
5856let BaseOpcode = "J4_cmpeqp1";
5857let isTaken = Inst{13};
5858let isExtendable = 1;
5859let opExtendable = 2;
5860let isExtentSigned = 1;
5861let opExtentBits = 11;
5862let opExtentAlign = 2;
5863}
5864def J4_cmpeq_fp1_jump_t : HInst<
5865(outs),
5866(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5867"p1 = cmp.eq($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
5868tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5869let Inst{0-0} = 0b0;
5870let Inst{13-12} = 0b11;
5871let Inst{31-22} = 0b0001010001;
5872let isPredicated = 1;
5873let isPredicatedFalse = 1;
5874let isTerminator = 1;
5875let isBranch = 1;
5876let isPredicatedNew = 1;
5877let cofRelax1 = 1;
5878let cofRelax2 = 1;
5879let cofMax1 = 1;
5880let Uses = [P1];
5881let Defs = [P1, PC];
5882let BaseOpcode = "J4_cmpeqp1";
5883let isTaken = Inst{13};
5884let isExtendable = 1;
5885let opExtendable = 2;
5886let isExtentSigned = 1;
5887let opExtentBits = 11;
5888let opExtentAlign = 2;
5889}
5890def J4_cmpeq_t_jumpnv_nt : HInst<
5891(outs),
5892(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5893"if (cmp.eq($Ns8.new,$Rt32)) jump:nt $Ii",
5894tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5895let Inst{0-0} = 0b0;
5896let Inst{13-13} = 0b0;
5897let Inst{19-19} = 0b0;
5898let Inst{31-22} = 0b0010000000;
5899let isPredicated = 1;
5900let isTerminator = 1;
5901let isBranch = 1;
5902let isNewValue = 1;
5903let cofMax1 = 1;
5904let isRestrictNoSlot1Store = 1;
5905let Defs = [PC];
5906let BaseOpcode = "J4_cmpeqr";
5907let isTaken = Inst{13};
5908let isExtendable = 1;
5909let opExtendable = 2;
5910let isExtentSigned = 1;
5911let opExtentBits = 11;
5912let opExtentAlign = 2;
5913let opNewValue = 0;
5914}
5915def J4_cmpeq_t_jumpnv_t : HInst<
5916(outs),
5917(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
5918"if (cmp.eq($Ns8.new,$Rt32)) jump:t $Ii",
5919tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
5920let Inst{0-0} = 0b0;
5921let Inst{13-13} = 0b1;
5922let Inst{19-19} = 0b0;
5923let Inst{31-22} = 0b0010000000;
5924let isPredicated = 1;
5925let isTerminator = 1;
5926let isBranch = 1;
5927let isNewValue = 1;
5928let cofMax1 = 1;
5929let isRestrictNoSlot1Store = 1;
5930let Defs = [PC];
5931let BaseOpcode = "J4_cmpeqr";
5932let isTaken = Inst{13};
5933let isExtendable = 1;
5934let opExtendable = 2;
5935let isExtentSigned = 1;
5936let opExtentBits = 11;
5937let opExtentAlign = 2;
5938let opNewValue = 0;
5939}
5940def J4_cmpeq_tp0_jump_nt : HInst<
5941(outs),
5942(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5943"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
5944tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5945let Inst{0-0} = 0b0;
5946let Inst{13-12} = 0b00;
5947let Inst{31-22} = 0b0001010000;
5948let isPredicated = 1;
5949let isTerminator = 1;
5950let isBranch = 1;
5951let isPredicatedNew = 1;
5952let cofRelax1 = 1;
5953let cofRelax2 = 1;
5954let cofMax1 = 1;
5955let Uses = [P0];
5956let Defs = [P0, PC];
5957let BaseOpcode = "J4_cmpeqp0";
5958let isTaken = Inst{13};
5959let isExtendable = 1;
5960let opExtendable = 2;
5961let isExtentSigned = 1;
5962let opExtentBits = 11;
5963let opExtentAlign = 2;
5964}
5965def J4_cmpeq_tp0_jump_t : HInst<
5966(outs),
5967(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5968"p0 = cmp.eq($Rs16,$Rt16); if (p0.new) jump:t $Ii",
5969tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5970let Inst{0-0} = 0b0;
5971let Inst{13-12} = 0b10;
5972let Inst{31-22} = 0b0001010000;
5973let isPredicated = 1;
5974let isTerminator = 1;
5975let isBranch = 1;
5976let isPredicatedNew = 1;
5977let cofRelax1 = 1;
5978let cofRelax2 = 1;
5979let cofMax1 = 1;
5980let Uses = [P0];
5981let Defs = [P0, PC];
5982let BaseOpcode = "J4_cmpeqp0";
5983let isTaken = Inst{13};
5984let isExtendable = 1;
5985let opExtendable = 2;
5986let isExtentSigned = 1;
5987let opExtentBits = 11;
5988let opExtentAlign = 2;
5989}
5990def J4_cmpeq_tp1_jump_nt : HInst<
5991(outs),
5992(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
5993"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
5994tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
5995let Inst{0-0} = 0b0;
5996let Inst{13-12} = 0b01;
5997let Inst{31-22} = 0b0001010000;
5998let isPredicated = 1;
5999let isTerminator = 1;
6000let isBranch = 1;
6001let isPredicatedNew = 1;
6002let cofRelax1 = 1;
6003let cofRelax2 = 1;
6004let cofMax1 = 1;
6005let Uses = [P1];
6006let Defs = [P1, PC];
6007let BaseOpcode = "J4_cmpeqp1";
6008let isTaken = Inst{13};
6009let isExtendable = 1;
6010let opExtendable = 2;
6011let isExtentSigned = 1;
6012let opExtentBits = 11;
6013let opExtentAlign = 2;
6014}
6015def J4_cmpeq_tp1_jump_t : HInst<
6016(outs),
6017(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6018"p1 = cmp.eq($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6019tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6020let Inst{0-0} = 0b0;
6021let Inst{13-12} = 0b11;
6022let Inst{31-22} = 0b0001010000;
6023let isPredicated = 1;
6024let isTerminator = 1;
6025let isBranch = 1;
6026let isPredicatedNew = 1;
6027let cofRelax1 = 1;
6028let cofRelax2 = 1;
6029let cofMax1 = 1;
6030let Uses = [P1];
6031let Defs = [P1, PC];
6032let BaseOpcode = "J4_cmpeqp1";
6033let isTaken = Inst{13};
6034let isExtendable = 1;
6035let opExtendable = 2;
6036let isExtentSigned = 1;
6037let opExtentBits = 11;
6038let opExtentAlign = 2;
6039}
6040def J4_cmpeqi_f_jumpnv_nt : HInst<
6041(outs),
6042(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6043"if (!cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6044tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6045let Inst{0-0} = 0b0;
6046let Inst{13-13} = 0b0;
6047let Inst{19-19} = 0b0;
6048let Inst{31-22} = 0b0010010001;
6049let isPredicated = 1;
6050let isPredicatedFalse = 1;
6051let isTerminator = 1;
6052let isBranch = 1;
6053let isNewValue = 1;
6054let cofMax1 = 1;
6055let isRestrictNoSlot1Store = 1;
6056let Defs = [PC];
6057let BaseOpcode = "J4_cmpeqi";
6058let isTaken = Inst{13};
6059let isExtendable = 1;
6060let opExtendable = 2;
6061let isExtentSigned = 1;
6062let opExtentBits = 11;
6063let opExtentAlign = 2;
6064let opNewValue = 0;
6065}
6066def J4_cmpeqi_f_jumpnv_t : HInst<
6067(outs),
6068(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6069"if (!cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6070tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6071let Inst{0-0} = 0b0;
6072let Inst{13-13} = 0b1;
6073let Inst{19-19} = 0b0;
6074let Inst{31-22} = 0b0010010001;
6075let isPredicated = 1;
6076let isPredicatedFalse = 1;
6077let isTerminator = 1;
6078let isBranch = 1;
6079let isNewValue = 1;
6080let cofMax1 = 1;
6081let isRestrictNoSlot1Store = 1;
6082let Defs = [PC];
6083let BaseOpcode = "J4_cmpeqi";
6084let isTaken = Inst{13};
6085let isExtendable = 1;
6086let opExtendable = 2;
6087let isExtentSigned = 1;
6088let opExtentBits = 11;
6089let opExtentAlign = 2;
6090let opNewValue = 0;
6091}
6092def J4_cmpeqi_fp0_jump_nt : HInst<
6093(outs),
6094(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6095"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:nt $Ii",
6096tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6097let Inst{0-0} = 0b0;
6098let Inst{13-13} = 0b0;
6099let Inst{31-22} = 0b0001000001;
6100let isPredicated = 1;
6101let isPredicatedFalse = 1;
6102let isTerminator = 1;
6103let isBranch = 1;
6104let isPredicatedNew = 1;
6105let cofRelax1 = 1;
6106let cofRelax2 = 1;
6107let cofMax1 = 1;
6108let Uses = [P0];
6109let Defs = [P0, PC];
6110let BaseOpcode = "J4_cmpeqip0";
6111let isTaken = Inst{13};
6112let isExtendable = 1;
6113let opExtendable = 2;
6114let isExtentSigned = 1;
6115let opExtentBits = 11;
6116let opExtentAlign = 2;
6117}
6118def J4_cmpeqi_fp0_jump_t : HInst<
6119(outs),
6120(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6121"p0 = cmp.eq($Rs16,#$II); if (!p0.new) jump:t $Ii",
6122tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6123let Inst{0-0} = 0b0;
6124let Inst{13-13} = 0b1;
6125let Inst{31-22} = 0b0001000001;
6126let isPredicated = 1;
6127let isPredicatedFalse = 1;
6128let isTerminator = 1;
6129let isBranch = 1;
6130let isPredicatedNew = 1;
6131let cofRelax1 = 1;
6132let cofRelax2 = 1;
6133let cofMax1 = 1;
6134let Uses = [P0];
6135let Defs = [P0, PC];
6136let BaseOpcode = "J4_cmpeqip0";
6137let isTaken = Inst{13};
6138let isExtendable = 1;
6139let opExtendable = 2;
6140let isExtentSigned = 1;
6141let opExtentBits = 11;
6142let opExtentAlign = 2;
6143}
6144def J4_cmpeqi_fp1_jump_nt : HInst<
6145(outs),
6146(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6147"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:nt $Ii",
6148tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6149let Inst{0-0} = 0b0;
6150let Inst{13-13} = 0b0;
6151let Inst{31-22} = 0b0001001001;
6152let isPredicated = 1;
6153let isPredicatedFalse = 1;
6154let isTerminator = 1;
6155let isBranch = 1;
6156let isPredicatedNew = 1;
6157let cofRelax1 = 1;
6158let cofRelax2 = 1;
6159let cofMax1 = 1;
6160let Uses = [P1];
6161let Defs = [P1, PC];
6162let BaseOpcode = "J4_cmpeqip1";
6163let isTaken = Inst{13};
6164let isExtendable = 1;
6165let opExtendable = 2;
6166let isExtentSigned = 1;
6167let opExtentBits = 11;
6168let opExtentAlign = 2;
6169}
6170def J4_cmpeqi_fp1_jump_t : HInst<
6171(outs),
6172(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6173"p1 = cmp.eq($Rs16,#$II); if (!p1.new) jump:t $Ii",
6174tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6175let Inst{0-0} = 0b0;
6176let Inst{13-13} = 0b1;
6177let Inst{31-22} = 0b0001001001;
6178let isPredicated = 1;
6179let isPredicatedFalse = 1;
6180let isTerminator = 1;
6181let isBranch = 1;
6182let isPredicatedNew = 1;
6183let cofRelax1 = 1;
6184let cofRelax2 = 1;
6185let cofMax1 = 1;
6186let Uses = [P1];
6187let Defs = [P1, PC];
6188let BaseOpcode = "J4_cmpeqip1";
6189let isTaken = Inst{13};
6190let isExtendable = 1;
6191let opExtendable = 2;
6192let isExtentSigned = 1;
6193let opExtentBits = 11;
6194let opExtentAlign = 2;
6195}
6196def J4_cmpeqi_t_jumpnv_nt : HInst<
6197(outs),
6198(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6199"if (cmp.eq($Ns8.new,#$II)) jump:nt $Ii",
6200tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6201let Inst{0-0} = 0b0;
6202let Inst{13-13} = 0b0;
6203let Inst{19-19} = 0b0;
6204let Inst{31-22} = 0b0010010000;
6205let isPredicated = 1;
6206let isTerminator = 1;
6207let isBranch = 1;
6208let isNewValue = 1;
6209let cofMax1 = 1;
6210let isRestrictNoSlot1Store = 1;
6211let Defs = [PC];
6212let BaseOpcode = "J4_cmpeqi";
6213let isTaken = Inst{13};
6214let isExtendable = 1;
6215let opExtendable = 2;
6216let isExtentSigned = 1;
6217let opExtentBits = 11;
6218let opExtentAlign = 2;
6219let opNewValue = 0;
6220}
6221def J4_cmpeqi_t_jumpnv_t : HInst<
6222(outs),
6223(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6224"if (cmp.eq($Ns8.new,#$II)) jump:t $Ii",
6225tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6226let Inst{0-0} = 0b0;
6227let Inst{13-13} = 0b1;
6228let Inst{19-19} = 0b0;
6229let Inst{31-22} = 0b0010010000;
6230let isPredicated = 1;
6231let isTerminator = 1;
6232let isBranch = 1;
6233let isNewValue = 1;
6234let cofMax1 = 1;
6235let isRestrictNoSlot1Store = 1;
6236let Defs = [PC];
6237let BaseOpcode = "J4_cmpeqi";
6238let isTaken = Inst{13};
6239let isExtendable = 1;
6240let opExtendable = 2;
6241let isExtentSigned = 1;
6242let opExtentBits = 11;
6243let opExtentAlign = 2;
6244let opNewValue = 0;
6245}
6246def J4_cmpeqi_tp0_jump_nt : HInst<
6247(outs),
6248(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6249"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:nt $Ii",
6250tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6251let Inst{0-0} = 0b0;
6252let Inst{13-13} = 0b0;
6253let Inst{31-22} = 0b0001000000;
6254let isPredicated = 1;
6255let isTerminator = 1;
6256let isBranch = 1;
6257let isPredicatedNew = 1;
6258let cofRelax1 = 1;
6259let cofRelax2 = 1;
6260let cofMax1 = 1;
6261let Uses = [P0];
6262let Defs = [P0, PC];
6263let BaseOpcode = "J4_cmpeqip0";
6264let isTaken = Inst{13};
6265let isExtendable = 1;
6266let opExtendable = 2;
6267let isExtentSigned = 1;
6268let opExtentBits = 11;
6269let opExtentAlign = 2;
6270}
6271def J4_cmpeqi_tp0_jump_t : HInst<
6272(outs),
6273(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6274"p0 = cmp.eq($Rs16,#$II); if (p0.new) jump:t $Ii",
6275tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6276let Inst{0-0} = 0b0;
6277let Inst{13-13} = 0b1;
6278let Inst{31-22} = 0b0001000000;
6279let isPredicated = 1;
6280let isTerminator = 1;
6281let isBranch = 1;
6282let isPredicatedNew = 1;
6283let cofRelax1 = 1;
6284let cofRelax2 = 1;
6285let cofMax1 = 1;
6286let Uses = [P0];
6287let Defs = [P0, PC];
6288let BaseOpcode = "J4_cmpeqip0";
6289let isTaken = Inst{13};
6290let isExtendable = 1;
6291let opExtendable = 2;
6292let isExtentSigned = 1;
6293let opExtentBits = 11;
6294let opExtentAlign = 2;
6295}
6296def J4_cmpeqi_tp1_jump_nt : HInst<
6297(outs),
6298(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6299"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:nt $Ii",
6300tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6301let Inst{0-0} = 0b0;
6302let Inst{13-13} = 0b0;
6303let Inst{31-22} = 0b0001001000;
6304let isPredicated = 1;
6305let isTerminator = 1;
6306let isBranch = 1;
6307let isPredicatedNew = 1;
6308let cofRelax1 = 1;
6309let cofRelax2 = 1;
6310let cofMax1 = 1;
6311let Uses = [P1];
6312let Defs = [P1, PC];
6313let BaseOpcode = "J4_cmpeqip1";
6314let isTaken = Inst{13};
6315let isExtendable = 1;
6316let opExtendable = 2;
6317let isExtentSigned = 1;
6318let opExtentBits = 11;
6319let opExtentAlign = 2;
6320}
6321def J4_cmpeqi_tp1_jump_t : HInst<
6322(outs),
6323(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
6324"p1 = cmp.eq($Rs16,#$II); if (p1.new) jump:t $Ii",
6325tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
6326let Inst{0-0} = 0b0;
6327let Inst{13-13} = 0b1;
6328let Inst{31-22} = 0b0001001000;
6329let isPredicated = 1;
6330let isTerminator = 1;
6331let isBranch = 1;
6332let isPredicatedNew = 1;
6333let cofRelax1 = 1;
6334let cofRelax2 = 1;
6335let cofMax1 = 1;
6336let Uses = [P1];
6337let Defs = [P1, PC];
6338let BaseOpcode = "J4_cmpeqip1";
6339let isTaken = Inst{13};
6340let isExtendable = 1;
6341let opExtendable = 2;
6342let isExtentSigned = 1;
6343let opExtentBits = 11;
6344let opExtentAlign = 2;
6345}
6346def J4_cmpeqn1_f_jumpnv_nt : HInst<
6347(outs),
6348(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6349"if (!cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6350tc_bd8382d1, TypeNCJ>, Enc_e90a15, PredRel {
6351let Inst{0-0} = 0b0;
6352let Inst{13-8} = 0b000000;
6353let Inst{19-19} = 0b0;
6354let Inst{31-22} = 0b0010011001;
6355let isPredicated = 1;
6356let isPredicatedFalse = 1;
6357let isTerminator = 1;
6358let isBranch = 1;
6359let isNewValue = 1;
6360let cofMax1 = 1;
6361let isRestrictNoSlot1Store = 1;
6362let Defs = [PC];
6363let BaseOpcode = "J4_cmpeqn1r";
6364let isTaken = Inst{13};
6365let isExtendable = 1;
6366let opExtendable = 2;
6367let isExtentSigned = 1;
6368let opExtentBits = 11;
6369let opExtentAlign = 2;
6370let opNewValue = 0;
6371}
6372def J4_cmpeqn1_f_jumpnv_t : HInst<
6373(outs),
6374(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6375"if (!cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6376tc_bd8382d1, TypeNCJ>, Enc_5a18b3, PredRel {
6377let Inst{0-0} = 0b0;
6378let Inst{13-8} = 0b100000;
6379let Inst{19-19} = 0b0;
6380let Inst{31-22} = 0b0010011001;
6381let isPredicated = 1;
6382let isPredicatedFalse = 1;
6383let isTerminator = 1;
6384let isBranch = 1;
6385let isNewValue = 1;
6386let cofMax1 = 1;
6387let isRestrictNoSlot1Store = 1;
6388let Defs = [PC];
6389let BaseOpcode = "J4_cmpeqn1r";
6390let isTaken = Inst{13};
6391let isExtendable = 1;
6392let opExtendable = 2;
6393let isExtentSigned = 1;
6394let opExtentBits = 11;
6395let opExtentAlign = 2;
6396let opNewValue = 0;
6397}
6398def J4_cmpeqn1_fp0_jump_nt : HInst<
6399(outs),
6400(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6401"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
6402tc_3d495a39, TypeCJ>, Enc_1de724, PredRel {
6403let Inst{0-0} = 0b0;
6404let Inst{13-8} = 0b000000;
6405let Inst{31-22} = 0b0001000111;
6406let isPredicated = 1;
6407let isPredicatedFalse = 1;
6408let isTerminator = 1;
6409let isBranch = 1;
6410let isPredicatedNew = 1;
6411let cofRelax1 = 1;
6412let cofRelax2 = 1;
6413let cofMax1 = 1;
6414let Uses = [P0];
6415let Defs = [P0, PC];
6416let BaseOpcode = "J4_cmpeqn1p0";
6417let isTaken = Inst{13};
6418let isExtendable = 1;
6419let opExtendable = 2;
6420let isExtentSigned = 1;
6421let opExtentBits = 11;
6422let opExtentAlign = 2;
6423}
6424def J4_cmpeqn1_fp0_jump_t : HInst<
6425(outs),
6426(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6427"p0 = cmp.eq($Rs16,#$n1); if (!p0.new) jump:t $Ii",
6428tc_3d495a39, TypeCJ>, Enc_14640c, PredRel {
6429let Inst{0-0} = 0b0;
6430let Inst{13-8} = 0b100000;
6431let Inst{31-22} = 0b0001000111;
6432let isPredicated = 1;
6433let isPredicatedFalse = 1;
6434let isTerminator = 1;
6435let isBranch = 1;
6436let isPredicatedNew = 1;
6437let cofRelax1 = 1;
6438let cofRelax2 = 1;
6439let cofMax1 = 1;
6440let Uses = [P0];
6441let Defs = [P0, PC];
6442let BaseOpcode = "J4_cmpeqn1p0";
6443let isTaken = Inst{13};
6444let isExtendable = 1;
6445let opExtendable = 2;
6446let isExtentSigned = 1;
6447let opExtentBits = 11;
6448let opExtentAlign = 2;
6449}
6450def J4_cmpeqn1_fp1_jump_nt : HInst<
6451(outs),
6452(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6453"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
6454tc_3d495a39, TypeCJ>, Enc_668704, PredRel {
6455let Inst{0-0} = 0b0;
6456let Inst{13-8} = 0b000000;
6457let Inst{31-22} = 0b0001001111;
6458let isPredicated = 1;
6459let isPredicatedFalse = 1;
6460let isTerminator = 1;
6461let isBranch = 1;
6462let isPredicatedNew = 1;
6463let cofRelax1 = 1;
6464let cofRelax2 = 1;
6465let cofMax1 = 1;
6466let Uses = [P1];
6467let Defs = [P1, PC];
6468let BaseOpcode = "J4_cmpeqn1p1";
6469let isTaken = Inst{13};
6470let isExtendable = 1;
6471let opExtendable = 2;
6472let isExtentSigned = 1;
6473let opExtentBits = 11;
6474let opExtentAlign = 2;
6475}
6476def J4_cmpeqn1_fp1_jump_t : HInst<
6477(outs),
6478(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6479"p1 = cmp.eq($Rs16,#$n1); if (!p1.new) jump:t $Ii",
6480tc_3d495a39, TypeCJ>, Enc_800e04, PredRel {
6481let Inst{0-0} = 0b0;
6482let Inst{13-8} = 0b100000;
6483let Inst{31-22} = 0b0001001111;
6484let isPredicated = 1;
6485let isPredicatedFalse = 1;
6486let isTerminator = 1;
6487let isBranch = 1;
6488let isPredicatedNew = 1;
6489let cofRelax1 = 1;
6490let cofRelax2 = 1;
6491let cofMax1 = 1;
6492let Uses = [P1];
6493let Defs = [P1, PC];
6494let BaseOpcode = "J4_cmpeqn1p1";
6495let isTaken = Inst{13};
6496let isExtendable = 1;
6497let opExtendable = 2;
6498let isExtentSigned = 1;
6499let opExtentBits = 11;
6500let opExtentAlign = 2;
6501}
6502def J4_cmpeqn1_t_jumpnv_nt : HInst<
6503(outs),
6504(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6505"if (cmp.eq($Ns8.new,#$n1)) jump:nt $Ii",
6506tc_bd8382d1, TypeNCJ>, Enc_4aca3a, PredRel {
6507let Inst{0-0} = 0b0;
6508let Inst{13-8} = 0b000000;
6509let Inst{19-19} = 0b0;
6510let Inst{31-22} = 0b0010011000;
6511let isPredicated = 1;
6512let isTerminator = 1;
6513let isBranch = 1;
6514let isNewValue = 1;
6515let cofMax1 = 1;
6516let isRestrictNoSlot1Store = 1;
6517let Defs = [PC];
6518let BaseOpcode = "J4_cmpeqn1r";
6519let isTaken = Inst{13};
6520let isExtendable = 1;
6521let opExtendable = 2;
6522let isExtentSigned = 1;
6523let opExtentBits = 11;
6524let opExtentAlign = 2;
6525let opNewValue = 0;
6526}
6527def J4_cmpeqn1_t_jumpnv_t : HInst<
6528(outs),
6529(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
6530"if (cmp.eq($Ns8.new,#$n1)) jump:t $Ii",
6531tc_bd8382d1, TypeNCJ>, Enc_f7ea77, PredRel {
6532let Inst{0-0} = 0b0;
6533let Inst{13-8} = 0b100000;
6534let Inst{19-19} = 0b0;
6535let Inst{31-22} = 0b0010011000;
6536let isPredicated = 1;
6537let isTerminator = 1;
6538let isBranch = 1;
6539let isNewValue = 1;
6540let cofMax1 = 1;
6541let isRestrictNoSlot1Store = 1;
6542let Defs = [PC];
6543let BaseOpcode = "J4_cmpeqn1r";
6544let isTaken = Inst{13};
6545let isExtendable = 1;
6546let opExtendable = 2;
6547let isExtentSigned = 1;
6548let opExtentBits = 11;
6549let opExtentAlign = 2;
6550let opNewValue = 0;
6551}
6552def J4_cmpeqn1_tp0_jump_nt : HInst<
6553(outs),
6554(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6555"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:nt $Ii",
6556tc_3d495a39, TypeCJ>, Enc_405228, PredRel {
6557let Inst{0-0} = 0b0;
6558let Inst{13-8} = 0b000000;
6559let Inst{31-22} = 0b0001000110;
6560let isPredicated = 1;
6561let isTerminator = 1;
6562let isBranch = 1;
6563let isPredicatedNew = 1;
6564let cofRelax1 = 1;
6565let cofRelax2 = 1;
6566let cofMax1 = 1;
6567let Uses = [P0];
6568let Defs = [P0, PC];
6569let BaseOpcode = "J4_cmpeqn1p0";
6570let isTaken = Inst{13};
6571let isExtendable = 1;
6572let opExtendable = 2;
6573let isExtentSigned = 1;
6574let opExtentBits = 11;
6575let opExtentAlign = 2;
6576}
6577def J4_cmpeqn1_tp0_jump_t : HInst<
6578(outs),
6579(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6580"p0 = cmp.eq($Rs16,#$n1); if (p0.new) jump:t $Ii",
6581tc_3d495a39, TypeCJ>, Enc_3a2484, PredRel {
6582let Inst{0-0} = 0b0;
6583let Inst{13-8} = 0b100000;
6584let Inst{31-22} = 0b0001000110;
6585let isPredicated = 1;
6586let isTerminator = 1;
6587let isBranch = 1;
6588let isPredicatedNew = 1;
6589let cofRelax1 = 1;
6590let cofRelax2 = 1;
6591let cofMax1 = 1;
6592let Uses = [P0];
6593let Defs = [P0, PC];
6594let BaseOpcode = "J4_cmpeqn1p0";
6595let isTaken = Inst{13};
6596let isExtendable = 1;
6597let opExtendable = 2;
6598let isExtentSigned = 1;
6599let opExtentBits = 11;
6600let opExtentAlign = 2;
6601}
6602def J4_cmpeqn1_tp1_jump_nt : HInst<
6603(outs),
6604(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6605"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:nt $Ii",
6606tc_3d495a39, TypeCJ>, Enc_736575, PredRel {
6607let Inst{0-0} = 0b0;
6608let Inst{13-8} = 0b000000;
6609let Inst{31-22} = 0b0001001110;
6610let isPredicated = 1;
6611let isTerminator = 1;
6612let isBranch = 1;
6613let isPredicatedNew = 1;
6614let cofRelax1 = 1;
6615let cofRelax2 = 1;
6616let cofMax1 = 1;
6617let Uses = [P1];
6618let Defs = [P1, PC];
6619let BaseOpcode = "J4_cmpeqn1p1";
6620let isTaken = Inst{13};
6621let isExtendable = 1;
6622let opExtendable = 2;
6623let isExtentSigned = 1;
6624let opExtentBits = 11;
6625let opExtentAlign = 2;
6626}
6627def J4_cmpeqn1_tp1_jump_t : HInst<
6628(outs),
6629(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
6630"p1 = cmp.eq($Rs16,#$n1); if (p1.new) jump:t $Ii",
6631tc_3d495a39, TypeCJ>, Enc_8e583a, PredRel {
6632let Inst{0-0} = 0b0;
6633let Inst{13-8} = 0b100000;
6634let Inst{31-22} = 0b0001001110;
6635let isPredicated = 1;
6636let isTerminator = 1;
6637let isBranch = 1;
6638let isPredicatedNew = 1;
6639let cofRelax1 = 1;
6640let cofRelax2 = 1;
6641let cofMax1 = 1;
6642let Uses = [P1];
6643let Defs = [P1, PC];
6644let BaseOpcode = "J4_cmpeqn1p1";
6645let isTaken = Inst{13};
6646let isExtendable = 1;
6647let opExtendable = 2;
6648let isExtentSigned = 1;
6649let opExtentBits = 11;
6650let opExtentAlign = 2;
6651}
6652def J4_cmpgt_f_jumpnv_nt : HInst<
6653(outs),
6654(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6655"if (!cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6656tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6657let Inst{0-0} = 0b0;
6658let Inst{13-13} = 0b0;
6659let Inst{19-19} = 0b0;
6660let Inst{31-22} = 0b0010000011;
6661let isPredicated = 1;
6662let isPredicatedFalse = 1;
6663let isTerminator = 1;
6664let isBranch = 1;
6665let isNewValue = 1;
6666let cofMax1 = 1;
6667let isRestrictNoSlot1Store = 1;
6668let Defs = [PC];
6669let BaseOpcode = "J4_cmpgtr";
6670let isTaken = Inst{13};
6671let isExtendable = 1;
6672let opExtendable = 2;
6673let isExtentSigned = 1;
6674let opExtentBits = 11;
6675let opExtentAlign = 2;
6676let opNewValue = 0;
6677}
6678def J4_cmpgt_f_jumpnv_t : HInst<
6679(outs),
6680(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6681"if (!cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6682tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6683let Inst{0-0} = 0b0;
6684let Inst{13-13} = 0b1;
6685let Inst{19-19} = 0b0;
6686let Inst{31-22} = 0b0010000011;
6687let isPredicated = 1;
6688let isPredicatedFalse = 1;
6689let isTerminator = 1;
6690let isBranch = 1;
6691let isNewValue = 1;
6692let cofMax1 = 1;
6693let isRestrictNoSlot1Store = 1;
6694let Defs = [PC];
6695let BaseOpcode = "J4_cmpgtr";
6696let isTaken = Inst{13};
6697let isExtendable = 1;
6698let opExtendable = 2;
6699let isExtentSigned = 1;
6700let opExtentBits = 11;
6701let opExtentAlign = 2;
6702let opNewValue = 0;
6703}
6704def J4_cmpgt_fp0_jump_nt : HInst<
6705(outs),
6706(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6707"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
6708tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6709let Inst{0-0} = 0b0;
6710let Inst{13-12} = 0b00;
6711let Inst{31-22} = 0b0001010011;
6712let isPredicated = 1;
6713let isPredicatedFalse = 1;
6714let isTerminator = 1;
6715let isBranch = 1;
6716let isPredicatedNew = 1;
6717let cofRelax1 = 1;
6718let cofRelax2 = 1;
6719let cofMax1 = 1;
6720let Uses = [P0];
6721let Defs = [P0, PC];
6722let BaseOpcode = "J4_cmpgtp0";
6723let isTaken = Inst{13};
6724let isExtendable = 1;
6725let opExtendable = 2;
6726let isExtentSigned = 1;
6727let opExtentBits = 11;
6728let opExtentAlign = 2;
6729}
6730def J4_cmpgt_fp0_jump_t : HInst<
6731(outs),
6732(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6733"p0 = cmp.gt($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
6734tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6735let Inst{0-0} = 0b0;
6736let Inst{13-12} = 0b10;
6737let Inst{31-22} = 0b0001010011;
6738let isPredicated = 1;
6739let isPredicatedFalse = 1;
6740let isTerminator = 1;
6741let isBranch = 1;
6742let isPredicatedNew = 1;
6743let cofRelax1 = 1;
6744let cofRelax2 = 1;
6745let cofMax1 = 1;
6746let Uses = [P0];
6747let Defs = [P0, PC];
6748let BaseOpcode = "J4_cmpgtp0";
6749let isTaken = Inst{13};
6750let isExtendable = 1;
6751let opExtendable = 2;
6752let isExtentSigned = 1;
6753let opExtentBits = 11;
6754let opExtentAlign = 2;
6755}
6756def J4_cmpgt_fp1_jump_nt : HInst<
6757(outs),
6758(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6759"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
6760tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6761let Inst{0-0} = 0b0;
6762let Inst{13-12} = 0b01;
6763let Inst{31-22} = 0b0001010011;
6764let isPredicated = 1;
6765let isPredicatedFalse = 1;
6766let isTerminator = 1;
6767let isBranch = 1;
6768let isPredicatedNew = 1;
6769let cofRelax1 = 1;
6770let cofRelax2 = 1;
6771let cofMax1 = 1;
6772let Uses = [P1];
6773let Defs = [P1, PC];
6774let BaseOpcode = "J4_cmpgtp1";
6775let isTaken = Inst{13};
6776let isExtendable = 1;
6777let opExtendable = 2;
6778let isExtentSigned = 1;
6779let opExtentBits = 11;
6780let opExtentAlign = 2;
6781}
6782def J4_cmpgt_fp1_jump_t : HInst<
6783(outs),
6784(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6785"p1 = cmp.gt($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
6786tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6787let Inst{0-0} = 0b0;
6788let Inst{13-12} = 0b11;
6789let Inst{31-22} = 0b0001010011;
6790let isPredicated = 1;
6791let isPredicatedFalse = 1;
6792let isTerminator = 1;
6793let isBranch = 1;
6794let isPredicatedNew = 1;
6795let cofRelax1 = 1;
6796let cofRelax2 = 1;
6797let cofMax1 = 1;
6798let Uses = [P1];
6799let Defs = [P1, PC];
6800let BaseOpcode = "J4_cmpgtp1";
6801let isTaken = Inst{13};
6802let isExtendable = 1;
6803let opExtendable = 2;
6804let isExtentSigned = 1;
6805let opExtentBits = 11;
6806let opExtentAlign = 2;
6807}
6808def J4_cmpgt_t_jumpnv_nt : HInst<
6809(outs),
6810(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6811"if (cmp.gt($Ns8.new,$Rt32)) jump:nt $Ii",
6812tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6813let Inst{0-0} = 0b0;
6814let Inst{13-13} = 0b0;
6815let Inst{19-19} = 0b0;
6816let Inst{31-22} = 0b0010000010;
6817let isPredicated = 1;
6818let isTerminator = 1;
6819let isBranch = 1;
6820let isNewValue = 1;
6821let cofMax1 = 1;
6822let isRestrictNoSlot1Store = 1;
6823let Defs = [PC];
6824let BaseOpcode = "J4_cmpgtr";
6825let isTaken = Inst{13};
6826let isExtendable = 1;
6827let opExtendable = 2;
6828let isExtentSigned = 1;
6829let opExtentBits = 11;
6830let opExtentAlign = 2;
6831let opNewValue = 0;
6832}
6833def J4_cmpgt_t_jumpnv_t : HInst<
6834(outs),
6835(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
6836"if (cmp.gt($Ns8.new,$Rt32)) jump:t $Ii",
6837tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
6838let Inst{0-0} = 0b0;
6839let Inst{13-13} = 0b1;
6840let Inst{19-19} = 0b0;
6841let Inst{31-22} = 0b0010000010;
6842let isPredicated = 1;
6843let isTerminator = 1;
6844let isBranch = 1;
6845let isNewValue = 1;
6846let cofMax1 = 1;
6847let isRestrictNoSlot1Store = 1;
6848let Defs = [PC];
6849let BaseOpcode = "J4_cmpgtr";
6850let isTaken = Inst{13};
6851let isExtendable = 1;
6852let opExtendable = 2;
6853let isExtentSigned = 1;
6854let opExtentBits = 11;
6855let opExtentAlign = 2;
6856let opNewValue = 0;
6857}
6858def J4_cmpgt_tp0_jump_nt : HInst<
6859(outs),
6860(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6861"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
6862tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6863let Inst{0-0} = 0b0;
6864let Inst{13-12} = 0b00;
6865let Inst{31-22} = 0b0001010010;
6866let isPredicated = 1;
6867let isTerminator = 1;
6868let isBranch = 1;
6869let isPredicatedNew = 1;
6870let cofRelax1 = 1;
6871let cofRelax2 = 1;
6872let cofMax1 = 1;
6873let Uses = [P0];
6874let Defs = [P0, PC];
6875let BaseOpcode = "J4_cmpgtp0";
6876let isTaken = Inst{13};
6877let isExtendable = 1;
6878let opExtendable = 2;
6879let isExtentSigned = 1;
6880let opExtentBits = 11;
6881let opExtentAlign = 2;
6882}
6883def J4_cmpgt_tp0_jump_t : HInst<
6884(outs),
6885(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6886"p0 = cmp.gt($Rs16,$Rt16); if (p0.new) jump:t $Ii",
6887tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6888let Inst{0-0} = 0b0;
6889let Inst{13-12} = 0b10;
6890let Inst{31-22} = 0b0001010010;
6891let isPredicated = 1;
6892let isTerminator = 1;
6893let isBranch = 1;
6894let isPredicatedNew = 1;
6895let cofRelax1 = 1;
6896let cofRelax2 = 1;
6897let cofMax1 = 1;
6898let Uses = [P0];
6899let Defs = [P0, PC];
6900let BaseOpcode = "J4_cmpgtp0";
6901let isTaken = Inst{13};
6902let isExtendable = 1;
6903let opExtendable = 2;
6904let isExtentSigned = 1;
6905let opExtentBits = 11;
6906let opExtentAlign = 2;
6907}
6908def J4_cmpgt_tp1_jump_nt : HInst<
6909(outs),
6910(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6911"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
6912tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6913let Inst{0-0} = 0b0;
6914let Inst{13-12} = 0b01;
6915let Inst{31-22} = 0b0001010010;
6916let isPredicated = 1;
6917let isTerminator = 1;
6918let isBranch = 1;
6919let isPredicatedNew = 1;
6920let cofRelax1 = 1;
6921let cofRelax2 = 1;
6922let cofMax1 = 1;
6923let Uses = [P1];
6924let Defs = [P1, PC];
6925let BaseOpcode = "J4_cmpgtp1";
6926let isTaken = Inst{13};
6927let isExtendable = 1;
6928let opExtendable = 2;
6929let isExtentSigned = 1;
6930let opExtentBits = 11;
6931let opExtentAlign = 2;
6932}
6933def J4_cmpgt_tp1_jump_t : HInst<
6934(outs),
6935(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
6936"p1 = cmp.gt($Rs16,$Rt16); if (p1.new) jump:t $Ii",
6937tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
6938let Inst{0-0} = 0b0;
6939let Inst{13-12} = 0b11;
6940let Inst{31-22} = 0b0001010010;
6941let isPredicated = 1;
6942let isTerminator = 1;
6943let isBranch = 1;
6944let isPredicatedNew = 1;
6945let cofRelax1 = 1;
6946let cofRelax2 = 1;
6947let cofMax1 = 1;
6948let Uses = [P1];
6949let Defs = [P1, PC];
6950let BaseOpcode = "J4_cmpgtp1";
6951let isTaken = Inst{13};
6952let isExtendable = 1;
6953let opExtendable = 2;
6954let isExtentSigned = 1;
6955let opExtentBits = 11;
6956let opExtentAlign = 2;
6957}
6958def J4_cmpgti_f_jumpnv_nt : HInst<
6959(outs),
6960(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6961"if (!cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
6962tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6963let Inst{0-0} = 0b0;
6964let Inst{13-13} = 0b0;
6965let Inst{19-19} = 0b0;
6966let Inst{31-22} = 0b0010010011;
6967let isPredicated = 1;
6968let isPredicatedFalse = 1;
6969let isTerminator = 1;
6970let isBranch = 1;
6971let isNewValue = 1;
6972let cofMax1 = 1;
6973let isRestrictNoSlot1Store = 1;
6974let Defs = [PC];
6975let BaseOpcode = "J4_cmpgtir";
6976let isTaken = Inst{13};
6977let isExtendable = 1;
6978let opExtendable = 2;
6979let isExtentSigned = 1;
6980let opExtentBits = 11;
6981let opExtentAlign = 2;
6982let opNewValue = 0;
6983}
6984def J4_cmpgti_f_jumpnv_t : HInst<
6985(outs),
6986(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
6987"if (!cmp.gt($Ns8.new,#$II)) jump:t $Ii",
6988tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
6989let Inst{0-0} = 0b0;
6990let Inst{13-13} = 0b1;
6991let Inst{19-19} = 0b0;
6992let Inst{31-22} = 0b0010010011;
6993let isPredicated = 1;
6994let isPredicatedFalse = 1;
6995let isTerminator = 1;
6996let isBranch = 1;
6997let isNewValue = 1;
6998let cofMax1 = 1;
6999let isRestrictNoSlot1Store = 1;
7000let Defs = [PC];
7001let BaseOpcode = "J4_cmpgtir";
7002let isTaken = Inst{13};
7003let isExtendable = 1;
7004let opExtendable = 2;
7005let isExtentSigned = 1;
7006let opExtentBits = 11;
7007let opExtentAlign = 2;
7008let opNewValue = 0;
7009}
7010def J4_cmpgti_fp0_jump_nt : HInst<
7011(outs),
7012(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7013"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7014tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7015let Inst{0-0} = 0b0;
7016let Inst{13-13} = 0b0;
7017let Inst{31-22} = 0b0001000011;
7018let isPredicated = 1;
7019let isPredicatedFalse = 1;
7020let isTerminator = 1;
7021let isBranch = 1;
7022let isPredicatedNew = 1;
7023let cofRelax1 = 1;
7024let cofRelax2 = 1;
7025let cofMax1 = 1;
7026let Uses = [P0];
7027let Defs = [P0, PC];
7028let BaseOpcode = "J4_cmpgtip0";
7029let isTaken = Inst{13};
7030let isExtendable = 1;
7031let opExtendable = 2;
7032let isExtentSigned = 1;
7033let opExtentBits = 11;
7034let opExtentAlign = 2;
7035}
7036def J4_cmpgti_fp0_jump_t : HInst<
7037(outs),
7038(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7039"p0 = cmp.gt($Rs16,#$II); if (!p0.new) jump:t $Ii",
7040tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7041let Inst{0-0} = 0b0;
7042let Inst{13-13} = 0b1;
7043let Inst{31-22} = 0b0001000011;
7044let isPredicated = 1;
7045let isPredicatedFalse = 1;
7046let isTerminator = 1;
7047let isBranch = 1;
7048let isPredicatedNew = 1;
7049let cofRelax1 = 1;
7050let cofRelax2 = 1;
7051let cofMax1 = 1;
7052let Uses = [P0];
7053let Defs = [P0, PC];
7054let BaseOpcode = "J4_cmpgtip0";
7055let isTaken = Inst{13};
7056let isExtendable = 1;
7057let opExtendable = 2;
7058let isExtentSigned = 1;
7059let opExtentBits = 11;
7060let opExtentAlign = 2;
7061}
7062def J4_cmpgti_fp1_jump_nt : HInst<
7063(outs),
7064(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7065"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7066tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7067let Inst{0-0} = 0b0;
7068let Inst{13-13} = 0b0;
7069let Inst{31-22} = 0b0001001011;
7070let isPredicated = 1;
7071let isPredicatedFalse = 1;
7072let isTerminator = 1;
7073let isBranch = 1;
7074let isPredicatedNew = 1;
7075let cofRelax1 = 1;
7076let cofRelax2 = 1;
7077let cofMax1 = 1;
7078let Uses = [P1];
7079let Defs = [P1, PC];
7080let BaseOpcode = "J4_cmpgtip1";
7081let isTaken = Inst{13};
7082let isExtendable = 1;
7083let opExtendable = 2;
7084let isExtentSigned = 1;
7085let opExtentBits = 11;
7086let opExtentAlign = 2;
7087}
7088def J4_cmpgti_fp1_jump_t : HInst<
7089(outs),
7090(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7091"p1 = cmp.gt($Rs16,#$II); if (!p1.new) jump:t $Ii",
7092tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7093let Inst{0-0} = 0b0;
7094let Inst{13-13} = 0b1;
7095let Inst{31-22} = 0b0001001011;
7096let isPredicated = 1;
7097let isPredicatedFalse = 1;
7098let isTerminator = 1;
7099let isBranch = 1;
7100let isPredicatedNew = 1;
7101let cofRelax1 = 1;
7102let cofRelax2 = 1;
7103let cofMax1 = 1;
7104let Uses = [P1];
7105let Defs = [P1, PC];
7106let BaseOpcode = "J4_cmpgtip1";
7107let isTaken = Inst{13};
7108let isExtendable = 1;
7109let opExtendable = 2;
7110let isExtentSigned = 1;
7111let opExtentBits = 11;
7112let opExtentAlign = 2;
7113}
7114def J4_cmpgti_t_jumpnv_nt : HInst<
7115(outs),
7116(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7117"if (cmp.gt($Ns8.new,#$II)) jump:nt $Ii",
7118tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7119let Inst{0-0} = 0b0;
7120let Inst{13-13} = 0b0;
7121let Inst{19-19} = 0b0;
7122let Inst{31-22} = 0b0010010010;
7123let isPredicated = 1;
7124let isTerminator = 1;
7125let isBranch = 1;
7126let isNewValue = 1;
7127let cofMax1 = 1;
7128let isRestrictNoSlot1Store = 1;
7129let Defs = [PC];
7130let BaseOpcode = "J4_cmpgtir";
7131let isTaken = Inst{13};
7132let isExtendable = 1;
7133let opExtendable = 2;
7134let isExtentSigned = 1;
7135let opExtentBits = 11;
7136let opExtentAlign = 2;
7137let opNewValue = 0;
7138}
7139def J4_cmpgti_t_jumpnv_t : HInst<
7140(outs),
7141(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7142"if (cmp.gt($Ns8.new,#$II)) jump:t $Ii",
7143tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7144let Inst{0-0} = 0b0;
7145let Inst{13-13} = 0b1;
7146let Inst{19-19} = 0b0;
7147let Inst{31-22} = 0b0010010010;
7148let isPredicated = 1;
7149let isTerminator = 1;
7150let isBranch = 1;
7151let isNewValue = 1;
7152let cofMax1 = 1;
7153let isRestrictNoSlot1Store = 1;
7154let Defs = [PC];
7155let BaseOpcode = "J4_cmpgtir";
7156let isTaken = Inst{13};
7157let isExtendable = 1;
7158let opExtendable = 2;
7159let isExtentSigned = 1;
7160let opExtentBits = 11;
7161let opExtentAlign = 2;
7162let opNewValue = 0;
7163}
7164def J4_cmpgti_tp0_jump_nt : HInst<
7165(outs),
7166(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7167"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:nt $Ii",
7168tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7169let Inst{0-0} = 0b0;
7170let Inst{13-13} = 0b0;
7171let Inst{31-22} = 0b0001000010;
7172let isPredicated = 1;
7173let isTerminator = 1;
7174let isBranch = 1;
7175let isPredicatedNew = 1;
7176let cofRelax1 = 1;
7177let cofRelax2 = 1;
7178let cofMax1 = 1;
7179let Uses = [P0];
7180let Defs = [P0, PC];
7181let BaseOpcode = "J4_cmpgtip0";
7182let isTaken = Inst{13};
7183let isExtendable = 1;
7184let opExtendable = 2;
7185let isExtentSigned = 1;
7186let opExtentBits = 11;
7187let opExtentAlign = 2;
7188}
7189def J4_cmpgti_tp0_jump_t : HInst<
7190(outs),
7191(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7192"p0 = cmp.gt($Rs16,#$II); if (p0.new) jump:t $Ii",
7193tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7194let Inst{0-0} = 0b0;
7195let Inst{13-13} = 0b1;
7196let Inst{31-22} = 0b0001000010;
7197let isPredicated = 1;
7198let isTerminator = 1;
7199let isBranch = 1;
7200let isPredicatedNew = 1;
7201let cofRelax1 = 1;
7202let cofRelax2 = 1;
7203let cofMax1 = 1;
7204let Uses = [P0];
7205let Defs = [P0, PC];
7206let BaseOpcode = "J4_cmpgtip0";
7207let isTaken = Inst{13};
7208let isExtendable = 1;
7209let opExtendable = 2;
7210let isExtentSigned = 1;
7211let opExtentBits = 11;
7212let opExtentAlign = 2;
7213}
7214def J4_cmpgti_tp1_jump_nt : HInst<
7215(outs),
7216(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7217"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:nt $Ii",
7218tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7219let Inst{0-0} = 0b0;
7220let Inst{13-13} = 0b0;
7221let Inst{31-22} = 0b0001001010;
7222let isPredicated = 1;
7223let isTerminator = 1;
7224let isBranch = 1;
7225let isPredicatedNew = 1;
7226let cofRelax1 = 1;
7227let cofRelax2 = 1;
7228let cofMax1 = 1;
7229let Uses = [P1];
7230let Defs = [P1, PC];
7231let BaseOpcode = "J4_cmpgtip1";
7232let isTaken = Inst{13};
7233let isExtendable = 1;
7234let opExtendable = 2;
7235let isExtentSigned = 1;
7236let opExtentBits = 11;
7237let opExtentAlign = 2;
7238}
7239def J4_cmpgti_tp1_jump_t : HInst<
7240(outs),
7241(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7242"p1 = cmp.gt($Rs16,#$II); if (p1.new) jump:t $Ii",
7243tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7244let Inst{0-0} = 0b0;
7245let Inst{13-13} = 0b1;
7246let Inst{31-22} = 0b0001001010;
7247let isPredicated = 1;
7248let isTerminator = 1;
7249let isBranch = 1;
7250let isPredicatedNew = 1;
7251let cofRelax1 = 1;
7252let cofRelax2 = 1;
7253let cofMax1 = 1;
7254let Uses = [P1];
7255let Defs = [P1, PC];
7256let BaseOpcode = "J4_cmpgtip1";
7257let isTaken = Inst{13};
7258let isExtendable = 1;
7259let opExtendable = 2;
7260let isExtentSigned = 1;
7261let opExtentBits = 11;
7262let opExtentAlign = 2;
7263}
7264def J4_cmpgtn1_f_jumpnv_nt : HInst<
7265(outs),
7266(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7267"if (!cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7268tc_bd8382d1, TypeNCJ>, Enc_3694bd, PredRel {
7269let Inst{0-0} = 0b0;
7270let Inst{13-8} = 0b000000;
7271let Inst{19-19} = 0b0;
7272let Inst{31-22} = 0b0010011011;
7273let isPredicated = 1;
7274let isPredicatedFalse = 1;
7275let isTerminator = 1;
7276let isBranch = 1;
7277let isNewValue = 1;
7278let cofMax1 = 1;
7279let isRestrictNoSlot1Store = 1;
7280let Defs = [PC];
7281let BaseOpcode = "J4_cmpgtn1r";
7282let isTaken = Inst{13};
7283let isExtendable = 1;
7284let opExtendable = 2;
7285let isExtentSigned = 1;
7286let opExtentBits = 11;
7287let opExtentAlign = 2;
7288let opNewValue = 0;
7289}
7290def J4_cmpgtn1_f_jumpnv_t : HInst<
7291(outs),
7292(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7293"if (!cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7294tc_bd8382d1, TypeNCJ>, Enc_a6853f, PredRel {
7295let Inst{0-0} = 0b0;
7296let Inst{13-8} = 0b100000;
7297let Inst{19-19} = 0b0;
7298let Inst{31-22} = 0b0010011011;
7299let isPredicated = 1;
7300let isPredicatedFalse = 1;
7301let isTerminator = 1;
7302let isBranch = 1;
7303let isNewValue = 1;
7304let cofMax1 = 1;
7305let isRestrictNoSlot1Store = 1;
7306let Defs = [PC];
7307let BaseOpcode = "J4_cmpgtn1r";
7308let isTaken = Inst{13};
7309let isExtendable = 1;
7310let opExtendable = 2;
7311let isExtentSigned = 1;
7312let opExtentBits = 11;
7313let opExtentAlign = 2;
7314let opNewValue = 0;
7315}
7316def J4_cmpgtn1_fp0_jump_nt : HInst<
7317(outs),
7318(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7319"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:nt $Ii",
7320tc_3d495a39, TypeCJ>, Enc_a42857, PredRel {
7321let Inst{0-0} = 0b0;
7322let Inst{13-8} = 0b000001;
7323let Inst{31-22} = 0b0001000111;
7324let isPredicated = 1;
7325let isPredicatedFalse = 1;
7326let isTerminator = 1;
7327let isBranch = 1;
7328let isPredicatedNew = 1;
7329let cofRelax1 = 1;
7330let cofRelax2 = 1;
7331let cofMax1 = 1;
7332let Uses = [P0];
7333let Defs = [P0, PC];
7334let BaseOpcode = "J4_cmpgtn1p0";
7335let isTaken = Inst{13};
7336let isExtendable = 1;
7337let opExtendable = 2;
7338let isExtentSigned = 1;
7339let opExtentBits = 11;
7340let opExtentAlign = 2;
7341}
7342def J4_cmpgtn1_fp0_jump_t : HInst<
7343(outs),
7344(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7345"p0 = cmp.gt($Rs16,#$n1); if (!p0.new) jump:t $Ii",
7346tc_3d495a39, TypeCJ>, Enc_f6fe0b, PredRel {
7347let Inst{0-0} = 0b0;
7348let Inst{13-8} = 0b100001;
7349let Inst{31-22} = 0b0001000111;
7350let isPredicated = 1;
7351let isPredicatedFalse = 1;
7352let isTerminator = 1;
7353let isBranch = 1;
7354let isPredicatedNew = 1;
7355let cofRelax1 = 1;
7356let cofRelax2 = 1;
7357let cofMax1 = 1;
7358let Uses = [P0];
7359let Defs = [P0, PC];
7360let BaseOpcode = "J4_cmpgtn1p0";
7361let isTaken = Inst{13};
7362let isExtendable = 1;
7363let opExtendable = 2;
7364let isExtentSigned = 1;
7365let opExtentBits = 11;
7366let opExtentAlign = 2;
7367}
7368def J4_cmpgtn1_fp1_jump_nt : HInst<
7369(outs),
7370(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7371"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:nt $Ii",
7372tc_3d495a39, TypeCJ>, Enc_3e3989, PredRel {
7373let Inst{0-0} = 0b0;
7374let Inst{13-8} = 0b000001;
7375let Inst{31-22} = 0b0001001111;
7376let isPredicated = 1;
7377let isPredicatedFalse = 1;
7378let isTerminator = 1;
7379let isBranch = 1;
7380let isPredicatedNew = 1;
7381let cofRelax1 = 1;
7382let cofRelax2 = 1;
7383let cofMax1 = 1;
7384let Uses = [P1];
7385let Defs = [P1, PC];
7386let BaseOpcode = "J4_cmpgtn1p1";
7387let isTaken = Inst{13};
7388let isExtendable = 1;
7389let opExtendable = 2;
7390let isExtentSigned = 1;
7391let opExtentBits = 11;
7392let opExtentAlign = 2;
7393}
7394def J4_cmpgtn1_fp1_jump_t : HInst<
7395(outs),
7396(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7397"p1 = cmp.gt($Rs16,#$n1); if (!p1.new) jump:t $Ii",
7398tc_3d495a39, TypeCJ>, Enc_b909d2, PredRel {
7399let Inst{0-0} = 0b0;
7400let Inst{13-8} = 0b100001;
7401let Inst{31-22} = 0b0001001111;
7402let isPredicated = 1;
7403let isPredicatedFalse = 1;
7404let isTerminator = 1;
7405let isBranch = 1;
7406let isPredicatedNew = 1;
7407let cofRelax1 = 1;
7408let cofRelax2 = 1;
7409let cofMax1 = 1;
7410let Uses = [P1];
7411let Defs = [P1, PC];
7412let BaseOpcode = "J4_cmpgtn1p1";
7413let isTaken = Inst{13};
7414let isExtendable = 1;
7415let opExtendable = 2;
7416let isExtentSigned = 1;
7417let opExtentBits = 11;
7418let opExtentAlign = 2;
7419}
7420def J4_cmpgtn1_t_jumpnv_nt : HInst<
7421(outs),
7422(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7423"if (cmp.gt($Ns8.new,#$n1)) jump:nt $Ii",
7424tc_bd8382d1, TypeNCJ>, Enc_f82302, PredRel {
7425let Inst{0-0} = 0b0;
7426let Inst{13-8} = 0b000000;
7427let Inst{19-19} = 0b0;
7428let Inst{31-22} = 0b0010011010;
7429let isPredicated = 1;
7430let isTerminator = 1;
7431let isBranch = 1;
7432let isNewValue = 1;
7433let cofMax1 = 1;
7434let isRestrictNoSlot1Store = 1;
7435let Defs = [PC];
7436let BaseOpcode = "J4_cmpgtn1r";
7437let isTaken = Inst{13};
7438let isExtendable = 1;
7439let opExtendable = 2;
7440let isExtentSigned = 1;
7441let opExtentBits = 11;
7442let opExtentAlign = 2;
7443let opNewValue = 0;
7444}
7445def J4_cmpgtn1_t_jumpnv_t : HInst<
7446(outs),
7447(ins IntRegs:$Ns8, n1Const:$n1, b30_2Imm:$Ii),
7448"if (cmp.gt($Ns8.new,#$n1)) jump:t $Ii",
7449tc_bd8382d1, TypeNCJ>, Enc_6413b6, PredRel {
7450let Inst{0-0} = 0b0;
7451let Inst{13-8} = 0b100000;
7452let Inst{19-19} = 0b0;
7453let Inst{31-22} = 0b0010011010;
7454let isPredicated = 1;
7455let isTerminator = 1;
7456let isBranch = 1;
7457let isNewValue = 1;
7458let cofMax1 = 1;
7459let isRestrictNoSlot1Store = 1;
7460let Defs = [PC];
7461let BaseOpcode = "J4_cmpgtn1r";
7462let isTaken = Inst{13};
7463let isExtendable = 1;
7464let opExtendable = 2;
7465let isExtentSigned = 1;
7466let opExtentBits = 11;
7467let opExtentAlign = 2;
7468let opNewValue = 0;
7469}
7470def J4_cmpgtn1_tp0_jump_nt : HInst<
7471(outs),
7472(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7473"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:nt $Ii",
7474tc_3d495a39, TypeCJ>, Enc_b78edd, PredRel {
7475let Inst{0-0} = 0b0;
7476let Inst{13-8} = 0b000001;
7477let Inst{31-22} = 0b0001000110;
7478let isPredicated = 1;
7479let isTerminator = 1;
7480let isBranch = 1;
7481let isPredicatedNew = 1;
7482let cofRelax1 = 1;
7483let cofRelax2 = 1;
7484let cofMax1 = 1;
7485let Uses = [P0];
7486let Defs = [P0, PC];
7487let BaseOpcode = "J4_cmpgtn1p0";
7488let isTaken = Inst{13};
7489let isExtendable = 1;
7490let opExtendable = 2;
7491let isExtentSigned = 1;
7492let opExtentBits = 11;
7493let opExtentAlign = 2;
7494}
7495def J4_cmpgtn1_tp0_jump_t : HInst<
7496(outs),
7497(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7498"p0 = cmp.gt($Rs16,#$n1); if (p0.new) jump:t $Ii",
7499tc_3d495a39, TypeCJ>, Enc_041d7b, PredRel {
7500let Inst{0-0} = 0b0;
7501let Inst{13-8} = 0b100001;
7502let Inst{31-22} = 0b0001000110;
7503let isPredicated = 1;
7504let isTerminator = 1;
7505let isBranch = 1;
7506let isPredicatedNew = 1;
7507let cofRelax1 = 1;
7508let cofRelax2 = 1;
7509let cofMax1 = 1;
7510let Uses = [P0];
7511let Defs = [P0, PC];
7512let BaseOpcode = "J4_cmpgtn1p0";
7513let isTaken = Inst{13};
7514let isExtendable = 1;
7515let opExtendable = 2;
7516let isExtentSigned = 1;
7517let opExtentBits = 11;
7518let opExtentAlign = 2;
7519}
7520def J4_cmpgtn1_tp1_jump_nt : HInst<
7521(outs),
7522(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7523"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:nt $Ii",
7524tc_3d495a39, TypeCJ>, Enc_b1e1fb, PredRel {
7525let Inst{0-0} = 0b0;
7526let Inst{13-8} = 0b000001;
7527let Inst{31-22} = 0b0001001110;
7528let isPredicated = 1;
7529let isTerminator = 1;
7530let isBranch = 1;
7531let isPredicatedNew = 1;
7532let cofRelax1 = 1;
7533let cofRelax2 = 1;
7534let cofMax1 = 1;
7535let Uses = [P1];
7536let Defs = [P1, PC];
7537let BaseOpcode = "J4_cmpgtn1p1";
7538let isTaken = Inst{13};
7539let isExtendable = 1;
7540let opExtendable = 2;
7541let isExtentSigned = 1;
7542let opExtentBits = 11;
7543let opExtentAlign = 2;
7544}
7545def J4_cmpgtn1_tp1_jump_t : HInst<
7546(outs),
7547(ins GeneralSubRegs:$Rs16, n1Const:$n1, b30_2Imm:$Ii),
7548"p1 = cmp.gt($Rs16,#$n1); if (p1.new) jump:t $Ii",
7549tc_3d495a39, TypeCJ>, Enc_178717, PredRel {
7550let Inst{0-0} = 0b0;
7551let Inst{13-8} = 0b100001;
7552let Inst{31-22} = 0b0001001110;
7553let isPredicated = 1;
7554let isTerminator = 1;
7555let isBranch = 1;
7556let isPredicatedNew = 1;
7557let cofRelax1 = 1;
7558let cofRelax2 = 1;
7559let cofMax1 = 1;
7560let Uses = [P1];
7561let Defs = [P1, PC];
7562let BaseOpcode = "J4_cmpgtn1p1";
7563let isTaken = Inst{13};
7564let isExtendable = 1;
7565let opExtendable = 2;
7566let isExtentSigned = 1;
7567let opExtentBits = 11;
7568let opExtentAlign = 2;
7569}
7570def J4_cmpgtu_f_jumpnv_nt : HInst<
7571(outs),
7572(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7573"if (!cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7574tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7575let Inst{0-0} = 0b0;
7576let Inst{13-13} = 0b0;
7577let Inst{19-19} = 0b0;
7578let Inst{31-22} = 0b0010000101;
7579let isPredicated = 1;
7580let isPredicatedFalse = 1;
7581let isTerminator = 1;
7582let isBranch = 1;
7583let isNewValue = 1;
7584let cofMax1 = 1;
7585let isRestrictNoSlot1Store = 1;
7586let Defs = [PC];
7587let BaseOpcode = "J4_cmpgtur";
7588let isTaken = Inst{13};
7589let isExtendable = 1;
7590let opExtendable = 2;
7591let isExtentSigned = 1;
7592let opExtentBits = 11;
7593let opExtentAlign = 2;
7594let opNewValue = 0;
7595}
7596def J4_cmpgtu_f_jumpnv_t : HInst<
7597(outs),
7598(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7599"if (!cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7600tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7601let Inst{0-0} = 0b0;
7602let Inst{13-13} = 0b1;
7603let Inst{19-19} = 0b0;
7604let Inst{31-22} = 0b0010000101;
7605let isPredicated = 1;
7606let isPredicatedFalse = 1;
7607let isTerminator = 1;
7608let isBranch = 1;
7609let isNewValue = 1;
7610let cofMax1 = 1;
7611let isRestrictNoSlot1Store = 1;
7612let Defs = [PC];
7613let BaseOpcode = "J4_cmpgtur";
7614let isTaken = Inst{13};
7615let isExtendable = 1;
7616let opExtendable = 2;
7617let isExtentSigned = 1;
7618let opExtentBits = 11;
7619let opExtentAlign = 2;
7620let opNewValue = 0;
7621}
7622def J4_cmpgtu_fp0_jump_nt : HInst<
7623(outs),
7624(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7625"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:nt $Ii",
7626tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7627let Inst{0-0} = 0b0;
7628let Inst{13-12} = 0b00;
7629let Inst{31-22} = 0b0001010101;
7630let isPredicated = 1;
7631let isPredicatedFalse = 1;
7632let isTerminator = 1;
7633let isBranch = 1;
7634let isPredicatedNew = 1;
7635let cofRelax1 = 1;
7636let cofRelax2 = 1;
7637let cofMax1 = 1;
7638let Uses = [P0];
7639let Defs = [P0, PC];
7640let BaseOpcode = "J4_cmpgtup0";
7641let isTaken = Inst{13};
7642let isExtendable = 1;
7643let opExtendable = 2;
7644let isExtentSigned = 1;
7645let opExtentBits = 11;
7646let opExtentAlign = 2;
7647}
7648def J4_cmpgtu_fp0_jump_t : HInst<
7649(outs),
7650(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7651"p0 = cmp.gtu($Rs16,$Rt16); if (!p0.new) jump:t $Ii",
7652tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7653let Inst{0-0} = 0b0;
7654let Inst{13-12} = 0b10;
7655let Inst{31-22} = 0b0001010101;
7656let isPredicated = 1;
7657let isPredicatedFalse = 1;
7658let isTerminator = 1;
7659let isBranch = 1;
7660let isPredicatedNew = 1;
7661let cofRelax1 = 1;
7662let cofRelax2 = 1;
7663let cofMax1 = 1;
7664let Uses = [P0];
7665let Defs = [P0, PC];
7666let BaseOpcode = "J4_cmpgtup0";
7667let isTaken = Inst{13};
7668let isExtendable = 1;
7669let opExtendable = 2;
7670let isExtentSigned = 1;
7671let opExtentBits = 11;
7672let opExtentAlign = 2;
7673}
7674def J4_cmpgtu_fp1_jump_nt : HInst<
7675(outs),
7676(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7677"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:nt $Ii",
7678tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7679let Inst{0-0} = 0b0;
7680let Inst{13-12} = 0b01;
7681let Inst{31-22} = 0b0001010101;
7682let isPredicated = 1;
7683let isPredicatedFalse = 1;
7684let isTerminator = 1;
7685let isBranch = 1;
7686let isPredicatedNew = 1;
7687let cofRelax1 = 1;
7688let cofRelax2 = 1;
7689let cofMax1 = 1;
7690let Uses = [P1];
7691let Defs = [P1, PC];
7692let BaseOpcode = "J4_cmpgtup1";
7693let isTaken = Inst{13};
7694let isExtendable = 1;
7695let opExtendable = 2;
7696let isExtentSigned = 1;
7697let opExtentBits = 11;
7698let opExtentAlign = 2;
7699}
7700def J4_cmpgtu_fp1_jump_t : HInst<
7701(outs),
7702(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7703"p1 = cmp.gtu($Rs16,$Rt16); if (!p1.new) jump:t $Ii",
7704tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7705let Inst{0-0} = 0b0;
7706let Inst{13-12} = 0b11;
7707let Inst{31-22} = 0b0001010101;
7708let isPredicated = 1;
7709let isPredicatedFalse = 1;
7710let isTerminator = 1;
7711let isBranch = 1;
7712let isPredicatedNew = 1;
7713let cofRelax1 = 1;
7714let cofRelax2 = 1;
7715let cofMax1 = 1;
7716let Uses = [P1];
7717let Defs = [P1, PC];
7718let BaseOpcode = "J4_cmpgtup1";
7719let isTaken = Inst{13};
7720let isExtendable = 1;
7721let opExtendable = 2;
7722let isExtentSigned = 1;
7723let opExtentBits = 11;
7724let opExtentAlign = 2;
7725}
7726def J4_cmpgtu_t_jumpnv_nt : HInst<
7727(outs),
7728(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7729"if (cmp.gtu($Ns8.new,$Rt32)) jump:nt $Ii",
7730tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7731let Inst{0-0} = 0b0;
7732let Inst{13-13} = 0b0;
7733let Inst{19-19} = 0b0;
7734let Inst{31-22} = 0b0010000100;
7735let isPredicated = 1;
7736let isTerminator = 1;
7737let isBranch = 1;
7738let isNewValue = 1;
7739let cofMax1 = 1;
7740let isRestrictNoSlot1Store = 1;
7741let Defs = [PC];
7742let BaseOpcode = "J4_cmpgtur";
7743let isTaken = Inst{13};
7744let isExtendable = 1;
7745let opExtendable = 2;
7746let isExtentSigned = 1;
7747let opExtentBits = 11;
7748let opExtentAlign = 2;
7749let opNewValue = 0;
7750}
7751def J4_cmpgtu_t_jumpnv_t : HInst<
7752(outs),
7753(ins IntRegs:$Ns8, IntRegs:$Rt32, b30_2Imm:$Ii),
7754"if (cmp.gtu($Ns8.new,$Rt32)) jump:t $Ii",
7755tc_9bfd761f, TypeNCJ>, Enc_c9a18e, PredRel {
7756let Inst{0-0} = 0b0;
7757let Inst{13-13} = 0b1;
7758let Inst{19-19} = 0b0;
7759let Inst{31-22} = 0b0010000100;
7760let isPredicated = 1;
7761let isTerminator = 1;
7762let isBranch = 1;
7763let isNewValue = 1;
7764let cofMax1 = 1;
7765let isRestrictNoSlot1Store = 1;
7766let Defs = [PC];
7767let BaseOpcode = "J4_cmpgtur";
7768let isTaken = Inst{13};
7769let isExtendable = 1;
7770let opExtendable = 2;
7771let isExtentSigned = 1;
7772let opExtentBits = 11;
7773let opExtentAlign = 2;
7774let opNewValue = 0;
7775}
7776def J4_cmpgtu_tp0_jump_nt : HInst<
7777(outs),
7778(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7779"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:nt $Ii",
7780tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7781let Inst{0-0} = 0b0;
7782let Inst{13-12} = 0b00;
7783let Inst{31-22} = 0b0001010100;
7784let isPredicated = 1;
7785let isTerminator = 1;
7786let isBranch = 1;
7787let isPredicatedNew = 1;
7788let cofRelax1 = 1;
7789let cofRelax2 = 1;
7790let cofMax1 = 1;
7791let Uses = [P0];
7792let Defs = [P0, PC];
7793let BaseOpcode = "J4_cmpgtup0";
7794let isTaken = Inst{13};
7795let isExtendable = 1;
7796let opExtendable = 2;
7797let isExtentSigned = 1;
7798let opExtentBits = 11;
7799let opExtentAlign = 2;
7800}
7801def J4_cmpgtu_tp0_jump_t : HInst<
7802(outs),
7803(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7804"p0 = cmp.gtu($Rs16,$Rt16); if (p0.new) jump:t $Ii",
7805tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7806let Inst{0-0} = 0b0;
7807let Inst{13-12} = 0b10;
7808let Inst{31-22} = 0b0001010100;
7809let isPredicated = 1;
7810let isTerminator = 1;
7811let isBranch = 1;
7812let isPredicatedNew = 1;
7813let cofRelax1 = 1;
7814let cofRelax2 = 1;
7815let cofMax1 = 1;
7816let Uses = [P0];
7817let Defs = [P0, PC];
7818let BaseOpcode = "J4_cmpgtup0";
7819let isTaken = Inst{13};
7820let isExtendable = 1;
7821let opExtendable = 2;
7822let isExtentSigned = 1;
7823let opExtentBits = 11;
7824let opExtentAlign = 2;
7825}
7826def J4_cmpgtu_tp1_jump_nt : HInst<
7827(outs),
7828(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7829"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:nt $Ii",
7830tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7831let Inst{0-0} = 0b0;
7832let Inst{13-12} = 0b01;
7833let Inst{31-22} = 0b0001010100;
7834let isPredicated = 1;
7835let isTerminator = 1;
7836let isBranch = 1;
7837let isPredicatedNew = 1;
7838let cofRelax1 = 1;
7839let cofRelax2 = 1;
7840let cofMax1 = 1;
7841let Uses = [P1];
7842let Defs = [P1, PC];
7843let BaseOpcode = "J4_cmpgtup1";
7844let isTaken = Inst{13};
7845let isExtendable = 1;
7846let opExtendable = 2;
7847let isExtentSigned = 1;
7848let opExtentBits = 11;
7849let opExtentAlign = 2;
7850}
7851def J4_cmpgtu_tp1_jump_t : HInst<
7852(outs),
7853(ins GeneralSubRegs:$Rs16, GeneralSubRegs:$Rt16, b30_2Imm:$Ii),
7854"p1 = cmp.gtu($Rs16,$Rt16); if (p1.new) jump:t $Ii",
7855tc_56336eb0, TypeCJ>, Enc_6a5972, PredRel {
7856let Inst{0-0} = 0b0;
7857let Inst{13-12} = 0b11;
7858let Inst{31-22} = 0b0001010100;
7859let isPredicated = 1;
7860let isTerminator = 1;
7861let isBranch = 1;
7862let isPredicatedNew = 1;
7863let cofRelax1 = 1;
7864let cofRelax2 = 1;
7865let cofMax1 = 1;
7866let Uses = [P1];
7867let Defs = [P1, PC];
7868let BaseOpcode = "J4_cmpgtup1";
7869let isTaken = Inst{13};
7870let isExtendable = 1;
7871let opExtendable = 2;
7872let isExtentSigned = 1;
7873let opExtentBits = 11;
7874let opExtentAlign = 2;
7875}
7876def J4_cmpgtui_f_jumpnv_nt : HInst<
7877(outs),
7878(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7879"if (!cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
7880tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7881let Inst{0-0} = 0b0;
7882let Inst{13-13} = 0b0;
7883let Inst{19-19} = 0b0;
7884let Inst{31-22} = 0b0010010101;
7885let isPredicated = 1;
7886let isPredicatedFalse = 1;
7887let isTerminator = 1;
7888let isBranch = 1;
7889let isNewValue = 1;
7890let cofMax1 = 1;
7891let isRestrictNoSlot1Store = 1;
7892let Defs = [PC];
7893let BaseOpcode = "J4_cmpgtuir";
7894let isTaken = Inst{13};
7895let isExtendable = 1;
7896let opExtendable = 2;
7897let isExtentSigned = 1;
7898let opExtentBits = 11;
7899let opExtentAlign = 2;
7900let opNewValue = 0;
7901}
7902def J4_cmpgtui_f_jumpnv_t : HInst<
7903(outs),
7904(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
7905"if (!cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
7906tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
7907let Inst{0-0} = 0b0;
7908let Inst{13-13} = 0b1;
7909let Inst{19-19} = 0b0;
7910let Inst{31-22} = 0b0010010101;
7911let isPredicated = 1;
7912let isPredicatedFalse = 1;
7913let isTerminator = 1;
7914let isBranch = 1;
7915let isNewValue = 1;
7916let cofMax1 = 1;
7917let isRestrictNoSlot1Store = 1;
7918let Defs = [PC];
7919let BaseOpcode = "J4_cmpgtuir";
7920let isTaken = Inst{13};
7921let isExtendable = 1;
7922let opExtendable = 2;
7923let isExtentSigned = 1;
7924let opExtentBits = 11;
7925let opExtentAlign = 2;
7926let opNewValue = 0;
7927}
7928def J4_cmpgtui_fp0_jump_nt : HInst<
7929(outs),
7930(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7931"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:nt $Ii",
7932tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7933let Inst{0-0} = 0b0;
7934let Inst{13-13} = 0b0;
7935let Inst{31-22} = 0b0001000101;
7936let isPredicated = 1;
7937let isPredicatedFalse = 1;
7938let isTerminator = 1;
7939let isBranch = 1;
7940let isPredicatedNew = 1;
7941let cofRelax1 = 1;
7942let cofRelax2 = 1;
7943let cofMax1 = 1;
7944let Uses = [P0];
7945let Defs = [P0, PC];
7946let BaseOpcode = "J4_cmpgtuip0";
7947let isTaken = Inst{13};
7948let isExtendable = 1;
7949let opExtendable = 2;
7950let isExtentSigned = 1;
7951let opExtentBits = 11;
7952let opExtentAlign = 2;
7953}
7954def J4_cmpgtui_fp0_jump_t : HInst<
7955(outs),
7956(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7957"p0 = cmp.gtu($Rs16,#$II); if (!p0.new) jump:t $Ii",
7958tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7959let Inst{0-0} = 0b0;
7960let Inst{13-13} = 0b1;
7961let Inst{31-22} = 0b0001000101;
7962let isPredicated = 1;
7963let isPredicatedFalse = 1;
7964let isTerminator = 1;
7965let isBranch = 1;
7966let isPredicatedNew = 1;
7967let cofRelax1 = 1;
7968let cofRelax2 = 1;
7969let cofMax1 = 1;
7970let Uses = [P0];
7971let Defs = [P0, PC];
7972let BaseOpcode = "J4_cmpgtuip0";
7973let isTaken = Inst{13};
7974let isExtendable = 1;
7975let opExtendable = 2;
7976let isExtentSigned = 1;
7977let opExtentBits = 11;
7978let opExtentAlign = 2;
7979}
7980def J4_cmpgtui_fp1_jump_nt : HInst<
7981(outs),
7982(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
7983"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:nt $Ii",
7984tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
7985let Inst{0-0} = 0b0;
7986let Inst{13-13} = 0b0;
7987let Inst{31-22} = 0b0001001101;
7988let isPredicated = 1;
7989let isPredicatedFalse = 1;
7990let isTerminator = 1;
7991let isBranch = 1;
7992let isPredicatedNew = 1;
7993let cofRelax1 = 1;
7994let cofRelax2 = 1;
7995let cofMax1 = 1;
7996let Uses = [P1];
7997let Defs = [P1, PC];
7998let BaseOpcode = "J4_cmpgtuip1";
7999let isTaken = Inst{13};
8000let isExtendable = 1;
8001let opExtendable = 2;
8002let isExtentSigned = 1;
8003let opExtentBits = 11;
8004let opExtentAlign = 2;
8005}
8006def J4_cmpgtui_fp1_jump_t : HInst<
8007(outs),
8008(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8009"p1 = cmp.gtu($Rs16,#$II); if (!p1.new) jump:t $Ii",
8010tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8011let Inst{0-0} = 0b0;
8012let Inst{13-13} = 0b1;
8013let Inst{31-22} = 0b0001001101;
8014let isPredicated = 1;
8015let isPredicatedFalse = 1;
8016let isTerminator = 1;
8017let isBranch = 1;
8018let isPredicatedNew = 1;
8019let cofRelax1 = 1;
8020let cofRelax2 = 1;
8021let cofMax1 = 1;
8022let Uses = [P1];
8023let Defs = [P1, PC];
8024let BaseOpcode = "J4_cmpgtuip1";
8025let isTaken = Inst{13};
8026let isExtendable = 1;
8027let opExtendable = 2;
8028let isExtentSigned = 1;
8029let opExtentBits = 11;
8030let opExtentAlign = 2;
8031}
8032def J4_cmpgtui_t_jumpnv_nt : HInst<
8033(outs),
8034(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8035"if (cmp.gtu($Ns8.new,#$II)) jump:nt $Ii",
8036tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
8037let Inst{0-0} = 0b0;
8038let Inst{13-13} = 0b0;
8039let Inst{19-19} = 0b0;
8040let Inst{31-22} = 0b0010010100;
8041let isPredicated = 1;
8042let isTerminator = 1;
8043let isBranch = 1;
8044let isNewValue = 1;
8045let cofMax1 = 1;
8046let isRestrictNoSlot1Store = 1;
8047let Defs = [PC];
8048let BaseOpcode = "J4_cmpgtuir";
8049let isTaken = Inst{13};
8050let isExtendable = 1;
8051let opExtendable = 2;
8052let isExtentSigned = 1;
8053let opExtentBits = 11;
8054let opExtentAlign = 2;
8055let opNewValue = 0;
8056}
8057def J4_cmpgtui_t_jumpnv_t : HInst<
8058(outs),
8059(ins IntRegs:$Ns8, u5_0Imm:$II, b30_2Imm:$Ii),
8060"if (cmp.gtu($Ns8.new,#$II)) jump:t $Ii",
8061tc_bd8382d1, TypeNCJ>, Enc_eafd18, PredRel {
8062let Inst{0-0} = 0b0;
8063let Inst{13-13} = 0b1;
8064let Inst{19-19} = 0b0;
8065let Inst{31-22} = 0b0010010100;
8066let isPredicated = 1;
8067let isTerminator = 1;
8068let isBranch = 1;
8069let isNewValue = 1;
8070let cofMax1 = 1;
8071let isRestrictNoSlot1Store = 1;
8072let Defs = [PC];
8073let BaseOpcode = "J4_cmpgtuir";
8074let isTaken = Inst{13};
8075let isExtendable = 1;
8076let opExtendable = 2;
8077let isExtentSigned = 1;
8078let opExtentBits = 11;
8079let opExtentAlign = 2;
8080let opNewValue = 0;
8081}
8082def J4_cmpgtui_tp0_jump_nt : HInst<
8083(outs),
8084(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8085"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:nt $Ii",
8086tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8087let Inst{0-0} = 0b0;
8088let Inst{13-13} = 0b0;
8089let Inst{31-22} = 0b0001000100;
8090let isPredicated = 1;
8091let isTerminator = 1;
8092let isBranch = 1;
8093let isPredicatedNew = 1;
8094let cofRelax1 = 1;
8095let cofRelax2 = 1;
8096let cofMax1 = 1;
8097let Uses = [P0];
8098let Defs = [P0, PC];
8099let BaseOpcode = "J4_cmpgtuip0";
8100let isTaken = Inst{13};
8101let isExtendable = 1;
8102let opExtendable = 2;
8103let isExtentSigned = 1;
8104let opExtentBits = 11;
8105let opExtentAlign = 2;
8106}
8107def J4_cmpgtui_tp0_jump_t : HInst<
8108(outs),
8109(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8110"p0 = cmp.gtu($Rs16,#$II); if (p0.new) jump:t $Ii",
8111tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8112let Inst{0-0} = 0b0;
8113let Inst{13-13} = 0b1;
8114let Inst{31-22} = 0b0001000100;
8115let isPredicated = 1;
8116let isTerminator = 1;
8117let isBranch = 1;
8118let isPredicatedNew = 1;
8119let cofRelax1 = 1;
8120let cofRelax2 = 1;
8121let cofMax1 = 1;
8122let Uses = [P0];
8123let Defs = [P0, PC];
8124let BaseOpcode = "J4_cmpgtuip0";
8125let isTaken = Inst{13};
8126let isExtendable = 1;
8127let opExtendable = 2;
8128let isExtentSigned = 1;
8129let opExtentBits = 11;
8130let opExtentAlign = 2;
8131}
8132def J4_cmpgtui_tp1_jump_nt : HInst<
8133(outs),
8134(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8135"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:nt $Ii",
8136tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8137let Inst{0-0} = 0b0;
8138let Inst{13-13} = 0b0;
8139let Inst{31-22} = 0b0001001100;
8140let isPredicated = 1;
8141let isTerminator = 1;
8142let isBranch = 1;
8143let isPredicatedNew = 1;
8144let cofRelax1 = 1;
8145let cofRelax2 = 1;
8146let cofMax1 = 1;
8147let Uses = [P1];
8148let Defs = [P1, PC];
8149let BaseOpcode = "J4_cmpgtuip1";
8150let isTaken = Inst{13};
8151let isExtendable = 1;
8152let opExtendable = 2;
8153let isExtentSigned = 1;
8154let opExtentBits = 11;
8155let opExtentAlign = 2;
8156}
8157def J4_cmpgtui_tp1_jump_t : HInst<
8158(outs),
8159(ins GeneralSubRegs:$Rs16, u5_0Imm:$II, b30_2Imm:$Ii),
8160"p1 = cmp.gtu($Rs16,#$II); if (p1.new) jump:t $Ii",
8161tc_3d495a39, TypeCJ>, Enc_14d27a, PredRel {
8162let Inst{0-0} = 0b0;
8163let Inst{13-13} = 0b1;
8164let Inst{31-22} = 0b0001001100;
8165let isPredicated = 1;
8166let isTerminator = 1;
8167let isBranch = 1;
8168let isPredicatedNew = 1;
8169let cofRelax1 = 1;
8170let cofRelax2 = 1;
8171let cofMax1 = 1;
8172let Uses = [P1];
8173let Defs = [P1, PC];
8174let BaseOpcode = "J4_cmpgtuip1";
8175let isTaken = Inst{13};
8176let isExtendable = 1;
8177let opExtendable = 2;
8178let isExtentSigned = 1;
8179let opExtentBits = 11;
8180let opExtentAlign = 2;
8181}
8182def J4_cmplt_f_jumpnv_nt : HInst<
8183(outs),
8184(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8185"if (!cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8186tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8187let Inst{0-0} = 0b0;
8188let Inst{13-13} = 0b0;
8189let Inst{19-19} = 0b0;
8190let Inst{31-22} = 0b0010000111;
8191let isPredicated = 1;
8192let isPredicatedFalse = 1;
8193let isTerminator = 1;
8194let isBranch = 1;
8195let isNewValue = 1;
8196let cofMax1 = 1;
8197let isRestrictNoSlot1Store = 1;
8198let Defs = [PC];
8199let BaseOpcode = "J4_cmpltr";
8200let isTaken = Inst{13};
8201let isExtendable = 1;
8202let opExtendable = 2;
8203let isExtentSigned = 1;
8204let opExtentBits = 11;
8205let opExtentAlign = 2;
8206let opNewValue = 1;
8207}
8208def J4_cmplt_f_jumpnv_t : HInst<
8209(outs),
8210(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8211"if (!cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8212tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8213let Inst{0-0} = 0b0;
8214let Inst{13-13} = 0b1;
8215let Inst{19-19} = 0b0;
8216let Inst{31-22} = 0b0010000111;
8217let isPredicated = 1;
8218let isPredicatedFalse = 1;
8219let isTerminator = 1;
8220let isBranch = 1;
8221let isNewValue = 1;
8222let cofMax1 = 1;
8223let isRestrictNoSlot1Store = 1;
8224let Defs = [PC];
8225let BaseOpcode = "J4_cmpltr";
8226let isTaken = Inst{13};
8227let isExtendable = 1;
8228let opExtendable = 2;
8229let isExtentSigned = 1;
8230let opExtentBits = 11;
8231let opExtentAlign = 2;
8232let opNewValue = 1;
8233}
8234def J4_cmplt_t_jumpnv_nt : HInst<
8235(outs),
8236(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8237"if (cmp.gt($Rt32,$Ns8.new)) jump:nt $Ii",
8238tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8239let Inst{0-0} = 0b0;
8240let Inst{13-13} = 0b0;
8241let Inst{19-19} = 0b0;
8242let Inst{31-22} = 0b0010000110;
8243let isPredicated = 1;
8244let isTerminator = 1;
8245let isBranch = 1;
8246let isNewValue = 1;
8247let cofMax1 = 1;
8248let isRestrictNoSlot1Store = 1;
8249let Defs = [PC];
8250let BaseOpcode = "J4_cmpltr";
8251let isTaken = Inst{13};
8252let isExtendable = 1;
8253let opExtendable = 2;
8254let isExtentSigned = 1;
8255let opExtentBits = 11;
8256let opExtentAlign = 2;
8257let opNewValue = 1;
8258}
8259def J4_cmplt_t_jumpnv_t : HInst<
8260(outs),
8261(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8262"if (cmp.gt($Rt32,$Ns8.new)) jump:t $Ii",
8263tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8264let Inst{0-0} = 0b0;
8265let Inst{13-13} = 0b1;
8266let Inst{19-19} = 0b0;
8267let Inst{31-22} = 0b0010000110;
8268let isPredicated = 1;
8269let isTerminator = 1;
8270let isBranch = 1;
8271let isNewValue = 1;
8272let cofMax1 = 1;
8273let isRestrictNoSlot1Store = 1;
8274let Defs = [PC];
8275let BaseOpcode = "J4_cmpltr";
8276let isTaken = Inst{13};
8277let isExtendable = 1;
8278let opExtendable = 2;
8279let isExtentSigned = 1;
8280let opExtentBits = 11;
8281let opExtentAlign = 2;
8282let opNewValue = 1;
8283}
8284def J4_cmpltu_f_jumpnv_nt : HInst<
8285(outs),
8286(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8287"if (!cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8288tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8289let Inst{0-0} = 0b0;
8290let Inst{13-13} = 0b0;
8291let Inst{19-19} = 0b0;
8292let Inst{31-22} = 0b0010001001;
8293let isPredicated = 1;
8294let isPredicatedFalse = 1;
8295let isTerminator = 1;
8296let isBranch = 1;
8297let isNewValue = 1;
8298let cofMax1 = 1;
8299let isRestrictNoSlot1Store = 1;
8300let Defs = [PC];
8301let BaseOpcode = "J4_cmpltur";
8302let isTaken = Inst{13};
8303let isExtendable = 1;
8304let opExtendable = 2;
8305let isExtentSigned = 1;
8306let opExtentBits = 11;
8307let opExtentAlign = 2;
8308let opNewValue = 1;
8309}
8310def J4_cmpltu_f_jumpnv_t : HInst<
8311(outs),
8312(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8313"if (!cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8314tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8315let Inst{0-0} = 0b0;
8316let Inst{13-13} = 0b1;
8317let Inst{19-19} = 0b0;
8318let Inst{31-22} = 0b0010001001;
8319let isPredicated = 1;
8320let isPredicatedFalse = 1;
8321let isTerminator = 1;
8322let isBranch = 1;
8323let isNewValue = 1;
8324let cofMax1 = 1;
8325let isRestrictNoSlot1Store = 1;
8326let Defs = [PC];
8327let BaseOpcode = "J4_cmpltur";
8328let isTaken = Inst{13};
8329let isExtendable = 1;
8330let opExtendable = 2;
8331let isExtentSigned = 1;
8332let opExtentBits = 11;
8333let opExtentAlign = 2;
8334let opNewValue = 1;
8335}
8336def J4_cmpltu_t_jumpnv_nt : HInst<
8337(outs),
8338(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8339"if (cmp.gtu($Rt32,$Ns8.new)) jump:nt $Ii",
8340tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8341let Inst{0-0} = 0b0;
8342let Inst{13-13} = 0b0;
8343let Inst{19-19} = 0b0;
8344let Inst{31-22} = 0b0010001000;
8345let isPredicated = 1;
8346let isTerminator = 1;
8347let isBranch = 1;
8348let isNewValue = 1;
8349let cofMax1 = 1;
8350let isRestrictNoSlot1Store = 1;
8351let Defs = [PC];
8352let BaseOpcode = "J4_cmpltur";
8353let isTaken = Inst{13};
8354let isExtendable = 1;
8355let opExtendable = 2;
8356let isExtentSigned = 1;
8357let opExtentBits = 11;
8358let opExtentAlign = 2;
8359let opNewValue = 1;
8360}
8361def J4_cmpltu_t_jumpnv_t : HInst<
8362(outs),
8363(ins IntRegs:$Rt32, IntRegs:$Ns8, b30_2Imm:$Ii),
8364"if (cmp.gtu($Rt32,$Ns8.new)) jump:t $Ii",
8365tc_b343892a, TypeNCJ>, Enc_5de85f, PredRel {
8366let Inst{0-0} = 0b0;
8367let Inst{13-13} = 0b1;
8368let Inst{19-19} = 0b0;
8369let Inst{31-22} = 0b0010001000;
8370let isPredicated = 1;
8371let isTerminator = 1;
8372let isBranch = 1;
8373let isNewValue = 1;
8374let cofMax1 = 1;
8375let isRestrictNoSlot1Store = 1;
8376let Defs = [PC];
8377let BaseOpcode = "J4_cmpltur";
8378let isTaken = Inst{13};
8379let isExtendable = 1;
8380let opExtendable = 2;
8381let isExtentSigned = 1;
8382let opExtentBits = 11;
8383let opExtentAlign = 2;
8384let opNewValue = 1;
8385}
8386def J4_hintjumpr : HInst<
8387(outs),
8388(ins IntRegs:$Rs32),
8389"hintjr($Rs32)",
8390tc_d5b7b0c1, TypeJ>, Enc_ecbcc8 {
8391let Inst{13-0} = 0b00000000000000;
8392let Inst{31-21} = 0b01010010101;
8393let isTerminator = 1;
8394let isIndirectBranch = 1;
8395let isBranch = 1;
8396let cofMax1 = 1;
8397}
8398def J4_jumpseti : HInst<
8399(outs GeneralSubRegs:$Rd16),
8400(ins u6_0Imm:$II, b30_2Imm:$Ii),
8401"$Rd16 = #$II ; jump $Ii",
8402tc_0663f615, TypeCJ>, Enc_9e4c3f {
8403let Inst{0-0} = 0b0;
8404let Inst{31-22} = 0b0001011000;
8405let hasNewValue = 1;
8406let opNewValue = 0;
8407let isTerminator = 1;
8408let isBranch = 1;
8409let cofRelax2 = 1;
8410let cofMax1 = 1;
8411let Defs = [PC];
8412let isExtendable = 1;
8413let opExtendable = 2;
8414let isExtentSigned = 1;
8415let opExtentBits = 11;
8416let opExtentAlign = 2;
8417}
8418def J4_jumpsetr : HInst<
8419(outs GeneralSubRegs:$Rd16),
8420(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8421"$Rd16 = $Rs16 ; jump $Ii",
8422tc_0663f615, TypeCJ>, Enc_66bce1 {
8423let Inst{0-0} = 0b0;
8424let Inst{13-12} = 0b00;
8425let Inst{31-22} = 0b0001011100;
8426let hasNewValue = 1;
8427let opNewValue = 0;
8428let isTerminator = 1;
8429let isBranch = 1;
8430let cofRelax2 = 1;
8431let cofMax1 = 1;
8432let Defs = [PC];
8433let isExtendable = 1;
8434let opExtendable = 2;
8435let isExtentSigned = 1;
8436let opExtentBits = 11;
8437let opExtentAlign = 2;
8438}
8439def J4_tstbit0_f_jumpnv_nt : HInst<
8440(outs),
8441(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8442"if (!tstbit($Ns8.new,#0)) jump:nt $Ii",
8443tc_8c945be0, TypeNCJ>, Enc_69d63b {
8444let Inst{0-0} = 0b0;
8445let Inst{13-8} = 0b000000;
8446let Inst{19-19} = 0b0;
8447let Inst{31-22} = 0b0010010111;
8448let isPredicated = 1;
8449let isPredicatedFalse = 1;
8450let isTerminator = 1;
8451let isBranch = 1;
8452let isNewValue = 1;
8453let cofMax1 = 1;
8454let isRestrictNoSlot1Store = 1;
8455let Defs = [PC];
8456let isTaken = Inst{13};
8457let isExtendable = 1;
8458let opExtendable = 1;
8459let isExtentSigned = 1;
8460let opExtentBits = 11;
8461let opExtentAlign = 2;
8462let opNewValue = 0;
8463}
8464def J4_tstbit0_f_jumpnv_t : HInst<
8465(outs),
8466(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8467"if (!tstbit($Ns8.new,#0)) jump:t $Ii",
8468tc_8c945be0, TypeNCJ>, Enc_69d63b {
8469let Inst{0-0} = 0b0;
8470let Inst{13-8} = 0b100000;
8471let Inst{19-19} = 0b0;
8472let Inst{31-22} = 0b0010010111;
8473let isPredicated = 1;
8474let isPredicatedFalse = 1;
8475let isTerminator = 1;
8476let isBranch = 1;
8477let isNewValue = 1;
8478let cofMax1 = 1;
8479let isRestrictNoSlot1Store = 1;
8480let Defs = [PC];
8481let isTaken = Inst{13};
8482let isExtendable = 1;
8483let opExtendable = 1;
8484let isExtentSigned = 1;
8485let opExtentBits = 11;
8486let opExtentAlign = 2;
8487let opNewValue = 0;
8488}
8489def J4_tstbit0_fp0_jump_nt : HInst<
8490(outs),
8491(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8492"p0 = tstbit($Rs16,#0); if (!p0.new) jump:nt $Ii",
8493tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8494let Inst{0-0} = 0b0;
8495let Inst{13-8} = 0b000011;
8496let Inst{31-22} = 0b0001000111;
8497let isPredicated = 1;
8498let isPredicatedFalse = 1;
8499let isTerminator = 1;
8500let isBranch = 1;
8501let isPredicatedNew = 1;
8502let cofRelax1 = 1;
8503let cofRelax2 = 1;
8504let cofMax1 = 1;
8505let Uses = [P0];
8506let Defs = [P0, PC];
8507let isTaken = Inst{13};
8508let isExtendable = 1;
8509let opExtendable = 1;
8510let isExtentSigned = 1;
8511let opExtentBits = 11;
8512let opExtentAlign = 2;
8513}
8514def J4_tstbit0_fp0_jump_t : HInst<
8515(outs),
8516(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8517"p0 = tstbit($Rs16,#0); if (!p0.new) jump:t $Ii",
8518tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8519let Inst{0-0} = 0b0;
8520let Inst{13-8} = 0b100011;
8521let Inst{31-22} = 0b0001000111;
8522let isPredicated = 1;
8523let isPredicatedFalse = 1;
8524let isTerminator = 1;
8525let isBranch = 1;
8526let isPredicatedNew = 1;
8527let cofRelax1 = 1;
8528let cofRelax2 = 1;
8529let cofMax1 = 1;
8530let Uses = [P0];
8531let Defs = [P0, PC];
8532let isTaken = Inst{13};
8533let isExtendable = 1;
8534let opExtendable = 1;
8535let isExtentSigned = 1;
8536let opExtentBits = 11;
8537let opExtentAlign = 2;
8538}
8539def J4_tstbit0_fp1_jump_nt : HInst<
8540(outs),
8541(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8542"p1 = tstbit($Rs16,#0); if (!p1.new) jump:nt $Ii",
8543tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8544let Inst{0-0} = 0b0;
8545let Inst{13-8} = 0b000011;
8546let Inst{31-22} = 0b0001001111;
8547let isPredicated = 1;
8548let isPredicatedFalse = 1;
8549let isTerminator = 1;
8550let isBranch = 1;
8551let isPredicatedNew = 1;
8552let cofRelax1 = 1;
8553let cofRelax2 = 1;
8554let cofMax1 = 1;
8555let Uses = [P1];
8556let Defs = [P1, PC];
8557let isTaken = Inst{13};
8558let isExtendable = 1;
8559let opExtendable = 1;
8560let isExtentSigned = 1;
8561let opExtentBits = 11;
8562let opExtentAlign = 2;
8563}
8564def J4_tstbit0_fp1_jump_t : HInst<
8565(outs),
8566(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8567"p1 = tstbit($Rs16,#0); if (!p1.new) jump:t $Ii",
8568tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8569let Inst{0-0} = 0b0;
8570let Inst{13-8} = 0b100011;
8571let Inst{31-22} = 0b0001001111;
8572let isPredicated = 1;
8573let isPredicatedFalse = 1;
8574let isTerminator = 1;
8575let isBranch = 1;
8576let isPredicatedNew = 1;
8577let cofRelax1 = 1;
8578let cofRelax2 = 1;
8579let cofMax1 = 1;
8580let Uses = [P1];
8581let Defs = [P1, PC];
8582let isTaken = Inst{13};
8583let isExtendable = 1;
8584let opExtendable = 1;
8585let isExtentSigned = 1;
8586let opExtentBits = 11;
8587let opExtentAlign = 2;
8588}
8589def J4_tstbit0_t_jumpnv_nt : HInst<
8590(outs),
8591(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8592"if (tstbit($Ns8.new,#0)) jump:nt $Ii",
8593tc_8c945be0, TypeNCJ>, Enc_69d63b {
8594let Inst{0-0} = 0b0;
8595let Inst{13-8} = 0b000000;
8596let Inst{19-19} = 0b0;
8597let Inst{31-22} = 0b0010010110;
8598let isPredicated = 1;
8599let isTerminator = 1;
8600let isBranch = 1;
8601let isNewValue = 1;
8602let cofMax1 = 1;
8603let isRestrictNoSlot1Store = 1;
8604let Defs = [PC];
8605let isTaken = Inst{13};
8606let isExtendable = 1;
8607let opExtendable = 1;
8608let isExtentSigned = 1;
8609let opExtentBits = 11;
8610let opExtentAlign = 2;
8611let opNewValue = 0;
8612}
8613def J4_tstbit0_t_jumpnv_t : HInst<
8614(outs),
8615(ins IntRegs:$Ns8, b30_2Imm:$Ii),
8616"if (tstbit($Ns8.new,#0)) jump:t $Ii",
8617tc_8c945be0, TypeNCJ>, Enc_69d63b {
8618let Inst{0-0} = 0b0;
8619let Inst{13-8} = 0b100000;
8620let Inst{19-19} = 0b0;
8621let Inst{31-22} = 0b0010010110;
8622let isPredicated = 1;
8623let isTerminator = 1;
8624let isBranch = 1;
8625let isNewValue = 1;
8626let cofMax1 = 1;
8627let isRestrictNoSlot1Store = 1;
8628let Defs = [PC];
8629let isTaken = Inst{13};
8630let isExtendable = 1;
8631let opExtendable = 1;
8632let isExtentSigned = 1;
8633let opExtentBits = 11;
8634let opExtentAlign = 2;
8635let opNewValue = 0;
8636}
8637def J4_tstbit0_tp0_jump_nt : HInst<
8638(outs),
8639(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8640"p0 = tstbit($Rs16,#0); if (p0.new) jump:nt $Ii",
8641tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8642let Inst{0-0} = 0b0;
8643let Inst{13-8} = 0b000011;
8644let Inst{31-22} = 0b0001000110;
8645let isPredicated = 1;
8646let isTerminator = 1;
8647let isBranch = 1;
8648let isPredicatedNew = 1;
8649let cofRelax1 = 1;
8650let cofRelax2 = 1;
8651let cofMax1 = 1;
8652let Uses = [P0];
8653let Defs = [P0, PC];
8654let isTaken = Inst{13};
8655let isExtendable = 1;
8656let opExtendable = 1;
8657let isExtentSigned = 1;
8658let opExtentBits = 11;
8659let opExtentAlign = 2;
8660}
8661def J4_tstbit0_tp0_jump_t : HInst<
8662(outs),
8663(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8664"p0 = tstbit($Rs16,#0); if (p0.new) jump:t $Ii",
8665tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8666let Inst{0-0} = 0b0;
8667let Inst{13-8} = 0b100011;
8668let Inst{31-22} = 0b0001000110;
8669let isPredicated = 1;
8670let isTerminator = 1;
8671let isBranch = 1;
8672let isPredicatedNew = 1;
8673let cofRelax1 = 1;
8674let cofRelax2 = 1;
8675let cofMax1 = 1;
8676let Uses = [P0];
8677let Defs = [P0, PC];
8678let isTaken = Inst{13};
8679let isExtendable = 1;
8680let opExtendable = 1;
8681let isExtentSigned = 1;
8682let opExtentBits = 11;
8683let opExtentAlign = 2;
8684}
8685def J4_tstbit0_tp1_jump_nt : HInst<
8686(outs),
8687(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8688"p1 = tstbit($Rs16,#0); if (p1.new) jump:nt $Ii",
8689tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8690let Inst{0-0} = 0b0;
8691let Inst{13-8} = 0b000011;
8692let Inst{31-22} = 0b0001001110;
8693let isPredicated = 1;
8694let isTerminator = 1;
8695let isBranch = 1;
8696let isPredicatedNew = 1;
8697let cofRelax1 = 1;
8698let cofRelax2 = 1;
8699let cofMax1 = 1;
8700let Uses = [P1];
8701let Defs = [P1, PC];
8702let isTaken = Inst{13};
8703let isExtendable = 1;
8704let opExtendable = 1;
8705let isExtentSigned = 1;
8706let opExtentBits = 11;
8707let opExtentAlign = 2;
8708}
8709def J4_tstbit0_tp1_jump_t : HInst<
8710(outs),
8711(ins GeneralSubRegs:$Rs16, b30_2Imm:$Ii),
8712"p1 = tstbit($Rs16,#0); if (p1.new) jump:t $Ii",
8713tc_2332b92e, TypeCJ>, Enc_ad1c74 {
8714let Inst{0-0} = 0b0;
8715let Inst{13-8} = 0b100011;
8716let Inst{31-22} = 0b0001001110;
8717let isPredicated = 1;
8718let isTerminator = 1;
8719let isBranch = 1;
8720let isPredicatedNew = 1;
8721let cofRelax1 = 1;
8722let cofRelax2 = 1;
8723let cofMax1 = 1;
8724let Uses = [P1];
8725let Defs = [P1, PC];
8726let isTaken = Inst{13};
8727let isExtendable = 1;
8728let opExtendable = 1;
8729let isExtentSigned = 1;
8730let opExtentBits = 11;
8731let opExtentAlign = 2;
8732}
8733def L2_deallocframe : HInst<
8734(outs DoubleRegs:$Rdd32),
8735(ins IntRegs:$Rs32),
8736"$Rdd32 = deallocframe($Rs32):raw",
8737tc_15aa71c5, TypeLD>, Enc_3a3d62 {
8738let Inst{13-5} = 0b000000000;
8739let Inst{31-21} = 0b10010000000;
8740let accessSize = DoubleWordAccess;
8741let mayLoad = 1;
8742let Uses = [FRAMEKEY];
8743let Defs = [R29];
8744}
8745def L2_loadalignb_io : HInst<
8746(outs DoubleRegs:$Ryy32),
8747(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s32_0Imm:$Ii),
8748"$Ryy32 = memb_fifo($Rs32+#$Ii)",
8749tc_5ef37dc4, TypeLD>, Enc_a27588 {
8750let Inst{24-21} = 0b0100;
8751let Inst{31-27} = 0b10010;
8752let addrMode = BaseImmOffset;
8753let accessSize = ByteAccess;
8754let mayLoad = 1;
8755let isExtendable = 1;
8756let opExtendable = 3;
8757let isExtentSigned = 1;
8758let opExtentBits = 11;
8759let opExtentAlign = 0;
8760let Constraints = "$Ryy32 = $Ryy32in";
8761}
8762def L2_loadalignb_pbr : HInst<
8763(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8764(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8765"$Ryy32 = memb_fifo($Rx32++$Mu2:brev)",
8766tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8767let Inst{12-5} = 0b00000000;
8768let Inst{31-21} = 0b10011110100;
8769let addrMode = PostInc;
8770let accessSize = ByteAccess;
8771let mayLoad = 1;
8772let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8773}
8774def L2_loadalignb_pci : HInst<
8775(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8776(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
8777"$Ryy32 = memb_fifo($Rx32++#$Ii:circ($Mu2))",
8778tc_785f65a7, TypeLD>, Enc_74aef2 {
8779let Inst{12-9} = 0b0000;
8780let Inst{31-21} = 0b10011000100;
8781let addrMode = PostInc;
8782let accessSize = ByteAccess;
8783let mayLoad = 1;
8784let Uses = [CS];
8785let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8786}
8787def L2_loadalignb_pcr : HInst<
8788(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8789(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8790"$Ryy32 = memb_fifo($Rx32++I:circ($Mu2))",
8791tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8792let Inst{12-5} = 0b00010000;
8793let Inst{31-21} = 0b10011000100;
8794let addrMode = PostInc;
8795let accessSize = ByteAccess;
8796let mayLoad = 1;
8797let Uses = [CS];
8798let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8799}
8800def L2_loadalignb_pi : HInst<
8801(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8802(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_0Imm:$Ii),
8803"$Ryy32 = memb_fifo($Rx32++#$Ii)",
8804tc_3c76b0ff, TypeLD>, Enc_6b197f {
8805let Inst{13-9} = 0b00000;
8806let Inst{31-21} = 0b10011010100;
8807let addrMode = PostInc;
8808let accessSize = ByteAccess;
8809let mayLoad = 1;
8810let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8811}
8812def L2_loadalignb_pr : HInst<
8813(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8814(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8815"$Ryy32 = memb_fifo($Rx32++$Mu2)",
8816tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8817let Inst{12-5} = 0b00000000;
8818let Inst{31-21} = 0b10011100100;
8819let addrMode = PostInc;
8820let accessSize = ByteAccess;
8821let mayLoad = 1;
8822let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8823}
8824def L2_loadalignb_zomap : HInst<
8825(outs DoubleRegs:$Ryy32),
8826(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8827"$Ryy32 = memb_fifo($Rs32)",
8828tc_5ef37dc4, TypeMAPPING> {
8829let isPseudo = 1;
8830let isCodeGenOnly = 1;
8831let Constraints = "$Ryy32 = $Ryy32in";
8832}
8833def L2_loadalignh_io : HInst<
8834(outs DoubleRegs:$Ryy32),
8835(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32, s31_1Imm:$Ii),
8836"$Ryy32 = memh_fifo($Rs32+#$Ii)",
8837tc_5ef37dc4, TypeLD>, Enc_5cd7e9 {
8838let Inst{24-21} = 0b0010;
8839let Inst{31-27} = 0b10010;
8840let addrMode = BaseImmOffset;
8841let accessSize = HalfWordAccess;
8842let mayLoad = 1;
8843let isExtendable = 1;
8844let opExtendable = 3;
8845let isExtentSigned = 1;
8846let opExtentBits = 12;
8847let opExtentAlign = 1;
8848let Constraints = "$Ryy32 = $Ryy32in";
8849}
8850def L2_loadalignh_pbr : HInst<
8851(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8852(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8853"$Ryy32 = memh_fifo($Rx32++$Mu2:brev)",
8854tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8855let Inst{12-5} = 0b00000000;
8856let Inst{31-21} = 0b10011110010;
8857let addrMode = PostInc;
8858let accessSize = HalfWordAccess;
8859let mayLoad = 1;
8860let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8861}
8862def L2_loadalignh_pci : HInst<
8863(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8864(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8865"$Ryy32 = memh_fifo($Rx32++#$Ii:circ($Mu2))",
8866tc_785f65a7, TypeLD>, Enc_9e2e1c {
8867let Inst{12-9} = 0b0000;
8868let Inst{31-21} = 0b10011000010;
8869let addrMode = PostInc;
8870let accessSize = HalfWordAccess;
8871let mayLoad = 1;
8872let Uses = [CS];
8873let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8874}
8875def L2_loadalignh_pcr : HInst<
8876(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8877(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8878"$Ryy32 = memh_fifo($Rx32++I:circ($Mu2))",
8879tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8880let Inst{12-5} = 0b00010000;
8881let Inst{31-21} = 0b10011000010;
8882let addrMode = PostInc;
8883let accessSize = HalfWordAccess;
8884let mayLoad = 1;
8885let Uses = [CS];
8886let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8887}
8888def L2_loadalignh_pi : HInst<
8889(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8890(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, s4_1Imm:$Ii),
8891"$Ryy32 = memh_fifo($Rx32++#$Ii)",
8892tc_3c76b0ff, TypeLD>, Enc_bd1cbc {
8893let Inst{13-9} = 0b00000;
8894let Inst{31-21} = 0b10011010010;
8895let addrMode = PostInc;
8896let accessSize = HalfWordAccess;
8897let mayLoad = 1;
8898let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8899}
8900def L2_loadalignh_pr : HInst<
8901(outs DoubleRegs:$Ryy32, IntRegs:$Rx32),
8902(ins DoubleRegs:$Ryy32in, IntRegs:$Rx32in, ModRegs:$Mu2),
8903"$Ryy32 = memh_fifo($Rx32++$Mu2)",
8904tc_3c76b0ff, TypeLD>, Enc_1f5d8f {
8905let Inst{12-5} = 0b00000000;
8906let Inst{31-21} = 0b10011100010;
8907let addrMode = PostInc;
8908let accessSize = HalfWordAccess;
8909let mayLoad = 1;
8910let Constraints = "$Ryy32 = $Ryy32in, $Rx32 = $Rx32in";
8911}
8912def L2_loadalignh_zomap : HInst<
8913(outs DoubleRegs:$Ryy32),
8914(ins DoubleRegs:$Ryy32in, IntRegs:$Rs32),
8915"$Ryy32 = memh_fifo($Rs32)",
8916tc_5ef37dc4, TypeMAPPING> {
8917let isPseudo = 1;
8918let isCodeGenOnly = 1;
8919let Constraints = "$Ryy32 = $Ryy32in";
8920}
8921def L2_loadbsw2_io : HInst<
8922(outs IntRegs:$Rd32),
8923(ins IntRegs:$Rs32, s31_1Imm:$Ii),
8924"$Rd32 = membh($Rs32+#$Ii)",
8925tc_17e0d2cd, TypeLD>, Enc_de0214 {
8926let Inst{24-21} = 0b0001;
8927let Inst{31-27} = 0b10010;
8928let hasNewValue = 1;
8929let opNewValue = 0;
8930let addrMode = BaseImmOffset;
8931let accessSize = HalfWordAccess;
8932let mayLoad = 1;
8933let isExtendable = 1;
8934let opExtendable = 2;
8935let isExtentSigned = 1;
8936let opExtentBits = 12;
8937let opExtentAlign = 1;
8938}
8939def L2_loadbsw2_pbr : HInst<
8940(outs IntRegs:$Rd32, IntRegs:$Rx32),
8941(ins IntRegs:$Rx32in, ModRegs:$Mu2),
8942"$Rd32 = membh($Rx32++$Mu2:brev)",
8943tc_44d3da28, TypeLD>, Enc_74d4e5 {
8944let Inst{12-5} = 0b00000000;
8945let Inst{31-21} = 0b10011110001;
8946let hasNewValue = 1;
8947let opNewValue = 0;
8948let addrMode = PostInc;
8949let accessSize = HalfWordAccess;
8950let mayLoad = 1;
8951let Constraints = "$Rx32 = $Rx32in";
8952}
8953def L2_loadbsw2_pci : HInst<
8954(outs IntRegs:$Rd32, IntRegs:$Rx32),
8955(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
8956"$Rd32 = membh($Rx32++#$Ii:circ($Mu2))",
8957tc_e93a3d71, TypeLD>, Enc_e83554 {
8958let Inst{12-9} = 0b0000;
8959let Inst{31-21} = 0b10011000001;
8960let hasNewValue = 1;
8961let opNewValue = 0;
8962let addrMode = PostInc;
8963let accessSize = HalfWordAccess;
8964let mayLoad = 1;
8965let Uses = [CS];
8966let Constraints = "$Rx32 = $Rx32in";
8967}
8968def L2_loadbsw2_pcr : HInst<
8969(outs IntRegs:$Rd32, IntRegs:$Rx32),
8970(ins IntRegs:$Rx32in, ModRegs:$Mu2),
8971"$Rd32 = membh($Rx32++I:circ($Mu2))",
8972tc_44d3da28, TypeLD>, Enc_74d4e5 {
8973let Inst{12-5} = 0b00010000;
8974let Inst{31-21} = 0b10011000001;
8975let hasNewValue = 1;
8976let opNewValue = 0;
8977let addrMode = PostInc;
8978let accessSize = HalfWordAccess;
8979let mayLoad = 1;
8980let Uses = [CS];
8981let Constraints = "$Rx32 = $Rx32in";
8982}
8983def L2_loadbsw2_pi : HInst<
8984(outs IntRegs:$Rd32, IntRegs:$Rx32),
8985(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
8986"$Rd32 = membh($Rx32++#$Ii)",
8987tc_44d3da28, TypeLD>, Enc_152467 {
8988let Inst{13-9} = 0b00000;
8989let Inst{31-21} = 0b10011010001;
8990let hasNewValue = 1;
8991let opNewValue = 0;
8992let addrMode = PostInc;
8993let accessSize = HalfWordAccess;
8994let mayLoad = 1;
8995let Constraints = "$Rx32 = $Rx32in";
8996}
8997def L2_loadbsw2_pr : HInst<
8998(outs IntRegs:$Rd32, IntRegs:$Rx32),
8999(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9000"$Rd32 = membh($Rx32++$Mu2)",
9001tc_44d3da28, TypeLD>, Enc_74d4e5 {
9002let Inst{12-5} = 0b00000000;
9003let Inst{31-21} = 0b10011100001;
9004let hasNewValue = 1;
9005let opNewValue = 0;
9006let addrMode = PostInc;
9007let accessSize = HalfWordAccess;
9008let mayLoad = 1;
9009let Constraints = "$Rx32 = $Rx32in";
9010}
9011def L2_loadbsw2_zomap : HInst<
9012(outs IntRegs:$Rd32),
9013(ins IntRegs:$Rs32),
9014"$Rd32 = membh($Rs32)",
9015tc_17e0d2cd, TypeMAPPING> {
9016let hasNewValue = 1;
9017let opNewValue = 0;
9018let isPseudo = 1;
9019let isCodeGenOnly = 1;
9020}
9021def L2_loadbsw4_io : HInst<
9022(outs DoubleRegs:$Rdd32),
9023(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9024"$Rdd32 = membh($Rs32+#$Ii)",
9025tc_17e0d2cd, TypeLD>, Enc_2d7491 {
9026let Inst{24-21} = 0b0111;
9027let Inst{31-27} = 0b10010;
9028let addrMode = BaseImmOffset;
9029let accessSize = WordAccess;
9030let mayLoad = 1;
9031let isExtendable = 1;
9032let opExtendable = 2;
9033let isExtentSigned = 1;
9034let opExtentBits = 13;
9035let opExtentAlign = 2;
9036}
9037def L2_loadbsw4_pbr : HInst<
9038(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9039(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9040"$Rdd32 = membh($Rx32++$Mu2:brev)",
9041tc_44d3da28, TypeLD>, Enc_7eee72 {
9042let Inst{12-5} = 0b00000000;
9043let Inst{31-21} = 0b10011110111;
9044let addrMode = PostInc;
9045let accessSize = WordAccess;
9046let mayLoad = 1;
9047let Constraints = "$Rx32 = $Rx32in";
9048}
9049def L2_loadbsw4_pci : HInst<
9050(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9051(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9052"$Rdd32 = membh($Rx32++#$Ii:circ($Mu2))",
9053tc_e93a3d71, TypeLD>, Enc_70b24b {
9054let Inst{12-9} = 0b0000;
9055let Inst{31-21} = 0b10011000111;
9056let addrMode = PostInc;
9057let accessSize = WordAccess;
9058let mayLoad = 1;
9059let Uses = [CS];
9060let Constraints = "$Rx32 = $Rx32in";
9061}
9062def L2_loadbsw4_pcr : HInst<
9063(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9064(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9065"$Rdd32 = membh($Rx32++I:circ($Mu2))",
9066tc_44d3da28, TypeLD>, Enc_7eee72 {
9067let Inst{12-5} = 0b00010000;
9068let Inst{31-21} = 0b10011000111;
9069let addrMode = PostInc;
9070let accessSize = WordAccess;
9071let mayLoad = 1;
9072let Uses = [CS];
9073let Constraints = "$Rx32 = $Rx32in";
9074}
9075def L2_loadbsw4_pi : HInst<
9076(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9077(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9078"$Rdd32 = membh($Rx32++#$Ii)",
9079tc_44d3da28, TypeLD>, Enc_71f1b4 {
9080let Inst{13-9} = 0b00000;
9081let Inst{31-21} = 0b10011010111;
9082let addrMode = PostInc;
9083let accessSize = WordAccess;
9084let mayLoad = 1;
9085let Constraints = "$Rx32 = $Rx32in";
9086}
9087def L2_loadbsw4_pr : HInst<
9088(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9089(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9090"$Rdd32 = membh($Rx32++$Mu2)",
9091tc_44d3da28, TypeLD>, Enc_7eee72 {
9092let Inst{12-5} = 0b00000000;
9093let Inst{31-21} = 0b10011100111;
9094let addrMode = PostInc;
9095let accessSize = WordAccess;
9096let mayLoad = 1;
9097let Constraints = "$Rx32 = $Rx32in";
9098}
9099def L2_loadbsw4_zomap : HInst<
9100(outs DoubleRegs:$Rdd32),
9101(ins IntRegs:$Rs32),
9102"$Rdd32 = membh($Rs32)",
9103tc_17e0d2cd, TypeMAPPING> {
9104let isPseudo = 1;
9105let isCodeGenOnly = 1;
9106}
9107def L2_loadbzw2_io : HInst<
9108(outs IntRegs:$Rd32),
9109(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9110"$Rd32 = memubh($Rs32+#$Ii)",
9111tc_17e0d2cd, TypeLD>, Enc_de0214 {
9112let Inst{24-21} = 0b0011;
9113let Inst{31-27} = 0b10010;
9114let hasNewValue = 1;
9115let opNewValue = 0;
9116let addrMode = BaseImmOffset;
9117let accessSize = HalfWordAccess;
9118let mayLoad = 1;
9119let isExtendable = 1;
9120let opExtendable = 2;
9121let isExtentSigned = 1;
9122let opExtentBits = 12;
9123let opExtentAlign = 1;
9124}
9125def L2_loadbzw2_pbr : HInst<
9126(outs IntRegs:$Rd32, IntRegs:$Rx32),
9127(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9128"$Rd32 = memubh($Rx32++$Mu2:brev)",
9129tc_44d3da28, TypeLD>, Enc_74d4e5 {
9130let Inst{12-5} = 0b00000000;
9131let Inst{31-21} = 0b10011110011;
9132let hasNewValue = 1;
9133let opNewValue = 0;
9134let addrMode = PostInc;
9135let accessSize = HalfWordAccess;
9136let mayLoad = 1;
9137let Constraints = "$Rx32 = $Rx32in";
9138}
9139def L2_loadbzw2_pci : HInst<
9140(outs IntRegs:$Rd32, IntRegs:$Rx32),
9141(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9142"$Rd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9143tc_e93a3d71, TypeLD>, Enc_e83554 {
9144let Inst{12-9} = 0b0000;
9145let Inst{31-21} = 0b10011000011;
9146let hasNewValue = 1;
9147let opNewValue = 0;
9148let addrMode = PostInc;
9149let accessSize = HalfWordAccess;
9150let mayLoad = 1;
9151let Uses = [CS];
9152let Constraints = "$Rx32 = $Rx32in";
9153}
9154def L2_loadbzw2_pcr : HInst<
9155(outs IntRegs:$Rd32, IntRegs:$Rx32),
9156(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9157"$Rd32 = memubh($Rx32++I:circ($Mu2))",
9158tc_44d3da28, TypeLD>, Enc_74d4e5 {
9159let Inst{12-5} = 0b00010000;
9160let Inst{31-21} = 0b10011000011;
9161let hasNewValue = 1;
9162let opNewValue = 0;
9163let addrMode = PostInc;
9164let accessSize = HalfWordAccess;
9165let mayLoad = 1;
9166let Uses = [CS];
9167let Constraints = "$Rx32 = $Rx32in";
9168}
9169def L2_loadbzw2_pi : HInst<
9170(outs IntRegs:$Rd32, IntRegs:$Rx32),
9171(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9172"$Rd32 = memubh($Rx32++#$Ii)",
9173tc_44d3da28, TypeLD>, Enc_152467 {
9174let Inst{13-9} = 0b00000;
9175let Inst{31-21} = 0b10011010011;
9176let hasNewValue = 1;
9177let opNewValue = 0;
9178let addrMode = PostInc;
9179let accessSize = HalfWordAccess;
9180let mayLoad = 1;
9181let Constraints = "$Rx32 = $Rx32in";
9182}
9183def L2_loadbzw2_pr : HInst<
9184(outs IntRegs:$Rd32, IntRegs:$Rx32),
9185(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9186"$Rd32 = memubh($Rx32++$Mu2)",
9187tc_44d3da28, TypeLD>, Enc_74d4e5 {
9188let Inst{12-5} = 0b00000000;
9189let Inst{31-21} = 0b10011100011;
9190let hasNewValue = 1;
9191let opNewValue = 0;
9192let addrMode = PostInc;
9193let accessSize = HalfWordAccess;
9194let mayLoad = 1;
9195let Constraints = "$Rx32 = $Rx32in";
9196}
9197def L2_loadbzw2_zomap : HInst<
9198(outs IntRegs:$Rd32),
9199(ins IntRegs:$Rs32),
9200"$Rd32 = memubh($Rs32)",
9201tc_17e0d2cd, TypeMAPPING> {
9202let hasNewValue = 1;
9203let opNewValue = 0;
9204let isPseudo = 1;
9205let isCodeGenOnly = 1;
9206}
9207def L2_loadbzw4_io : HInst<
9208(outs DoubleRegs:$Rdd32),
9209(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9210"$Rdd32 = memubh($Rs32+#$Ii)",
9211tc_17e0d2cd, TypeLD>, Enc_2d7491 {
9212let Inst{24-21} = 0b0101;
9213let Inst{31-27} = 0b10010;
9214let addrMode = BaseImmOffset;
9215let accessSize = WordAccess;
9216let mayLoad = 1;
9217let isExtendable = 1;
9218let opExtendable = 2;
9219let isExtentSigned = 1;
9220let opExtentBits = 13;
9221let opExtentAlign = 2;
9222}
9223def L2_loadbzw4_pbr : HInst<
9224(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9225(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9226"$Rdd32 = memubh($Rx32++$Mu2:brev)",
9227tc_44d3da28, TypeLD>, Enc_7eee72 {
9228let Inst{12-5} = 0b00000000;
9229let Inst{31-21} = 0b10011110101;
9230let addrMode = PostInc;
9231let accessSize = WordAccess;
9232let mayLoad = 1;
9233let Constraints = "$Rx32 = $Rx32in";
9234}
9235def L2_loadbzw4_pci : HInst<
9236(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9237(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9238"$Rdd32 = memubh($Rx32++#$Ii:circ($Mu2))",
9239tc_e93a3d71, TypeLD>, Enc_70b24b {
9240let Inst{12-9} = 0b0000;
9241let Inst{31-21} = 0b10011000101;
9242let addrMode = PostInc;
9243let accessSize = WordAccess;
9244let mayLoad = 1;
9245let Uses = [CS];
9246let Constraints = "$Rx32 = $Rx32in";
9247}
9248def L2_loadbzw4_pcr : HInst<
9249(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9250(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9251"$Rdd32 = memubh($Rx32++I:circ($Mu2))",
9252tc_44d3da28, TypeLD>, Enc_7eee72 {
9253let Inst{12-5} = 0b00010000;
9254let Inst{31-21} = 0b10011000101;
9255let addrMode = PostInc;
9256let accessSize = WordAccess;
9257let mayLoad = 1;
9258let Uses = [CS];
9259let Constraints = "$Rx32 = $Rx32in";
9260}
9261def L2_loadbzw4_pi : HInst<
9262(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9263(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9264"$Rdd32 = memubh($Rx32++#$Ii)",
9265tc_44d3da28, TypeLD>, Enc_71f1b4 {
9266let Inst{13-9} = 0b00000;
9267let Inst{31-21} = 0b10011010101;
9268let addrMode = PostInc;
9269let accessSize = WordAccess;
9270let mayLoad = 1;
9271let Constraints = "$Rx32 = $Rx32in";
9272}
9273def L2_loadbzw4_pr : HInst<
9274(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9275(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9276"$Rdd32 = memubh($Rx32++$Mu2)",
9277tc_44d3da28, TypeLD>, Enc_7eee72 {
9278let Inst{12-5} = 0b00000000;
9279let Inst{31-21} = 0b10011100101;
9280let addrMode = PostInc;
9281let accessSize = WordAccess;
9282let mayLoad = 1;
9283let Constraints = "$Rx32 = $Rx32in";
9284}
9285def L2_loadbzw4_zomap : HInst<
9286(outs DoubleRegs:$Rdd32),
9287(ins IntRegs:$Rs32),
9288"$Rdd32 = memubh($Rs32)",
9289tc_17e0d2cd, TypeMAPPING> {
9290let isPseudo = 1;
9291let isCodeGenOnly = 1;
9292}
9293def L2_loadrb_io : HInst<
9294(outs IntRegs:$Rd32),
9295(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9296"$Rd32 = memb($Rs32+#$Ii)",
9297tc_17e0d2cd, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9298let Inst{24-21} = 0b1000;
9299let Inst{31-27} = 0b10010;
9300let hasNewValue = 1;
9301let opNewValue = 0;
9302let addrMode = BaseImmOffset;
9303let accessSize = ByteAccess;
9304let mayLoad = 1;
9305let CextOpcode = "L2_loadrb";
9306let BaseOpcode = "L2_loadrb_io";
9307let isPredicable = 1;
9308let isExtendable = 1;
9309let opExtendable = 2;
9310let isExtentSigned = 1;
9311let opExtentBits = 11;
9312let opExtentAlign = 0;
9313}
9314def L2_loadrb_pbr : HInst<
9315(outs IntRegs:$Rd32, IntRegs:$Rx32),
9316(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9317"$Rd32 = memb($Rx32++$Mu2:brev)",
9318tc_44d3da28, TypeLD>, Enc_74d4e5 {
9319let Inst{12-5} = 0b00000000;
9320let Inst{31-21} = 0b10011111000;
9321let hasNewValue = 1;
9322let opNewValue = 0;
9323let addrMode = PostInc;
9324let accessSize = ByteAccess;
9325let mayLoad = 1;
9326let Constraints = "$Rx32 = $Rx32in";
9327}
9328def L2_loadrb_pci : HInst<
9329(outs IntRegs:$Rd32, IntRegs:$Rx32),
9330(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9331"$Rd32 = memb($Rx32++#$Ii:circ($Mu2))",
9332tc_e93a3d71, TypeLD>, Enc_e0a47a {
9333let Inst{12-9} = 0b0000;
9334let Inst{31-21} = 0b10011001000;
9335let hasNewValue = 1;
9336let opNewValue = 0;
9337let addrMode = PostInc;
9338let accessSize = ByteAccess;
9339let mayLoad = 1;
9340let Uses = [CS];
9341let Constraints = "$Rx32 = $Rx32in";
9342}
9343def L2_loadrb_pcr : HInst<
9344(outs IntRegs:$Rd32, IntRegs:$Rx32),
9345(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9346"$Rd32 = memb($Rx32++I:circ($Mu2))",
9347tc_44d3da28, TypeLD>, Enc_74d4e5 {
9348let Inst{12-5} = 0b00010000;
9349let Inst{31-21} = 0b10011001000;
9350let hasNewValue = 1;
9351let opNewValue = 0;
9352let addrMode = PostInc;
9353let accessSize = ByteAccess;
9354let mayLoad = 1;
9355let Uses = [CS];
9356let Constraints = "$Rx32 = $Rx32in";
9357}
9358def L2_loadrb_pi : HInst<
9359(outs IntRegs:$Rd32, IntRegs:$Rx32),
9360(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9361"$Rd32 = memb($Rx32++#$Ii)",
9362tc_44d3da28, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9363let Inst{13-9} = 0b00000;
9364let Inst{31-21} = 0b10011011000;
9365let hasNewValue = 1;
9366let opNewValue = 0;
9367let addrMode = PostInc;
9368let accessSize = ByteAccess;
9369let mayLoad = 1;
9370let CextOpcode = "L2_loadrb";
9371let BaseOpcode = "L2_loadrb_pi";
9372let isPredicable = 1;
9373let Constraints = "$Rx32 = $Rx32in";
9374}
9375def L2_loadrb_pr : HInst<
9376(outs IntRegs:$Rd32, IntRegs:$Rx32),
9377(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9378"$Rd32 = memb($Rx32++$Mu2)",
9379tc_44d3da28, TypeLD>, Enc_74d4e5 {
9380let Inst{12-5} = 0b00000000;
9381let Inst{31-21} = 0b10011101000;
9382let hasNewValue = 1;
9383let opNewValue = 0;
9384let addrMode = PostInc;
9385let accessSize = ByteAccess;
9386let mayLoad = 1;
9387let Constraints = "$Rx32 = $Rx32in";
9388}
9389def L2_loadrb_zomap : HInst<
9390(outs IntRegs:$Rd32),
9391(ins IntRegs:$Rs32),
9392"$Rd32 = memb($Rs32)",
9393tc_17e0d2cd, TypeMAPPING> {
9394let hasNewValue = 1;
9395let opNewValue = 0;
9396let isPseudo = 1;
9397let isCodeGenOnly = 1;
9398}
9399def L2_loadrbgp : HInst<
9400(outs IntRegs:$Rd32),
9401(ins u32_0Imm:$Ii),
9402"$Rd32 = memb(gp+#$Ii)",
9403tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9404let Inst{24-21} = 0b1000;
9405let Inst{31-27} = 0b01001;
9406let hasNewValue = 1;
9407let opNewValue = 0;
9408let accessSize = ByteAccess;
9409let mayLoad = 1;
9410let Uses = [GP];
9411let BaseOpcode = "L4_loadrb_abs";
9412let isPredicable = 1;
9413let opExtendable = 1;
9414let isExtentSigned = 0;
9415let opExtentBits = 16;
9416let opExtentAlign = 0;
9417}
9418def L2_loadrd_io : HInst<
9419(outs DoubleRegs:$Rdd32),
9420(ins IntRegs:$Rs32, s29_3Imm:$Ii),
9421"$Rdd32 = memd($Rs32+#$Ii)",
9422tc_17e0d2cd, TypeLD>, Enc_fa3ba4, AddrModeRel, PostInc_BaseImm {
9423let Inst{24-21} = 0b1110;
9424let Inst{31-27} = 0b10010;
9425let addrMode = BaseImmOffset;
9426let accessSize = DoubleWordAccess;
9427let mayLoad = 1;
9428let CextOpcode = "L2_loadrd";
9429let BaseOpcode = "L2_loadrd_io";
9430let isPredicable = 1;
9431let isExtendable = 1;
9432let opExtendable = 2;
9433let isExtentSigned = 1;
9434let opExtentBits = 14;
9435let opExtentAlign = 3;
9436}
9437def L2_loadrd_pbr : HInst<
9438(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9439(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9440"$Rdd32 = memd($Rx32++$Mu2:brev)",
9441tc_44d3da28, TypeLD>, Enc_7eee72 {
9442let Inst{12-5} = 0b00000000;
9443let Inst{31-21} = 0b10011111110;
9444let addrMode = PostInc;
9445let accessSize = DoubleWordAccess;
9446let mayLoad = 1;
9447let Constraints = "$Rx32 = $Rx32in";
9448}
9449def L2_loadrd_pci : HInst<
9450(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9451(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2),
9452"$Rdd32 = memd($Rx32++#$Ii:circ($Mu2))",
9453tc_e93a3d71, TypeLD>, Enc_b05839 {
9454let Inst{12-9} = 0b0000;
9455let Inst{31-21} = 0b10011001110;
9456let addrMode = PostInc;
9457let accessSize = DoubleWordAccess;
9458let mayLoad = 1;
9459let Uses = [CS];
9460let Constraints = "$Rx32 = $Rx32in";
9461}
9462def L2_loadrd_pcr : HInst<
9463(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9464(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9465"$Rdd32 = memd($Rx32++I:circ($Mu2))",
9466tc_44d3da28, TypeLD>, Enc_7eee72 {
9467let Inst{12-5} = 0b00010000;
9468let Inst{31-21} = 0b10011001110;
9469let addrMode = PostInc;
9470let accessSize = DoubleWordAccess;
9471let mayLoad = 1;
9472let Uses = [CS];
9473let Constraints = "$Rx32 = $Rx32in";
9474}
9475def L2_loadrd_pi : HInst<
9476(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9477(ins IntRegs:$Rx32in, s4_3Imm:$Ii),
9478"$Rdd32 = memd($Rx32++#$Ii)",
9479tc_44d3da28, TypeLD>, Enc_5bdd42, PredNewRel, PostInc_BaseImm {
9480let Inst{13-9} = 0b00000;
9481let Inst{31-21} = 0b10011011110;
9482let addrMode = PostInc;
9483let accessSize = DoubleWordAccess;
9484let mayLoad = 1;
9485let CextOpcode = "L2_loadrd";
9486let BaseOpcode = "L2_loadrd_pi";
9487let isPredicable = 1;
9488let Constraints = "$Rx32 = $Rx32in";
9489}
9490def L2_loadrd_pr : HInst<
9491(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
9492(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9493"$Rdd32 = memd($Rx32++$Mu2)",
9494tc_44d3da28, TypeLD>, Enc_7eee72 {
9495let Inst{12-5} = 0b00000000;
9496let Inst{31-21} = 0b10011101110;
9497let addrMode = PostInc;
9498let accessSize = DoubleWordAccess;
9499let mayLoad = 1;
9500let Constraints = "$Rx32 = $Rx32in";
9501}
9502def L2_loadrd_zomap : HInst<
9503(outs DoubleRegs:$Rdd32),
9504(ins IntRegs:$Rs32),
9505"$Rdd32 = memd($Rs32)",
9506tc_17e0d2cd, TypeMAPPING> {
9507let isPseudo = 1;
9508let isCodeGenOnly = 1;
9509}
9510def L2_loadrdgp : HInst<
9511(outs DoubleRegs:$Rdd32),
9512(ins u29_3Imm:$Ii),
9513"$Rdd32 = memd(gp+#$Ii)",
9514tc_c4db48cb, TypeV2LDST>, Enc_509701, AddrModeRel {
9515let Inst{24-21} = 0b1110;
9516let Inst{31-27} = 0b01001;
9517let accessSize = DoubleWordAccess;
9518let mayLoad = 1;
9519let Uses = [GP];
9520let BaseOpcode = "L4_loadrd_abs";
9521let isPredicable = 1;
9522let opExtendable = 1;
9523let isExtentSigned = 0;
9524let opExtentBits = 19;
9525let opExtentAlign = 3;
9526}
9527def L2_loadrh_io : HInst<
9528(outs IntRegs:$Rd32),
9529(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9530"$Rd32 = memh($Rs32+#$Ii)",
9531tc_17e0d2cd, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9532let Inst{24-21} = 0b1010;
9533let Inst{31-27} = 0b10010;
9534let hasNewValue = 1;
9535let opNewValue = 0;
9536let addrMode = BaseImmOffset;
9537let accessSize = HalfWordAccess;
9538let mayLoad = 1;
9539let CextOpcode = "L2_loadrh";
9540let BaseOpcode = "L2_loadrh_io";
9541let isPredicable = 1;
9542let isExtendable = 1;
9543let opExtendable = 2;
9544let isExtentSigned = 1;
9545let opExtentBits = 12;
9546let opExtentAlign = 1;
9547}
9548def L2_loadrh_pbr : HInst<
9549(outs IntRegs:$Rd32, IntRegs:$Rx32),
9550(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9551"$Rd32 = memh($Rx32++$Mu2:brev)",
9552tc_44d3da28, TypeLD>, Enc_74d4e5 {
9553let Inst{12-5} = 0b00000000;
9554let Inst{31-21} = 0b10011111010;
9555let hasNewValue = 1;
9556let opNewValue = 0;
9557let addrMode = PostInc;
9558let accessSize = HalfWordAccess;
9559let mayLoad = 1;
9560let Constraints = "$Rx32 = $Rx32in";
9561}
9562def L2_loadrh_pci : HInst<
9563(outs IntRegs:$Rd32, IntRegs:$Rx32),
9564(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9565"$Rd32 = memh($Rx32++#$Ii:circ($Mu2))",
9566tc_e93a3d71, TypeLD>, Enc_e83554 {
9567let Inst{12-9} = 0b0000;
9568let Inst{31-21} = 0b10011001010;
9569let hasNewValue = 1;
9570let opNewValue = 0;
9571let addrMode = PostInc;
9572let accessSize = HalfWordAccess;
9573let mayLoad = 1;
9574let Uses = [CS];
9575let Constraints = "$Rx32 = $Rx32in";
9576}
9577def L2_loadrh_pcr : HInst<
9578(outs IntRegs:$Rd32, IntRegs:$Rx32),
9579(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9580"$Rd32 = memh($Rx32++I:circ($Mu2))",
9581tc_44d3da28, TypeLD>, Enc_74d4e5 {
9582let Inst{12-5} = 0b00010000;
9583let Inst{31-21} = 0b10011001010;
9584let hasNewValue = 1;
9585let opNewValue = 0;
9586let addrMode = PostInc;
9587let accessSize = HalfWordAccess;
9588let mayLoad = 1;
9589let Uses = [CS];
9590let Constraints = "$Rx32 = $Rx32in";
9591}
9592def L2_loadrh_pi : HInst<
9593(outs IntRegs:$Rd32, IntRegs:$Rx32),
9594(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9595"$Rd32 = memh($Rx32++#$Ii)",
9596tc_44d3da28, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9597let Inst{13-9} = 0b00000;
9598let Inst{31-21} = 0b10011011010;
9599let hasNewValue = 1;
9600let opNewValue = 0;
9601let addrMode = PostInc;
9602let accessSize = HalfWordAccess;
9603let mayLoad = 1;
9604let CextOpcode = "L2_loadrh";
9605let BaseOpcode = "L2_loadrh_pi";
9606let isPredicable = 1;
9607let Constraints = "$Rx32 = $Rx32in";
9608}
9609def L2_loadrh_pr : HInst<
9610(outs IntRegs:$Rd32, IntRegs:$Rx32),
9611(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9612"$Rd32 = memh($Rx32++$Mu2)",
9613tc_44d3da28, TypeLD>, Enc_74d4e5 {
9614let Inst{12-5} = 0b00000000;
9615let Inst{31-21} = 0b10011101010;
9616let hasNewValue = 1;
9617let opNewValue = 0;
9618let addrMode = PostInc;
9619let accessSize = HalfWordAccess;
9620let mayLoad = 1;
9621let Constraints = "$Rx32 = $Rx32in";
9622}
9623def L2_loadrh_zomap : HInst<
9624(outs IntRegs:$Rd32),
9625(ins IntRegs:$Rs32),
9626"$Rd32 = memh($Rs32)",
9627tc_17e0d2cd, TypeMAPPING> {
9628let hasNewValue = 1;
9629let opNewValue = 0;
9630let isPseudo = 1;
9631let isCodeGenOnly = 1;
9632}
9633def L2_loadrhgp : HInst<
9634(outs IntRegs:$Rd32),
9635(ins u31_1Imm:$Ii),
9636"$Rd32 = memh(gp+#$Ii)",
9637tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
9638let Inst{24-21} = 0b1010;
9639let Inst{31-27} = 0b01001;
9640let hasNewValue = 1;
9641let opNewValue = 0;
9642let accessSize = HalfWordAccess;
9643let mayLoad = 1;
9644let Uses = [GP];
9645let BaseOpcode = "L4_loadrh_abs";
9646let isPredicable = 1;
9647let opExtendable = 1;
9648let isExtentSigned = 0;
9649let opExtentBits = 17;
9650let opExtentAlign = 1;
9651}
9652def L2_loadri_io : HInst<
9653(outs IntRegs:$Rd32),
9654(ins IntRegs:$Rs32, s30_2Imm:$Ii),
9655"$Rd32 = memw($Rs32+#$Ii)",
9656tc_17e0d2cd, TypeLD>, Enc_2a3787, AddrModeRel, PostInc_BaseImm {
9657let Inst{24-21} = 0b1100;
9658let Inst{31-27} = 0b10010;
9659let hasNewValue = 1;
9660let opNewValue = 0;
9661let addrMode = BaseImmOffset;
9662let accessSize = WordAccess;
9663let mayLoad = 1;
9664let CextOpcode = "L2_loadri";
9665let BaseOpcode = "L2_loadri_io";
9666let isPredicable = 1;
9667let isExtendable = 1;
9668let opExtendable = 2;
9669let isExtentSigned = 1;
9670let opExtentBits = 13;
9671let opExtentAlign = 2;
9672}
9673def L2_loadri_pbr : HInst<
9674(outs IntRegs:$Rd32, IntRegs:$Rx32),
9675(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9676"$Rd32 = memw($Rx32++$Mu2:brev)",
9677tc_44d3da28, TypeLD>, Enc_74d4e5 {
9678let Inst{12-5} = 0b00000000;
9679let Inst{31-21} = 0b10011111100;
9680let hasNewValue = 1;
9681let opNewValue = 0;
9682let addrMode = PostInc;
9683let accessSize = WordAccess;
9684let mayLoad = 1;
9685let Constraints = "$Rx32 = $Rx32in";
9686}
9687def L2_loadri_pci : HInst<
9688(outs IntRegs:$Rd32, IntRegs:$Rx32),
9689(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2),
9690"$Rd32 = memw($Rx32++#$Ii:circ($Mu2))",
9691tc_e93a3d71, TypeLD>, Enc_27fd0e {
9692let Inst{12-9} = 0b0000;
9693let Inst{31-21} = 0b10011001100;
9694let hasNewValue = 1;
9695let opNewValue = 0;
9696let addrMode = PostInc;
9697let accessSize = WordAccess;
9698let mayLoad = 1;
9699let Uses = [CS];
9700let Constraints = "$Rx32 = $Rx32in";
9701}
9702def L2_loadri_pcr : HInst<
9703(outs IntRegs:$Rd32, IntRegs:$Rx32),
9704(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9705"$Rd32 = memw($Rx32++I:circ($Mu2))",
9706tc_44d3da28, TypeLD>, Enc_74d4e5 {
9707let Inst{12-5} = 0b00010000;
9708let Inst{31-21} = 0b10011001100;
9709let hasNewValue = 1;
9710let opNewValue = 0;
9711let addrMode = PostInc;
9712let accessSize = WordAccess;
9713let mayLoad = 1;
9714let Uses = [CS];
9715let Constraints = "$Rx32 = $Rx32in";
9716}
9717def L2_loadri_pi : HInst<
9718(outs IntRegs:$Rd32, IntRegs:$Rx32),
9719(ins IntRegs:$Rx32in, s4_2Imm:$Ii),
9720"$Rd32 = memw($Rx32++#$Ii)",
9721tc_44d3da28, TypeLD>, Enc_3d920a, PredNewRel, PostInc_BaseImm {
9722let Inst{13-9} = 0b00000;
9723let Inst{31-21} = 0b10011011100;
9724let hasNewValue = 1;
9725let opNewValue = 0;
9726let addrMode = PostInc;
9727let accessSize = WordAccess;
9728let mayLoad = 1;
9729let CextOpcode = "L2_loadri";
9730let BaseOpcode = "L2_loadri_pi";
9731let isPredicable = 1;
9732let Constraints = "$Rx32 = $Rx32in";
9733}
9734def L2_loadri_pr : HInst<
9735(outs IntRegs:$Rd32, IntRegs:$Rx32),
9736(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9737"$Rd32 = memw($Rx32++$Mu2)",
9738tc_44d3da28, TypeLD>, Enc_74d4e5 {
9739let Inst{12-5} = 0b00000000;
9740let Inst{31-21} = 0b10011101100;
9741let hasNewValue = 1;
9742let opNewValue = 0;
9743let addrMode = PostInc;
9744let accessSize = WordAccess;
9745let mayLoad = 1;
9746let Constraints = "$Rx32 = $Rx32in";
9747}
9748def L2_loadri_zomap : HInst<
9749(outs IntRegs:$Rd32),
9750(ins IntRegs:$Rs32),
9751"$Rd32 = memw($Rs32)",
9752tc_17e0d2cd, TypeMAPPING> {
9753let hasNewValue = 1;
9754let opNewValue = 0;
9755let isPseudo = 1;
9756let isCodeGenOnly = 1;
9757}
9758def L2_loadrigp : HInst<
9759(outs IntRegs:$Rd32),
9760(ins u30_2Imm:$Ii),
9761"$Rd32 = memw(gp+#$Ii)",
9762tc_c4db48cb, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
9763let Inst{24-21} = 0b1100;
9764let Inst{31-27} = 0b01001;
9765let hasNewValue = 1;
9766let opNewValue = 0;
9767let accessSize = WordAccess;
9768let mayLoad = 1;
9769let Uses = [GP];
9770let BaseOpcode = "L4_loadri_abs";
9771let isPredicable = 1;
9772let opExtendable = 1;
9773let isExtentSigned = 0;
9774let opExtentBits = 18;
9775let opExtentAlign = 2;
9776}
9777def L2_loadrub_io : HInst<
9778(outs IntRegs:$Rd32),
9779(ins IntRegs:$Rs32, s32_0Imm:$Ii),
9780"$Rd32 = memub($Rs32+#$Ii)",
9781tc_17e0d2cd, TypeLD>, Enc_211aaa, AddrModeRel, PostInc_BaseImm {
9782let Inst{24-21} = 0b1001;
9783let Inst{31-27} = 0b10010;
9784let hasNewValue = 1;
9785let opNewValue = 0;
9786let addrMode = BaseImmOffset;
9787let accessSize = ByteAccess;
9788let mayLoad = 1;
9789let CextOpcode = "L2_loadrub";
9790let BaseOpcode = "L2_loadrub_io";
9791let isPredicable = 1;
9792let isExtendable = 1;
9793let opExtendable = 2;
9794let isExtentSigned = 1;
9795let opExtentBits = 11;
9796let opExtentAlign = 0;
9797}
9798def L2_loadrub_pbr : HInst<
9799(outs IntRegs:$Rd32, IntRegs:$Rx32),
9800(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9801"$Rd32 = memub($Rx32++$Mu2:brev)",
9802tc_44d3da28, TypeLD>, Enc_74d4e5 {
9803let Inst{12-5} = 0b00000000;
9804let Inst{31-21} = 0b10011111001;
9805let hasNewValue = 1;
9806let opNewValue = 0;
9807let addrMode = PostInc;
9808let accessSize = ByteAccess;
9809let mayLoad = 1;
9810let Constraints = "$Rx32 = $Rx32in";
9811}
9812def L2_loadrub_pci : HInst<
9813(outs IntRegs:$Rd32, IntRegs:$Rx32),
9814(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2),
9815"$Rd32 = memub($Rx32++#$Ii:circ($Mu2))",
9816tc_e93a3d71, TypeLD>, Enc_e0a47a {
9817let Inst{12-9} = 0b0000;
9818let Inst{31-21} = 0b10011001001;
9819let hasNewValue = 1;
9820let opNewValue = 0;
9821let addrMode = PostInc;
9822let accessSize = ByteAccess;
9823let mayLoad = 1;
9824let Uses = [CS];
9825let Constraints = "$Rx32 = $Rx32in";
9826}
9827def L2_loadrub_pcr : HInst<
9828(outs IntRegs:$Rd32, IntRegs:$Rx32),
9829(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9830"$Rd32 = memub($Rx32++I:circ($Mu2))",
9831tc_44d3da28, TypeLD>, Enc_74d4e5 {
9832let Inst{12-5} = 0b00010000;
9833let Inst{31-21} = 0b10011001001;
9834let hasNewValue = 1;
9835let opNewValue = 0;
9836let addrMode = PostInc;
9837let accessSize = ByteAccess;
9838let mayLoad = 1;
9839let Uses = [CS];
9840let Constraints = "$Rx32 = $Rx32in";
9841}
9842def L2_loadrub_pi : HInst<
9843(outs IntRegs:$Rd32, IntRegs:$Rx32),
9844(ins IntRegs:$Rx32in, s4_0Imm:$Ii),
9845"$Rd32 = memub($Rx32++#$Ii)",
9846tc_44d3da28, TypeLD>, Enc_222336, PredNewRel, PostInc_BaseImm {
9847let Inst{13-9} = 0b00000;
9848let Inst{31-21} = 0b10011011001;
9849let hasNewValue = 1;
9850let opNewValue = 0;
9851let addrMode = PostInc;
9852let accessSize = ByteAccess;
9853let mayLoad = 1;
9854let CextOpcode = "L2_loadrub";
9855let BaseOpcode = "L2_loadrub_pi";
9856let isPredicable = 1;
9857let Constraints = "$Rx32 = $Rx32in";
9858}
9859def L2_loadrub_pr : HInst<
9860(outs IntRegs:$Rd32, IntRegs:$Rx32),
9861(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9862"$Rd32 = memub($Rx32++$Mu2)",
9863tc_44d3da28, TypeLD>, Enc_74d4e5 {
9864let Inst{12-5} = 0b00000000;
9865let Inst{31-21} = 0b10011101001;
9866let hasNewValue = 1;
9867let opNewValue = 0;
9868let addrMode = PostInc;
9869let accessSize = ByteAccess;
9870let mayLoad = 1;
9871let Constraints = "$Rx32 = $Rx32in";
9872}
9873def L2_loadrub_zomap : HInst<
9874(outs IntRegs:$Rd32),
9875(ins IntRegs:$Rs32),
9876"$Rd32 = memub($Rs32)",
9877tc_17e0d2cd, TypeMAPPING> {
9878let hasNewValue = 1;
9879let opNewValue = 0;
9880let isPseudo = 1;
9881let isCodeGenOnly = 1;
9882}
9883def L2_loadrubgp : HInst<
9884(outs IntRegs:$Rd32),
9885(ins u32_0Imm:$Ii),
9886"$Rd32 = memub(gp+#$Ii)",
9887tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
9888let Inst{24-21} = 0b1001;
9889let Inst{31-27} = 0b01001;
9890let hasNewValue = 1;
9891let opNewValue = 0;
9892let accessSize = ByteAccess;
9893let mayLoad = 1;
9894let Uses = [GP];
9895let BaseOpcode = "L4_loadrub_abs";
9896let isPredicable = 1;
9897let opExtendable = 1;
9898let isExtentSigned = 0;
9899let opExtentBits = 16;
9900let opExtentAlign = 0;
9901}
9902def L2_loadruh_io : HInst<
9903(outs IntRegs:$Rd32),
9904(ins IntRegs:$Rs32, s31_1Imm:$Ii),
9905"$Rd32 = memuh($Rs32+#$Ii)",
9906tc_17e0d2cd, TypeLD>, Enc_de0214, AddrModeRel, PostInc_BaseImm {
9907let Inst{24-21} = 0b1011;
9908let Inst{31-27} = 0b10010;
9909let hasNewValue = 1;
9910let opNewValue = 0;
9911let addrMode = BaseImmOffset;
9912let accessSize = HalfWordAccess;
9913let mayLoad = 1;
9914let CextOpcode = "L2_loadruh";
9915let BaseOpcode = "L2_loadruh_io";
9916let isPredicable = 1;
9917let isExtendable = 1;
9918let opExtendable = 2;
9919let isExtentSigned = 1;
9920let opExtentBits = 12;
9921let opExtentAlign = 1;
9922}
9923def L2_loadruh_pbr : HInst<
9924(outs IntRegs:$Rd32, IntRegs:$Rx32),
9925(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9926"$Rd32 = memuh($Rx32++$Mu2:brev)",
9927tc_44d3da28, TypeLD>, Enc_74d4e5 {
9928let Inst{12-5} = 0b00000000;
9929let Inst{31-21} = 0b10011111011;
9930let hasNewValue = 1;
9931let opNewValue = 0;
9932let addrMode = PostInc;
9933let accessSize = HalfWordAccess;
9934let mayLoad = 1;
9935let Constraints = "$Rx32 = $Rx32in";
9936}
9937def L2_loadruh_pci : HInst<
9938(outs IntRegs:$Rd32, IntRegs:$Rx32),
9939(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2),
9940"$Rd32 = memuh($Rx32++#$Ii:circ($Mu2))",
9941tc_e93a3d71, TypeLD>, Enc_e83554 {
9942let Inst{12-9} = 0b0000;
9943let Inst{31-21} = 0b10011001011;
9944let hasNewValue = 1;
9945let opNewValue = 0;
9946let addrMode = PostInc;
9947let accessSize = HalfWordAccess;
9948let mayLoad = 1;
9949let Uses = [CS];
9950let Constraints = "$Rx32 = $Rx32in";
9951}
9952def L2_loadruh_pcr : HInst<
9953(outs IntRegs:$Rd32, IntRegs:$Rx32),
9954(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9955"$Rd32 = memuh($Rx32++I:circ($Mu2))",
9956tc_44d3da28, TypeLD>, Enc_74d4e5 {
9957let Inst{12-5} = 0b00010000;
9958let Inst{31-21} = 0b10011001011;
9959let hasNewValue = 1;
9960let opNewValue = 0;
9961let addrMode = PostInc;
9962let accessSize = HalfWordAccess;
9963let mayLoad = 1;
9964let Uses = [CS];
9965let Constraints = "$Rx32 = $Rx32in";
9966}
9967def L2_loadruh_pi : HInst<
9968(outs IntRegs:$Rd32, IntRegs:$Rx32),
9969(ins IntRegs:$Rx32in, s4_1Imm:$Ii),
9970"$Rd32 = memuh($Rx32++#$Ii)",
9971tc_44d3da28, TypeLD>, Enc_152467, PredNewRel, PostInc_BaseImm {
9972let Inst{13-9} = 0b00000;
9973let Inst{31-21} = 0b10011011011;
9974let hasNewValue = 1;
9975let opNewValue = 0;
9976let addrMode = PostInc;
9977let accessSize = HalfWordAccess;
9978let mayLoad = 1;
9979let CextOpcode = "L2_loadruh";
9980let BaseOpcode = "L2_loadruh_pi";
9981let isPredicable = 1;
9982let Constraints = "$Rx32 = $Rx32in";
9983}
9984def L2_loadruh_pr : HInst<
9985(outs IntRegs:$Rd32, IntRegs:$Rx32),
9986(ins IntRegs:$Rx32in, ModRegs:$Mu2),
9987"$Rd32 = memuh($Rx32++$Mu2)",
9988tc_44d3da28, TypeLD>, Enc_74d4e5 {
9989let Inst{12-5} = 0b00000000;
9990let Inst{31-21} = 0b10011101011;
9991let hasNewValue = 1;
9992let opNewValue = 0;
9993let addrMode = PostInc;
9994let accessSize = HalfWordAccess;
9995let mayLoad = 1;
9996let Constraints = "$Rx32 = $Rx32in";
9997}
9998def L2_loadruh_zomap : HInst<
9999(outs IntRegs:$Rd32),
10000(ins IntRegs:$Rs32),
10001"$Rd32 = memuh($Rs32)",
10002tc_17e0d2cd, TypeMAPPING> {
10003let hasNewValue = 1;
10004let opNewValue = 0;
10005let isPseudo = 1;
10006let isCodeGenOnly = 1;
10007}
10008def L2_loadruhgp : HInst<
10009(outs IntRegs:$Rd32),
10010(ins u31_1Imm:$Ii),
10011"$Rd32 = memuh(gp+#$Ii)",
10012tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
10013let Inst{24-21} = 0b1011;
10014let Inst{31-27} = 0b01001;
10015let hasNewValue = 1;
10016let opNewValue = 0;
10017let accessSize = HalfWordAccess;
10018let mayLoad = 1;
10019let Uses = [GP];
10020let BaseOpcode = "L4_loadruh_abs";
10021let isPredicable = 1;
10022let opExtendable = 1;
10023let isExtentSigned = 0;
10024let opExtentBits = 17;
10025let opExtentAlign = 1;
10026}
10027def L2_loadw_locked : HInst<
10028(outs IntRegs:$Rd32),
10029(ins IntRegs:$Rs32),
10030"$Rd32 = memw_locked($Rs32)",
10031tc_b43e7930, TypeLD>, Enc_5e2823 {
10032let Inst{13-5} = 0b000000000;
10033let Inst{31-21} = 0b10010010000;
10034let hasNewValue = 1;
10035let opNewValue = 0;
10036let accessSize = WordAccess;
10037let mayLoad = 1;
10038let isSoloAX = 1;
10039}
10040def L2_ploadrbf_io : HInst<
10041(outs IntRegs:$Rd32),
10042(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10043"if (!$Pt4) $Rd32 = memb($Rs32+#$Ii)",
10044tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10045let Inst{13-13} = 0b0;
10046let Inst{31-21} = 0b01000101000;
10047let isPredicated = 1;
10048let isPredicatedFalse = 1;
10049let hasNewValue = 1;
10050let opNewValue = 0;
10051let addrMode = BaseImmOffset;
10052let accessSize = ByteAccess;
10053let mayLoad = 1;
10054let CextOpcode = "L2_loadrb";
10055let BaseOpcode = "L2_loadrb_io";
10056let isExtendable = 1;
10057let opExtendable = 3;
10058let isExtentSigned = 0;
10059let opExtentBits = 6;
10060let opExtentAlign = 0;
10061}
10062def L2_ploadrbf_pi : HInst<
10063(outs IntRegs:$Rd32, IntRegs:$Rx32),
10064(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10065"if (!$Pt4) $Rd32 = memb($Rx32++#$Ii)",
10066tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10067let Inst{13-11} = 0b101;
10068let Inst{31-21} = 0b10011011000;
10069let isPredicated = 1;
10070let isPredicatedFalse = 1;
10071let hasNewValue = 1;
10072let opNewValue = 0;
10073let addrMode = PostInc;
10074let accessSize = ByteAccess;
10075let mayLoad = 1;
10076let BaseOpcode = "L2_loadrb_pi";
10077let Constraints = "$Rx32 = $Rx32in";
10078}
10079def L2_ploadrbf_zomap : HInst<
10080(outs IntRegs:$Rd32),
10081(ins PredRegs:$Pt4, IntRegs:$Rs32),
10082"if (!$Pt4) $Rd32 = memb($Rs32)",
10083tc_5ef37dc4, TypeMAPPING> {
10084let hasNewValue = 1;
10085let opNewValue = 0;
10086let isPseudo = 1;
10087let isCodeGenOnly = 1;
10088}
10089def L2_ploadrbfnew_io : HInst<
10090(outs IntRegs:$Rd32),
10091(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10092"if (!$Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10093tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10094let Inst{13-13} = 0b0;
10095let Inst{31-21} = 0b01000111000;
10096let isPredicated = 1;
10097let isPredicatedFalse = 1;
10098let hasNewValue = 1;
10099let opNewValue = 0;
10100let addrMode = BaseImmOffset;
10101let accessSize = ByteAccess;
10102let isPredicatedNew = 1;
10103let mayLoad = 1;
10104let CextOpcode = "L2_loadrb";
10105let BaseOpcode = "L2_loadrb_io";
10106let isExtendable = 1;
10107let opExtendable = 3;
10108let isExtentSigned = 0;
10109let opExtentBits = 6;
10110let opExtentAlign = 0;
10111}
10112def L2_ploadrbfnew_pi : HInst<
10113(outs IntRegs:$Rd32, IntRegs:$Rx32),
10114(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10115"if (!$Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10116tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10117let Inst{13-11} = 0b111;
10118let Inst{31-21} = 0b10011011000;
10119let isPredicated = 1;
10120let isPredicatedFalse = 1;
10121let hasNewValue = 1;
10122let opNewValue = 0;
10123let addrMode = PostInc;
10124let accessSize = ByteAccess;
10125let isPredicatedNew = 1;
10126let mayLoad = 1;
10127let BaseOpcode = "L2_loadrb_pi";
10128let Constraints = "$Rx32 = $Rx32in";
10129}
10130def L2_ploadrbfnew_zomap : HInst<
10131(outs IntRegs:$Rd32),
10132(ins PredRegs:$Pt4, IntRegs:$Rs32),
10133"if (!$Pt4.new) $Rd32 = memb($Rs32)",
10134tc_44d3da28, TypeMAPPING> {
10135let hasNewValue = 1;
10136let opNewValue = 0;
10137let isPseudo = 1;
10138let isCodeGenOnly = 1;
10139}
10140def L2_ploadrbt_io : HInst<
10141(outs IntRegs:$Rd32),
10142(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10143"if ($Pt4) $Rd32 = memb($Rs32+#$Ii)",
10144tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10145let Inst{13-13} = 0b0;
10146let Inst{31-21} = 0b01000001000;
10147let isPredicated = 1;
10148let hasNewValue = 1;
10149let opNewValue = 0;
10150let addrMode = BaseImmOffset;
10151let accessSize = ByteAccess;
10152let mayLoad = 1;
10153let CextOpcode = "L2_loadrb";
10154let BaseOpcode = "L2_loadrb_io";
10155let isExtendable = 1;
10156let opExtendable = 3;
10157let isExtentSigned = 0;
10158let opExtentBits = 6;
10159let opExtentAlign = 0;
10160}
10161def L2_ploadrbt_pi : HInst<
10162(outs IntRegs:$Rd32, IntRegs:$Rx32),
10163(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10164"if ($Pt4) $Rd32 = memb($Rx32++#$Ii)",
10165tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10166let Inst{13-11} = 0b100;
10167let Inst{31-21} = 0b10011011000;
10168let isPredicated = 1;
10169let hasNewValue = 1;
10170let opNewValue = 0;
10171let addrMode = PostInc;
10172let accessSize = ByteAccess;
10173let mayLoad = 1;
10174let BaseOpcode = "L2_loadrb_pi";
10175let Constraints = "$Rx32 = $Rx32in";
10176}
10177def L2_ploadrbt_zomap : HInst<
10178(outs IntRegs:$Rd32),
10179(ins PredRegs:$Pt4, IntRegs:$Rs32),
10180"if ($Pt4) $Rd32 = memb($Rs32)",
10181tc_5ef37dc4, TypeMAPPING> {
10182let hasNewValue = 1;
10183let opNewValue = 0;
10184let isPseudo = 1;
10185let isCodeGenOnly = 1;
10186}
10187def L2_ploadrbtnew_io : HInst<
10188(outs IntRegs:$Rd32),
10189(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10190"if ($Pt4.new) $Rd32 = memb($Rs32+#$Ii)",
10191tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10192let Inst{13-13} = 0b0;
10193let Inst{31-21} = 0b01000011000;
10194let isPredicated = 1;
10195let hasNewValue = 1;
10196let opNewValue = 0;
10197let addrMode = BaseImmOffset;
10198let accessSize = ByteAccess;
10199let isPredicatedNew = 1;
10200let mayLoad = 1;
10201let CextOpcode = "L2_loadrb";
10202let BaseOpcode = "L2_loadrb_io";
10203let isExtendable = 1;
10204let opExtendable = 3;
10205let isExtentSigned = 0;
10206let opExtentBits = 6;
10207let opExtentAlign = 0;
10208}
10209def L2_ploadrbtnew_pi : HInst<
10210(outs IntRegs:$Rd32, IntRegs:$Rx32),
10211(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10212"if ($Pt4.new) $Rd32 = memb($Rx32++#$Ii)",
10213tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10214let Inst{13-11} = 0b110;
10215let Inst{31-21} = 0b10011011000;
10216let isPredicated = 1;
10217let hasNewValue = 1;
10218let opNewValue = 0;
10219let addrMode = PostInc;
10220let accessSize = ByteAccess;
10221let isPredicatedNew = 1;
10222let mayLoad = 1;
10223let BaseOpcode = "L2_loadrb_pi";
10224let Constraints = "$Rx32 = $Rx32in";
10225}
10226def L2_ploadrbtnew_zomap : HInst<
10227(outs IntRegs:$Rd32),
10228(ins PredRegs:$Pt4, IntRegs:$Rs32),
10229"if ($Pt4.new) $Rd32 = memb($Rs32)",
10230tc_44d3da28, TypeMAPPING> {
10231let hasNewValue = 1;
10232let opNewValue = 0;
10233let isPseudo = 1;
10234let isCodeGenOnly = 1;
10235}
10236def L2_ploadrdf_io : HInst<
10237(outs DoubleRegs:$Rdd32),
10238(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10239"if (!$Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10240tc_5ef37dc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10241let Inst{13-13} = 0b0;
10242let Inst{31-21} = 0b01000101110;
10243let isPredicated = 1;
10244let isPredicatedFalse = 1;
10245let addrMode = BaseImmOffset;
10246let accessSize = DoubleWordAccess;
10247let mayLoad = 1;
10248let CextOpcode = "L2_loadrd";
10249let BaseOpcode = "L2_loadrd_io";
10250let isExtendable = 1;
10251let opExtendable = 3;
10252let isExtentSigned = 0;
10253let opExtentBits = 9;
10254let opExtentAlign = 3;
10255}
10256def L2_ploadrdf_pi : HInst<
10257(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10258(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10259"if (!$Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10260tc_3c76b0ff, TypeLD>, Enc_9d1247, PredNewRel {
10261let Inst{13-11} = 0b101;
10262let Inst{31-21} = 0b10011011110;
10263let isPredicated = 1;
10264let isPredicatedFalse = 1;
10265let addrMode = PostInc;
10266let accessSize = DoubleWordAccess;
10267let mayLoad = 1;
10268let BaseOpcode = "L2_loadrd_pi";
10269let Constraints = "$Rx32 = $Rx32in";
10270}
10271def L2_ploadrdf_zomap : HInst<
10272(outs DoubleRegs:$Rdd32),
10273(ins PredRegs:$Pt4, IntRegs:$Rs32),
10274"if (!$Pt4) $Rdd32 = memd($Rs32)",
10275tc_5ef37dc4, TypeMAPPING> {
10276let isPseudo = 1;
10277let isCodeGenOnly = 1;
10278}
10279def L2_ploadrdfnew_io : HInst<
10280(outs DoubleRegs:$Rdd32),
10281(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10282"if (!$Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10283tc_44d3da28, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10284let Inst{13-13} = 0b0;
10285let Inst{31-21} = 0b01000111110;
10286let isPredicated = 1;
10287let isPredicatedFalse = 1;
10288let addrMode = BaseImmOffset;
10289let accessSize = DoubleWordAccess;
10290let isPredicatedNew = 1;
10291let mayLoad = 1;
10292let CextOpcode = "L2_loadrd";
10293let BaseOpcode = "L2_loadrd_io";
10294let isExtendable = 1;
10295let opExtendable = 3;
10296let isExtentSigned = 0;
10297let opExtentBits = 9;
10298let opExtentAlign = 3;
10299}
10300def L2_ploadrdfnew_pi : HInst<
10301(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10302(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10303"if (!$Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10304tc_e9f3243f, TypeLD>, Enc_9d1247, PredNewRel {
10305let Inst{13-11} = 0b111;
10306let Inst{31-21} = 0b10011011110;
10307let isPredicated = 1;
10308let isPredicatedFalse = 1;
10309let addrMode = PostInc;
10310let accessSize = DoubleWordAccess;
10311let isPredicatedNew = 1;
10312let mayLoad = 1;
10313let BaseOpcode = "L2_loadrd_pi";
10314let Constraints = "$Rx32 = $Rx32in";
10315}
10316def L2_ploadrdfnew_zomap : HInst<
10317(outs DoubleRegs:$Rdd32),
10318(ins PredRegs:$Pt4, IntRegs:$Rs32),
10319"if (!$Pt4.new) $Rdd32 = memd($Rs32)",
10320tc_44d3da28, TypeMAPPING> {
10321let isPseudo = 1;
10322let isCodeGenOnly = 1;
10323}
10324def L2_ploadrdt_io : HInst<
10325(outs DoubleRegs:$Rdd32),
10326(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10327"if ($Pt4) $Rdd32 = memd($Rs32+#$Ii)",
10328tc_5ef37dc4, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10329let Inst{13-13} = 0b0;
10330let Inst{31-21} = 0b01000001110;
10331let isPredicated = 1;
10332let addrMode = BaseImmOffset;
10333let accessSize = DoubleWordAccess;
10334let mayLoad = 1;
10335let CextOpcode = "L2_loadrd";
10336let BaseOpcode = "L2_loadrd_io";
10337let isExtendable = 1;
10338let opExtendable = 3;
10339let isExtentSigned = 0;
10340let opExtentBits = 9;
10341let opExtentAlign = 3;
10342}
10343def L2_ploadrdt_pi : HInst<
10344(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10345(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10346"if ($Pt4) $Rdd32 = memd($Rx32++#$Ii)",
10347tc_3c76b0ff, TypeLD>, Enc_9d1247, PredNewRel {
10348let Inst{13-11} = 0b100;
10349let Inst{31-21} = 0b10011011110;
10350let isPredicated = 1;
10351let addrMode = PostInc;
10352let accessSize = DoubleWordAccess;
10353let mayLoad = 1;
10354let BaseOpcode = "L2_loadrd_pi";
10355let Constraints = "$Rx32 = $Rx32in";
10356}
10357def L2_ploadrdt_zomap : HInst<
10358(outs DoubleRegs:$Rdd32),
10359(ins PredRegs:$Pt4, IntRegs:$Rs32),
10360"if ($Pt4) $Rdd32 = memd($Rs32)",
10361tc_5ef37dc4, TypeMAPPING> {
10362let isPseudo = 1;
10363let isCodeGenOnly = 1;
10364}
10365def L2_ploadrdtnew_io : HInst<
10366(outs DoubleRegs:$Rdd32),
10367(ins PredRegs:$Pt4, IntRegs:$Rs32, u29_3Imm:$Ii),
10368"if ($Pt4.new) $Rdd32 = memd($Rs32+#$Ii)",
10369tc_44d3da28, TypeV2LDST>, Enc_acd6ed, AddrModeRel {
10370let Inst{13-13} = 0b0;
10371let Inst{31-21} = 0b01000011110;
10372let isPredicated = 1;
10373let addrMode = BaseImmOffset;
10374let accessSize = DoubleWordAccess;
10375let isPredicatedNew = 1;
10376let mayLoad = 1;
10377let CextOpcode = "L2_loadrd";
10378let BaseOpcode = "L2_loadrd_io";
10379let isExtendable = 1;
10380let opExtendable = 3;
10381let isExtentSigned = 0;
10382let opExtentBits = 9;
10383let opExtentAlign = 3;
10384}
10385def L2_ploadrdtnew_pi : HInst<
10386(outs DoubleRegs:$Rdd32, IntRegs:$Rx32),
10387(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_3Imm:$Ii),
10388"if ($Pt4.new) $Rdd32 = memd($Rx32++#$Ii)",
10389tc_e9f3243f, TypeLD>, Enc_9d1247, PredNewRel {
10390let Inst{13-11} = 0b110;
10391let Inst{31-21} = 0b10011011110;
10392let isPredicated = 1;
10393let addrMode = PostInc;
10394let accessSize = DoubleWordAccess;
10395let isPredicatedNew = 1;
10396let mayLoad = 1;
10397let BaseOpcode = "L2_loadrd_pi";
10398let Constraints = "$Rx32 = $Rx32in";
10399}
10400def L2_ploadrdtnew_zomap : HInst<
10401(outs DoubleRegs:$Rdd32),
10402(ins PredRegs:$Pt4, IntRegs:$Rs32),
10403"if ($Pt4.new) $Rdd32 = memd($Rs32)",
10404tc_44d3da28, TypeMAPPING> {
10405let isPseudo = 1;
10406let isCodeGenOnly = 1;
10407}
10408def L2_ploadrhf_io : HInst<
10409(outs IntRegs:$Rd32),
10410(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10411"if (!$Pt4) $Rd32 = memh($Rs32+#$Ii)",
10412tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10413let Inst{13-13} = 0b0;
10414let Inst{31-21} = 0b01000101010;
10415let isPredicated = 1;
10416let isPredicatedFalse = 1;
10417let hasNewValue = 1;
10418let opNewValue = 0;
10419let addrMode = BaseImmOffset;
10420let accessSize = HalfWordAccess;
10421let mayLoad = 1;
10422let CextOpcode = "L2_loadrh";
10423let BaseOpcode = "L2_loadrh_io";
10424let isExtendable = 1;
10425let opExtendable = 3;
10426let isExtentSigned = 0;
10427let opExtentBits = 7;
10428let opExtentAlign = 1;
10429}
10430def L2_ploadrhf_pi : HInst<
10431(outs IntRegs:$Rd32, IntRegs:$Rx32),
10432(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10433"if (!$Pt4) $Rd32 = memh($Rx32++#$Ii)",
10434tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
10435let Inst{13-11} = 0b101;
10436let Inst{31-21} = 0b10011011010;
10437let isPredicated = 1;
10438let isPredicatedFalse = 1;
10439let hasNewValue = 1;
10440let opNewValue = 0;
10441let addrMode = PostInc;
10442let accessSize = HalfWordAccess;
10443let mayLoad = 1;
10444let BaseOpcode = "L2_loadrh_pi";
10445let Constraints = "$Rx32 = $Rx32in";
10446}
10447def L2_ploadrhf_zomap : HInst<
10448(outs IntRegs:$Rd32),
10449(ins PredRegs:$Pt4, IntRegs:$Rs32),
10450"if (!$Pt4) $Rd32 = memh($Rs32)",
10451tc_5ef37dc4, TypeMAPPING> {
10452let hasNewValue = 1;
10453let opNewValue = 0;
10454let isPseudo = 1;
10455let isCodeGenOnly = 1;
10456}
10457def L2_ploadrhfnew_io : HInst<
10458(outs IntRegs:$Rd32),
10459(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10460"if (!$Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10461tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10462let Inst{13-13} = 0b0;
10463let Inst{31-21} = 0b01000111010;
10464let isPredicated = 1;
10465let isPredicatedFalse = 1;
10466let hasNewValue = 1;
10467let opNewValue = 0;
10468let addrMode = BaseImmOffset;
10469let accessSize = HalfWordAccess;
10470let isPredicatedNew = 1;
10471let mayLoad = 1;
10472let CextOpcode = "L2_loadrh";
10473let BaseOpcode = "L2_loadrh_io";
10474let isExtendable = 1;
10475let opExtendable = 3;
10476let isExtentSigned = 0;
10477let opExtentBits = 7;
10478let opExtentAlign = 1;
10479}
10480def L2_ploadrhfnew_pi : HInst<
10481(outs IntRegs:$Rd32, IntRegs:$Rx32),
10482(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10483"if (!$Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10484tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
10485let Inst{13-11} = 0b111;
10486let Inst{31-21} = 0b10011011010;
10487let isPredicated = 1;
10488let isPredicatedFalse = 1;
10489let hasNewValue = 1;
10490let opNewValue = 0;
10491let addrMode = PostInc;
10492let accessSize = HalfWordAccess;
10493let isPredicatedNew = 1;
10494let mayLoad = 1;
10495let BaseOpcode = "L2_loadrh_pi";
10496let Constraints = "$Rx32 = $Rx32in";
10497}
10498def L2_ploadrhfnew_zomap : HInst<
10499(outs IntRegs:$Rd32),
10500(ins PredRegs:$Pt4, IntRegs:$Rs32),
10501"if (!$Pt4.new) $Rd32 = memh($Rs32)",
10502tc_44d3da28, TypeMAPPING> {
10503let hasNewValue = 1;
10504let opNewValue = 0;
10505let isPseudo = 1;
10506let isCodeGenOnly = 1;
10507}
10508def L2_ploadrht_io : HInst<
10509(outs IntRegs:$Rd32),
10510(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10511"if ($Pt4) $Rd32 = memh($Rs32+#$Ii)",
10512tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10513let Inst{13-13} = 0b0;
10514let Inst{31-21} = 0b01000001010;
10515let isPredicated = 1;
10516let hasNewValue = 1;
10517let opNewValue = 0;
10518let addrMode = BaseImmOffset;
10519let accessSize = HalfWordAccess;
10520let mayLoad = 1;
10521let CextOpcode = "L2_loadrh";
10522let BaseOpcode = "L2_loadrh_io";
10523let isExtendable = 1;
10524let opExtendable = 3;
10525let isExtentSigned = 0;
10526let opExtentBits = 7;
10527let opExtentAlign = 1;
10528}
10529def L2_ploadrht_pi : HInst<
10530(outs IntRegs:$Rd32, IntRegs:$Rx32),
10531(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10532"if ($Pt4) $Rd32 = memh($Rx32++#$Ii)",
10533tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
10534let Inst{13-11} = 0b100;
10535let Inst{31-21} = 0b10011011010;
10536let isPredicated = 1;
10537let hasNewValue = 1;
10538let opNewValue = 0;
10539let addrMode = PostInc;
10540let accessSize = HalfWordAccess;
10541let mayLoad = 1;
10542let BaseOpcode = "L2_loadrh_pi";
10543let Constraints = "$Rx32 = $Rx32in";
10544}
10545def L2_ploadrht_zomap : HInst<
10546(outs IntRegs:$Rd32),
10547(ins PredRegs:$Pt4, IntRegs:$Rs32),
10548"if ($Pt4) $Rd32 = memh($Rs32)",
10549tc_5ef37dc4, TypeMAPPING> {
10550let hasNewValue = 1;
10551let opNewValue = 0;
10552let isPseudo = 1;
10553let isCodeGenOnly = 1;
10554}
10555def L2_ploadrhtnew_io : HInst<
10556(outs IntRegs:$Rd32),
10557(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10558"if ($Pt4.new) $Rd32 = memh($Rs32+#$Ii)",
10559tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
10560let Inst{13-13} = 0b0;
10561let Inst{31-21} = 0b01000011010;
10562let isPredicated = 1;
10563let hasNewValue = 1;
10564let opNewValue = 0;
10565let addrMode = BaseImmOffset;
10566let accessSize = HalfWordAccess;
10567let isPredicatedNew = 1;
10568let mayLoad = 1;
10569let CextOpcode = "L2_loadrh";
10570let BaseOpcode = "L2_loadrh_io";
10571let isExtendable = 1;
10572let opExtendable = 3;
10573let isExtentSigned = 0;
10574let opExtentBits = 7;
10575let opExtentAlign = 1;
10576}
10577def L2_ploadrhtnew_pi : HInst<
10578(outs IntRegs:$Rd32, IntRegs:$Rx32),
10579(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
10580"if ($Pt4.new) $Rd32 = memh($Rx32++#$Ii)",
10581tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
10582let Inst{13-11} = 0b110;
10583let Inst{31-21} = 0b10011011010;
10584let isPredicated = 1;
10585let hasNewValue = 1;
10586let opNewValue = 0;
10587let addrMode = PostInc;
10588let accessSize = HalfWordAccess;
10589let isPredicatedNew = 1;
10590let mayLoad = 1;
10591let BaseOpcode = "L2_loadrh_pi";
10592let Constraints = "$Rx32 = $Rx32in";
10593}
10594def L2_ploadrhtnew_zomap : HInst<
10595(outs IntRegs:$Rd32),
10596(ins PredRegs:$Pt4, IntRegs:$Rs32),
10597"if ($Pt4.new) $Rd32 = memh($Rs32)",
10598tc_44d3da28, TypeMAPPING> {
10599let hasNewValue = 1;
10600let opNewValue = 0;
10601let isPseudo = 1;
10602let isCodeGenOnly = 1;
10603}
10604def L2_ploadrif_io : HInst<
10605(outs IntRegs:$Rd32),
10606(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10607"if (!$Pt4) $Rd32 = memw($Rs32+#$Ii)",
10608tc_5ef37dc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10609let Inst{13-13} = 0b0;
10610let Inst{31-21} = 0b01000101100;
10611let isPredicated = 1;
10612let isPredicatedFalse = 1;
10613let hasNewValue = 1;
10614let opNewValue = 0;
10615let addrMode = BaseImmOffset;
10616let accessSize = WordAccess;
10617let mayLoad = 1;
10618let CextOpcode = "L2_loadri";
10619let BaseOpcode = "L2_loadri_io";
10620let isExtendable = 1;
10621let opExtendable = 3;
10622let isExtentSigned = 0;
10623let opExtentBits = 8;
10624let opExtentAlign = 2;
10625}
10626def L2_ploadrif_pi : HInst<
10627(outs IntRegs:$Rd32, IntRegs:$Rx32),
10628(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10629"if (!$Pt4) $Rd32 = memw($Rx32++#$Ii)",
10630tc_3c76b0ff, TypeLD>, Enc_b97f71, PredNewRel {
10631let Inst{13-11} = 0b101;
10632let Inst{31-21} = 0b10011011100;
10633let isPredicated = 1;
10634let isPredicatedFalse = 1;
10635let hasNewValue = 1;
10636let opNewValue = 0;
10637let addrMode = PostInc;
10638let accessSize = WordAccess;
10639let mayLoad = 1;
10640let BaseOpcode = "L2_loadri_pi";
10641let Constraints = "$Rx32 = $Rx32in";
10642}
10643def L2_ploadrif_zomap : HInst<
10644(outs IntRegs:$Rd32),
10645(ins PredRegs:$Pt4, IntRegs:$Rs32),
10646"if (!$Pt4) $Rd32 = memw($Rs32)",
10647tc_5ef37dc4, TypeMAPPING> {
10648let hasNewValue = 1;
10649let opNewValue = 0;
10650let isPseudo = 1;
10651let isCodeGenOnly = 1;
10652}
10653def L2_ploadrifnew_io : HInst<
10654(outs IntRegs:$Rd32),
10655(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10656"if (!$Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10657tc_44d3da28, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10658let Inst{13-13} = 0b0;
10659let Inst{31-21} = 0b01000111100;
10660let isPredicated = 1;
10661let isPredicatedFalse = 1;
10662let hasNewValue = 1;
10663let opNewValue = 0;
10664let addrMode = BaseImmOffset;
10665let accessSize = WordAccess;
10666let isPredicatedNew = 1;
10667let mayLoad = 1;
10668let CextOpcode = "L2_loadri";
10669let BaseOpcode = "L2_loadri_io";
10670let isExtendable = 1;
10671let opExtendable = 3;
10672let isExtentSigned = 0;
10673let opExtentBits = 8;
10674let opExtentAlign = 2;
10675}
10676def L2_ploadrifnew_pi : HInst<
10677(outs IntRegs:$Rd32, IntRegs:$Rx32),
10678(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10679"if (!$Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10680tc_e9f3243f, TypeLD>, Enc_b97f71, PredNewRel {
10681let Inst{13-11} = 0b111;
10682let Inst{31-21} = 0b10011011100;
10683let isPredicated = 1;
10684let isPredicatedFalse = 1;
10685let hasNewValue = 1;
10686let opNewValue = 0;
10687let addrMode = PostInc;
10688let accessSize = WordAccess;
10689let isPredicatedNew = 1;
10690let mayLoad = 1;
10691let BaseOpcode = "L2_loadri_pi";
10692let Constraints = "$Rx32 = $Rx32in";
10693}
10694def L2_ploadrifnew_zomap : HInst<
10695(outs IntRegs:$Rd32),
10696(ins PredRegs:$Pt4, IntRegs:$Rs32),
10697"if (!$Pt4.new) $Rd32 = memw($Rs32)",
10698tc_44d3da28, TypeMAPPING> {
10699let hasNewValue = 1;
10700let opNewValue = 0;
10701let isPseudo = 1;
10702let isCodeGenOnly = 1;
10703}
10704def L2_ploadrit_io : HInst<
10705(outs IntRegs:$Rd32),
10706(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10707"if ($Pt4) $Rd32 = memw($Rs32+#$Ii)",
10708tc_5ef37dc4, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10709let Inst{13-13} = 0b0;
10710let Inst{31-21} = 0b01000001100;
10711let isPredicated = 1;
10712let hasNewValue = 1;
10713let opNewValue = 0;
10714let addrMode = BaseImmOffset;
10715let accessSize = WordAccess;
10716let mayLoad = 1;
10717let CextOpcode = "L2_loadri";
10718let BaseOpcode = "L2_loadri_io";
10719let isExtendable = 1;
10720let opExtendable = 3;
10721let isExtentSigned = 0;
10722let opExtentBits = 8;
10723let opExtentAlign = 2;
10724}
10725def L2_ploadrit_pi : HInst<
10726(outs IntRegs:$Rd32, IntRegs:$Rx32),
10727(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10728"if ($Pt4) $Rd32 = memw($Rx32++#$Ii)",
10729tc_3c76b0ff, TypeLD>, Enc_b97f71, PredNewRel {
10730let Inst{13-11} = 0b100;
10731let Inst{31-21} = 0b10011011100;
10732let isPredicated = 1;
10733let hasNewValue = 1;
10734let opNewValue = 0;
10735let addrMode = PostInc;
10736let accessSize = WordAccess;
10737let mayLoad = 1;
10738let BaseOpcode = "L2_loadri_pi";
10739let Constraints = "$Rx32 = $Rx32in";
10740}
10741def L2_ploadrit_zomap : HInst<
10742(outs IntRegs:$Rd32),
10743(ins PredRegs:$Pt4, IntRegs:$Rs32),
10744"if ($Pt4) $Rd32 = memw($Rs32)",
10745tc_5ef37dc4, TypeMAPPING> {
10746let hasNewValue = 1;
10747let opNewValue = 0;
10748let isPseudo = 1;
10749let isCodeGenOnly = 1;
10750}
10751def L2_ploadritnew_io : HInst<
10752(outs IntRegs:$Rd32),
10753(ins PredRegs:$Pt4, IntRegs:$Rs32, u30_2Imm:$Ii),
10754"if ($Pt4.new) $Rd32 = memw($Rs32+#$Ii)",
10755tc_44d3da28, TypeV2LDST>, Enc_f82eaf, AddrModeRel {
10756let Inst{13-13} = 0b0;
10757let Inst{31-21} = 0b01000011100;
10758let isPredicated = 1;
10759let hasNewValue = 1;
10760let opNewValue = 0;
10761let addrMode = BaseImmOffset;
10762let accessSize = WordAccess;
10763let isPredicatedNew = 1;
10764let mayLoad = 1;
10765let CextOpcode = "L2_loadri";
10766let BaseOpcode = "L2_loadri_io";
10767let isExtendable = 1;
10768let opExtendable = 3;
10769let isExtentSigned = 0;
10770let opExtentBits = 8;
10771let opExtentAlign = 2;
10772}
10773def L2_ploadritnew_pi : HInst<
10774(outs IntRegs:$Rd32, IntRegs:$Rx32),
10775(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_2Imm:$Ii),
10776"if ($Pt4.new) $Rd32 = memw($Rx32++#$Ii)",
10777tc_e9f3243f, TypeLD>, Enc_b97f71, PredNewRel {
10778let Inst{13-11} = 0b110;
10779let Inst{31-21} = 0b10011011100;
10780let isPredicated = 1;
10781let hasNewValue = 1;
10782let opNewValue = 0;
10783let addrMode = PostInc;
10784let accessSize = WordAccess;
10785let isPredicatedNew = 1;
10786let mayLoad = 1;
10787let BaseOpcode = "L2_loadri_pi";
10788let Constraints = "$Rx32 = $Rx32in";
10789}
10790def L2_ploadritnew_zomap : HInst<
10791(outs IntRegs:$Rd32),
10792(ins PredRegs:$Pt4, IntRegs:$Rs32),
10793"if ($Pt4.new) $Rd32 = memw($Rs32)",
10794tc_44d3da28, TypeMAPPING> {
10795let hasNewValue = 1;
10796let opNewValue = 0;
10797let isPseudo = 1;
10798let isCodeGenOnly = 1;
10799}
10800def L2_ploadrubf_io : HInst<
10801(outs IntRegs:$Rd32),
10802(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10803"if (!$Pt4) $Rd32 = memub($Rs32+#$Ii)",
10804tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10805let Inst{13-13} = 0b0;
10806let Inst{31-21} = 0b01000101001;
10807let isPredicated = 1;
10808let isPredicatedFalse = 1;
10809let hasNewValue = 1;
10810let opNewValue = 0;
10811let addrMode = BaseImmOffset;
10812let accessSize = ByteAccess;
10813let mayLoad = 1;
10814let CextOpcode = "L2_loadrub";
10815let BaseOpcode = "L2_loadrub_io";
10816let isExtendable = 1;
10817let opExtendable = 3;
10818let isExtentSigned = 0;
10819let opExtentBits = 6;
10820let opExtentAlign = 0;
10821}
10822def L2_ploadrubf_pi : HInst<
10823(outs IntRegs:$Rd32, IntRegs:$Rx32),
10824(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10825"if (!$Pt4) $Rd32 = memub($Rx32++#$Ii)",
10826tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10827let Inst{13-11} = 0b101;
10828let Inst{31-21} = 0b10011011001;
10829let isPredicated = 1;
10830let isPredicatedFalse = 1;
10831let hasNewValue = 1;
10832let opNewValue = 0;
10833let addrMode = PostInc;
10834let accessSize = ByteAccess;
10835let mayLoad = 1;
10836let BaseOpcode = "L2_loadrub_pi";
10837let Constraints = "$Rx32 = $Rx32in";
10838}
10839def L2_ploadrubf_zomap : HInst<
10840(outs IntRegs:$Rd32),
10841(ins PredRegs:$Pt4, IntRegs:$Rs32),
10842"if (!$Pt4) $Rd32 = memub($Rs32)",
10843tc_5ef37dc4, TypeMAPPING> {
10844let hasNewValue = 1;
10845let opNewValue = 0;
10846let isPseudo = 1;
10847let isCodeGenOnly = 1;
10848}
10849def L2_ploadrubfnew_io : HInst<
10850(outs IntRegs:$Rd32),
10851(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10852"if (!$Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10853tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10854let Inst{13-13} = 0b0;
10855let Inst{31-21} = 0b01000111001;
10856let isPredicated = 1;
10857let isPredicatedFalse = 1;
10858let hasNewValue = 1;
10859let opNewValue = 0;
10860let addrMode = BaseImmOffset;
10861let accessSize = ByteAccess;
10862let isPredicatedNew = 1;
10863let mayLoad = 1;
10864let CextOpcode = "L2_loadrub";
10865let BaseOpcode = "L2_loadrub_io";
10866let isExtendable = 1;
10867let opExtendable = 3;
10868let isExtentSigned = 0;
10869let opExtentBits = 6;
10870let opExtentAlign = 0;
10871}
10872def L2_ploadrubfnew_pi : HInst<
10873(outs IntRegs:$Rd32, IntRegs:$Rx32),
10874(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10875"if (!$Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10876tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10877let Inst{13-11} = 0b111;
10878let Inst{31-21} = 0b10011011001;
10879let isPredicated = 1;
10880let isPredicatedFalse = 1;
10881let hasNewValue = 1;
10882let opNewValue = 0;
10883let addrMode = PostInc;
10884let accessSize = ByteAccess;
10885let isPredicatedNew = 1;
10886let mayLoad = 1;
10887let BaseOpcode = "L2_loadrub_pi";
10888let Constraints = "$Rx32 = $Rx32in";
10889}
10890def L2_ploadrubfnew_zomap : HInst<
10891(outs IntRegs:$Rd32),
10892(ins PredRegs:$Pt4, IntRegs:$Rs32),
10893"if (!$Pt4.new) $Rd32 = memub($Rs32)",
10894tc_44d3da28, TypeMAPPING> {
10895let hasNewValue = 1;
10896let opNewValue = 0;
10897let isPseudo = 1;
10898let isCodeGenOnly = 1;
10899}
10900def L2_ploadrubt_io : HInst<
10901(outs IntRegs:$Rd32),
10902(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10903"if ($Pt4) $Rd32 = memub($Rs32+#$Ii)",
10904tc_5ef37dc4, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10905let Inst{13-13} = 0b0;
10906let Inst{31-21} = 0b01000001001;
10907let isPredicated = 1;
10908let hasNewValue = 1;
10909let opNewValue = 0;
10910let addrMode = BaseImmOffset;
10911let accessSize = ByteAccess;
10912let mayLoad = 1;
10913let CextOpcode = "L2_loadrub";
10914let BaseOpcode = "L2_loadrub_io";
10915let isExtendable = 1;
10916let opExtendable = 3;
10917let isExtentSigned = 0;
10918let opExtentBits = 6;
10919let opExtentAlign = 0;
10920}
10921def L2_ploadrubt_pi : HInst<
10922(outs IntRegs:$Rd32, IntRegs:$Rx32),
10923(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10924"if ($Pt4) $Rd32 = memub($Rx32++#$Ii)",
10925tc_3c76b0ff, TypeLD>, Enc_f4413a, PredNewRel {
10926let Inst{13-11} = 0b100;
10927let Inst{31-21} = 0b10011011001;
10928let isPredicated = 1;
10929let hasNewValue = 1;
10930let opNewValue = 0;
10931let addrMode = PostInc;
10932let accessSize = ByteAccess;
10933let mayLoad = 1;
10934let BaseOpcode = "L2_loadrub_pi";
10935let Constraints = "$Rx32 = $Rx32in";
10936}
10937def L2_ploadrubt_zomap : HInst<
10938(outs IntRegs:$Rd32),
10939(ins PredRegs:$Pt4, IntRegs:$Rs32),
10940"if ($Pt4) $Rd32 = memub($Rs32)",
10941tc_5ef37dc4, TypeMAPPING> {
10942let hasNewValue = 1;
10943let opNewValue = 0;
10944let isPseudo = 1;
10945let isCodeGenOnly = 1;
10946}
10947def L2_ploadrubtnew_io : HInst<
10948(outs IntRegs:$Rd32),
10949(ins PredRegs:$Pt4, IntRegs:$Rs32, u32_0Imm:$Ii),
10950"if ($Pt4.new) $Rd32 = memub($Rs32+#$Ii)",
10951tc_44d3da28, TypeV2LDST>, Enc_a21d47, AddrModeRel {
10952let Inst{13-13} = 0b0;
10953let Inst{31-21} = 0b01000011001;
10954let isPredicated = 1;
10955let hasNewValue = 1;
10956let opNewValue = 0;
10957let addrMode = BaseImmOffset;
10958let accessSize = ByteAccess;
10959let isPredicatedNew = 1;
10960let mayLoad = 1;
10961let CextOpcode = "L2_loadrub";
10962let BaseOpcode = "L2_loadrub_io";
10963let isExtendable = 1;
10964let opExtendable = 3;
10965let isExtentSigned = 0;
10966let opExtentBits = 6;
10967let opExtentAlign = 0;
10968}
10969def L2_ploadrubtnew_pi : HInst<
10970(outs IntRegs:$Rd32, IntRegs:$Rx32),
10971(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_0Imm:$Ii),
10972"if ($Pt4.new) $Rd32 = memub($Rx32++#$Ii)",
10973tc_e9f3243f, TypeLD>, Enc_f4413a, PredNewRel {
10974let Inst{13-11} = 0b110;
10975let Inst{31-21} = 0b10011011001;
10976let isPredicated = 1;
10977let hasNewValue = 1;
10978let opNewValue = 0;
10979let addrMode = PostInc;
10980let accessSize = ByteAccess;
10981let isPredicatedNew = 1;
10982let mayLoad = 1;
10983let BaseOpcode = "L2_loadrub_pi";
10984let Constraints = "$Rx32 = $Rx32in";
10985}
10986def L2_ploadrubtnew_zomap : HInst<
10987(outs IntRegs:$Rd32),
10988(ins PredRegs:$Pt4, IntRegs:$Rs32),
10989"if ($Pt4.new) $Rd32 = memub($Rs32)",
10990tc_44d3da28, TypeMAPPING> {
10991let hasNewValue = 1;
10992let opNewValue = 0;
10993let isPseudo = 1;
10994let isCodeGenOnly = 1;
10995}
10996def L2_ploadruhf_io : HInst<
10997(outs IntRegs:$Rd32),
10998(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
10999"if (!$Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11000tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11001let Inst{13-13} = 0b0;
11002let Inst{31-21} = 0b01000101011;
11003let isPredicated = 1;
11004let isPredicatedFalse = 1;
11005let hasNewValue = 1;
11006let opNewValue = 0;
11007let addrMode = BaseImmOffset;
11008let accessSize = HalfWordAccess;
11009let mayLoad = 1;
11010let CextOpcode = "L2_loadruh";
11011let BaseOpcode = "L2_loadruh_io";
11012let isExtendable = 1;
11013let opExtendable = 3;
11014let isExtentSigned = 0;
11015let opExtentBits = 7;
11016let opExtentAlign = 1;
11017}
11018def L2_ploadruhf_pi : HInst<
11019(outs IntRegs:$Rd32, IntRegs:$Rx32),
11020(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11021"if (!$Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11022tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
11023let Inst{13-11} = 0b101;
11024let Inst{31-21} = 0b10011011011;
11025let isPredicated = 1;
11026let isPredicatedFalse = 1;
11027let hasNewValue = 1;
11028let opNewValue = 0;
11029let addrMode = PostInc;
11030let accessSize = HalfWordAccess;
11031let mayLoad = 1;
11032let BaseOpcode = "L2_loadruh_pi";
11033let Constraints = "$Rx32 = $Rx32in";
11034}
11035def L2_ploadruhf_zomap : HInst<
11036(outs IntRegs:$Rd32),
11037(ins PredRegs:$Pt4, IntRegs:$Rs32),
11038"if (!$Pt4) $Rd32 = memuh($Rs32)",
11039tc_5ef37dc4, TypeMAPPING> {
11040let hasNewValue = 1;
11041let opNewValue = 0;
11042let isPseudo = 1;
11043let isCodeGenOnly = 1;
11044}
11045def L2_ploadruhfnew_io : HInst<
11046(outs IntRegs:$Rd32),
11047(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11048"if (!$Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11049tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11050let Inst{13-13} = 0b0;
11051let Inst{31-21} = 0b01000111011;
11052let isPredicated = 1;
11053let isPredicatedFalse = 1;
11054let hasNewValue = 1;
11055let opNewValue = 0;
11056let addrMode = BaseImmOffset;
11057let accessSize = HalfWordAccess;
11058let isPredicatedNew = 1;
11059let mayLoad = 1;
11060let CextOpcode = "L2_loadruh";
11061let BaseOpcode = "L2_loadruh_io";
11062let isExtendable = 1;
11063let opExtendable = 3;
11064let isExtentSigned = 0;
11065let opExtentBits = 7;
11066let opExtentAlign = 1;
11067}
11068def L2_ploadruhfnew_pi : HInst<
11069(outs IntRegs:$Rd32, IntRegs:$Rx32),
11070(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11071"if (!$Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11072tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
11073let Inst{13-11} = 0b111;
11074let Inst{31-21} = 0b10011011011;
11075let isPredicated = 1;
11076let isPredicatedFalse = 1;
11077let hasNewValue = 1;
11078let opNewValue = 0;
11079let addrMode = PostInc;
11080let accessSize = HalfWordAccess;
11081let isPredicatedNew = 1;
11082let mayLoad = 1;
11083let BaseOpcode = "L2_loadruh_pi";
11084let Constraints = "$Rx32 = $Rx32in";
11085}
11086def L2_ploadruhfnew_zomap : HInst<
11087(outs IntRegs:$Rd32),
11088(ins PredRegs:$Pt4, IntRegs:$Rs32),
11089"if (!$Pt4.new) $Rd32 = memuh($Rs32)",
11090tc_44d3da28, TypeMAPPING> {
11091let hasNewValue = 1;
11092let opNewValue = 0;
11093let isPseudo = 1;
11094let isCodeGenOnly = 1;
11095}
11096def L2_ploadruht_io : HInst<
11097(outs IntRegs:$Rd32),
11098(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11099"if ($Pt4) $Rd32 = memuh($Rs32+#$Ii)",
11100tc_5ef37dc4, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11101let Inst{13-13} = 0b0;
11102let Inst{31-21} = 0b01000001011;
11103let isPredicated = 1;
11104let hasNewValue = 1;
11105let opNewValue = 0;
11106let addrMode = BaseImmOffset;
11107let accessSize = HalfWordAccess;
11108let mayLoad = 1;
11109let CextOpcode = "L2_loadruh";
11110let BaseOpcode = "L2_loadruh_io";
11111let isExtendable = 1;
11112let opExtendable = 3;
11113let isExtentSigned = 0;
11114let opExtentBits = 7;
11115let opExtentAlign = 1;
11116}
11117def L2_ploadruht_pi : HInst<
11118(outs IntRegs:$Rd32, IntRegs:$Rx32),
11119(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11120"if ($Pt4) $Rd32 = memuh($Rx32++#$Ii)",
11121tc_3c76b0ff, TypeLD>, Enc_733b27, PredNewRel {
11122let Inst{13-11} = 0b100;
11123let Inst{31-21} = 0b10011011011;
11124let isPredicated = 1;
11125let hasNewValue = 1;
11126let opNewValue = 0;
11127let addrMode = PostInc;
11128let accessSize = HalfWordAccess;
11129let mayLoad = 1;
11130let BaseOpcode = "L2_loadruh_pi";
11131let Constraints = "$Rx32 = $Rx32in";
11132}
11133def L2_ploadruht_zomap : HInst<
11134(outs IntRegs:$Rd32),
11135(ins PredRegs:$Pt4, IntRegs:$Rs32),
11136"if ($Pt4) $Rd32 = memuh($Rs32)",
11137tc_5ef37dc4, TypeMAPPING> {
11138let hasNewValue = 1;
11139let opNewValue = 0;
11140let isPseudo = 1;
11141let isCodeGenOnly = 1;
11142}
11143def L2_ploadruhtnew_io : HInst<
11144(outs IntRegs:$Rd32),
11145(ins PredRegs:$Pt4, IntRegs:$Rs32, u31_1Imm:$Ii),
11146"if ($Pt4.new) $Rd32 = memuh($Rs32+#$Ii)",
11147tc_44d3da28, TypeV2LDST>, Enc_a198f6, AddrModeRel {
11148let Inst{13-13} = 0b0;
11149let Inst{31-21} = 0b01000011011;
11150let isPredicated = 1;
11151let hasNewValue = 1;
11152let opNewValue = 0;
11153let addrMode = BaseImmOffset;
11154let accessSize = HalfWordAccess;
11155let isPredicatedNew = 1;
11156let mayLoad = 1;
11157let CextOpcode = "L2_loadruh";
11158let BaseOpcode = "L2_loadruh_io";
11159let isExtendable = 1;
11160let opExtendable = 3;
11161let isExtentSigned = 0;
11162let opExtentBits = 7;
11163let opExtentAlign = 1;
11164}
11165def L2_ploadruhtnew_pi : HInst<
11166(outs IntRegs:$Rd32, IntRegs:$Rx32),
11167(ins PredRegs:$Pt4, IntRegs:$Rx32in, s4_1Imm:$Ii),
11168"if ($Pt4.new) $Rd32 = memuh($Rx32++#$Ii)",
11169tc_e9f3243f, TypeLD>, Enc_733b27, PredNewRel {
11170let Inst{13-11} = 0b110;
11171let Inst{31-21} = 0b10011011011;
11172let isPredicated = 1;
11173let hasNewValue = 1;
11174let opNewValue = 0;
11175let addrMode = PostInc;
11176let accessSize = HalfWordAccess;
11177let isPredicatedNew = 1;
11178let mayLoad = 1;
11179let BaseOpcode = "L2_loadruh_pi";
11180let Constraints = "$Rx32 = $Rx32in";
11181}
11182def L2_ploadruhtnew_zomap : HInst<
11183(outs IntRegs:$Rd32),
11184(ins PredRegs:$Pt4, IntRegs:$Rs32),
11185"if ($Pt4.new) $Rd32 = memuh($Rs32)",
11186tc_44d3da28, TypeMAPPING> {
11187let hasNewValue = 1;
11188let opNewValue = 0;
11189let isPseudo = 1;
11190let isCodeGenOnly = 1;
11191}
11192def L4_add_memopb_io : HInst<
11193(outs),
11194(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11195"memb($Rs32+#$Ii) += $Rt32",
11196tc_7186d325, TypeV4LDST>, Enc_d44e31 {
11197let Inst{6-5} = 0b00;
11198let Inst{13-13} = 0b0;
11199let Inst{31-21} = 0b00111110000;
11200let addrMode = BaseImmOffset;
11201let accessSize = ByteAccess;
11202let mayLoad = 1;
11203let isRestrictNoSlot1Store = 1;
11204let mayStore = 1;
11205let isExtendable = 1;
11206let opExtendable = 1;
11207let isExtentSigned = 0;
11208let opExtentBits = 6;
11209let opExtentAlign = 0;
11210}
11211def L4_add_memopb_zomap : HInst<
11212(outs),
11213(ins IntRegs:$Rs32, IntRegs:$Rt32),
11214"memb($Rs32) += $Rt32",
11215tc_7186d325, TypeMAPPING> {
11216let isPseudo = 1;
11217let isCodeGenOnly = 1;
11218}
11219def L4_add_memoph_io : HInst<
11220(outs),
11221(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11222"memh($Rs32+#$Ii) += $Rt32",
11223tc_7186d325, TypeV4LDST>, Enc_163a3c {
11224let Inst{6-5} = 0b00;
11225let Inst{13-13} = 0b0;
11226let Inst{31-21} = 0b00111110001;
11227let addrMode = BaseImmOffset;
11228let accessSize = HalfWordAccess;
11229let mayLoad = 1;
11230let isRestrictNoSlot1Store = 1;
11231let mayStore = 1;
11232let isExtendable = 1;
11233let opExtendable = 1;
11234let isExtentSigned = 0;
11235let opExtentBits = 7;
11236let opExtentAlign = 1;
11237}
11238def L4_add_memoph_zomap : HInst<
11239(outs),
11240(ins IntRegs:$Rs32, IntRegs:$Rt32),
11241"memh($Rs32) += $Rt32",
11242tc_7186d325, TypeMAPPING> {
11243let isPseudo = 1;
11244let isCodeGenOnly = 1;
11245}
11246def L4_add_memopw_io : HInst<
11247(outs),
11248(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11249"memw($Rs32+#$Ii) += $Rt32",
11250tc_7186d325, TypeV4LDST>, Enc_226535 {
11251let Inst{6-5} = 0b00;
11252let Inst{13-13} = 0b0;
11253let Inst{31-21} = 0b00111110010;
11254let addrMode = BaseImmOffset;
11255let accessSize = WordAccess;
11256let mayLoad = 1;
11257let isRestrictNoSlot1Store = 1;
11258let mayStore = 1;
11259let isExtendable = 1;
11260let opExtendable = 1;
11261let isExtentSigned = 0;
11262let opExtentBits = 8;
11263let opExtentAlign = 2;
11264}
11265def L4_add_memopw_zomap : HInst<
11266(outs),
11267(ins IntRegs:$Rs32, IntRegs:$Rt32),
11268"memw($Rs32) += $Rt32",
11269tc_7186d325, TypeMAPPING> {
11270let isPseudo = 1;
11271let isCodeGenOnly = 1;
11272}
11273def L4_and_memopb_io : HInst<
11274(outs),
11275(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
11276"memb($Rs32+#$Ii) &= $Rt32",
11277tc_7186d325, TypeV4LDST>, Enc_d44e31 {
11278let Inst{6-5} = 0b10;
11279let Inst{13-13} = 0b0;
11280let Inst{31-21} = 0b00111110000;
11281let addrMode = BaseImmOffset;
11282let accessSize = ByteAccess;
11283let mayLoad = 1;
11284let isRestrictNoSlot1Store = 1;
11285let mayStore = 1;
11286let isExtendable = 1;
11287let opExtendable = 1;
11288let isExtentSigned = 0;
11289let opExtentBits = 6;
11290let opExtentAlign = 0;
11291}
11292def L4_and_memopb_zomap : HInst<
11293(outs),
11294(ins IntRegs:$Rs32, IntRegs:$Rt32),
11295"memb($Rs32) &= $Rt32",
11296tc_7186d325, TypeMAPPING> {
11297let isPseudo = 1;
11298let isCodeGenOnly = 1;
11299}
11300def L4_and_memoph_io : HInst<
11301(outs),
11302(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
11303"memh($Rs32+#$Ii) &= $Rt32",
11304tc_7186d325, TypeV4LDST>, Enc_163a3c {
11305let Inst{6-5} = 0b10;
11306let Inst{13-13} = 0b0;
11307let Inst{31-21} = 0b00111110001;
11308let addrMode = BaseImmOffset;
11309let accessSize = HalfWordAccess;
11310let mayLoad = 1;
11311let isRestrictNoSlot1Store = 1;
11312let mayStore = 1;
11313let isExtendable = 1;
11314let opExtendable = 1;
11315let isExtentSigned = 0;
11316let opExtentBits = 7;
11317let opExtentAlign = 1;
11318}
11319def L4_and_memoph_zomap : HInst<
11320(outs),
11321(ins IntRegs:$Rs32, IntRegs:$Rt32),
11322"memh($Rs32) &= $Rt32",
11323tc_7186d325, TypeMAPPING> {
11324let isPseudo = 1;
11325let isCodeGenOnly = 1;
11326}
11327def L4_and_memopw_io : HInst<
11328(outs),
11329(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
11330"memw($Rs32+#$Ii) &= $Rt32",
11331tc_7186d325, TypeV4LDST>, Enc_226535 {
11332let Inst{6-5} = 0b10;
11333let Inst{13-13} = 0b0;
11334let Inst{31-21} = 0b00111110010;
11335let addrMode = BaseImmOffset;
11336let accessSize = WordAccess;
11337let mayLoad = 1;
11338let isRestrictNoSlot1Store = 1;
11339let mayStore = 1;
11340let isExtendable = 1;
11341let opExtendable = 1;
11342let isExtentSigned = 0;
11343let opExtentBits = 8;
11344let opExtentAlign = 2;
11345}
11346def L4_and_memopw_zomap : HInst<
11347(outs),
11348(ins IntRegs:$Rs32, IntRegs:$Rt32),
11349"memw($Rs32) &= $Rt32",
11350tc_7186d325, TypeMAPPING> {
11351let isPseudo = 1;
11352let isCodeGenOnly = 1;
11353}
11354def L4_iadd_memopb_io : HInst<
11355(outs),
11356(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11357"memb($Rs32+#$Ii) += #$II",
11358tc_096199d3, TypeV4LDST>, Enc_46c951 {
11359let Inst{6-5} = 0b00;
11360let Inst{13-13} = 0b0;
11361let Inst{31-21} = 0b00111111000;
11362let addrMode = BaseImmOffset;
11363let accessSize = ByteAccess;
11364let mayLoad = 1;
11365let isRestrictNoSlot1Store = 1;
11366let mayStore = 1;
11367let isExtendable = 1;
11368let opExtendable = 1;
11369let isExtentSigned = 0;
11370let opExtentBits = 6;
11371let opExtentAlign = 0;
11372}
11373def L4_iadd_memopb_zomap : HInst<
11374(outs),
11375(ins IntRegs:$Rs32, u5_0Imm:$II),
11376"memb($Rs32) += #$II",
11377tc_096199d3, TypeMAPPING> {
11378let isPseudo = 1;
11379let isCodeGenOnly = 1;
11380}
11381def L4_iadd_memoph_io : HInst<
11382(outs),
11383(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11384"memh($Rs32+#$Ii) += #$II",
11385tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11386let Inst{6-5} = 0b00;
11387let Inst{13-13} = 0b0;
11388let Inst{31-21} = 0b00111111001;
11389let addrMode = BaseImmOffset;
11390let accessSize = HalfWordAccess;
11391let mayLoad = 1;
11392let isRestrictNoSlot1Store = 1;
11393let mayStore = 1;
11394let isExtendable = 1;
11395let opExtendable = 1;
11396let isExtentSigned = 0;
11397let opExtentBits = 7;
11398let opExtentAlign = 1;
11399}
11400def L4_iadd_memoph_zomap : HInst<
11401(outs),
11402(ins IntRegs:$Rs32, u5_0Imm:$II),
11403"memh($Rs32) += #$II",
11404tc_096199d3, TypeMAPPING> {
11405let isPseudo = 1;
11406let isCodeGenOnly = 1;
11407}
11408def L4_iadd_memopw_io : HInst<
11409(outs),
11410(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11411"memw($Rs32+#$Ii) += #$II",
11412tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11413let Inst{6-5} = 0b00;
11414let Inst{13-13} = 0b0;
11415let Inst{31-21} = 0b00111111010;
11416let addrMode = BaseImmOffset;
11417let accessSize = WordAccess;
11418let mayLoad = 1;
11419let isRestrictNoSlot1Store = 1;
11420let mayStore = 1;
11421let isExtendable = 1;
11422let opExtendable = 1;
11423let isExtentSigned = 0;
11424let opExtentBits = 8;
11425let opExtentAlign = 2;
11426}
11427def L4_iadd_memopw_zomap : HInst<
11428(outs),
11429(ins IntRegs:$Rs32, u5_0Imm:$II),
11430"memw($Rs32) += #$II",
11431tc_096199d3, TypeMAPPING> {
11432let isPseudo = 1;
11433let isCodeGenOnly = 1;
11434}
11435def L4_iand_memopb_io : HInst<
11436(outs),
11437(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11438"memb($Rs32+#$Ii) = clrbit(#$II)",
11439tc_096199d3, TypeV4LDST>, Enc_46c951 {
11440let Inst{6-5} = 0b10;
11441let Inst{13-13} = 0b0;
11442let Inst{31-21} = 0b00111111000;
11443let addrMode = BaseImmOffset;
11444let accessSize = ByteAccess;
11445let mayLoad = 1;
11446let isRestrictNoSlot1Store = 1;
11447let mayStore = 1;
11448let isExtendable = 1;
11449let opExtendable = 1;
11450let isExtentSigned = 0;
11451let opExtentBits = 6;
11452let opExtentAlign = 0;
11453}
11454def L4_iand_memopb_zomap : HInst<
11455(outs),
11456(ins IntRegs:$Rs32, u5_0Imm:$II),
11457"memb($Rs32) = clrbit(#$II)",
11458tc_096199d3, TypeMAPPING> {
11459let isPseudo = 1;
11460let isCodeGenOnly = 1;
11461}
11462def L4_iand_memoph_io : HInst<
11463(outs),
11464(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11465"memh($Rs32+#$Ii) = clrbit(#$II)",
11466tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11467let Inst{6-5} = 0b10;
11468let Inst{13-13} = 0b0;
11469let Inst{31-21} = 0b00111111001;
11470let addrMode = BaseImmOffset;
11471let accessSize = HalfWordAccess;
11472let mayLoad = 1;
11473let isRestrictNoSlot1Store = 1;
11474let mayStore = 1;
11475let isExtendable = 1;
11476let opExtendable = 1;
11477let isExtentSigned = 0;
11478let opExtentBits = 7;
11479let opExtentAlign = 1;
11480}
11481def L4_iand_memoph_zomap : HInst<
11482(outs),
11483(ins IntRegs:$Rs32, u5_0Imm:$II),
11484"memh($Rs32) = clrbit(#$II)",
11485tc_096199d3, TypeMAPPING> {
11486let isPseudo = 1;
11487let isCodeGenOnly = 1;
11488}
11489def L4_iand_memopw_io : HInst<
11490(outs),
11491(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11492"memw($Rs32+#$Ii) = clrbit(#$II)",
11493tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11494let Inst{6-5} = 0b10;
11495let Inst{13-13} = 0b0;
11496let Inst{31-21} = 0b00111111010;
11497let addrMode = BaseImmOffset;
11498let accessSize = WordAccess;
11499let mayLoad = 1;
11500let isRestrictNoSlot1Store = 1;
11501let mayStore = 1;
11502let isExtendable = 1;
11503let opExtendable = 1;
11504let isExtentSigned = 0;
11505let opExtentBits = 8;
11506let opExtentAlign = 2;
11507}
11508def L4_iand_memopw_zomap : HInst<
11509(outs),
11510(ins IntRegs:$Rs32, u5_0Imm:$II),
11511"memw($Rs32) = clrbit(#$II)",
11512tc_096199d3, TypeMAPPING> {
11513let isPseudo = 1;
11514let isCodeGenOnly = 1;
11515}
11516def L4_ior_memopb_io : HInst<
11517(outs),
11518(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11519"memb($Rs32+#$Ii) = setbit(#$II)",
11520tc_096199d3, TypeV4LDST>, Enc_46c951 {
11521let Inst{6-5} = 0b11;
11522let Inst{13-13} = 0b0;
11523let Inst{31-21} = 0b00111111000;
11524let addrMode = BaseImmOffset;
11525let accessSize = ByteAccess;
11526let mayLoad = 1;
11527let isRestrictNoSlot1Store = 1;
11528let mayStore = 1;
11529let isExtendable = 1;
11530let opExtendable = 1;
11531let isExtentSigned = 0;
11532let opExtentBits = 6;
11533let opExtentAlign = 0;
11534}
11535def L4_ior_memopb_zomap : HInst<
11536(outs),
11537(ins IntRegs:$Rs32, u5_0Imm:$II),
11538"memb($Rs32) = setbit(#$II)",
11539tc_096199d3, TypeMAPPING> {
11540let isPseudo = 1;
11541let isCodeGenOnly = 1;
11542}
11543def L4_ior_memoph_io : HInst<
11544(outs),
11545(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11546"memh($Rs32+#$Ii) = setbit(#$II)",
11547tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11548let Inst{6-5} = 0b11;
11549let Inst{13-13} = 0b0;
11550let Inst{31-21} = 0b00111111001;
11551let addrMode = BaseImmOffset;
11552let accessSize = HalfWordAccess;
11553let mayLoad = 1;
11554let isRestrictNoSlot1Store = 1;
11555let mayStore = 1;
11556let isExtendable = 1;
11557let opExtendable = 1;
11558let isExtentSigned = 0;
11559let opExtentBits = 7;
11560let opExtentAlign = 1;
11561}
11562def L4_ior_memoph_zomap : HInst<
11563(outs),
11564(ins IntRegs:$Rs32, u5_0Imm:$II),
11565"memh($Rs32) = setbit(#$II)",
11566tc_096199d3, TypeMAPPING> {
11567let isPseudo = 1;
11568let isCodeGenOnly = 1;
11569}
11570def L4_ior_memopw_io : HInst<
11571(outs),
11572(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11573"memw($Rs32+#$Ii) = setbit(#$II)",
11574tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11575let Inst{6-5} = 0b11;
11576let Inst{13-13} = 0b0;
11577let Inst{31-21} = 0b00111111010;
11578let addrMode = BaseImmOffset;
11579let accessSize = WordAccess;
11580let mayLoad = 1;
11581let isRestrictNoSlot1Store = 1;
11582let mayStore = 1;
11583let isExtendable = 1;
11584let opExtendable = 1;
11585let isExtentSigned = 0;
11586let opExtentBits = 8;
11587let opExtentAlign = 2;
11588}
11589def L4_ior_memopw_zomap : HInst<
11590(outs),
11591(ins IntRegs:$Rs32, u5_0Imm:$II),
11592"memw($Rs32) = setbit(#$II)",
11593tc_096199d3, TypeMAPPING> {
11594let isPseudo = 1;
11595let isCodeGenOnly = 1;
11596}
11597def L4_isub_memopb_io : HInst<
11598(outs),
11599(ins IntRegs:$Rs32, u32_0Imm:$Ii, u5_0Imm:$II),
11600"memb($Rs32+#$Ii) -= #$II",
11601tc_096199d3, TypeV4LDST>, Enc_46c951 {
11602let Inst{6-5} = 0b01;
11603let Inst{13-13} = 0b0;
11604let Inst{31-21} = 0b00111111000;
11605let addrMode = BaseImmOffset;
11606let accessSize = ByteAccess;
11607let mayLoad = 1;
11608let isRestrictNoSlot1Store = 1;
11609let mayStore = 1;
11610let isExtendable = 1;
11611let opExtendable = 1;
11612let isExtentSigned = 0;
11613let opExtentBits = 6;
11614let opExtentAlign = 0;
11615}
11616def L4_isub_memopb_zomap : HInst<
11617(outs),
11618(ins IntRegs:$Rs32, u5_0Imm:$II),
11619"memb($Rs32) -= #$II",
11620tc_096199d3, TypeMAPPING> {
11621let isPseudo = 1;
11622let isCodeGenOnly = 1;
11623}
11624def L4_isub_memoph_io : HInst<
11625(outs),
11626(ins IntRegs:$Rs32, u31_1Imm:$Ii, u5_0Imm:$II),
11627"memh($Rs32+#$Ii) -= #$II",
11628tc_096199d3, TypeV4LDST>, Enc_e66a97 {
11629let Inst{6-5} = 0b01;
11630let Inst{13-13} = 0b0;
11631let Inst{31-21} = 0b00111111001;
11632let addrMode = BaseImmOffset;
11633let accessSize = HalfWordAccess;
11634let mayLoad = 1;
11635let isRestrictNoSlot1Store = 1;
11636let mayStore = 1;
11637let isExtendable = 1;
11638let opExtendable = 1;
11639let isExtentSigned = 0;
11640let opExtentBits = 7;
11641let opExtentAlign = 1;
11642}
11643def L4_isub_memoph_zomap : HInst<
11644(outs),
11645(ins IntRegs:$Rs32, u5_0Imm:$II),
11646"memh($Rs32) -= #$II",
11647tc_096199d3, TypeMAPPING> {
11648let isPseudo = 1;
11649let isCodeGenOnly = 1;
11650}
11651def L4_isub_memopw_io : HInst<
11652(outs),
11653(ins IntRegs:$Rs32, u30_2Imm:$Ii, u5_0Imm:$II),
11654"memw($Rs32+#$Ii) -= #$II",
11655tc_096199d3, TypeV4LDST>, Enc_84b2cd {
11656let Inst{6-5} = 0b01;
11657let Inst{13-13} = 0b0;
11658let Inst{31-21} = 0b00111111010;
11659let addrMode = BaseImmOffset;
11660let accessSize = WordAccess;
11661let mayLoad = 1;
11662let isRestrictNoSlot1Store = 1;
11663let mayStore = 1;
11664let isExtendable = 1;
11665let opExtendable = 1;
11666let isExtentSigned = 0;
11667let opExtentBits = 8;
11668let opExtentAlign = 2;
11669}
11670def L4_isub_memopw_zomap : HInst<
11671(outs),
11672(ins IntRegs:$Rs32, u5_0Imm:$II),
11673"memw($Rs32) -= #$II",
11674tc_096199d3, TypeMAPPING> {
11675let isPseudo = 1;
11676let isCodeGenOnly = 1;
11677}
11678def L4_loadalignb_ap : HInst<
11679(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11680(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11681"$Ryy32 = memb_fifo($Re32=#$II)",
11682tc_7a91e76a, TypeLD>, Enc_f394d3 {
11683let Inst{7-7} = 0b0;
11684let Inst{13-12} = 0b01;
11685let Inst{31-21} = 0b10011010100;
11686let addrMode = AbsoluteSet;
11687let accessSize = ByteAccess;
11688let mayLoad = 1;
11689let isExtended = 1;
11690let DecoderNamespace = "MustExtend";
11691let isExtendable = 1;
11692let opExtendable = 3;
11693let isExtentSigned = 0;
11694let opExtentBits = 6;
11695let opExtentAlign = 0;
11696let Constraints = "$Ryy32 = $Ryy32in";
11697}
11698def L4_loadalignb_ur : HInst<
11699(outs DoubleRegs:$Ryy32),
11700(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11701"$Ryy32 = memb_fifo($Rt32<<#$Ii+#$II)",
11702tc_a5d4aeec, TypeLD>, Enc_04c959 {
11703let Inst{12-12} = 0b1;
11704let Inst{31-21} = 0b10011100100;
11705let addrMode = BaseLongOffset;
11706let accessSize = ByteAccess;
11707let mayLoad = 1;
11708let isExtended = 1;
11709let InputType = "imm";
11710let DecoderNamespace = "MustExtend";
11711let isExtendable = 1;
11712let opExtendable = 4;
11713let isExtentSigned = 0;
11714let opExtentBits = 6;
11715let opExtentAlign = 0;
11716let Constraints = "$Ryy32 = $Ryy32in";
11717}
11718def L4_loadalignh_ap : HInst<
11719(outs DoubleRegs:$Ryy32, IntRegs:$Re32),
11720(ins DoubleRegs:$Ryy32in, u32_0Imm:$II),
11721"$Ryy32 = memh_fifo($Re32=#$II)",
11722tc_7a91e76a, TypeLD>, Enc_f394d3 {
11723let Inst{7-7} = 0b0;
11724let Inst{13-12} = 0b01;
11725let Inst{31-21} = 0b10011010010;
11726let addrMode = AbsoluteSet;
11727let accessSize = HalfWordAccess;
11728let mayLoad = 1;
11729let isExtended = 1;
11730let DecoderNamespace = "MustExtend";
11731let isExtendable = 1;
11732let opExtendable = 3;
11733let isExtentSigned = 0;
11734let opExtentBits = 6;
11735let opExtentAlign = 0;
11736let Constraints = "$Ryy32 = $Ryy32in";
11737}
11738def L4_loadalignh_ur : HInst<
11739(outs DoubleRegs:$Ryy32),
11740(ins DoubleRegs:$Ryy32in, IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11741"$Ryy32 = memh_fifo($Rt32<<#$Ii+#$II)",
11742tc_a5d4aeec, TypeLD>, Enc_04c959 {
11743let Inst{12-12} = 0b1;
11744let Inst{31-21} = 0b10011100010;
11745let addrMode = BaseLongOffset;
11746let accessSize = HalfWordAccess;
11747let mayLoad = 1;
11748let isExtended = 1;
11749let InputType = "imm";
11750let DecoderNamespace = "MustExtend";
11751let isExtendable = 1;
11752let opExtendable = 4;
11753let isExtentSigned = 0;
11754let opExtentBits = 6;
11755let opExtentAlign = 0;
11756let Constraints = "$Ryy32 = $Ryy32in";
11757}
11758def L4_loadbsw2_ap : HInst<
11759(outs IntRegs:$Rd32, IntRegs:$Re32),
11760(ins u32_0Imm:$II),
11761"$Rd32 = membh($Re32=#$II)",
11762tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11763let Inst{7-7} = 0b0;
11764let Inst{13-12} = 0b01;
11765let Inst{31-21} = 0b10011010001;
11766let hasNewValue = 1;
11767let opNewValue = 0;
11768let addrMode = AbsoluteSet;
11769let accessSize = HalfWordAccess;
11770let mayLoad = 1;
11771let isExtended = 1;
11772let DecoderNamespace = "MustExtend";
11773let isExtendable = 1;
11774let opExtendable = 2;
11775let isExtentSigned = 0;
11776let opExtentBits = 6;
11777let opExtentAlign = 0;
11778}
11779def L4_loadbsw2_ur : HInst<
11780(outs IntRegs:$Rd32),
11781(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11782"$Rd32 = membh($Rt32<<#$Ii+#$II)",
11783tc_bab0eed9, TypeLD>, Enc_4f677b {
11784let Inst{12-12} = 0b1;
11785let Inst{31-21} = 0b10011100001;
11786let hasNewValue = 1;
11787let opNewValue = 0;
11788let addrMode = BaseLongOffset;
11789let accessSize = HalfWordAccess;
11790let mayLoad = 1;
11791let isExtended = 1;
11792let InputType = "imm";
11793let DecoderNamespace = "MustExtend";
11794let isExtendable = 1;
11795let opExtendable = 3;
11796let isExtentSigned = 0;
11797let opExtentBits = 6;
11798let opExtentAlign = 0;
11799}
11800def L4_loadbsw4_ap : HInst<
11801(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11802(ins u32_0Imm:$II),
11803"$Rdd32 = membh($Re32=#$II)",
11804tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11805let Inst{7-7} = 0b0;
11806let Inst{13-12} = 0b01;
11807let Inst{31-21} = 0b10011010111;
11808let addrMode = AbsoluteSet;
11809let accessSize = WordAccess;
11810let mayLoad = 1;
11811let isExtended = 1;
11812let DecoderNamespace = "MustExtend";
11813let isExtendable = 1;
11814let opExtendable = 2;
11815let isExtentSigned = 0;
11816let opExtentBits = 6;
11817let opExtentAlign = 0;
11818}
11819def L4_loadbsw4_ur : HInst<
11820(outs DoubleRegs:$Rdd32),
11821(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11822"$Rdd32 = membh($Rt32<<#$Ii+#$II)",
11823tc_bab0eed9, TypeLD>, Enc_6185fe {
11824let Inst{12-12} = 0b1;
11825let Inst{31-21} = 0b10011100111;
11826let addrMode = BaseLongOffset;
11827let accessSize = WordAccess;
11828let mayLoad = 1;
11829let isExtended = 1;
11830let InputType = "imm";
11831let DecoderNamespace = "MustExtend";
11832let isExtendable = 1;
11833let opExtendable = 3;
11834let isExtentSigned = 0;
11835let opExtentBits = 6;
11836let opExtentAlign = 0;
11837}
11838def L4_loadbzw2_ap : HInst<
11839(outs IntRegs:$Rd32, IntRegs:$Re32),
11840(ins u32_0Imm:$II),
11841"$Rd32 = memubh($Re32=#$II)",
11842tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11843let Inst{7-7} = 0b0;
11844let Inst{13-12} = 0b01;
11845let Inst{31-21} = 0b10011010011;
11846let hasNewValue = 1;
11847let opNewValue = 0;
11848let addrMode = AbsoluteSet;
11849let accessSize = HalfWordAccess;
11850let mayLoad = 1;
11851let isExtended = 1;
11852let DecoderNamespace = "MustExtend";
11853let isExtendable = 1;
11854let opExtendable = 2;
11855let isExtentSigned = 0;
11856let opExtentBits = 6;
11857let opExtentAlign = 0;
11858}
11859def L4_loadbzw2_ur : HInst<
11860(outs IntRegs:$Rd32),
11861(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11862"$Rd32 = memubh($Rt32<<#$Ii+#$II)",
11863tc_bab0eed9, TypeLD>, Enc_4f677b {
11864let Inst{12-12} = 0b1;
11865let Inst{31-21} = 0b10011100011;
11866let hasNewValue = 1;
11867let opNewValue = 0;
11868let addrMode = BaseLongOffset;
11869let accessSize = HalfWordAccess;
11870let mayLoad = 1;
11871let isExtended = 1;
11872let InputType = "imm";
11873let DecoderNamespace = "MustExtend";
11874let isExtendable = 1;
11875let opExtendable = 3;
11876let isExtentSigned = 0;
11877let opExtentBits = 6;
11878let opExtentAlign = 0;
11879}
11880def L4_loadbzw4_ap : HInst<
11881(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11882(ins u32_0Imm:$II),
11883"$Rdd32 = memubh($Re32=#$II)",
11884tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11885let Inst{7-7} = 0b0;
11886let Inst{13-12} = 0b01;
11887let Inst{31-21} = 0b10011010101;
11888let addrMode = AbsoluteSet;
11889let accessSize = WordAccess;
11890let mayLoad = 1;
11891let isExtended = 1;
11892let DecoderNamespace = "MustExtend";
11893let isExtendable = 1;
11894let opExtendable = 2;
11895let isExtentSigned = 0;
11896let opExtentBits = 6;
11897let opExtentAlign = 0;
11898}
11899def L4_loadbzw4_ur : HInst<
11900(outs DoubleRegs:$Rdd32),
11901(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11902"$Rdd32 = memubh($Rt32<<#$Ii+#$II)",
11903tc_bab0eed9, TypeLD>, Enc_6185fe {
11904let Inst{12-12} = 0b1;
11905let Inst{31-21} = 0b10011100101;
11906let addrMode = BaseLongOffset;
11907let accessSize = WordAccess;
11908let mayLoad = 1;
11909let isExtended = 1;
11910let InputType = "imm";
11911let DecoderNamespace = "MustExtend";
11912let isExtendable = 1;
11913let opExtendable = 3;
11914let isExtentSigned = 0;
11915let opExtentBits = 6;
11916let opExtentAlign = 0;
11917}
11918def L4_loadd_locked : HInst<
11919(outs DoubleRegs:$Rdd32),
11920(ins IntRegs:$Rs32),
11921"$Rdd32 = memd_locked($Rs32)",
11922tc_b43e7930, TypeLD>, Enc_3a3d62 {
11923let Inst{13-5} = 0b010000000;
11924let Inst{31-21} = 0b10010010000;
11925let accessSize = DoubleWordAccess;
11926let mayLoad = 1;
11927let isSoloAX = 1;
11928}
11929def L4_loadrb_ap : HInst<
11930(outs IntRegs:$Rd32, IntRegs:$Re32),
11931(ins u32_0Imm:$II),
11932"$Rd32 = memb($Re32=#$II)",
11933tc_3b5b7ef9, TypeLD>, Enc_323f2d {
11934let Inst{7-7} = 0b0;
11935let Inst{13-12} = 0b01;
11936let Inst{31-21} = 0b10011011000;
11937let hasNewValue = 1;
11938let opNewValue = 0;
11939let addrMode = AbsoluteSet;
11940let accessSize = ByteAccess;
11941let mayLoad = 1;
11942let isExtended = 1;
11943let DecoderNamespace = "MustExtend";
11944let isExtendable = 1;
11945let opExtendable = 2;
11946let isExtentSigned = 0;
11947let opExtentBits = 6;
11948let opExtentAlign = 0;
11949}
11950def L4_loadrb_rr : HInst<
11951(outs IntRegs:$Rd32),
11952(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
11953"$Rd32 = memb($Rs32+$Rt32<<#$Ii)",
11954tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
11955let Inst{6-5} = 0b00;
11956let Inst{31-21} = 0b00111010000;
11957let hasNewValue = 1;
11958let opNewValue = 0;
11959let addrMode = BaseRegOffset;
11960let accessSize = ByteAccess;
11961let mayLoad = 1;
11962let CextOpcode = "L2_loadrb";
11963let InputType = "reg";
11964let BaseOpcode = "L4_loadrb_rr";
11965let isPredicable = 1;
11966}
11967def L4_loadrb_ur : HInst<
11968(outs IntRegs:$Rd32),
11969(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
11970"$Rd32 = memb($Rt32<<#$Ii+#$II)",
11971tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
11972let Inst{12-12} = 0b1;
11973let Inst{31-21} = 0b10011101000;
11974let hasNewValue = 1;
11975let opNewValue = 0;
11976let addrMode = BaseLongOffset;
11977let accessSize = ByteAccess;
11978let mayLoad = 1;
11979let isExtended = 1;
11980let CextOpcode = "L2_loadrb";
11981let InputType = "imm";
11982let DecoderNamespace = "MustExtend";
11983let isExtendable = 1;
11984let opExtendable = 3;
11985let isExtentSigned = 0;
11986let opExtentBits = 6;
11987let opExtentAlign = 0;
11988}
11989def L4_loadrd_ap : HInst<
11990(outs DoubleRegs:$Rdd32, IntRegs:$Re32),
11991(ins u32_0Imm:$II),
11992"$Rdd32 = memd($Re32=#$II)",
11993tc_3b5b7ef9, TypeLD>, Enc_7fa7f6 {
11994let Inst{7-7} = 0b0;
11995let Inst{13-12} = 0b01;
11996let Inst{31-21} = 0b10011011110;
11997let addrMode = AbsoluteSet;
11998let accessSize = DoubleWordAccess;
11999let mayLoad = 1;
12000let isExtended = 1;
12001let DecoderNamespace = "MustExtend";
12002let isExtendable = 1;
12003let opExtendable = 2;
12004let isExtentSigned = 0;
12005let opExtentBits = 6;
12006let opExtentAlign = 0;
12007}
12008def L4_loadrd_rr : HInst<
12009(outs DoubleRegs:$Rdd32),
12010(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12011"$Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12012tc_bf061958, TypeLD>, Enc_84bff1, AddrModeRel, ImmRegShl {
12013let Inst{6-5} = 0b00;
12014let Inst{31-21} = 0b00111010110;
12015let addrMode = BaseRegOffset;
12016let accessSize = DoubleWordAccess;
12017let mayLoad = 1;
12018let CextOpcode = "L2_loadrd";
12019let InputType = "reg";
12020let BaseOpcode = "L4_loadrd_rr";
12021let isPredicable = 1;
12022}
12023def L4_loadrd_ur : HInst<
12024(outs DoubleRegs:$Rdd32),
12025(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12026"$Rdd32 = memd($Rt32<<#$Ii+#$II)",
12027tc_bab0eed9, TypeLD>, Enc_6185fe, AddrModeRel, ImmRegShl {
12028let Inst{12-12} = 0b1;
12029let Inst{31-21} = 0b10011101110;
12030let addrMode = BaseLongOffset;
12031let accessSize = DoubleWordAccess;
12032let mayLoad = 1;
12033let isExtended = 1;
12034let CextOpcode = "L2_loadrd";
12035let InputType = "imm";
12036let DecoderNamespace = "MustExtend";
12037let isExtendable = 1;
12038let opExtendable = 3;
12039let isExtentSigned = 0;
12040let opExtentBits = 6;
12041let opExtentAlign = 0;
12042}
12043def L4_loadrh_ap : HInst<
12044(outs IntRegs:$Rd32, IntRegs:$Re32),
12045(ins u32_0Imm:$II),
12046"$Rd32 = memh($Re32=#$II)",
12047tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12048let Inst{7-7} = 0b0;
12049let Inst{13-12} = 0b01;
12050let Inst{31-21} = 0b10011011010;
12051let hasNewValue = 1;
12052let opNewValue = 0;
12053let addrMode = AbsoluteSet;
12054let accessSize = HalfWordAccess;
12055let mayLoad = 1;
12056let isExtended = 1;
12057let DecoderNamespace = "MustExtend";
12058let isExtendable = 1;
12059let opExtendable = 2;
12060let isExtentSigned = 0;
12061let opExtentBits = 6;
12062let opExtentAlign = 0;
12063}
12064def L4_loadrh_rr : HInst<
12065(outs IntRegs:$Rd32),
12066(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12067"$Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12068tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12069let Inst{6-5} = 0b00;
12070let Inst{31-21} = 0b00111010010;
12071let hasNewValue = 1;
12072let opNewValue = 0;
12073let addrMode = BaseRegOffset;
12074let accessSize = HalfWordAccess;
12075let mayLoad = 1;
12076let CextOpcode = "L2_loadrh";
12077let InputType = "reg";
12078let BaseOpcode = "L4_loadrh_rr";
12079let isPredicable = 1;
12080}
12081def L4_loadrh_ur : HInst<
12082(outs IntRegs:$Rd32),
12083(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12084"$Rd32 = memh($Rt32<<#$Ii+#$II)",
12085tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12086let Inst{12-12} = 0b1;
12087let Inst{31-21} = 0b10011101010;
12088let hasNewValue = 1;
12089let opNewValue = 0;
12090let addrMode = BaseLongOffset;
12091let accessSize = HalfWordAccess;
12092let mayLoad = 1;
12093let isExtended = 1;
12094let CextOpcode = "L2_loadrh";
12095let InputType = "imm";
12096let DecoderNamespace = "MustExtend";
12097let isExtendable = 1;
12098let opExtendable = 3;
12099let isExtentSigned = 0;
12100let opExtentBits = 6;
12101let opExtentAlign = 0;
12102}
12103def L4_loadri_ap : HInst<
12104(outs IntRegs:$Rd32, IntRegs:$Re32),
12105(ins u32_0Imm:$II),
12106"$Rd32 = memw($Re32=#$II)",
12107tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12108let Inst{7-7} = 0b0;
12109let Inst{13-12} = 0b01;
12110let Inst{31-21} = 0b10011011100;
12111let hasNewValue = 1;
12112let opNewValue = 0;
12113let addrMode = AbsoluteSet;
12114let accessSize = WordAccess;
12115let mayLoad = 1;
12116let isExtended = 1;
12117let DecoderNamespace = "MustExtend";
12118let isExtendable = 1;
12119let opExtendable = 2;
12120let isExtentSigned = 0;
12121let opExtentBits = 6;
12122let opExtentAlign = 0;
12123}
12124def L4_loadri_rr : HInst<
12125(outs IntRegs:$Rd32),
12126(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12127"$Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12128tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12129let Inst{6-5} = 0b00;
12130let Inst{31-21} = 0b00111010100;
12131let hasNewValue = 1;
12132let opNewValue = 0;
12133let addrMode = BaseRegOffset;
12134let accessSize = WordAccess;
12135let mayLoad = 1;
12136let CextOpcode = "L2_loadri";
12137let InputType = "reg";
12138let BaseOpcode = "L4_loadri_rr";
12139let isPredicable = 1;
12140}
12141def L4_loadri_ur : HInst<
12142(outs IntRegs:$Rd32),
12143(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12144"$Rd32 = memw($Rt32<<#$Ii+#$II)",
12145tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12146let Inst{12-12} = 0b1;
12147let Inst{31-21} = 0b10011101100;
12148let hasNewValue = 1;
12149let opNewValue = 0;
12150let addrMode = BaseLongOffset;
12151let accessSize = WordAccess;
12152let mayLoad = 1;
12153let isExtended = 1;
12154let CextOpcode = "L2_loadri";
12155let InputType = "imm";
12156let DecoderNamespace = "MustExtend";
12157let isExtendable = 1;
12158let opExtendable = 3;
12159let isExtentSigned = 0;
12160let opExtentBits = 6;
12161let opExtentAlign = 0;
12162}
12163def L4_loadrub_ap : HInst<
12164(outs IntRegs:$Rd32, IntRegs:$Re32),
12165(ins u32_0Imm:$II),
12166"$Rd32 = memub($Re32=#$II)",
12167tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12168let Inst{7-7} = 0b0;
12169let Inst{13-12} = 0b01;
12170let Inst{31-21} = 0b10011011001;
12171let hasNewValue = 1;
12172let opNewValue = 0;
12173let addrMode = AbsoluteSet;
12174let accessSize = ByteAccess;
12175let mayLoad = 1;
12176let isExtended = 1;
12177let DecoderNamespace = "MustExtend";
12178let isExtendable = 1;
12179let opExtendable = 2;
12180let isExtentSigned = 0;
12181let opExtentBits = 6;
12182let opExtentAlign = 0;
12183}
12184def L4_loadrub_rr : HInst<
12185(outs IntRegs:$Rd32),
12186(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12187"$Rd32 = memub($Rs32+$Rt32<<#$Ii)",
12188tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12189let Inst{6-5} = 0b00;
12190let Inst{31-21} = 0b00111010001;
12191let hasNewValue = 1;
12192let opNewValue = 0;
12193let addrMode = BaseRegOffset;
12194let accessSize = ByteAccess;
12195let mayLoad = 1;
12196let CextOpcode = "L2_loadrub";
12197let InputType = "reg";
12198let BaseOpcode = "L4_loadrub_rr";
12199let isPredicable = 1;
12200}
12201def L4_loadrub_ur : HInst<
12202(outs IntRegs:$Rd32),
12203(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12204"$Rd32 = memub($Rt32<<#$Ii+#$II)",
12205tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12206let Inst{12-12} = 0b1;
12207let Inst{31-21} = 0b10011101001;
12208let hasNewValue = 1;
12209let opNewValue = 0;
12210let addrMode = BaseLongOffset;
12211let accessSize = ByteAccess;
12212let mayLoad = 1;
12213let isExtended = 1;
12214let CextOpcode = "L2_loadrub";
12215let InputType = "imm";
12216let DecoderNamespace = "MustExtend";
12217let isExtendable = 1;
12218let opExtendable = 3;
12219let isExtentSigned = 0;
12220let opExtentBits = 6;
12221let opExtentAlign = 0;
12222}
12223def L4_loadruh_ap : HInst<
12224(outs IntRegs:$Rd32, IntRegs:$Re32),
12225(ins u32_0Imm:$II),
12226"$Rd32 = memuh($Re32=#$II)",
12227tc_3b5b7ef9, TypeLD>, Enc_323f2d {
12228let Inst{7-7} = 0b0;
12229let Inst{13-12} = 0b01;
12230let Inst{31-21} = 0b10011011011;
12231let hasNewValue = 1;
12232let opNewValue = 0;
12233let addrMode = AbsoluteSet;
12234let accessSize = HalfWordAccess;
12235let mayLoad = 1;
12236let isExtended = 1;
12237let DecoderNamespace = "MustExtend";
12238let isExtendable = 1;
12239let opExtendable = 2;
12240let isExtentSigned = 0;
12241let opExtentBits = 6;
12242let opExtentAlign = 0;
12243}
12244def L4_loadruh_rr : HInst<
12245(outs IntRegs:$Rd32),
12246(ins IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12247"$Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
12248tc_bf061958, TypeLD>, Enc_da664b, AddrModeRel, ImmRegShl {
12249let Inst{6-5} = 0b00;
12250let Inst{31-21} = 0b00111010011;
12251let hasNewValue = 1;
12252let opNewValue = 0;
12253let addrMode = BaseRegOffset;
12254let accessSize = HalfWordAccess;
12255let mayLoad = 1;
12256let CextOpcode = "L2_loadruh";
12257let InputType = "reg";
12258let BaseOpcode = "L4_loadruh_rr";
12259let isPredicable = 1;
12260}
12261def L4_loadruh_ur : HInst<
12262(outs IntRegs:$Rd32),
12263(ins IntRegs:$Rt32, u2_0Imm:$Ii, u32_0Imm:$II),
12264"$Rd32 = memuh($Rt32<<#$Ii+#$II)",
12265tc_bab0eed9, TypeLD>, Enc_4f677b, AddrModeRel, ImmRegShl {
12266let Inst{12-12} = 0b1;
12267let Inst{31-21} = 0b10011101011;
12268let hasNewValue = 1;
12269let opNewValue = 0;
12270let addrMode = BaseLongOffset;
12271let accessSize = HalfWordAccess;
12272let mayLoad = 1;
12273let isExtended = 1;
12274let CextOpcode = "L2_loadruh";
12275let InputType = "imm";
12276let DecoderNamespace = "MustExtend";
12277let isExtendable = 1;
12278let opExtendable = 3;
12279let isExtentSigned = 0;
12280let opExtentBits = 6;
12281let opExtentAlign = 0;
12282}
12283def L4_or_memopb_io : HInst<
12284(outs),
12285(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
12286"memb($Rs32+#$Ii) |= $Rt32",
12287tc_7186d325, TypeV4LDST>, Enc_d44e31 {
12288let Inst{6-5} = 0b11;
12289let Inst{13-13} = 0b0;
12290let Inst{31-21} = 0b00111110000;
12291let addrMode = BaseImmOffset;
12292let accessSize = ByteAccess;
12293let mayLoad = 1;
12294let isRestrictNoSlot1Store = 1;
12295let mayStore = 1;
12296let isExtendable = 1;
12297let opExtendable = 1;
12298let isExtentSigned = 0;
12299let opExtentBits = 6;
12300let opExtentAlign = 0;
12301}
12302def L4_or_memopb_zomap : HInst<
12303(outs),
12304(ins IntRegs:$Rs32, IntRegs:$Rt32),
12305"memb($Rs32) |= $Rt32",
12306tc_7186d325, TypeMAPPING> {
12307let isPseudo = 1;
12308let isCodeGenOnly = 1;
12309}
12310def L4_or_memoph_io : HInst<
12311(outs),
12312(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
12313"memh($Rs32+#$Ii) |= $Rt32",
12314tc_7186d325, TypeV4LDST>, Enc_163a3c {
12315let Inst{6-5} = 0b11;
12316let Inst{13-13} = 0b0;
12317let Inst{31-21} = 0b00111110001;
12318let addrMode = BaseImmOffset;
12319let accessSize = HalfWordAccess;
12320let mayLoad = 1;
12321let isRestrictNoSlot1Store = 1;
12322let mayStore = 1;
12323let isExtendable = 1;
12324let opExtendable = 1;
12325let isExtentSigned = 0;
12326let opExtentBits = 7;
12327let opExtentAlign = 1;
12328}
12329def L4_or_memoph_zomap : HInst<
12330(outs),
12331(ins IntRegs:$Rs32, IntRegs:$Rt32),
12332"memh($Rs32) |= $Rt32",
12333tc_7186d325, TypeMAPPING> {
12334let isPseudo = 1;
12335let isCodeGenOnly = 1;
12336}
12337def L4_or_memopw_io : HInst<
12338(outs),
12339(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
12340"memw($Rs32+#$Ii) |= $Rt32",
12341tc_7186d325, TypeV4LDST>, Enc_226535 {
12342let Inst{6-5} = 0b11;
12343let Inst{13-13} = 0b0;
12344let Inst{31-21} = 0b00111110010;
12345let addrMode = BaseImmOffset;
12346let accessSize = WordAccess;
12347let mayLoad = 1;
12348let isRestrictNoSlot1Store = 1;
12349let mayStore = 1;
12350let isExtendable = 1;
12351let opExtendable = 1;
12352let isExtentSigned = 0;
12353let opExtentBits = 8;
12354let opExtentAlign = 2;
12355}
12356def L4_or_memopw_zomap : HInst<
12357(outs),
12358(ins IntRegs:$Rs32, IntRegs:$Rt32),
12359"memw($Rs32) |= $Rt32",
12360tc_7186d325, TypeMAPPING> {
12361let isPseudo = 1;
12362let isCodeGenOnly = 1;
12363}
12364def L4_ploadrbf_abs : HInst<
12365(outs IntRegs:$Rd32),
12366(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12367"if (!$Pt4) $Rd32 = memb(#$Ii)",
12368tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12369let Inst{7-5} = 0b100;
12370let Inst{13-11} = 0b101;
12371let Inst{31-21} = 0b10011111000;
12372let isPredicated = 1;
12373let isPredicatedFalse = 1;
12374let hasNewValue = 1;
12375let opNewValue = 0;
12376let addrMode = Absolute;
12377let accessSize = ByteAccess;
12378let mayLoad = 1;
12379let isExtended = 1;
12380let CextOpcode = "L2_loadrb";
12381let BaseOpcode = "L4_loadrb_abs";
12382let DecoderNamespace = "MustExtend";
12383let isExtendable = 1;
12384let opExtendable = 2;
12385let isExtentSigned = 0;
12386let opExtentBits = 6;
12387let opExtentAlign = 0;
12388}
12389def L4_ploadrbf_rr : HInst<
12390(outs IntRegs:$Rd32),
12391(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12392"if (!$Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12393tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12394let Inst{31-21} = 0b00110001000;
12395let isPredicated = 1;
12396let isPredicatedFalse = 1;
12397let hasNewValue = 1;
12398let opNewValue = 0;
12399let addrMode = BaseRegOffset;
12400let accessSize = ByteAccess;
12401let mayLoad = 1;
12402let CextOpcode = "L2_loadrb";
12403let InputType = "reg";
12404let BaseOpcode = "L4_loadrb_rr";
12405}
12406def L4_ploadrbfnew_abs : HInst<
12407(outs IntRegs:$Rd32),
12408(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12409"if (!$Pt4.new) $Rd32 = memb(#$Ii)",
12410tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12411let Inst{7-5} = 0b100;
12412let Inst{13-11} = 0b111;
12413let Inst{31-21} = 0b10011111000;
12414let isPredicated = 1;
12415let isPredicatedFalse = 1;
12416let hasNewValue = 1;
12417let opNewValue = 0;
12418let addrMode = Absolute;
12419let accessSize = ByteAccess;
12420let isPredicatedNew = 1;
12421let mayLoad = 1;
12422let isExtended = 1;
12423let CextOpcode = "L2_loadrb";
12424let BaseOpcode = "L4_loadrb_abs";
12425let DecoderNamespace = "MustExtend";
12426let isExtendable = 1;
12427let opExtendable = 2;
12428let isExtentSigned = 0;
12429let opExtentBits = 6;
12430let opExtentAlign = 0;
12431}
12432def L4_ploadrbfnew_rr : HInst<
12433(outs IntRegs:$Rd32),
12434(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12435"if (!$Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12436tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12437let Inst{31-21} = 0b00110011000;
12438let isPredicated = 1;
12439let isPredicatedFalse = 1;
12440let hasNewValue = 1;
12441let opNewValue = 0;
12442let addrMode = BaseRegOffset;
12443let accessSize = ByteAccess;
12444let isPredicatedNew = 1;
12445let mayLoad = 1;
12446let CextOpcode = "L2_loadrb";
12447let InputType = "reg";
12448let BaseOpcode = "L4_loadrb_rr";
12449}
12450def L4_ploadrbt_abs : HInst<
12451(outs IntRegs:$Rd32),
12452(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12453"if ($Pt4) $Rd32 = memb(#$Ii)",
12454tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12455let Inst{7-5} = 0b100;
12456let Inst{13-11} = 0b100;
12457let Inst{31-21} = 0b10011111000;
12458let isPredicated = 1;
12459let hasNewValue = 1;
12460let opNewValue = 0;
12461let addrMode = Absolute;
12462let accessSize = ByteAccess;
12463let mayLoad = 1;
12464let isExtended = 1;
12465let CextOpcode = "L2_loadrb";
12466let BaseOpcode = "L4_loadrb_abs";
12467let DecoderNamespace = "MustExtend";
12468let isExtendable = 1;
12469let opExtendable = 2;
12470let isExtentSigned = 0;
12471let opExtentBits = 6;
12472let opExtentAlign = 0;
12473}
12474def L4_ploadrbt_rr : HInst<
12475(outs IntRegs:$Rd32),
12476(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12477"if ($Pv4) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12478tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12479let Inst{31-21} = 0b00110000000;
12480let isPredicated = 1;
12481let hasNewValue = 1;
12482let opNewValue = 0;
12483let addrMode = BaseRegOffset;
12484let accessSize = ByteAccess;
12485let mayLoad = 1;
12486let CextOpcode = "L2_loadrb";
12487let InputType = "reg";
12488let BaseOpcode = "L4_loadrb_rr";
12489}
12490def L4_ploadrbtnew_abs : HInst<
12491(outs IntRegs:$Rd32),
12492(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12493"if ($Pt4.new) $Rd32 = memb(#$Ii)",
12494tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12495let Inst{7-5} = 0b100;
12496let Inst{13-11} = 0b110;
12497let Inst{31-21} = 0b10011111000;
12498let isPredicated = 1;
12499let hasNewValue = 1;
12500let opNewValue = 0;
12501let addrMode = Absolute;
12502let accessSize = ByteAccess;
12503let isPredicatedNew = 1;
12504let mayLoad = 1;
12505let isExtended = 1;
12506let CextOpcode = "L2_loadrb";
12507let BaseOpcode = "L4_loadrb_abs";
12508let DecoderNamespace = "MustExtend";
12509let isExtendable = 1;
12510let opExtendable = 2;
12511let isExtentSigned = 0;
12512let opExtentBits = 6;
12513let opExtentAlign = 0;
12514}
12515def L4_ploadrbtnew_rr : HInst<
12516(outs IntRegs:$Rd32),
12517(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12518"if ($Pv4.new) $Rd32 = memb($Rs32+$Rt32<<#$Ii)",
12519tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12520let Inst{31-21} = 0b00110010000;
12521let isPredicated = 1;
12522let hasNewValue = 1;
12523let opNewValue = 0;
12524let addrMode = BaseRegOffset;
12525let accessSize = ByteAccess;
12526let isPredicatedNew = 1;
12527let mayLoad = 1;
12528let CextOpcode = "L2_loadrb";
12529let InputType = "reg";
12530let BaseOpcode = "L4_loadrb_rr";
12531}
12532def L4_ploadrdf_abs : HInst<
12533(outs DoubleRegs:$Rdd32),
12534(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12535"if (!$Pt4) $Rdd32 = memd(#$Ii)",
12536tc_7646c131, TypeLD>, Enc_2a7b91, AddrModeRel {
12537let Inst{7-5} = 0b100;
12538let Inst{13-11} = 0b101;
12539let Inst{31-21} = 0b10011111110;
12540let isPredicated = 1;
12541let isPredicatedFalse = 1;
12542let addrMode = Absolute;
12543let accessSize = DoubleWordAccess;
12544let mayLoad = 1;
12545let isExtended = 1;
12546let CextOpcode = "L2_loadrd";
12547let BaseOpcode = "L4_loadrd_abs";
12548let DecoderNamespace = "MustExtend";
12549let isExtendable = 1;
12550let opExtendable = 2;
12551let isExtentSigned = 0;
12552let opExtentBits = 6;
12553let opExtentAlign = 0;
12554}
12555def L4_ploadrdf_rr : HInst<
12556(outs DoubleRegs:$Rdd32),
12557(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12558"if (!$Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12559tc_e4b3cb20, TypeLD>, Enc_98c0b8, AddrModeRel {
12560let Inst{31-21} = 0b00110001110;
12561let isPredicated = 1;
12562let isPredicatedFalse = 1;
12563let addrMode = BaseRegOffset;
12564let accessSize = DoubleWordAccess;
12565let mayLoad = 1;
12566let CextOpcode = "L2_loadrd";
12567let InputType = "reg";
12568let BaseOpcode = "L4_loadrd_rr";
12569}
12570def L4_ploadrdfnew_abs : HInst<
12571(outs DoubleRegs:$Rdd32),
12572(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12573"if (!$Pt4.new) $Rdd32 = memd(#$Ii)",
12574tc_3b5b7ef9, TypeLD>, Enc_2a7b91, AddrModeRel {
12575let Inst{7-5} = 0b100;
12576let Inst{13-11} = 0b111;
12577let Inst{31-21} = 0b10011111110;
12578let isPredicated = 1;
12579let isPredicatedFalse = 1;
12580let addrMode = Absolute;
12581let accessSize = DoubleWordAccess;
12582let isPredicatedNew = 1;
12583let mayLoad = 1;
12584let isExtended = 1;
12585let CextOpcode = "L2_loadrd";
12586let BaseOpcode = "L4_loadrd_abs";
12587let DecoderNamespace = "MustExtend";
12588let isExtendable = 1;
12589let opExtendable = 2;
12590let isExtentSigned = 0;
12591let opExtentBits = 6;
12592let opExtentAlign = 0;
12593}
12594def L4_ploadrdfnew_rr : HInst<
12595(outs DoubleRegs:$Rdd32),
12596(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12597"if (!$Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12598tc_25a78932, TypeLD>, Enc_98c0b8, AddrModeRel {
12599let Inst{31-21} = 0b00110011110;
12600let isPredicated = 1;
12601let isPredicatedFalse = 1;
12602let addrMode = BaseRegOffset;
12603let accessSize = DoubleWordAccess;
12604let isPredicatedNew = 1;
12605let mayLoad = 1;
12606let CextOpcode = "L2_loadrd";
12607let InputType = "reg";
12608let BaseOpcode = "L4_loadrd_rr";
12609}
12610def L4_ploadrdt_abs : HInst<
12611(outs DoubleRegs:$Rdd32),
12612(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12613"if ($Pt4) $Rdd32 = memd(#$Ii)",
12614tc_7646c131, TypeLD>, Enc_2a7b91, AddrModeRel {
12615let Inst{7-5} = 0b100;
12616let Inst{13-11} = 0b100;
12617let Inst{31-21} = 0b10011111110;
12618let isPredicated = 1;
12619let addrMode = Absolute;
12620let accessSize = DoubleWordAccess;
12621let mayLoad = 1;
12622let isExtended = 1;
12623let CextOpcode = "L2_loadrd";
12624let BaseOpcode = "L4_loadrd_abs";
12625let DecoderNamespace = "MustExtend";
12626let isExtendable = 1;
12627let opExtendable = 2;
12628let isExtentSigned = 0;
12629let opExtentBits = 6;
12630let opExtentAlign = 0;
12631}
12632def L4_ploadrdt_rr : HInst<
12633(outs DoubleRegs:$Rdd32),
12634(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12635"if ($Pv4) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12636tc_e4b3cb20, TypeLD>, Enc_98c0b8, AddrModeRel {
12637let Inst{31-21} = 0b00110000110;
12638let isPredicated = 1;
12639let addrMode = BaseRegOffset;
12640let accessSize = DoubleWordAccess;
12641let mayLoad = 1;
12642let CextOpcode = "L2_loadrd";
12643let InputType = "reg";
12644let BaseOpcode = "L4_loadrd_rr";
12645}
12646def L4_ploadrdtnew_abs : HInst<
12647(outs DoubleRegs:$Rdd32),
12648(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12649"if ($Pt4.new) $Rdd32 = memd(#$Ii)",
12650tc_3b5b7ef9, TypeLD>, Enc_2a7b91, AddrModeRel {
12651let Inst{7-5} = 0b100;
12652let Inst{13-11} = 0b110;
12653let Inst{31-21} = 0b10011111110;
12654let isPredicated = 1;
12655let addrMode = Absolute;
12656let accessSize = DoubleWordAccess;
12657let isPredicatedNew = 1;
12658let mayLoad = 1;
12659let isExtended = 1;
12660let CextOpcode = "L2_loadrd";
12661let BaseOpcode = "L4_loadrd_abs";
12662let DecoderNamespace = "MustExtend";
12663let isExtendable = 1;
12664let opExtendable = 2;
12665let isExtentSigned = 0;
12666let opExtentBits = 6;
12667let opExtentAlign = 0;
12668}
12669def L4_ploadrdtnew_rr : HInst<
12670(outs DoubleRegs:$Rdd32),
12671(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12672"if ($Pv4.new) $Rdd32 = memd($Rs32+$Rt32<<#$Ii)",
12673tc_25a78932, TypeLD>, Enc_98c0b8, AddrModeRel {
12674let Inst{31-21} = 0b00110010110;
12675let isPredicated = 1;
12676let addrMode = BaseRegOffset;
12677let accessSize = DoubleWordAccess;
12678let isPredicatedNew = 1;
12679let mayLoad = 1;
12680let CextOpcode = "L2_loadrd";
12681let InputType = "reg";
12682let BaseOpcode = "L4_loadrd_rr";
12683}
12684def L4_ploadrhf_abs : HInst<
12685(outs IntRegs:$Rd32),
12686(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12687"if (!$Pt4) $Rd32 = memh(#$Ii)",
12688tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12689let Inst{7-5} = 0b100;
12690let Inst{13-11} = 0b101;
12691let Inst{31-21} = 0b10011111010;
12692let isPredicated = 1;
12693let isPredicatedFalse = 1;
12694let hasNewValue = 1;
12695let opNewValue = 0;
12696let addrMode = Absolute;
12697let accessSize = HalfWordAccess;
12698let mayLoad = 1;
12699let isExtended = 1;
12700let CextOpcode = "L2_loadrh";
12701let BaseOpcode = "L4_loadrh_abs";
12702let DecoderNamespace = "MustExtend";
12703let isExtendable = 1;
12704let opExtendable = 2;
12705let isExtentSigned = 0;
12706let opExtentBits = 6;
12707let opExtentAlign = 0;
12708}
12709def L4_ploadrhf_rr : HInst<
12710(outs IntRegs:$Rd32),
12711(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12712"if (!$Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12713tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12714let Inst{31-21} = 0b00110001010;
12715let isPredicated = 1;
12716let isPredicatedFalse = 1;
12717let hasNewValue = 1;
12718let opNewValue = 0;
12719let addrMode = BaseRegOffset;
12720let accessSize = HalfWordAccess;
12721let mayLoad = 1;
12722let CextOpcode = "L2_loadrh";
12723let InputType = "reg";
12724let BaseOpcode = "L4_loadrh_rr";
12725}
12726def L4_ploadrhfnew_abs : HInst<
12727(outs IntRegs:$Rd32),
12728(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12729"if (!$Pt4.new) $Rd32 = memh(#$Ii)",
12730tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12731let Inst{7-5} = 0b100;
12732let Inst{13-11} = 0b111;
12733let Inst{31-21} = 0b10011111010;
12734let isPredicated = 1;
12735let isPredicatedFalse = 1;
12736let hasNewValue = 1;
12737let opNewValue = 0;
12738let addrMode = Absolute;
12739let accessSize = HalfWordAccess;
12740let isPredicatedNew = 1;
12741let mayLoad = 1;
12742let isExtended = 1;
12743let CextOpcode = "L2_loadrh";
12744let BaseOpcode = "L4_loadrh_abs";
12745let DecoderNamespace = "MustExtend";
12746let isExtendable = 1;
12747let opExtendable = 2;
12748let isExtentSigned = 0;
12749let opExtentBits = 6;
12750let opExtentAlign = 0;
12751}
12752def L4_ploadrhfnew_rr : HInst<
12753(outs IntRegs:$Rd32),
12754(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12755"if (!$Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12756tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12757let Inst{31-21} = 0b00110011010;
12758let isPredicated = 1;
12759let isPredicatedFalse = 1;
12760let hasNewValue = 1;
12761let opNewValue = 0;
12762let addrMode = BaseRegOffset;
12763let accessSize = HalfWordAccess;
12764let isPredicatedNew = 1;
12765let mayLoad = 1;
12766let CextOpcode = "L2_loadrh";
12767let InputType = "reg";
12768let BaseOpcode = "L4_loadrh_rr";
12769}
12770def L4_ploadrht_abs : HInst<
12771(outs IntRegs:$Rd32),
12772(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12773"if ($Pt4) $Rd32 = memh(#$Ii)",
12774tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12775let Inst{7-5} = 0b100;
12776let Inst{13-11} = 0b100;
12777let Inst{31-21} = 0b10011111010;
12778let isPredicated = 1;
12779let hasNewValue = 1;
12780let opNewValue = 0;
12781let addrMode = Absolute;
12782let accessSize = HalfWordAccess;
12783let mayLoad = 1;
12784let isExtended = 1;
12785let CextOpcode = "L2_loadrh";
12786let BaseOpcode = "L4_loadrh_abs";
12787let DecoderNamespace = "MustExtend";
12788let isExtendable = 1;
12789let opExtendable = 2;
12790let isExtentSigned = 0;
12791let opExtentBits = 6;
12792let opExtentAlign = 0;
12793}
12794def L4_ploadrht_rr : HInst<
12795(outs IntRegs:$Rd32),
12796(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12797"if ($Pv4) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12798tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12799let Inst{31-21} = 0b00110000010;
12800let isPredicated = 1;
12801let hasNewValue = 1;
12802let opNewValue = 0;
12803let addrMode = BaseRegOffset;
12804let accessSize = HalfWordAccess;
12805let mayLoad = 1;
12806let CextOpcode = "L2_loadrh";
12807let InputType = "reg";
12808let BaseOpcode = "L4_loadrh_rr";
12809}
12810def L4_ploadrhtnew_abs : HInst<
12811(outs IntRegs:$Rd32),
12812(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12813"if ($Pt4.new) $Rd32 = memh(#$Ii)",
12814tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12815let Inst{7-5} = 0b100;
12816let Inst{13-11} = 0b110;
12817let Inst{31-21} = 0b10011111010;
12818let isPredicated = 1;
12819let hasNewValue = 1;
12820let opNewValue = 0;
12821let addrMode = Absolute;
12822let accessSize = HalfWordAccess;
12823let isPredicatedNew = 1;
12824let mayLoad = 1;
12825let isExtended = 1;
12826let CextOpcode = "L2_loadrh";
12827let BaseOpcode = "L4_loadrh_abs";
12828let DecoderNamespace = "MustExtend";
12829let isExtendable = 1;
12830let opExtendable = 2;
12831let isExtentSigned = 0;
12832let opExtentBits = 6;
12833let opExtentAlign = 0;
12834}
12835def L4_ploadrhtnew_rr : HInst<
12836(outs IntRegs:$Rd32),
12837(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12838"if ($Pv4.new) $Rd32 = memh($Rs32+$Rt32<<#$Ii)",
12839tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12840let Inst{31-21} = 0b00110010010;
12841let isPredicated = 1;
12842let hasNewValue = 1;
12843let opNewValue = 0;
12844let addrMode = BaseRegOffset;
12845let accessSize = HalfWordAccess;
12846let isPredicatedNew = 1;
12847let mayLoad = 1;
12848let CextOpcode = "L2_loadrh";
12849let InputType = "reg";
12850let BaseOpcode = "L4_loadrh_rr";
12851}
12852def L4_ploadrif_abs : HInst<
12853(outs IntRegs:$Rd32),
12854(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12855"if (!$Pt4) $Rd32 = memw(#$Ii)",
12856tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12857let Inst{7-5} = 0b100;
12858let Inst{13-11} = 0b101;
12859let Inst{31-21} = 0b10011111100;
12860let isPredicated = 1;
12861let isPredicatedFalse = 1;
12862let hasNewValue = 1;
12863let opNewValue = 0;
12864let addrMode = Absolute;
12865let accessSize = WordAccess;
12866let mayLoad = 1;
12867let isExtended = 1;
12868let CextOpcode = "L2_loadri";
12869let BaseOpcode = "L4_loadri_abs";
12870let DecoderNamespace = "MustExtend";
12871let isExtendable = 1;
12872let opExtendable = 2;
12873let isExtentSigned = 0;
12874let opExtentBits = 6;
12875let opExtentAlign = 0;
12876}
12877def L4_ploadrif_rr : HInst<
12878(outs IntRegs:$Rd32),
12879(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12880"if (!$Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12881tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12882let Inst{31-21} = 0b00110001100;
12883let isPredicated = 1;
12884let isPredicatedFalse = 1;
12885let hasNewValue = 1;
12886let opNewValue = 0;
12887let addrMode = BaseRegOffset;
12888let accessSize = WordAccess;
12889let mayLoad = 1;
12890let CextOpcode = "L2_loadri";
12891let InputType = "reg";
12892let BaseOpcode = "L4_loadri_rr";
12893}
12894def L4_ploadrifnew_abs : HInst<
12895(outs IntRegs:$Rd32),
12896(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12897"if (!$Pt4.new) $Rd32 = memw(#$Ii)",
12898tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12899let Inst{7-5} = 0b100;
12900let Inst{13-11} = 0b111;
12901let Inst{31-21} = 0b10011111100;
12902let isPredicated = 1;
12903let isPredicatedFalse = 1;
12904let hasNewValue = 1;
12905let opNewValue = 0;
12906let addrMode = Absolute;
12907let accessSize = WordAccess;
12908let isPredicatedNew = 1;
12909let mayLoad = 1;
12910let isExtended = 1;
12911let CextOpcode = "L2_loadri";
12912let BaseOpcode = "L4_loadri_abs";
12913let DecoderNamespace = "MustExtend";
12914let isExtendable = 1;
12915let opExtendable = 2;
12916let isExtentSigned = 0;
12917let opExtentBits = 6;
12918let opExtentAlign = 0;
12919}
12920def L4_ploadrifnew_rr : HInst<
12921(outs IntRegs:$Rd32),
12922(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12923"if (!$Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12924tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
12925let Inst{31-21} = 0b00110011100;
12926let isPredicated = 1;
12927let isPredicatedFalse = 1;
12928let hasNewValue = 1;
12929let opNewValue = 0;
12930let addrMode = BaseRegOffset;
12931let accessSize = WordAccess;
12932let isPredicatedNew = 1;
12933let mayLoad = 1;
12934let CextOpcode = "L2_loadri";
12935let InputType = "reg";
12936let BaseOpcode = "L4_loadri_rr";
12937}
12938def L4_ploadrit_abs : HInst<
12939(outs IntRegs:$Rd32),
12940(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12941"if ($Pt4) $Rd32 = memw(#$Ii)",
12942tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
12943let Inst{7-5} = 0b100;
12944let Inst{13-11} = 0b100;
12945let Inst{31-21} = 0b10011111100;
12946let isPredicated = 1;
12947let hasNewValue = 1;
12948let opNewValue = 0;
12949let addrMode = Absolute;
12950let accessSize = WordAccess;
12951let mayLoad = 1;
12952let isExtended = 1;
12953let CextOpcode = "L2_loadri";
12954let BaseOpcode = "L4_loadri_abs";
12955let DecoderNamespace = "MustExtend";
12956let isExtendable = 1;
12957let opExtendable = 2;
12958let isExtentSigned = 0;
12959let opExtentBits = 6;
12960let opExtentAlign = 0;
12961}
12962def L4_ploadrit_rr : HInst<
12963(outs IntRegs:$Rd32),
12964(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
12965"if ($Pv4) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
12966tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
12967let Inst{31-21} = 0b00110000100;
12968let isPredicated = 1;
12969let hasNewValue = 1;
12970let opNewValue = 0;
12971let addrMode = BaseRegOffset;
12972let accessSize = WordAccess;
12973let mayLoad = 1;
12974let CextOpcode = "L2_loadri";
12975let InputType = "reg";
12976let BaseOpcode = "L4_loadri_rr";
12977}
12978def L4_ploadritnew_abs : HInst<
12979(outs IntRegs:$Rd32),
12980(ins PredRegs:$Pt4, u32_0Imm:$Ii),
12981"if ($Pt4.new) $Rd32 = memw(#$Ii)",
12982tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
12983let Inst{7-5} = 0b100;
12984let Inst{13-11} = 0b110;
12985let Inst{31-21} = 0b10011111100;
12986let isPredicated = 1;
12987let hasNewValue = 1;
12988let opNewValue = 0;
12989let addrMode = Absolute;
12990let accessSize = WordAccess;
12991let isPredicatedNew = 1;
12992let mayLoad = 1;
12993let isExtended = 1;
12994let CextOpcode = "L2_loadri";
12995let BaseOpcode = "L4_loadri_abs";
12996let DecoderNamespace = "MustExtend";
12997let isExtendable = 1;
12998let opExtendable = 2;
12999let isExtentSigned = 0;
13000let opExtentBits = 6;
13001let opExtentAlign = 0;
13002}
13003def L4_ploadritnew_rr : HInst<
13004(outs IntRegs:$Rd32),
13005(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13006"if ($Pv4.new) $Rd32 = memw($Rs32+$Rt32<<#$Ii)",
13007tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13008let Inst{31-21} = 0b00110010100;
13009let isPredicated = 1;
13010let hasNewValue = 1;
13011let opNewValue = 0;
13012let addrMode = BaseRegOffset;
13013let accessSize = WordAccess;
13014let isPredicatedNew = 1;
13015let mayLoad = 1;
13016let CextOpcode = "L2_loadri";
13017let InputType = "reg";
13018let BaseOpcode = "L4_loadri_rr";
13019}
13020def L4_ploadrubf_abs : HInst<
13021(outs IntRegs:$Rd32),
13022(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13023"if (!$Pt4) $Rd32 = memub(#$Ii)",
13024tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13025let Inst{7-5} = 0b100;
13026let Inst{13-11} = 0b101;
13027let Inst{31-21} = 0b10011111001;
13028let isPredicated = 1;
13029let isPredicatedFalse = 1;
13030let hasNewValue = 1;
13031let opNewValue = 0;
13032let addrMode = Absolute;
13033let accessSize = ByteAccess;
13034let mayLoad = 1;
13035let isExtended = 1;
13036let CextOpcode = "L2_loadrub";
13037let BaseOpcode = "L4_loadrub_abs";
13038let DecoderNamespace = "MustExtend";
13039let isExtendable = 1;
13040let opExtendable = 2;
13041let isExtentSigned = 0;
13042let opExtentBits = 6;
13043let opExtentAlign = 0;
13044}
13045def L4_ploadrubf_rr : HInst<
13046(outs IntRegs:$Rd32),
13047(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13048"if (!$Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13049tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13050let Inst{31-21} = 0b00110001001;
13051let isPredicated = 1;
13052let isPredicatedFalse = 1;
13053let hasNewValue = 1;
13054let opNewValue = 0;
13055let addrMode = BaseRegOffset;
13056let accessSize = ByteAccess;
13057let mayLoad = 1;
13058let CextOpcode = "L2_loadrub";
13059let InputType = "reg";
13060let BaseOpcode = "L4_loadrub_rr";
13061}
13062def L4_ploadrubfnew_abs : HInst<
13063(outs IntRegs:$Rd32),
13064(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13065"if (!$Pt4.new) $Rd32 = memub(#$Ii)",
13066tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13067let Inst{7-5} = 0b100;
13068let Inst{13-11} = 0b111;
13069let Inst{31-21} = 0b10011111001;
13070let isPredicated = 1;
13071let isPredicatedFalse = 1;
13072let hasNewValue = 1;
13073let opNewValue = 0;
13074let addrMode = Absolute;
13075let accessSize = ByteAccess;
13076let isPredicatedNew = 1;
13077let mayLoad = 1;
13078let isExtended = 1;
13079let CextOpcode = "L2_loadrub";
13080let BaseOpcode = "L4_loadrub_abs";
13081let DecoderNamespace = "MustExtend";
13082let isExtendable = 1;
13083let opExtendable = 2;
13084let isExtentSigned = 0;
13085let opExtentBits = 6;
13086let opExtentAlign = 0;
13087}
13088def L4_ploadrubfnew_rr : HInst<
13089(outs IntRegs:$Rd32),
13090(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13091"if (!$Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13092tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13093let Inst{31-21} = 0b00110011001;
13094let isPredicated = 1;
13095let isPredicatedFalse = 1;
13096let hasNewValue = 1;
13097let opNewValue = 0;
13098let addrMode = BaseRegOffset;
13099let accessSize = ByteAccess;
13100let isPredicatedNew = 1;
13101let mayLoad = 1;
13102let CextOpcode = "L2_loadrub";
13103let InputType = "reg";
13104let BaseOpcode = "L4_loadrub_rr";
13105}
13106def L4_ploadrubt_abs : HInst<
13107(outs IntRegs:$Rd32),
13108(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13109"if ($Pt4) $Rd32 = memub(#$Ii)",
13110tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13111let Inst{7-5} = 0b100;
13112let Inst{13-11} = 0b100;
13113let Inst{31-21} = 0b10011111001;
13114let isPredicated = 1;
13115let hasNewValue = 1;
13116let opNewValue = 0;
13117let addrMode = Absolute;
13118let accessSize = ByteAccess;
13119let mayLoad = 1;
13120let isExtended = 1;
13121let CextOpcode = "L2_loadrub";
13122let BaseOpcode = "L4_loadrub_abs";
13123let DecoderNamespace = "MustExtend";
13124let isExtendable = 1;
13125let opExtendable = 2;
13126let isExtentSigned = 0;
13127let opExtentBits = 6;
13128let opExtentAlign = 0;
13129}
13130def L4_ploadrubt_rr : HInst<
13131(outs IntRegs:$Rd32),
13132(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13133"if ($Pv4) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13134tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13135let Inst{31-21} = 0b00110000001;
13136let isPredicated = 1;
13137let hasNewValue = 1;
13138let opNewValue = 0;
13139let addrMode = BaseRegOffset;
13140let accessSize = ByteAccess;
13141let mayLoad = 1;
13142let CextOpcode = "L2_loadrub";
13143let InputType = "reg";
13144let BaseOpcode = "L4_loadrub_rr";
13145}
13146def L4_ploadrubtnew_abs : HInst<
13147(outs IntRegs:$Rd32),
13148(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13149"if ($Pt4.new) $Rd32 = memub(#$Ii)",
13150tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13151let Inst{7-5} = 0b100;
13152let Inst{13-11} = 0b110;
13153let Inst{31-21} = 0b10011111001;
13154let isPredicated = 1;
13155let hasNewValue = 1;
13156let opNewValue = 0;
13157let addrMode = Absolute;
13158let accessSize = ByteAccess;
13159let isPredicatedNew = 1;
13160let mayLoad = 1;
13161let isExtended = 1;
13162let CextOpcode = "L2_loadrub";
13163let BaseOpcode = "L4_loadrub_abs";
13164let DecoderNamespace = "MustExtend";
13165let isExtendable = 1;
13166let opExtendable = 2;
13167let isExtentSigned = 0;
13168let opExtentBits = 6;
13169let opExtentAlign = 0;
13170}
13171def L4_ploadrubtnew_rr : HInst<
13172(outs IntRegs:$Rd32),
13173(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13174"if ($Pv4.new) $Rd32 = memub($Rs32+$Rt32<<#$Ii)",
13175tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13176let Inst{31-21} = 0b00110010001;
13177let isPredicated = 1;
13178let hasNewValue = 1;
13179let opNewValue = 0;
13180let addrMode = BaseRegOffset;
13181let accessSize = ByteAccess;
13182let isPredicatedNew = 1;
13183let mayLoad = 1;
13184let CextOpcode = "L2_loadrub";
13185let InputType = "reg";
13186let BaseOpcode = "L4_loadrub_rr";
13187}
13188def L4_ploadruhf_abs : HInst<
13189(outs IntRegs:$Rd32),
13190(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13191"if (!$Pt4) $Rd32 = memuh(#$Ii)",
13192tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13193let Inst{7-5} = 0b100;
13194let Inst{13-11} = 0b101;
13195let Inst{31-21} = 0b10011111011;
13196let isPredicated = 1;
13197let isPredicatedFalse = 1;
13198let hasNewValue = 1;
13199let opNewValue = 0;
13200let addrMode = Absolute;
13201let accessSize = HalfWordAccess;
13202let mayLoad = 1;
13203let isExtended = 1;
13204let CextOpcode = "L2_loadruh";
13205let BaseOpcode = "L4_loadruh_abs";
13206let DecoderNamespace = "MustExtend";
13207let isExtendable = 1;
13208let opExtendable = 2;
13209let isExtentSigned = 0;
13210let opExtentBits = 6;
13211let opExtentAlign = 0;
13212}
13213def L4_ploadruhf_rr : HInst<
13214(outs IntRegs:$Rd32),
13215(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13216"if (!$Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13217tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13218let Inst{31-21} = 0b00110001011;
13219let isPredicated = 1;
13220let isPredicatedFalse = 1;
13221let hasNewValue = 1;
13222let opNewValue = 0;
13223let addrMode = BaseRegOffset;
13224let accessSize = HalfWordAccess;
13225let mayLoad = 1;
13226let CextOpcode = "L2_loadruh";
13227let InputType = "reg";
13228let BaseOpcode = "L4_loadruh_rr";
13229}
13230def L4_ploadruhfnew_abs : HInst<
13231(outs IntRegs:$Rd32),
13232(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13233"if (!$Pt4.new) $Rd32 = memuh(#$Ii)",
13234tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13235let Inst{7-5} = 0b100;
13236let Inst{13-11} = 0b111;
13237let Inst{31-21} = 0b10011111011;
13238let isPredicated = 1;
13239let isPredicatedFalse = 1;
13240let hasNewValue = 1;
13241let opNewValue = 0;
13242let addrMode = Absolute;
13243let accessSize = HalfWordAccess;
13244let isPredicatedNew = 1;
13245let mayLoad = 1;
13246let isExtended = 1;
13247let CextOpcode = "L2_loadruh";
13248let BaseOpcode = "L4_loadruh_abs";
13249let DecoderNamespace = "MustExtend";
13250let isExtendable = 1;
13251let opExtendable = 2;
13252let isExtentSigned = 0;
13253let opExtentBits = 6;
13254let opExtentAlign = 0;
13255}
13256def L4_ploadruhfnew_rr : HInst<
13257(outs IntRegs:$Rd32),
13258(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13259"if (!$Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13260tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13261let Inst{31-21} = 0b00110011011;
13262let isPredicated = 1;
13263let isPredicatedFalse = 1;
13264let hasNewValue = 1;
13265let opNewValue = 0;
13266let addrMode = BaseRegOffset;
13267let accessSize = HalfWordAccess;
13268let isPredicatedNew = 1;
13269let mayLoad = 1;
13270let CextOpcode = "L2_loadruh";
13271let InputType = "reg";
13272let BaseOpcode = "L4_loadruh_rr";
13273}
13274def L4_ploadruht_abs : HInst<
13275(outs IntRegs:$Rd32),
13276(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13277"if ($Pt4) $Rd32 = memuh(#$Ii)",
13278tc_7646c131, TypeLD>, Enc_2301d6, AddrModeRel {
13279let Inst{7-5} = 0b100;
13280let Inst{13-11} = 0b100;
13281let Inst{31-21} = 0b10011111011;
13282let isPredicated = 1;
13283let hasNewValue = 1;
13284let opNewValue = 0;
13285let addrMode = Absolute;
13286let accessSize = HalfWordAccess;
13287let mayLoad = 1;
13288let isExtended = 1;
13289let CextOpcode = "L2_loadruh";
13290let BaseOpcode = "L4_loadruh_abs";
13291let DecoderNamespace = "MustExtend";
13292let isExtendable = 1;
13293let opExtendable = 2;
13294let isExtentSigned = 0;
13295let opExtentBits = 6;
13296let opExtentAlign = 0;
13297}
13298def L4_ploadruht_rr : HInst<
13299(outs IntRegs:$Rd32),
13300(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13301"if ($Pv4) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13302tc_e4b3cb20, TypeLD>, Enc_2e1979, AddrModeRel {
13303let Inst{31-21} = 0b00110000011;
13304let isPredicated = 1;
13305let hasNewValue = 1;
13306let opNewValue = 0;
13307let addrMode = BaseRegOffset;
13308let accessSize = HalfWordAccess;
13309let mayLoad = 1;
13310let CextOpcode = "L2_loadruh";
13311let InputType = "reg";
13312let BaseOpcode = "L4_loadruh_rr";
13313}
13314def L4_ploadruhtnew_abs : HInst<
13315(outs IntRegs:$Rd32),
13316(ins PredRegs:$Pt4, u32_0Imm:$Ii),
13317"if ($Pt4.new) $Rd32 = memuh(#$Ii)",
13318tc_3b5b7ef9, TypeLD>, Enc_2301d6, AddrModeRel {
13319let Inst{7-5} = 0b100;
13320let Inst{13-11} = 0b110;
13321let Inst{31-21} = 0b10011111011;
13322let isPredicated = 1;
13323let hasNewValue = 1;
13324let opNewValue = 0;
13325let addrMode = Absolute;
13326let accessSize = HalfWordAccess;
13327let isPredicatedNew = 1;
13328let mayLoad = 1;
13329let isExtended = 1;
13330let CextOpcode = "L2_loadruh";
13331let BaseOpcode = "L4_loadruh_abs";
13332let DecoderNamespace = "MustExtend";
13333let isExtendable = 1;
13334let opExtendable = 2;
13335let isExtentSigned = 0;
13336let opExtentBits = 6;
13337let opExtentAlign = 0;
13338}
13339def L4_ploadruhtnew_rr : HInst<
13340(outs IntRegs:$Rd32),
13341(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32, u2_0Imm:$Ii),
13342"if ($Pv4.new) $Rd32 = memuh($Rs32+$Rt32<<#$Ii)",
13343tc_25a78932, TypeLD>, Enc_2e1979, AddrModeRel {
13344let Inst{31-21} = 0b00110010011;
13345let isPredicated = 1;
13346let hasNewValue = 1;
13347let opNewValue = 0;
13348let addrMode = BaseRegOffset;
13349let accessSize = HalfWordAccess;
13350let isPredicatedNew = 1;
13351let mayLoad = 1;
13352let CextOpcode = "L2_loadruh";
13353let InputType = "reg";
13354let BaseOpcode = "L4_loadruh_rr";
13355}
13356def L4_return : HInst<
13357(outs DoubleRegs:$Rdd32),
13358(ins IntRegs:$Rs32),
13359"$Rdd32 = dealloc_return($Rs32):raw",
13360tc_675e4897, TypeLD>, Enc_3a3d62, PredNewRel {
13361let Inst{13-5} = 0b000000000;
13362let Inst{31-21} = 0b10010110000;
13363let isTerminator = 1;
13364let isIndirectBranch = 1;
13365let accessSize = DoubleWordAccess;
13366let mayLoad = 1;
13367let cofMax1 = 1;
13368let isRestrictNoSlot1Store = 1;
13369let isReturn = 1;
13370let Uses = [FRAMEKEY];
13371let Defs = [PC, R29];
13372let BaseOpcode = "L4_return";
13373let isBarrier = 1;
13374let isPredicable = 1;
13375let isTaken = 1;
13376}
13377def L4_return_f : HInst<
13378(outs DoubleRegs:$Rdd32),
13379(ins PredRegs:$Pv4, IntRegs:$Rs32),
13380"if (!$Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13381tc_2b8da4c2, TypeLD>, Enc_b7fad3, PredNewRel {
13382let Inst{7-5} = 0b000;
13383let Inst{13-10} = 0b1100;
13384let Inst{31-21} = 0b10010110000;
13385let isPredicated = 1;
13386let isPredicatedFalse = 1;
13387let isTerminator = 1;
13388let isIndirectBranch = 1;
13389let accessSize = DoubleWordAccess;
13390let mayLoad = 1;
13391let cofMax1 = 1;
13392let isRestrictNoSlot1Store = 1;
13393let isReturn = 1;
13394let Uses = [FRAMEKEY];
13395let Defs = [PC, R29];
13396let BaseOpcode = "L4_return";
13397let isTaken = Inst{12};
13398}
13399def L4_return_fnew_pnt : HInst<
13400(outs DoubleRegs:$Rdd32),
13401(ins PredRegs:$Pv4, IntRegs:$Rs32),
13402"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13403tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13404let Inst{7-5} = 0b000;
13405let Inst{13-10} = 0b1010;
13406let Inst{31-21} = 0b10010110000;
13407let isPredicated = 1;
13408let isPredicatedFalse = 1;
13409let isTerminator = 1;
13410let isIndirectBranch = 1;
13411let accessSize = DoubleWordAccess;
13412let isPredicatedNew = 1;
13413let mayLoad = 1;
13414let cofMax1 = 1;
13415let isRestrictNoSlot1Store = 1;
13416let isReturn = 1;
13417let Uses = [FRAMEKEY];
13418let Defs = [PC, R29];
13419let BaseOpcode = "L4_return";
13420let isTaken = Inst{12};
13421}
13422def L4_return_fnew_pt : HInst<
13423(outs DoubleRegs:$Rdd32),
13424(ins PredRegs:$Pv4, IntRegs:$Rs32),
13425"if (!$Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13426tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13427let Inst{7-5} = 0b000;
13428let Inst{13-10} = 0b1110;
13429let Inst{31-21} = 0b10010110000;
13430let isPredicated = 1;
13431let isPredicatedFalse = 1;
13432let isTerminator = 1;
13433let isIndirectBranch = 1;
13434let accessSize = DoubleWordAccess;
13435let isPredicatedNew = 1;
13436let mayLoad = 1;
13437let cofMax1 = 1;
13438let isRestrictNoSlot1Store = 1;
13439let isReturn = 1;
13440let Uses = [FRAMEKEY];
13441let Defs = [PC, R29];
13442let BaseOpcode = "L4_return";
13443let isTaken = Inst{12};
13444}
13445def L4_return_map_to_raw_f : HInst<
13446(outs),
13447(ins PredRegs:$Pv4),
13448"if (!$Pv4) dealloc_return",
13449tc_2b8da4c2, TypeMAPPING>, Requires<[HasV65]> {
13450let isPseudo = 1;
13451let isCodeGenOnly = 1;
13452}
13453def L4_return_map_to_raw_fnew_pnt : HInst<
13454(outs),
13455(ins PredRegs:$Pv4),
13456"if (!$Pv4.new) dealloc_return:nt",
13457tc_9da59d12, TypeMAPPING>, Requires<[HasV65]> {
13458let isPseudo = 1;
13459let isCodeGenOnly = 1;
13460}
13461def L4_return_map_to_raw_fnew_pt : HInst<
13462(outs),
13463(ins PredRegs:$Pv4),
13464"if (!$Pv4.new) dealloc_return:t",
13465tc_9da59d12, TypeMAPPING>, Requires<[HasV65]> {
13466let isPseudo = 1;
13467let isCodeGenOnly = 1;
13468}
13469def L4_return_map_to_raw_t : HInst<
13470(outs),
13471(ins PredRegs:$Pv4),
13472"if ($Pv4) dealloc_return",
13473tc_4d5fa3a1, TypeMAPPING>, Requires<[HasV65]> {
13474let isPseudo = 1;
13475let isCodeGenOnly = 1;
13476}
13477def L4_return_map_to_raw_tnew_pnt : HInst<
13478(outs),
13479(ins PredRegs:$Pv4),
13480"if ($Pv4.new) dealloc_return:nt",
13481tc_e06f432a, TypeMAPPING>, Requires<[HasV65]> {
13482let isPseudo = 1;
13483let isCodeGenOnly = 1;
13484}
13485def L4_return_map_to_raw_tnew_pt : HInst<
13486(outs),
13487(ins PredRegs:$Pv4),
13488"if ($Pv4.new) dealloc_return:t",
13489tc_e06f432a, TypeMAPPING>, Requires<[HasV65]> {
13490let isPseudo = 1;
13491let isCodeGenOnly = 1;
13492}
13493def L4_return_t : HInst<
13494(outs DoubleRegs:$Rdd32),
13495(ins PredRegs:$Pv4, IntRegs:$Rs32),
13496"if ($Pv4) $Rdd32 = dealloc_return($Rs32):raw",
13497tc_2b8da4c2, TypeLD>, Enc_b7fad3, PredNewRel {
13498let Inst{7-5} = 0b000;
13499let Inst{13-10} = 0b0100;
13500let Inst{31-21} = 0b10010110000;
13501let isPredicated = 1;
13502let isTerminator = 1;
13503let isIndirectBranch = 1;
13504let accessSize = DoubleWordAccess;
13505let mayLoad = 1;
13506let cofMax1 = 1;
13507let isRestrictNoSlot1Store = 1;
13508let isReturn = 1;
13509let Uses = [FRAMEKEY];
13510let Defs = [PC, R29];
13511let BaseOpcode = "L4_return";
13512let isTaken = Inst{12};
13513}
13514def L4_return_tnew_pnt : HInst<
13515(outs DoubleRegs:$Rdd32),
13516(ins PredRegs:$Pv4, IntRegs:$Rs32),
13517"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):nt:raw",
13518tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13519let Inst{7-5} = 0b000;
13520let Inst{13-10} = 0b0010;
13521let Inst{31-21} = 0b10010110000;
13522let isPredicated = 1;
13523let isTerminator = 1;
13524let isIndirectBranch = 1;
13525let accessSize = DoubleWordAccess;
13526let isPredicatedNew = 1;
13527let mayLoad = 1;
13528let cofMax1 = 1;
13529let isRestrictNoSlot1Store = 1;
13530let isReturn = 1;
13531let Uses = [FRAMEKEY];
13532let Defs = [PC, R29];
13533let BaseOpcode = "L4_return";
13534let isTaken = Inst{12};
13535}
13536def L4_return_tnew_pt : HInst<
13537(outs DoubleRegs:$Rdd32),
13538(ins PredRegs:$Pv4, IntRegs:$Rs32),
13539"if ($Pv4.new) $Rdd32 = dealloc_return($Rs32):t:raw",
13540tc_9da59d12, TypeLD>, Enc_b7fad3, PredNewRel {
13541let Inst{7-5} = 0b000;
13542let Inst{13-10} = 0b0110;
13543let Inst{31-21} = 0b10010110000;
13544let isPredicated = 1;
13545let isTerminator = 1;
13546let isIndirectBranch = 1;
13547let accessSize = DoubleWordAccess;
13548let isPredicatedNew = 1;
13549let mayLoad = 1;
13550let cofMax1 = 1;
13551let isRestrictNoSlot1Store = 1;
13552let isReturn = 1;
13553let Uses = [FRAMEKEY];
13554let Defs = [PC, R29];
13555let BaseOpcode = "L4_return";
13556let isTaken = Inst{12};
13557}
13558def L4_sub_memopb_io : HInst<
13559(outs),
13560(ins IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
13561"memb($Rs32+#$Ii) -= $Rt32",
13562tc_7186d325, TypeV4LDST>, Enc_d44e31 {
13563let Inst{6-5} = 0b01;
13564let Inst{13-13} = 0b0;
13565let Inst{31-21} = 0b00111110000;
13566let addrMode = BaseImmOffset;
13567let accessSize = ByteAccess;
13568let mayLoad = 1;
13569let isRestrictNoSlot1Store = 1;
13570let mayStore = 1;
13571let isExtendable = 1;
13572let opExtendable = 1;
13573let isExtentSigned = 0;
13574let opExtentBits = 6;
13575let opExtentAlign = 0;
13576}
13577def L4_sub_memopb_zomap : HInst<
13578(outs),
13579(ins IntRegs:$Rs32, IntRegs:$Rt32),
13580"memb($Rs32) -= $Rt32",
13581tc_7186d325, TypeMAPPING> {
13582let isPseudo = 1;
13583let isCodeGenOnly = 1;
13584}
13585def L4_sub_memoph_io : HInst<
13586(outs),
13587(ins IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
13588"memh($Rs32+#$Ii) -= $Rt32",
13589tc_7186d325, TypeV4LDST>, Enc_163a3c {
13590let Inst{6-5} = 0b01;
13591let Inst{13-13} = 0b0;
13592let Inst{31-21} = 0b00111110001;
13593let addrMode = BaseImmOffset;
13594let accessSize = HalfWordAccess;
13595let mayLoad = 1;
13596let isRestrictNoSlot1Store = 1;
13597let mayStore = 1;
13598let isExtendable = 1;
13599let opExtendable = 1;
13600let isExtentSigned = 0;
13601let opExtentBits = 7;
13602let opExtentAlign = 1;
13603}
13604def L4_sub_memoph_zomap : HInst<
13605(outs),
13606(ins IntRegs:$Rs32, IntRegs:$Rt32),
13607"memh($Rs32) -= $Rt32",
13608tc_7186d325, TypeMAPPING> {
13609let isPseudo = 1;
13610let isCodeGenOnly = 1;
13611}
13612def L4_sub_memopw_io : HInst<
13613(outs),
13614(ins IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
13615"memw($Rs32+#$Ii) -= $Rt32",
13616tc_7186d325, TypeV4LDST>, Enc_226535 {
13617let Inst{6-5} = 0b01;
13618let Inst{13-13} = 0b0;
13619let Inst{31-21} = 0b00111110010;
13620let addrMode = BaseImmOffset;
13621let accessSize = WordAccess;
13622let mayLoad = 1;
13623let isRestrictNoSlot1Store = 1;
13624let mayStore = 1;
13625let isExtendable = 1;
13626let opExtendable = 1;
13627let isExtentSigned = 0;
13628let opExtentBits = 8;
13629let opExtentAlign = 2;
13630}
13631def L4_sub_memopw_zomap : HInst<
13632(outs),
13633(ins IntRegs:$Rs32, IntRegs:$Rt32),
13634"memw($Rs32) -= $Rt32",
13635tc_7186d325, TypeMAPPING> {
13636let isPseudo = 1;
13637let isCodeGenOnly = 1;
13638}
13639def L6_deallocframe_map_to_raw : HInst<
13640(outs),
13641(ins),
13642"deallocframe",
13643tc_15aa71c5, TypeMAPPING>, Requires<[HasV65]> {
13644let isPseudo = 1;
13645let isCodeGenOnly = 1;
13646}
13647def L6_memcpy : HInst<
13648(outs),
13649(ins IntRegs:$Rs32, IntRegs:$Rt32, ModRegs:$Mu2),
13650"memcpy($Rs32,$Rt32,$Mu2)",
13651tc_a6b1eca9, TypeLD>, Enc_a75aa6, Requires<[HasV66]> {
13652let Inst{7-0} = 0b01000000;
13653let Inst{31-21} = 0b10010010000;
13654let mayLoad = 1;
13655let isSolo = 1;
13656let mayStore = 1;
13657}
13658def L6_return_map_to_raw : HInst<
13659(outs),
13660(ins),
13661"dealloc_return",
13662tc_675e4897, TypeMAPPING>, Requires<[HasV65]> {
13663let isPseudo = 1;
13664let isCodeGenOnly = 1;
13665}
13666def M2_acci : HInst<
13667(outs IntRegs:$Rx32),
13668(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13669"$Rx32 += add($Rs32,$Rt32)",
13670tc_f675fee8, TypeM>, Enc_2ae154, ImmRegRel {
13671let Inst{7-5} = 0b001;
13672let Inst{13-13} = 0b0;
13673let Inst{31-21} = 0b11101111000;
13674let hasNewValue = 1;
13675let opNewValue = 0;
13676let prefersSlot3 = 1;
13677let CextOpcode = "M2_acci";
13678let InputType = "reg";
13679let Constraints = "$Rx32 = $Rx32in";
13680}
13681def M2_accii : HInst<
13682(outs IntRegs:$Rx32),
13683(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
13684"$Rx32 += add($Rs32,#$Ii)",
13685tc_f675fee8, TypeM>, Enc_c90aca, ImmRegRel {
13686let Inst{13-13} = 0b0;
13687let Inst{31-21} = 0b11100010000;
13688let hasNewValue = 1;
13689let opNewValue = 0;
13690let prefersSlot3 = 1;
13691let CextOpcode = "M2_acci";
13692let InputType = "imm";
13693let isExtendable = 1;
13694let opExtendable = 3;
13695let isExtentSigned = 1;
13696let opExtentBits = 8;
13697let opExtentAlign = 0;
13698let Constraints = "$Rx32 = $Rx32in";
13699}
13700def M2_cmaci_s0 : HInst<
13701(outs DoubleRegs:$Rxx32),
13702(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13703"$Rxx32 += cmpyi($Rs32,$Rt32)",
13704tc_d773585a, TypeM>, Enc_61f0b0 {
13705let Inst{7-5} = 0b001;
13706let Inst{13-13} = 0b0;
13707let Inst{31-21} = 0b11100111000;
13708let prefersSlot3 = 1;
13709let Constraints = "$Rxx32 = $Rxx32in";
13710}
13711def M2_cmacr_s0 : HInst<
13712(outs DoubleRegs:$Rxx32),
13713(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13714"$Rxx32 += cmpyr($Rs32,$Rt32)",
13715tc_d773585a, TypeM>, Enc_61f0b0 {
13716let Inst{7-5} = 0b010;
13717let Inst{13-13} = 0b0;
13718let Inst{31-21} = 0b11100111000;
13719let prefersSlot3 = 1;
13720let Constraints = "$Rxx32 = $Rxx32in";
13721}
13722def M2_cmacs_s0 : HInst<
13723(outs DoubleRegs:$Rxx32),
13724(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13725"$Rxx32 += cmpy($Rs32,$Rt32):sat",
13726tc_d773585a, TypeM>, Enc_61f0b0 {
13727let Inst{7-5} = 0b110;
13728let Inst{13-13} = 0b0;
13729let Inst{31-21} = 0b11100111000;
13730let prefersSlot3 = 1;
13731let Defs = [USR_OVF];
13732let Constraints = "$Rxx32 = $Rxx32in";
13733}
13734def M2_cmacs_s1 : HInst<
13735(outs DoubleRegs:$Rxx32),
13736(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13737"$Rxx32 += cmpy($Rs32,$Rt32):<<1:sat",
13738tc_d773585a, TypeM>, Enc_61f0b0 {
13739let Inst{7-5} = 0b110;
13740let Inst{13-13} = 0b0;
13741let Inst{31-21} = 0b11100111100;
13742let prefersSlot3 = 1;
13743let Defs = [USR_OVF];
13744let Constraints = "$Rxx32 = $Rxx32in";
13745}
13746def M2_cmacsc_s0 : HInst<
13747(outs DoubleRegs:$Rxx32),
13748(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13749"$Rxx32 += cmpy($Rs32,$Rt32*):sat",
13750tc_d773585a, TypeM>, Enc_61f0b0 {
13751let Inst{7-5} = 0b110;
13752let Inst{13-13} = 0b0;
13753let Inst{31-21} = 0b11100111010;
13754let prefersSlot3 = 1;
13755let Defs = [USR_OVF];
13756let Constraints = "$Rxx32 = $Rxx32in";
13757}
13758def M2_cmacsc_s1 : HInst<
13759(outs DoubleRegs:$Rxx32),
13760(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13761"$Rxx32 += cmpy($Rs32,$Rt32*):<<1:sat",
13762tc_d773585a, TypeM>, Enc_61f0b0 {
13763let Inst{7-5} = 0b110;
13764let Inst{13-13} = 0b0;
13765let Inst{31-21} = 0b11100111110;
13766let prefersSlot3 = 1;
13767let Defs = [USR_OVF];
13768let Constraints = "$Rxx32 = $Rxx32in";
13769}
13770def M2_cmpyi_s0 : HInst<
13771(outs DoubleRegs:$Rdd32),
13772(ins IntRegs:$Rs32, IntRegs:$Rt32),
13773"$Rdd32 = cmpyi($Rs32,$Rt32)",
13774tc_bafaade3, TypeM>, Enc_be32a5 {
13775let Inst{7-5} = 0b001;
13776let Inst{13-13} = 0b0;
13777let Inst{31-21} = 0b11100101000;
13778let prefersSlot3 = 1;
13779}
13780def M2_cmpyr_s0 : HInst<
13781(outs DoubleRegs:$Rdd32),
13782(ins IntRegs:$Rs32, IntRegs:$Rt32),
13783"$Rdd32 = cmpyr($Rs32,$Rt32)",
13784tc_bafaade3, TypeM>, Enc_be32a5 {
13785let Inst{7-5} = 0b010;
13786let Inst{13-13} = 0b0;
13787let Inst{31-21} = 0b11100101000;
13788let prefersSlot3 = 1;
13789}
13790def M2_cmpyrs_s0 : HInst<
13791(outs IntRegs:$Rd32),
13792(ins IntRegs:$Rs32, IntRegs:$Rt32),
13793"$Rd32 = cmpy($Rs32,$Rt32):rnd:sat",
13794tc_bafaade3, TypeM>, Enc_5ab2be {
13795let Inst{7-5} = 0b110;
13796let Inst{13-13} = 0b0;
13797let Inst{31-21} = 0b11101101001;
13798let hasNewValue = 1;
13799let opNewValue = 0;
13800let prefersSlot3 = 1;
13801let Defs = [USR_OVF];
13802}
13803def M2_cmpyrs_s1 : HInst<
13804(outs IntRegs:$Rd32),
13805(ins IntRegs:$Rs32, IntRegs:$Rt32),
13806"$Rd32 = cmpy($Rs32,$Rt32):<<1:rnd:sat",
13807tc_bafaade3, TypeM>, Enc_5ab2be {
13808let Inst{7-5} = 0b110;
13809let Inst{13-13} = 0b0;
13810let Inst{31-21} = 0b11101101101;
13811let hasNewValue = 1;
13812let opNewValue = 0;
13813let prefersSlot3 = 1;
13814let Defs = [USR_OVF];
13815}
13816def M2_cmpyrsc_s0 : HInst<
13817(outs IntRegs:$Rd32),
13818(ins IntRegs:$Rs32, IntRegs:$Rt32),
13819"$Rd32 = cmpy($Rs32,$Rt32*):rnd:sat",
13820tc_bafaade3, TypeM>, Enc_5ab2be {
13821let Inst{7-5} = 0b110;
13822let Inst{13-13} = 0b0;
13823let Inst{31-21} = 0b11101101011;
13824let hasNewValue = 1;
13825let opNewValue = 0;
13826let prefersSlot3 = 1;
13827let Defs = [USR_OVF];
13828}
13829def M2_cmpyrsc_s1 : HInst<
13830(outs IntRegs:$Rd32),
13831(ins IntRegs:$Rs32, IntRegs:$Rt32),
13832"$Rd32 = cmpy($Rs32,$Rt32*):<<1:rnd:sat",
13833tc_bafaade3, TypeM>, Enc_5ab2be {
13834let Inst{7-5} = 0b110;
13835let Inst{13-13} = 0b0;
13836let Inst{31-21} = 0b11101101111;
13837let hasNewValue = 1;
13838let opNewValue = 0;
13839let prefersSlot3 = 1;
13840let Defs = [USR_OVF];
13841}
13842def M2_cmpys_s0 : HInst<
13843(outs DoubleRegs:$Rdd32),
13844(ins IntRegs:$Rs32, IntRegs:$Rt32),
13845"$Rdd32 = cmpy($Rs32,$Rt32):sat",
13846tc_bafaade3, TypeM>, Enc_be32a5 {
13847let Inst{7-5} = 0b110;
13848let Inst{13-13} = 0b0;
13849let Inst{31-21} = 0b11100101000;
13850let prefersSlot3 = 1;
13851let Defs = [USR_OVF];
13852}
13853def M2_cmpys_s1 : HInst<
13854(outs DoubleRegs:$Rdd32),
13855(ins IntRegs:$Rs32, IntRegs:$Rt32),
13856"$Rdd32 = cmpy($Rs32,$Rt32):<<1:sat",
13857tc_bafaade3, TypeM>, Enc_be32a5 {
13858let Inst{7-5} = 0b110;
13859let Inst{13-13} = 0b0;
13860let Inst{31-21} = 0b11100101100;
13861let prefersSlot3 = 1;
13862let Defs = [USR_OVF];
13863}
13864def M2_cmpysc_s0 : HInst<
13865(outs DoubleRegs:$Rdd32),
13866(ins IntRegs:$Rs32, IntRegs:$Rt32),
13867"$Rdd32 = cmpy($Rs32,$Rt32*):sat",
13868tc_bafaade3, TypeM>, Enc_be32a5 {
13869let Inst{7-5} = 0b110;
13870let Inst{13-13} = 0b0;
13871let Inst{31-21} = 0b11100101010;
13872let prefersSlot3 = 1;
13873let Defs = [USR_OVF];
13874}
13875def M2_cmpysc_s1 : HInst<
13876(outs DoubleRegs:$Rdd32),
13877(ins IntRegs:$Rs32, IntRegs:$Rt32),
13878"$Rdd32 = cmpy($Rs32,$Rt32*):<<1:sat",
13879tc_bafaade3, TypeM>, Enc_be32a5 {
13880let Inst{7-5} = 0b110;
13881let Inst{13-13} = 0b0;
13882let Inst{31-21} = 0b11100101110;
13883let prefersSlot3 = 1;
13884let Defs = [USR_OVF];
13885}
13886def M2_cnacs_s0 : HInst<
13887(outs DoubleRegs:$Rxx32),
13888(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13889"$Rxx32 -= cmpy($Rs32,$Rt32):sat",
13890tc_d773585a, TypeM>, Enc_61f0b0 {
13891let Inst{7-5} = 0b111;
13892let Inst{13-13} = 0b0;
13893let Inst{31-21} = 0b11100111000;
13894let prefersSlot3 = 1;
13895let Defs = [USR_OVF];
13896let Constraints = "$Rxx32 = $Rxx32in";
13897}
13898def M2_cnacs_s1 : HInst<
13899(outs DoubleRegs:$Rxx32),
13900(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13901"$Rxx32 -= cmpy($Rs32,$Rt32):<<1:sat",
13902tc_d773585a, TypeM>, Enc_61f0b0 {
13903let Inst{7-5} = 0b111;
13904let Inst{13-13} = 0b0;
13905let Inst{31-21} = 0b11100111100;
13906let prefersSlot3 = 1;
13907let Defs = [USR_OVF];
13908let Constraints = "$Rxx32 = $Rxx32in";
13909}
13910def M2_cnacsc_s0 : HInst<
13911(outs DoubleRegs:$Rxx32),
13912(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13913"$Rxx32 -= cmpy($Rs32,$Rt32*):sat",
13914tc_d773585a, TypeM>, Enc_61f0b0 {
13915let Inst{7-5} = 0b111;
13916let Inst{13-13} = 0b0;
13917let Inst{31-21} = 0b11100111010;
13918let prefersSlot3 = 1;
13919let Defs = [USR_OVF];
13920let Constraints = "$Rxx32 = $Rxx32in";
13921}
13922def M2_cnacsc_s1 : HInst<
13923(outs DoubleRegs:$Rxx32),
13924(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13925"$Rxx32 -= cmpy($Rs32,$Rt32*):<<1:sat",
13926tc_d773585a, TypeM>, Enc_61f0b0 {
13927let Inst{7-5} = 0b111;
13928let Inst{13-13} = 0b0;
13929let Inst{31-21} = 0b11100111110;
13930let prefersSlot3 = 1;
13931let Defs = [USR_OVF];
13932let Constraints = "$Rxx32 = $Rxx32in";
13933}
13934def M2_dpmpyss_acc_s0 : HInst<
13935(outs DoubleRegs:$Rxx32),
13936(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13937"$Rxx32 += mpy($Rs32,$Rt32)",
13938tc_d773585a, TypeM>, Enc_61f0b0 {
13939let Inst{7-5} = 0b000;
13940let Inst{13-13} = 0b0;
13941let Inst{31-21} = 0b11100111000;
13942let prefersSlot3 = 1;
13943let Constraints = "$Rxx32 = $Rxx32in";
13944}
13945def M2_dpmpyss_nac_s0 : HInst<
13946(outs DoubleRegs:$Rxx32),
13947(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13948"$Rxx32 -= mpy($Rs32,$Rt32)",
13949tc_d773585a, TypeM>, Enc_61f0b0 {
13950let Inst{7-5} = 0b000;
13951let Inst{13-13} = 0b0;
13952let Inst{31-21} = 0b11100111001;
13953let prefersSlot3 = 1;
13954let Constraints = "$Rxx32 = $Rxx32in";
13955}
13956def M2_dpmpyss_rnd_s0 : HInst<
13957(outs IntRegs:$Rd32),
13958(ins IntRegs:$Rs32, IntRegs:$Rt32),
13959"$Rd32 = mpy($Rs32,$Rt32):rnd",
13960tc_bafaade3, TypeM>, Enc_5ab2be {
13961let Inst{7-5} = 0b001;
13962let Inst{13-13} = 0b0;
13963let Inst{31-21} = 0b11101101001;
13964let hasNewValue = 1;
13965let opNewValue = 0;
13966let prefersSlot3 = 1;
13967}
13968def M2_dpmpyss_s0 : HInst<
13969(outs DoubleRegs:$Rdd32),
13970(ins IntRegs:$Rs32, IntRegs:$Rt32),
13971"$Rdd32 = mpy($Rs32,$Rt32)",
13972tc_bafaade3, TypeM>, Enc_be32a5 {
13973let Inst{7-5} = 0b000;
13974let Inst{13-13} = 0b0;
13975let Inst{31-21} = 0b11100101000;
13976let prefersSlot3 = 1;
13977}
13978def M2_dpmpyuu_acc_s0 : HInst<
13979(outs DoubleRegs:$Rxx32),
13980(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13981"$Rxx32 += mpyu($Rs32,$Rt32)",
13982tc_d773585a, TypeM>, Enc_61f0b0 {
13983let Inst{7-5} = 0b000;
13984let Inst{13-13} = 0b0;
13985let Inst{31-21} = 0b11100111010;
13986let prefersSlot3 = 1;
13987let Constraints = "$Rxx32 = $Rxx32in";
13988}
13989def M2_dpmpyuu_nac_s0 : HInst<
13990(outs DoubleRegs:$Rxx32),
13991(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
13992"$Rxx32 -= mpyu($Rs32,$Rt32)",
13993tc_d773585a, TypeM>, Enc_61f0b0 {
13994let Inst{7-5} = 0b000;
13995let Inst{13-13} = 0b0;
13996let Inst{31-21} = 0b11100111011;
13997let prefersSlot3 = 1;
13998let Constraints = "$Rxx32 = $Rxx32in";
13999}
14000def M2_dpmpyuu_s0 : HInst<
14001(outs DoubleRegs:$Rdd32),
14002(ins IntRegs:$Rs32, IntRegs:$Rt32),
14003"$Rdd32 = mpyu($Rs32,$Rt32)",
14004tc_bafaade3, TypeM>, Enc_be32a5 {
14005let Inst{7-5} = 0b000;
14006let Inst{13-13} = 0b0;
14007let Inst{31-21} = 0b11100101010;
14008let prefersSlot3 = 1;
14009}
14010def M2_hmmpyh_rs1 : HInst<
14011(outs IntRegs:$Rd32),
14012(ins IntRegs:$Rs32, IntRegs:$Rt32),
14013"$Rd32 = mpy($Rs32,$Rt32.h):<<1:rnd:sat",
14014tc_bafaade3, TypeM>, Enc_5ab2be {
14015let Inst{7-5} = 0b100;
14016let Inst{13-13} = 0b0;
14017let Inst{31-21} = 0b11101101101;
14018let hasNewValue = 1;
14019let opNewValue = 0;
14020let prefersSlot3 = 1;
14021let Defs = [USR_OVF];
14022}
14023def M2_hmmpyh_s1 : HInst<
14024(outs IntRegs:$Rd32),
14025(ins IntRegs:$Rs32, IntRegs:$Rt32),
14026"$Rd32 = mpy($Rs32,$Rt32.h):<<1:sat",
14027tc_bafaade3, TypeM>, Enc_5ab2be {
14028let Inst{7-5} = 0b000;
14029let Inst{13-13} = 0b0;
14030let Inst{31-21} = 0b11101101101;
14031let hasNewValue = 1;
14032let opNewValue = 0;
14033let prefersSlot3 = 1;
14034let Defs = [USR_OVF];
14035}
14036def M2_hmmpyl_rs1 : HInst<
14037(outs IntRegs:$Rd32),
14038(ins IntRegs:$Rs32, IntRegs:$Rt32),
14039"$Rd32 = mpy($Rs32,$Rt32.l):<<1:rnd:sat",
14040tc_bafaade3, TypeM>, Enc_5ab2be {
14041let Inst{7-5} = 0b100;
14042let Inst{13-13} = 0b0;
14043let Inst{31-21} = 0b11101101111;
14044let hasNewValue = 1;
14045let opNewValue = 0;
14046let prefersSlot3 = 1;
14047let Defs = [USR_OVF];
14048}
14049def M2_hmmpyl_s1 : HInst<
14050(outs IntRegs:$Rd32),
14051(ins IntRegs:$Rs32, IntRegs:$Rt32),
14052"$Rd32 = mpy($Rs32,$Rt32.l):<<1:sat",
14053tc_bafaade3, TypeM>, Enc_5ab2be {
14054let Inst{7-5} = 0b001;
14055let Inst{13-13} = 0b0;
14056let Inst{31-21} = 0b11101101101;
14057let hasNewValue = 1;
14058let opNewValue = 0;
14059let prefersSlot3 = 1;
14060let Defs = [USR_OVF];
14061}
14062def M2_maci : HInst<
14063(outs IntRegs:$Rx32),
14064(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14065"$Rx32 += mpyi($Rs32,$Rt32)",
14066tc_d773585a, TypeM>, Enc_2ae154, ImmRegRel {
14067let Inst{7-5} = 0b000;
14068let Inst{13-13} = 0b0;
14069let Inst{31-21} = 0b11101111000;
14070let hasNewValue = 1;
14071let opNewValue = 0;
14072let prefersSlot3 = 1;
14073let CextOpcode = "M2_maci";
14074let InputType = "reg";
14075let Constraints = "$Rx32 = $Rx32in";
14076}
14077def M2_macsin : HInst<
14078(outs IntRegs:$Rx32),
14079(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14080"$Rx32 -= mpyi($Rs32,#$Ii)",
14081tc_05d3a09b, TypeM>, Enc_c90aca {
14082let Inst{13-13} = 0b0;
14083let Inst{31-21} = 0b11100001100;
14084let hasNewValue = 1;
14085let opNewValue = 0;
14086let prefersSlot3 = 1;
14087let InputType = "imm";
14088let isExtendable = 1;
14089let opExtendable = 3;
14090let isExtentSigned = 0;
14091let opExtentBits = 8;
14092let opExtentAlign = 0;
14093let Constraints = "$Rx32 = $Rx32in";
14094}
14095def M2_macsip : HInst<
14096(outs IntRegs:$Rx32),
14097(ins IntRegs:$Rx32in, IntRegs:$Rs32, u32_0Imm:$Ii),
14098"$Rx32 += mpyi($Rs32,#$Ii)",
14099tc_05d3a09b, TypeM>, Enc_c90aca, ImmRegRel {
14100let Inst{13-13} = 0b0;
14101let Inst{31-21} = 0b11100001000;
14102let hasNewValue = 1;
14103let opNewValue = 0;
14104let prefersSlot3 = 1;
14105let CextOpcode = "M2_maci";
14106let InputType = "imm";
14107let isExtendable = 1;
14108let opExtendable = 3;
14109let isExtentSigned = 0;
14110let opExtentBits = 8;
14111let opExtentAlign = 0;
14112let Constraints = "$Rx32 = $Rx32in";
14113}
14114def M2_mmachs_rs0 : HInst<
14115(outs DoubleRegs:$Rxx32),
14116(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14117"$Rxx32 += vmpywoh($Rss32,$Rtt32):rnd:sat",
14118tc_d773585a, TypeM>, Enc_88c16c {
14119let Inst{7-5} = 0b111;
14120let Inst{13-13} = 0b0;
14121let Inst{31-21} = 0b11101010001;
14122let prefersSlot3 = 1;
14123let Defs = [USR_OVF];
14124let Constraints = "$Rxx32 = $Rxx32in";
14125}
14126def M2_mmachs_rs1 : HInst<
14127(outs DoubleRegs:$Rxx32),
14128(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14129"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14130tc_d773585a, TypeM>, Enc_88c16c {
14131let Inst{7-5} = 0b111;
14132let Inst{13-13} = 0b0;
14133let Inst{31-21} = 0b11101010101;
14134let prefersSlot3 = 1;
14135let Defs = [USR_OVF];
14136let Constraints = "$Rxx32 = $Rxx32in";
14137}
14138def M2_mmachs_s0 : HInst<
14139(outs DoubleRegs:$Rxx32),
14140(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14141"$Rxx32 += vmpywoh($Rss32,$Rtt32):sat",
14142tc_d773585a, TypeM>, Enc_88c16c {
14143let Inst{7-5} = 0b111;
14144let Inst{13-13} = 0b0;
14145let Inst{31-21} = 0b11101010000;
14146let prefersSlot3 = 1;
14147let Defs = [USR_OVF];
14148let Constraints = "$Rxx32 = $Rxx32in";
14149}
14150def M2_mmachs_s1 : HInst<
14151(outs DoubleRegs:$Rxx32),
14152(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14153"$Rxx32 += vmpywoh($Rss32,$Rtt32):<<1:sat",
14154tc_d773585a, TypeM>, Enc_88c16c {
14155let Inst{7-5} = 0b111;
14156let Inst{13-13} = 0b0;
14157let Inst{31-21} = 0b11101010100;
14158let prefersSlot3 = 1;
14159let Defs = [USR_OVF];
14160let Constraints = "$Rxx32 = $Rxx32in";
14161}
14162def M2_mmacls_rs0 : HInst<
14163(outs DoubleRegs:$Rxx32),
14164(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14165"$Rxx32 += vmpyweh($Rss32,$Rtt32):rnd:sat",
14166tc_d773585a, TypeM>, Enc_88c16c {
14167let Inst{7-5} = 0b101;
14168let Inst{13-13} = 0b0;
14169let Inst{31-21} = 0b11101010001;
14170let prefersSlot3 = 1;
14171let Defs = [USR_OVF];
14172let Constraints = "$Rxx32 = $Rxx32in";
14173}
14174def M2_mmacls_rs1 : HInst<
14175(outs DoubleRegs:$Rxx32),
14176(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14177"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14178tc_d773585a, TypeM>, Enc_88c16c {
14179let Inst{7-5} = 0b101;
14180let Inst{13-13} = 0b0;
14181let Inst{31-21} = 0b11101010101;
14182let prefersSlot3 = 1;
14183let Defs = [USR_OVF];
14184let Constraints = "$Rxx32 = $Rxx32in";
14185}
14186def M2_mmacls_s0 : HInst<
14187(outs DoubleRegs:$Rxx32),
14188(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14189"$Rxx32 += vmpyweh($Rss32,$Rtt32):sat",
14190tc_d773585a, TypeM>, Enc_88c16c {
14191let Inst{7-5} = 0b101;
14192let Inst{13-13} = 0b0;
14193let Inst{31-21} = 0b11101010000;
14194let prefersSlot3 = 1;
14195let Defs = [USR_OVF];
14196let Constraints = "$Rxx32 = $Rxx32in";
14197}
14198def M2_mmacls_s1 : HInst<
14199(outs DoubleRegs:$Rxx32),
14200(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14201"$Rxx32 += vmpyweh($Rss32,$Rtt32):<<1:sat",
14202tc_d773585a, TypeM>, Enc_88c16c {
14203let Inst{7-5} = 0b101;
14204let Inst{13-13} = 0b0;
14205let Inst{31-21} = 0b11101010100;
14206let prefersSlot3 = 1;
14207let Defs = [USR_OVF];
14208let Constraints = "$Rxx32 = $Rxx32in";
14209}
14210def M2_mmacuhs_rs0 : HInst<
14211(outs DoubleRegs:$Rxx32),
14212(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14213"$Rxx32 += vmpywouh($Rss32,$Rtt32):rnd:sat",
14214tc_d773585a, TypeM>, Enc_88c16c {
14215let Inst{7-5} = 0b111;
14216let Inst{13-13} = 0b0;
14217let Inst{31-21} = 0b11101010011;
14218let prefersSlot3 = 1;
14219let Defs = [USR_OVF];
14220let Constraints = "$Rxx32 = $Rxx32in";
14221}
14222def M2_mmacuhs_rs1 : HInst<
14223(outs DoubleRegs:$Rxx32),
14224(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14225"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14226tc_d773585a, TypeM>, Enc_88c16c {
14227let Inst{7-5} = 0b111;
14228let Inst{13-13} = 0b0;
14229let Inst{31-21} = 0b11101010111;
14230let prefersSlot3 = 1;
14231let Defs = [USR_OVF];
14232let Constraints = "$Rxx32 = $Rxx32in";
14233}
14234def M2_mmacuhs_s0 : HInst<
14235(outs DoubleRegs:$Rxx32),
14236(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14237"$Rxx32 += vmpywouh($Rss32,$Rtt32):sat",
14238tc_d773585a, TypeM>, Enc_88c16c {
14239let Inst{7-5} = 0b111;
14240let Inst{13-13} = 0b0;
14241let Inst{31-21} = 0b11101010010;
14242let prefersSlot3 = 1;
14243let Defs = [USR_OVF];
14244let Constraints = "$Rxx32 = $Rxx32in";
14245}
14246def M2_mmacuhs_s1 : HInst<
14247(outs DoubleRegs:$Rxx32),
14248(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14249"$Rxx32 += vmpywouh($Rss32,$Rtt32):<<1:sat",
14250tc_d773585a, TypeM>, Enc_88c16c {
14251let Inst{7-5} = 0b111;
14252let Inst{13-13} = 0b0;
14253let Inst{31-21} = 0b11101010110;
14254let prefersSlot3 = 1;
14255let Defs = [USR_OVF];
14256let Constraints = "$Rxx32 = $Rxx32in";
14257}
14258def M2_mmaculs_rs0 : HInst<
14259(outs DoubleRegs:$Rxx32),
14260(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14261"$Rxx32 += vmpyweuh($Rss32,$Rtt32):rnd:sat",
14262tc_d773585a, TypeM>, Enc_88c16c {
14263let Inst{7-5} = 0b101;
14264let Inst{13-13} = 0b0;
14265let Inst{31-21} = 0b11101010011;
14266let prefersSlot3 = 1;
14267let Defs = [USR_OVF];
14268let Constraints = "$Rxx32 = $Rxx32in";
14269}
14270def M2_mmaculs_rs1 : HInst<
14271(outs DoubleRegs:$Rxx32),
14272(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14273"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14274tc_d773585a, TypeM>, Enc_88c16c {
14275let Inst{7-5} = 0b101;
14276let Inst{13-13} = 0b0;
14277let Inst{31-21} = 0b11101010111;
14278let prefersSlot3 = 1;
14279let Defs = [USR_OVF];
14280let Constraints = "$Rxx32 = $Rxx32in";
14281}
14282def M2_mmaculs_s0 : HInst<
14283(outs DoubleRegs:$Rxx32),
14284(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14285"$Rxx32 += vmpyweuh($Rss32,$Rtt32):sat",
14286tc_d773585a, TypeM>, Enc_88c16c {
14287let Inst{7-5} = 0b101;
14288let Inst{13-13} = 0b0;
14289let Inst{31-21} = 0b11101010010;
14290let prefersSlot3 = 1;
14291let Defs = [USR_OVF];
14292let Constraints = "$Rxx32 = $Rxx32in";
14293}
14294def M2_mmaculs_s1 : HInst<
14295(outs DoubleRegs:$Rxx32),
14296(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14297"$Rxx32 += vmpyweuh($Rss32,$Rtt32):<<1:sat",
14298tc_d773585a, TypeM>, Enc_88c16c {
14299let Inst{7-5} = 0b101;
14300let Inst{13-13} = 0b0;
14301let Inst{31-21} = 0b11101010110;
14302let prefersSlot3 = 1;
14303let Defs = [USR_OVF];
14304let Constraints = "$Rxx32 = $Rxx32in";
14305}
14306def M2_mmpyh_rs0 : HInst<
14307(outs DoubleRegs:$Rdd32),
14308(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14309"$Rdd32 = vmpywoh($Rss32,$Rtt32):rnd:sat",
14310tc_bafaade3, TypeM>, Enc_a56825 {
14311let Inst{7-5} = 0b111;
14312let Inst{13-13} = 0b0;
14313let Inst{31-21} = 0b11101000001;
14314let prefersSlot3 = 1;
14315let Defs = [USR_OVF];
14316}
14317def M2_mmpyh_rs1 : HInst<
14318(outs DoubleRegs:$Rdd32),
14319(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14320"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:rnd:sat",
14321tc_bafaade3, TypeM>, Enc_a56825 {
14322let Inst{7-5} = 0b111;
14323let Inst{13-13} = 0b0;
14324let Inst{31-21} = 0b11101000101;
14325let prefersSlot3 = 1;
14326let Defs = [USR_OVF];
14327}
14328def M2_mmpyh_s0 : HInst<
14329(outs DoubleRegs:$Rdd32),
14330(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14331"$Rdd32 = vmpywoh($Rss32,$Rtt32):sat",
14332tc_bafaade3, TypeM>, Enc_a56825 {
14333let Inst{7-5} = 0b111;
14334let Inst{13-13} = 0b0;
14335let Inst{31-21} = 0b11101000000;
14336let prefersSlot3 = 1;
14337let Defs = [USR_OVF];
14338}
14339def M2_mmpyh_s1 : HInst<
14340(outs DoubleRegs:$Rdd32),
14341(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14342"$Rdd32 = vmpywoh($Rss32,$Rtt32):<<1:sat",
14343tc_bafaade3, TypeM>, Enc_a56825 {
14344let Inst{7-5} = 0b111;
14345let Inst{13-13} = 0b0;
14346let Inst{31-21} = 0b11101000100;
14347let prefersSlot3 = 1;
14348let Defs = [USR_OVF];
14349}
14350def M2_mmpyl_rs0 : HInst<
14351(outs DoubleRegs:$Rdd32),
14352(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14353"$Rdd32 = vmpyweh($Rss32,$Rtt32):rnd:sat",
14354tc_bafaade3, TypeM>, Enc_a56825 {
14355let Inst{7-5} = 0b101;
14356let Inst{13-13} = 0b0;
14357let Inst{31-21} = 0b11101000001;
14358let prefersSlot3 = 1;
14359let Defs = [USR_OVF];
14360}
14361def M2_mmpyl_rs1 : HInst<
14362(outs DoubleRegs:$Rdd32),
14363(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14364"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:rnd:sat",
14365tc_bafaade3, TypeM>, Enc_a56825 {
14366let Inst{7-5} = 0b101;
14367let Inst{13-13} = 0b0;
14368let Inst{31-21} = 0b11101000101;
14369let prefersSlot3 = 1;
14370let Defs = [USR_OVF];
14371}
14372def M2_mmpyl_s0 : HInst<
14373(outs DoubleRegs:$Rdd32),
14374(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14375"$Rdd32 = vmpyweh($Rss32,$Rtt32):sat",
14376tc_bafaade3, TypeM>, Enc_a56825 {
14377let Inst{7-5} = 0b101;
14378let Inst{13-13} = 0b0;
14379let Inst{31-21} = 0b11101000000;
14380let prefersSlot3 = 1;
14381let Defs = [USR_OVF];
14382}
14383def M2_mmpyl_s1 : HInst<
14384(outs DoubleRegs:$Rdd32),
14385(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14386"$Rdd32 = vmpyweh($Rss32,$Rtt32):<<1:sat",
14387tc_bafaade3, TypeM>, Enc_a56825 {
14388let Inst{7-5} = 0b101;
14389let Inst{13-13} = 0b0;
14390let Inst{31-21} = 0b11101000100;
14391let prefersSlot3 = 1;
14392let Defs = [USR_OVF];
14393}
14394def M2_mmpyuh_rs0 : HInst<
14395(outs DoubleRegs:$Rdd32),
14396(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14397"$Rdd32 = vmpywouh($Rss32,$Rtt32):rnd:sat",
14398tc_bafaade3, TypeM>, Enc_a56825 {
14399let Inst{7-5} = 0b111;
14400let Inst{13-13} = 0b0;
14401let Inst{31-21} = 0b11101000011;
14402let prefersSlot3 = 1;
14403let Defs = [USR_OVF];
14404}
14405def M2_mmpyuh_rs1 : HInst<
14406(outs DoubleRegs:$Rdd32),
14407(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14408"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:rnd:sat",
14409tc_bafaade3, TypeM>, Enc_a56825 {
14410let Inst{7-5} = 0b111;
14411let Inst{13-13} = 0b0;
14412let Inst{31-21} = 0b11101000111;
14413let prefersSlot3 = 1;
14414let Defs = [USR_OVF];
14415}
14416def M2_mmpyuh_s0 : HInst<
14417(outs DoubleRegs:$Rdd32),
14418(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14419"$Rdd32 = vmpywouh($Rss32,$Rtt32):sat",
14420tc_bafaade3, TypeM>, Enc_a56825 {
14421let Inst{7-5} = 0b111;
14422let Inst{13-13} = 0b0;
14423let Inst{31-21} = 0b11101000010;
14424let prefersSlot3 = 1;
14425let Defs = [USR_OVF];
14426}
14427def M2_mmpyuh_s1 : HInst<
14428(outs DoubleRegs:$Rdd32),
14429(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14430"$Rdd32 = vmpywouh($Rss32,$Rtt32):<<1:sat",
14431tc_bafaade3, TypeM>, Enc_a56825 {
14432let Inst{7-5} = 0b111;
14433let Inst{13-13} = 0b0;
14434let Inst{31-21} = 0b11101000110;
14435let prefersSlot3 = 1;
14436let Defs = [USR_OVF];
14437}
14438def M2_mmpyul_rs0 : HInst<
14439(outs DoubleRegs:$Rdd32),
14440(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14441"$Rdd32 = vmpyweuh($Rss32,$Rtt32):rnd:sat",
14442tc_bafaade3, TypeM>, Enc_a56825 {
14443let Inst{7-5} = 0b101;
14444let Inst{13-13} = 0b0;
14445let Inst{31-21} = 0b11101000011;
14446let prefersSlot3 = 1;
14447let Defs = [USR_OVF];
14448}
14449def M2_mmpyul_rs1 : HInst<
14450(outs DoubleRegs:$Rdd32),
14451(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14452"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:rnd:sat",
14453tc_bafaade3, TypeM>, Enc_a56825 {
14454let Inst{7-5} = 0b101;
14455let Inst{13-13} = 0b0;
14456let Inst{31-21} = 0b11101000111;
14457let prefersSlot3 = 1;
14458let Defs = [USR_OVF];
14459}
14460def M2_mmpyul_s0 : HInst<
14461(outs DoubleRegs:$Rdd32),
14462(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14463"$Rdd32 = vmpyweuh($Rss32,$Rtt32):sat",
14464tc_bafaade3, TypeM>, Enc_a56825 {
14465let Inst{7-5} = 0b101;
14466let Inst{13-13} = 0b0;
14467let Inst{31-21} = 0b11101000010;
14468let prefersSlot3 = 1;
14469let Defs = [USR_OVF];
14470}
14471def M2_mmpyul_s1 : HInst<
14472(outs DoubleRegs:$Rdd32),
14473(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
14474"$Rdd32 = vmpyweuh($Rss32,$Rtt32):<<1:sat",
14475tc_bafaade3, TypeM>, Enc_a56825 {
14476let Inst{7-5} = 0b101;
14477let Inst{13-13} = 0b0;
14478let Inst{31-21} = 0b11101000110;
14479let prefersSlot3 = 1;
14480let Defs = [USR_OVF];
14481}
14482def M2_mnaci : HInst<
14483(outs IntRegs:$Rx32),
14484(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14485"$Rx32 -= mpyi($Rs32,$Rt32)",
14486tc_bdceeac1, TypeM>, Enc_2ae154, Requires<[HasV66]> {
14487let Inst{7-5} = 0b000;
14488let Inst{13-13} = 0b0;
14489let Inst{31-21} = 0b11101111100;
14490let hasNewValue = 1;
14491let opNewValue = 0;
14492let prefersSlot3 = 1;
14493let Constraints = "$Rx32 = $Rx32in";
14494}
14495def M2_mpy_acc_hh_s0 : HInst<
14496(outs IntRegs:$Rx32),
14497(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14498"$Rx32 += mpy($Rs32.h,$Rt32.h)",
14499tc_d773585a, TypeM>, Enc_2ae154 {
14500let Inst{7-5} = 0b011;
14501let Inst{13-13} = 0b0;
14502let Inst{31-21} = 0b11101110000;
14503let hasNewValue = 1;
14504let opNewValue = 0;
14505let prefersSlot3 = 1;
14506let Constraints = "$Rx32 = $Rx32in";
14507}
14508def M2_mpy_acc_hh_s1 : HInst<
14509(outs IntRegs:$Rx32),
14510(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14511"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1",
14512tc_d773585a, TypeM>, Enc_2ae154 {
14513let Inst{7-5} = 0b011;
14514let Inst{13-13} = 0b0;
14515let Inst{31-21} = 0b11101110100;
14516let hasNewValue = 1;
14517let opNewValue = 0;
14518let prefersSlot3 = 1;
14519let Constraints = "$Rx32 = $Rx32in";
14520}
14521def M2_mpy_acc_hl_s0 : HInst<
14522(outs IntRegs:$Rx32),
14523(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14524"$Rx32 += mpy($Rs32.h,$Rt32.l)",
14525tc_d773585a, TypeM>, Enc_2ae154 {
14526let Inst{7-5} = 0b010;
14527let Inst{13-13} = 0b0;
14528let Inst{31-21} = 0b11101110000;
14529let hasNewValue = 1;
14530let opNewValue = 0;
14531let prefersSlot3 = 1;
14532let Constraints = "$Rx32 = $Rx32in";
14533}
14534def M2_mpy_acc_hl_s1 : HInst<
14535(outs IntRegs:$Rx32),
14536(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14537"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1",
14538tc_d773585a, TypeM>, Enc_2ae154 {
14539let Inst{7-5} = 0b010;
14540let Inst{13-13} = 0b0;
14541let Inst{31-21} = 0b11101110100;
14542let hasNewValue = 1;
14543let opNewValue = 0;
14544let prefersSlot3 = 1;
14545let Constraints = "$Rx32 = $Rx32in";
14546}
14547def M2_mpy_acc_lh_s0 : HInst<
14548(outs IntRegs:$Rx32),
14549(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14550"$Rx32 += mpy($Rs32.l,$Rt32.h)",
14551tc_d773585a, TypeM>, Enc_2ae154 {
14552let Inst{7-5} = 0b001;
14553let Inst{13-13} = 0b0;
14554let Inst{31-21} = 0b11101110000;
14555let hasNewValue = 1;
14556let opNewValue = 0;
14557let prefersSlot3 = 1;
14558let Constraints = "$Rx32 = $Rx32in";
14559}
14560def M2_mpy_acc_lh_s1 : HInst<
14561(outs IntRegs:$Rx32),
14562(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14563"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1",
14564tc_d773585a, TypeM>, Enc_2ae154 {
14565let Inst{7-5} = 0b001;
14566let Inst{13-13} = 0b0;
14567let Inst{31-21} = 0b11101110100;
14568let hasNewValue = 1;
14569let opNewValue = 0;
14570let prefersSlot3 = 1;
14571let Constraints = "$Rx32 = $Rx32in";
14572}
14573def M2_mpy_acc_ll_s0 : HInst<
14574(outs IntRegs:$Rx32),
14575(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14576"$Rx32 += mpy($Rs32.l,$Rt32.l)",
14577tc_d773585a, TypeM>, Enc_2ae154 {
14578let Inst{7-5} = 0b000;
14579let Inst{13-13} = 0b0;
14580let Inst{31-21} = 0b11101110000;
14581let hasNewValue = 1;
14582let opNewValue = 0;
14583let prefersSlot3 = 1;
14584let Constraints = "$Rx32 = $Rx32in";
14585}
14586def M2_mpy_acc_ll_s1 : HInst<
14587(outs IntRegs:$Rx32),
14588(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14589"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1",
14590tc_d773585a, TypeM>, Enc_2ae154 {
14591let Inst{7-5} = 0b000;
14592let Inst{13-13} = 0b0;
14593let Inst{31-21} = 0b11101110100;
14594let hasNewValue = 1;
14595let opNewValue = 0;
14596let prefersSlot3 = 1;
14597let Constraints = "$Rx32 = $Rx32in";
14598}
14599def M2_mpy_acc_sat_hh_s0 : HInst<
14600(outs IntRegs:$Rx32),
14601(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14602"$Rx32 += mpy($Rs32.h,$Rt32.h):sat",
14603tc_d773585a, TypeM>, Enc_2ae154 {
14604let Inst{7-5} = 0b111;
14605let Inst{13-13} = 0b0;
14606let Inst{31-21} = 0b11101110000;
14607let hasNewValue = 1;
14608let opNewValue = 0;
14609let prefersSlot3 = 1;
14610let Defs = [USR_OVF];
14611let Constraints = "$Rx32 = $Rx32in";
14612}
14613def M2_mpy_acc_sat_hh_s1 : HInst<
14614(outs IntRegs:$Rx32),
14615(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14616"$Rx32 += mpy($Rs32.h,$Rt32.h):<<1:sat",
14617tc_d773585a, TypeM>, Enc_2ae154 {
14618let Inst{7-5} = 0b111;
14619let Inst{13-13} = 0b0;
14620let Inst{31-21} = 0b11101110100;
14621let hasNewValue = 1;
14622let opNewValue = 0;
14623let prefersSlot3 = 1;
14624let Defs = [USR_OVF];
14625let Constraints = "$Rx32 = $Rx32in";
14626}
14627def M2_mpy_acc_sat_hl_s0 : HInst<
14628(outs IntRegs:$Rx32),
14629(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14630"$Rx32 += mpy($Rs32.h,$Rt32.l):sat",
14631tc_d773585a, TypeM>, Enc_2ae154 {
14632let Inst{7-5} = 0b110;
14633let Inst{13-13} = 0b0;
14634let Inst{31-21} = 0b11101110000;
14635let hasNewValue = 1;
14636let opNewValue = 0;
14637let prefersSlot3 = 1;
14638let Defs = [USR_OVF];
14639let Constraints = "$Rx32 = $Rx32in";
14640}
14641def M2_mpy_acc_sat_hl_s1 : HInst<
14642(outs IntRegs:$Rx32),
14643(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14644"$Rx32 += mpy($Rs32.h,$Rt32.l):<<1:sat",
14645tc_d773585a, TypeM>, Enc_2ae154 {
14646let Inst{7-5} = 0b110;
14647let Inst{13-13} = 0b0;
14648let Inst{31-21} = 0b11101110100;
14649let hasNewValue = 1;
14650let opNewValue = 0;
14651let prefersSlot3 = 1;
14652let Defs = [USR_OVF];
14653let Constraints = "$Rx32 = $Rx32in";
14654}
14655def M2_mpy_acc_sat_lh_s0 : HInst<
14656(outs IntRegs:$Rx32),
14657(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14658"$Rx32 += mpy($Rs32.l,$Rt32.h):sat",
14659tc_d773585a, TypeM>, Enc_2ae154 {
14660let Inst{7-5} = 0b101;
14661let Inst{13-13} = 0b0;
14662let Inst{31-21} = 0b11101110000;
14663let hasNewValue = 1;
14664let opNewValue = 0;
14665let prefersSlot3 = 1;
14666let Defs = [USR_OVF];
14667let Constraints = "$Rx32 = $Rx32in";
14668}
14669def M2_mpy_acc_sat_lh_s1 : HInst<
14670(outs IntRegs:$Rx32),
14671(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14672"$Rx32 += mpy($Rs32.l,$Rt32.h):<<1:sat",
14673tc_d773585a, TypeM>, Enc_2ae154 {
14674let Inst{7-5} = 0b101;
14675let Inst{13-13} = 0b0;
14676let Inst{31-21} = 0b11101110100;
14677let hasNewValue = 1;
14678let opNewValue = 0;
14679let prefersSlot3 = 1;
14680let Defs = [USR_OVF];
14681let Constraints = "$Rx32 = $Rx32in";
14682}
14683def M2_mpy_acc_sat_ll_s0 : HInst<
14684(outs IntRegs:$Rx32),
14685(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14686"$Rx32 += mpy($Rs32.l,$Rt32.l):sat",
14687tc_d773585a, TypeM>, Enc_2ae154 {
14688let Inst{7-5} = 0b100;
14689let Inst{13-13} = 0b0;
14690let Inst{31-21} = 0b11101110000;
14691let hasNewValue = 1;
14692let opNewValue = 0;
14693let prefersSlot3 = 1;
14694let Defs = [USR_OVF];
14695let Constraints = "$Rx32 = $Rx32in";
14696}
14697def M2_mpy_acc_sat_ll_s1 : HInst<
14698(outs IntRegs:$Rx32),
14699(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14700"$Rx32 += mpy($Rs32.l,$Rt32.l):<<1:sat",
14701tc_d773585a, TypeM>, Enc_2ae154 {
14702let Inst{7-5} = 0b100;
14703let Inst{13-13} = 0b0;
14704let Inst{31-21} = 0b11101110100;
14705let hasNewValue = 1;
14706let opNewValue = 0;
14707let prefersSlot3 = 1;
14708let Defs = [USR_OVF];
14709let Constraints = "$Rx32 = $Rx32in";
14710}
14711def M2_mpy_hh_s0 : HInst<
14712(outs IntRegs:$Rd32),
14713(ins IntRegs:$Rs32, IntRegs:$Rt32),
14714"$Rd32 = mpy($Rs32.h,$Rt32.h)",
14715tc_bafaade3, TypeM>, Enc_5ab2be {
14716let Inst{7-5} = 0b011;
14717let Inst{13-13} = 0b0;
14718let Inst{31-21} = 0b11101100000;
14719let hasNewValue = 1;
14720let opNewValue = 0;
14721let prefersSlot3 = 1;
14722}
14723def M2_mpy_hh_s1 : HInst<
14724(outs IntRegs:$Rd32),
14725(ins IntRegs:$Rs32, IntRegs:$Rt32),
14726"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1",
14727tc_bafaade3, TypeM>, Enc_5ab2be {
14728let Inst{7-5} = 0b011;
14729let Inst{13-13} = 0b0;
14730let Inst{31-21} = 0b11101100100;
14731let hasNewValue = 1;
14732let opNewValue = 0;
14733let prefersSlot3 = 1;
14734}
14735def M2_mpy_hl_s0 : HInst<
14736(outs IntRegs:$Rd32),
14737(ins IntRegs:$Rs32, IntRegs:$Rt32),
14738"$Rd32 = mpy($Rs32.h,$Rt32.l)",
14739tc_bafaade3, TypeM>, Enc_5ab2be {
14740let Inst{7-5} = 0b010;
14741let Inst{13-13} = 0b0;
14742let Inst{31-21} = 0b11101100000;
14743let hasNewValue = 1;
14744let opNewValue = 0;
14745let prefersSlot3 = 1;
14746}
14747def M2_mpy_hl_s1 : HInst<
14748(outs IntRegs:$Rd32),
14749(ins IntRegs:$Rs32, IntRegs:$Rt32),
14750"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1",
14751tc_bafaade3, TypeM>, Enc_5ab2be {
14752let Inst{7-5} = 0b010;
14753let Inst{13-13} = 0b0;
14754let Inst{31-21} = 0b11101100100;
14755let hasNewValue = 1;
14756let opNewValue = 0;
14757let prefersSlot3 = 1;
14758}
14759def M2_mpy_lh_s0 : HInst<
14760(outs IntRegs:$Rd32),
14761(ins IntRegs:$Rs32, IntRegs:$Rt32),
14762"$Rd32 = mpy($Rs32.l,$Rt32.h)",
14763tc_bafaade3, TypeM>, Enc_5ab2be {
14764let Inst{7-5} = 0b001;
14765let Inst{13-13} = 0b0;
14766let Inst{31-21} = 0b11101100000;
14767let hasNewValue = 1;
14768let opNewValue = 0;
14769let prefersSlot3 = 1;
14770}
14771def M2_mpy_lh_s1 : HInst<
14772(outs IntRegs:$Rd32),
14773(ins IntRegs:$Rs32, IntRegs:$Rt32),
14774"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1",
14775tc_bafaade3, TypeM>, Enc_5ab2be {
14776let Inst{7-5} = 0b001;
14777let Inst{13-13} = 0b0;
14778let Inst{31-21} = 0b11101100100;
14779let hasNewValue = 1;
14780let opNewValue = 0;
14781let prefersSlot3 = 1;
14782}
14783def M2_mpy_ll_s0 : HInst<
14784(outs IntRegs:$Rd32),
14785(ins IntRegs:$Rs32, IntRegs:$Rt32),
14786"$Rd32 = mpy($Rs32.l,$Rt32.l)",
14787tc_bafaade3, TypeM>, Enc_5ab2be {
14788let Inst{7-5} = 0b000;
14789let Inst{13-13} = 0b0;
14790let Inst{31-21} = 0b11101100000;
14791let hasNewValue = 1;
14792let opNewValue = 0;
14793let prefersSlot3 = 1;
14794}
14795def M2_mpy_ll_s1 : HInst<
14796(outs IntRegs:$Rd32),
14797(ins IntRegs:$Rs32, IntRegs:$Rt32),
14798"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1",
14799tc_bafaade3, TypeM>, Enc_5ab2be {
14800let Inst{7-5} = 0b000;
14801let Inst{13-13} = 0b0;
14802let Inst{31-21} = 0b11101100100;
14803let hasNewValue = 1;
14804let opNewValue = 0;
14805let prefersSlot3 = 1;
14806}
14807def M2_mpy_nac_hh_s0 : HInst<
14808(outs IntRegs:$Rx32),
14809(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14810"$Rx32 -= mpy($Rs32.h,$Rt32.h)",
14811tc_d773585a, TypeM>, Enc_2ae154 {
14812let Inst{7-5} = 0b011;
14813let Inst{13-13} = 0b0;
14814let Inst{31-21} = 0b11101110001;
14815let hasNewValue = 1;
14816let opNewValue = 0;
14817let prefersSlot3 = 1;
14818let Constraints = "$Rx32 = $Rx32in";
14819}
14820def M2_mpy_nac_hh_s1 : HInst<
14821(outs IntRegs:$Rx32),
14822(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14823"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1",
14824tc_d773585a, TypeM>, Enc_2ae154 {
14825let Inst{7-5} = 0b011;
14826let Inst{13-13} = 0b0;
14827let Inst{31-21} = 0b11101110101;
14828let hasNewValue = 1;
14829let opNewValue = 0;
14830let prefersSlot3 = 1;
14831let Constraints = "$Rx32 = $Rx32in";
14832}
14833def M2_mpy_nac_hl_s0 : HInst<
14834(outs IntRegs:$Rx32),
14835(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14836"$Rx32 -= mpy($Rs32.h,$Rt32.l)",
14837tc_d773585a, TypeM>, Enc_2ae154 {
14838let Inst{7-5} = 0b010;
14839let Inst{13-13} = 0b0;
14840let Inst{31-21} = 0b11101110001;
14841let hasNewValue = 1;
14842let opNewValue = 0;
14843let prefersSlot3 = 1;
14844let Constraints = "$Rx32 = $Rx32in";
14845}
14846def M2_mpy_nac_hl_s1 : HInst<
14847(outs IntRegs:$Rx32),
14848(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14849"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1",
14850tc_d773585a, TypeM>, Enc_2ae154 {
14851let Inst{7-5} = 0b010;
14852let Inst{13-13} = 0b0;
14853let Inst{31-21} = 0b11101110101;
14854let hasNewValue = 1;
14855let opNewValue = 0;
14856let prefersSlot3 = 1;
14857let Constraints = "$Rx32 = $Rx32in";
14858}
14859def M2_mpy_nac_lh_s0 : HInst<
14860(outs IntRegs:$Rx32),
14861(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14862"$Rx32 -= mpy($Rs32.l,$Rt32.h)",
14863tc_d773585a, TypeM>, Enc_2ae154 {
14864let Inst{7-5} = 0b001;
14865let Inst{13-13} = 0b0;
14866let Inst{31-21} = 0b11101110001;
14867let hasNewValue = 1;
14868let opNewValue = 0;
14869let prefersSlot3 = 1;
14870let Constraints = "$Rx32 = $Rx32in";
14871}
14872def M2_mpy_nac_lh_s1 : HInst<
14873(outs IntRegs:$Rx32),
14874(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14875"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1",
14876tc_d773585a, TypeM>, Enc_2ae154 {
14877let Inst{7-5} = 0b001;
14878let Inst{13-13} = 0b0;
14879let Inst{31-21} = 0b11101110101;
14880let hasNewValue = 1;
14881let opNewValue = 0;
14882let prefersSlot3 = 1;
14883let Constraints = "$Rx32 = $Rx32in";
14884}
14885def M2_mpy_nac_ll_s0 : HInst<
14886(outs IntRegs:$Rx32),
14887(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14888"$Rx32 -= mpy($Rs32.l,$Rt32.l)",
14889tc_d773585a, TypeM>, Enc_2ae154 {
14890let Inst{7-5} = 0b000;
14891let Inst{13-13} = 0b0;
14892let Inst{31-21} = 0b11101110001;
14893let hasNewValue = 1;
14894let opNewValue = 0;
14895let prefersSlot3 = 1;
14896let Constraints = "$Rx32 = $Rx32in";
14897}
14898def M2_mpy_nac_ll_s1 : HInst<
14899(outs IntRegs:$Rx32),
14900(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14901"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1",
14902tc_d773585a, TypeM>, Enc_2ae154 {
14903let Inst{7-5} = 0b000;
14904let Inst{13-13} = 0b0;
14905let Inst{31-21} = 0b11101110101;
14906let hasNewValue = 1;
14907let opNewValue = 0;
14908let prefersSlot3 = 1;
14909let Constraints = "$Rx32 = $Rx32in";
14910}
14911def M2_mpy_nac_sat_hh_s0 : HInst<
14912(outs IntRegs:$Rx32),
14913(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14914"$Rx32 -= mpy($Rs32.h,$Rt32.h):sat",
14915tc_d773585a, TypeM>, Enc_2ae154 {
14916let Inst{7-5} = 0b111;
14917let Inst{13-13} = 0b0;
14918let Inst{31-21} = 0b11101110001;
14919let hasNewValue = 1;
14920let opNewValue = 0;
14921let prefersSlot3 = 1;
14922let Defs = [USR_OVF];
14923let Constraints = "$Rx32 = $Rx32in";
14924}
14925def M2_mpy_nac_sat_hh_s1 : HInst<
14926(outs IntRegs:$Rx32),
14927(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14928"$Rx32 -= mpy($Rs32.h,$Rt32.h):<<1:sat",
14929tc_d773585a, TypeM>, Enc_2ae154 {
14930let Inst{7-5} = 0b111;
14931let Inst{13-13} = 0b0;
14932let Inst{31-21} = 0b11101110101;
14933let hasNewValue = 1;
14934let opNewValue = 0;
14935let prefersSlot3 = 1;
14936let Defs = [USR_OVF];
14937let Constraints = "$Rx32 = $Rx32in";
14938}
14939def M2_mpy_nac_sat_hl_s0 : HInst<
14940(outs IntRegs:$Rx32),
14941(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14942"$Rx32 -= mpy($Rs32.h,$Rt32.l):sat",
14943tc_d773585a, TypeM>, Enc_2ae154 {
14944let Inst{7-5} = 0b110;
14945let Inst{13-13} = 0b0;
14946let Inst{31-21} = 0b11101110001;
14947let hasNewValue = 1;
14948let opNewValue = 0;
14949let prefersSlot3 = 1;
14950let Defs = [USR_OVF];
14951let Constraints = "$Rx32 = $Rx32in";
14952}
14953def M2_mpy_nac_sat_hl_s1 : HInst<
14954(outs IntRegs:$Rx32),
14955(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14956"$Rx32 -= mpy($Rs32.h,$Rt32.l):<<1:sat",
14957tc_d773585a, TypeM>, Enc_2ae154 {
14958let Inst{7-5} = 0b110;
14959let Inst{13-13} = 0b0;
14960let Inst{31-21} = 0b11101110101;
14961let hasNewValue = 1;
14962let opNewValue = 0;
14963let prefersSlot3 = 1;
14964let Defs = [USR_OVF];
14965let Constraints = "$Rx32 = $Rx32in";
14966}
14967def M2_mpy_nac_sat_lh_s0 : HInst<
14968(outs IntRegs:$Rx32),
14969(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14970"$Rx32 -= mpy($Rs32.l,$Rt32.h):sat",
14971tc_d773585a, TypeM>, Enc_2ae154 {
14972let Inst{7-5} = 0b101;
14973let Inst{13-13} = 0b0;
14974let Inst{31-21} = 0b11101110001;
14975let hasNewValue = 1;
14976let opNewValue = 0;
14977let prefersSlot3 = 1;
14978let Defs = [USR_OVF];
14979let Constraints = "$Rx32 = $Rx32in";
14980}
14981def M2_mpy_nac_sat_lh_s1 : HInst<
14982(outs IntRegs:$Rx32),
14983(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14984"$Rx32 -= mpy($Rs32.l,$Rt32.h):<<1:sat",
14985tc_d773585a, TypeM>, Enc_2ae154 {
14986let Inst{7-5} = 0b101;
14987let Inst{13-13} = 0b0;
14988let Inst{31-21} = 0b11101110101;
14989let hasNewValue = 1;
14990let opNewValue = 0;
14991let prefersSlot3 = 1;
14992let Defs = [USR_OVF];
14993let Constraints = "$Rx32 = $Rx32in";
14994}
14995def M2_mpy_nac_sat_ll_s0 : HInst<
14996(outs IntRegs:$Rx32),
14997(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
14998"$Rx32 -= mpy($Rs32.l,$Rt32.l):sat",
14999tc_d773585a, TypeM>, Enc_2ae154 {
15000let Inst{7-5} = 0b100;
15001let Inst{13-13} = 0b0;
15002let Inst{31-21} = 0b11101110001;
15003let hasNewValue = 1;
15004let opNewValue = 0;
15005let prefersSlot3 = 1;
15006let Defs = [USR_OVF];
15007let Constraints = "$Rx32 = $Rx32in";
15008}
15009def M2_mpy_nac_sat_ll_s1 : HInst<
15010(outs IntRegs:$Rx32),
15011(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15012"$Rx32 -= mpy($Rs32.l,$Rt32.l):<<1:sat",
15013tc_d773585a, TypeM>, Enc_2ae154 {
15014let Inst{7-5} = 0b100;
15015let Inst{13-13} = 0b0;
15016let Inst{31-21} = 0b11101110101;
15017let hasNewValue = 1;
15018let opNewValue = 0;
15019let prefersSlot3 = 1;
15020let Defs = [USR_OVF];
15021let Constraints = "$Rx32 = $Rx32in";
15022}
15023def M2_mpy_rnd_hh_s0 : HInst<
15024(outs IntRegs:$Rd32),
15025(ins IntRegs:$Rs32, IntRegs:$Rt32),
15026"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd",
15027tc_bafaade3, TypeM>, Enc_5ab2be {
15028let Inst{7-5} = 0b011;
15029let Inst{13-13} = 0b0;
15030let Inst{31-21} = 0b11101100001;
15031let hasNewValue = 1;
15032let opNewValue = 0;
15033let prefersSlot3 = 1;
15034}
15035def M2_mpy_rnd_hh_s1 : HInst<
15036(outs IntRegs:$Rd32),
15037(ins IntRegs:$Rs32, IntRegs:$Rt32),
15038"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15039tc_bafaade3, TypeM>, Enc_5ab2be {
15040let Inst{7-5} = 0b011;
15041let Inst{13-13} = 0b0;
15042let Inst{31-21} = 0b11101100101;
15043let hasNewValue = 1;
15044let opNewValue = 0;
15045let prefersSlot3 = 1;
15046}
15047def M2_mpy_rnd_hl_s0 : HInst<
15048(outs IntRegs:$Rd32),
15049(ins IntRegs:$Rs32, IntRegs:$Rt32),
15050"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd",
15051tc_bafaade3, TypeM>, Enc_5ab2be {
15052let Inst{7-5} = 0b010;
15053let Inst{13-13} = 0b0;
15054let Inst{31-21} = 0b11101100001;
15055let hasNewValue = 1;
15056let opNewValue = 0;
15057let prefersSlot3 = 1;
15058}
15059def M2_mpy_rnd_hl_s1 : HInst<
15060(outs IntRegs:$Rd32),
15061(ins IntRegs:$Rs32, IntRegs:$Rt32),
15062"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15063tc_bafaade3, TypeM>, Enc_5ab2be {
15064let Inst{7-5} = 0b010;
15065let Inst{13-13} = 0b0;
15066let Inst{31-21} = 0b11101100101;
15067let hasNewValue = 1;
15068let opNewValue = 0;
15069let prefersSlot3 = 1;
15070}
15071def M2_mpy_rnd_lh_s0 : HInst<
15072(outs IntRegs:$Rd32),
15073(ins IntRegs:$Rs32, IntRegs:$Rt32),
15074"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd",
15075tc_bafaade3, TypeM>, Enc_5ab2be {
15076let Inst{7-5} = 0b001;
15077let Inst{13-13} = 0b0;
15078let Inst{31-21} = 0b11101100001;
15079let hasNewValue = 1;
15080let opNewValue = 0;
15081let prefersSlot3 = 1;
15082}
15083def M2_mpy_rnd_lh_s1 : HInst<
15084(outs IntRegs:$Rd32),
15085(ins IntRegs:$Rs32, IntRegs:$Rt32),
15086"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15087tc_bafaade3, TypeM>, Enc_5ab2be {
15088let Inst{7-5} = 0b001;
15089let Inst{13-13} = 0b0;
15090let Inst{31-21} = 0b11101100101;
15091let hasNewValue = 1;
15092let opNewValue = 0;
15093let prefersSlot3 = 1;
15094}
15095def M2_mpy_rnd_ll_s0 : HInst<
15096(outs IntRegs:$Rd32),
15097(ins IntRegs:$Rs32, IntRegs:$Rt32),
15098"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd",
15099tc_bafaade3, TypeM>, Enc_5ab2be {
15100let Inst{7-5} = 0b000;
15101let Inst{13-13} = 0b0;
15102let Inst{31-21} = 0b11101100001;
15103let hasNewValue = 1;
15104let opNewValue = 0;
15105let prefersSlot3 = 1;
15106}
15107def M2_mpy_rnd_ll_s1 : HInst<
15108(outs IntRegs:$Rd32),
15109(ins IntRegs:$Rs32, IntRegs:$Rt32),
15110"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15111tc_bafaade3, TypeM>, Enc_5ab2be {
15112let Inst{7-5} = 0b000;
15113let Inst{13-13} = 0b0;
15114let Inst{31-21} = 0b11101100101;
15115let hasNewValue = 1;
15116let opNewValue = 0;
15117let prefersSlot3 = 1;
15118}
15119def M2_mpy_sat_hh_s0 : HInst<
15120(outs IntRegs:$Rd32),
15121(ins IntRegs:$Rs32, IntRegs:$Rt32),
15122"$Rd32 = mpy($Rs32.h,$Rt32.h):sat",
15123tc_bafaade3, TypeM>, Enc_5ab2be {
15124let Inst{7-5} = 0b111;
15125let Inst{13-13} = 0b0;
15126let Inst{31-21} = 0b11101100000;
15127let hasNewValue = 1;
15128let opNewValue = 0;
15129let prefersSlot3 = 1;
15130let Defs = [USR_OVF];
15131}
15132def M2_mpy_sat_hh_s1 : HInst<
15133(outs IntRegs:$Rd32),
15134(ins IntRegs:$Rs32, IntRegs:$Rt32),
15135"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:sat",
15136tc_bafaade3, TypeM>, Enc_5ab2be {
15137let Inst{7-5} = 0b111;
15138let Inst{13-13} = 0b0;
15139let Inst{31-21} = 0b11101100100;
15140let hasNewValue = 1;
15141let opNewValue = 0;
15142let prefersSlot3 = 1;
15143let Defs = [USR_OVF];
15144}
15145def M2_mpy_sat_hl_s0 : HInst<
15146(outs IntRegs:$Rd32),
15147(ins IntRegs:$Rs32, IntRegs:$Rt32),
15148"$Rd32 = mpy($Rs32.h,$Rt32.l):sat",
15149tc_bafaade3, TypeM>, Enc_5ab2be {
15150let Inst{7-5} = 0b110;
15151let Inst{13-13} = 0b0;
15152let Inst{31-21} = 0b11101100000;
15153let hasNewValue = 1;
15154let opNewValue = 0;
15155let prefersSlot3 = 1;
15156let Defs = [USR_OVF];
15157}
15158def M2_mpy_sat_hl_s1 : HInst<
15159(outs IntRegs:$Rd32),
15160(ins IntRegs:$Rs32, IntRegs:$Rt32),
15161"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:sat",
15162tc_bafaade3, TypeM>, Enc_5ab2be {
15163let Inst{7-5} = 0b110;
15164let Inst{13-13} = 0b0;
15165let Inst{31-21} = 0b11101100100;
15166let hasNewValue = 1;
15167let opNewValue = 0;
15168let prefersSlot3 = 1;
15169let Defs = [USR_OVF];
15170}
15171def M2_mpy_sat_lh_s0 : HInst<
15172(outs IntRegs:$Rd32),
15173(ins IntRegs:$Rs32, IntRegs:$Rt32),
15174"$Rd32 = mpy($Rs32.l,$Rt32.h):sat",
15175tc_bafaade3, TypeM>, Enc_5ab2be {
15176let Inst{7-5} = 0b101;
15177let Inst{13-13} = 0b0;
15178let Inst{31-21} = 0b11101100000;
15179let hasNewValue = 1;
15180let opNewValue = 0;
15181let prefersSlot3 = 1;
15182let Defs = [USR_OVF];
15183}
15184def M2_mpy_sat_lh_s1 : HInst<
15185(outs IntRegs:$Rd32),
15186(ins IntRegs:$Rs32, IntRegs:$Rt32),
15187"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:sat",
15188tc_bafaade3, TypeM>, Enc_5ab2be {
15189let Inst{7-5} = 0b101;
15190let Inst{13-13} = 0b0;
15191let Inst{31-21} = 0b11101100100;
15192let hasNewValue = 1;
15193let opNewValue = 0;
15194let prefersSlot3 = 1;
15195let Defs = [USR_OVF];
15196}
15197def M2_mpy_sat_ll_s0 : HInst<
15198(outs IntRegs:$Rd32),
15199(ins IntRegs:$Rs32, IntRegs:$Rt32),
15200"$Rd32 = mpy($Rs32.l,$Rt32.l):sat",
15201tc_bafaade3, TypeM>, Enc_5ab2be {
15202let Inst{7-5} = 0b100;
15203let Inst{13-13} = 0b0;
15204let Inst{31-21} = 0b11101100000;
15205let hasNewValue = 1;
15206let opNewValue = 0;
15207let prefersSlot3 = 1;
15208let Defs = [USR_OVF];
15209}
15210def M2_mpy_sat_ll_s1 : HInst<
15211(outs IntRegs:$Rd32),
15212(ins IntRegs:$Rs32, IntRegs:$Rt32),
15213"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:sat",
15214tc_bafaade3, TypeM>, Enc_5ab2be {
15215let Inst{7-5} = 0b100;
15216let Inst{13-13} = 0b0;
15217let Inst{31-21} = 0b11101100100;
15218let hasNewValue = 1;
15219let opNewValue = 0;
15220let prefersSlot3 = 1;
15221let Defs = [USR_OVF];
15222}
15223def M2_mpy_sat_rnd_hh_s0 : HInst<
15224(outs IntRegs:$Rd32),
15225(ins IntRegs:$Rs32, IntRegs:$Rt32),
15226"$Rd32 = mpy($Rs32.h,$Rt32.h):rnd:sat",
15227tc_bafaade3, TypeM>, Enc_5ab2be {
15228let Inst{7-5} = 0b111;
15229let Inst{13-13} = 0b0;
15230let Inst{31-21} = 0b11101100001;
15231let hasNewValue = 1;
15232let opNewValue = 0;
15233let prefersSlot3 = 1;
15234let Defs = [USR_OVF];
15235}
15236def M2_mpy_sat_rnd_hh_s1 : HInst<
15237(outs IntRegs:$Rd32),
15238(ins IntRegs:$Rs32, IntRegs:$Rt32),
15239"$Rd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd:sat",
15240tc_bafaade3, TypeM>, Enc_5ab2be {
15241let Inst{7-5} = 0b111;
15242let Inst{13-13} = 0b0;
15243let Inst{31-21} = 0b11101100101;
15244let hasNewValue = 1;
15245let opNewValue = 0;
15246let prefersSlot3 = 1;
15247let Defs = [USR_OVF];
15248}
15249def M2_mpy_sat_rnd_hl_s0 : HInst<
15250(outs IntRegs:$Rd32),
15251(ins IntRegs:$Rs32, IntRegs:$Rt32),
15252"$Rd32 = mpy($Rs32.h,$Rt32.l):rnd:sat",
15253tc_bafaade3, TypeM>, Enc_5ab2be {
15254let Inst{7-5} = 0b110;
15255let Inst{13-13} = 0b0;
15256let Inst{31-21} = 0b11101100001;
15257let hasNewValue = 1;
15258let opNewValue = 0;
15259let prefersSlot3 = 1;
15260let Defs = [USR_OVF];
15261}
15262def M2_mpy_sat_rnd_hl_s1 : HInst<
15263(outs IntRegs:$Rd32),
15264(ins IntRegs:$Rs32, IntRegs:$Rt32),
15265"$Rd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd:sat",
15266tc_bafaade3, TypeM>, Enc_5ab2be {
15267let Inst{7-5} = 0b110;
15268let Inst{13-13} = 0b0;
15269let Inst{31-21} = 0b11101100101;
15270let hasNewValue = 1;
15271let opNewValue = 0;
15272let prefersSlot3 = 1;
15273let Defs = [USR_OVF];
15274}
15275def M2_mpy_sat_rnd_lh_s0 : HInst<
15276(outs IntRegs:$Rd32),
15277(ins IntRegs:$Rs32, IntRegs:$Rt32),
15278"$Rd32 = mpy($Rs32.l,$Rt32.h):rnd:sat",
15279tc_bafaade3, TypeM>, Enc_5ab2be {
15280let Inst{7-5} = 0b101;
15281let Inst{13-13} = 0b0;
15282let Inst{31-21} = 0b11101100001;
15283let hasNewValue = 1;
15284let opNewValue = 0;
15285let prefersSlot3 = 1;
15286let Defs = [USR_OVF];
15287}
15288def M2_mpy_sat_rnd_lh_s1 : HInst<
15289(outs IntRegs:$Rd32),
15290(ins IntRegs:$Rs32, IntRegs:$Rt32),
15291"$Rd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd:sat",
15292tc_bafaade3, TypeM>, Enc_5ab2be {
15293let Inst{7-5} = 0b101;
15294let Inst{13-13} = 0b0;
15295let Inst{31-21} = 0b11101100101;
15296let hasNewValue = 1;
15297let opNewValue = 0;
15298let prefersSlot3 = 1;
15299let Defs = [USR_OVF];
15300}
15301def M2_mpy_sat_rnd_ll_s0 : HInst<
15302(outs IntRegs:$Rd32),
15303(ins IntRegs:$Rs32, IntRegs:$Rt32),
15304"$Rd32 = mpy($Rs32.l,$Rt32.l):rnd:sat",
15305tc_bafaade3, TypeM>, Enc_5ab2be {
15306let Inst{7-5} = 0b100;
15307let Inst{13-13} = 0b0;
15308let Inst{31-21} = 0b11101100001;
15309let hasNewValue = 1;
15310let opNewValue = 0;
15311let prefersSlot3 = 1;
15312let Defs = [USR_OVF];
15313}
15314def M2_mpy_sat_rnd_ll_s1 : HInst<
15315(outs IntRegs:$Rd32),
15316(ins IntRegs:$Rs32, IntRegs:$Rt32),
15317"$Rd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd:sat",
15318tc_bafaade3, TypeM>, Enc_5ab2be {
15319let Inst{7-5} = 0b100;
15320let Inst{13-13} = 0b0;
15321let Inst{31-21} = 0b11101100101;
15322let hasNewValue = 1;
15323let opNewValue = 0;
15324let prefersSlot3 = 1;
15325let Defs = [USR_OVF];
15326}
15327def M2_mpy_up : HInst<
15328(outs IntRegs:$Rd32),
15329(ins IntRegs:$Rs32, IntRegs:$Rt32),
15330"$Rd32 = mpy($Rs32,$Rt32)",
15331tc_bafaade3, TypeM>, Enc_5ab2be {
15332let Inst{7-5} = 0b001;
15333let Inst{13-13} = 0b0;
15334let Inst{31-21} = 0b11101101000;
15335let hasNewValue = 1;
15336let opNewValue = 0;
15337let prefersSlot3 = 1;
15338}
15339def M2_mpy_up_s1 : HInst<
15340(outs IntRegs:$Rd32),
15341(ins IntRegs:$Rs32, IntRegs:$Rt32),
15342"$Rd32 = mpy($Rs32,$Rt32):<<1",
15343tc_bafaade3, TypeM>, Enc_5ab2be {
15344let Inst{7-5} = 0b010;
15345let Inst{13-13} = 0b0;
15346let Inst{31-21} = 0b11101101101;
15347let hasNewValue = 1;
15348let opNewValue = 0;
15349let prefersSlot3 = 1;
15350}
15351def M2_mpy_up_s1_sat : HInst<
15352(outs IntRegs:$Rd32),
15353(ins IntRegs:$Rs32, IntRegs:$Rt32),
15354"$Rd32 = mpy($Rs32,$Rt32):<<1:sat",
15355tc_bafaade3, TypeM>, Enc_5ab2be {
15356let Inst{7-5} = 0b000;
15357let Inst{13-13} = 0b0;
15358let Inst{31-21} = 0b11101101111;
15359let hasNewValue = 1;
15360let opNewValue = 0;
15361let prefersSlot3 = 1;
15362let Defs = [USR_OVF];
15363}
15364def M2_mpyd_acc_hh_s0 : HInst<
15365(outs DoubleRegs:$Rxx32),
15366(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15367"$Rxx32 += mpy($Rs32.h,$Rt32.h)",
15368tc_d773585a, TypeM>, Enc_61f0b0 {
15369let Inst{7-5} = 0b011;
15370let Inst{13-13} = 0b0;
15371let Inst{31-21} = 0b11100110000;
15372let prefersSlot3 = 1;
15373let Constraints = "$Rxx32 = $Rxx32in";
15374}
15375def M2_mpyd_acc_hh_s1 : HInst<
15376(outs DoubleRegs:$Rxx32),
15377(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15378"$Rxx32 += mpy($Rs32.h,$Rt32.h):<<1",
15379tc_d773585a, TypeM>, Enc_61f0b0 {
15380let Inst{7-5} = 0b011;
15381let Inst{13-13} = 0b0;
15382let Inst{31-21} = 0b11100110100;
15383let prefersSlot3 = 1;
15384let Constraints = "$Rxx32 = $Rxx32in";
15385}
15386def M2_mpyd_acc_hl_s0 : HInst<
15387(outs DoubleRegs:$Rxx32),
15388(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15389"$Rxx32 += mpy($Rs32.h,$Rt32.l)",
15390tc_d773585a, TypeM>, Enc_61f0b0 {
15391let Inst{7-5} = 0b010;
15392let Inst{13-13} = 0b0;
15393let Inst{31-21} = 0b11100110000;
15394let prefersSlot3 = 1;
15395let Constraints = "$Rxx32 = $Rxx32in";
15396}
15397def M2_mpyd_acc_hl_s1 : HInst<
15398(outs DoubleRegs:$Rxx32),
15399(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15400"$Rxx32 += mpy($Rs32.h,$Rt32.l):<<1",
15401tc_d773585a, TypeM>, Enc_61f0b0 {
15402let Inst{7-5} = 0b010;
15403let Inst{13-13} = 0b0;
15404let Inst{31-21} = 0b11100110100;
15405let prefersSlot3 = 1;
15406let Constraints = "$Rxx32 = $Rxx32in";
15407}
15408def M2_mpyd_acc_lh_s0 : HInst<
15409(outs DoubleRegs:$Rxx32),
15410(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15411"$Rxx32 += mpy($Rs32.l,$Rt32.h)",
15412tc_d773585a, TypeM>, Enc_61f0b0 {
15413let Inst{7-5} = 0b001;
15414let Inst{13-13} = 0b0;
15415let Inst{31-21} = 0b11100110000;
15416let prefersSlot3 = 1;
15417let Constraints = "$Rxx32 = $Rxx32in";
15418}
15419def M2_mpyd_acc_lh_s1 : HInst<
15420(outs DoubleRegs:$Rxx32),
15421(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15422"$Rxx32 += mpy($Rs32.l,$Rt32.h):<<1",
15423tc_d773585a, TypeM>, Enc_61f0b0 {
15424let Inst{7-5} = 0b001;
15425let Inst{13-13} = 0b0;
15426let Inst{31-21} = 0b11100110100;
15427let prefersSlot3 = 1;
15428let Constraints = "$Rxx32 = $Rxx32in";
15429}
15430def M2_mpyd_acc_ll_s0 : HInst<
15431(outs DoubleRegs:$Rxx32),
15432(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15433"$Rxx32 += mpy($Rs32.l,$Rt32.l)",
15434tc_d773585a, TypeM>, Enc_61f0b0 {
15435let Inst{7-5} = 0b000;
15436let Inst{13-13} = 0b0;
15437let Inst{31-21} = 0b11100110000;
15438let prefersSlot3 = 1;
15439let Constraints = "$Rxx32 = $Rxx32in";
15440}
15441def M2_mpyd_acc_ll_s1 : HInst<
15442(outs DoubleRegs:$Rxx32),
15443(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15444"$Rxx32 += mpy($Rs32.l,$Rt32.l):<<1",
15445tc_d773585a, TypeM>, Enc_61f0b0 {
15446let Inst{7-5} = 0b000;
15447let Inst{13-13} = 0b0;
15448let Inst{31-21} = 0b11100110100;
15449let prefersSlot3 = 1;
15450let Constraints = "$Rxx32 = $Rxx32in";
15451}
15452def M2_mpyd_hh_s0 : HInst<
15453(outs DoubleRegs:$Rdd32),
15454(ins IntRegs:$Rs32, IntRegs:$Rt32),
15455"$Rdd32 = mpy($Rs32.h,$Rt32.h)",
15456tc_bafaade3, TypeM>, Enc_be32a5 {
15457let Inst{7-5} = 0b011;
15458let Inst{13-13} = 0b0;
15459let Inst{31-21} = 0b11100100000;
15460let prefersSlot3 = 1;
15461}
15462def M2_mpyd_hh_s1 : HInst<
15463(outs DoubleRegs:$Rdd32),
15464(ins IntRegs:$Rs32, IntRegs:$Rt32),
15465"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1",
15466tc_bafaade3, TypeM>, Enc_be32a5 {
15467let Inst{7-5} = 0b011;
15468let Inst{13-13} = 0b0;
15469let Inst{31-21} = 0b11100100100;
15470let prefersSlot3 = 1;
15471}
15472def M2_mpyd_hl_s0 : HInst<
15473(outs DoubleRegs:$Rdd32),
15474(ins IntRegs:$Rs32, IntRegs:$Rt32),
15475"$Rdd32 = mpy($Rs32.h,$Rt32.l)",
15476tc_bafaade3, TypeM>, Enc_be32a5 {
15477let Inst{7-5} = 0b010;
15478let Inst{13-13} = 0b0;
15479let Inst{31-21} = 0b11100100000;
15480let prefersSlot3 = 1;
15481}
15482def M2_mpyd_hl_s1 : HInst<
15483(outs DoubleRegs:$Rdd32),
15484(ins IntRegs:$Rs32, IntRegs:$Rt32),
15485"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1",
15486tc_bafaade3, TypeM>, Enc_be32a5 {
15487let Inst{7-5} = 0b010;
15488let Inst{13-13} = 0b0;
15489let Inst{31-21} = 0b11100100100;
15490let prefersSlot3 = 1;
15491}
15492def M2_mpyd_lh_s0 : HInst<
15493(outs DoubleRegs:$Rdd32),
15494(ins IntRegs:$Rs32, IntRegs:$Rt32),
15495"$Rdd32 = mpy($Rs32.l,$Rt32.h)",
15496tc_bafaade3, TypeM>, Enc_be32a5 {
15497let Inst{7-5} = 0b001;
15498let Inst{13-13} = 0b0;
15499let Inst{31-21} = 0b11100100000;
15500let prefersSlot3 = 1;
15501}
15502def M2_mpyd_lh_s1 : HInst<
15503(outs DoubleRegs:$Rdd32),
15504(ins IntRegs:$Rs32, IntRegs:$Rt32),
15505"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1",
15506tc_bafaade3, TypeM>, Enc_be32a5 {
15507let Inst{7-5} = 0b001;
15508let Inst{13-13} = 0b0;
15509let Inst{31-21} = 0b11100100100;
15510let prefersSlot3 = 1;
15511}
15512def M2_mpyd_ll_s0 : HInst<
15513(outs DoubleRegs:$Rdd32),
15514(ins IntRegs:$Rs32, IntRegs:$Rt32),
15515"$Rdd32 = mpy($Rs32.l,$Rt32.l)",
15516tc_bafaade3, TypeM>, Enc_be32a5 {
15517let Inst{7-5} = 0b000;
15518let Inst{13-13} = 0b0;
15519let Inst{31-21} = 0b11100100000;
15520let prefersSlot3 = 1;
15521}
15522def M2_mpyd_ll_s1 : HInst<
15523(outs DoubleRegs:$Rdd32),
15524(ins IntRegs:$Rs32, IntRegs:$Rt32),
15525"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1",
15526tc_bafaade3, TypeM>, Enc_be32a5 {
15527let Inst{7-5} = 0b000;
15528let Inst{13-13} = 0b0;
15529let Inst{31-21} = 0b11100100100;
15530let prefersSlot3 = 1;
15531}
15532def M2_mpyd_nac_hh_s0 : HInst<
15533(outs DoubleRegs:$Rxx32),
15534(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15535"$Rxx32 -= mpy($Rs32.h,$Rt32.h)",
15536tc_d773585a, TypeM>, Enc_61f0b0 {
15537let Inst{7-5} = 0b011;
15538let Inst{13-13} = 0b0;
15539let Inst{31-21} = 0b11100110001;
15540let prefersSlot3 = 1;
15541let Constraints = "$Rxx32 = $Rxx32in";
15542}
15543def M2_mpyd_nac_hh_s1 : HInst<
15544(outs DoubleRegs:$Rxx32),
15545(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15546"$Rxx32 -= mpy($Rs32.h,$Rt32.h):<<1",
15547tc_d773585a, TypeM>, Enc_61f0b0 {
15548let Inst{7-5} = 0b011;
15549let Inst{13-13} = 0b0;
15550let Inst{31-21} = 0b11100110101;
15551let prefersSlot3 = 1;
15552let Constraints = "$Rxx32 = $Rxx32in";
15553}
15554def M2_mpyd_nac_hl_s0 : HInst<
15555(outs DoubleRegs:$Rxx32),
15556(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15557"$Rxx32 -= mpy($Rs32.h,$Rt32.l)",
15558tc_d773585a, TypeM>, Enc_61f0b0 {
15559let Inst{7-5} = 0b010;
15560let Inst{13-13} = 0b0;
15561let Inst{31-21} = 0b11100110001;
15562let prefersSlot3 = 1;
15563let Constraints = "$Rxx32 = $Rxx32in";
15564}
15565def M2_mpyd_nac_hl_s1 : HInst<
15566(outs DoubleRegs:$Rxx32),
15567(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15568"$Rxx32 -= mpy($Rs32.h,$Rt32.l):<<1",
15569tc_d773585a, TypeM>, Enc_61f0b0 {
15570let Inst{7-5} = 0b010;
15571let Inst{13-13} = 0b0;
15572let Inst{31-21} = 0b11100110101;
15573let prefersSlot3 = 1;
15574let Constraints = "$Rxx32 = $Rxx32in";
15575}
15576def M2_mpyd_nac_lh_s0 : HInst<
15577(outs DoubleRegs:$Rxx32),
15578(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15579"$Rxx32 -= mpy($Rs32.l,$Rt32.h)",
15580tc_d773585a, TypeM>, Enc_61f0b0 {
15581let Inst{7-5} = 0b001;
15582let Inst{13-13} = 0b0;
15583let Inst{31-21} = 0b11100110001;
15584let prefersSlot3 = 1;
15585let Constraints = "$Rxx32 = $Rxx32in";
15586}
15587def M2_mpyd_nac_lh_s1 : HInst<
15588(outs DoubleRegs:$Rxx32),
15589(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15590"$Rxx32 -= mpy($Rs32.l,$Rt32.h):<<1",
15591tc_d773585a, TypeM>, Enc_61f0b0 {
15592let Inst{7-5} = 0b001;
15593let Inst{13-13} = 0b0;
15594let Inst{31-21} = 0b11100110101;
15595let prefersSlot3 = 1;
15596let Constraints = "$Rxx32 = $Rxx32in";
15597}
15598def M2_mpyd_nac_ll_s0 : HInst<
15599(outs DoubleRegs:$Rxx32),
15600(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15601"$Rxx32 -= mpy($Rs32.l,$Rt32.l)",
15602tc_d773585a, TypeM>, Enc_61f0b0 {
15603let Inst{7-5} = 0b000;
15604let Inst{13-13} = 0b0;
15605let Inst{31-21} = 0b11100110001;
15606let prefersSlot3 = 1;
15607let Constraints = "$Rxx32 = $Rxx32in";
15608}
15609def M2_mpyd_nac_ll_s1 : HInst<
15610(outs DoubleRegs:$Rxx32),
15611(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15612"$Rxx32 -= mpy($Rs32.l,$Rt32.l):<<1",
15613tc_d773585a, TypeM>, Enc_61f0b0 {
15614let Inst{7-5} = 0b000;
15615let Inst{13-13} = 0b0;
15616let Inst{31-21} = 0b11100110101;
15617let prefersSlot3 = 1;
15618let Constraints = "$Rxx32 = $Rxx32in";
15619}
15620def M2_mpyd_rnd_hh_s0 : HInst<
15621(outs DoubleRegs:$Rdd32),
15622(ins IntRegs:$Rs32, IntRegs:$Rt32),
15623"$Rdd32 = mpy($Rs32.h,$Rt32.h):rnd",
15624tc_bafaade3, TypeM>, Enc_be32a5 {
15625let Inst{7-5} = 0b011;
15626let Inst{13-13} = 0b0;
15627let Inst{31-21} = 0b11100100001;
15628let prefersSlot3 = 1;
15629}
15630def M2_mpyd_rnd_hh_s1 : HInst<
15631(outs DoubleRegs:$Rdd32),
15632(ins IntRegs:$Rs32, IntRegs:$Rt32),
15633"$Rdd32 = mpy($Rs32.h,$Rt32.h):<<1:rnd",
15634tc_bafaade3, TypeM>, Enc_be32a5 {
15635let Inst{7-5} = 0b011;
15636let Inst{13-13} = 0b0;
15637let Inst{31-21} = 0b11100100101;
15638let prefersSlot3 = 1;
15639}
15640def M2_mpyd_rnd_hl_s0 : HInst<
15641(outs DoubleRegs:$Rdd32),
15642(ins IntRegs:$Rs32, IntRegs:$Rt32),
15643"$Rdd32 = mpy($Rs32.h,$Rt32.l):rnd",
15644tc_bafaade3, TypeM>, Enc_be32a5 {
15645let Inst{7-5} = 0b010;
15646let Inst{13-13} = 0b0;
15647let Inst{31-21} = 0b11100100001;
15648let prefersSlot3 = 1;
15649}
15650def M2_mpyd_rnd_hl_s1 : HInst<
15651(outs DoubleRegs:$Rdd32),
15652(ins IntRegs:$Rs32, IntRegs:$Rt32),
15653"$Rdd32 = mpy($Rs32.h,$Rt32.l):<<1:rnd",
15654tc_bafaade3, TypeM>, Enc_be32a5 {
15655let Inst{7-5} = 0b010;
15656let Inst{13-13} = 0b0;
15657let Inst{31-21} = 0b11100100101;
15658let prefersSlot3 = 1;
15659}
15660def M2_mpyd_rnd_lh_s0 : HInst<
15661(outs DoubleRegs:$Rdd32),
15662(ins IntRegs:$Rs32, IntRegs:$Rt32),
15663"$Rdd32 = mpy($Rs32.l,$Rt32.h):rnd",
15664tc_bafaade3, TypeM>, Enc_be32a5 {
15665let Inst{7-5} = 0b001;
15666let Inst{13-13} = 0b0;
15667let Inst{31-21} = 0b11100100001;
15668let prefersSlot3 = 1;
15669}
15670def M2_mpyd_rnd_lh_s1 : HInst<
15671(outs DoubleRegs:$Rdd32),
15672(ins IntRegs:$Rs32, IntRegs:$Rt32),
15673"$Rdd32 = mpy($Rs32.l,$Rt32.h):<<1:rnd",
15674tc_bafaade3, TypeM>, Enc_be32a5 {
15675let Inst{7-5} = 0b001;
15676let Inst{13-13} = 0b0;
15677let Inst{31-21} = 0b11100100101;
15678let prefersSlot3 = 1;
15679}
15680def M2_mpyd_rnd_ll_s0 : HInst<
15681(outs DoubleRegs:$Rdd32),
15682(ins IntRegs:$Rs32, IntRegs:$Rt32),
15683"$Rdd32 = mpy($Rs32.l,$Rt32.l):rnd",
15684tc_bafaade3, TypeM>, Enc_be32a5 {
15685let Inst{7-5} = 0b000;
15686let Inst{13-13} = 0b0;
15687let Inst{31-21} = 0b11100100001;
15688let prefersSlot3 = 1;
15689}
15690def M2_mpyd_rnd_ll_s1 : HInst<
15691(outs DoubleRegs:$Rdd32),
15692(ins IntRegs:$Rs32, IntRegs:$Rt32),
15693"$Rdd32 = mpy($Rs32.l,$Rt32.l):<<1:rnd",
15694tc_bafaade3, TypeM>, Enc_be32a5 {
15695let Inst{7-5} = 0b000;
15696let Inst{13-13} = 0b0;
15697let Inst{31-21} = 0b11100100101;
15698let prefersSlot3 = 1;
15699}
15700def M2_mpyi : HInst<
15701(outs IntRegs:$Rd32),
15702(ins IntRegs:$Rs32, IntRegs:$Rt32),
15703"$Rd32 = mpyi($Rs32,$Rt32)",
15704tc_bafaade3, TypeM>, Enc_5ab2be, ImmRegRel {
15705let Inst{7-5} = 0b000;
15706let Inst{13-13} = 0b0;
15707let Inst{31-21} = 0b11101101000;
15708let hasNewValue = 1;
15709let opNewValue = 0;
15710let prefersSlot3 = 1;
15711let CextOpcode = "M2_mpyi";
15712let InputType = "reg";
15713}
15714def M2_mpysin : HInst<
15715(outs IntRegs:$Rd32),
15716(ins IntRegs:$Rs32, u8_0Imm:$Ii),
15717"$Rd32 = -mpyi($Rs32,#$Ii)",
15718tc_c8ce0b5c, TypeM>, Enc_b8c967 {
15719let Inst{13-13} = 0b0;
15720let Inst{31-21} = 0b11100000100;
15721let hasNewValue = 1;
15722let opNewValue = 0;
15723let prefersSlot3 = 1;
15724}
15725def M2_mpysip : HInst<
15726(outs IntRegs:$Rd32),
15727(ins IntRegs:$Rs32, u32_0Imm:$Ii),
15728"$Rd32 = +mpyi($Rs32,#$Ii)",
15729tc_c8ce0b5c, TypeM>, Enc_b8c967 {
15730let Inst{13-13} = 0b0;
15731let Inst{31-21} = 0b11100000000;
15732let hasNewValue = 1;
15733let opNewValue = 0;
15734let prefersSlot3 = 1;
15735let isExtendable = 1;
15736let opExtendable = 2;
15737let isExtentSigned = 0;
15738let opExtentBits = 8;
15739let opExtentAlign = 0;
15740}
15741def M2_mpysmi : HInst<
15742(outs IntRegs:$Rd32),
15743(ins IntRegs:$Rs32, m32_0Imm:$Ii),
15744"$Rd32 = mpyi($Rs32,#$Ii)",
15745tc_c8ce0b5c, TypeM>, ImmRegRel {
15746let hasNewValue = 1;
15747let opNewValue = 0;
15748let CextOpcode = "M2_mpyi";
15749let InputType = "imm";
15750let isPseudo = 1;
15751let isExtendable = 1;
15752let opExtendable = 2;
15753let isExtentSigned = 1;
15754let opExtentBits = 9;
15755let opExtentAlign = 0;
15756}
15757def M2_mpysu_up : HInst<
15758(outs IntRegs:$Rd32),
15759(ins IntRegs:$Rs32, IntRegs:$Rt32),
15760"$Rd32 = mpysu($Rs32,$Rt32)",
15761tc_bafaade3, TypeM>, Enc_5ab2be {
15762let Inst{7-5} = 0b001;
15763let Inst{13-13} = 0b0;
15764let Inst{31-21} = 0b11101101011;
15765let hasNewValue = 1;
15766let opNewValue = 0;
15767let prefersSlot3 = 1;
15768}
15769def M2_mpyu_acc_hh_s0 : HInst<
15770(outs IntRegs:$Rx32),
15771(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15772"$Rx32 += mpyu($Rs32.h,$Rt32.h)",
15773tc_d773585a, TypeM>, Enc_2ae154 {
15774let Inst{7-5} = 0b011;
15775let Inst{13-13} = 0b0;
15776let Inst{31-21} = 0b11101110010;
15777let hasNewValue = 1;
15778let opNewValue = 0;
15779let prefersSlot3 = 1;
15780let Constraints = "$Rx32 = $Rx32in";
15781}
15782def M2_mpyu_acc_hh_s1 : HInst<
15783(outs IntRegs:$Rx32),
15784(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15785"$Rx32 += mpyu($Rs32.h,$Rt32.h):<<1",
15786tc_d773585a, TypeM>, Enc_2ae154 {
15787let Inst{7-5} = 0b011;
15788let Inst{13-13} = 0b0;
15789let Inst{31-21} = 0b11101110110;
15790let hasNewValue = 1;
15791let opNewValue = 0;
15792let prefersSlot3 = 1;
15793let Constraints = "$Rx32 = $Rx32in";
15794}
15795def M2_mpyu_acc_hl_s0 : HInst<
15796(outs IntRegs:$Rx32),
15797(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15798"$Rx32 += mpyu($Rs32.h,$Rt32.l)",
15799tc_d773585a, TypeM>, Enc_2ae154 {
15800let Inst{7-5} = 0b010;
15801let Inst{13-13} = 0b0;
15802let Inst{31-21} = 0b11101110010;
15803let hasNewValue = 1;
15804let opNewValue = 0;
15805let prefersSlot3 = 1;
15806let Constraints = "$Rx32 = $Rx32in";
15807}
15808def M2_mpyu_acc_hl_s1 : HInst<
15809(outs IntRegs:$Rx32),
15810(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15811"$Rx32 += mpyu($Rs32.h,$Rt32.l):<<1",
15812tc_d773585a, TypeM>, Enc_2ae154 {
15813let Inst{7-5} = 0b010;
15814let Inst{13-13} = 0b0;
15815let Inst{31-21} = 0b11101110110;
15816let hasNewValue = 1;
15817let opNewValue = 0;
15818let prefersSlot3 = 1;
15819let Constraints = "$Rx32 = $Rx32in";
15820}
15821def M2_mpyu_acc_lh_s0 : HInst<
15822(outs IntRegs:$Rx32),
15823(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15824"$Rx32 += mpyu($Rs32.l,$Rt32.h)",
15825tc_d773585a, TypeM>, Enc_2ae154 {
15826let Inst{7-5} = 0b001;
15827let Inst{13-13} = 0b0;
15828let Inst{31-21} = 0b11101110010;
15829let hasNewValue = 1;
15830let opNewValue = 0;
15831let prefersSlot3 = 1;
15832let Constraints = "$Rx32 = $Rx32in";
15833}
15834def M2_mpyu_acc_lh_s1 : HInst<
15835(outs IntRegs:$Rx32),
15836(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15837"$Rx32 += mpyu($Rs32.l,$Rt32.h):<<1",
15838tc_d773585a, TypeM>, Enc_2ae154 {
15839let Inst{7-5} = 0b001;
15840let Inst{13-13} = 0b0;
15841let Inst{31-21} = 0b11101110110;
15842let hasNewValue = 1;
15843let opNewValue = 0;
15844let prefersSlot3 = 1;
15845let Constraints = "$Rx32 = $Rx32in";
15846}
15847def M2_mpyu_acc_ll_s0 : HInst<
15848(outs IntRegs:$Rx32),
15849(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15850"$Rx32 += mpyu($Rs32.l,$Rt32.l)",
15851tc_d773585a, TypeM>, Enc_2ae154 {
15852let Inst{7-5} = 0b000;
15853let Inst{13-13} = 0b0;
15854let Inst{31-21} = 0b11101110010;
15855let hasNewValue = 1;
15856let opNewValue = 0;
15857let prefersSlot3 = 1;
15858let Constraints = "$Rx32 = $Rx32in";
15859}
15860def M2_mpyu_acc_ll_s1 : HInst<
15861(outs IntRegs:$Rx32),
15862(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15863"$Rx32 += mpyu($Rs32.l,$Rt32.l):<<1",
15864tc_d773585a, TypeM>, Enc_2ae154 {
15865let Inst{7-5} = 0b000;
15866let Inst{13-13} = 0b0;
15867let Inst{31-21} = 0b11101110110;
15868let hasNewValue = 1;
15869let opNewValue = 0;
15870let prefersSlot3 = 1;
15871let Constraints = "$Rx32 = $Rx32in";
15872}
15873def M2_mpyu_hh_s0 : HInst<
15874(outs IntRegs:$Rd32),
15875(ins IntRegs:$Rs32, IntRegs:$Rt32),
15876"$Rd32 = mpyu($Rs32.h,$Rt32.h)",
15877tc_bafaade3, TypeM>, Enc_5ab2be {
15878let Inst{7-5} = 0b011;
15879let Inst{13-13} = 0b0;
15880let Inst{31-21} = 0b11101100010;
15881let hasNewValue = 1;
15882let opNewValue = 0;
15883let prefersSlot3 = 1;
15884}
15885def M2_mpyu_hh_s1 : HInst<
15886(outs IntRegs:$Rd32),
15887(ins IntRegs:$Rs32, IntRegs:$Rt32),
15888"$Rd32 = mpyu($Rs32.h,$Rt32.h):<<1",
15889tc_bafaade3, TypeM>, Enc_5ab2be {
15890let Inst{7-5} = 0b011;
15891let Inst{13-13} = 0b0;
15892let Inst{31-21} = 0b11101100110;
15893let hasNewValue = 1;
15894let opNewValue = 0;
15895let prefersSlot3 = 1;
15896}
15897def M2_mpyu_hl_s0 : HInst<
15898(outs IntRegs:$Rd32),
15899(ins IntRegs:$Rs32, IntRegs:$Rt32),
15900"$Rd32 = mpyu($Rs32.h,$Rt32.l)",
15901tc_bafaade3, TypeM>, Enc_5ab2be {
15902let Inst{7-5} = 0b010;
15903let Inst{13-13} = 0b0;
15904let Inst{31-21} = 0b11101100010;
15905let hasNewValue = 1;
15906let opNewValue = 0;
15907let prefersSlot3 = 1;
15908}
15909def M2_mpyu_hl_s1 : HInst<
15910(outs IntRegs:$Rd32),
15911(ins IntRegs:$Rs32, IntRegs:$Rt32),
15912"$Rd32 = mpyu($Rs32.h,$Rt32.l):<<1",
15913tc_bafaade3, TypeM>, Enc_5ab2be {
15914let Inst{7-5} = 0b010;
15915let Inst{13-13} = 0b0;
15916let Inst{31-21} = 0b11101100110;
15917let hasNewValue = 1;
15918let opNewValue = 0;
15919let prefersSlot3 = 1;
15920}
15921def M2_mpyu_lh_s0 : HInst<
15922(outs IntRegs:$Rd32),
15923(ins IntRegs:$Rs32, IntRegs:$Rt32),
15924"$Rd32 = mpyu($Rs32.l,$Rt32.h)",
15925tc_bafaade3, TypeM>, Enc_5ab2be {
15926let Inst{7-5} = 0b001;
15927let Inst{13-13} = 0b0;
15928let Inst{31-21} = 0b11101100010;
15929let hasNewValue = 1;
15930let opNewValue = 0;
15931let prefersSlot3 = 1;
15932}
15933def M2_mpyu_lh_s1 : HInst<
15934(outs IntRegs:$Rd32),
15935(ins IntRegs:$Rs32, IntRegs:$Rt32),
15936"$Rd32 = mpyu($Rs32.l,$Rt32.h):<<1",
15937tc_bafaade3, TypeM>, Enc_5ab2be {
15938let Inst{7-5} = 0b001;
15939let Inst{13-13} = 0b0;
15940let Inst{31-21} = 0b11101100110;
15941let hasNewValue = 1;
15942let opNewValue = 0;
15943let prefersSlot3 = 1;
15944}
15945def M2_mpyu_ll_s0 : HInst<
15946(outs IntRegs:$Rd32),
15947(ins IntRegs:$Rs32, IntRegs:$Rt32),
15948"$Rd32 = mpyu($Rs32.l,$Rt32.l)",
15949tc_bafaade3, TypeM>, Enc_5ab2be {
15950let Inst{7-5} = 0b000;
15951let Inst{13-13} = 0b0;
15952let Inst{31-21} = 0b11101100010;
15953let hasNewValue = 1;
15954let opNewValue = 0;
15955let prefersSlot3 = 1;
15956}
15957def M2_mpyu_ll_s1 : HInst<
15958(outs IntRegs:$Rd32),
15959(ins IntRegs:$Rs32, IntRegs:$Rt32),
15960"$Rd32 = mpyu($Rs32.l,$Rt32.l):<<1",
15961tc_bafaade3, TypeM>, Enc_5ab2be {
15962let Inst{7-5} = 0b000;
15963let Inst{13-13} = 0b0;
15964let Inst{31-21} = 0b11101100110;
15965let hasNewValue = 1;
15966let opNewValue = 0;
15967let prefersSlot3 = 1;
15968}
15969def M2_mpyu_nac_hh_s0 : HInst<
15970(outs IntRegs:$Rx32),
15971(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15972"$Rx32 -= mpyu($Rs32.h,$Rt32.h)",
15973tc_d773585a, TypeM>, Enc_2ae154 {
15974let Inst{7-5} = 0b011;
15975let Inst{13-13} = 0b0;
15976let Inst{31-21} = 0b11101110011;
15977let hasNewValue = 1;
15978let opNewValue = 0;
15979let prefersSlot3 = 1;
15980let Constraints = "$Rx32 = $Rx32in";
15981}
15982def M2_mpyu_nac_hh_s1 : HInst<
15983(outs IntRegs:$Rx32),
15984(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15985"$Rx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
15986tc_d773585a, TypeM>, Enc_2ae154 {
15987let Inst{7-5} = 0b011;
15988let Inst{13-13} = 0b0;
15989let Inst{31-21} = 0b11101110111;
15990let hasNewValue = 1;
15991let opNewValue = 0;
15992let prefersSlot3 = 1;
15993let Constraints = "$Rx32 = $Rx32in";
15994}
15995def M2_mpyu_nac_hl_s0 : HInst<
15996(outs IntRegs:$Rx32),
15997(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
15998"$Rx32 -= mpyu($Rs32.h,$Rt32.l)",
15999tc_d773585a, TypeM>, Enc_2ae154 {
16000let Inst{7-5} = 0b010;
16001let Inst{13-13} = 0b0;
16002let Inst{31-21} = 0b11101110011;
16003let hasNewValue = 1;
16004let opNewValue = 0;
16005let prefersSlot3 = 1;
16006let Constraints = "$Rx32 = $Rx32in";
16007}
16008def M2_mpyu_nac_hl_s1 : HInst<
16009(outs IntRegs:$Rx32),
16010(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16011"$Rx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16012tc_d773585a, TypeM>, Enc_2ae154 {
16013let Inst{7-5} = 0b010;
16014let Inst{13-13} = 0b0;
16015let Inst{31-21} = 0b11101110111;
16016let hasNewValue = 1;
16017let opNewValue = 0;
16018let prefersSlot3 = 1;
16019let Constraints = "$Rx32 = $Rx32in";
16020}
16021def M2_mpyu_nac_lh_s0 : HInst<
16022(outs IntRegs:$Rx32),
16023(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16024"$Rx32 -= mpyu($Rs32.l,$Rt32.h)",
16025tc_d773585a, TypeM>, Enc_2ae154 {
16026let Inst{7-5} = 0b001;
16027let Inst{13-13} = 0b0;
16028let Inst{31-21} = 0b11101110011;
16029let hasNewValue = 1;
16030let opNewValue = 0;
16031let prefersSlot3 = 1;
16032let Constraints = "$Rx32 = $Rx32in";
16033}
16034def M2_mpyu_nac_lh_s1 : HInst<
16035(outs IntRegs:$Rx32),
16036(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16037"$Rx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16038tc_d773585a, TypeM>, Enc_2ae154 {
16039let Inst{7-5} = 0b001;
16040let Inst{13-13} = 0b0;
16041let Inst{31-21} = 0b11101110111;
16042let hasNewValue = 1;
16043let opNewValue = 0;
16044let prefersSlot3 = 1;
16045let Constraints = "$Rx32 = $Rx32in";
16046}
16047def M2_mpyu_nac_ll_s0 : HInst<
16048(outs IntRegs:$Rx32),
16049(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16050"$Rx32 -= mpyu($Rs32.l,$Rt32.l)",
16051tc_d773585a, TypeM>, Enc_2ae154 {
16052let Inst{7-5} = 0b000;
16053let Inst{13-13} = 0b0;
16054let Inst{31-21} = 0b11101110011;
16055let hasNewValue = 1;
16056let opNewValue = 0;
16057let prefersSlot3 = 1;
16058let Constraints = "$Rx32 = $Rx32in";
16059}
16060def M2_mpyu_nac_ll_s1 : HInst<
16061(outs IntRegs:$Rx32),
16062(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16063"$Rx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16064tc_d773585a, TypeM>, Enc_2ae154 {
16065let Inst{7-5} = 0b000;
16066let Inst{13-13} = 0b0;
16067let Inst{31-21} = 0b11101110111;
16068let hasNewValue = 1;
16069let opNewValue = 0;
16070let prefersSlot3 = 1;
16071let Constraints = "$Rx32 = $Rx32in";
16072}
16073def M2_mpyu_up : HInst<
16074(outs IntRegs:$Rd32),
16075(ins IntRegs:$Rs32, IntRegs:$Rt32),
16076"$Rd32 = mpyu($Rs32,$Rt32)",
16077tc_bafaade3, TypeM>, Enc_5ab2be {
16078let Inst{7-5} = 0b001;
16079let Inst{13-13} = 0b0;
16080let Inst{31-21} = 0b11101101010;
16081let hasNewValue = 1;
16082let opNewValue = 0;
16083let prefersSlot3 = 1;
16084}
16085def M2_mpyud_acc_hh_s0 : HInst<
16086(outs DoubleRegs:$Rxx32),
16087(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16088"$Rxx32 += mpyu($Rs32.h,$Rt32.h)",
16089tc_d773585a, TypeM>, Enc_61f0b0 {
16090let Inst{7-5} = 0b011;
16091let Inst{13-13} = 0b0;
16092let Inst{31-21} = 0b11100110010;
16093let prefersSlot3 = 1;
16094let Constraints = "$Rxx32 = $Rxx32in";
16095}
16096def M2_mpyud_acc_hh_s1 : HInst<
16097(outs DoubleRegs:$Rxx32),
16098(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16099"$Rxx32 += mpyu($Rs32.h,$Rt32.h):<<1",
16100tc_d773585a, TypeM>, Enc_61f0b0 {
16101let Inst{7-5} = 0b011;
16102let Inst{13-13} = 0b0;
16103let Inst{31-21} = 0b11100110110;
16104let prefersSlot3 = 1;
16105let Constraints = "$Rxx32 = $Rxx32in";
16106}
16107def M2_mpyud_acc_hl_s0 : HInst<
16108(outs DoubleRegs:$Rxx32),
16109(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16110"$Rxx32 += mpyu($Rs32.h,$Rt32.l)",
16111tc_d773585a, TypeM>, Enc_61f0b0 {
16112let Inst{7-5} = 0b010;
16113let Inst{13-13} = 0b0;
16114let Inst{31-21} = 0b11100110010;
16115let prefersSlot3 = 1;
16116let Constraints = "$Rxx32 = $Rxx32in";
16117}
16118def M2_mpyud_acc_hl_s1 : HInst<
16119(outs DoubleRegs:$Rxx32),
16120(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16121"$Rxx32 += mpyu($Rs32.h,$Rt32.l):<<1",
16122tc_d773585a, TypeM>, Enc_61f0b0 {
16123let Inst{7-5} = 0b010;
16124let Inst{13-13} = 0b0;
16125let Inst{31-21} = 0b11100110110;
16126let prefersSlot3 = 1;
16127let Constraints = "$Rxx32 = $Rxx32in";
16128}
16129def M2_mpyud_acc_lh_s0 : HInst<
16130(outs DoubleRegs:$Rxx32),
16131(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16132"$Rxx32 += mpyu($Rs32.l,$Rt32.h)",
16133tc_d773585a, TypeM>, Enc_61f0b0 {
16134let Inst{7-5} = 0b001;
16135let Inst{13-13} = 0b0;
16136let Inst{31-21} = 0b11100110010;
16137let prefersSlot3 = 1;
16138let Constraints = "$Rxx32 = $Rxx32in";
16139}
16140def M2_mpyud_acc_lh_s1 : HInst<
16141(outs DoubleRegs:$Rxx32),
16142(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16143"$Rxx32 += mpyu($Rs32.l,$Rt32.h):<<1",
16144tc_d773585a, TypeM>, Enc_61f0b0 {
16145let Inst{7-5} = 0b001;
16146let Inst{13-13} = 0b0;
16147let Inst{31-21} = 0b11100110110;
16148let prefersSlot3 = 1;
16149let Constraints = "$Rxx32 = $Rxx32in";
16150}
16151def M2_mpyud_acc_ll_s0 : HInst<
16152(outs DoubleRegs:$Rxx32),
16153(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16154"$Rxx32 += mpyu($Rs32.l,$Rt32.l)",
16155tc_d773585a, TypeM>, Enc_61f0b0 {
16156let Inst{7-5} = 0b000;
16157let Inst{13-13} = 0b0;
16158let Inst{31-21} = 0b11100110010;
16159let prefersSlot3 = 1;
16160let Constraints = "$Rxx32 = $Rxx32in";
16161}
16162def M2_mpyud_acc_ll_s1 : HInst<
16163(outs DoubleRegs:$Rxx32),
16164(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16165"$Rxx32 += mpyu($Rs32.l,$Rt32.l):<<1",
16166tc_d773585a, TypeM>, Enc_61f0b0 {
16167let Inst{7-5} = 0b000;
16168let Inst{13-13} = 0b0;
16169let Inst{31-21} = 0b11100110110;
16170let prefersSlot3 = 1;
16171let Constraints = "$Rxx32 = $Rxx32in";
16172}
16173def M2_mpyud_hh_s0 : HInst<
16174(outs DoubleRegs:$Rdd32),
16175(ins IntRegs:$Rs32, IntRegs:$Rt32),
16176"$Rdd32 = mpyu($Rs32.h,$Rt32.h)",
16177tc_bafaade3, TypeM>, Enc_be32a5 {
16178let Inst{7-5} = 0b011;
16179let Inst{13-13} = 0b0;
16180let Inst{31-21} = 0b11100100010;
16181let prefersSlot3 = 1;
16182}
16183def M2_mpyud_hh_s1 : HInst<
16184(outs DoubleRegs:$Rdd32),
16185(ins IntRegs:$Rs32, IntRegs:$Rt32),
16186"$Rdd32 = mpyu($Rs32.h,$Rt32.h):<<1",
16187tc_bafaade3, TypeM>, Enc_be32a5 {
16188let Inst{7-5} = 0b011;
16189let Inst{13-13} = 0b0;
16190let Inst{31-21} = 0b11100100110;
16191let prefersSlot3 = 1;
16192}
16193def M2_mpyud_hl_s0 : HInst<
16194(outs DoubleRegs:$Rdd32),
16195(ins IntRegs:$Rs32, IntRegs:$Rt32),
16196"$Rdd32 = mpyu($Rs32.h,$Rt32.l)",
16197tc_bafaade3, TypeM>, Enc_be32a5 {
16198let Inst{7-5} = 0b010;
16199let Inst{13-13} = 0b0;
16200let Inst{31-21} = 0b11100100010;
16201let prefersSlot3 = 1;
16202}
16203def M2_mpyud_hl_s1 : HInst<
16204(outs DoubleRegs:$Rdd32),
16205(ins IntRegs:$Rs32, IntRegs:$Rt32),
16206"$Rdd32 = mpyu($Rs32.h,$Rt32.l):<<1",
16207tc_bafaade3, TypeM>, Enc_be32a5 {
16208let Inst{7-5} = 0b010;
16209let Inst{13-13} = 0b0;
16210let Inst{31-21} = 0b11100100110;
16211let prefersSlot3 = 1;
16212}
16213def M2_mpyud_lh_s0 : HInst<
16214(outs DoubleRegs:$Rdd32),
16215(ins IntRegs:$Rs32, IntRegs:$Rt32),
16216"$Rdd32 = mpyu($Rs32.l,$Rt32.h)",
16217tc_bafaade3, TypeM>, Enc_be32a5 {
16218let Inst{7-5} = 0b001;
16219let Inst{13-13} = 0b0;
16220let Inst{31-21} = 0b11100100010;
16221let prefersSlot3 = 1;
16222}
16223def M2_mpyud_lh_s1 : HInst<
16224(outs DoubleRegs:$Rdd32),
16225(ins IntRegs:$Rs32, IntRegs:$Rt32),
16226"$Rdd32 = mpyu($Rs32.l,$Rt32.h):<<1",
16227tc_bafaade3, TypeM>, Enc_be32a5 {
16228let Inst{7-5} = 0b001;
16229let Inst{13-13} = 0b0;
16230let Inst{31-21} = 0b11100100110;
16231let prefersSlot3 = 1;
16232}
16233def M2_mpyud_ll_s0 : HInst<
16234(outs DoubleRegs:$Rdd32),
16235(ins IntRegs:$Rs32, IntRegs:$Rt32),
16236"$Rdd32 = mpyu($Rs32.l,$Rt32.l)",
16237tc_bafaade3, TypeM>, Enc_be32a5 {
16238let Inst{7-5} = 0b000;
16239let Inst{13-13} = 0b0;
16240let Inst{31-21} = 0b11100100010;
16241let prefersSlot3 = 1;
16242}
16243def M2_mpyud_ll_s1 : HInst<
16244(outs DoubleRegs:$Rdd32),
16245(ins IntRegs:$Rs32, IntRegs:$Rt32),
16246"$Rdd32 = mpyu($Rs32.l,$Rt32.l):<<1",
16247tc_bafaade3, TypeM>, Enc_be32a5 {
16248let Inst{7-5} = 0b000;
16249let Inst{13-13} = 0b0;
16250let Inst{31-21} = 0b11100100110;
16251let prefersSlot3 = 1;
16252}
16253def M2_mpyud_nac_hh_s0 : HInst<
16254(outs DoubleRegs:$Rxx32),
16255(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16256"$Rxx32 -= mpyu($Rs32.h,$Rt32.h)",
16257tc_d773585a, TypeM>, Enc_61f0b0 {
16258let Inst{7-5} = 0b011;
16259let Inst{13-13} = 0b0;
16260let Inst{31-21} = 0b11100110011;
16261let prefersSlot3 = 1;
16262let Constraints = "$Rxx32 = $Rxx32in";
16263}
16264def M2_mpyud_nac_hh_s1 : HInst<
16265(outs DoubleRegs:$Rxx32),
16266(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16267"$Rxx32 -= mpyu($Rs32.h,$Rt32.h):<<1",
16268tc_d773585a, TypeM>, Enc_61f0b0 {
16269let Inst{7-5} = 0b011;
16270let Inst{13-13} = 0b0;
16271let Inst{31-21} = 0b11100110111;
16272let prefersSlot3 = 1;
16273let Constraints = "$Rxx32 = $Rxx32in";
16274}
16275def M2_mpyud_nac_hl_s0 : HInst<
16276(outs DoubleRegs:$Rxx32),
16277(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16278"$Rxx32 -= mpyu($Rs32.h,$Rt32.l)",
16279tc_d773585a, TypeM>, Enc_61f0b0 {
16280let Inst{7-5} = 0b010;
16281let Inst{13-13} = 0b0;
16282let Inst{31-21} = 0b11100110011;
16283let prefersSlot3 = 1;
16284let Constraints = "$Rxx32 = $Rxx32in";
16285}
16286def M2_mpyud_nac_hl_s1 : HInst<
16287(outs DoubleRegs:$Rxx32),
16288(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16289"$Rxx32 -= mpyu($Rs32.h,$Rt32.l):<<1",
16290tc_d773585a, TypeM>, Enc_61f0b0 {
16291let Inst{7-5} = 0b010;
16292let Inst{13-13} = 0b0;
16293let Inst{31-21} = 0b11100110111;
16294let prefersSlot3 = 1;
16295let Constraints = "$Rxx32 = $Rxx32in";
16296}
16297def M2_mpyud_nac_lh_s0 : HInst<
16298(outs DoubleRegs:$Rxx32),
16299(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16300"$Rxx32 -= mpyu($Rs32.l,$Rt32.h)",
16301tc_d773585a, TypeM>, Enc_61f0b0 {
16302let Inst{7-5} = 0b001;
16303let Inst{13-13} = 0b0;
16304let Inst{31-21} = 0b11100110011;
16305let prefersSlot3 = 1;
16306let Constraints = "$Rxx32 = $Rxx32in";
16307}
16308def M2_mpyud_nac_lh_s1 : HInst<
16309(outs DoubleRegs:$Rxx32),
16310(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16311"$Rxx32 -= mpyu($Rs32.l,$Rt32.h):<<1",
16312tc_d773585a, TypeM>, Enc_61f0b0 {
16313let Inst{7-5} = 0b001;
16314let Inst{13-13} = 0b0;
16315let Inst{31-21} = 0b11100110111;
16316let prefersSlot3 = 1;
16317let Constraints = "$Rxx32 = $Rxx32in";
16318}
16319def M2_mpyud_nac_ll_s0 : HInst<
16320(outs DoubleRegs:$Rxx32),
16321(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16322"$Rxx32 -= mpyu($Rs32.l,$Rt32.l)",
16323tc_d773585a, TypeM>, Enc_61f0b0 {
16324let Inst{7-5} = 0b000;
16325let Inst{13-13} = 0b0;
16326let Inst{31-21} = 0b11100110011;
16327let prefersSlot3 = 1;
16328let Constraints = "$Rxx32 = $Rxx32in";
16329}
16330def M2_mpyud_nac_ll_s1 : HInst<
16331(outs DoubleRegs:$Rxx32),
16332(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16333"$Rxx32 -= mpyu($Rs32.l,$Rt32.l):<<1",
16334tc_d773585a, TypeM>, Enc_61f0b0 {
16335let Inst{7-5} = 0b000;
16336let Inst{13-13} = 0b0;
16337let Inst{31-21} = 0b11100110111;
16338let prefersSlot3 = 1;
16339let Constraints = "$Rxx32 = $Rxx32in";
16340}
16341def M2_mpyui : HInst<
16342(outs IntRegs:$Rd32),
16343(ins IntRegs:$Rs32, IntRegs:$Rt32),
16344"$Rd32 = mpyui($Rs32,$Rt32)",
16345tc_bafaade3, TypeM> {
16346let hasNewValue = 1;
16347let opNewValue = 0;
16348let isPseudo = 1;
16349let isCodeGenOnly = 1;
16350}
16351def M2_nacci : HInst<
16352(outs IntRegs:$Rx32),
16353(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16354"$Rx32 -= add($Rs32,$Rt32)",
16355tc_f675fee8, TypeM>, Enc_2ae154 {
16356let Inst{7-5} = 0b001;
16357let Inst{13-13} = 0b0;
16358let Inst{31-21} = 0b11101111100;
16359let hasNewValue = 1;
16360let opNewValue = 0;
16361let prefersSlot3 = 1;
16362let InputType = "reg";
16363let Constraints = "$Rx32 = $Rx32in";
16364}
16365def M2_naccii : HInst<
16366(outs IntRegs:$Rx32),
16367(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
16368"$Rx32 -= add($Rs32,#$Ii)",
16369tc_f675fee8, TypeM>, Enc_c90aca {
16370let Inst{13-13} = 0b0;
16371let Inst{31-21} = 0b11100010100;
16372let hasNewValue = 1;
16373let opNewValue = 0;
16374let prefersSlot3 = 1;
16375let InputType = "imm";
16376let isExtendable = 1;
16377let opExtendable = 3;
16378let isExtentSigned = 1;
16379let opExtentBits = 8;
16380let opExtentAlign = 0;
16381let Constraints = "$Rx32 = $Rx32in";
16382}
16383def M2_subacc : HInst<
16384(outs IntRegs:$Rx32),
16385(ins IntRegs:$Rx32in, IntRegs:$Rt32, IntRegs:$Rs32),
16386"$Rx32 += sub($Rt32,$Rs32)",
16387tc_f675fee8, TypeM>, Enc_a568d4 {
16388let Inst{7-5} = 0b011;
16389let Inst{13-13} = 0b0;
16390let Inst{31-21} = 0b11101111000;
16391let hasNewValue = 1;
16392let opNewValue = 0;
16393let prefersSlot3 = 1;
16394let InputType = "reg";
16395let Constraints = "$Rx32 = $Rx32in";
16396}
16397def M2_vabsdiffh : HInst<
16398(outs DoubleRegs:$Rdd32),
16399(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16400"$Rdd32 = vabsdiffh($Rtt32,$Rss32)",
16401tc_002cb246, TypeM>, Enc_ea23e4 {
16402let Inst{7-5} = 0b000;
16403let Inst{13-13} = 0b0;
16404let Inst{31-21} = 0b11101000011;
16405let prefersSlot3 = 1;
16406}
16407def M2_vabsdiffw : HInst<
16408(outs DoubleRegs:$Rdd32),
16409(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
16410"$Rdd32 = vabsdiffw($Rtt32,$Rss32)",
16411tc_002cb246, TypeM>, Enc_ea23e4 {
16412let Inst{7-5} = 0b000;
16413let Inst{13-13} = 0b0;
16414let Inst{31-21} = 0b11101000001;
16415let prefersSlot3 = 1;
16416}
16417def M2_vcmac_s0_sat_i : HInst<
16418(outs DoubleRegs:$Rxx32),
16419(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16420"$Rxx32 += vcmpyi($Rss32,$Rtt32):sat",
16421tc_d773585a, TypeM>, Enc_88c16c {
16422let Inst{7-5} = 0b100;
16423let Inst{13-13} = 0b0;
16424let Inst{31-21} = 0b11101010010;
16425let prefersSlot3 = 1;
16426let Defs = [USR_OVF];
16427let Constraints = "$Rxx32 = $Rxx32in";
16428}
16429def M2_vcmac_s0_sat_r : HInst<
16430(outs DoubleRegs:$Rxx32),
16431(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16432"$Rxx32 += vcmpyr($Rss32,$Rtt32):sat",
16433tc_d773585a, TypeM>, Enc_88c16c {
16434let Inst{7-5} = 0b100;
16435let Inst{13-13} = 0b0;
16436let Inst{31-21} = 0b11101010001;
16437let prefersSlot3 = 1;
16438let Defs = [USR_OVF];
16439let Constraints = "$Rxx32 = $Rxx32in";
16440}
16441def M2_vcmpy_s0_sat_i : HInst<
16442(outs DoubleRegs:$Rdd32),
16443(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16444"$Rdd32 = vcmpyi($Rss32,$Rtt32):sat",
16445tc_bafaade3, TypeM>, Enc_a56825 {
16446let Inst{7-5} = 0b110;
16447let Inst{13-13} = 0b0;
16448let Inst{31-21} = 0b11101000010;
16449let prefersSlot3 = 1;
16450let Defs = [USR_OVF];
16451}
16452def M2_vcmpy_s0_sat_r : HInst<
16453(outs DoubleRegs:$Rdd32),
16454(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16455"$Rdd32 = vcmpyr($Rss32,$Rtt32):sat",
16456tc_bafaade3, TypeM>, Enc_a56825 {
16457let Inst{7-5} = 0b110;
16458let Inst{13-13} = 0b0;
16459let Inst{31-21} = 0b11101000001;
16460let prefersSlot3 = 1;
16461let Defs = [USR_OVF];
16462}
16463def M2_vcmpy_s1_sat_i : HInst<
16464(outs DoubleRegs:$Rdd32),
16465(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16466"$Rdd32 = vcmpyi($Rss32,$Rtt32):<<1:sat",
16467tc_bafaade3, TypeM>, Enc_a56825 {
16468let Inst{7-5} = 0b110;
16469let Inst{13-13} = 0b0;
16470let Inst{31-21} = 0b11101000110;
16471let prefersSlot3 = 1;
16472let Defs = [USR_OVF];
16473}
16474def M2_vcmpy_s1_sat_r : HInst<
16475(outs DoubleRegs:$Rdd32),
16476(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16477"$Rdd32 = vcmpyr($Rss32,$Rtt32):<<1:sat",
16478tc_bafaade3, TypeM>, Enc_a56825 {
16479let Inst{7-5} = 0b110;
16480let Inst{13-13} = 0b0;
16481let Inst{31-21} = 0b11101000101;
16482let prefersSlot3 = 1;
16483let Defs = [USR_OVF];
16484}
16485def M2_vdmacs_s0 : HInst<
16486(outs DoubleRegs:$Rxx32),
16487(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16488"$Rxx32 += vdmpy($Rss32,$Rtt32):sat",
16489tc_d773585a, TypeM>, Enc_88c16c {
16490let Inst{7-5} = 0b100;
16491let Inst{13-13} = 0b0;
16492let Inst{31-21} = 0b11101010000;
16493let prefersSlot3 = 1;
16494let Defs = [USR_OVF];
16495let Constraints = "$Rxx32 = $Rxx32in";
16496}
16497def M2_vdmacs_s1 : HInst<
16498(outs DoubleRegs:$Rxx32),
16499(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16500"$Rxx32 += vdmpy($Rss32,$Rtt32):<<1:sat",
16501tc_d773585a, TypeM>, Enc_88c16c {
16502let Inst{7-5} = 0b100;
16503let Inst{13-13} = 0b0;
16504let Inst{31-21} = 0b11101010100;
16505let prefersSlot3 = 1;
16506let Defs = [USR_OVF];
16507let Constraints = "$Rxx32 = $Rxx32in";
16508}
16509def M2_vdmpyrs_s0 : HInst<
16510(outs IntRegs:$Rd32),
16511(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16512"$Rd32 = vdmpy($Rss32,$Rtt32):rnd:sat",
16513tc_bafaade3, TypeM>, Enc_d2216a {
16514let Inst{7-5} = 0b000;
16515let Inst{13-13} = 0b0;
16516let Inst{31-21} = 0b11101001000;
16517let hasNewValue = 1;
16518let opNewValue = 0;
16519let prefersSlot3 = 1;
16520let Defs = [USR_OVF];
16521}
16522def M2_vdmpyrs_s1 : HInst<
16523(outs IntRegs:$Rd32),
16524(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16525"$Rd32 = vdmpy($Rss32,$Rtt32):<<1:rnd:sat",
16526tc_bafaade3, TypeM>, Enc_d2216a {
16527let Inst{7-5} = 0b000;
16528let Inst{13-13} = 0b0;
16529let Inst{31-21} = 0b11101001100;
16530let hasNewValue = 1;
16531let opNewValue = 0;
16532let prefersSlot3 = 1;
16533let Defs = [USR_OVF];
16534}
16535def M2_vdmpys_s0 : HInst<
16536(outs DoubleRegs:$Rdd32),
16537(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16538"$Rdd32 = vdmpy($Rss32,$Rtt32):sat",
16539tc_bafaade3, TypeM>, Enc_a56825 {
16540let Inst{7-5} = 0b100;
16541let Inst{13-13} = 0b0;
16542let Inst{31-21} = 0b11101000000;
16543let prefersSlot3 = 1;
16544let Defs = [USR_OVF];
16545}
16546def M2_vdmpys_s1 : HInst<
16547(outs DoubleRegs:$Rdd32),
16548(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16549"$Rdd32 = vdmpy($Rss32,$Rtt32):<<1:sat",
16550tc_bafaade3, TypeM>, Enc_a56825 {
16551let Inst{7-5} = 0b100;
16552let Inst{13-13} = 0b0;
16553let Inst{31-21} = 0b11101000100;
16554let prefersSlot3 = 1;
16555let Defs = [USR_OVF];
16556}
16557def M2_vmac2 : HInst<
16558(outs DoubleRegs:$Rxx32),
16559(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16560"$Rxx32 += vmpyh($Rs32,$Rt32)",
16561tc_d773585a, TypeM>, Enc_61f0b0 {
16562let Inst{7-5} = 0b001;
16563let Inst{13-13} = 0b0;
16564let Inst{31-21} = 0b11100111001;
16565let prefersSlot3 = 1;
16566let Constraints = "$Rxx32 = $Rxx32in";
16567}
16568def M2_vmac2es : HInst<
16569(outs DoubleRegs:$Rxx32),
16570(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16571"$Rxx32 += vmpyeh($Rss32,$Rtt32)",
16572tc_d773585a, TypeM>, Enc_88c16c {
16573let Inst{7-5} = 0b010;
16574let Inst{13-13} = 0b0;
16575let Inst{31-21} = 0b11101010001;
16576let prefersSlot3 = 1;
16577let Constraints = "$Rxx32 = $Rxx32in";
16578}
16579def M2_vmac2es_s0 : HInst<
16580(outs DoubleRegs:$Rxx32),
16581(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16582"$Rxx32 += vmpyeh($Rss32,$Rtt32):sat",
16583tc_d773585a, TypeM>, Enc_88c16c {
16584let Inst{7-5} = 0b110;
16585let Inst{13-13} = 0b0;
16586let Inst{31-21} = 0b11101010000;
16587let prefersSlot3 = 1;
16588let Defs = [USR_OVF];
16589let Constraints = "$Rxx32 = $Rxx32in";
16590}
16591def M2_vmac2es_s1 : HInst<
16592(outs DoubleRegs:$Rxx32),
16593(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16594"$Rxx32 += vmpyeh($Rss32,$Rtt32):<<1:sat",
16595tc_d773585a, TypeM>, Enc_88c16c {
16596let Inst{7-5} = 0b110;
16597let Inst{13-13} = 0b0;
16598let Inst{31-21} = 0b11101010100;
16599let prefersSlot3 = 1;
16600let Defs = [USR_OVF];
16601let Constraints = "$Rxx32 = $Rxx32in";
16602}
16603def M2_vmac2s_s0 : HInst<
16604(outs DoubleRegs:$Rxx32),
16605(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16606"$Rxx32 += vmpyh($Rs32,$Rt32):sat",
16607tc_d773585a, TypeM>, Enc_61f0b0 {
16608let Inst{7-5} = 0b101;
16609let Inst{13-13} = 0b0;
16610let Inst{31-21} = 0b11100111000;
16611let prefersSlot3 = 1;
16612let Defs = [USR_OVF];
16613let Constraints = "$Rxx32 = $Rxx32in";
16614}
16615def M2_vmac2s_s1 : HInst<
16616(outs DoubleRegs:$Rxx32),
16617(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16618"$Rxx32 += vmpyh($Rs32,$Rt32):<<1:sat",
16619tc_d773585a, TypeM>, Enc_61f0b0 {
16620let Inst{7-5} = 0b101;
16621let Inst{13-13} = 0b0;
16622let Inst{31-21} = 0b11100111100;
16623let prefersSlot3 = 1;
16624let Defs = [USR_OVF];
16625let Constraints = "$Rxx32 = $Rxx32in";
16626}
16627def M2_vmac2su_s0 : HInst<
16628(outs DoubleRegs:$Rxx32),
16629(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16630"$Rxx32 += vmpyhsu($Rs32,$Rt32):sat",
16631tc_d773585a, TypeM>, Enc_61f0b0 {
16632let Inst{7-5} = 0b101;
16633let Inst{13-13} = 0b0;
16634let Inst{31-21} = 0b11100111011;
16635let prefersSlot3 = 1;
16636let Defs = [USR_OVF];
16637let Constraints = "$Rxx32 = $Rxx32in";
16638}
16639def M2_vmac2su_s1 : HInst<
16640(outs DoubleRegs:$Rxx32),
16641(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16642"$Rxx32 += vmpyhsu($Rs32,$Rt32):<<1:sat",
16643tc_d773585a, TypeM>, Enc_61f0b0 {
16644let Inst{7-5} = 0b101;
16645let Inst{13-13} = 0b0;
16646let Inst{31-21} = 0b11100111111;
16647let prefersSlot3 = 1;
16648let Defs = [USR_OVF];
16649let Constraints = "$Rxx32 = $Rxx32in";
16650}
16651def M2_vmpy2es_s0 : HInst<
16652(outs DoubleRegs:$Rdd32),
16653(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16654"$Rdd32 = vmpyeh($Rss32,$Rtt32):sat",
16655tc_bafaade3, TypeM>, Enc_a56825 {
16656let Inst{7-5} = 0b110;
16657let Inst{13-13} = 0b0;
16658let Inst{31-21} = 0b11101000000;
16659let prefersSlot3 = 1;
16660let Defs = [USR_OVF];
16661}
16662def M2_vmpy2es_s1 : HInst<
16663(outs DoubleRegs:$Rdd32),
16664(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16665"$Rdd32 = vmpyeh($Rss32,$Rtt32):<<1:sat",
16666tc_bafaade3, TypeM>, Enc_a56825 {
16667let Inst{7-5} = 0b110;
16668let Inst{13-13} = 0b0;
16669let Inst{31-21} = 0b11101000100;
16670let prefersSlot3 = 1;
16671let Defs = [USR_OVF];
16672}
16673def M2_vmpy2s_s0 : HInst<
16674(outs DoubleRegs:$Rdd32),
16675(ins IntRegs:$Rs32, IntRegs:$Rt32),
16676"$Rdd32 = vmpyh($Rs32,$Rt32):sat",
16677tc_bafaade3, TypeM>, Enc_be32a5 {
16678let Inst{7-5} = 0b101;
16679let Inst{13-13} = 0b0;
16680let Inst{31-21} = 0b11100101000;
16681let prefersSlot3 = 1;
16682let Defs = [USR_OVF];
16683}
16684def M2_vmpy2s_s0pack : HInst<
16685(outs IntRegs:$Rd32),
16686(ins IntRegs:$Rs32, IntRegs:$Rt32),
16687"$Rd32 = vmpyh($Rs32,$Rt32):rnd:sat",
16688tc_bafaade3, TypeM>, Enc_5ab2be {
16689let Inst{7-5} = 0b111;
16690let Inst{13-13} = 0b0;
16691let Inst{31-21} = 0b11101101001;
16692let hasNewValue = 1;
16693let opNewValue = 0;
16694let prefersSlot3 = 1;
16695let Defs = [USR_OVF];
16696}
16697def M2_vmpy2s_s1 : HInst<
16698(outs DoubleRegs:$Rdd32),
16699(ins IntRegs:$Rs32, IntRegs:$Rt32),
16700"$Rdd32 = vmpyh($Rs32,$Rt32):<<1:sat",
16701tc_bafaade3, TypeM>, Enc_be32a5 {
16702let Inst{7-5} = 0b101;
16703let Inst{13-13} = 0b0;
16704let Inst{31-21} = 0b11100101100;
16705let prefersSlot3 = 1;
16706let Defs = [USR_OVF];
16707}
16708def M2_vmpy2s_s1pack : HInst<
16709(outs IntRegs:$Rd32),
16710(ins IntRegs:$Rs32, IntRegs:$Rt32),
16711"$Rd32 = vmpyh($Rs32,$Rt32):<<1:rnd:sat",
16712tc_bafaade3, TypeM>, Enc_5ab2be {
16713let Inst{7-5} = 0b111;
16714let Inst{13-13} = 0b0;
16715let Inst{31-21} = 0b11101101101;
16716let hasNewValue = 1;
16717let opNewValue = 0;
16718let prefersSlot3 = 1;
16719let Defs = [USR_OVF];
16720}
16721def M2_vmpy2su_s0 : HInst<
16722(outs DoubleRegs:$Rdd32),
16723(ins IntRegs:$Rs32, IntRegs:$Rt32),
16724"$Rdd32 = vmpyhsu($Rs32,$Rt32):sat",
16725tc_bafaade3, TypeM>, Enc_be32a5 {
16726let Inst{7-5} = 0b111;
16727let Inst{13-13} = 0b0;
16728let Inst{31-21} = 0b11100101000;
16729let prefersSlot3 = 1;
16730let Defs = [USR_OVF];
16731}
16732def M2_vmpy2su_s1 : HInst<
16733(outs DoubleRegs:$Rdd32),
16734(ins IntRegs:$Rs32, IntRegs:$Rt32),
16735"$Rdd32 = vmpyhsu($Rs32,$Rt32):<<1:sat",
16736tc_bafaade3, TypeM>, Enc_be32a5 {
16737let Inst{7-5} = 0b111;
16738let Inst{13-13} = 0b0;
16739let Inst{31-21} = 0b11100101100;
16740let prefersSlot3 = 1;
16741let Defs = [USR_OVF];
16742}
16743def M2_vraddh : HInst<
16744(outs IntRegs:$Rd32),
16745(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16746"$Rd32 = vraddh($Rss32,$Rtt32)",
16747tc_bafaade3, TypeM>, Enc_d2216a {
16748let Inst{7-5} = 0b111;
16749let Inst{13-13} = 0b0;
16750let Inst{31-21} = 0b11101001001;
16751let hasNewValue = 1;
16752let opNewValue = 0;
16753let prefersSlot3 = 1;
16754}
16755def M2_vradduh : HInst<
16756(outs IntRegs:$Rd32),
16757(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16758"$Rd32 = vradduh($Rss32,$Rtt32)",
16759tc_bafaade3, TypeM>, Enc_d2216a {
16760let Inst{7-5} = 0b001;
16761let Inst{13-13} = 0b0;
16762let Inst{31-21} = 0b11101001000;
16763let hasNewValue = 1;
16764let opNewValue = 0;
16765let prefersSlot3 = 1;
16766}
16767def M2_vrcmaci_s0 : HInst<
16768(outs DoubleRegs:$Rxx32),
16769(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16770"$Rxx32 += vrcmpyi($Rss32,$Rtt32)",
16771tc_d773585a, TypeM>, Enc_88c16c {
16772let Inst{7-5} = 0b000;
16773let Inst{13-13} = 0b0;
16774let Inst{31-21} = 0b11101010000;
16775let prefersSlot3 = 1;
16776let Constraints = "$Rxx32 = $Rxx32in";
16777}
16778def M2_vrcmaci_s0c : HInst<
16779(outs DoubleRegs:$Rxx32),
16780(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16781"$Rxx32 += vrcmpyi($Rss32,$Rtt32*)",
16782tc_d773585a, TypeM>, Enc_88c16c {
16783let Inst{7-5} = 0b000;
16784let Inst{13-13} = 0b0;
16785let Inst{31-21} = 0b11101010010;
16786let prefersSlot3 = 1;
16787let Constraints = "$Rxx32 = $Rxx32in";
16788}
16789def M2_vrcmacr_s0 : HInst<
16790(outs DoubleRegs:$Rxx32),
16791(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16792"$Rxx32 += vrcmpyr($Rss32,$Rtt32)",
16793tc_d773585a, TypeM>, Enc_88c16c {
16794let Inst{7-5} = 0b001;
16795let Inst{13-13} = 0b0;
16796let Inst{31-21} = 0b11101010000;
16797let prefersSlot3 = 1;
16798let Constraints = "$Rxx32 = $Rxx32in";
16799}
16800def M2_vrcmacr_s0c : HInst<
16801(outs DoubleRegs:$Rxx32),
16802(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16803"$Rxx32 += vrcmpyr($Rss32,$Rtt32*)",
16804tc_d773585a, TypeM>, Enc_88c16c {
16805let Inst{7-5} = 0b001;
16806let Inst{13-13} = 0b0;
16807let Inst{31-21} = 0b11101010011;
16808let prefersSlot3 = 1;
16809let Constraints = "$Rxx32 = $Rxx32in";
16810}
16811def M2_vrcmpyi_s0 : HInst<
16812(outs DoubleRegs:$Rdd32),
16813(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16814"$Rdd32 = vrcmpyi($Rss32,$Rtt32)",
16815tc_bafaade3, TypeM>, Enc_a56825 {
16816let Inst{7-5} = 0b000;
16817let Inst{13-13} = 0b0;
16818let Inst{31-21} = 0b11101000000;
16819let prefersSlot3 = 1;
16820}
16821def M2_vrcmpyi_s0c : HInst<
16822(outs DoubleRegs:$Rdd32),
16823(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16824"$Rdd32 = vrcmpyi($Rss32,$Rtt32*)",
16825tc_bafaade3, TypeM>, Enc_a56825 {
16826let Inst{7-5} = 0b000;
16827let Inst{13-13} = 0b0;
16828let Inst{31-21} = 0b11101000010;
16829let prefersSlot3 = 1;
16830}
16831def M2_vrcmpyr_s0 : HInst<
16832(outs DoubleRegs:$Rdd32),
16833(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16834"$Rdd32 = vrcmpyr($Rss32,$Rtt32)",
16835tc_bafaade3, TypeM>, Enc_a56825 {
16836let Inst{7-5} = 0b001;
16837let Inst{13-13} = 0b0;
16838let Inst{31-21} = 0b11101000000;
16839let prefersSlot3 = 1;
16840}
16841def M2_vrcmpyr_s0c : HInst<
16842(outs DoubleRegs:$Rdd32),
16843(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16844"$Rdd32 = vrcmpyr($Rss32,$Rtt32*)",
16845tc_bafaade3, TypeM>, Enc_a56825 {
16846let Inst{7-5} = 0b001;
16847let Inst{13-13} = 0b0;
16848let Inst{31-21} = 0b11101000011;
16849let prefersSlot3 = 1;
16850}
16851def M2_vrcmpys_acc_s1 : HInst<
16852(outs DoubleRegs:$Rxx32),
16853(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
16854"$Rxx32 += vrcmpys($Rss32,$Rt32):<<1:sat",
16855tc_d773585a, TypeM> {
16856let isPseudo = 1;
16857let Constraints = "$Rxx32 = $Rxx32in";
16858}
16859def M2_vrcmpys_acc_s1_h : HInst<
16860(outs DoubleRegs:$Rxx32),
16861(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16862"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16863tc_d773585a, TypeM>, Enc_88c16c {
16864let Inst{7-5} = 0b100;
16865let Inst{13-13} = 0b0;
16866let Inst{31-21} = 0b11101010101;
16867let prefersSlot3 = 1;
16868let Defs = [USR_OVF];
16869let Constraints = "$Rxx32 = $Rxx32in";
16870}
16871def M2_vrcmpys_acc_s1_l : HInst<
16872(outs DoubleRegs:$Rxx32),
16873(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16874"$Rxx32 += vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16875tc_d773585a, TypeM>, Enc_88c16c {
16876let Inst{7-5} = 0b100;
16877let Inst{13-13} = 0b0;
16878let Inst{31-21} = 0b11101010111;
16879let prefersSlot3 = 1;
16880let Defs = [USR_OVF];
16881let Constraints = "$Rxx32 = $Rxx32in";
16882}
16883def M2_vrcmpys_s1 : HInst<
16884(outs DoubleRegs:$Rdd32),
16885(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16886"$Rdd32 = vrcmpys($Rss32,$Rt32):<<1:sat",
16887tc_bafaade3, TypeM> {
16888let isPseudo = 1;
16889}
16890def M2_vrcmpys_s1_h : HInst<
16891(outs DoubleRegs:$Rdd32),
16892(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16893"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:hi",
16894tc_bafaade3, TypeM>, Enc_a56825 {
16895let Inst{7-5} = 0b100;
16896let Inst{13-13} = 0b0;
16897let Inst{31-21} = 0b11101000101;
16898let prefersSlot3 = 1;
16899let Defs = [USR_OVF];
16900}
16901def M2_vrcmpys_s1_l : HInst<
16902(outs DoubleRegs:$Rdd32),
16903(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16904"$Rdd32 = vrcmpys($Rss32,$Rtt32):<<1:sat:raw:lo",
16905tc_bafaade3, TypeM>, Enc_a56825 {
16906let Inst{7-5} = 0b100;
16907let Inst{13-13} = 0b0;
16908let Inst{31-21} = 0b11101000111;
16909let prefersSlot3 = 1;
16910let Defs = [USR_OVF];
16911}
16912def M2_vrcmpys_s1rp : HInst<
16913(outs IntRegs:$Rd32),
16914(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
16915"$Rd32 = vrcmpys($Rss32,$Rt32):<<1:rnd:sat",
16916tc_bafaade3, TypeM> {
16917let hasNewValue = 1;
16918let opNewValue = 0;
16919let isPseudo = 1;
16920}
16921def M2_vrcmpys_s1rp_h : HInst<
16922(outs IntRegs:$Rd32),
16923(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16924"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:hi",
16925tc_bafaade3, TypeM>, Enc_d2216a {
16926let Inst{7-5} = 0b110;
16927let Inst{13-13} = 0b0;
16928let Inst{31-21} = 0b11101001101;
16929let hasNewValue = 1;
16930let opNewValue = 0;
16931let prefersSlot3 = 1;
16932let Defs = [USR_OVF];
16933}
16934def M2_vrcmpys_s1rp_l : HInst<
16935(outs IntRegs:$Rd32),
16936(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16937"$Rd32 = vrcmpys($Rss32,$Rtt32):<<1:rnd:sat:raw:lo",
16938tc_bafaade3, TypeM>, Enc_d2216a {
16939let Inst{7-5} = 0b111;
16940let Inst{13-13} = 0b0;
16941let Inst{31-21} = 0b11101001101;
16942let hasNewValue = 1;
16943let opNewValue = 0;
16944let prefersSlot3 = 1;
16945let Defs = [USR_OVF];
16946}
16947def M2_vrmac_s0 : HInst<
16948(outs DoubleRegs:$Rxx32),
16949(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16950"$Rxx32 += vrmpyh($Rss32,$Rtt32)",
16951tc_d773585a, TypeM>, Enc_88c16c {
16952let Inst{7-5} = 0b010;
16953let Inst{13-13} = 0b0;
16954let Inst{31-21} = 0b11101010000;
16955let prefersSlot3 = 1;
16956let Constraints = "$Rxx32 = $Rxx32in";
16957}
16958def M2_vrmpy_s0 : HInst<
16959(outs DoubleRegs:$Rdd32),
16960(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
16961"$Rdd32 = vrmpyh($Rss32,$Rtt32)",
16962tc_bafaade3, TypeM>, Enc_a56825 {
16963let Inst{7-5} = 0b010;
16964let Inst{13-13} = 0b0;
16965let Inst{31-21} = 0b11101000000;
16966let prefersSlot3 = 1;
16967}
16968def M2_xor_xacc : HInst<
16969(outs IntRegs:$Rx32),
16970(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16971"$Rx32 ^= xor($Rs32,$Rt32)",
16972tc_f429765c, TypeM>, Enc_2ae154 {
16973let Inst{7-5} = 0b011;
16974let Inst{13-13} = 0b0;
16975let Inst{31-21} = 0b11101111100;
16976let hasNewValue = 1;
16977let opNewValue = 0;
16978let prefersSlot3 = 1;
16979let InputType = "reg";
16980let Constraints = "$Rx32 = $Rx32in";
16981}
16982def M4_and_and : HInst<
16983(outs IntRegs:$Rx32),
16984(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16985"$Rx32 &= and($Rs32,$Rt32)",
16986tc_f429765c, TypeM>, Enc_2ae154 {
16987let Inst{7-5} = 0b000;
16988let Inst{13-13} = 0b0;
16989let Inst{31-21} = 0b11101111010;
16990let hasNewValue = 1;
16991let opNewValue = 0;
16992let prefersSlot3 = 1;
16993let InputType = "reg";
16994let Constraints = "$Rx32 = $Rx32in";
16995}
16996def M4_and_andn : HInst<
16997(outs IntRegs:$Rx32),
16998(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
16999"$Rx32 &= and($Rs32,~$Rt32)",
17000tc_f429765c, TypeM>, Enc_2ae154 {
17001let Inst{7-5} = 0b001;
17002let Inst{13-13} = 0b0;
17003let Inst{31-21} = 0b11101111001;
17004let hasNewValue = 1;
17005let opNewValue = 0;
17006let prefersSlot3 = 1;
17007let InputType = "reg";
17008let Constraints = "$Rx32 = $Rx32in";
17009}
17010def M4_and_or : HInst<
17011(outs IntRegs:$Rx32),
17012(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17013"$Rx32 &= or($Rs32,$Rt32)",
17014tc_f429765c, TypeM>, Enc_2ae154 {
17015let Inst{7-5} = 0b001;
17016let Inst{13-13} = 0b0;
17017let Inst{31-21} = 0b11101111010;
17018let hasNewValue = 1;
17019let opNewValue = 0;
17020let prefersSlot3 = 1;
17021let InputType = "reg";
17022let Constraints = "$Rx32 = $Rx32in";
17023}
17024def M4_and_xor : HInst<
17025(outs IntRegs:$Rx32),
17026(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17027"$Rx32 &= xor($Rs32,$Rt32)",
17028tc_f429765c, TypeM>, Enc_2ae154 {
17029let Inst{7-5} = 0b010;
17030let Inst{13-13} = 0b0;
17031let Inst{31-21} = 0b11101111010;
17032let hasNewValue = 1;
17033let opNewValue = 0;
17034let prefersSlot3 = 1;
17035let InputType = "reg";
17036let Constraints = "$Rx32 = $Rx32in";
17037}
17038def M4_cmpyi_wh : HInst<
17039(outs IntRegs:$Rd32),
17040(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17041"$Rd32 = cmpyiwh($Rss32,$Rt32):<<1:rnd:sat",
17042tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17043let Inst{7-5} = 0b100;
17044let Inst{13-13} = 0b0;
17045let Inst{31-21} = 0b11000101000;
17046let hasNewValue = 1;
17047let opNewValue = 0;
17048let prefersSlot3 = 1;
17049let Defs = [USR_OVF];
17050}
17051def M4_cmpyi_whc : HInst<
17052(outs IntRegs:$Rd32),
17053(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17054"$Rd32 = cmpyiwh($Rss32,$Rt32*):<<1:rnd:sat",
17055tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17056let Inst{7-5} = 0b101;
17057let Inst{13-13} = 0b0;
17058let Inst{31-21} = 0b11000101000;
17059let hasNewValue = 1;
17060let opNewValue = 0;
17061let prefersSlot3 = 1;
17062let Defs = [USR_OVF];
17063}
17064def M4_cmpyr_wh : HInst<
17065(outs IntRegs:$Rd32),
17066(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17067"$Rd32 = cmpyrwh($Rss32,$Rt32):<<1:rnd:sat",
17068tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17069let Inst{7-5} = 0b110;
17070let Inst{13-13} = 0b0;
17071let Inst{31-21} = 0b11000101000;
17072let hasNewValue = 1;
17073let opNewValue = 0;
17074let prefersSlot3 = 1;
17075let Defs = [USR_OVF];
17076}
17077def M4_cmpyr_whc : HInst<
17078(outs IntRegs:$Rd32),
17079(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
17080"$Rd32 = cmpyrwh($Rss32,$Rt32*):<<1:rnd:sat",
17081tc_bafaade3, TypeS_3op>, Enc_3d5b28 {
17082let Inst{7-5} = 0b111;
17083let Inst{13-13} = 0b0;
17084let Inst{31-21} = 0b11000101000;
17085let hasNewValue = 1;
17086let opNewValue = 0;
17087let prefersSlot3 = 1;
17088let Defs = [USR_OVF];
17089}
17090def M4_mac_up_s1_sat : HInst<
17091(outs IntRegs:$Rx32),
17092(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17093"$Rx32 += mpy($Rs32,$Rt32):<<1:sat",
17094tc_d773585a, TypeM>, Enc_2ae154 {
17095let Inst{7-5} = 0b000;
17096let Inst{13-13} = 0b0;
17097let Inst{31-21} = 0b11101111011;
17098let hasNewValue = 1;
17099let opNewValue = 0;
17100let prefersSlot3 = 1;
17101let Defs = [USR_OVF];
17102let InputType = "reg";
17103let Constraints = "$Rx32 = $Rx32in";
17104}
17105def M4_mpyri_addi : HInst<
17106(outs IntRegs:$Rd32),
17107(ins u32_0Imm:$Ii, IntRegs:$Rs32, u6_0Imm:$II),
17108"$Rd32 = add(#$Ii,mpyi($Rs32,#$II))",
17109tc_05d3a09b, TypeALU64>, Enc_322e1b, ImmRegRel {
17110let Inst{31-24} = 0b11011000;
17111let hasNewValue = 1;
17112let opNewValue = 0;
17113let prefersSlot3 = 1;
17114let CextOpcode = "M4_mpyri_addr";
17115let isExtendable = 1;
17116let opExtendable = 1;
17117let isExtentSigned = 0;
17118let opExtentBits = 6;
17119let opExtentAlign = 0;
17120}
17121def M4_mpyri_addr : HInst<
17122(outs IntRegs:$Rd32),
17123(ins IntRegs:$Ru32, IntRegs:$Rs32, u32_0Imm:$Ii),
17124"$Rd32 = add($Ru32,mpyi($Rs32,#$Ii))",
17125tc_05d3a09b, TypeALU64>, Enc_420cf3, ImmRegRel {
17126let Inst{31-23} = 0b110111111;
17127let hasNewValue = 1;
17128let opNewValue = 0;
17129let prefersSlot3 = 1;
17130let CextOpcode = "M4_mpyri_addr";
17131let InputType = "imm";
17132let isExtendable = 1;
17133let opExtendable = 3;
17134let isExtentSigned = 0;
17135let opExtentBits = 6;
17136let opExtentAlign = 0;
17137}
17138def M4_mpyri_addr_u2 : HInst<
17139(outs IntRegs:$Rd32),
17140(ins IntRegs:$Ru32, u6_2Imm:$Ii, IntRegs:$Rs32),
17141"$Rd32 = add($Ru32,mpyi(#$Ii,$Rs32))",
17142tc_1a2fd869, TypeALU64>, Enc_277737 {
17143let Inst{31-23} = 0b110111110;
17144let hasNewValue = 1;
17145let opNewValue = 0;
17146let prefersSlot3 = 1;
17147}
17148def M4_mpyrr_addi : HInst<
17149(outs IntRegs:$Rd32),
17150(ins u32_0Imm:$Ii, IntRegs:$Rs32, IntRegs:$Rt32),
17151"$Rd32 = add(#$Ii,mpyi($Rs32,$Rt32))",
17152tc_d773585a, TypeALU64>, Enc_a7b8e8, ImmRegRel {
17153let Inst{31-23} = 0b110101110;
17154let hasNewValue = 1;
17155let opNewValue = 0;
17156let prefersSlot3 = 1;
17157let CextOpcode = "M4_mpyrr_addr";
17158let InputType = "imm";
17159let isExtendable = 1;
17160let opExtendable = 1;
17161let isExtentSigned = 0;
17162let opExtentBits = 6;
17163let opExtentAlign = 0;
17164}
17165def M4_mpyrr_addr : HInst<
17166(outs IntRegs:$Ry32),
17167(ins IntRegs:$Ru32, IntRegs:$Ry32in, IntRegs:$Rs32),
17168"$Ry32 = add($Ru32,mpyi($Ry32in,$Rs32))",
17169tc_d773585a, TypeM>, Enc_7f1a05, ImmRegRel {
17170let Inst{7-5} = 0b000;
17171let Inst{13-13} = 0b0;
17172let Inst{31-21} = 0b11100011000;
17173let hasNewValue = 1;
17174let opNewValue = 0;
17175let prefersSlot3 = 1;
17176let CextOpcode = "M4_mpyrr_addr";
17177let InputType = "reg";
17178let Constraints = "$Ry32 = $Ry32in";
17179}
17180def M4_nac_up_s1_sat : HInst<
17181(outs IntRegs:$Rx32),
17182(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17183"$Rx32 -= mpy($Rs32,$Rt32):<<1:sat",
17184tc_d773585a, TypeM>, Enc_2ae154 {
17185let Inst{7-5} = 0b001;
17186let Inst{13-13} = 0b0;
17187let Inst{31-21} = 0b11101111011;
17188let hasNewValue = 1;
17189let opNewValue = 0;
17190let prefersSlot3 = 1;
17191let Defs = [USR_OVF];
17192let InputType = "reg";
17193let Constraints = "$Rx32 = $Rx32in";
17194}
17195def M4_or_and : HInst<
17196(outs IntRegs:$Rx32),
17197(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17198"$Rx32 |= and($Rs32,$Rt32)",
17199tc_f429765c, TypeM>, Enc_2ae154 {
17200let Inst{7-5} = 0b011;
17201let Inst{13-13} = 0b0;
17202let Inst{31-21} = 0b11101111010;
17203let hasNewValue = 1;
17204let opNewValue = 0;
17205let prefersSlot3 = 1;
17206let InputType = "reg";
17207let Constraints = "$Rx32 = $Rx32in";
17208}
17209def M4_or_andn : HInst<
17210(outs IntRegs:$Rx32),
17211(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17212"$Rx32 |= and($Rs32,~$Rt32)",
17213tc_f429765c, TypeM>, Enc_2ae154 {
17214let Inst{7-5} = 0b000;
17215let Inst{13-13} = 0b0;
17216let Inst{31-21} = 0b11101111001;
17217let hasNewValue = 1;
17218let opNewValue = 0;
17219let prefersSlot3 = 1;
17220let InputType = "reg";
17221let Constraints = "$Rx32 = $Rx32in";
17222}
17223def M4_or_or : HInst<
17224(outs IntRegs:$Rx32),
17225(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17226"$Rx32 |= or($Rs32,$Rt32)",
17227tc_f429765c, TypeM>, Enc_2ae154 {
17228let Inst{7-5} = 0b000;
17229let Inst{13-13} = 0b0;
17230let Inst{31-21} = 0b11101111110;
17231let hasNewValue = 1;
17232let opNewValue = 0;
17233let prefersSlot3 = 1;
17234let InputType = "reg";
17235let Constraints = "$Rx32 = $Rx32in";
17236}
17237def M4_or_xor : HInst<
17238(outs IntRegs:$Rx32),
17239(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17240"$Rx32 |= xor($Rs32,$Rt32)",
17241tc_f429765c, TypeM>, Enc_2ae154 {
17242let Inst{7-5} = 0b001;
17243let Inst{13-13} = 0b0;
17244let Inst{31-21} = 0b11101111110;
17245let hasNewValue = 1;
17246let opNewValue = 0;
17247let prefersSlot3 = 1;
17248let InputType = "reg";
17249let Constraints = "$Rx32 = $Rx32in";
17250}
17251def M4_pmpyw : HInst<
17252(outs DoubleRegs:$Rdd32),
17253(ins IntRegs:$Rs32, IntRegs:$Rt32),
17254"$Rdd32 = pmpyw($Rs32,$Rt32)",
17255tc_bafaade3, TypeM>, Enc_be32a5 {
17256let Inst{7-5} = 0b111;
17257let Inst{13-13} = 0b0;
17258let Inst{31-21} = 0b11100101010;
17259let prefersSlot3 = 1;
17260}
17261def M4_pmpyw_acc : HInst<
17262(outs DoubleRegs:$Rxx32),
17263(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17264"$Rxx32 ^= pmpyw($Rs32,$Rt32)",
17265tc_d773585a, TypeM>, Enc_61f0b0 {
17266let Inst{7-5} = 0b111;
17267let Inst{13-13} = 0b0;
17268let Inst{31-21} = 0b11100111001;
17269let prefersSlot3 = 1;
17270let Constraints = "$Rxx32 = $Rxx32in";
17271}
17272def M4_vpmpyh : HInst<
17273(outs DoubleRegs:$Rdd32),
17274(ins IntRegs:$Rs32, IntRegs:$Rt32),
17275"$Rdd32 = vpmpyh($Rs32,$Rt32)",
17276tc_bafaade3, TypeM>, Enc_be32a5 {
17277let Inst{7-5} = 0b111;
17278let Inst{13-13} = 0b0;
17279let Inst{31-21} = 0b11100101110;
17280let prefersSlot3 = 1;
17281}
17282def M4_vpmpyh_acc : HInst<
17283(outs DoubleRegs:$Rxx32),
17284(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17285"$Rxx32 ^= vpmpyh($Rs32,$Rt32)",
17286tc_d773585a, TypeM>, Enc_61f0b0 {
17287let Inst{7-5} = 0b111;
17288let Inst{13-13} = 0b0;
17289let Inst{31-21} = 0b11100111101;
17290let prefersSlot3 = 1;
17291let Constraints = "$Rxx32 = $Rxx32in";
17292}
17293def M4_vrmpyeh_acc_s0 : HInst<
17294(outs DoubleRegs:$Rxx32),
17295(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17296"$Rxx32 += vrmpyweh($Rss32,$Rtt32)",
17297tc_d773585a, TypeM>, Enc_88c16c {
17298let Inst{7-5} = 0b110;
17299let Inst{13-13} = 0b0;
17300let Inst{31-21} = 0b11101010001;
17301let prefersSlot3 = 1;
17302let Constraints = "$Rxx32 = $Rxx32in";
17303}
17304def M4_vrmpyeh_acc_s1 : HInst<
17305(outs DoubleRegs:$Rxx32),
17306(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17307"$Rxx32 += vrmpyweh($Rss32,$Rtt32):<<1",
17308tc_d773585a, TypeM>, Enc_88c16c {
17309let Inst{7-5} = 0b110;
17310let Inst{13-13} = 0b0;
17311let Inst{31-21} = 0b11101010101;
17312let prefersSlot3 = 1;
17313let Constraints = "$Rxx32 = $Rxx32in";
17314}
17315def M4_vrmpyeh_s0 : HInst<
17316(outs DoubleRegs:$Rdd32),
17317(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17318"$Rdd32 = vrmpyweh($Rss32,$Rtt32)",
17319tc_bafaade3, TypeM>, Enc_a56825 {
17320let Inst{7-5} = 0b100;
17321let Inst{13-13} = 0b0;
17322let Inst{31-21} = 0b11101000010;
17323let prefersSlot3 = 1;
17324}
17325def M4_vrmpyeh_s1 : HInst<
17326(outs DoubleRegs:$Rdd32),
17327(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17328"$Rdd32 = vrmpyweh($Rss32,$Rtt32):<<1",
17329tc_bafaade3, TypeM>, Enc_a56825 {
17330let Inst{7-5} = 0b100;
17331let Inst{13-13} = 0b0;
17332let Inst{31-21} = 0b11101000110;
17333let prefersSlot3 = 1;
17334}
17335def M4_vrmpyoh_acc_s0 : HInst<
17336(outs DoubleRegs:$Rxx32),
17337(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17338"$Rxx32 += vrmpywoh($Rss32,$Rtt32)",
17339tc_d773585a, TypeM>, Enc_88c16c {
17340let Inst{7-5} = 0b110;
17341let Inst{13-13} = 0b0;
17342let Inst{31-21} = 0b11101010011;
17343let prefersSlot3 = 1;
17344let Constraints = "$Rxx32 = $Rxx32in";
17345}
17346def M4_vrmpyoh_acc_s1 : HInst<
17347(outs DoubleRegs:$Rxx32),
17348(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17349"$Rxx32 += vrmpywoh($Rss32,$Rtt32):<<1",
17350tc_d773585a, TypeM>, Enc_88c16c {
17351let Inst{7-5} = 0b110;
17352let Inst{13-13} = 0b0;
17353let Inst{31-21} = 0b11101010111;
17354let prefersSlot3 = 1;
17355let Constraints = "$Rxx32 = $Rxx32in";
17356}
17357def M4_vrmpyoh_s0 : HInst<
17358(outs DoubleRegs:$Rdd32),
17359(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17360"$Rdd32 = vrmpywoh($Rss32,$Rtt32)",
17361tc_bafaade3, TypeM>, Enc_a56825 {
17362let Inst{7-5} = 0b010;
17363let Inst{13-13} = 0b0;
17364let Inst{31-21} = 0b11101000001;
17365let prefersSlot3 = 1;
17366}
17367def M4_vrmpyoh_s1 : HInst<
17368(outs DoubleRegs:$Rdd32),
17369(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17370"$Rdd32 = vrmpywoh($Rss32,$Rtt32):<<1",
17371tc_bafaade3, TypeM>, Enc_a56825 {
17372let Inst{7-5} = 0b010;
17373let Inst{13-13} = 0b0;
17374let Inst{31-21} = 0b11101000101;
17375let prefersSlot3 = 1;
17376}
17377def M4_xor_and : HInst<
17378(outs IntRegs:$Rx32),
17379(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17380"$Rx32 ^= and($Rs32,$Rt32)",
17381tc_f429765c, TypeM>, Enc_2ae154 {
17382let Inst{7-5} = 0b010;
17383let Inst{13-13} = 0b0;
17384let Inst{31-21} = 0b11101111110;
17385let hasNewValue = 1;
17386let opNewValue = 0;
17387let prefersSlot3 = 1;
17388let InputType = "reg";
17389let Constraints = "$Rx32 = $Rx32in";
17390}
17391def M4_xor_andn : HInst<
17392(outs IntRegs:$Rx32),
17393(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17394"$Rx32 ^= and($Rs32,~$Rt32)",
17395tc_f429765c, TypeM>, Enc_2ae154 {
17396let Inst{7-5} = 0b010;
17397let Inst{13-13} = 0b0;
17398let Inst{31-21} = 0b11101111001;
17399let hasNewValue = 1;
17400let opNewValue = 0;
17401let prefersSlot3 = 1;
17402let InputType = "reg";
17403let Constraints = "$Rx32 = $Rx32in";
17404}
17405def M4_xor_or : HInst<
17406(outs IntRegs:$Rx32),
17407(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17408"$Rx32 ^= or($Rs32,$Rt32)",
17409tc_f429765c, TypeM>, Enc_2ae154 {
17410let Inst{7-5} = 0b011;
17411let Inst{13-13} = 0b0;
17412let Inst{31-21} = 0b11101111110;
17413let hasNewValue = 1;
17414let opNewValue = 0;
17415let prefersSlot3 = 1;
17416let InputType = "reg";
17417let Constraints = "$Rx32 = $Rx32in";
17418}
17419def M4_xor_xacc : HInst<
17420(outs DoubleRegs:$Rxx32),
17421(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17422"$Rxx32 ^= xor($Rss32,$Rtt32)",
17423tc_f429765c, TypeS_3op>, Enc_88c16c {
17424let Inst{7-5} = 0b000;
17425let Inst{13-13} = 0b0;
17426let Inst{31-21} = 0b11001010100;
17427let prefersSlot3 = 1;
17428let Constraints = "$Rxx32 = $Rxx32in";
17429}
17430def M5_vdmacbsu : HInst<
17431(outs DoubleRegs:$Rxx32),
17432(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17433"$Rxx32 += vdmpybsu($Rss32,$Rtt32):sat",
17434tc_d773585a, TypeM>, Enc_88c16c {
17435let Inst{7-5} = 0b001;
17436let Inst{13-13} = 0b0;
17437let Inst{31-21} = 0b11101010001;
17438let prefersSlot3 = 1;
17439let Defs = [USR_OVF];
17440let Constraints = "$Rxx32 = $Rxx32in";
17441}
17442def M5_vdmpybsu : HInst<
17443(outs DoubleRegs:$Rdd32),
17444(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17445"$Rdd32 = vdmpybsu($Rss32,$Rtt32):sat",
17446tc_bafaade3, TypeM>, Enc_a56825 {
17447let Inst{7-5} = 0b001;
17448let Inst{13-13} = 0b0;
17449let Inst{31-21} = 0b11101000101;
17450let prefersSlot3 = 1;
17451let Defs = [USR_OVF];
17452}
17453def M5_vmacbsu : HInst<
17454(outs DoubleRegs:$Rxx32),
17455(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17456"$Rxx32 += vmpybsu($Rs32,$Rt32)",
17457tc_d773585a, TypeM>, Enc_61f0b0 {
17458let Inst{7-5} = 0b001;
17459let Inst{13-13} = 0b0;
17460let Inst{31-21} = 0b11100111110;
17461let prefersSlot3 = 1;
17462let Constraints = "$Rxx32 = $Rxx32in";
17463}
17464def M5_vmacbuu : HInst<
17465(outs DoubleRegs:$Rxx32),
17466(ins DoubleRegs:$Rxx32in, IntRegs:$Rs32, IntRegs:$Rt32),
17467"$Rxx32 += vmpybu($Rs32,$Rt32)",
17468tc_d773585a, TypeM>, Enc_61f0b0 {
17469let Inst{7-5} = 0b001;
17470let Inst{13-13} = 0b0;
17471let Inst{31-21} = 0b11100111100;
17472let prefersSlot3 = 1;
17473let Constraints = "$Rxx32 = $Rxx32in";
17474}
17475def M5_vmpybsu : HInst<
17476(outs DoubleRegs:$Rdd32),
17477(ins IntRegs:$Rs32, IntRegs:$Rt32),
17478"$Rdd32 = vmpybsu($Rs32,$Rt32)",
17479tc_bafaade3, TypeM>, Enc_be32a5 {
17480let Inst{7-5} = 0b001;
17481let Inst{13-13} = 0b0;
17482let Inst{31-21} = 0b11100101010;
17483let prefersSlot3 = 1;
17484}
17485def M5_vmpybuu : HInst<
17486(outs DoubleRegs:$Rdd32),
17487(ins IntRegs:$Rs32, IntRegs:$Rt32),
17488"$Rdd32 = vmpybu($Rs32,$Rt32)",
17489tc_bafaade3, TypeM>, Enc_be32a5 {
17490let Inst{7-5} = 0b001;
17491let Inst{13-13} = 0b0;
17492let Inst{31-21} = 0b11100101100;
17493let prefersSlot3 = 1;
17494}
17495def M5_vrmacbsu : HInst<
17496(outs DoubleRegs:$Rxx32),
17497(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17498"$Rxx32 += vrmpybsu($Rss32,$Rtt32)",
17499tc_d773585a, TypeM>, Enc_88c16c {
17500let Inst{7-5} = 0b001;
17501let Inst{13-13} = 0b0;
17502let Inst{31-21} = 0b11101010110;
17503let prefersSlot3 = 1;
17504let Constraints = "$Rxx32 = $Rxx32in";
17505}
17506def M5_vrmacbuu : HInst<
17507(outs DoubleRegs:$Rxx32),
17508(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17509"$Rxx32 += vrmpybu($Rss32,$Rtt32)",
17510tc_d773585a, TypeM>, Enc_88c16c {
17511let Inst{7-5} = 0b001;
17512let Inst{13-13} = 0b0;
17513let Inst{31-21} = 0b11101010100;
17514let prefersSlot3 = 1;
17515let Constraints = "$Rxx32 = $Rxx32in";
17516}
17517def M5_vrmpybsu : HInst<
17518(outs DoubleRegs:$Rdd32),
17519(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17520"$Rdd32 = vrmpybsu($Rss32,$Rtt32)",
17521tc_bafaade3, TypeM>, Enc_a56825 {
17522let Inst{7-5} = 0b001;
17523let Inst{13-13} = 0b0;
17524let Inst{31-21} = 0b11101000110;
17525let prefersSlot3 = 1;
17526}
17527def M5_vrmpybuu : HInst<
17528(outs DoubleRegs:$Rdd32),
17529(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
17530"$Rdd32 = vrmpybu($Rss32,$Rtt32)",
17531tc_bafaade3, TypeM>, Enc_a56825 {
17532let Inst{7-5} = 0b001;
17533let Inst{13-13} = 0b0;
17534let Inst{31-21} = 0b11101000100;
17535let prefersSlot3 = 1;
17536}
17537def M6_vabsdiffb : HInst<
17538(outs DoubleRegs:$Rdd32),
17539(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17540"$Rdd32 = vabsdiffb($Rtt32,$Rss32)",
17541tc_9461ff31, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17542let Inst{7-5} = 0b000;
17543let Inst{13-13} = 0b0;
17544let Inst{31-21} = 0b11101000111;
17545let prefersSlot3 = 1;
17546}
17547def M6_vabsdiffub : HInst<
17548(outs DoubleRegs:$Rdd32),
17549(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
17550"$Rdd32 = vabsdiffub($Rtt32,$Rss32)",
17551tc_9461ff31, TypeM>, Enc_ea23e4, Requires<[HasV62]> {
17552let Inst{7-5} = 0b000;
17553let Inst{13-13} = 0b0;
17554let Inst{31-21} = 0b11101000101;
17555let prefersSlot3 = 1;
17556}
17557def PS_loadrbabs : HInst<
17558(outs IntRegs:$Rd32),
17559(ins u32_0Imm:$Ii),
17560"$Rd32 = memb(#$Ii)",
17561tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17562let Inst{24-21} = 0b1000;
17563let Inst{31-27} = 0b01001;
17564let hasNewValue = 1;
17565let opNewValue = 0;
17566let addrMode = Absolute;
17567let accessSize = ByteAccess;
17568let mayLoad = 1;
17569let isExtended = 1;
17570let CextOpcode = "L2_loadrb";
17571let BaseOpcode = "L4_loadrb_abs";
17572let isPredicable = 1;
17573let DecoderNamespace = "MustExtend";
17574let isExtended = 1;
17575let opExtendable = 1;
17576let isExtentSigned = 0;
17577let opExtentBits = 16;
17578let opExtentAlign = 0;
17579}
17580def PS_loadrdabs : HInst<
17581(outs DoubleRegs:$Rdd32),
17582(ins u29_3Imm:$Ii),
17583"$Rdd32 = memd(#$Ii)",
17584tc_c4db48cb, TypeV2LDST>, Enc_509701, AddrModeRel {
17585let Inst{24-21} = 0b1110;
17586let Inst{31-27} = 0b01001;
17587let addrMode = Absolute;
17588let accessSize = DoubleWordAccess;
17589let mayLoad = 1;
17590let isExtended = 1;
17591let CextOpcode = "L2_loadrd";
17592let BaseOpcode = "L4_loadrd_abs";
17593let isPredicable = 1;
17594let DecoderNamespace = "MustExtend";
17595let isExtended = 1;
17596let opExtendable = 1;
17597let isExtentSigned = 0;
17598let opExtentBits = 19;
17599let opExtentAlign = 3;
17600}
17601def PS_loadrhabs : HInst<
17602(outs IntRegs:$Rd32),
17603(ins u31_1Imm:$Ii),
17604"$Rd32 = memh(#$Ii)",
17605tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17606let Inst{24-21} = 0b1010;
17607let Inst{31-27} = 0b01001;
17608let hasNewValue = 1;
17609let opNewValue = 0;
17610let addrMode = Absolute;
17611let accessSize = HalfWordAccess;
17612let mayLoad = 1;
17613let isExtended = 1;
17614let CextOpcode = "L2_loadrh";
17615let BaseOpcode = "L4_loadrh_abs";
17616let isPredicable = 1;
17617let DecoderNamespace = "MustExtend";
17618let isExtended = 1;
17619let opExtendable = 1;
17620let isExtentSigned = 0;
17621let opExtentBits = 17;
17622let opExtentAlign = 1;
17623}
17624def PS_loadriabs : HInst<
17625(outs IntRegs:$Rd32),
17626(ins u30_2Imm:$Ii),
17627"$Rd32 = memw(#$Ii)",
17628tc_c4db48cb, TypeV2LDST>, Enc_4f4ed7, AddrModeRel {
17629let Inst{24-21} = 0b1100;
17630let Inst{31-27} = 0b01001;
17631let hasNewValue = 1;
17632let opNewValue = 0;
17633let addrMode = Absolute;
17634let accessSize = WordAccess;
17635let mayLoad = 1;
17636let isExtended = 1;
17637let CextOpcode = "L2_loadri";
17638let BaseOpcode = "L4_loadri_abs";
17639let isPredicable = 1;
17640let DecoderNamespace = "MustExtend";
17641let isExtended = 1;
17642let opExtendable = 1;
17643let isExtentSigned = 0;
17644let opExtentBits = 18;
17645let opExtentAlign = 2;
17646}
17647def PS_loadrubabs : HInst<
17648(outs IntRegs:$Rd32),
17649(ins u32_0Imm:$Ii),
17650"$Rd32 = memub(#$Ii)",
17651tc_c4db48cb, TypeV2LDST>, Enc_25bef0, AddrModeRel {
17652let Inst{24-21} = 0b1001;
17653let Inst{31-27} = 0b01001;
17654let hasNewValue = 1;
17655let opNewValue = 0;
17656let addrMode = Absolute;
17657let accessSize = ByteAccess;
17658let mayLoad = 1;
17659let isExtended = 1;
17660let CextOpcode = "L2_loadrub";
17661let BaseOpcode = "L4_loadrub_abs";
17662let isPredicable = 1;
17663let DecoderNamespace = "MustExtend";
17664let isExtended = 1;
17665let opExtendable = 1;
17666let isExtentSigned = 0;
17667let opExtentBits = 16;
17668let opExtentAlign = 0;
17669}
17670def PS_loadruhabs : HInst<
17671(outs IntRegs:$Rd32),
17672(ins u31_1Imm:$Ii),
17673"$Rd32 = memuh(#$Ii)",
17674tc_c4db48cb, TypeV2LDST>, Enc_8df4be, AddrModeRel {
17675let Inst{24-21} = 0b1011;
17676let Inst{31-27} = 0b01001;
17677let hasNewValue = 1;
17678let opNewValue = 0;
17679let addrMode = Absolute;
17680let accessSize = HalfWordAccess;
17681let mayLoad = 1;
17682let isExtended = 1;
17683let CextOpcode = "L2_loadruh";
17684let BaseOpcode = "L4_loadruh_abs";
17685let isPredicable = 1;
17686let DecoderNamespace = "MustExtend";
17687let isExtended = 1;
17688let opExtendable = 1;
17689let isExtentSigned = 0;
17690let opExtentBits = 17;
17691let opExtentAlign = 1;
17692}
17693def PS_storerbabs : HInst<
17694(outs),
17695(ins u32_0Imm:$Ii, IntRegs:$Rt32),
17696"memb(#$Ii) = $Rt32",
17697tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
17698let Inst{24-21} = 0b0000;
17699let Inst{31-27} = 0b01001;
17700let addrMode = Absolute;
17701let accessSize = ByteAccess;
17702let isExtended = 1;
17703let mayStore = 1;
17704let CextOpcode = "S2_storerb";
17705let BaseOpcode = "S2_storerbabs";
17706let isPredicable = 1;
17707let isNVStorable = 1;
17708let DecoderNamespace = "MustExtend";
17709let isExtended = 1;
17710let opExtendable = 0;
17711let isExtentSigned = 0;
17712let opExtentBits = 16;
17713let opExtentAlign = 0;
17714}
17715def PS_storerbnewabs : HInst<
17716(outs),
17717(ins u32_0Imm:$Ii, IntRegs:$Nt8),
17718"memb(#$Ii) = $Nt8.new",
17719tc_5bf126a6, TypeV2LDST>, Enc_ad1831, AddrModeRel {
17720let Inst{12-11} = 0b00;
17721let Inst{24-21} = 0b0101;
17722let Inst{31-27} = 0b01001;
17723let addrMode = Absolute;
17724let accessSize = ByteAccess;
17725let isNVStore = 1;
17726let isNewValue = 1;
17727let isExtended = 1;
17728let isRestrictNoSlot1Store = 1;
17729let mayStore = 1;
17730let CextOpcode = "S2_storerb";
17731let BaseOpcode = "S2_storerbabs";
17732let isPredicable = 1;
17733let DecoderNamespace = "MustExtend";
17734let isExtended = 1;
17735let opExtendable = 0;
17736let isExtentSigned = 0;
17737let opExtentBits = 16;
17738let opExtentAlign = 0;
17739let opNewValue = 1;
17740}
17741def PS_storerdabs : HInst<
17742(outs),
17743(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
17744"memd(#$Ii) = $Rtt32",
17745tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel {
17746let Inst{24-21} = 0b0110;
17747let Inst{31-27} = 0b01001;
17748let addrMode = Absolute;
17749let accessSize = DoubleWordAccess;
17750let isExtended = 1;
17751let mayStore = 1;
17752let CextOpcode = "S2_storerd";
17753let BaseOpcode = "S2_storerdabs";
17754let isPredicable = 1;
17755let DecoderNamespace = "MustExtend";
17756let isExtended = 1;
17757let opExtendable = 0;
17758let isExtentSigned = 0;
17759let opExtentBits = 19;
17760let opExtentAlign = 3;
17761}
17762def PS_storerfabs : HInst<
17763(outs),
17764(ins u31_1Imm:$Ii, IntRegs:$Rt32),
17765"memh(#$Ii) = $Rt32.h",
17766tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17767let Inst{24-21} = 0b0011;
17768let Inst{31-27} = 0b01001;
17769let addrMode = Absolute;
17770let accessSize = HalfWordAccess;
17771let isExtended = 1;
17772let mayStore = 1;
17773let CextOpcode = "S2_storerf";
17774let BaseOpcode = "S2_storerfabs";
17775let isPredicable = 1;
17776let DecoderNamespace = "MustExtend";
17777let isExtended = 1;
17778let opExtendable = 0;
17779let isExtentSigned = 0;
17780let opExtentBits = 17;
17781let opExtentAlign = 1;
17782}
17783def PS_storerhabs : HInst<
17784(outs),
17785(ins u31_1Imm:$Ii, IntRegs:$Rt32),
17786"memh(#$Ii) = $Rt32",
17787tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
17788let Inst{24-21} = 0b0010;
17789let Inst{31-27} = 0b01001;
17790let addrMode = Absolute;
17791let accessSize = HalfWordAccess;
17792let isExtended = 1;
17793let mayStore = 1;
17794let CextOpcode = "S2_storerh";
17795let BaseOpcode = "S2_storerhabs";
17796let isPredicable = 1;
17797let isNVStorable = 1;
17798let DecoderNamespace = "MustExtend";
17799let isExtended = 1;
17800let opExtendable = 0;
17801let isExtentSigned = 0;
17802let opExtentBits = 17;
17803let opExtentAlign = 1;
17804}
17805def PS_storerhnewabs : HInst<
17806(outs),
17807(ins u31_1Imm:$Ii, IntRegs:$Nt8),
17808"memh(#$Ii) = $Nt8.new",
17809tc_5bf126a6, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
17810let Inst{12-11} = 0b01;
17811let Inst{24-21} = 0b0101;
17812let Inst{31-27} = 0b01001;
17813let addrMode = Absolute;
17814let accessSize = HalfWordAccess;
17815let isNVStore = 1;
17816let isNewValue = 1;
17817let isExtended = 1;
17818let isRestrictNoSlot1Store = 1;
17819let mayStore = 1;
17820let CextOpcode = "S2_storerh";
17821let BaseOpcode = "S2_storerhabs";
17822let isPredicable = 1;
17823let DecoderNamespace = "MustExtend";
17824let isExtended = 1;
17825let opExtendable = 0;
17826let isExtentSigned = 0;
17827let opExtentBits = 17;
17828let opExtentAlign = 1;
17829let opNewValue = 1;
17830}
17831def PS_storeriabs : HInst<
17832(outs),
17833(ins u30_2Imm:$Ii, IntRegs:$Rt32),
17834"memw(#$Ii) = $Rt32",
17835tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel {
17836let Inst{24-21} = 0b0100;
17837let Inst{31-27} = 0b01001;
17838let addrMode = Absolute;
17839let accessSize = WordAccess;
17840let isExtended = 1;
17841let mayStore = 1;
17842let CextOpcode = "S2_storeri";
17843let BaseOpcode = "S2_storeriabs";
17844let isPredicable = 1;
17845let isNVStorable = 1;
17846let DecoderNamespace = "MustExtend";
17847let isExtended = 1;
17848let opExtendable = 0;
17849let isExtentSigned = 0;
17850let opExtentBits = 18;
17851let opExtentAlign = 2;
17852}
17853def PS_storerinewabs : HInst<
17854(outs),
17855(ins u30_2Imm:$Ii, IntRegs:$Nt8),
17856"memw(#$Ii) = $Nt8.new",
17857tc_5bf126a6, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
17858let Inst{12-11} = 0b10;
17859let Inst{24-21} = 0b0101;
17860let Inst{31-27} = 0b01001;
17861let addrMode = Absolute;
17862let accessSize = WordAccess;
17863let isNVStore = 1;
17864let isNewValue = 1;
17865let isExtended = 1;
17866let isRestrictNoSlot1Store = 1;
17867let mayStore = 1;
17868let CextOpcode = "S2_storeri";
17869let BaseOpcode = "S2_storeriabs";
17870let isPredicable = 1;
17871let DecoderNamespace = "MustExtend";
17872let isExtended = 1;
17873let opExtendable = 0;
17874let isExtentSigned = 0;
17875let opExtentBits = 18;
17876let opExtentAlign = 2;
17877let opNewValue = 1;
17878}
17879def S2_addasl_rrri : HInst<
17880(outs IntRegs:$Rd32),
17881(ins IntRegs:$Rt32, IntRegs:$Rs32, u3_0Imm:$Ii),
17882"$Rd32 = addasl($Rt32,$Rs32,#$Ii)",
17883tc_f675fee8, TypeS_3op>, Enc_47ef61 {
17884let Inst{13-13} = 0b0;
17885let Inst{31-21} = 0b11000100000;
17886let hasNewValue = 1;
17887let opNewValue = 0;
17888let prefersSlot3 = 1;
17889}
17890def S2_allocframe : HInst<
17891(outs IntRegs:$Rx32),
17892(ins IntRegs:$Rx32in, u11_3Imm:$Ii),
17893"allocframe($Rx32,#$Ii):raw",
17894tc_b44ecf75, TypeST>, Enc_22c845 {
17895let Inst{13-11} = 0b000;
17896let Inst{31-21} = 0b10100000100;
17897let hasNewValue = 1;
17898let opNewValue = 0;
17899let addrMode = BaseImmOffset;
17900let accessSize = DoubleWordAccess;
17901let mayStore = 1;
17902let Uses = [FRAMEKEY, FRAMELIMIT, R30, R31];
17903let Defs = [R30];
17904let Constraints = "$Rx32 = $Rx32in";
17905}
17906def S2_asl_i_p : HInst<
17907(outs DoubleRegs:$Rdd32),
17908(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
17909"$Rdd32 = asl($Rss32,#$Ii)",
17910tc_946df596, TypeS_2op>, Enc_5eac98 {
17911let Inst{7-5} = 0b010;
17912let Inst{31-21} = 0b10000000000;
17913}
17914def S2_asl_i_p_acc : HInst<
17915(outs DoubleRegs:$Rxx32),
17916(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17917"$Rxx32 += asl($Rss32,#$Ii)",
17918tc_f675fee8, TypeS_2op>, Enc_70fb07 {
17919let Inst{7-5} = 0b110;
17920let Inst{31-21} = 0b10000010000;
17921let prefersSlot3 = 1;
17922let Constraints = "$Rxx32 = $Rxx32in";
17923}
17924def S2_asl_i_p_and : HInst<
17925(outs DoubleRegs:$Rxx32),
17926(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17927"$Rxx32 &= asl($Rss32,#$Ii)",
17928tc_f429765c, TypeS_2op>, Enc_70fb07 {
17929let Inst{7-5} = 0b010;
17930let Inst{31-21} = 0b10000010010;
17931let prefersSlot3 = 1;
17932let Constraints = "$Rxx32 = $Rxx32in";
17933}
17934def S2_asl_i_p_nac : HInst<
17935(outs DoubleRegs:$Rxx32),
17936(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17937"$Rxx32 -= asl($Rss32,#$Ii)",
17938tc_f675fee8, TypeS_2op>, Enc_70fb07 {
17939let Inst{7-5} = 0b010;
17940let Inst{31-21} = 0b10000010000;
17941let prefersSlot3 = 1;
17942let Constraints = "$Rxx32 = $Rxx32in";
17943}
17944def S2_asl_i_p_or : HInst<
17945(outs DoubleRegs:$Rxx32),
17946(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17947"$Rxx32 |= asl($Rss32,#$Ii)",
17948tc_f429765c, TypeS_2op>, Enc_70fb07 {
17949let Inst{7-5} = 0b110;
17950let Inst{31-21} = 0b10000010010;
17951let prefersSlot3 = 1;
17952let Constraints = "$Rxx32 = $Rxx32in";
17953}
17954def S2_asl_i_p_xacc : HInst<
17955(outs DoubleRegs:$Rxx32),
17956(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
17957"$Rxx32 ^= asl($Rss32,#$Ii)",
17958tc_f429765c, TypeS_2op>, Enc_70fb07 {
17959let Inst{7-5} = 0b010;
17960let Inst{31-21} = 0b10000010100;
17961let prefersSlot3 = 1;
17962let Constraints = "$Rxx32 = $Rxx32in";
17963}
17964def S2_asl_i_r : HInst<
17965(outs IntRegs:$Rd32),
17966(ins IntRegs:$Rs32, u5_0Imm:$Ii),
17967"$Rd32 = asl($Rs32,#$Ii)",
17968tc_946df596, TypeS_2op>, Enc_a05677 {
17969let Inst{7-5} = 0b010;
17970let Inst{13-13} = 0b0;
17971let Inst{31-21} = 0b10001100000;
17972let hasNewValue = 1;
17973let opNewValue = 0;
17974}
17975def S2_asl_i_r_acc : HInst<
17976(outs IntRegs:$Rx32),
17977(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17978"$Rx32 += asl($Rs32,#$Ii)",
17979tc_f675fee8, TypeS_2op>, Enc_28a2dc {
17980let Inst{7-5} = 0b110;
17981let Inst{13-13} = 0b0;
17982let Inst{31-21} = 0b10001110000;
17983let hasNewValue = 1;
17984let opNewValue = 0;
17985let prefersSlot3 = 1;
17986let Constraints = "$Rx32 = $Rx32in";
17987}
17988def S2_asl_i_r_and : HInst<
17989(outs IntRegs:$Rx32),
17990(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
17991"$Rx32 &= asl($Rs32,#$Ii)",
17992tc_f429765c, TypeS_2op>, Enc_28a2dc {
17993let Inst{7-5} = 0b010;
17994let Inst{13-13} = 0b0;
17995let Inst{31-21} = 0b10001110010;
17996let hasNewValue = 1;
17997let opNewValue = 0;
17998let prefersSlot3 = 1;
17999let Constraints = "$Rx32 = $Rx32in";
18000}
18001def S2_asl_i_r_nac : HInst<
18002(outs IntRegs:$Rx32),
18003(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18004"$Rx32 -= asl($Rs32,#$Ii)",
18005tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18006let Inst{7-5} = 0b010;
18007let Inst{13-13} = 0b0;
18008let Inst{31-21} = 0b10001110000;
18009let hasNewValue = 1;
18010let opNewValue = 0;
18011let prefersSlot3 = 1;
18012let Constraints = "$Rx32 = $Rx32in";
18013}
18014def S2_asl_i_r_or : HInst<
18015(outs IntRegs:$Rx32),
18016(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18017"$Rx32 |= asl($Rs32,#$Ii)",
18018tc_f429765c, TypeS_2op>, Enc_28a2dc {
18019let Inst{7-5} = 0b110;
18020let Inst{13-13} = 0b0;
18021let Inst{31-21} = 0b10001110010;
18022let hasNewValue = 1;
18023let opNewValue = 0;
18024let prefersSlot3 = 1;
18025let Constraints = "$Rx32 = $Rx32in";
18026}
18027def S2_asl_i_r_sat : HInst<
18028(outs IntRegs:$Rd32),
18029(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18030"$Rd32 = asl($Rs32,#$Ii):sat",
18031tc_779080bf, TypeS_2op>, Enc_a05677 {
18032let Inst{7-5} = 0b010;
18033let Inst{13-13} = 0b0;
18034let Inst{31-21} = 0b10001100010;
18035let hasNewValue = 1;
18036let opNewValue = 0;
18037let prefersSlot3 = 1;
18038let Defs = [USR_OVF];
18039}
18040def S2_asl_i_r_xacc : HInst<
18041(outs IntRegs:$Rx32),
18042(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18043"$Rx32 ^= asl($Rs32,#$Ii)",
18044tc_f429765c, TypeS_2op>, Enc_28a2dc {
18045let Inst{7-5} = 0b010;
18046let Inst{13-13} = 0b0;
18047let Inst{31-21} = 0b10001110100;
18048let hasNewValue = 1;
18049let opNewValue = 0;
18050let prefersSlot3 = 1;
18051let Constraints = "$Rx32 = $Rx32in";
18052}
18053def S2_asl_i_vh : HInst<
18054(outs DoubleRegs:$Rdd32),
18055(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18056"$Rdd32 = vaslh($Rss32,#$Ii)",
18057tc_946df596, TypeS_2op>, Enc_12b6e9 {
18058let Inst{7-5} = 0b010;
18059let Inst{13-12} = 0b00;
18060let Inst{31-21} = 0b10000000100;
18061}
18062def S2_asl_i_vw : HInst<
18063(outs DoubleRegs:$Rdd32),
18064(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18065"$Rdd32 = vaslw($Rss32,#$Ii)",
18066tc_946df596, TypeS_2op>, Enc_7e5a82 {
18067let Inst{7-5} = 0b010;
18068let Inst{13-13} = 0b0;
18069let Inst{31-21} = 0b10000000010;
18070}
18071def S2_asl_r_p : HInst<
18072(outs DoubleRegs:$Rdd32),
18073(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18074"$Rdd32 = asl($Rss32,$Rt32)",
18075tc_946df596, TypeS_3op>, Enc_927852 {
18076let Inst{7-5} = 0b100;
18077let Inst{13-13} = 0b0;
18078let Inst{31-21} = 0b11000011100;
18079}
18080def S2_asl_r_p_acc : HInst<
18081(outs DoubleRegs:$Rxx32),
18082(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18083"$Rxx32 += asl($Rss32,$Rt32)",
18084tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18085let Inst{7-5} = 0b100;
18086let Inst{13-13} = 0b0;
18087let Inst{31-21} = 0b11001011110;
18088let prefersSlot3 = 1;
18089let Constraints = "$Rxx32 = $Rxx32in";
18090}
18091def S2_asl_r_p_and : HInst<
18092(outs DoubleRegs:$Rxx32),
18093(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18094"$Rxx32 &= asl($Rss32,$Rt32)",
18095tc_f429765c, TypeS_3op>, Enc_1aa186 {
18096let Inst{7-5} = 0b100;
18097let Inst{13-13} = 0b0;
18098let Inst{31-21} = 0b11001011010;
18099let prefersSlot3 = 1;
18100let Constraints = "$Rxx32 = $Rxx32in";
18101}
18102def S2_asl_r_p_nac : HInst<
18103(outs DoubleRegs:$Rxx32),
18104(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18105"$Rxx32 -= asl($Rss32,$Rt32)",
18106tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18107let Inst{7-5} = 0b100;
18108let Inst{13-13} = 0b0;
18109let Inst{31-21} = 0b11001011100;
18110let prefersSlot3 = 1;
18111let Constraints = "$Rxx32 = $Rxx32in";
18112}
18113def S2_asl_r_p_or : HInst<
18114(outs DoubleRegs:$Rxx32),
18115(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18116"$Rxx32 |= asl($Rss32,$Rt32)",
18117tc_f429765c, TypeS_3op>, Enc_1aa186 {
18118let Inst{7-5} = 0b100;
18119let Inst{13-13} = 0b0;
18120let Inst{31-21} = 0b11001011000;
18121let prefersSlot3 = 1;
18122let Constraints = "$Rxx32 = $Rxx32in";
18123}
18124def S2_asl_r_p_xor : HInst<
18125(outs DoubleRegs:$Rxx32),
18126(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18127"$Rxx32 ^= asl($Rss32,$Rt32)",
18128tc_f429765c, TypeS_3op>, Enc_1aa186 {
18129let Inst{7-5} = 0b100;
18130let Inst{13-13} = 0b0;
18131let Inst{31-21} = 0b11001011011;
18132let prefersSlot3 = 1;
18133let Constraints = "$Rxx32 = $Rxx32in";
18134}
18135def S2_asl_r_r : HInst<
18136(outs IntRegs:$Rd32),
18137(ins IntRegs:$Rs32, IntRegs:$Rt32),
18138"$Rd32 = asl($Rs32,$Rt32)",
18139tc_946df596, TypeS_3op>, Enc_5ab2be {
18140let Inst{7-5} = 0b100;
18141let Inst{13-13} = 0b0;
18142let Inst{31-21} = 0b11000110010;
18143let hasNewValue = 1;
18144let opNewValue = 0;
18145}
18146def S2_asl_r_r_acc : HInst<
18147(outs IntRegs:$Rx32),
18148(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18149"$Rx32 += asl($Rs32,$Rt32)",
18150tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18151let Inst{7-5} = 0b100;
18152let Inst{13-13} = 0b0;
18153let Inst{31-21} = 0b11001100110;
18154let hasNewValue = 1;
18155let opNewValue = 0;
18156let prefersSlot3 = 1;
18157let Constraints = "$Rx32 = $Rx32in";
18158}
18159def S2_asl_r_r_and : HInst<
18160(outs IntRegs:$Rx32),
18161(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18162"$Rx32 &= asl($Rs32,$Rt32)",
18163tc_f429765c, TypeS_3op>, Enc_2ae154 {
18164let Inst{7-5} = 0b100;
18165let Inst{13-13} = 0b0;
18166let Inst{31-21} = 0b11001100010;
18167let hasNewValue = 1;
18168let opNewValue = 0;
18169let prefersSlot3 = 1;
18170let Constraints = "$Rx32 = $Rx32in";
18171}
18172def S2_asl_r_r_nac : HInst<
18173(outs IntRegs:$Rx32),
18174(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18175"$Rx32 -= asl($Rs32,$Rt32)",
18176tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18177let Inst{7-5} = 0b100;
18178let Inst{13-13} = 0b0;
18179let Inst{31-21} = 0b11001100100;
18180let hasNewValue = 1;
18181let opNewValue = 0;
18182let prefersSlot3 = 1;
18183let Constraints = "$Rx32 = $Rx32in";
18184}
18185def S2_asl_r_r_or : HInst<
18186(outs IntRegs:$Rx32),
18187(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18188"$Rx32 |= asl($Rs32,$Rt32)",
18189tc_f429765c, TypeS_3op>, Enc_2ae154 {
18190let Inst{7-5} = 0b100;
18191let Inst{13-13} = 0b0;
18192let Inst{31-21} = 0b11001100000;
18193let hasNewValue = 1;
18194let opNewValue = 0;
18195let prefersSlot3 = 1;
18196let Constraints = "$Rx32 = $Rx32in";
18197}
18198def S2_asl_r_r_sat : HInst<
18199(outs IntRegs:$Rd32),
18200(ins IntRegs:$Rs32, IntRegs:$Rt32),
18201"$Rd32 = asl($Rs32,$Rt32):sat",
18202tc_779080bf, TypeS_3op>, Enc_5ab2be {
18203let Inst{7-5} = 0b100;
18204let Inst{13-13} = 0b0;
18205let Inst{31-21} = 0b11000110000;
18206let hasNewValue = 1;
18207let opNewValue = 0;
18208let prefersSlot3 = 1;
18209let Defs = [USR_OVF];
18210}
18211def S2_asl_r_vh : HInst<
18212(outs DoubleRegs:$Rdd32),
18213(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18214"$Rdd32 = vaslh($Rss32,$Rt32)",
18215tc_946df596, TypeS_3op>, Enc_927852 {
18216let Inst{7-5} = 0b100;
18217let Inst{13-13} = 0b0;
18218let Inst{31-21} = 0b11000011010;
18219}
18220def S2_asl_r_vw : HInst<
18221(outs DoubleRegs:$Rdd32),
18222(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18223"$Rdd32 = vaslw($Rss32,$Rt32)",
18224tc_946df596, TypeS_3op>, Enc_927852 {
18225let Inst{7-5} = 0b100;
18226let Inst{13-13} = 0b0;
18227let Inst{31-21} = 0b11000011000;
18228}
18229def S2_asr_i_p : HInst<
18230(outs DoubleRegs:$Rdd32),
18231(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18232"$Rdd32 = asr($Rss32,#$Ii)",
18233tc_946df596, TypeS_2op>, Enc_5eac98 {
18234let Inst{7-5} = 0b000;
18235let Inst{31-21} = 0b10000000000;
18236}
18237def S2_asr_i_p_acc : HInst<
18238(outs DoubleRegs:$Rxx32),
18239(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18240"$Rxx32 += asr($Rss32,#$Ii)",
18241tc_f675fee8, TypeS_2op>, Enc_70fb07 {
18242let Inst{7-5} = 0b100;
18243let Inst{31-21} = 0b10000010000;
18244let prefersSlot3 = 1;
18245let Constraints = "$Rxx32 = $Rxx32in";
18246}
18247def S2_asr_i_p_and : HInst<
18248(outs DoubleRegs:$Rxx32),
18249(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18250"$Rxx32 &= asr($Rss32,#$Ii)",
18251tc_f429765c, TypeS_2op>, Enc_70fb07 {
18252let Inst{7-5} = 0b000;
18253let Inst{31-21} = 0b10000010010;
18254let prefersSlot3 = 1;
18255let Constraints = "$Rxx32 = $Rxx32in";
18256}
18257def S2_asr_i_p_nac : HInst<
18258(outs DoubleRegs:$Rxx32),
18259(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18260"$Rxx32 -= asr($Rss32,#$Ii)",
18261tc_f675fee8, TypeS_2op>, Enc_70fb07 {
18262let Inst{7-5} = 0b000;
18263let Inst{31-21} = 0b10000010000;
18264let prefersSlot3 = 1;
18265let Constraints = "$Rxx32 = $Rxx32in";
18266}
18267def S2_asr_i_p_or : HInst<
18268(outs DoubleRegs:$Rxx32),
18269(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
18270"$Rxx32 |= asr($Rss32,#$Ii)",
18271tc_f429765c, TypeS_2op>, Enc_70fb07 {
18272let Inst{7-5} = 0b100;
18273let Inst{31-21} = 0b10000010010;
18274let prefersSlot3 = 1;
18275let Constraints = "$Rxx32 = $Rxx32in";
18276}
18277def S2_asr_i_p_rnd : HInst<
18278(outs DoubleRegs:$Rdd32),
18279(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18280"$Rdd32 = asr($Rss32,#$Ii):rnd",
18281tc_002cb246, TypeS_2op>, Enc_5eac98 {
18282let Inst{7-5} = 0b111;
18283let Inst{31-21} = 0b10000000110;
18284let prefersSlot3 = 1;
18285}
18286def S2_asr_i_p_rnd_goodsyntax : HInst<
18287(outs DoubleRegs:$Rdd32),
18288(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
18289"$Rdd32 = asrrnd($Rss32,#$Ii)",
18290tc_002cb246, TypeS_2op> {
18291let isPseudo = 1;
18292}
18293def S2_asr_i_r : HInst<
18294(outs IntRegs:$Rd32),
18295(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18296"$Rd32 = asr($Rs32,#$Ii)",
18297tc_946df596, TypeS_2op>, Enc_a05677 {
18298let Inst{7-5} = 0b000;
18299let Inst{13-13} = 0b0;
18300let Inst{31-21} = 0b10001100000;
18301let hasNewValue = 1;
18302let opNewValue = 0;
18303}
18304def S2_asr_i_r_acc : HInst<
18305(outs IntRegs:$Rx32),
18306(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18307"$Rx32 += asr($Rs32,#$Ii)",
18308tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18309let Inst{7-5} = 0b100;
18310let Inst{13-13} = 0b0;
18311let Inst{31-21} = 0b10001110000;
18312let hasNewValue = 1;
18313let opNewValue = 0;
18314let prefersSlot3 = 1;
18315let Constraints = "$Rx32 = $Rx32in";
18316}
18317def S2_asr_i_r_and : HInst<
18318(outs IntRegs:$Rx32),
18319(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18320"$Rx32 &= asr($Rs32,#$Ii)",
18321tc_f429765c, TypeS_2op>, Enc_28a2dc {
18322let Inst{7-5} = 0b000;
18323let Inst{13-13} = 0b0;
18324let Inst{31-21} = 0b10001110010;
18325let hasNewValue = 1;
18326let opNewValue = 0;
18327let prefersSlot3 = 1;
18328let Constraints = "$Rx32 = $Rx32in";
18329}
18330def S2_asr_i_r_nac : HInst<
18331(outs IntRegs:$Rx32),
18332(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18333"$Rx32 -= asr($Rs32,#$Ii)",
18334tc_f675fee8, TypeS_2op>, Enc_28a2dc {
18335let Inst{7-5} = 0b000;
18336let Inst{13-13} = 0b0;
18337let Inst{31-21} = 0b10001110000;
18338let hasNewValue = 1;
18339let opNewValue = 0;
18340let prefersSlot3 = 1;
18341let Constraints = "$Rx32 = $Rx32in";
18342}
18343def S2_asr_i_r_or : HInst<
18344(outs IntRegs:$Rx32),
18345(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
18346"$Rx32 |= asr($Rs32,#$Ii)",
18347tc_f429765c, TypeS_2op>, Enc_28a2dc {
18348let Inst{7-5} = 0b100;
18349let Inst{13-13} = 0b0;
18350let Inst{31-21} = 0b10001110010;
18351let hasNewValue = 1;
18352let opNewValue = 0;
18353let prefersSlot3 = 1;
18354let Constraints = "$Rx32 = $Rx32in";
18355}
18356def S2_asr_i_r_rnd : HInst<
18357(outs IntRegs:$Rd32),
18358(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18359"$Rd32 = asr($Rs32,#$Ii):rnd",
18360tc_002cb246, TypeS_2op>, Enc_a05677 {
18361let Inst{7-5} = 0b000;
18362let Inst{13-13} = 0b0;
18363let Inst{31-21} = 0b10001100010;
18364let hasNewValue = 1;
18365let opNewValue = 0;
18366let prefersSlot3 = 1;
18367}
18368def S2_asr_i_r_rnd_goodsyntax : HInst<
18369(outs IntRegs:$Rd32),
18370(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18371"$Rd32 = asrrnd($Rs32,#$Ii)",
18372tc_002cb246, TypeS_2op> {
18373let hasNewValue = 1;
18374let opNewValue = 0;
18375let isPseudo = 1;
18376}
18377def S2_asr_i_svw_trun : HInst<
18378(outs IntRegs:$Rd32),
18379(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18380"$Rd32 = vasrw($Rss32,#$Ii)",
18381tc_4414d8b1, TypeS_2op>, Enc_8dec2e {
18382let Inst{7-5} = 0b010;
18383let Inst{13-13} = 0b0;
18384let Inst{31-21} = 0b10001000110;
18385let hasNewValue = 1;
18386let opNewValue = 0;
18387let prefersSlot3 = 1;
18388}
18389def S2_asr_i_vh : HInst<
18390(outs DoubleRegs:$Rdd32),
18391(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
18392"$Rdd32 = vasrh($Rss32,#$Ii)",
18393tc_946df596, TypeS_2op>, Enc_12b6e9 {
18394let Inst{7-5} = 0b000;
18395let Inst{13-12} = 0b00;
18396let Inst{31-21} = 0b10000000100;
18397}
18398def S2_asr_i_vw : HInst<
18399(outs DoubleRegs:$Rdd32),
18400(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
18401"$Rdd32 = vasrw($Rss32,#$Ii)",
18402tc_946df596, TypeS_2op>, Enc_7e5a82 {
18403let Inst{7-5} = 0b000;
18404let Inst{13-13} = 0b0;
18405let Inst{31-21} = 0b10000000010;
18406}
18407def S2_asr_r_p : HInst<
18408(outs DoubleRegs:$Rdd32),
18409(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18410"$Rdd32 = asr($Rss32,$Rt32)",
18411tc_946df596, TypeS_3op>, Enc_927852 {
18412let Inst{7-5} = 0b000;
18413let Inst{13-13} = 0b0;
18414let Inst{31-21} = 0b11000011100;
18415}
18416def S2_asr_r_p_acc : HInst<
18417(outs DoubleRegs:$Rxx32),
18418(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18419"$Rxx32 += asr($Rss32,$Rt32)",
18420tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18421let Inst{7-5} = 0b000;
18422let Inst{13-13} = 0b0;
18423let Inst{31-21} = 0b11001011110;
18424let prefersSlot3 = 1;
18425let Constraints = "$Rxx32 = $Rxx32in";
18426}
18427def S2_asr_r_p_and : HInst<
18428(outs DoubleRegs:$Rxx32),
18429(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18430"$Rxx32 &= asr($Rss32,$Rt32)",
18431tc_f429765c, TypeS_3op>, Enc_1aa186 {
18432let Inst{7-5} = 0b000;
18433let Inst{13-13} = 0b0;
18434let Inst{31-21} = 0b11001011010;
18435let prefersSlot3 = 1;
18436let Constraints = "$Rxx32 = $Rxx32in";
18437}
18438def S2_asr_r_p_nac : HInst<
18439(outs DoubleRegs:$Rxx32),
18440(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18441"$Rxx32 -= asr($Rss32,$Rt32)",
18442tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18443let Inst{7-5} = 0b000;
18444let Inst{13-13} = 0b0;
18445let Inst{31-21} = 0b11001011100;
18446let prefersSlot3 = 1;
18447let Constraints = "$Rxx32 = $Rxx32in";
18448}
18449def S2_asr_r_p_or : HInst<
18450(outs DoubleRegs:$Rxx32),
18451(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18452"$Rxx32 |= asr($Rss32,$Rt32)",
18453tc_f429765c, TypeS_3op>, Enc_1aa186 {
18454let Inst{7-5} = 0b000;
18455let Inst{13-13} = 0b0;
18456let Inst{31-21} = 0b11001011000;
18457let prefersSlot3 = 1;
18458let Constraints = "$Rxx32 = $Rxx32in";
18459}
18460def S2_asr_r_p_xor : HInst<
18461(outs DoubleRegs:$Rxx32),
18462(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18463"$Rxx32 ^= asr($Rss32,$Rt32)",
18464tc_f429765c, TypeS_3op>, Enc_1aa186 {
18465let Inst{7-5} = 0b000;
18466let Inst{13-13} = 0b0;
18467let Inst{31-21} = 0b11001011011;
18468let prefersSlot3 = 1;
18469let Constraints = "$Rxx32 = $Rxx32in";
18470}
18471def S2_asr_r_r : HInst<
18472(outs IntRegs:$Rd32),
18473(ins IntRegs:$Rs32, IntRegs:$Rt32),
18474"$Rd32 = asr($Rs32,$Rt32)",
18475tc_946df596, TypeS_3op>, Enc_5ab2be {
18476let Inst{7-5} = 0b000;
18477let Inst{13-13} = 0b0;
18478let Inst{31-21} = 0b11000110010;
18479let hasNewValue = 1;
18480let opNewValue = 0;
18481}
18482def S2_asr_r_r_acc : HInst<
18483(outs IntRegs:$Rx32),
18484(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18485"$Rx32 += asr($Rs32,$Rt32)",
18486tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18487let Inst{7-5} = 0b000;
18488let Inst{13-13} = 0b0;
18489let Inst{31-21} = 0b11001100110;
18490let hasNewValue = 1;
18491let opNewValue = 0;
18492let prefersSlot3 = 1;
18493let Constraints = "$Rx32 = $Rx32in";
18494}
18495def S2_asr_r_r_and : HInst<
18496(outs IntRegs:$Rx32),
18497(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18498"$Rx32 &= asr($Rs32,$Rt32)",
18499tc_f429765c, TypeS_3op>, Enc_2ae154 {
18500let Inst{7-5} = 0b000;
18501let Inst{13-13} = 0b0;
18502let Inst{31-21} = 0b11001100010;
18503let hasNewValue = 1;
18504let opNewValue = 0;
18505let prefersSlot3 = 1;
18506let Constraints = "$Rx32 = $Rx32in";
18507}
18508def S2_asr_r_r_nac : HInst<
18509(outs IntRegs:$Rx32),
18510(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18511"$Rx32 -= asr($Rs32,$Rt32)",
18512tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18513let Inst{7-5} = 0b000;
18514let Inst{13-13} = 0b0;
18515let Inst{31-21} = 0b11001100100;
18516let hasNewValue = 1;
18517let opNewValue = 0;
18518let prefersSlot3 = 1;
18519let Constraints = "$Rx32 = $Rx32in";
18520}
18521def S2_asr_r_r_or : HInst<
18522(outs IntRegs:$Rx32),
18523(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18524"$Rx32 |= asr($Rs32,$Rt32)",
18525tc_f429765c, TypeS_3op>, Enc_2ae154 {
18526let Inst{7-5} = 0b000;
18527let Inst{13-13} = 0b0;
18528let Inst{31-21} = 0b11001100000;
18529let hasNewValue = 1;
18530let opNewValue = 0;
18531let prefersSlot3 = 1;
18532let Constraints = "$Rx32 = $Rx32in";
18533}
18534def S2_asr_r_r_sat : HInst<
18535(outs IntRegs:$Rd32),
18536(ins IntRegs:$Rs32, IntRegs:$Rt32),
18537"$Rd32 = asr($Rs32,$Rt32):sat",
18538tc_779080bf, TypeS_3op>, Enc_5ab2be {
18539let Inst{7-5} = 0b000;
18540let Inst{13-13} = 0b0;
18541let Inst{31-21} = 0b11000110000;
18542let hasNewValue = 1;
18543let opNewValue = 0;
18544let prefersSlot3 = 1;
18545let Defs = [USR_OVF];
18546}
18547def S2_asr_r_svw_trun : HInst<
18548(outs IntRegs:$Rd32),
18549(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18550"$Rd32 = vasrw($Rss32,$Rt32)",
18551tc_4414d8b1, TypeS_3op>, Enc_3d5b28 {
18552let Inst{7-5} = 0b010;
18553let Inst{13-13} = 0b0;
18554let Inst{31-21} = 0b11000101000;
18555let hasNewValue = 1;
18556let opNewValue = 0;
18557let prefersSlot3 = 1;
18558}
18559def S2_asr_r_vh : HInst<
18560(outs DoubleRegs:$Rdd32),
18561(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18562"$Rdd32 = vasrh($Rss32,$Rt32)",
18563tc_946df596, TypeS_3op>, Enc_927852 {
18564let Inst{7-5} = 0b000;
18565let Inst{13-13} = 0b0;
18566let Inst{31-21} = 0b11000011010;
18567}
18568def S2_asr_r_vw : HInst<
18569(outs DoubleRegs:$Rdd32),
18570(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18571"$Rdd32 = vasrw($Rss32,$Rt32)",
18572tc_946df596, TypeS_3op>, Enc_927852 {
18573let Inst{7-5} = 0b000;
18574let Inst{13-13} = 0b0;
18575let Inst{31-21} = 0b11000011000;
18576}
18577def S2_brev : HInst<
18578(outs IntRegs:$Rd32),
18579(ins IntRegs:$Rs32),
18580"$Rd32 = brev($Rs32)",
18581tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18582let Inst{13-5} = 0b000000110;
18583let Inst{31-21} = 0b10001100010;
18584let hasNewValue = 1;
18585let opNewValue = 0;
18586let prefersSlot3 = 1;
18587}
18588def S2_brevp : HInst<
18589(outs DoubleRegs:$Rdd32),
18590(ins DoubleRegs:$Rss32),
18591"$Rdd32 = brev($Rss32)",
18592tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18593let Inst{13-5} = 0b000000110;
18594let Inst{31-21} = 0b10000000110;
18595let prefersSlot3 = 1;
18596}
18597def S2_cabacdecbin : HInst<
18598(outs DoubleRegs:$Rdd32),
18599(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18600"$Rdd32 = decbin($Rss32,$Rtt32)",
18601tc_76851da1, TypeS_3op>, Enc_a56825 {
18602let Inst{7-5} = 0b110;
18603let Inst{13-13} = 0b0;
18604let Inst{31-21} = 0b11000001110;
18605let isPredicateLate = 1;
18606let prefersSlot3 = 1;
18607let Defs = [P0];
18608}
18609def S2_cl0 : HInst<
18610(outs IntRegs:$Rd32),
18611(ins IntRegs:$Rs32),
18612"$Rd32 = cl0($Rs32)",
18613tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18614let Inst{13-5} = 0b000000101;
18615let Inst{31-21} = 0b10001100000;
18616let hasNewValue = 1;
18617let opNewValue = 0;
18618let prefersSlot3 = 1;
18619}
18620def S2_cl0p : HInst<
18621(outs IntRegs:$Rd32),
18622(ins DoubleRegs:$Rss32),
18623"$Rd32 = cl0($Rss32)",
18624tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18625let Inst{13-5} = 0b000000010;
18626let Inst{31-21} = 0b10001000010;
18627let hasNewValue = 1;
18628let opNewValue = 0;
18629let prefersSlot3 = 1;
18630}
18631def S2_cl1 : HInst<
18632(outs IntRegs:$Rd32),
18633(ins IntRegs:$Rs32),
18634"$Rd32 = cl1($Rs32)",
18635tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18636let Inst{13-5} = 0b000000110;
18637let Inst{31-21} = 0b10001100000;
18638let hasNewValue = 1;
18639let opNewValue = 0;
18640let prefersSlot3 = 1;
18641}
18642def S2_cl1p : HInst<
18643(outs IntRegs:$Rd32),
18644(ins DoubleRegs:$Rss32),
18645"$Rd32 = cl1($Rss32)",
18646tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18647let Inst{13-5} = 0b000000100;
18648let Inst{31-21} = 0b10001000010;
18649let hasNewValue = 1;
18650let opNewValue = 0;
18651let prefersSlot3 = 1;
18652}
18653def S2_clb : HInst<
18654(outs IntRegs:$Rd32),
18655(ins IntRegs:$Rs32),
18656"$Rd32 = clb($Rs32)",
18657tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18658let Inst{13-5} = 0b000000100;
18659let Inst{31-21} = 0b10001100000;
18660let hasNewValue = 1;
18661let opNewValue = 0;
18662let prefersSlot3 = 1;
18663}
18664def S2_clbnorm : HInst<
18665(outs IntRegs:$Rd32),
18666(ins IntRegs:$Rs32),
18667"$Rd32 = normamt($Rs32)",
18668tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18669let Inst{13-5} = 0b000000111;
18670let Inst{31-21} = 0b10001100000;
18671let hasNewValue = 1;
18672let opNewValue = 0;
18673let prefersSlot3 = 1;
18674}
18675def S2_clbp : HInst<
18676(outs IntRegs:$Rd32),
18677(ins DoubleRegs:$Rss32),
18678"$Rd32 = clb($Rss32)",
18679tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18680let Inst{13-5} = 0b000000000;
18681let Inst{31-21} = 0b10001000010;
18682let hasNewValue = 1;
18683let opNewValue = 0;
18684let prefersSlot3 = 1;
18685}
18686def S2_clrbit_i : HInst<
18687(outs IntRegs:$Rd32),
18688(ins IntRegs:$Rs32, u5_0Imm:$Ii),
18689"$Rd32 = clrbit($Rs32,#$Ii)",
18690tc_946df596, TypeS_2op>, Enc_a05677 {
18691let Inst{7-5} = 0b001;
18692let Inst{13-13} = 0b0;
18693let Inst{31-21} = 0b10001100110;
18694let hasNewValue = 1;
18695let opNewValue = 0;
18696}
18697def S2_clrbit_r : HInst<
18698(outs IntRegs:$Rd32),
18699(ins IntRegs:$Rs32, IntRegs:$Rt32),
18700"$Rd32 = clrbit($Rs32,$Rt32)",
18701tc_946df596, TypeS_3op>, Enc_5ab2be {
18702let Inst{7-5} = 0b010;
18703let Inst{13-13} = 0b0;
18704let Inst{31-21} = 0b11000110100;
18705let hasNewValue = 1;
18706let opNewValue = 0;
18707}
18708def S2_ct0 : HInst<
18709(outs IntRegs:$Rd32),
18710(ins IntRegs:$Rs32),
18711"$Rd32 = ct0($Rs32)",
18712tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18713let Inst{13-5} = 0b000000100;
18714let Inst{31-21} = 0b10001100010;
18715let hasNewValue = 1;
18716let opNewValue = 0;
18717let prefersSlot3 = 1;
18718}
18719def S2_ct0p : HInst<
18720(outs IntRegs:$Rd32),
18721(ins DoubleRegs:$Rss32),
18722"$Rd32 = ct0($Rss32)",
18723tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18724let Inst{13-5} = 0b000000010;
18725let Inst{31-21} = 0b10001000111;
18726let hasNewValue = 1;
18727let opNewValue = 0;
18728let prefersSlot3 = 1;
18729}
18730def S2_ct1 : HInst<
18731(outs IntRegs:$Rd32),
18732(ins IntRegs:$Rs32),
18733"$Rd32 = ct1($Rs32)",
18734tc_14b5c689, TypeS_2op>, Enc_5e2823 {
18735let Inst{13-5} = 0b000000101;
18736let Inst{31-21} = 0b10001100010;
18737let hasNewValue = 1;
18738let opNewValue = 0;
18739let prefersSlot3 = 1;
18740}
18741def S2_ct1p : HInst<
18742(outs IntRegs:$Rd32),
18743(ins DoubleRegs:$Rss32),
18744"$Rd32 = ct1($Rss32)",
18745tc_14b5c689, TypeS_2op>, Enc_90cd8b {
18746let Inst{13-5} = 0b000000100;
18747let Inst{31-21} = 0b10001000111;
18748let hasNewValue = 1;
18749let opNewValue = 0;
18750let prefersSlot3 = 1;
18751}
18752def S2_deinterleave : HInst<
18753(outs DoubleRegs:$Rdd32),
18754(ins DoubleRegs:$Rss32),
18755"$Rdd32 = deinterleave($Rss32)",
18756tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18757let Inst{13-5} = 0b000000100;
18758let Inst{31-21} = 0b10000000110;
18759let prefersSlot3 = 1;
18760}
18761def S2_extractu : HInst<
18762(outs IntRegs:$Rd32),
18763(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18764"$Rd32 = extractu($Rs32,#$Ii,#$II)",
18765tc_f675fee8, TypeS_2op>, Enc_b388cf {
18766let Inst{13-13} = 0b0;
18767let Inst{31-23} = 0b100011010;
18768let hasNewValue = 1;
18769let opNewValue = 0;
18770let prefersSlot3 = 1;
18771}
18772def S2_extractu_rp : HInst<
18773(outs IntRegs:$Rd32),
18774(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
18775"$Rd32 = extractu($Rs32,$Rtt32)",
18776tc_002cb246, TypeS_3op>, Enc_e07374 {
18777let Inst{7-5} = 0b000;
18778let Inst{13-13} = 0b0;
18779let Inst{31-21} = 0b11001001000;
18780let hasNewValue = 1;
18781let opNewValue = 0;
18782let prefersSlot3 = 1;
18783}
18784def S2_extractup : HInst<
18785(outs DoubleRegs:$Rdd32),
18786(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18787"$Rdd32 = extractu($Rss32,#$Ii,#$II)",
18788tc_f675fee8, TypeS_2op>, Enc_b84c4c {
18789let Inst{31-24} = 0b10000001;
18790let prefersSlot3 = 1;
18791}
18792def S2_extractup_rp : HInst<
18793(outs DoubleRegs:$Rdd32),
18794(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18795"$Rdd32 = extractu($Rss32,$Rtt32)",
18796tc_002cb246, TypeS_3op>, Enc_a56825 {
18797let Inst{7-5} = 0b000;
18798let Inst{13-13} = 0b0;
18799let Inst{31-21} = 0b11000001000;
18800let prefersSlot3 = 1;
18801}
18802def S2_insert : HInst<
18803(outs IntRegs:$Rx32),
18804(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
18805"$Rx32 = insert($Rs32,#$Ii,#$II)",
18806tc_bfec0f01, TypeS_2op>, Enc_a1e29d {
18807let Inst{13-13} = 0b0;
18808let Inst{31-23} = 0b100011110;
18809let hasNewValue = 1;
18810let opNewValue = 0;
18811let prefersSlot3 = 1;
18812let Constraints = "$Rx32 = $Rx32in";
18813}
18814def S2_insert_rp : HInst<
18815(outs IntRegs:$Rx32),
18816(ins IntRegs:$Rx32in, IntRegs:$Rs32, DoubleRegs:$Rtt32),
18817"$Rx32 = insert($Rs32,$Rtt32)",
18818tc_f429765c, TypeS_3op>, Enc_179b35 {
18819let Inst{7-5} = 0b000;
18820let Inst{13-13} = 0b0;
18821let Inst{31-21} = 0b11001000000;
18822let hasNewValue = 1;
18823let opNewValue = 0;
18824let prefersSlot3 = 1;
18825let Constraints = "$Rx32 = $Rx32in";
18826}
18827def S2_insertp : HInst<
18828(outs DoubleRegs:$Rxx32),
18829(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
18830"$Rxx32 = insert($Rss32,#$Ii,#$II)",
18831tc_bfec0f01, TypeS_2op>, Enc_143a3c {
18832let Inst{31-24} = 0b10000011;
18833let prefersSlot3 = 1;
18834let Constraints = "$Rxx32 = $Rxx32in";
18835}
18836def S2_insertp_rp : HInst<
18837(outs DoubleRegs:$Rxx32),
18838(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18839"$Rxx32 = insert($Rss32,$Rtt32)",
18840tc_f429765c, TypeS_3op>, Enc_88c16c {
18841let Inst{7-5} = 0b000;
18842let Inst{13-13} = 0b0;
18843let Inst{31-21} = 0b11001010000;
18844let prefersSlot3 = 1;
18845let Constraints = "$Rxx32 = $Rxx32in";
18846}
18847def S2_interleave : HInst<
18848(outs DoubleRegs:$Rdd32),
18849(ins DoubleRegs:$Rss32),
18850"$Rdd32 = interleave($Rss32)",
18851tc_14b5c689, TypeS_2op>, Enc_b9c5fb {
18852let Inst{13-5} = 0b000000101;
18853let Inst{31-21} = 0b10000000110;
18854let prefersSlot3 = 1;
18855}
18856def S2_lfsp : HInst<
18857(outs DoubleRegs:$Rdd32),
18858(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
18859"$Rdd32 = lfs($Rss32,$Rtt32)",
18860tc_002cb246, TypeS_3op>, Enc_a56825 {
18861let Inst{7-5} = 0b110;
18862let Inst{13-13} = 0b0;
18863let Inst{31-21} = 0b11000001100;
18864let prefersSlot3 = 1;
18865}
18866def S2_lsl_r_p : HInst<
18867(outs DoubleRegs:$Rdd32),
18868(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18869"$Rdd32 = lsl($Rss32,$Rt32)",
18870tc_946df596, TypeS_3op>, Enc_927852 {
18871let Inst{7-5} = 0b110;
18872let Inst{13-13} = 0b0;
18873let Inst{31-21} = 0b11000011100;
18874}
18875def S2_lsl_r_p_acc : HInst<
18876(outs DoubleRegs:$Rxx32),
18877(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18878"$Rxx32 += lsl($Rss32,$Rt32)",
18879tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18880let Inst{7-5} = 0b110;
18881let Inst{13-13} = 0b0;
18882let Inst{31-21} = 0b11001011110;
18883let prefersSlot3 = 1;
18884let Constraints = "$Rxx32 = $Rxx32in";
18885}
18886def S2_lsl_r_p_and : HInst<
18887(outs DoubleRegs:$Rxx32),
18888(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18889"$Rxx32 &= lsl($Rss32,$Rt32)",
18890tc_f429765c, TypeS_3op>, Enc_1aa186 {
18891let Inst{7-5} = 0b110;
18892let Inst{13-13} = 0b0;
18893let Inst{31-21} = 0b11001011010;
18894let prefersSlot3 = 1;
18895let Constraints = "$Rxx32 = $Rxx32in";
18896}
18897def S2_lsl_r_p_nac : HInst<
18898(outs DoubleRegs:$Rxx32),
18899(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18900"$Rxx32 -= lsl($Rss32,$Rt32)",
18901tc_f675fee8, TypeS_3op>, Enc_1aa186 {
18902let Inst{7-5} = 0b110;
18903let Inst{13-13} = 0b0;
18904let Inst{31-21} = 0b11001011100;
18905let prefersSlot3 = 1;
18906let Constraints = "$Rxx32 = $Rxx32in";
18907}
18908def S2_lsl_r_p_or : HInst<
18909(outs DoubleRegs:$Rxx32),
18910(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18911"$Rxx32 |= lsl($Rss32,$Rt32)",
18912tc_f429765c, TypeS_3op>, Enc_1aa186 {
18913let Inst{7-5} = 0b110;
18914let Inst{13-13} = 0b0;
18915let Inst{31-21} = 0b11001011000;
18916let prefersSlot3 = 1;
18917let Constraints = "$Rxx32 = $Rxx32in";
18918}
18919def S2_lsl_r_p_xor : HInst<
18920(outs DoubleRegs:$Rxx32),
18921(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
18922"$Rxx32 ^= lsl($Rss32,$Rt32)",
18923tc_f429765c, TypeS_3op>, Enc_1aa186 {
18924let Inst{7-5} = 0b110;
18925let Inst{13-13} = 0b0;
18926let Inst{31-21} = 0b11001011011;
18927let prefersSlot3 = 1;
18928let Constraints = "$Rxx32 = $Rxx32in";
18929}
18930def S2_lsl_r_r : HInst<
18931(outs IntRegs:$Rd32),
18932(ins IntRegs:$Rs32, IntRegs:$Rt32),
18933"$Rd32 = lsl($Rs32,$Rt32)",
18934tc_946df596, TypeS_3op>, Enc_5ab2be {
18935let Inst{7-5} = 0b110;
18936let Inst{13-13} = 0b0;
18937let Inst{31-21} = 0b11000110010;
18938let hasNewValue = 1;
18939let opNewValue = 0;
18940}
18941def S2_lsl_r_r_acc : HInst<
18942(outs IntRegs:$Rx32),
18943(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18944"$Rx32 += lsl($Rs32,$Rt32)",
18945tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18946let Inst{7-5} = 0b110;
18947let Inst{13-13} = 0b0;
18948let Inst{31-21} = 0b11001100110;
18949let hasNewValue = 1;
18950let opNewValue = 0;
18951let prefersSlot3 = 1;
18952let Constraints = "$Rx32 = $Rx32in";
18953}
18954def S2_lsl_r_r_and : HInst<
18955(outs IntRegs:$Rx32),
18956(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18957"$Rx32 &= lsl($Rs32,$Rt32)",
18958tc_f429765c, TypeS_3op>, Enc_2ae154 {
18959let Inst{7-5} = 0b110;
18960let Inst{13-13} = 0b0;
18961let Inst{31-21} = 0b11001100010;
18962let hasNewValue = 1;
18963let opNewValue = 0;
18964let prefersSlot3 = 1;
18965let Constraints = "$Rx32 = $Rx32in";
18966}
18967def S2_lsl_r_r_nac : HInst<
18968(outs IntRegs:$Rx32),
18969(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18970"$Rx32 -= lsl($Rs32,$Rt32)",
18971tc_f675fee8, TypeS_3op>, Enc_2ae154 {
18972let Inst{7-5} = 0b110;
18973let Inst{13-13} = 0b0;
18974let Inst{31-21} = 0b11001100100;
18975let hasNewValue = 1;
18976let opNewValue = 0;
18977let prefersSlot3 = 1;
18978let Constraints = "$Rx32 = $Rx32in";
18979}
18980def S2_lsl_r_r_or : HInst<
18981(outs IntRegs:$Rx32),
18982(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
18983"$Rx32 |= lsl($Rs32,$Rt32)",
18984tc_f429765c, TypeS_3op>, Enc_2ae154 {
18985let Inst{7-5} = 0b110;
18986let Inst{13-13} = 0b0;
18987let Inst{31-21} = 0b11001100000;
18988let hasNewValue = 1;
18989let opNewValue = 0;
18990let prefersSlot3 = 1;
18991let Constraints = "$Rx32 = $Rx32in";
18992}
18993def S2_lsl_r_vh : HInst<
18994(outs DoubleRegs:$Rdd32),
18995(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
18996"$Rdd32 = vlslh($Rss32,$Rt32)",
18997tc_946df596, TypeS_3op>, Enc_927852 {
18998let Inst{7-5} = 0b110;
18999let Inst{13-13} = 0b0;
19000let Inst{31-21} = 0b11000011010;
19001}
19002def S2_lsl_r_vw : HInst<
19003(outs DoubleRegs:$Rdd32),
19004(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19005"$Rdd32 = vlslw($Rss32,$Rt32)",
19006tc_946df596, TypeS_3op>, Enc_927852 {
19007let Inst{7-5} = 0b110;
19008let Inst{13-13} = 0b0;
19009let Inst{31-21} = 0b11000011000;
19010}
19011def S2_lsr_i_p : HInst<
19012(outs DoubleRegs:$Rdd32),
19013(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
19014"$Rdd32 = lsr($Rss32,#$Ii)",
19015tc_946df596, TypeS_2op>, Enc_5eac98 {
19016let Inst{7-5} = 0b001;
19017let Inst{31-21} = 0b10000000000;
19018}
19019def S2_lsr_i_p_acc : HInst<
19020(outs DoubleRegs:$Rxx32),
19021(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19022"$Rxx32 += lsr($Rss32,#$Ii)",
19023tc_f675fee8, TypeS_2op>, Enc_70fb07 {
19024let Inst{7-5} = 0b101;
19025let Inst{31-21} = 0b10000010000;
19026let prefersSlot3 = 1;
19027let Constraints = "$Rxx32 = $Rxx32in";
19028}
19029def S2_lsr_i_p_and : HInst<
19030(outs DoubleRegs:$Rxx32),
19031(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19032"$Rxx32 &= lsr($Rss32,#$Ii)",
19033tc_f429765c, TypeS_2op>, Enc_70fb07 {
19034let Inst{7-5} = 0b001;
19035let Inst{31-21} = 0b10000010010;
19036let prefersSlot3 = 1;
19037let Constraints = "$Rxx32 = $Rxx32in";
19038}
19039def S2_lsr_i_p_nac : HInst<
19040(outs DoubleRegs:$Rxx32),
19041(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19042"$Rxx32 -= lsr($Rss32,#$Ii)",
19043tc_f675fee8, TypeS_2op>, Enc_70fb07 {
19044let Inst{7-5} = 0b001;
19045let Inst{31-21} = 0b10000010000;
19046let prefersSlot3 = 1;
19047let Constraints = "$Rxx32 = $Rxx32in";
19048}
19049def S2_lsr_i_p_or : HInst<
19050(outs DoubleRegs:$Rxx32),
19051(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19052"$Rxx32 |= lsr($Rss32,#$Ii)",
19053tc_f429765c, TypeS_2op>, Enc_70fb07 {
19054let Inst{7-5} = 0b101;
19055let Inst{31-21} = 0b10000010010;
19056let prefersSlot3 = 1;
19057let Constraints = "$Rxx32 = $Rxx32in";
19058}
19059def S2_lsr_i_p_xacc : HInst<
19060(outs DoubleRegs:$Rxx32),
19061(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
19062"$Rxx32 ^= lsr($Rss32,#$Ii)",
19063tc_f429765c, TypeS_2op>, Enc_70fb07 {
19064let Inst{7-5} = 0b001;
19065let Inst{31-21} = 0b10000010100;
19066let prefersSlot3 = 1;
19067let Constraints = "$Rxx32 = $Rxx32in";
19068}
19069def S2_lsr_i_r : HInst<
19070(outs IntRegs:$Rd32),
19071(ins IntRegs:$Rs32, u5_0Imm:$Ii),
19072"$Rd32 = lsr($Rs32,#$Ii)",
19073tc_946df596, TypeS_2op>, Enc_a05677 {
19074let Inst{7-5} = 0b001;
19075let Inst{13-13} = 0b0;
19076let Inst{31-21} = 0b10001100000;
19077let hasNewValue = 1;
19078let opNewValue = 0;
19079}
19080def S2_lsr_i_r_acc : HInst<
19081(outs IntRegs:$Rx32),
19082(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19083"$Rx32 += lsr($Rs32,#$Ii)",
19084tc_f675fee8, TypeS_2op>, Enc_28a2dc {
19085let Inst{7-5} = 0b101;
19086let Inst{13-13} = 0b0;
19087let Inst{31-21} = 0b10001110000;
19088let hasNewValue = 1;
19089let opNewValue = 0;
19090let prefersSlot3 = 1;
19091let Constraints = "$Rx32 = $Rx32in";
19092}
19093def S2_lsr_i_r_and : HInst<
19094(outs IntRegs:$Rx32),
19095(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19096"$Rx32 &= lsr($Rs32,#$Ii)",
19097tc_f429765c, TypeS_2op>, Enc_28a2dc {
19098let Inst{7-5} = 0b001;
19099let Inst{13-13} = 0b0;
19100let Inst{31-21} = 0b10001110010;
19101let hasNewValue = 1;
19102let opNewValue = 0;
19103let prefersSlot3 = 1;
19104let Constraints = "$Rx32 = $Rx32in";
19105}
19106def S2_lsr_i_r_nac : HInst<
19107(outs IntRegs:$Rx32),
19108(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19109"$Rx32 -= lsr($Rs32,#$Ii)",
19110tc_f675fee8, TypeS_2op>, Enc_28a2dc {
19111let Inst{7-5} = 0b001;
19112let Inst{13-13} = 0b0;
19113let Inst{31-21} = 0b10001110000;
19114let hasNewValue = 1;
19115let opNewValue = 0;
19116let prefersSlot3 = 1;
19117let Constraints = "$Rx32 = $Rx32in";
19118}
19119def S2_lsr_i_r_or : HInst<
19120(outs IntRegs:$Rx32),
19121(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19122"$Rx32 |= lsr($Rs32,#$Ii)",
19123tc_f429765c, TypeS_2op>, Enc_28a2dc {
19124let Inst{7-5} = 0b101;
19125let Inst{13-13} = 0b0;
19126let Inst{31-21} = 0b10001110010;
19127let hasNewValue = 1;
19128let opNewValue = 0;
19129let prefersSlot3 = 1;
19130let Constraints = "$Rx32 = $Rx32in";
19131}
19132def S2_lsr_i_r_xacc : HInst<
19133(outs IntRegs:$Rx32),
19134(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
19135"$Rx32 ^= lsr($Rs32,#$Ii)",
19136tc_f429765c, TypeS_2op>, Enc_28a2dc {
19137let Inst{7-5} = 0b001;
19138let Inst{13-13} = 0b0;
19139let Inst{31-21} = 0b10001110100;
19140let hasNewValue = 1;
19141let opNewValue = 0;
19142let prefersSlot3 = 1;
19143let Constraints = "$Rx32 = $Rx32in";
19144}
19145def S2_lsr_i_vh : HInst<
19146(outs DoubleRegs:$Rdd32),
19147(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
19148"$Rdd32 = vlsrh($Rss32,#$Ii)",
19149tc_946df596, TypeS_2op>, Enc_12b6e9 {
19150let Inst{7-5} = 0b001;
19151let Inst{13-12} = 0b00;
19152let Inst{31-21} = 0b10000000100;
19153}
19154def S2_lsr_i_vw : HInst<
19155(outs DoubleRegs:$Rdd32),
19156(ins DoubleRegs:$Rss32, u5_0Imm:$Ii),
19157"$Rdd32 = vlsrw($Rss32,#$Ii)",
19158tc_946df596, TypeS_2op>, Enc_7e5a82 {
19159let Inst{7-5} = 0b001;
19160let Inst{13-13} = 0b0;
19161let Inst{31-21} = 0b10000000010;
19162}
19163def S2_lsr_r_p : HInst<
19164(outs DoubleRegs:$Rdd32),
19165(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19166"$Rdd32 = lsr($Rss32,$Rt32)",
19167tc_946df596, TypeS_3op>, Enc_927852 {
19168let Inst{7-5} = 0b010;
19169let Inst{13-13} = 0b0;
19170let Inst{31-21} = 0b11000011100;
19171}
19172def S2_lsr_r_p_acc : HInst<
19173(outs DoubleRegs:$Rxx32),
19174(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19175"$Rxx32 += lsr($Rss32,$Rt32)",
19176tc_f675fee8, TypeS_3op>, Enc_1aa186 {
19177let Inst{7-5} = 0b010;
19178let Inst{13-13} = 0b0;
19179let Inst{31-21} = 0b11001011110;
19180let prefersSlot3 = 1;
19181let Constraints = "$Rxx32 = $Rxx32in";
19182}
19183def S2_lsr_r_p_and : HInst<
19184(outs DoubleRegs:$Rxx32),
19185(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19186"$Rxx32 &= lsr($Rss32,$Rt32)",
19187tc_f429765c, TypeS_3op>, Enc_1aa186 {
19188let Inst{7-5} = 0b010;
19189let Inst{13-13} = 0b0;
19190let Inst{31-21} = 0b11001011010;
19191let prefersSlot3 = 1;
19192let Constraints = "$Rxx32 = $Rxx32in";
19193}
19194def S2_lsr_r_p_nac : HInst<
19195(outs DoubleRegs:$Rxx32),
19196(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19197"$Rxx32 -= lsr($Rss32,$Rt32)",
19198tc_f675fee8, TypeS_3op>, Enc_1aa186 {
19199let Inst{7-5} = 0b010;
19200let Inst{13-13} = 0b0;
19201let Inst{31-21} = 0b11001011100;
19202let prefersSlot3 = 1;
19203let Constraints = "$Rxx32 = $Rxx32in";
19204}
19205def S2_lsr_r_p_or : HInst<
19206(outs DoubleRegs:$Rxx32),
19207(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19208"$Rxx32 |= lsr($Rss32,$Rt32)",
19209tc_f429765c, TypeS_3op>, Enc_1aa186 {
19210let Inst{7-5} = 0b010;
19211let Inst{13-13} = 0b0;
19212let Inst{31-21} = 0b11001011000;
19213let prefersSlot3 = 1;
19214let Constraints = "$Rxx32 = $Rxx32in";
19215}
19216def S2_lsr_r_p_xor : HInst<
19217(outs DoubleRegs:$Rxx32),
19218(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
19219"$Rxx32 ^= lsr($Rss32,$Rt32)",
19220tc_f429765c, TypeS_3op>, Enc_1aa186 {
19221let Inst{7-5} = 0b010;
19222let Inst{13-13} = 0b0;
19223let Inst{31-21} = 0b11001011011;
19224let prefersSlot3 = 1;
19225let Constraints = "$Rxx32 = $Rxx32in";
19226}
19227def S2_lsr_r_r : HInst<
19228(outs IntRegs:$Rd32),
19229(ins IntRegs:$Rs32, IntRegs:$Rt32),
19230"$Rd32 = lsr($Rs32,$Rt32)",
19231tc_946df596, TypeS_3op>, Enc_5ab2be {
19232let Inst{7-5} = 0b010;
19233let Inst{13-13} = 0b0;
19234let Inst{31-21} = 0b11000110010;
19235let hasNewValue = 1;
19236let opNewValue = 0;
19237}
19238def S2_lsr_r_r_acc : HInst<
19239(outs IntRegs:$Rx32),
19240(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19241"$Rx32 += lsr($Rs32,$Rt32)",
19242tc_f675fee8, TypeS_3op>, Enc_2ae154 {
19243let Inst{7-5} = 0b010;
19244let Inst{13-13} = 0b0;
19245let Inst{31-21} = 0b11001100110;
19246let hasNewValue = 1;
19247let opNewValue = 0;
19248let prefersSlot3 = 1;
19249let Constraints = "$Rx32 = $Rx32in";
19250}
19251def S2_lsr_r_r_and : HInst<
19252(outs IntRegs:$Rx32),
19253(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19254"$Rx32 &= lsr($Rs32,$Rt32)",
19255tc_f429765c, TypeS_3op>, Enc_2ae154 {
19256let Inst{7-5} = 0b010;
19257let Inst{13-13} = 0b0;
19258let Inst{31-21} = 0b11001100010;
19259let hasNewValue = 1;
19260let opNewValue = 0;
19261let prefersSlot3 = 1;
19262let Constraints = "$Rx32 = $Rx32in";
19263}
19264def S2_lsr_r_r_nac : HInst<
19265(outs IntRegs:$Rx32),
19266(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19267"$Rx32 -= lsr($Rs32,$Rt32)",
19268tc_f675fee8, TypeS_3op>, Enc_2ae154 {
19269let Inst{7-5} = 0b010;
19270let Inst{13-13} = 0b0;
19271let Inst{31-21} = 0b11001100100;
19272let hasNewValue = 1;
19273let opNewValue = 0;
19274let prefersSlot3 = 1;
19275let Constraints = "$Rx32 = $Rx32in";
19276}
19277def S2_lsr_r_r_or : HInst<
19278(outs IntRegs:$Rx32),
19279(ins IntRegs:$Rx32in, IntRegs:$Rs32, IntRegs:$Rt32),
19280"$Rx32 |= lsr($Rs32,$Rt32)",
19281tc_f429765c, TypeS_3op>, Enc_2ae154 {
19282let Inst{7-5} = 0b010;
19283let Inst{13-13} = 0b0;
19284let Inst{31-21} = 0b11001100000;
19285let hasNewValue = 1;
19286let opNewValue = 0;
19287let prefersSlot3 = 1;
19288let Constraints = "$Rx32 = $Rx32in";
19289}
19290def S2_lsr_r_vh : HInst<
19291(outs DoubleRegs:$Rdd32),
19292(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19293"$Rdd32 = vlsrh($Rss32,$Rt32)",
19294tc_946df596, TypeS_3op>, Enc_927852 {
19295let Inst{7-5} = 0b010;
19296let Inst{13-13} = 0b0;
19297let Inst{31-21} = 0b11000011010;
19298}
19299def S2_lsr_r_vw : HInst<
19300(outs DoubleRegs:$Rdd32),
19301(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
19302"$Rdd32 = vlsrw($Rss32,$Rt32)",
19303tc_946df596, TypeS_3op>, Enc_927852 {
19304let Inst{7-5} = 0b010;
19305let Inst{13-13} = 0b0;
19306let Inst{31-21} = 0b11000011000;
19307}
19308def S2_mask : HInst<
19309(outs IntRegs:$Rd32),
19310(ins u5_0Imm:$Ii, u5_0Imm:$II),
19311"$Rd32 = mask(#$Ii,#$II)",
19312tc_9461ff31, TypeS_2op>, Enc_c85e2a, Requires<[HasV66]> {
19313let Inst{13-13} = 0b1;
19314let Inst{20-16} = 0b00000;
19315let Inst{31-23} = 0b100011010;
19316let hasNewValue = 1;
19317let opNewValue = 0;
19318let prefersSlot3 = 1;
19319}
19320def S2_packhl : HInst<
19321(outs DoubleRegs:$Rdd32),
19322(ins IntRegs:$Rs32, IntRegs:$Rt32),
19323"$Rdd32 = packhl($Rs32,$Rt32)",
19324tc_5a2711e5, TypeALU32_3op>, Enc_be32a5 {
19325let Inst{7-5} = 0b000;
19326let Inst{13-13} = 0b0;
19327let Inst{31-21} = 0b11110101100;
19328let InputType = "reg";
19329}
19330def S2_parityp : HInst<
19331(outs IntRegs:$Rd32),
19332(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
19333"$Rd32 = parity($Rss32,$Rtt32)",
19334tc_002cb246, TypeALU64>, Enc_d2216a {
19335let Inst{7-5} = 0b000;
19336let Inst{13-13} = 0b0;
19337let Inst{31-21} = 0b11010000000;
19338let hasNewValue = 1;
19339let opNewValue = 0;
19340let prefersSlot3 = 1;
19341}
19342def S2_pstorerbf_io : HInst<
19343(outs),
19344(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19345"if (!$Pv4) memb($Rs32+#$Ii) = $Rt32",
19346tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19347let Inst{2-2} = 0b0;
19348let Inst{31-21} = 0b01000100000;
19349let isPredicated = 1;
19350let isPredicatedFalse = 1;
19351let addrMode = BaseImmOffset;
19352let accessSize = ByteAccess;
19353let mayStore = 1;
19354let CextOpcode = "S2_storerb";
19355let InputType = "imm";
19356let BaseOpcode = "S2_storerb_io";
19357let isNVStorable = 1;
19358let isExtendable = 1;
19359let opExtendable = 2;
19360let isExtentSigned = 0;
19361let opExtentBits = 6;
19362let opExtentAlign = 0;
19363}
19364def S2_pstorerbf_pi : HInst<
19365(outs IntRegs:$Rx32),
19366(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19367"if (!$Pv4) memb($Rx32++#$Ii) = $Rt32",
19368tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel {
19369let Inst{2-2} = 0b1;
19370let Inst{7-7} = 0b0;
19371let Inst{13-13} = 0b1;
19372let Inst{31-21} = 0b10101011000;
19373let isPredicated = 1;
19374let isPredicatedFalse = 1;
19375let addrMode = PostInc;
19376let accessSize = ByteAccess;
19377let mayStore = 1;
19378let BaseOpcode = "S2_storerb_pi";
19379let isNVStorable = 1;
19380let Constraints = "$Rx32 = $Rx32in";
19381}
19382def S2_pstorerbf_zomap : HInst<
19383(outs),
19384(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19385"if (!$Pv4) memb($Rs32) = $Rt32",
19386tc_f8e23f0b, TypeMAPPING> {
19387let isPseudo = 1;
19388let isCodeGenOnly = 1;
19389}
19390def S2_pstorerbfnew_pi : HInst<
19391(outs IntRegs:$Rx32),
19392(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19393"if (!$Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19394tc_53559e35, TypeST>, Enc_cc449f, AddrModeRel {
19395let Inst{2-2} = 0b1;
19396let Inst{7-7} = 0b1;
19397let Inst{13-13} = 0b1;
19398let Inst{31-21} = 0b10101011000;
19399let isPredicated = 1;
19400let isPredicatedFalse = 1;
19401let addrMode = PostInc;
19402let accessSize = ByteAccess;
19403let isPredicatedNew = 1;
19404let mayStore = 1;
19405let BaseOpcode = "S2_storerb_pi";
19406let isNVStorable = 1;
19407let Constraints = "$Rx32 = $Rx32in";
19408}
19409def S2_pstorerbnewf_io : HInst<
19410(outs),
19411(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19412"if (!$Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19413tc_8fb7ab1b, TypeV2LDST>, Enc_585242, AddrModeRel {
19414let Inst{2-2} = 0b0;
19415let Inst{12-11} = 0b00;
19416let Inst{31-21} = 0b01000100101;
19417let isPredicated = 1;
19418let isPredicatedFalse = 1;
19419let addrMode = BaseImmOffset;
19420let accessSize = ByteAccess;
19421let isNVStore = 1;
19422let isNewValue = 1;
19423let isRestrictNoSlot1Store = 1;
19424let mayStore = 1;
19425let CextOpcode = "S2_storerb";
19426let InputType = "imm";
19427let BaseOpcode = "S2_storerb_io";
19428let isExtendable = 1;
19429let opExtendable = 2;
19430let isExtentSigned = 0;
19431let opExtentBits = 6;
19432let opExtentAlign = 0;
19433let opNewValue = 3;
19434}
19435def S2_pstorerbnewf_pi : HInst<
19436(outs IntRegs:$Rx32),
19437(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19438"if (!$Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19439tc_838b34ea, TypeST>, Enc_52a5dd, AddrModeRel {
19440let Inst{2-2} = 0b1;
19441let Inst{7-7} = 0b0;
19442let Inst{13-11} = 0b100;
19443let Inst{31-21} = 0b10101011101;
19444let isPredicated = 1;
19445let isPredicatedFalse = 1;
19446let addrMode = PostInc;
19447let accessSize = ByteAccess;
19448let isNVStore = 1;
19449let isNewValue = 1;
19450let isRestrictNoSlot1Store = 1;
19451let mayStore = 1;
19452let CextOpcode = "S2_storerb";
19453let BaseOpcode = "S2_storerb_pi";
19454let opNewValue = 4;
19455let Constraints = "$Rx32 = $Rx32in";
19456}
19457def S2_pstorerbnewf_zomap : HInst<
19458(outs),
19459(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19460"if (!$Pv4) memb($Rs32) = $Nt8.new",
19461tc_8fb7ab1b, TypeMAPPING> {
19462let isPseudo = 1;
19463let isCodeGenOnly = 1;
19464let opNewValue = 2;
19465}
19466def S2_pstorerbnewfnew_pi : HInst<
19467(outs IntRegs:$Rx32),
19468(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19469"if (!$Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19470tc_d65dbf51, TypeST>, Enc_52a5dd, AddrModeRel {
19471let Inst{2-2} = 0b1;
19472let Inst{7-7} = 0b1;
19473let Inst{13-11} = 0b100;
19474let Inst{31-21} = 0b10101011101;
19475let isPredicated = 1;
19476let isPredicatedFalse = 1;
19477let addrMode = PostInc;
19478let accessSize = ByteAccess;
19479let isNVStore = 1;
19480let isPredicatedNew = 1;
19481let isNewValue = 1;
19482let isRestrictNoSlot1Store = 1;
19483let mayStore = 1;
19484let CextOpcode = "S2_storerb";
19485let BaseOpcode = "S2_storerb_pi";
19486let opNewValue = 4;
19487let Constraints = "$Rx32 = $Rx32in";
19488}
19489def S2_pstorerbnewt_io : HInst<
19490(outs),
19491(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
19492"if ($Pv4) memb($Rs32+#$Ii) = $Nt8.new",
19493tc_8fb7ab1b, TypeV2LDST>, Enc_585242, AddrModeRel {
19494let Inst{2-2} = 0b0;
19495let Inst{12-11} = 0b00;
19496let Inst{31-21} = 0b01000000101;
19497let isPredicated = 1;
19498let addrMode = BaseImmOffset;
19499let accessSize = ByteAccess;
19500let isNVStore = 1;
19501let isNewValue = 1;
19502let isRestrictNoSlot1Store = 1;
19503let mayStore = 1;
19504let CextOpcode = "S2_storerb";
19505let InputType = "imm";
19506let BaseOpcode = "S2_storerb_io";
19507let isExtendable = 1;
19508let opExtendable = 2;
19509let isExtentSigned = 0;
19510let opExtentBits = 6;
19511let opExtentAlign = 0;
19512let opNewValue = 3;
19513}
19514def S2_pstorerbnewt_pi : HInst<
19515(outs IntRegs:$Rx32),
19516(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19517"if ($Pv4) memb($Rx32++#$Ii) = $Nt8.new",
19518tc_838b34ea, TypeST>, Enc_52a5dd, AddrModeRel {
19519let Inst{2-2} = 0b0;
19520let Inst{7-7} = 0b0;
19521let Inst{13-11} = 0b100;
19522let Inst{31-21} = 0b10101011101;
19523let isPredicated = 1;
19524let addrMode = PostInc;
19525let accessSize = ByteAccess;
19526let isNVStore = 1;
19527let isNewValue = 1;
19528let isRestrictNoSlot1Store = 1;
19529let mayStore = 1;
19530let CextOpcode = "S2_storerb";
19531let BaseOpcode = "S2_storerb_pi";
19532let opNewValue = 4;
19533let Constraints = "$Rx32 = $Rx32in";
19534}
19535def S2_pstorerbnewt_zomap : HInst<
19536(outs),
19537(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
19538"if ($Pv4) memb($Rs32) = $Nt8.new",
19539tc_8fb7ab1b, TypeMAPPING> {
19540let isPseudo = 1;
19541let isCodeGenOnly = 1;
19542let opNewValue = 2;
19543}
19544def S2_pstorerbnewtnew_pi : HInst<
19545(outs IntRegs:$Rx32),
19546(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
19547"if ($Pv4.new) memb($Rx32++#$Ii) = $Nt8.new",
19548tc_d65dbf51, TypeST>, Enc_52a5dd, AddrModeRel {
19549let Inst{2-2} = 0b0;
19550let Inst{7-7} = 0b1;
19551let Inst{13-11} = 0b100;
19552let Inst{31-21} = 0b10101011101;
19553let isPredicated = 1;
19554let addrMode = PostInc;
19555let accessSize = ByteAccess;
19556let isNVStore = 1;
19557let isPredicatedNew = 1;
19558let isNewValue = 1;
19559let isRestrictNoSlot1Store = 1;
19560let mayStore = 1;
19561let CextOpcode = "S2_storerb";
19562let BaseOpcode = "S2_storerb_pi";
19563let opNewValue = 4;
19564let Constraints = "$Rx32 = $Rx32in";
19565}
19566def S2_pstorerbt_io : HInst<
19567(outs),
19568(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
19569"if ($Pv4) memb($Rs32+#$Ii) = $Rt32",
19570tc_f8e23f0b, TypeV2LDST>, Enc_da8d43, AddrModeRel {
19571let Inst{2-2} = 0b0;
19572let Inst{31-21} = 0b01000000000;
19573let isPredicated = 1;
19574let addrMode = BaseImmOffset;
19575let accessSize = ByteAccess;
19576let mayStore = 1;
19577let CextOpcode = "S2_storerb";
19578let InputType = "imm";
19579let BaseOpcode = "S2_storerb_io";
19580let isNVStorable = 1;
19581let isExtendable = 1;
19582let opExtendable = 2;
19583let isExtentSigned = 0;
19584let opExtentBits = 6;
19585let opExtentAlign = 0;
19586}
19587def S2_pstorerbt_pi : HInst<
19588(outs IntRegs:$Rx32),
19589(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19590"if ($Pv4) memb($Rx32++#$Ii) = $Rt32",
19591tc_24b66c99, TypeST>, Enc_cc449f, AddrModeRel {
19592let Inst{2-2} = 0b0;
19593let Inst{7-7} = 0b0;
19594let Inst{13-13} = 0b1;
19595let Inst{31-21} = 0b10101011000;
19596let isPredicated = 1;
19597let addrMode = PostInc;
19598let accessSize = ByteAccess;
19599let mayStore = 1;
19600let BaseOpcode = "S2_storerb_pi";
19601let isNVStorable = 1;
19602let Constraints = "$Rx32 = $Rx32in";
19603}
19604def S2_pstorerbt_zomap : HInst<
19605(outs),
19606(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19607"if ($Pv4) memb($Rs32) = $Rt32",
19608tc_f8e23f0b, TypeMAPPING> {
19609let isPseudo = 1;
19610let isCodeGenOnly = 1;
19611}
19612def S2_pstorerbtnew_pi : HInst<
19613(outs IntRegs:$Rx32),
19614(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
19615"if ($Pv4.new) memb($Rx32++#$Ii) = $Rt32",
19616tc_53559e35, TypeST>, Enc_cc449f, AddrModeRel {
19617let Inst{2-2} = 0b0;
19618let Inst{7-7} = 0b1;
19619let Inst{13-13} = 0b1;
19620let Inst{31-21} = 0b10101011000;
19621let isPredicated = 1;
19622let addrMode = PostInc;
19623let accessSize = ByteAccess;
19624let isPredicatedNew = 1;
19625let mayStore = 1;
19626let BaseOpcode = "S2_storerb_pi";
19627let isNVStorable = 1;
19628let Constraints = "$Rx32 = $Rx32in";
19629}
19630def S2_pstorerdf_io : HInst<
19631(outs),
19632(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19633"if (!$Pv4) memd($Rs32+#$Ii) = $Rtt32",
19634tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19635let Inst{2-2} = 0b0;
19636let Inst{31-21} = 0b01000100110;
19637let isPredicated = 1;
19638let isPredicatedFalse = 1;
19639let addrMode = BaseImmOffset;
19640let accessSize = DoubleWordAccess;
19641let mayStore = 1;
19642let CextOpcode = "S2_storerd";
19643let InputType = "imm";
19644let BaseOpcode = "S2_storerd_io";
19645let isExtendable = 1;
19646let opExtendable = 2;
19647let isExtentSigned = 0;
19648let opExtentBits = 9;
19649let opExtentAlign = 3;
19650}
19651def S2_pstorerdf_pi : HInst<
19652(outs IntRegs:$Rx32),
19653(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19654"if (!$Pv4) memd($Rx32++#$Ii) = $Rtt32",
19655tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel {
19656let Inst{2-2} = 0b1;
19657let Inst{7-7} = 0b0;
19658let Inst{13-13} = 0b1;
19659let Inst{31-21} = 0b10101011110;
19660let isPredicated = 1;
19661let isPredicatedFalse = 1;
19662let addrMode = PostInc;
19663let accessSize = DoubleWordAccess;
19664let mayStore = 1;
19665let CextOpcode = "S2_storerd";
19666let BaseOpcode = "S2_storerd_pi";
19667let Constraints = "$Rx32 = $Rx32in";
19668}
19669def S2_pstorerdf_zomap : HInst<
19670(outs),
19671(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19672"if (!$Pv4) memd($Rs32) = $Rtt32",
19673tc_f8e23f0b, TypeMAPPING> {
19674let isPseudo = 1;
19675let isCodeGenOnly = 1;
19676}
19677def S2_pstorerdfnew_pi : HInst<
19678(outs IntRegs:$Rx32),
19679(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19680"if (!$Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19681tc_53559e35, TypeST>, Enc_9a33d5, AddrModeRel {
19682let Inst{2-2} = 0b1;
19683let Inst{7-7} = 0b1;
19684let Inst{13-13} = 0b1;
19685let Inst{31-21} = 0b10101011110;
19686let isPredicated = 1;
19687let isPredicatedFalse = 1;
19688let addrMode = PostInc;
19689let accessSize = DoubleWordAccess;
19690let isPredicatedNew = 1;
19691let mayStore = 1;
19692let CextOpcode = "S2_storerd";
19693let BaseOpcode = "S2_storerd_pi";
19694let Constraints = "$Rx32 = $Rx32in";
19695}
19696def S2_pstorerdt_io : HInst<
19697(outs),
19698(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
19699"if ($Pv4) memd($Rs32+#$Ii) = $Rtt32",
19700tc_f8e23f0b, TypeV2LDST>, Enc_57a33e, AddrModeRel {
19701let Inst{2-2} = 0b0;
19702let Inst{31-21} = 0b01000000110;
19703let isPredicated = 1;
19704let addrMode = BaseImmOffset;
19705let accessSize = DoubleWordAccess;
19706let mayStore = 1;
19707let CextOpcode = "S2_storerd";
19708let InputType = "imm";
19709let BaseOpcode = "S2_storerd_io";
19710let isExtendable = 1;
19711let opExtendable = 2;
19712let isExtentSigned = 0;
19713let opExtentBits = 9;
19714let opExtentAlign = 3;
19715}
19716def S2_pstorerdt_pi : HInst<
19717(outs IntRegs:$Rx32),
19718(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19719"if ($Pv4) memd($Rx32++#$Ii) = $Rtt32",
19720tc_24b66c99, TypeST>, Enc_9a33d5, AddrModeRel {
19721let Inst{2-2} = 0b0;
19722let Inst{7-7} = 0b0;
19723let Inst{13-13} = 0b1;
19724let Inst{31-21} = 0b10101011110;
19725let isPredicated = 1;
19726let addrMode = PostInc;
19727let accessSize = DoubleWordAccess;
19728let mayStore = 1;
19729let CextOpcode = "S2_storerd";
19730let BaseOpcode = "S2_storerd_pi";
19731let Constraints = "$Rx32 = $Rx32in";
19732}
19733def S2_pstorerdt_zomap : HInst<
19734(outs),
19735(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
19736"if ($Pv4) memd($Rs32) = $Rtt32",
19737tc_f8e23f0b, TypeMAPPING> {
19738let isPseudo = 1;
19739let isCodeGenOnly = 1;
19740}
19741def S2_pstorerdtnew_pi : HInst<
19742(outs IntRegs:$Rx32),
19743(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
19744"if ($Pv4.new) memd($Rx32++#$Ii) = $Rtt32",
19745tc_53559e35, TypeST>, Enc_9a33d5, AddrModeRel {
19746let Inst{2-2} = 0b0;
19747let Inst{7-7} = 0b1;
19748let Inst{13-13} = 0b1;
19749let Inst{31-21} = 0b10101011110;
19750let isPredicated = 1;
19751let addrMode = PostInc;
19752let accessSize = DoubleWordAccess;
19753let isPredicatedNew = 1;
19754let mayStore = 1;
19755let CextOpcode = "S2_storerd";
19756let BaseOpcode = "S2_storerd_pi";
19757let Constraints = "$Rx32 = $Rx32in";
19758}
19759def S2_pstorerff_io : HInst<
19760(outs),
19761(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19762"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19763tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19764let Inst{2-2} = 0b0;
19765let Inst{31-21} = 0b01000100011;
19766let isPredicated = 1;
19767let isPredicatedFalse = 1;
19768let addrMode = BaseImmOffset;
19769let accessSize = HalfWordAccess;
19770let mayStore = 1;
19771let CextOpcode = "S2_storerf";
19772let InputType = "imm";
19773let BaseOpcode = "S2_storerf_io";
19774let isExtendable = 1;
19775let opExtendable = 2;
19776let isExtentSigned = 0;
19777let opExtentBits = 7;
19778let opExtentAlign = 1;
19779}
19780def S2_pstorerff_pi : HInst<
19781(outs IntRegs:$Rx32),
19782(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19783"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19784tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19785let Inst{2-2} = 0b1;
19786let Inst{7-7} = 0b0;
19787let Inst{13-13} = 0b1;
19788let Inst{31-21} = 0b10101011011;
19789let isPredicated = 1;
19790let isPredicatedFalse = 1;
19791let addrMode = PostInc;
19792let accessSize = HalfWordAccess;
19793let mayStore = 1;
19794let CextOpcode = "S2_storerf";
19795let BaseOpcode = "S2_storerf_pi";
19796let Constraints = "$Rx32 = $Rx32in";
19797}
19798def S2_pstorerff_zomap : HInst<
19799(outs),
19800(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19801"if (!$Pv4) memh($Rs32) = $Rt32.h",
19802tc_f8e23f0b, TypeMAPPING> {
19803let isPseudo = 1;
19804let isCodeGenOnly = 1;
19805}
19806def S2_pstorerffnew_pi : HInst<
19807(outs IntRegs:$Rx32),
19808(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19809"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19810tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19811let Inst{2-2} = 0b1;
19812let Inst{7-7} = 0b1;
19813let Inst{13-13} = 0b1;
19814let Inst{31-21} = 0b10101011011;
19815let isPredicated = 1;
19816let isPredicatedFalse = 1;
19817let addrMode = PostInc;
19818let accessSize = HalfWordAccess;
19819let isPredicatedNew = 1;
19820let mayStore = 1;
19821let CextOpcode = "S2_storerf";
19822let BaseOpcode = "S2_storerf_pi";
19823let Constraints = "$Rx32 = $Rx32in";
19824}
19825def S2_pstorerft_io : HInst<
19826(outs),
19827(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19828"if ($Pv4) memh($Rs32+#$Ii) = $Rt32.h",
19829tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19830let Inst{2-2} = 0b0;
19831let Inst{31-21} = 0b01000000011;
19832let isPredicated = 1;
19833let addrMode = BaseImmOffset;
19834let accessSize = HalfWordAccess;
19835let mayStore = 1;
19836let CextOpcode = "S2_storerf";
19837let InputType = "imm";
19838let BaseOpcode = "S2_storerf_io";
19839let isExtendable = 1;
19840let opExtendable = 2;
19841let isExtentSigned = 0;
19842let opExtentBits = 7;
19843let opExtentAlign = 1;
19844}
19845def S2_pstorerft_pi : HInst<
19846(outs IntRegs:$Rx32),
19847(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19848"if ($Pv4) memh($Rx32++#$Ii) = $Rt32.h",
19849tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19850let Inst{2-2} = 0b0;
19851let Inst{7-7} = 0b0;
19852let Inst{13-13} = 0b1;
19853let Inst{31-21} = 0b10101011011;
19854let isPredicated = 1;
19855let addrMode = PostInc;
19856let accessSize = HalfWordAccess;
19857let mayStore = 1;
19858let CextOpcode = "S2_storerf";
19859let BaseOpcode = "S2_storerf_pi";
19860let Constraints = "$Rx32 = $Rx32in";
19861}
19862def S2_pstorerft_zomap : HInst<
19863(outs),
19864(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19865"if ($Pv4) memh($Rs32) = $Rt32.h",
19866tc_f8e23f0b, TypeMAPPING> {
19867let isPseudo = 1;
19868let isCodeGenOnly = 1;
19869}
19870def S2_pstorerftnew_pi : HInst<
19871(outs IntRegs:$Rx32),
19872(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19873"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32.h",
19874tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19875let Inst{2-2} = 0b0;
19876let Inst{7-7} = 0b1;
19877let Inst{13-13} = 0b1;
19878let Inst{31-21} = 0b10101011011;
19879let isPredicated = 1;
19880let addrMode = PostInc;
19881let accessSize = HalfWordAccess;
19882let isPredicatedNew = 1;
19883let mayStore = 1;
19884let CextOpcode = "S2_storerf";
19885let BaseOpcode = "S2_storerf_pi";
19886let Constraints = "$Rx32 = $Rx32in";
19887}
19888def S2_pstorerhf_io : HInst<
19889(outs),
19890(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
19891"if (!$Pv4) memh($Rs32+#$Ii) = $Rt32",
19892tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
19893let Inst{2-2} = 0b0;
19894let Inst{31-21} = 0b01000100010;
19895let isPredicated = 1;
19896let isPredicatedFalse = 1;
19897let addrMode = BaseImmOffset;
19898let accessSize = HalfWordAccess;
19899let mayStore = 1;
19900let CextOpcode = "S2_storerh";
19901let InputType = "imm";
19902let BaseOpcode = "S2_storerh_io";
19903let isNVStorable = 1;
19904let isExtendable = 1;
19905let opExtendable = 2;
19906let isExtentSigned = 0;
19907let opExtentBits = 7;
19908let opExtentAlign = 1;
19909}
19910def S2_pstorerhf_pi : HInst<
19911(outs IntRegs:$Rx32),
19912(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19913"if (!$Pv4) memh($Rx32++#$Ii) = $Rt32",
19914tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
19915let Inst{2-2} = 0b1;
19916let Inst{7-7} = 0b0;
19917let Inst{13-13} = 0b1;
19918let Inst{31-21} = 0b10101011010;
19919let isPredicated = 1;
19920let isPredicatedFalse = 1;
19921let addrMode = PostInc;
19922let accessSize = HalfWordAccess;
19923let mayStore = 1;
19924let BaseOpcode = "S2_storerh_pi";
19925let isNVStorable = 1;
19926let Constraints = "$Rx32 = $Rx32in";
19927}
19928def S2_pstorerhf_zomap : HInst<
19929(outs),
19930(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
19931"if (!$Pv4) memh($Rs32) = $Rt32",
19932tc_f8e23f0b, TypeMAPPING> {
19933let isPseudo = 1;
19934let isCodeGenOnly = 1;
19935}
19936def S2_pstorerhfnew_pi : HInst<
19937(outs IntRegs:$Rx32),
19938(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
19939"if (!$Pv4.new) memh($Rx32++#$Ii) = $Rt32",
19940tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
19941let Inst{2-2} = 0b1;
19942let Inst{7-7} = 0b1;
19943let Inst{13-13} = 0b1;
19944let Inst{31-21} = 0b10101011010;
19945let isPredicated = 1;
19946let isPredicatedFalse = 1;
19947let addrMode = PostInc;
19948let accessSize = HalfWordAccess;
19949let isPredicatedNew = 1;
19950let mayStore = 1;
19951let BaseOpcode = "S2_storerh_pi";
19952let isNVStorable = 1;
19953let Constraints = "$Rx32 = $Rx32in";
19954}
19955def S2_pstorerhnewf_io : HInst<
19956(outs),
19957(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
19958"if (!$Pv4) memh($Rs32+#$Ii) = $Nt8.new",
19959tc_8fb7ab1b, TypeV2LDST>, Enc_f44229, AddrModeRel {
19960let Inst{2-2} = 0b0;
19961let Inst{12-11} = 0b01;
19962let Inst{31-21} = 0b01000100101;
19963let isPredicated = 1;
19964let isPredicatedFalse = 1;
19965let addrMode = BaseImmOffset;
19966let accessSize = HalfWordAccess;
19967let isNVStore = 1;
19968let isNewValue = 1;
19969let isRestrictNoSlot1Store = 1;
19970let mayStore = 1;
19971let CextOpcode = "S2_storerh";
19972let InputType = "imm";
19973let BaseOpcode = "S2_storerh_io";
19974let isExtendable = 1;
19975let opExtendable = 2;
19976let isExtentSigned = 0;
19977let opExtentBits = 7;
19978let opExtentAlign = 1;
19979let opNewValue = 3;
19980}
19981def S2_pstorerhnewf_pi : HInst<
19982(outs IntRegs:$Rx32),
19983(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
19984"if (!$Pv4) memh($Rx32++#$Ii) = $Nt8.new",
19985tc_838b34ea, TypeST>, Enc_31aa6a, AddrModeRel {
19986let Inst{2-2} = 0b1;
19987let Inst{7-7} = 0b0;
19988let Inst{13-11} = 0b101;
19989let Inst{31-21} = 0b10101011101;
19990let isPredicated = 1;
19991let isPredicatedFalse = 1;
19992let addrMode = PostInc;
19993let accessSize = HalfWordAccess;
19994let isNVStore = 1;
19995let isNewValue = 1;
19996let isRestrictNoSlot1Store = 1;
19997let mayStore = 1;
19998let CextOpcode = "S2_storerh";
19999let BaseOpcode = "S2_storerh_pi";
20000let opNewValue = 4;
20001let Constraints = "$Rx32 = $Rx32in";
20002}
20003def S2_pstorerhnewf_zomap : HInst<
20004(outs),
20005(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20006"if (!$Pv4) memh($Rs32) = $Nt8.new",
20007tc_8fb7ab1b, TypeMAPPING> {
20008let isPseudo = 1;
20009let isCodeGenOnly = 1;
20010let opNewValue = 2;
20011}
20012def S2_pstorerhnewfnew_pi : HInst<
20013(outs IntRegs:$Rx32),
20014(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20015"if (!$Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20016tc_d65dbf51, TypeST>, Enc_31aa6a, AddrModeRel {
20017let Inst{2-2} = 0b1;
20018let Inst{7-7} = 0b1;
20019let Inst{13-11} = 0b101;
20020let Inst{31-21} = 0b10101011101;
20021let isPredicated = 1;
20022let isPredicatedFalse = 1;
20023let addrMode = PostInc;
20024let accessSize = HalfWordAccess;
20025let isNVStore = 1;
20026let isPredicatedNew = 1;
20027let isNewValue = 1;
20028let isRestrictNoSlot1Store = 1;
20029let mayStore = 1;
20030let CextOpcode = "S2_storerh";
20031let BaseOpcode = "S2_storerh_pi";
20032let opNewValue = 4;
20033let Constraints = "$Rx32 = $Rx32in";
20034}
20035def S2_pstorerhnewt_io : HInst<
20036(outs),
20037(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
20038"if ($Pv4) memh($Rs32+#$Ii) = $Nt8.new",
20039tc_8fb7ab1b, TypeV2LDST>, Enc_f44229, AddrModeRel {
20040let Inst{2-2} = 0b0;
20041let Inst{12-11} = 0b01;
20042let Inst{31-21} = 0b01000000101;
20043let isPredicated = 1;
20044let addrMode = BaseImmOffset;
20045let accessSize = HalfWordAccess;
20046let isNVStore = 1;
20047let isNewValue = 1;
20048let isRestrictNoSlot1Store = 1;
20049let mayStore = 1;
20050let CextOpcode = "S2_storerh";
20051let InputType = "imm";
20052let BaseOpcode = "S2_storerh_io";
20053let isExtendable = 1;
20054let opExtendable = 2;
20055let isExtentSigned = 0;
20056let opExtentBits = 7;
20057let opExtentAlign = 1;
20058let opNewValue = 3;
20059}
20060def S2_pstorerhnewt_pi : HInst<
20061(outs IntRegs:$Rx32),
20062(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20063"if ($Pv4) memh($Rx32++#$Ii) = $Nt8.new",
20064tc_838b34ea, TypeST>, Enc_31aa6a, AddrModeRel {
20065let Inst{2-2} = 0b0;
20066let Inst{7-7} = 0b0;
20067let Inst{13-11} = 0b101;
20068let Inst{31-21} = 0b10101011101;
20069let isPredicated = 1;
20070let addrMode = PostInc;
20071let accessSize = HalfWordAccess;
20072let isNVStore = 1;
20073let isNewValue = 1;
20074let isRestrictNoSlot1Store = 1;
20075let mayStore = 1;
20076let CextOpcode = "S2_storerh";
20077let BaseOpcode = "S2_storerh_pi";
20078let opNewValue = 4;
20079let Constraints = "$Rx32 = $Rx32in";
20080}
20081def S2_pstorerhnewt_zomap : HInst<
20082(outs),
20083(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20084"if ($Pv4) memh($Rs32) = $Nt8.new",
20085tc_8fb7ab1b, TypeMAPPING> {
20086let isPseudo = 1;
20087let isCodeGenOnly = 1;
20088let opNewValue = 2;
20089}
20090def S2_pstorerhnewtnew_pi : HInst<
20091(outs IntRegs:$Rx32),
20092(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
20093"if ($Pv4.new) memh($Rx32++#$Ii) = $Nt8.new",
20094tc_d65dbf51, TypeST>, Enc_31aa6a, AddrModeRel {
20095let Inst{2-2} = 0b0;
20096let Inst{7-7} = 0b1;
20097let Inst{13-11} = 0b101;
20098let Inst{31-21} = 0b10101011101;
20099let isPredicated = 1;
20100let addrMode = PostInc;
20101let accessSize = HalfWordAccess;
20102let isNVStore = 1;
20103let isPredicatedNew = 1;
20104let isNewValue = 1;
20105let isRestrictNoSlot1Store = 1;
20106let mayStore = 1;
20107let CextOpcode = "S2_storerh";
20108let BaseOpcode = "S2_storerh_pi";
20109let opNewValue = 4;
20110let Constraints = "$Rx32 = $Rx32in";
20111}
20112def S2_pstorerht_io : HInst<
20113(outs),
20114(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
20115"if ($Pv4) memh($Rs32+#$Ii) = $Rt32",
20116tc_f8e23f0b, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
20117let Inst{2-2} = 0b0;
20118let Inst{31-21} = 0b01000000010;
20119let isPredicated = 1;
20120let addrMode = BaseImmOffset;
20121let accessSize = HalfWordAccess;
20122let mayStore = 1;
20123let CextOpcode = "S2_storerh";
20124let InputType = "imm";
20125let BaseOpcode = "S2_storerh_io";
20126let isNVStorable = 1;
20127let isExtendable = 1;
20128let opExtendable = 2;
20129let isExtentSigned = 0;
20130let opExtentBits = 7;
20131let opExtentAlign = 1;
20132}
20133def S2_pstorerht_pi : HInst<
20134(outs IntRegs:$Rx32),
20135(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20136"if ($Pv4) memh($Rx32++#$Ii) = $Rt32",
20137tc_24b66c99, TypeST>, Enc_b886fd, AddrModeRel {
20138let Inst{2-2} = 0b0;
20139let Inst{7-7} = 0b0;
20140let Inst{13-13} = 0b1;
20141let Inst{31-21} = 0b10101011010;
20142let isPredicated = 1;
20143let addrMode = PostInc;
20144let accessSize = HalfWordAccess;
20145let mayStore = 1;
20146let BaseOpcode = "S2_storerh_pi";
20147let isNVStorable = 1;
20148let Constraints = "$Rx32 = $Rx32in";
20149}
20150def S2_pstorerht_zomap : HInst<
20151(outs),
20152(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20153"if ($Pv4) memh($Rs32) = $Rt32",
20154tc_f8e23f0b, TypeMAPPING> {
20155let isPseudo = 1;
20156let isCodeGenOnly = 1;
20157}
20158def S2_pstorerhtnew_pi : HInst<
20159(outs IntRegs:$Rx32),
20160(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20161"if ($Pv4.new) memh($Rx32++#$Ii) = $Rt32",
20162tc_53559e35, TypeST>, Enc_b886fd, AddrModeRel {
20163let Inst{2-2} = 0b0;
20164let Inst{7-7} = 0b1;
20165let Inst{13-13} = 0b1;
20166let Inst{31-21} = 0b10101011010;
20167let isPredicated = 1;
20168let addrMode = PostInc;
20169let accessSize = HalfWordAccess;
20170let isPredicatedNew = 1;
20171let mayStore = 1;
20172let BaseOpcode = "S2_storerh_pi";
20173let isNVStorable = 1;
20174let Constraints = "$Rx32 = $Rx32in";
20175}
20176def S2_pstorerif_io : HInst<
20177(outs),
20178(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20179"if (!$Pv4) memw($Rs32+#$Ii) = $Rt32",
20180tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel {
20181let Inst{2-2} = 0b0;
20182let Inst{31-21} = 0b01000100100;
20183let isPredicated = 1;
20184let isPredicatedFalse = 1;
20185let addrMode = BaseImmOffset;
20186let accessSize = WordAccess;
20187let mayStore = 1;
20188let CextOpcode = "S2_storeri";
20189let InputType = "imm";
20190let BaseOpcode = "S2_storeri_io";
20191let isNVStorable = 1;
20192let isExtendable = 1;
20193let opExtendable = 2;
20194let isExtentSigned = 0;
20195let opExtentBits = 8;
20196let opExtentAlign = 2;
20197}
20198def S2_pstorerif_pi : HInst<
20199(outs IntRegs:$Rx32),
20200(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20201"if (!$Pv4) memw($Rx32++#$Ii) = $Rt32",
20202tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel {
20203let Inst{2-2} = 0b1;
20204let Inst{7-7} = 0b0;
20205let Inst{13-13} = 0b1;
20206let Inst{31-21} = 0b10101011100;
20207let isPredicated = 1;
20208let isPredicatedFalse = 1;
20209let addrMode = PostInc;
20210let accessSize = WordAccess;
20211let mayStore = 1;
20212let BaseOpcode = "S2_storeri_pi";
20213let isNVStorable = 1;
20214let Constraints = "$Rx32 = $Rx32in";
20215}
20216def S2_pstorerif_zomap : HInst<
20217(outs),
20218(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20219"if (!$Pv4) memw($Rs32) = $Rt32",
20220tc_f8e23f0b, TypeMAPPING> {
20221let isPseudo = 1;
20222let isCodeGenOnly = 1;
20223}
20224def S2_pstorerifnew_pi : HInst<
20225(outs IntRegs:$Rx32),
20226(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20227"if (!$Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20228tc_53559e35, TypeST>, Enc_7eaeb6, AddrModeRel {
20229let Inst{2-2} = 0b1;
20230let Inst{7-7} = 0b1;
20231let Inst{13-13} = 0b1;
20232let Inst{31-21} = 0b10101011100;
20233let isPredicated = 1;
20234let isPredicatedFalse = 1;
20235let addrMode = PostInc;
20236let accessSize = WordAccess;
20237let isPredicatedNew = 1;
20238let mayStore = 1;
20239let CextOpcode = "S2_storeri";
20240let BaseOpcode = "S2_storeri_pi";
20241let isNVStorable = 1;
20242let Constraints = "$Rx32 = $Rx32in";
20243}
20244def S2_pstorerinewf_io : HInst<
20245(outs),
20246(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20247"if (!$Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20248tc_8fb7ab1b, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20249let Inst{2-2} = 0b0;
20250let Inst{12-11} = 0b10;
20251let Inst{31-21} = 0b01000100101;
20252let isPredicated = 1;
20253let isPredicatedFalse = 1;
20254let addrMode = BaseImmOffset;
20255let accessSize = WordAccess;
20256let isNVStore = 1;
20257let isNewValue = 1;
20258let isRestrictNoSlot1Store = 1;
20259let mayStore = 1;
20260let CextOpcode = "S2_storeri";
20261let InputType = "imm";
20262let BaseOpcode = "S2_storeri_io";
20263let isExtendable = 1;
20264let opExtendable = 2;
20265let isExtentSigned = 0;
20266let opExtentBits = 8;
20267let opExtentAlign = 2;
20268let opNewValue = 3;
20269}
20270def S2_pstorerinewf_pi : HInst<
20271(outs IntRegs:$Rx32),
20272(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20273"if (!$Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20274tc_838b34ea, TypeST>, Enc_65f095, AddrModeRel {
20275let Inst{2-2} = 0b1;
20276let Inst{7-7} = 0b0;
20277let Inst{13-11} = 0b110;
20278let Inst{31-21} = 0b10101011101;
20279let isPredicated = 1;
20280let isPredicatedFalse = 1;
20281let addrMode = PostInc;
20282let accessSize = WordAccess;
20283let isNVStore = 1;
20284let isNewValue = 1;
20285let isRestrictNoSlot1Store = 1;
20286let mayStore = 1;
20287let CextOpcode = "S2_storeri";
20288let BaseOpcode = "S2_storeri_pi";
20289let opNewValue = 4;
20290let Constraints = "$Rx32 = $Rx32in";
20291}
20292def S2_pstorerinewf_zomap : HInst<
20293(outs),
20294(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20295"if (!$Pv4) memw($Rs32) = $Nt8.new",
20296tc_8fb7ab1b, TypeMAPPING> {
20297let isPseudo = 1;
20298let isCodeGenOnly = 1;
20299let opNewValue = 2;
20300}
20301def S2_pstorerinewfnew_pi : HInst<
20302(outs IntRegs:$Rx32),
20303(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20304"if (!$Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20305tc_d65dbf51, TypeST>, Enc_65f095, AddrModeRel {
20306let Inst{2-2} = 0b1;
20307let Inst{7-7} = 0b1;
20308let Inst{13-11} = 0b110;
20309let Inst{31-21} = 0b10101011101;
20310let isPredicated = 1;
20311let isPredicatedFalse = 1;
20312let addrMode = PostInc;
20313let accessSize = WordAccess;
20314let isNVStore = 1;
20315let isPredicatedNew = 1;
20316let isNewValue = 1;
20317let isRestrictNoSlot1Store = 1;
20318let mayStore = 1;
20319let CextOpcode = "S2_storeri";
20320let BaseOpcode = "S2_storeri_pi";
20321let opNewValue = 4;
20322let Constraints = "$Rx32 = $Rx32in";
20323}
20324def S2_pstorerinewt_io : HInst<
20325(outs),
20326(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
20327"if ($Pv4) memw($Rs32+#$Ii) = $Nt8.new",
20328tc_8fb7ab1b, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
20329let Inst{2-2} = 0b0;
20330let Inst{12-11} = 0b10;
20331let Inst{31-21} = 0b01000000101;
20332let isPredicated = 1;
20333let addrMode = BaseImmOffset;
20334let accessSize = WordAccess;
20335let isNVStore = 1;
20336let isNewValue = 1;
20337let isRestrictNoSlot1Store = 1;
20338let mayStore = 1;
20339let CextOpcode = "S2_storeri";
20340let InputType = "imm";
20341let BaseOpcode = "S2_storeri_io";
20342let isExtendable = 1;
20343let opExtendable = 2;
20344let isExtentSigned = 0;
20345let opExtentBits = 8;
20346let opExtentAlign = 2;
20347let opNewValue = 3;
20348}
20349def S2_pstorerinewt_pi : HInst<
20350(outs IntRegs:$Rx32),
20351(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20352"if ($Pv4) memw($Rx32++#$Ii) = $Nt8.new",
20353tc_838b34ea, TypeST>, Enc_65f095, AddrModeRel {
20354let Inst{2-2} = 0b0;
20355let Inst{7-7} = 0b0;
20356let Inst{13-11} = 0b110;
20357let Inst{31-21} = 0b10101011101;
20358let isPredicated = 1;
20359let addrMode = PostInc;
20360let accessSize = WordAccess;
20361let isNVStore = 1;
20362let isNewValue = 1;
20363let isRestrictNoSlot1Store = 1;
20364let mayStore = 1;
20365let CextOpcode = "S2_storeri";
20366let BaseOpcode = "S2_storeri_pi";
20367let opNewValue = 4;
20368let Constraints = "$Rx32 = $Rx32in";
20369}
20370def S2_pstorerinewt_zomap : HInst<
20371(outs),
20372(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
20373"if ($Pv4) memw($Rs32) = $Nt8.new",
20374tc_8fb7ab1b, TypeMAPPING> {
20375let isPseudo = 1;
20376let isCodeGenOnly = 1;
20377let opNewValue = 2;
20378}
20379def S2_pstorerinewtnew_pi : HInst<
20380(outs IntRegs:$Rx32),
20381(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
20382"if ($Pv4.new) memw($Rx32++#$Ii) = $Nt8.new",
20383tc_d65dbf51, TypeST>, Enc_65f095, AddrModeRel {
20384let Inst{2-2} = 0b0;
20385let Inst{7-7} = 0b1;
20386let Inst{13-11} = 0b110;
20387let Inst{31-21} = 0b10101011101;
20388let isPredicated = 1;
20389let addrMode = PostInc;
20390let accessSize = WordAccess;
20391let isNVStore = 1;
20392let isPredicatedNew = 1;
20393let isNewValue = 1;
20394let isRestrictNoSlot1Store = 1;
20395let mayStore = 1;
20396let CextOpcode = "S2_storeri";
20397let BaseOpcode = "S2_storeri_pi";
20398let opNewValue = 4;
20399let Constraints = "$Rx32 = $Rx32in";
20400}
20401def S2_pstorerit_io : HInst<
20402(outs),
20403(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
20404"if ($Pv4) memw($Rs32+#$Ii) = $Rt32",
20405tc_f8e23f0b, TypeV2LDST>, Enc_397f23, AddrModeRel {
20406let Inst{2-2} = 0b0;
20407let Inst{31-21} = 0b01000000100;
20408let isPredicated = 1;
20409let addrMode = BaseImmOffset;
20410let accessSize = WordAccess;
20411let mayStore = 1;
20412let CextOpcode = "S2_storeri";
20413let InputType = "imm";
20414let BaseOpcode = "S2_storeri_io";
20415let isNVStorable = 1;
20416let isExtendable = 1;
20417let opExtendable = 2;
20418let isExtentSigned = 0;
20419let opExtentBits = 8;
20420let opExtentAlign = 2;
20421}
20422def S2_pstorerit_pi : HInst<
20423(outs IntRegs:$Rx32),
20424(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20425"if ($Pv4) memw($Rx32++#$Ii) = $Rt32",
20426tc_24b66c99, TypeST>, Enc_7eaeb6, AddrModeRel {
20427let Inst{2-2} = 0b0;
20428let Inst{7-7} = 0b0;
20429let Inst{13-13} = 0b1;
20430let Inst{31-21} = 0b10101011100;
20431let isPredicated = 1;
20432let addrMode = PostInc;
20433let accessSize = WordAccess;
20434let mayStore = 1;
20435let BaseOpcode = "S2_storeri_pi";
20436let isNVStorable = 1;
20437let Constraints = "$Rx32 = $Rx32in";
20438}
20439def S2_pstorerit_zomap : HInst<
20440(outs),
20441(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
20442"if ($Pv4) memw($Rs32) = $Rt32",
20443tc_f8e23f0b, TypeMAPPING> {
20444let isPseudo = 1;
20445let isCodeGenOnly = 1;
20446}
20447def S2_pstoreritnew_pi : HInst<
20448(outs IntRegs:$Rx32),
20449(ins PredRegs:$Pv4, IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
20450"if ($Pv4.new) memw($Rx32++#$Ii) = $Rt32",
20451tc_53559e35, TypeST>, Enc_7eaeb6, AddrModeRel {
20452let Inst{2-2} = 0b0;
20453let Inst{7-7} = 0b1;
20454let Inst{13-13} = 0b1;
20455let Inst{31-21} = 0b10101011100;
20456let isPredicated = 1;
20457let addrMode = PostInc;
20458let accessSize = WordAccess;
20459let isPredicatedNew = 1;
20460let mayStore = 1;
20461let BaseOpcode = "S2_storeri_pi";
20462let isNVStorable = 1;
20463let Constraints = "$Rx32 = $Rx32in";
20464}
20465def S2_setbit_i : HInst<
20466(outs IntRegs:$Rd32),
20467(ins IntRegs:$Rs32, u5_0Imm:$Ii),
20468"$Rd32 = setbit($Rs32,#$Ii)",
20469tc_946df596, TypeS_2op>, Enc_a05677 {
20470let Inst{7-5} = 0b000;
20471let Inst{13-13} = 0b0;
20472let Inst{31-21} = 0b10001100110;
20473let hasNewValue = 1;
20474let opNewValue = 0;
20475}
20476def S2_setbit_r : HInst<
20477(outs IntRegs:$Rd32),
20478(ins IntRegs:$Rs32, IntRegs:$Rt32),
20479"$Rd32 = setbit($Rs32,$Rt32)",
20480tc_946df596, TypeS_3op>, Enc_5ab2be {
20481let Inst{7-5} = 0b000;
20482let Inst{13-13} = 0b0;
20483let Inst{31-21} = 0b11000110100;
20484let hasNewValue = 1;
20485let opNewValue = 0;
20486}
20487def S2_shuffeb : HInst<
20488(outs DoubleRegs:$Rdd32),
20489(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20490"$Rdd32 = shuffeb($Rss32,$Rtt32)",
20491tc_946df596, TypeS_3op>, Enc_a56825 {
20492let Inst{7-5} = 0b010;
20493let Inst{13-13} = 0b0;
20494let Inst{31-21} = 0b11000001000;
20495}
20496def S2_shuffeh : HInst<
20497(outs DoubleRegs:$Rdd32),
20498(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
20499"$Rdd32 = shuffeh($Rss32,$Rtt32)",
20500tc_946df596, TypeS_3op>, Enc_a56825 {
20501let Inst{7-5} = 0b110;
20502let Inst{13-13} = 0b0;
20503let Inst{31-21} = 0b11000001000;
20504}
20505def S2_shuffob : HInst<
20506(outs DoubleRegs:$Rdd32),
20507(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20508"$Rdd32 = shuffob($Rtt32,$Rss32)",
20509tc_946df596, TypeS_3op>, Enc_ea23e4 {
20510let Inst{7-5} = 0b100;
20511let Inst{13-13} = 0b0;
20512let Inst{31-21} = 0b11000001000;
20513}
20514def S2_shuffoh : HInst<
20515(outs DoubleRegs:$Rdd32),
20516(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32),
20517"$Rdd32 = shuffoh($Rtt32,$Rss32)",
20518tc_946df596, TypeS_3op>, Enc_ea23e4 {
20519let Inst{7-5} = 0b000;
20520let Inst{13-13} = 0b0;
20521let Inst{31-21} = 0b11000001100;
20522}
20523def S2_storerb_io : HInst<
20524(outs),
20525(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Rt32),
20526"memb($Rs32+#$Ii) = $Rt32",
20527tc_30b9bb4a, TypeST>, Enc_448f7f, AddrModeRel, PostInc_BaseImm {
20528let Inst{24-21} = 0b1000;
20529let Inst{31-27} = 0b10100;
20530let addrMode = BaseImmOffset;
20531let accessSize = ByteAccess;
20532let mayStore = 1;
20533let CextOpcode = "S2_storerb";
20534let InputType = "imm";
20535let BaseOpcode = "S2_storerb_io";
20536let isPredicable = 1;
20537let isNVStorable = 1;
20538let isExtendable = 1;
20539let opExtendable = 1;
20540let isExtentSigned = 1;
20541let opExtentBits = 11;
20542let opExtentAlign = 0;
20543}
20544def S2_storerb_pbr : HInst<
20545(outs IntRegs:$Rx32),
20546(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20547"memb($Rx32++$Mu2:brev) = $Rt32",
20548tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
20549let Inst{7-0} = 0b00000000;
20550let Inst{31-21} = 0b10101111000;
20551let addrMode = PostInc;
20552let accessSize = ByteAccess;
20553let mayStore = 1;
20554let BaseOpcode = "S2_storerb_pbr";
20555let isNVStorable = 1;
20556let Constraints = "$Rx32 = $Rx32in";
20557}
20558def S2_storerb_pci : HInst<
20559(outs IntRegs:$Rx32),
20560(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20561"memb($Rx32++#$Ii:circ($Mu2)) = $Rt32",
20562tc_e86aa961, TypeST>, Enc_b15941, AddrModeRel {
20563let Inst{2-0} = 0b000;
20564let Inst{7-7} = 0b0;
20565let Inst{31-21} = 0b10101001000;
20566let addrMode = PostInc;
20567let accessSize = ByteAccess;
20568let mayStore = 1;
20569let Uses = [CS];
20570let BaseOpcode = "S2_storerb_pci";
20571let isNVStorable = 1;
20572let Constraints = "$Rx32 = $Rx32in";
20573}
20574def S2_storerb_pcr : HInst<
20575(outs IntRegs:$Rx32),
20576(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20577"memb($Rx32++I:circ($Mu2)) = $Rt32",
20578tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
20579let Inst{7-0} = 0b00000010;
20580let Inst{31-21} = 0b10101001000;
20581let addrMode = PostInc;
20582let accessSize = ByteAccess;
20583let mayStore = 1;
20584let Uses = [CS];
20585let BaseOpcode = "S2_storerb_pcr";
20586let isNVStorable = 1;
20587let Constraints = "$Rx32 = $Rx32in";
20588}
20589def S2_storerb_pi : HInst<
20590(outs IntRegs:$Rx32),
20591(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Rt32),
20592"memb($Rx32++#$Ii) = $Rt32",
20593tc_da97ee82, TypeST>, Enc_10bc21, AddrModeRel, PostInc_BaseImm {
20594let Inst{2-0} = 0b000;
20595let Inst{7-7} = 0b0;
20596let Inst{13-13} = 0b0;
20597let Inst{31-21} = 0b10101011000;
20598let addrMode = PostInc;
20599let accessSize = ByteAccess;
20600let mayStore = 1;
20601let CextOpcode = "S2_storerb";
20602let BaseOpcode = "S2_storerb_pi";
20603let isPredicable = 1;
20604let isNVStorable = 1;
20605let Constraints = "$Rx32 = $Rx32in";
20606}
20607def S2_storerb_pr : HInst<
20608(outs IntRegs:$Rx32),
20609(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20610"memb($Rx32++$Mu2) = $Rt32",
20611tc_da97ee82, TypeST>, Enc_d5c73f {
20612let Inst{7-0} = 0b00000000;
20613let Inst{31-21} = 0b10101101000;
20614let addrMode = PostInc;
20615let accessSize = ByteAccess;
20616let mayStore = 1;
20617let isNVStorable = 1;
20618let Constraints = "$Rx32 = $Rx32in";
20619}
20620def S2_storerb_zomap : HInst<
20621(outs),
20622(ins IntRegs:$Rs32, IntRegs:$Rt32),
20623"memb($Rs32) = $Rt32",
20624tc_30b9bb4a, TypeMAPPING> {
20625let isPseudo = 1;
20626let isCodeGenOnly = 1;
20627}
20628def S2_storerbgp : HInst<
20629(outs),
20630(ins u32_0Imm:$Ii, IntRegs:$Rt32),
20631"memb(gp+#$Ii) = $Rt32",
20632tc_0371abea, TypeV2LDST>, Enc_1b64fb, AddrModeRel {
20633let Inst{24-21} = 0b0000;
20634let Inst{31-27} = 0b01001;
20635let accessSize = ByteAccess;
20636let mayStore = 1;
20637let Uses = [GP];
20638let BaseOpcode = "S2_storerbabs";
20639let isPredicable = 1;
20640let isNVStorable = 1;
20641let opExtendable = 0;
20642let isExtentSigned = 0;
20643let opExtentBits = 16;
20644let opExtentAlign = 0;
20645}
20646def S2_storerbnew_io : HInst<
20647(outs),
20648(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Nt8),
20649"memb($Rs32+#$Ii) = $Nt8.new",
20650tc_be9602ff, TypeST>, Enc_4df4e9, AddrModeRel {
20651let Inst{12-11} = 0b00;
20652let Inst{24-21} = 0b1101;
20653let Inst{31-27} = 0b10100;
20654let addrMode = BaseImmOffset;
20655let accessSize = ByteAccess;
20656let isNVStore = 1;
20657let isNewValue = 1;
20658let isRestrictNoSlot1Store = 1;
20659let mayStore = 1;
20660let CextOpcode = "S2_storerb";
20661let InputType = "imm";
20662let BaseOpcode = "S2_storerb_io";
20663let isPredicable = 1;
20664let isExtendable = 1;
20665let opExtendable = 1;
20666let isExtentSigned = 1;
20667let opExtentBits = 11;
20668let opExtentAlign = 0;
20669let opNewValue = 2;
20670}
20671def S2_storerbnew_pbr : HInst<
20672(outs IntRegs:$Rx32),
20673(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20674"memb($Rx32++$Mu2:brev) = $Nt8.new",
20675tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
20676let Inst{7-0} = 0b00000000;
20677let Inst{12-11} = 0b00;
20678let Inst{31-21} = 0b10101111101;
20679let addrMode = PostInc;
20680let accessSize = ByteAccess;
20681let isNVStore = 1;
20682let isNewValue = 1;
20683let isRestrictNoSlot1Store = 1;
20684let mayStore = 1;
20685let BaseOpcode = "S2_storerb_pbr";
20686let opNewValue = 3;
20687let Constraints = "$Rx32 = $Rx32in";
20688}
20689def S2_storerbnew_pci : HInst<
20690(outs IntRegs:$Rx32),
20691(ins IntRegs:$Rx32in, s4_0Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
20692"memb($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
20693tc_d5c0729a, TypeST>, Enc_96ce4f, AddrModeRel {
20694let Inst{2-0} = 0b000;
20695let Inst{7-7} = 0b0;
20696let Inst{12-11} = 0b00;
20697let Inst{31-21} = 0b10101001101;
20698let addrMode = PostInc;
20699let accessSize = ByteAccess;
20700let isNVStore = 1;
20701let isNewValue = 1;
20702let isRestrictNoSlot1Store = 1;
20703let mayStore = 1;
20704let Uses = [CS];
20705let BaseOpcode = "S2_storerb_pci";
20706let opNewValue = 4;
20707let Constraints = "$Rx32 = $Rx32in";
20708}
20709def S2_storerbnew_pcr : HInst<
20710(outs IntRegs:$Rx32),
20711(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20712"memb($Rx32++I:circ($Mu2)) = $Nt8.new",
20713tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
20714let Inst{7-0} = 0b00000010;
20715let Inst{12-11} = 0b00;
20716let Inst{31-21} = 0b10101001101;
20717let addrMode = PostInc;
20718let accessSize = ByteAccess;
20719let isNVStore = 1;
20720let isNewValue = 1;
20721let isRestrictNoSlot1Store = 1;
20722let mayStore = 1;
20723let Uses = [CS];
20724let BaseOpcode = "S2_storerb_pcr";
20725let opNewValue = 3;
20726let Constraints = "$Rx32 = $Rx32in";
20727}
20728def S2_storerbnew_pi : HInst<
20729(outs IntRegs:$Rx32),
20730(ins IntRegs:$Rx32in, s4_0Imm:$Ii, IntRegs:$Nt8),
20731"memb($Rx32++#$Ii) = $Nt8.new",
20732tc_c79a189f, TypeST>, Enc_c7cd90, AddrModeRel {
20733let Inst{2-0} = 0b000;
20734let Inst{7-7} = 0b0;
20735let Inst{13-11} = 0b000;
20736let Inst{31-21} = 0b10101011101;
20737let addrMode = PostInc;
20738let accessSize = ByteAccess;
20739let isNVStore = 1;
20740let isNewValue = 1;
20741let isRestrictNoSlot1Store = 1;
20742let mayStore = 1;
20743let BaseOpcode = "S2_storerb_pi";
20744let isPredicable = 1;
20745let isNVStorable = 1;
20746let opNewValue = 3;
20747let Constraints = "$Rx32 = $Rx32in";
20748}
20749def S2_storerbnew_pr : HInst<
20750(outs IntRegs:$Rx32),
20751(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
20752"memb($Rx32++$Mu2) = $Nt8.new",
20753tc_c79a189f, TypeST>, Enc_8dbe85 {
20754let Inst{7-0} = 0b00000000;
20755let Inst{12-11} = 0b00;
20756let Inst{31-21} = 0b10101101101;
20757let addrMode = PostInc;
20758let accessSize = ByteAccess;
20759let isNVStore = 1;
20760let isNewValue = 1;
20761let isRestrictNoSlot1Store = 1;
20762let mayStore = 1;
20763let opNewValue = 3;
20764let Constraints = "$Rx32 = $Rx32in";
20765}
20766def S2_storerbnew_zomap : HInst<
20767(outs),
20768(ins IntRegs:$Rs32, IntRegs:$Nt8),
20769"memb($Rs32) = $Nt8.new",
20770tc_be9602ff, TypeMAPPING> {
20771let isPseudo = 1;
20772let isCodeGenOnly = 1;
20773let opNewValue = 1;
20774}
20775def S2_storerbnewgp : HInst<
20776(outs),
20777(ins u32_0Imm:$Ii, IntRegs:$Nt8),
20778"memb(gp+#$Ii) = $Nt8.new",
20779tc_5bf126a6, TypeV2LDST>, Enc_ad1831, AddrModeRel {
20780let Inst{12-11} = 0b00;
20781let Inst{24-21} = 0b0101;
20782let Inst{31-27} = 0b01001;
20783let accessSize = ByteAccess;
20784let isNVStore = 1;
20785let isNewValue = 1;
20786let isRestrictNoSlot1Store = 1;
20787let mayStore = 1;
20788let Uses = [GP];
20789let BaseOpcode = "S2_storerbabs";
20790let isPredicable = 1;
20791let opExtendable = 0;
20792let isExtentSigned = 0;
20793let opExtentBits = 16;
20794let opExtentAlign = 0;
20795let opNewValue = 1;
20796}
20797def S2_storerd_io : HInst<
20798(outs),
20799(ins IntRegs:$Rs32, s29_3Imm:$Ii, DoubleRegs:$Rtt32),
20800"memd($Rs32+#$Ii) = $Rtt32",
20801tc_30b9bb4a, TypeST>, Enc_ce6828, AddrModeRel, PostInc_BaseImm {
20802let Inst{24-21} = 0b1110;
20803let Inst{31-27} = 0b10100;
20804let addrMode = BaseImmOffset;
20805let accessSize = DoubleWordAccess;
20806let mayStore = 1;
20807let CextOpcode = "S2_storerd";
20808let InputType = "imm";
20809let BaseOpcode = "S2_storerd_io";
20810let isPredicable = 1;
20811let isExtendable = 1;
20812let opExtendable = 1;
20813let isExtentSigned = 1;
20814let opExtentBits = 14;
20815let opExtentAlign = 3;
20816}
20817def S2_storerd_pbr : HInst<
20818(outs IntRegs:$Rx32),
20819(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20820"memd($Rx32++$Mu2:brev) = $Rtt32",
20821tc_da97ee82, TypeST>, Enc_928ca1 {
20822let Inst{7-0} = 0b00000000;
20823let Inst{31-21} = 0b10101111110;
20824let addrMode = PostInc;
20825let accessSize = DoubleWordAccess;
20826let mayStore = 1;
20827let Constraints = "$Rx32 = $Rx32in";
20828}
20829def S2_storerd_pci : HInst<
20830(outs IntRegs:$Rx32),
20831(ins IntRegs:$Rx32in, s4_3Imm:$Ii, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20832"memd($Rx32++#$Ii:circ($Mu2)) = $Rtt32",
20833tc_e86aa961, TypeST>, Enc_395cc4 {
20834let Inst{2-0} = 0b000;
20835let Inst{7-7} = 0b0;
20836let Inst{31-21} = 0b10101001110;
20837let addrMode = PostInc;
20838let accessSize = DoubleWordAccess;
20839let mayStore = 1;
20840let Uses = [CS];
20841let Constraints = "$Rx32 = $Rx32in";
20842}
20843def S2_storerd_pcr : HInst<
20844(outs IntRegs:$Rx32),
20845(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20846"memd($Rx32++I:circ($Mu2)) = $Rtt32",
20847tc_da97ee82, TypeST>, Enc_928ca1 {
20848let Inst{7-0} = 0b00000010;
20849let Inst{31-21} = 0b10101001110;
20850let addrMode = PostInc;
20851let accessSize = DoubleWordAccess;
20852let mayStore = 1;
20853let Uses = [CS];
20854let Constraints = "$Rx32 = $Rx32in";
20855}
20856def S2_storerd_pi : HInst<
20857(outs IntRegs:$Rx32),
20858(ins IntRegs:$Rx32in, s4_3Imm:$Ii, DoubleRegs:$Rtt32),
20859"memd($Rx32++#$Ii) = $Rtt32",
20860tc_da97ee82, TypeST>, Enc_85bf58, AddrModeRel, PostInc_BaseImm {
20861let Inst{2-0} = 0b000;
20862let Inst{7-7} = 0b0;
20863let Inst{13-13} = 0b0;
20864let Inst{31-21} = 0b10101011110;
20865let addrMode = PostInc;
20866let accessSize = DoubleWordAccess;
20867let mayStore = 1;
20868let CextOpcode = "S2_storerd";
20869let BaseOpcode = "S2_storerd_pi";
20870let isPredicable = 1;
20871let Constraints = "$Rx32 = $Rx32in";
20872}
20873def S2_storerd_pr : HInst<
20874(outs IntRegs:$Rx32),
20875(ins IntRegs:$Rx32in, ModRegs:$Mu2, DoubleRegs:$Rtt32),
20876"memd($Rx32++$Mu2) = $Rtt32",
20877tc_da97ee82, TypeST>, Enc_928ca1 {
20878let Inst{7-0} = 0b00000000;
20879let Inst{31-21} = 0b10101101110;
20880let addrMode = PostInc;
20881let accessSize = DoubleWordAccess;
20882let mayStore = 1;
20883let Constraints = "$Rx32 = $Rx32in";
20884}
20885def S2_storerd_zomap : HInst<
20886(outs),
20887(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
20888"memd($Rs32) = $Rtt32",
20889tc_30b9bb4a, TypeMAPPING> {
20890let isPseudo = 1;
20891let isCodeGenOnly = 1;
20892}
20893def S2_storerdgp : HInst<
20894(outs),
20895(ins u29_3Imm:$Ii, DoubleRegs:$Rtt32),
20896"memd(gp+#$Ii) = $Rtt32",
20897tc_0371abea, TypeV2LDST>, Enc_5c124a, AddrModeRel {
20898let Inst{24-21} = 0b0110;
20899let Inst{31-27} = 0b01001;
20900let accessSize = DoubleWordAccess;
20901let mayStore = 1;
20902let Uses = [GP];
20903let BaseOpcode = "S2_storerdabs";
20904let isPredicable = 1;
20905let opExtendable = 0;
20906let isExtentSigned = 0;
20907let opExtentBits = 19;
20908let opExtentAlign = 3;
20909}
20910def S2_storerf_io : HInst<
20911(outs),
20912(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
20913"memh($Rs32+#$Ii) = $Rt32.h",
20914tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
20915let Inst{24-21} = 0b1011;
20916let Inst{31-27} = 0b10100;
20917let addrMode = BaseImmOffset;
20918let accessSize = HalfWordAccess;
20919let mayStore = 1;
20920let CextOpcode = "S2_storerf";
20921let InputType = "imm";
20922let BaseOpcode = "S2_storerf_io";
20923let isPredicable = 1;
20924let isExtendable = 1;
20925let opExtendable = 1;
20926let isExtentSigned = 1;
20927let opExtentBits = 12;
20928let opExtentAlign = 1;
20929}
20930def S2_storerf_pbr : HInst<
20931(outs IntRegs:$Rx32),
20932(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20933"memh($Rx32++$Mu2:brev) = $Rt32.h",
20934tc_da97ee82, TypeST>, Enc_d5c73f {
20935let Inst{7-0} = 0b00000000;
20936let Inst{31-21} = 0b10101111011;
20937let addrMode = PostInc;
20938let accessSize = HalfWordAccess;
20939let mayStore = 1;
20940let Constraints = "$Rx32 = $Rx32in";
20941}
20942def S2_storerf_pci : HInst<
20943(outs IntRegs:$Rx32),
20944(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
20945"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32.h",
20946tc_e86aa961, TypeST>, Enc_935d9b {
20947let Inst{2-0} = 0b000;
20948let Inst{7-7} = 0b0;
20949let Inst{31-21} = 0b10101001011;
20950let addrMode = PostInc;
20951let accessSize = HalfWordAccess;
20952let mayStore = 1;
20953let Uses = [CS];
20954let Constraints = "$Rx32 = $Rx32in";
20955}
20956def S2_storerf_pcr : HInst<
20957(outs IntRegs:$Rx32),
20958(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20959"memh($Rx32++I:circ($Mu2)) = $Rt32.h",
20960tc_da97ee82, TypeST>, Enc_d5c73f {
20961let Inst{7-0} = 0b00000010;
20962let Inst{31-21} = 0b10101001011;
20963let addrMode = PostInc;
20964let accessSize = HalfWordAccess;
20965let mayStore = 1;
20966let Uses = [CS];
20967let Constraints = "$Rx32 = $Rx32in";
20968}
20969def S2_storerf_pi : HInst<
20970(outs IntRegs:$Rx32),
20971(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
20972"memh($Rx32++#$Ii) = $Rt32.h",
20973tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
20974let Inst{2-0} = 0b000;
20975let Inst{7-7} = 0b0;
20976let Inst{13-13} = 0b0;
20977let Inst{31-21} = 0b10101011011;
20978let addrMode = PostInc;
20979let accessSize = HalfWordAccess;
20980let mayStore = 1;
20981let CextOpcode = "S2_storerf";
20982let BaseOpcode = "S2_storerf_pi";
20983let isPredicable = 1;
20984let Constraints = "$Rx32 = $Rx32in";
20985}
20986def S2_storerf_pr : HInst<
20987(outs IntRegs:$Rx32),
20988(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
20989"memh($Rx32++$Mu2) = $Rt32.h",
20990tc_da97ee82, TypeST>, Enc_d5c73f {
20991let Inst{7-0} = 0b00000000;
20992let Inst{31-21} = 0b10101101011;
20993let addrMode = PostInc;
20994let accessSize = HalfWordAccess;
20995let mayStore = 1;
20996let Constraints = "$Rx32 = $Rx32in";
20997}
20998def S2_storerf_zomap : HInst<
20999(outs),
21000(ins IntRegs:$Rs32, IntRegs:$Rt32),
21001"memh($Rs32) = $Rt32.h",
21002tc_30b9bb4a, TypeMAPPING> {
21003let isPseudo = 1;
21004let isCodeGenOnly = 1;
21005}
21006def S2_storerfgp : HInst<
21007(outs),
21008(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21009"memh(gp+#$Ii) = $Rt32.h",
21010tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21011let Inst{24-21} = 0b0011;
21012let Inst{31-27} = 0b01001;
21013let accessSize = HalfWordAccess;
21014let mayStore = 1;
21015let Uses = [GP];
21016let BaseOpcode = "S2_storerfabs";
21017let isPredicable = 1;
21018let opExtendable = 0;
21019let isExtentSigned = 0;
21020let opExtentBits = 17;
21021let opExtentAlign = 1;
21022}
21023def S2_storerh_io : HInst<
21024(outs),
21025(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Rt32),
21026"memh($Rs32+#$Ii) = $Rt32",
21027tc_30b9bb4a, TypeST>, Enc_e957fb, AddrModeRel, PostInc_BaseImm {
21028let Inst{24-21} = 0b1010;
21029let Inst{31-27} = 0b10100;
21030let addrMode = BaseImmOffset;
21031let accessSize = HalfWordAccess;
21032let mayStore = 1;
21033let CextOpcode = "S2_storerh";
21034let InputType = "imm";
21035let BaseOpcode = "S2_storerh_io";
21036let isPredicable = 1;
21037let isNVStorable = 1;
21038let isExtendable = 1;
21039let opExtendable = 1;
21040let isExtentSigned = 1;
21041let opExtentBits = 12;
21042let opExtentAlign = 1;
21043}
21044def S2_storerh_pbr : HInst<
21045(outs IntRegs:$Rx32),
21046(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21047"memh($Rx32++$Mu2:brev) = $Rt32",
21048tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21049let Inst{7-0} = 0b00000000;
21050let Inst{31-21} = 0b10101111010;
21051let addrMode = PostInc;
21052let accessSize = HalfWordAccess;
21053let mayStore = 1;
21054let BaseOpcode = "S2_storerh_pbr";
21055let isNVStorable = 1;
21056let Constraints = "$Rx32 = $Rx32in";
21057}
21058def S2_storerh_pci : HInst<
21059(outs IntRegs:$Rx32),
21060(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21061"memh($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21062tc_e86aa961, TypeST>, Enc_935d9b, AddrModeRel {
21063let Inst{2-0} = 0b000;
21064let Inst{7-7} = 0b0;
21065let Inst{31-21} = 0b10101001010;
21066let addrMode = PostInc;
21067let accessSize = HalfWordAccess;
21068let mayStore = 1;
21069let Uses = [CS];
21070let BaseOpcode = "S2_storerh_pci";
21071let isNVStorable = 1;
21072let Constraints = "$Rx32 = $Rx32in";
21073}
21074def S2_storerh_pcr : HInst<
21075(outs IntRegs:$Rx32),
21076(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21077"memh($Rx32++I:circ($Mu2)) = $Rt32",
21078tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21079let Inst{7-0} = 0b00000010;
21080let Inst{31-21} = 0b10101001010;
21081let addrMode = PostInc;
21082let accessSize = HalfWordAccess;
21083let mayStore = 1;
21084let Uses = [CS];
21085let BaseOpcode = "S2_storerh_pcr";
21086let isNVStorable = 1;
21087let Constraints = "$Rx32 = $Rx32in";
21088}
21089def S2_storerh_pi : HInst<
21090(outs IntRegs:$Rx32),
21091(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Rt32),
21092"memh($Rx32++#$Ii) = $Rt32",
21093tc_da97ee82, TypeST>, Enc_052c7d, AddrModeRel, PostInc_BaseImm {
21094let Inst{2-0} = 0b000;
21095let Inst{7-7} = 0b0;
21096let Inst{13-13} = 0b0;
21097let Inst{31-21} = 0b10101011010;
21098let addrMode = PostInc;
21099let accessSize = HalfWordAccess;
21100let mayStore = 1;
21101let CextOpcode = "S2_storerh";
21102let BaseOpcode = "S2_storerh_pi";
21103let isPredicable = 1;
21104let isNVStorable = 1;
21105let Constraints = "$Rx32 = $Rx32in";
21106}
21107def S2_storerh_pr : HInst<
21108(outs IntRegs:$Rx32),
21109(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21110"memh($Rx32++$Mu2) = $Rt32",
21111tc_da97ee82, TypeST>, Enc_d5c73f {
21112let Inst{7-0} = 0b00000000;
21113let Inst{31-21} = 0b10101101010;
21114let addrMode = PostInc;
21115let accessSize = HalfWordAccess;
21116let mayStore = 1;
21117let isNVStorable = 1;
21118let Constraints = "$Rx32 = $Rx32in";
21119}
21120def S2_storerh_zomap : HInst<
21121(outs),
21122(ins IntRegs:$Rs32, IntRegs:$Rt32),
21123"memh($Rs32) = $Rt32",
21124tc_30b9bb4a, TypeMAPPING> {
21125let isPseudo = 1;
21126let isCodeGenOnly = 1;
21127}
21128def S2_storerhgp : HInst<
21129(outs),
21130(ins u31_1Imm:$Ii, IntRegs:$Rt32),
21131"memh(gp+#$Ii) = $Rt32",
21132tc_0371abea, TypeV2LDST>, Enc_fda92c, AddrModeRel {
21133let Inst{24-21} = 0b0010;
21134let Inst{31-27} = 0b01001;
21135let accessSize = HalfWordAccess;
21136let mayStore = 1;
21137let Uses = [GP];
21138let BaseOpcode = "S2_storerhabs";
21139let isPredicable = 1;
21140let isNVStorable = 1;
21141let opExtendable = 0;
21142let isExtentSigned = 0;
21143let opExtentBits = 17;
21144let opExtentAlign = 1;
21145}
21146def S2_storerhnew_io : HInst<
21147(outs),
21148(ins IntRegs:$Rs32, s31_1Imm:$Ii, IntRegs:$Nt8),
21149"memh($Rs32+#$Ii) = $Nt8.new",
21150tc_be9602ff, TypeST>, Enc_0d8870, AddrModeRel {
21151let Inst{12-11} = 0b01;
21152let Inst{24-21} = 0b1101;
21153let Inst{31-27} = 0b10100;
21154let addrMode = BaseImmOffset;
21155let accessSize = HalfWordAccess;
21156let isNVStore = 1;
21157let isNewValue = 1;
21158let isRestrictNoSlot1Store = 1;
21159let mayStore = 1;
21160let CextOpcode = "S2_storerh";
21161let InputType = "imm";
21162let BaseOpcode = "S2_storerh_io";
21163let isPredicable = 1;
21164let isExtendable = 1;
21165let opExtendable = 1;
21166let isExtentSigned = 1;
21167let opExtentBits = 12;
21168let opExtentAlign = 1;
21169let opNewValue = 2;
21170}
21171def S2_storerhnew_pbr : HInst<
21172(outs IntRegs:$Rx32),
21173(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21174"memh($Rx32++$Mu2:brev) = $Nt8.new",
21175tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21176let Inst{7-0} = 0b00000000;
21177let Inst{12-11} = 0b01;
21178let Inst{31-21} = 0b10101111101;
21179let addrMode = PostInc;
21180let accessSize = HalfWordAccess;
21181let isNVStore = 1;
21182let isNewValue = 1;
21183let isRestrictNoSlot1Store = 1;
21184let mayStore = 1;
21185let BaseOpcode = "S2_storerh_pbr";
21186let opNewValue = 3;
21187let Constraints = "$Rx32 = $Rx32in";
21188}
21189def S2_storerhnew_pci : HInst<
21190(outs IntRegs:$Rx32),
21191(ins IntRegs:$Rx32in, s4_1Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21192"memh($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21193tc_d5c0729a, TypeST>, Enc_91b9fe, AddrModeRel {
21194let Inst{2-0} = 0b000;
21195let Inst{7-7} = 0b0;
21196let Inst{12-11} = 0b01;
21197let Inst{31-21} = 0b10101001101;
21198let addrMode = PostInc;
21199let accessSize = HalfWordAccess;
21200let isNVStore = 1;
21201let isNewValue = 1;
21202let isRestrictNoSlot1Store = 1;
21203let mayStore = 1;
21204let Uses = [CS];
21205let BaseOpcode = "S2_storerh_pci";
21206let opNewValue = 4;
21207let Constraints = "$Rx32 = $Rx32in";
21208}
21209def S2_storerhnew_pcr : HInst<
21210(outs IntRegs:$Rx32),
21211(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21212"memh($Rx32++I:circ($Mu2)) = $Nt8.new",
21213tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21214let Inst{7-0} = 0b00000010;
21215let Inst{12-11} = 0b01;
21216let Inst{31-21} = 0b10101001101;
21217let addrMode = PostInc;
21218let accessSize = HalfWordAccess;
21219let isNVStore = 1;
21220let isNewValue = 1;
21221let isRestrictNoSlot1Store = 1;
21222let mayStore = 1;
21223let Uses = [CS];
21224let BaseOpcode = "S2_storerh_pcr";
21225let opNewValue = 3;
21226let Constraints = "$Rx32 = $Rx32in";
21227}
21228def S2_storerhnew_pi : HInst<
21229(outs IntRegs:$Rx32),
21230(ins IntRegs:$Rx32in, s4_1Imm:$Ii, IntRegs:$Nt8),
21231"memh($Rx32++#$Ii) = $Nt8.new",
21232tc_c79a189f, TypeST>, Enc_e26546, AddrModeRel {
21233let Inst{2-0} = 0b000;
21234let Inst{7-7} = 0b0;
21235let Inst{13-11} = 0b001;
21236let Inst{31-21} = 0b10101011101;
21237let addrMode = PostInc;
21238let accessSize = HalfWordAccess;
21239let isNVStore = 1;
21240let isNewValue = 1;
21241let isRestrictNoSlot1Store = 1;
21242let mayStore = 1;
21243let BaseOpcode = "S2_storerh_pi";
21244let isNVStorable = 1;
21245let isPredicable = 1;
21246let opNewValue = 3;
21247let Constraints = "$Rx32 = $Rx32in";
21248}
21249def S2_storerhnew_pr : HInst<
21250(outs IntRegs:$Rx32),
21251(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21252"memh($Rx32++$Mu2) = $Nt8.new",
21253tc_c79a189f, TypeST>, Enc_8dbe85 {
21254let Inst{7-0} = 0b00000000;
21255let Inst{12-11} = 0b01;
21256let Inst{31-21} = 0b10101101101;
21257let addrMode = PostInc;
21258let accessSize = HalfWordAccess;
21259let isNVStore = 1;
21260let isNewValue = 1;
21261let isRestrictNoSlot1Store = 1;
21262let mayStore = 1;
21263let opNewValue = 3;
21264let Constraints = "$Rx32 = $Rx32in";
21265}
21266def S2_storerhnew_zomap : HInst<
21267(outs),
21268(ins IntRegs:$Rs32, IntRegs:$Nt8),
21269"memh($Rs32) = $Nt8.new",
21270tc_be9602ff, TypeMAPPING> {
21271let isPseudo = 1;
21272let isCodeGenOnly = 1;
21273let opNewValue = 1;
21274}
21275def S2_storerhnewgp : HInst<
21276(outs),
21277(ins u31_1Imm:$Ii, IntRegs:$Nt8),
21278"memh(gp+#$Ii) = $Nt8.new",
21279tc_5bf126a6, TypeV2LDST>, Enc_bc03e5, AddrModeRel {
21280let Inst{12-11} = 0b01;
21281let Inst{24-21} = 0b0101;
21282let Inst{31-27} = 0b01001;
21283let accessSize = HalfWordAccess;
21284let isNVStore = 1;
21285let isNewValue = 1;
21286let isRestrictNoSlot1Store = 1;
21287let mayStore = 1;
21288let Uses = [GP];
21289let BaseOpcode = "S2_storerhabs";
21290let isPredicable = 1;
21291let opExtendable = 0;
21292let isExtentSigned = 0;
21293let opExtentBits = 17;
21294let opExtentAlign = 1;
21295let opNewValue = 1;
21296}
21297def S2_storeri_io : HInst<
21298(outs),
21299(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Rt32),
21300"memw($Rs32+#$Ii) = $Rt32",
21301tc_30b9bb4a, TypeST>, Enc_143445, AddrModeRel, PostInc_BaseImm {
21302let Inst{24-21} = 0b1100;
21303let Inst{31-27} = 0b10100;
21304let addrMode = BaseImmOffset;
21305let accessSize = WordAccess;
21306let mayStore = 1;
21307let CextOpcode = "S2_storeri";
21308let InputType = "imm";
21309let BaseOpcode = "S2_storeri_io";
21310let isPredicable = 1;
21311let isNVStorable = 1;
21312let isExtendable = 1;
21313let opExtendable = 1;
21314let isExtentSigned = 1;
21315let opExtentBits = 13;
21316let opExtentAlign = 2;
21317}
21318def S2_storeri_pbr : HInst<
21319(outs IntRegs:$Rx32),
21320(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21321"memw($Rx32++$Mu2:brev) = $Rt32",
21322tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21323let Inst{7-0} = 0b00000000;
21324let Inst{31-21} = 0b10101111100;
21325let addrMode = PostInc;
21326let accessSize = WordAccess;
21327let mayStore = 1;
21328let BaseOpcode = "S2_storeri_pbr";
21329let isNVStorable = 1;
21330let Constraints = "$Rx32 = $Rx32in";
21331}
21332def S2_storeri_pci : HInst<
21333(outs IntRegs:$Rx32),
21334(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Rt32),
21335"memw($Rx32++#$Ii:circ($Mu2)) = $Rt32",
21336tc_e86aa961, TypeST>, Enc_79b8c8, AddrModeRel {
21337let Inst{2-0} = 0b000;
21338let Inst{7-7} = 0b0;
21339let Inst{31-21} = 0b10101001100;
21340let addrMode = PostInc;
21341let accessSize = WordAccess;
21342let mayStore = 1;
21343let Uses = [CS];
21344let BaseOpcode = "S2_storeri_pci";
21345let isNVStorable = 1;
21346let Constraints = "$Rx32 = $Rx32in";
21347}
21348def S2_storeri_pcr : HInst<
21349(outs IntRegs:$Rx32),
21350(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21351"memw($Rx32++I:circ($Mu2)) = $Rt32",
21352tc_da97ee82, TypeST>, Enc_d5c73f, AddrModeRel {
21353let Inst{7-0} = 0b00000010;
21354let Inst{31-21} = 0b10101001100;
21355let addrMode = PostInc;
21356let accessSize = WordAccess;
21357let mayStore = 1;
21358let Uses = [CS];
21359let BaseOpcode = "S2_storeri_pcr";
21360let isNVStorable = 1;
21361let Constraints = "$Rx32 = $Rx32in";
21362}
21363def S2_storeri_pi : HInst<
21364(outs IntRegs:$Rx32),
21365(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Rt32),
21366"memw($Rx32++#$Ii) = $Rt32",
21367tc_da97ee82, TypeST>, Enc_db40cd, AddrModeRel, PostInc_BaseImm {
21368let Inst{2-0} = 0b000;
21369let Inst{7-7} = 0b0;
21370let Inst{13-13} = 0b0;
21371let Inst{31-21} = 0b10101011100;
21372let addrMode = PostInc;
21373let accessSize = WordAccess;
21374let mayStore = 1;
21375let CextOpcode = "S2_storeri";
21376let BaseOpcode = "S2_storeri_pi";
21377let isPredicable = 1;
21378let isNVStorable = 1;
21379let Constraints = "$Rx32 = $Rx32in";
21380}
21381def S2_storeri_pr : HInst<
21382(outs IntRegs:$Rx32),
21383(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Rt32),
21384"memw($Rx32++$Mu2) = $Rt32",
21385tc_da97ee82, TypeST>, Enc_d5c73f {
21386let Inst{7-0} = 0b00000000;
21387let Inst{31-21} = 0b10101101100;
21388let addrMode = PostInc;
21389let accessSize = WordAccess;
21390let mayStore = 1;
21391let isNVStorable = 1;
21392let Constraints = "$Rx32 = $Rx32in";
21393}
21394def S2_storeri_zomap : HInst<
21395(outs),
21396(ins IntRegs:$Rs32, IntRegs:$Rt32),
21397"memw($Rs32) = $Rt32",
21398tc_30b9bb4a, TypeMAPPING> {
21399let isPseudo = 1;
21400let isCodeGenOnly = 1;
21401}
21402def S2_storerigp : HInst<
21403(outs),
21404(ins u30_2Imm:$Ii, IntRegs:$Rt32),
21405"memw(gp+#$Ii) = $Rt32",
21406tc_0371abea, TypeV2LDST>, Enc_541f26, AddrModeRel {
21407let Inst{24-21} = 0b0100;
21408let Inst{31-27} = 0b01001;
21409let accessSize = WordAccess;
21410let mayStore = 1;
21411let Uses = [GP];
21412let BaseOpcode = "S2_storeriabs";
21413let isPredicable = 1;
21414let isNVStorable = 1;
21415let opExtendable = 0;
21416let isExtentSigned = 0;
21417let opExtentBits = 18;
21418let opExtentAlign = 2;
21419}
21420def S2_storerinew_io : HInst<
21421(outs),
21422(ins IntRegs:$Rs32, s30_2Imm:$Ii, IntRegs:$Nt8),
21423"memw($Rs32+#$Ii) = $Nt8.new",
21424tc_be9602ff, TypeST>, Enc_690862, AddrModeRel {
21425let Inst{12-11} = 0b10;
21426let Inst{24-21} = 0b1101;
21427let Inst{31-27} = 0b10100;
21428let addrMode = BaseImmOffset;
21429let accessSize = WordAccess;
21430let isNVStore = 1;
21431let isNewValue = 1;
21432let isRestrictNoSlot1Store = 1;
21433let mayStore = 1;
21434let CextOpcode = "S2_storeri";
21435let InputType = "imm";
21436let BaseOpcode = "S2_storeri_io";
21437let isPredicable = 1;
21438let isExtendable = 1;
21439let opExtendable = 1;
21440let isExtentSigned = 1;
21441let opExtentBits = 13;
21442let opExtentAlign = 2;
21443let opNewValue = 2;
21444}
21445def S2_storerinew_pbr : HInst<
21446(outs IntRegs:$Rx32),
21447(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21448"memw($Rx32++$Mu2:brev) = $Nt8.new",
21449tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21450let Inst{7-0} = 0b00000000;
21451let Inst{12-11} = 0b10;
21452let Inst{31-21} = 0b10101111101;
21453let addrMode = PostInc;
21454let accessSize = WordAccess;
21455let isNVStore = 1;
21456let isNewValue = 1;
21457let isRestrictNoSlot1Store = 1;
21458let mayStore = 1;
21459let BaseOpcode = "S2_storeri_pbr";
21460let opNewValue = 3;
21461let Constraints = "$Rx32 = $Rx32in";
21462}
21463def S2_storerinew_pci : HInst<
21464(outs IntRegs:$Rx32),
21465(ins IntRegs:$Rx32in, s4_2Imm:$Ii, ModRegs:$Mu2, IntRegs:$Nt8),
21466"memw($Rx32++#$Ii:circ($Mu2)) = $Nt8.new",
21467tc_d5c0729a, TypeST>, Enc_3f97c8, AddrModeRel {
21468let Inst{2-0} = 0b000;
21469let Inst{7-7} = 0b0;
21470let Inst{12-11} = 0b10;
21471let Inst{31-21} = 0b10101001101;
21472let addrMode = PostInc;
21473let accessSize = WordAccess;
21474let isNVStore = 1;
21475let isNewValue = 1;
21476let isRestrictNoSlot1Store = 1;
21477let mayStore = 1;
21478let Uses = [CS];
21479let BaseOpcode = "S2_storeri_pci";
21480let opNewValue = 4;
21481let Constraints = "$Rx32 = $Rx32in";
21482}
21483def S2_storerinew_pcr : HInst<
21484(outs IntRegs:$Rx32),
21485(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21486"memw($Rx32++I:circ($Mu2)) = $Nt8.new",
21487tc_c79a189f, TypeST>, Enc_8dbe85, AddrModeRel {
21488let Inst{7-0} = 0b00000010;
21489let Inst{12-11} = 0b10;
21490let Inst{31-21} = 0b10101001101;
21491let addrMode = PostInc;
21492let accessSize = WordAccess;
21493let isNVStore = 1;
21494let isNewValue = 1;
21495let isRestrictNoSlot1Store = 1;
21496let mayStore = 1;
21497let Uses = [CS];
21498let BaseOpcode = "S2_storeri_pcr";
21499let opNewValue = 3;
21500let Constraints = "$Rx32 = $Rx32in";
21501}
21502def S2_storerinew_pi : HInst<
21503(outs IntRegs:$Rx32),
21504(ins IntRegs:$Rx32in, s4_2Imm:$Ii, IntRegs:$Nt8),
21505"memw($Rx32++#$Ii) = $Nt8.new",
21506tc_c79a189f, TypeST>, Enc_223005, AddrModeRel {
21507let Inst{2-0} = 0b000;
21508let Inst{7-7} = 0b0;
21509let Inst{13-11} = 0b010;
21510let Inst{31-21} = 0b10101011101;
21511let addrMode = PostInc;
21512let accessSize = WordAccess;
21513let isNVStore = 1;
21514let isNewValue = 1;
21515let isRestrictNoSlot1Store = 1;
21516let mayStore = 1;
21517let BaseOpcode = "S2_storeri_pi";
21518let isPredicable = 1;
21519let opNewValue = 3;
21520let Constraints = "$Rx32 = $Rx32in";
21521}
21522def S2_storerinew_pr : HInst<
21523(outs IntRegs:$Rx32),
21524(ins IntRegs:$Rx32in, ModRegs:$Mu2, IntRegs:$Nt8),
21525"memw($Rx32++$Mu2) = $Nt8.new",
21526tc_c79a189f, TypeST>, Enc_8dbe85 {
21527let Inst{7-0} = 0b00000000;
21528let Inst{12-11} = 0b10;
21529let Inst{31-21} = 0b10101101101;
21530let addrMode = PostInc;
21531let accessSize = WordAccess;
21532let isNVStore = 1;
21533let isNewValue = 1;
21534let isRestrictNoSlot1Store = 1;
21535let mayStore = 1;
21536let opNewValue = 3;
21537let Constraints = "$Rx32 = $Rx32in";
21538}
21539def S2_storerinew_zomap : HInst<
21540(outs),
21541(ins IntRegs:$Rs32, IntRegs:$Nt8),
21542"memw($Rs32) = $Nt8.new",
21543tc_be9602ff, TypeMAPPING> {
21544let isPseudo = 1;
21545let isCodeGenOnly = 1;
21546let opNewValue = 1;
21547}
21548def S2_storerinewgp : HInst<
21549(outs),
21550(ins u30_2Imm:$Ii, IntRegs:$Nt8),
21551"memw(gp+#$Ii) = $Nt8.new",
21552tc_5bf126a6, TypeV2LDST>, Enc_78cbf0, AddrModeRel {
21553let Inst{12-11} = 0b10;
21554let Inst{24-21} = 0b0101;
21555let Inst{31-27} = 0b01001;
21556let accessSize = WordAccess;
21557let isNVStore = 1;
21558let isNewValue = 1;
21559let isRestrictNoSlot1Store = 1;
21560let mayStore = 1;
21561let Uses = [GP];
21562let BaseOpcode = "S2_storeriabs";
21563let isPredicable = 1;
21564let opExtendable = 0;
21565let isExtentSigned = 0;
21566let opExtentBits = 18;
21567let opExtentAlign = 2;
21568let opNewValue = 1;
21569}
21570def S2_storew_locked : HInst<
21571(outs PredRegs:$Pd4),
21572(ins IntRegs:$Rs32, IntRegs:$Rt32),
21573"memw_locked($Rs32,$Pd4) = $Rt32",
21574tc_5abb5e3f, TypeST>, Enc_c2b48e {
21575let Inst{7-2} = 0b000000;
21576let Inst{13-13} = 0b0;
21577let Inst{31-21} = 0b10100000101;
21578let accessSize = WordAccess;
21579let isPredicateLate = 1;
21580let isSoloAX = 1;
21581let mayStore = 1;
21582}
21583def S2_svsathb : HInst<
21584(outs IntRegs:$Rd32),
21585(ins IntRegs:$Rs32),
21586"$Rd32 = vsathb($Rs32)",
21587tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21588let Inst{13-5} = 0b000000000;
21589let Inst{31-21} = 0b10001100100;
21590let hasNewValue = 1;
21591let opNewValue = 0;
21592let Defs = [USR_OVF];
21593}
21594def S2_svsathub : HInst<
21595(outs IntRegs:$Rd32),
21596(ins IntRegs:$Rs32),
21597"$Rd32 = vsathub($Rs32)",
21598tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21599let Inst{13-5} = 0b000000010;
21600let Inst{31-21} = 0b10001100100;
21601let hasNewValue = 1;
21602let opNewValue = 0;
21603let Defs = [USR_OVF];
21604}
21605def S2_tableidxb : HInst<
21606(outs IntRegs:$Rx32),
21607(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21608"$Rx32 = tableidxb($Rs32,#$Ii,#$II):raw",
21609tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21610let Inst{31-22} = 0b1000011100;
21611let hasNewValue = 1;
21612let opNewValue = 0;
21613let prefersSlot3 = 1;
21614let Constraints = "$Rx32 = $Rx32in";
21615}
21616def S2_tableidxb_goodsyntax : HInst<
21617(outs IntRegs:$Rx32),
21618(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21619"$Rx32 = tableidxb($Rs32,#$Ii,#$II)",
21620tc_bfec0f01, TypeS_2op> {
21621let hasNewValue = 1;
21622let opNewValue = 0;
21623let isPseudo = 1;
21624let isCodeGenOnly = 1;
21625let Constraints = "$Rx32 = $Rx32in";
21626}
21627def S2_tableidxd : HInst<
21628(outs IntRegs:$Rx32),
21629(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21630"$Rx32 = tableidxd($Rs32,#$Ii,#$II):raw",
21631tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21632let Inst{31-22} = 0b1000011111;
21633let hasNewValue = 1;
21634let opNewValue = 0;
21635let prefersSlot3 = 1;
21636let Constraints = "$Rx32 = $Rx32in";
21637}
21638def S2_tableidxd_goodsyntax : HInst<
21639(outs IntRegs:$Rx32),
21640(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21641"$Rx32 = tableidxd($Rs32,#$Ii,#$II)",
21642tc_bfec0f01, TypeS_2op> {
21643let hasNewValue = 1;
21644let opNewValue = 0;
21645let isPseudo = 1;
21646let Constraints = "$Rx32 = $Rx32in";
21647}
21648def S2_tableidxh : HInst<
21649(outs IntRegs:$Rx32),
21650(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21651"$Rx32 = tableidxh($Rs32,#$Ii,#$II):raw",
21652tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21653let Inst{31-22} = 0b1000011101;
21654let hasNewValue = 1;
21655let opNewValue = 0;
21656let prefersSlot3 = 1;
21657let Constraints = "$Rx32 = $Rx32in";
21658}
21659def S2_tableidxh_goodsyntax : HInst<
21660(outs IntRegs:$Rx32),
21661(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21662"$Rx32 = tableidxh($Rs32,#$Ii,#$II)",
21663tc_bfec0f01, TypeS_2op> {
21664let hasNewValue = 1;
21665let opNewValue = 0;
21666let isPseudo = 1;
21667let Constraints = "$Rx32 = $Rx32in";
21668}
21669def S2_tableidxw : HInst<
21670(outs IntRegs:$Rx32),
21671(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, s6_0Imm:$II),
21672"$Rx32 = tableidxw($Rs32,#$Ii,#$II):raw",
21673tc_bfec0f01, TypeS_2op>, Enc_cd82bc {
21674let Inst{31-22} = 0b1000011110;
21675let hasNewValue = 1;
21676let opNewValue = 0;
21677let prefersSlot3 = 1;
21678let Constraints = "$Rx32 = $Rx32in";
21679}
21680def S2_tableidxw_goodsyntax : HInst<
21681(outs IntRegs:$Rx32),
21682(ins IntRegs:$Rx32in, IntRegs:$Rs32, u4_0Imm:$Ii, u5_0Imm:$II),
21683"$Rx32 = tableidxw($Rs32,#$Ii,#$II)",
21684tc_bfec0f01, TypeS_2op> {
21685let hasNewValue = 1;
21686let opNewValue = 0;
21687let isPseudo = 1;
21688let Constraints = "$Rx32 = $Rx32in";
21689}
21690def S2_togglebit_i : HInst<
21691(outs IntRegs:$Rd32),
21692(ins IntRegs:$Rs32, u5_0Imm:$Ii),
21693"$Rd32 = togglebit($Rs32,#$Ii)",
21694tc_946df596, TypeS_2op>, Enc_a05677 {
21695let Inst{7-5} = 0b010;
21696let Inst{13-13} = 0b0;
21697let Inst{31-21} = 0b10001100110;
21698let hasNewValue = 1;
21699let opNewValue = 0;
21700}
21701def S2_togglebit_r : HInst<
21702(outs IntRegs:$Rd32),
21703(ins IntRegs:$Rs32, IntRegs:$Rt32),
21704"$Rd32 = togglebit($Rs32,$Rt32)",
21705tc_946df596, TypeS_3op>, Enc_5ab2be {
21706let Inst{7-5} = 0b100;
21707let Inst{13-13} = 0b0;
21708let Inst{31-21} = 0b11000110100;
21709let hasNewValue = 1;
21710let opNewValue = 0;
21711}
21712def S2_tstbit_i : HInst<
21713(outs PredRegs:$Pd4),
21714(ins IntRegs:$Rs32, u5_0Imm:$Ii),
21715"$Pd4 = tstbit($Rs32,#$Ii)",
21716tc_643b4717, TypeS_2op>, Enc_83ee64 {
21717let Inst{7-2} = 0b000000;
21718let Inst{13-13} = 0b0;
21719let Inst{31-21} = 0b10000101000;
21720}
21721def S2_tstbit_r : HInst<
21722(outs PredRegs:$Pd4),
21723(ins IntRegs:$Rs32, IntRegs:$Rt32),
21724"$Pd4 = tstbit($Rs32,$Rt32)",
21725tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
21726let Inst{7-2} = 0b000000;
21727let Inst{13-13} = 0b0;
21728let Inst{31-21} = 0b11000111000;
21729}
21730def S2_valignib : HInst<
21731(outs DoubleRegs:$Rdd32),
21732(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, u3_0Imm:$Ii),
21733"$Rdd32 = valignb($Rtt32,$Rss32,#$Ii)",
21734tc_b4b5c03a, TypeS_3op>, Enc_729ff7 {
21735let Inst{13-13} = 0b0;
21736let Inst{31-21} = 0b11000000000;
21737}
21738def S2_valignrb : HInst<
21739(outs DoubleRegs:$Rdd32),
21740(ins DoubleRegs:$Rtt32, DoubleRegs:$Rss32, PredRegs:$Pu4),
21741"$Rdd32 = valignb($Rtt32,$Rss32,$Pu4)",
21742tc_b4b5c03a, TypeS_3op>, Enc_8c6530 {
21743let Inst{7-7} = 0b0;
21744let Inst{13-13} = 0b0;
21745let Inst{31-21} = 0b11000010000;
21746}
21747def S2_vcnegh : HInst<
21748(outs DoubleRegs:$Rdd32),
21749(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21750"$Rdd32 = vcnegh($Rss32,$Rt32)",
21751tc_779080bf, TypeS_3op>, Enc_927852 {
21752let Inst{7-5} = 0b010;
21753let Inst{13-13} = 0b0;
21754let Inst{31-21} = 0b11000011110;
21755let prefersSlot3 = 1;
21756let Defs = [USR_OVF];
21757}
21758def S2_vcrotate : HInst<
21759(outs DoubleRegs:$Rdd32),
21760(ins DoubleRegs:$Rss32, IntRegs:$Rt32),
21761"$Rdd32 = vcrotate($Rss32,$Rt32)",
21762tc_002cb246, TypeS_3op>, Enc_927852 {
21763let Inst{7-5} = 0b000;
21764let Inst{13-13} = 0b0;
21765let Inst{31-21} = 0b11000011110;
21766let prefersSlot3 = 1;
21767let Defs = [USR_OVF];
21768}
21769def S2_vrcnegh : HInst<
21770(outs DoubleRegs:$Rxx32),
21771(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32),
21772"$Rxx32 += vrcnegh($Rss32,$Rt32)",
21773tc_d773585a, TypeS_3op>, Enc_1aa186 {
21774let Inst{7-5} = 0b111;
21775let Inst{13-13} = 0b1;
21776let Inst{31-21} = 0b11001011001;
21777let prefersSlot3 = 1;
21778let Constraints = "$Rxx32 = $Rxx32in";
21779}
21780def S2_vrndpackwh : HInst<
21781(outs IntRegs:$Rd32),
21782(ins DoubleRegs:$Rss32),
21783"$Rd32 = vrndwh($Rss32)",
21784tc_14b5c689, TypeS_2op>, Enc_90cd8b {
21785let Inst{13-5} = 0b000000100;
21786let Inst{31-21} = 0b10001000100;
21787let hasNewValue = 1;
21788let opNewValue = 0;
21789let prefersSlot3 = 1;
21790}
21791def S2_vrndpackwhs : HInst<
21792(outs IntRegs:$Rd32),
21793(ins DoubleRegs:$Rss32),
21794"$Rd32 = vrndwh($Rss32):sat",
21795tc_cf8126ae, TypeS_2op>, Enc_90cd8b {
21796let Inst{13-5} = 0b000000110;
21797let Inst{31-21} = 0b10001000100;
21798let hasNewValue = 1;
21799let opNewValue = 0;
21800let prefersSlot3 = 1;
21801let Defs = [USR_OVF];
21802}
21803def S2_vsathb : HInst<
21804(outs IntRegs:$Rd32),
21805(ins DoubleRegs:$Rss32),
21806"$Rd32 = vsathb($Rss32)",
21807tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21808let Inst{13-5} = 0b000000110;
21809let Inst{31-21} = 0b10001000000;
21810let hasNewValue = 1;
21811let opNewValue = 0;
21812let Defs = [USR_OVF];
21813}
21814def S2_vsathb_nopack : HInst<
21815(outs DoubleRegs:$Rdd32),
21816(ins DoubleRegs:$Rss32),
21817"$Rdd32 = vsathb($Rss32)",
21818tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21819let Inst{13-5} = 0b000000111;
21820let Inst{31-21} = 0b10000000000;
21821let Defs = [USR_OVF];
21822}
21823def S2_vsathub : HInst<
21824(outs IntRegs:$Rd32),
21825(ins DoubleRegs:$Rss32),
21826"$Rd32 = vsathub($Rss32)",
21827tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21828let Inst{13-5} = 0b000000000;
21829let Inst{31-21} = 0b10001000000;
21830let hasNewValue = 1;
21831let opNewValue = 0;
21832let Defs = [USR_OVF];
21833}
21834def S2_vsathub_nopack : HInst<
21835(outs DoubleRegs:$Rdd32),
21836(ins DoubleRegs:$Rss32),
21837"$Rdd32 = vsathub($Rss32)",
21838tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21839let Inst{13-5} = 0b000000100;
21840let Inst{31-21} = 0b10000000000;
21841let Defs = [USR_OVF];
21842}
21843def S2_vsatwh : HInst<
21844(outs IntRegs:$Rd32),
21845(ins DoubleRegs:$Rss32),
21846"$Rd32 = vsatwh($Rss32)",
21847tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21848let Inst{13-5} = 0b000000010;
21849let Inst{31-21} = 0b10001000000;
21850let hasNewValue = 1;
21851let opNewValue = 0;
21852let Defs = [USR_OVF];
21853}
21854def S2_vsatwh_nopack : HInst<
21855(outs DoubleRegs:$Rdd32),
21856(ins DoubleRegs:$Rss32),
21857"$Rdd32 = vsatwh($Rss32)",
21858tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21859let Inst{13-5} = 0b000000110;
21860let Inst{31-21} = 0b10000000000;
21861let Defs = [USR_OVF];
21862}
21863def S2_vsatwuh : HInst<
21864(outs IntRegs:$Rd32),
21865(ins DoubleRegs:$Rss32),
21866"$Rd32 = vsatwuh($Rss32)",
21867tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21868let Inst{13-5} = 0b000000100;
21869let Inst{31-21} = 0b10001000000;
21870let hasNewValue = 1;
21871let opNewValue = 0;
21872let Defs = [USR_OVF];
21873}
21874def S2_vsatwuh_nopack : HInst<
21875(outs DoubleRegs:$Rdd32),
21876(ins DoubleRegs:$Rss32),
21877"$Rdd32 = vsatwuh($Rss32)",
21878tc_0ae0825c, TypeS_2op>, Enc_b9c5fb {
21879let Inst{13-5} = 0b000000101;
21880let Inst{31-21} = 0b10000000000;
21881let Defs = [USR_OVF];
21882}
21883def S2_vsplatrb : HInst<
21884(outs IntRegs:$Rd32),
21885(ins IntRegs:$Rs32),
21886"$Rd32 = vsplatb($Rs32)",
21887tc_0ae0825c, TypeS_2op>, Enc_5e2823 {
21888let Inst{13-5} = 0b000000111;
21889let Inst{31-21} = 0b10001100010;
21890let hasNewValue = 1;
21891let opNewValue = 0;
21892let isReMaterializable = 1;
21893let isAsCheapAsAMove = 1;
21894}
21895def S2_vsplatrh : HInst<
21896(outs DoubleRegs:$Rdd32),
21897(ins IntRegs:$Rs32),
21898"$Rdd32 = vsplath($Rs32)",
21899tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21900let Inst{13-5} = 0b000000010;
21901let Inst{31-21} = 0b10000100010;
21902let isReMaterializable = 1;
21903let isAsCheapAsAMove = 1;
21904}
21905def S2_vspliceib : HInst<
21906(outs DoubleRegs:$Rdd32),
21907(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, u3_0Imm:$Ii),
21908"$Rdd32 = vspliceb($Rss32,$Rtt32,#$Ii)",
21909tc_b4b5c03a, TypeS_3op>, Enc_d50cd3 {
21910let Inst{13-13} = 0b0;
21911let Inst{31-21} = 0b11000000100;
21912}
21913def S2_vsplicerb : HInst<
21914(outs DoubleRegs:$Rdd32),
21915(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32, PredRegs:$Pu4),
21916"$Rdd32 = vspliceb($Rss32,$Rtt32,$Pu4)",
21917tc_b4b5c03a, TypeS_3op>, Enc_dbd70c {
21918let Inst{7-7} = 0b0;
21919let Inst{13-13} = 0b0;
21920let Inst{31-21} = 0b11000010100;
21921}
21922def S2_vsxtbh : HInst<
21923(outs DoubleRegs:$Rdd32),
21924(ins IntRegs:$Rs32),
21925"$Rdd32 = vsxtbh($Rs32)",
21926tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21927let Inst{13-5} = 0b000000000;
21928let Inst{31-21} = 0b10000100000;
21929let isReMaterializable = 1;
21930let isAsCheapAsAMove = 1;
21931}
21932def S2_vsxthw : HInst<
21933(outs DoubleRegs:$Rdd32),
21934(ins IntRegs:$Rs32),
21935"$Rdd32 = vsxthw($Rs32)",
21936tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21937let Inst{13-5} = 0b000000100;
21938let Inst{31-21} = 0b10000100000;
21939let isReMaterializable = 1;
21940let isAsCheapAsAMove = 1;
21941}
21942def S2_vtrunehb : HInst<
21943(outs IntRegs:$Rd32),
21944(ins DoubleRegs:$Rss32),
21945"$Rd32 = vtrunehb($Rss32)",
21946tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21947let Inst{13-5} = 0b000000010;
21948let Inst{31-21} = 0b10001000100;
21949let hasNewValue = 1;
21950let opNewValue = 0;
21951}
21952def S2_vtrunewh : HInst<
21953(outs DoubleRegs:$Rdd32),
21954(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21955"$Rdd32 = vtrunewh($Rss32,$Rtt32)",
21956tc_946df596, TypeS_3op>, Enc_a56825 {
21957let Inst{7-5} = 0b010;
21958let Inst{13-13} = 0b0;
21959let Inst{31-21} = 0b11000001100;
21960}
21961def S2_vtrunohb : HInst<
21962(outs IntRegs:$Rd32),
21963(ins DoubleRegs:$Rss32),
21964"$Rd32 = vtrunohb($Rss32)",
21965tc_0ae0825c, TypeS_2op>, Enc_90cd8b {
21966let Inst{13-5} = 0b000000000;
21967let Inst{31-21} = 0b10001000100;
21968let hasNewValue = 1;
21969let opNewValue = 0;
21970}
21971def S2_vtrunowh : HInst<
21972(outs DoubleRegs:$Rdd32),
21973(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
21974"$Rdd32 = vtrunowh($Rss32,$Rtt32)",
21975tc_946df596, TypeS_3op>, Enc_a56825 {
21976let Inst{7-5} = 0b100;
21977let Inst{13-13} = 0b0;
21978let Inst{31-21} = 0b11000001100;
21979}
21980def S2_vzxtbh : HInst<
21981(outs DoubleRegs:$Rdd32),
21982(ins IntRegs:$Rs32),
21983"$Rdd32 = vzxtbh($Rs32)",
21984tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21985let Inst{13-5} = 0b000000010;
21986let Inst{31-21} = 0b10000100000;
21987let isReMaterializable = 1;
21988let isAsCheapAsAMove = 1;
21989}
21990def S2_vzxthw : HInst<
21991(outs DoubleRegs:$Rdd32),
21992(ins IntRegs:$Rs32),
21993"$Rdd32 = vzxthw($Rs32)",
21994tc_0ae0825c, TypeS_2op>, Enc_3a3d62 {
21995let Inst{13-5} = 0b000000110;
21996let Inst{31-21} = 0b10000100000;
21997let isReMaterializable = 1;
21998let isAsCheapAsAMove = 1;
21999}
22000def S4_addaddi : HInst<
22001(outs IntRegs:$Rd32),
22002(ins IntRegs:$Rs32, IntRegs:$Ru32, s32_0Imm:$Ii),
22003"$Rd32 = add($Rs32,add($Ru32,#$Ii))",
22004tc_f675fee8, TypeALU64>, Enc_8b8d61 {
22005let Inst{31-23} = 0b110110110;
22006let hasNewValue = 1;
22007let opNewValue = 0;
22008let prefersSlot3 = 1;
22009let isExtendable = 1;
22010let opExtendable = 3;
22011let isExtentSigned = 1;
22012let opExtentBits = 6;
22013let opExtentAlign = 0;
22014}
22015def S4_addi_asl_ri : HInst<
22016(outs IntRegs:$Rx32),
22017(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22018"$Rx32 = add(#$Ii,asl($Rx32in,#$II))",
22019tc_f675fee8, TypeALU64>, Enc_c31910 {
22020let Inst{2-0} = 0b100;
22021let Inst{4-4} = 0b0;
22022let Inst{31-24} = 0b11011110;
22023let hasNewValue = 1;
22024let opNewValue = 0;
22025let prefersSlot3 = 1;
22026let isExtendable = 1;
22027let opExtendable = 1;
22028let isExtentSigned = 0;
22029let opExtentBits = 8;
22030let opExtentAlign = 0;
22031let Constraints = "$Rx32 = $Rx32in";
22032}
22033def S4_addi_lsr_ri : HInst<
22034(outs IntRegs:$Rx32),
22035(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22036"$Rx32 = add(#$Ii,lsr($Rx32in,#$II))",
22037tc_f675fee8, TypeALU64>, Enc_c31910 {
22038let Inst{2-0} = 0b100;
22039let Inst{4-4} = 0b1;
22040let Inst{31-24} = 0b11011110;
22041let hasNewValue = 1;
22042let opNewValue = 0;
22043let prefersSlot3 = 1;
22044let isExtendable = 1;
22045let opExtendable = 1;
22046let isExtentSigned = 0;
22047let opExtentBits = 8;
22048let opExtentAlign = 0;
22049let Constraints = "$Rx32 = $Rx32in";
22050}
22051def S4_andi_asl_ri : HInst<
22052(outs IntRegs:$Rx32),
22053(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22054"$Rx32 = and(#$Ii,asl($Rx32in,#$II))",
22055tc_f429765c, TypeALU64>, Enc_c31910 {
22056let Inst{2-0} = 0b000;
22057let Inst{4-4} = 0b0;
22058let Inst{31-24} = 0b11011110;
22059let hasNewValue = 1;
22060let opNewValue = 0;
22061let prefersSlot3 = 1;
22062let isExtendable = 1;
22063let opExtendable = 1;
22064let isExtentSigned = 0;
22065let opExtentBits = 8;
22066let opExtentAlign = 0;
22067let Constraints = "$Rx32 = $Rx32in";
22068}
22069def S4_andi_lsr_ri : HInst<
22070(outs IntRegs:$Rx32),
22071(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22072"$Rx32 = and(#$Ii,lsr($Rx32in,#$II))",
22073tc_f429765c, TypeALU64>, Enc_c31910 {
22074let Inst{2-0} = 0b000;
22075let Inst{4-4} = 0b1;
22076let Inst{31-24} = 0b11011110;
22077let hasNewValue = 1;
22078let opNewValue = 0;
22079let prefersSlot3 = 1;
22080let isExtendable = 1;
22081let opExtendable = 1;
22082let isExtentSigned = 0;
22083let opExtentBits = 8;
22084let opExtentAlign = 0;
22085let Constraints = "$Rx32 = $Rx32in";
22086}
22087def S4_clbaddi : HInst<
22088(outs IntRegs:$Rd32),
22089(ins IntRegs:$Rs32, s6_0Imm:$Ii),
22090"$Rd32 = add(clb($Rs32),#$Ii)",
22091tc_002cb246, TypeS_2op>, Enc_9fae8a {
22092let Inst{7-5} = 0b000;
22093let Inst{31-21} = 0b10001100001;
22094let hasNewValue = 1;
22095let opNewValue = 0;
22096let prefersSlot3 = 1;
22097}
22098def S4_clbpaddi : HInst<
22099(outs IntRegs:$Rd32),
22100(ins DoubleRegs:$Rss32, s6_0Imm:$Ii),
22101"$Rd32 = add(clb($Rss32),#$Ii)",
22102tc_002cb246, TypeS_2op>, Enc_a1640c {
22103let Inst{7-5} = 0b010;
22104let Inst{31-21} = 0b10001000011;
22105let hasNewValue = 1;
22106let opNewValue = 0;
22107let prefersSlot3 = 1;
22108}
22109def S4_clbpnorm : HInst<
22110(outs IntRegs:$Rd32),
22111(ins DoubleRegs:$Rss32),
22112"$Rd32 = normamt($Rss32)",
22113tc_14b5c689, TypeS_2op>, Enc_90cd8b {
22114let Inst{13-5} = 0b000000000;
22115let Inst{31-21} = 0b10001000011;
22116let hasNewValue = 1;
22117let opNewValue = 0;
22118let prefersSlot3 = 1;
22119}
22120def S4_extract : HInst<
22121(outs IntRegs:$Rd32),
22122(ins IntRegs:$Rs32, u5_0Imm:$Ii, u5_0Imm:$II),
22123"$Rd32 = extract($Rs32,#$Ii,#$II)",
22124tc_f675fee8, TypeS_2op>, Enc_b388cf {
22125let Inst{13-13} = 0b0;
22126let Inst{31-23} = 0b100011011;
22127let hasNewValue = 1;
22128let opNewValue = 0;
22129let prefersSlot3 = 1;
22130}
22131def S4_extract_rp : HInst<
22132(outs IntRegs:$Rd32),
22133(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
22134"$Rd32 = extract($Rs32,$Rtt32)",
22135tc_002cb246, TypeS_3op>, Enc_e07374 {
22136let Inst{7-5} = 0b010;
22137let Inst{13-13} = 0b0;
22138let Inst{31-21} = 0b11001001000;
22139let hasNewValue = 1;
22140let opNewValue = 0;
22141let prefersSlot3 = 1;
22142}
22143def S4_extractp : HInst<
22144(outs DoubleRegs:$Rdd32),
22145(ins DoubleRegs:$Rss32, u6_0Imm:$Ii, u6_0Imm:$II),
22146"$Rdd32 = extract($Rss32,#$Ii,#$II)",
22147tc_f675fee8, TypeS_2op>, Enc_b84c4c {
22148let Inst{31-24} = 0b10001010;
22149let prefersSlot3 = 1;
22150}
22151def S4_extractp_rp : HInst<
22152(outs DoubleRegs:$Rdd32),
22153(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
22154"$Rdd32 = extract($Rss32,$Rtt32)",
22155tc_002cb246, TypeS_3op>, Enc_a56825 {
22156let Inst{7-5} = 0b100;
22157let Inst{13-13} = 0b0;
22158let Inst{31-21} = 0b11000001110;
22159let prefersSlot3 = 1;
22160}
22161def S4_lsli : HInst<
22162(outs IntRegs:$Rd32),
22163(ins s6_0Imm:$Ii, IntRegs:$Rt32),
22164"$Rd32 = lsl(#$Ii,$Rt32)",
22165tc_946df596, TypeS_3op>, Enc_fef969 {
22166let Inst{7-6} = 0b11;
22167let Inst{13-13} = 0b0;
22168let Inst{31-21} = 0b11000110100;
22169let hasNewValue = 1;
22170let opNewValue = 0;
22171}
22172def S4_ntstbit_i : HInst<
22173(outs PredRegs:$Pd4),
22174(ins IntRegs:$Rs32, u5_0Imm:$Ii),
22175"$Pd4 = !tstbit($Rs32,#$Ii)",
22176tc_643b4717, TypeS_2op>, Enc_83ee64 {
22177let Inst{7-2} = 0b000000;
22178let Inst{13-13} = 0b0;
22179let Inst{31-21} = 0b10000101001;
22180}
22181def S4_ntstbit_r : HInst<
22182(outs PredRegs:$Pd4),
22183(ins IntRegs:$Rs32, IntRegs:$Rt32),
22184"$Pd4 = !tstbit($Rs32,$Rt32)",
22185tc_85d5d03f, TypeS_3op>, Enc_c2b48e {
22186let Inst{7-2} = 0b000000;
22187let Inst{13-13} = 0b0;
22188let Inst{31-21} = 0b11000111001;
22189}
22190def S4_or_andi : HInst<
22191(outs IntRegs:$Rx32),
22192(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22193"$Rx32 |= and($Rs32,#$Ii)",
22194tc_f429765c, TypeALU64>, Enc_b0e9d8 {
22195let Inst{31-22} = 0b1101101000;
22196let hasNewValue = 1;
22197let opNewValue = 0;
22198let prefersSlot3 = 1;
22199let InputType = "imm";
22200let isExtendable = 1;
22201let opExtendable = 3;
22202let isExtentSigned = 1;
22203let opExtentBits = 10;
22204let opExtentAlign = 0;
22205let Constraints = "$Rx32 = $Rx32in";
22206}
22207def S4_or_andix : HInst<
22208(outs IntRegs:$Rx32),
22209(ins IntRegs:$Ru32, IntRegs:$Rx32in, s32_0Imm:$Ii),
22210"$Rx32 = or($Ru32,and($Rx32in,#$Ii))",
22211tc_f429765c, TypeALU64>, Enc_b4e6cf {
22212let Inst{31-22} = 0b1101101001;
22213let hasNewValue = 1;
22214let opNewValue = 0;
22215let prefersSlot3 = 1;
22216let isExtendable = 1;
22217let opExtendable = 3;
22218let isExtentSigned = 1;
22219let opExtentBits = 10;
22220let opExtentAlign = 0;
22221let Constraints = "$Rx32 = $Rx32in";
22222}
22223def S4_or_ori : HInst<
22224(outs IntRegs:$Rx32),
22225(ins IntRegs:$Rx32in, IntRegs:$Rs32, s32_0Imm:$Ii),
22226"$Rx32 |= or($Rs32,#$Ii)",
22227tc_f429765c, TypeALU64>, Enc_b0e9d8 {
22228let Inst{31-22} = 0b1101101010;
22229let hasNewValue = 1;
22230let opNewValue = 0;
22231let prefersSlot3 = 1;
22232let InputType = "imm";
22233let isExtendable = 1;
22234let opExtendable = 3;
22235let isExtentSigned = 1;
22236let opExtentBits = 10;
22237let opExtentAlign = 0;
22238let Constraints = "$Rx32 = $Rx32in";
22239}
22240def S4_ori_asl_ri : HInst<
22241(outs IntRegs:$Rx32),
22242(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22243"$Rx32 = or(#$Ii,asl($Rx32in,#$II))",
22244tc_f429765c, TypeALU64>, Enc_c31910 {
22245let Inst{2-0} = 0b010;
22246let Inst{4-4} = 0b0;
22247let Inst{31-24} = 0b11011110;
22248let hasNewValue = 1;
22249let opNewValue = 0;
22250let prefersSlot3 = 1;
22251let isExtendable = 1;
22252let opExtendable = 1;
22253let isExtentSigned = 0;
22254let opExtentBits = 8;
22255let opExtentAlign = 0;
22256let Constraints = "$Rx32 = $Rx32in";
22257}
22258def S4_ori_lsr_ri : HInst<
22259(outs IntRegs:$Rx32),
22260(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
22261"$Rx32 = or(#$Ii,lsr($Rx32in,#$II))",
22262tc_f429765c, TypeALU64>, Enc_c31910 {
22263let Inst{2-0} = 0b010;
22264let Inst{4-4} = 0b1;
22265let Inst{31-24} = 0b11011110;
22266let hasNewValue = 1;
22267let opNewValue = 0;
22268let prefersSlot3 = 1;
22269let isExtendable = 1;
22270let opExtendable = 1;
22271let isExtentSigned = 0;
22272let opExtentBits = 8;
22273let opExtentAlign = 0;
22274let Constraints = "$Rx32 = $Rx32in";
22275}
22276def S4_parity : HInst<
22277(outs IntRegs:$Rd32),
22278(ins IntRegs:$Rs32, IntRegs:$Rt32),
22279"$Rd32 = parity($Rs32,$Rt32)",
22280tc_002cb246, TypeALU64>, Enc_5ab2be {
22281let Inst{7-5} = 0b000;
22282let Inst{13-13} = 0b0;
22283let Inst{31-21} = 0b11010101111;
22284let hasNewValue = 1;
22285let opNewValue = 0;
22286let prefersSlot3 = 1;
22287}
22288def S4_pstorerbf_abs : HInst<
22289(outs),
22290(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22291"if (!$Pv4) memb(#$Ii) = $Rt32",
22292tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22293let Inst{2-2} = 0b1;
22294let Inst{7-7} = 0b1;
22295let Inst{13-13} = 0b0;
22296let Inst{31-18} = 0b10101111000000;
22297let isPredicated = 1;
22298let isPredicatedFalse = 1;
22299let addrMode = Absolute;
22300let accessSize = ByteAccess;
22301let isExtended = 1;
22302let mayStore = 1;
22303let CextOpcode = "S2_storerb";
22304let BaseOpcode = "S2_storerbabs";
22305let isNVStorable = 1;
22306let DecoderNamespace = "MustExtend";
22307let isExtendable = 1;
22308let opExtendable = 1;
22309let isExtentSigned = 0;
22310let opExtentBits = 6;
22311let opExtentAlign = 0;
22312}
22313def S4_pstorerbf_rr : HInst<
22314(outs),
22315(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22316"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22317tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
22318let Inst{31-21} = 0b00110101000;
22319let isPredicated = 1;
22320let isPredicatedFalse = 1;
22321let addrMode = BaseRegOffset;
22322let accessSize = ByteAccess;
22323let mayStore = 1;
22324let CextOpcode = "S2_storerb";
22325let InputType = "reg";
22326let BaseOpcode = "S4_storerb_rr";
22327let isNVStorable = 1;
22328}
22329def S4_pstorerbfnew_abs : HInst<
22330(outs),
22331(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22332"if (!$Pv4.new) memb(#$Ii) = $Rt32",
22333tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
22334let Inst{2-2} = 0b1;
22335let Inst{7-7} = 0b1;
22336let Inst{13-13} = 0b1;
22337let Inst{31-18} = 0b10101111000000;
22338let isPredicated = 1;
22339let isPredicatedFalse = 1;
22340let addrMode = Absolute;
22341let accessSize = ByteAccess;
22342let isPredicatedNew = 1;
22343let isExtended = 1;
22344let mayStore = 1;
22345let CextOpcode = "S2_storerb";
22346let BaseOpcode = "S2_storerbabs";
22347let isNVStorable = 1;
22348let DecoderNamespace = "MustExtend";
22349let isExtendable = 1;
22350let opExtendable = 1;
22351let isExtentSigned = 0;
22352let opExtentBits = 6;
22353let opExtentAlign = 0;
22354}
22355def S4_pstorerbfnew_io : HInst<
22356(outs),
22357(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22358"if (!$Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22359tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22360let Inst{2-2} = 0b0;
22361let Inst{31-21} = 0b01000110000;
22362let isPredicated = 1;
22363let isPredicatedFalse = 1;
22364let addrMode = BaseImmOffset;
22365let accessSize = ByteAccess;
22366let isPredicatedNew = 1;
22367let mayStore = 1;
22368let CextOpcode = "S2_storerb";
22369let InputType = "imm";
22370let BaseOpcode = "S2_storerb_io";
22371let isNVStorable = 1;
22372let isExtendable = 1;
22373let opExtendable = 2;
22374let isExtentSigned = 0;
22375let opExtentBits = 6;
22376let opExtentAlign = 0;
22377}
22378def S4_pstorerbfnew_rr : HInst<
22379(outs),
22380(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22381"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22382tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
22383let Inst{31-21} = 0b00110111000;
22384let isPredicated = 1;
22385let isPredicatedFalse = 1;
22386let addrMode = BaseRegOffset;
22387let accessSize = ByteAccess;
22388let isPredicatedNew = 1;
22389let mayStore = 1;
22390let CextOpcode = "S2_storerb";
22391let InputType = "reg";
22392let BaseOpcode = "S4_storerb_rr";
22393let isNVStorable = 1;
22394}
22395def S4_pstorerbfnew_zomap : HInst<
22396(outs),
22397(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22398"if (!$Pv4.new) memb($Rs32) = $Rt32",
22399tc_da97ee82, TypeMAPPING> {
22400let isPseudo = 1;
22401let isCodeGenOnly = 1;
22402}
22403def S4_pstorerbnewf_abs : HInst<
22404(outs),
22405(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22406"if (!$Pv4) memb(#$Ii) = $Nt8.new",
22407tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
22408let Inst{2-2} = 0b1;
22409let Inst{7-7} = 0b1;
22410let Inst{13-11} = 0b000;
22411let Inst{31-18} = 0b10101111101000;
22412let isPredicated = 1;
22413let isPredicatedFalse = 1;
22414let addrMode = Absolute;
22415let accessSize = ByteAccess;
22416let isNVStore = 1;
22417let isNewValue = 1;
22418let isExtended = 1;
22419let isRestrictNoSlot1Store = 1;
22420let mayStore = 1;
22421let CextOpcode = "S2_storerb";
22422let BaseOpcode = "S2_storerbabs";
22423let DecoderNamespace = "MustExtend";
22424let isExtendable = 1;
22425let opExtendable = 1;
22426let isExtentSigned = 0;
22427let opExtentBits = 6;
22428let opExtentAlign = 0;
22429let opNewValue = 2;
22430}
22431def S4_pstorerbnewf_rr : HInst<
22432(outs),
22433(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22434"if (!$Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22435tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
22436let Inst{4-3} = 0b00;
22437let Inst{31-21} = 0b00110101101;
22438let isPredicated = 1;
22439let isPredicatedFalse = 1;
22440let addrMode = BaseRegOffset;
22441let accessSize = ByteAccess;
22442let isNVStore = 1;
22443let isNewValue = 1;
22444let isRestrictNoSlot1Store = 1;
22445let mayStore = 1;
22446let CextOpcode = "S2_storerb";
22447let InputType = "reg";
22448let BaseOpcode = "S4_storerb_rr";
22449let opNewValue = 4;
22450}
22451def S4_pstorerbnewfnew_abs : HInst<
22452(outs),
22453(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22454"if (!$Pv4.new) memb(#$Ii) = $Nt8.new",
22455tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
22456let Inst{2-2} = 0b1;
22457let Inst{7-7} = 0b1;
22458let Inst{13-11} = 0b100;
22459let Inst{31-18} = 0b10101111101000;
22460let isPredicated = 1;
22461let isPredicatedFalse = 1;
22462let addrMode = Absolute;
22463let accessSize = ByteAccess;
22464let isNVStore = 1;
22465let isPredicatedNew = 1;
22466let isNewValue = 1;
22467let isExtended = 1;
22468let isRestrictNoSlot1Store = 1;
22469let mayStore = 1;
22470let CextOpcode = "S2_storerb";
22471let BaseOpcode = "S2_storerbabs";
22472let DecoderNamespace = "MustExtend";
22473let isExtendable = 1;
22474let opExtendable = 1;
22475let isExtentSigned = 0;
22476let opExtentBits = 6;
22477let opExtentAlign = 0;
22478let opNewValue = 2;
22479}
22480def S4_pstorerbnewfnew_io : HInst<
22481(outs),
22482(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22483"if (!$Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22484tc_c79a189f, TypeV2LDST>, Enc_585242, AddrModeRel {
22485let Inst{2-2} = 0b0;
22486let Inst{12-11} = 0b00;
22487let Inst{31-21} = 0b01000110101;
22488let isPredicated = 1;
22489let isPredicatedFalse = 1;
22490let addrMode = BaseImmOffset;
22491let accessSize = ByteAccess;
22492let isNVStore = 1;
22493let isPredicatedNew = 1;
22494let isNewValue = 1;
22495let isRestrictNoSlot1Store = 1;
22496let mayStore = 1;
22497let CextOpcode = "S2_storerb";
22498let InputType = "imm";
22499let BaseOpcode = "S2_storerb_io";
22500let isExtendable = 1;
22501let opExtendable = 2;
22502let isExtentSigned = 0;
22503let opExtentBits = 6;
22504let opExtentAlign = 0;
22505let opNewValue = 3;
22506}
22507def S4_pstorerbnewfnew_rr : HInst<
22508(outs),
22509(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22510"if (!$Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22511tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
22512let Inst{4-3} = 0b00;
22513let Inst{31-21} = 0b00110111101;
22514let isPredicated = 1;
22515let isPredicatedFalse = 1;
22516let addrMode = BaseRegOffset;
22517let accessSize = ByteAccess;
22518let isNVStore = 1;
22519let isPredicatedNew = 1;
22520let isNewValue = 1;
22521let isRestrictNoSlot1Store = 1;
22522let mayStore = 1;
22523let CextOpcode = "S2_storerb";
22524let InputType = "reg";
22525let BaseOpcode = "S4_storerb_rr";
22526let opNewValue = 4;
22527}
22528def S4_pstorerbnewfnew_zomap : HInst<
22529(outs),
22530(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22531"if (!$Pv4.new) memb($Rs32) = $Nt8.new",
22532tc_c79a189f, TypeMAPPING> {
22533let isPseudo = 1;
22534let isCodeGenOnly = 1;
22535let opNewValue = 2;
22536}
22537def S4_pstorerbnewt_abs : HInst<
22538(outs),
22539(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22540"if ($Pv4) memb(#$Ii) = $Nt8.new",
22541tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
22542let Inst{2-2} = 0b0;
22543let Inst{7-7} = 0b1;
22544let Inst{13-11} = 0b000;
22545let Inst{31-18} = 0b10101111101000;
22546let isPredicated = 1;
22547let addrMode = Absolute;
22548let accessSize = ByteAccess;
22549let isNVStore = 1;
22550let isNewValue = 1;
22551let isExtended = 1;
22552let isRestrictNoSlot1Store = 1;
22553let mayStore = 1;
22554let CextOpcode = "S2_storerb";
22555let BaseOpcode = "S2_storerbabs";
22556let DecoderNamespace = "MustExtend";
22557let isExtendable = 1;
22558let opExtendable = 1;
22559let isExtentSigned = 0;
22560let opExtentBits = 6;
22561let opExtentAlign = 0;
22562let opNewValue = 2;
22563}
22564def S4_pstorerbnewt_rr : HInst<
22565(outs),
22566(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22567"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22568tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
22569let Inst{4-3} = 0b00;
22570let Inst{31-21} = 0b00110100101;
22571let isPredicated = 1;
22572let addrMode = BaseRegOffset;
22573let accessSize = ByteAccess;
22574let isNVStore = 1;
22575let isNewValue = 1;
22576let isRestrictNoSlot1Store = 1;
22577let mayStore = 1;
22578let CextOpcode = "S2_storerb";
22579let InputType = "reg";
22580let BaseOpcode = "S4_storerb_rr";
22581let opNewValue = 4;
22582}
22583def S4_pstorerbnewtnew_abs : HInst<
22584(outs),
22585(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
22586"if ($Pv4.new) memb(#$Ii) = $Nt8.new",
22587tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
22588let Inst{2-2} = 0b0;
22589let Inst{7-7} = 0b1;
22590let Inst{13-11} = 0b100;
22591let Inst{31-18} = 0b10101111101000;
22592let isPredicated = 1;
22593let addrMode = Absolute;
22594let accessSize = ByteAccess;
22595let isNVStore = 1;
22596let isPredicatedNew = 1;
22597let isNewValue = 1;
22598let isExtended = 1;
22599let isRestrictNoSlot1Store = 1;
22600let mayStore = 1;
22601let CextOpcode = "S2_storerb";
22602let BaseOpcode = "S2_storerbabs";
22603let DecoderNamespace = "MustExtend";
22604let isExtendable = 1;
22605let opExtendable = 1;
22606let isExtentSigned = 0;
22607let opExtentBits = 6;
22608let opExtentAlign = 0;
22609let opNewValue = 2;
22610}
22611def S4_pstorerbnewtnew_io : HInst<
22612(outs),
22613(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Nt8),
22614"if ($Pv4.new) memb($Rs32+#$Ii) = $Nt8.new",
22615tc_c79a189f, TypeV2LDST>, Enc_585242, AddrModeRel {
22616let Inst{2-2} = 0b0;
22617let Inst{12-11} = 0b00;
22618let Inst{31-21} = 0b01000010101;
22619let isPredicated = 1;
22620let addrMode = BaseImmOffset;
22621let accessSize = ByteAccess;
22622let isNVStore = 1;
22623let isPredicatedNew = 1;
22624let isNewValue = 1;
22625let isRestrictNoSlot1Store = 1;
22626let mayStore = 1;
22627let CextOpcode = "S2_storerb";
22628let InputType = "imm";
22629let BaseOpcode = "S2_storerb_io";
22630let isExtendable = 1;
22631let opExtendable = 2;
22632let isExtentSigned = 0;
22633let opExtentBits = 6;
22634let opExtentAlign = 0;
22635let opNewValue = 3;
22636}
22637def S4_pstorerbnewtnew_rr : HInst<
22638(outs),
22639(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
22640"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
22641tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
22642let Inst{4-3} = 0b00;
22643let Inst{31-21} = 0b00110110101;
22644let isPredicated = 1;
22645let addrMode = BaseRegOffset;
22646let accessSize = ByteAccess;
22647let isNVStore = 1;
22648let isPredicatedNew = 1;
22649let isNewValue = 1;
22650let isRestrictNoSlot1Store = 1;
22651let mayStore = 1;
22652let CextOpcode = "S2_storerb";
22653let InputType = "reg";
22654let BaseOpcode = "S4_storerb_rr";
22655let opNewValue = 4;
22656}
22657def S4_pstorerbnewtnew_zomap : HInst<
22658(outs),
22659(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
22660"if ($Pv4.new) memb($Rs32) = $Nt8.new",
22661tc_c79a189f, TypeMAPPING> {
22662let isPseudo = 1;
22663let isCodeGenOnly = 1;
22664let opNewValue = 2;
22665}
22666def S4_pstorerbt_abs : HInst<
22667(outs),
22668(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22669"if ($Pv4) memb(#$Ii) = $Rt32",
22670tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22671let Inst{2-2} = 0b0;
22672let Inst{7-7} = 0b1;
22673let Inst{13-13} = 0b0;
22674let Inst{31-18} = 0b10101111000000;
22675let isPredicated = 1;
22676let addrMode = Absolute;
22677let accessSize = ByteAccess;
22678let isExtended = 1;
22679let mayStore = 1;
22680let CextOpcode = "S2_storerb";
22681let BaseOpcode = "S2_storerbabs";
22682let isNVStorable = 1;
22683let DecoderNamespace = "MustExtend";
22684let isExtendable = 1;
22685let opExtendable = 1;
22686let isExtentSigned = 0;
22687let opExtentBits = 6;
22688let opExtentAlign = 0;
22689}
22690def S4_pstorerbt_rr : HInst<
22691(outs),
22692(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22693"if ($Pv4) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22694tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
22695let Inst{31-21} = 0b00110100000;
22696let isPredicated = 1;
22697let addrMode = BaseRegOffset;
22698let accessSize = ByteAccess;
22699let mayStore = 1;
22700let CextOpcode = "S2_storerb";
22701let InputType = "reg";
22702let BaseOpcode = "S4_storerb_rr";
22703let isNVStorable = 1;
22704}
22705def S4_pstorerbtnew_abs : HInst<
22706(outs),
22707(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22708"if ($Pv4.new) memb(#$Ii) = $Rt32",
22709tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
22710let Inst{2-2} = 0b0;
22711let Inst{7-7} = 0b1;
22712let Inst{13-13} = 0b1;
22713let Inst{31-18} = 0b10101111000000;
22714let isPredicated = 1;
22715let addrMode = Absolute;
22716let accessSize = ByteAccess;
22717let isPredicatedNew = 1;
22718let isExtended = 1;
22719let mayStore = 1;
22720let CextOpcode = "S2_storerb";
22721let BaseOpcode = "S2_storerbabs";
22722let isNVStorable = 1;
22723let DecoderNamespace = "MustExtend";
22724let isExtendable = 1;
22725let opExtendable = 1;
22726let isExtentSigned = 0;
22727let opExtentBits = 6;
22728let opExtentAlign = 0;
22729}
22730def S4_pstorerbtnew_io : HInst<
22731(outs),
22732(ins PredRegs:$Pv4, IntRegs:$Rs32, u32_0Imm:$Ii, IntRegs:$Rt32),
22733"if ($Pv4.new) memb($Rs32+#$Ii) = $Rt32",
22734tc_da97ee82, TypeV2LDST>, Enc_da8d43, AddrModeRel {
22735let Inst{2-2} = 0b0;
22736let Inst{31-21} = 0b01000010000;
22737let isPredicated = 1;
22738let addrMode = BaseImmOffset;
22739let accessSize = ByteAccess;
22740let isPredicatedNew = 1;
22741let mayStore = 1;
22742let CextOpcode = "S2_storerb";
22743let InputType = "imm";
22744let BaseOpcode = "S2_storerb_io";
22745let isNVStorable = 1;
22746let isExtendable = 1;
22747let opExtendable = 2;
22748let isExtentSigned = 0;
22749let opExtentBits = 6;
22750let opExtentAlign = 0;
22751}
22752def S4_pstorerbtnew_rr : HInst<
22753(outs),
22754(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
22755"if ($Pv4.new) memb($Rs32+$Ru32<<#$Ii) = $Rt32",
22756tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
22757let Inst{31-21} = 0b00110110000;
22758let isPredicated = 1;
22759let addrMode = BaseRegOffset;
22760let accessSize = ByteAccess;
22761let isPredicatedNew = 1;
22762let mayStore = 1;
22763let CextOpcode = "S2_storerb";
22764let InputType = "reg";
22765let BaseOpcode = "S4_storerb_rr";
22766let isNVStorable = 1;
22767}
22768def S4_pstorerbtnew_zomap : HInst<
22769(outs),
22770(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
22771"if ($Pv4.new) memb($Rs32) = $Rt32",
22772tc_da97ee82, TypeMAPPING> {
22773let isPseudo = 1;
22774let isCodeGenOnly = 1;
22775}
22776def S4_pstorerdf_abs : HInst<
22777(outs),
22778(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22779"if (!$Pv4) memd(#$Ii) = $Rtt32",
22780tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel {
22781let Inst{2-2} = 0b1;
22782let Inst{7-7} = 0b1;
22783let Inst{13-13} = 0b0;
22784let Inst{31-18} = 0b10101111110000;
22785let isPredicated = 1;
22786let isPredicatedFalse = 1;
22787let addrMode = Absolute;
22788let accessSize = DoubleWordAccess;
22789let isExtended = 1;
22790let mayStore = 1;
22791let CextOpcode = "S2_storerd";
22792let BaseOpcode = "S2_storerdabs";
22793let DecoderNamespace = "MustExtend";
22794let isExtendable = 1;
22795let opExtendable = 1;
22796let isExtentSigned = 0;
22797let opExtentBits = 6;
22798let opExtentAlign = 0;
22799}
22800def S4_pstorerdf_rr : HInst<
22801(outs),
22802(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22803"if (!$Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22804tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel {
22805let Inst{31-21} = 0b00110101110;
22806let isPredicated = 1;
22807let isPredicatedFalse = 1;
22808let addrMode = BaseRegOffset;
22809let accessSize = DoubleWordAccess;
22810let mayStore = 1;
22811let CextOpcode = "S2_storerd";
22812let InputType = "reg";
22813let BaseOpcode = "S2_storerd_rr";
22814}
22815def S4_pstorerdfnew_abs : HInst<
22816(outs),
22817(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22818"if (!$Pv4.new) memd(#$Ii) = $Rtt32",
22819tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel {
22820let Inst{2-2} = 0b1;
22821let Inst{7-7} = 0b1;
22822let Inst{13-13} = 0b1;
22823let Inst{31-18} = 0b10101111110000;
22824let isPredicated = 1;
22825let isPredicatedFalse = 1;
22826let addrMode = Absolute;
22827let accessSize = DoubleWordAccess;
22828let isPredicatedNew = 1;
22829let isExtended = 1;
22830let mayStore = 1;
22831let CextOpcode = "S2_storerd";
22832let BaseOpcode = "S2_storerdabs";
22833let DecoderNamespace = "MustExtend";
22834let isExtendable = 1;
22835let opExtendable = 1;
22836let isExtentSigned = 0;
22837let opExtentBits = 6;
22838let opExtentAlign = 0;
22839}
22840def S4_pstorerdfnew_io : HInst<
22841(outs),
22842(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22843"if (!$Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22844tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22845let Inst{2-2} = 0b0;
22846let Inst{31-21} = 0b01000110110;
22847let isPredicated = 1;
22848let isPredicatedFalse = 1;
22849let addrMode = BaseImmOffset;
22850let accessSize = DoubleWordAccess;
22851let isPredicatedNew = 1;
22852let mayStore = 1;
22853let CextOpcode = "S2_storerd";
22854let InputType = "imm";
22855let BaseOpcode = "S2_storerd_io";
22856let isExtendable = 1;
22857let opExtendable = 2;
22858let isExtentSigned = 0;
22859let opExtentBits = 9;
22860let opExtentAlign = 3;
22861}
22862def S4_pstorerdfnew_rr : HInst<
22863(outs),
22864(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22865"if (!$Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22866tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel {
22867let Inst{31-21} = 0b00110111110;
22868let isPredicated = 1;
22869let isPredicatedFalse = 1;
22870let addrMode = BaseRegOffset;
22871let accessSize = DoubleWordAccess;
22872let isPredicatedNew = 1;
22873let mayStore = 1;
22874let CextOpcode = "S2_storerd";
22875let InputType = "reg";
22876let BaseOpcode = "S2_storerd_rr";
22877}
22878def S4_pstorerdfnew_zomap : HInst<
22879(outs),
22880(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22881"if (!$Pv4.new) memd($Rs32) = $Rtt32",
22882tc_da97ee82, TypeMAPPING> {
22883let isPseudo = 1;
22884let isCodeGenOnly = 1;
22885}
22886def S4_pstorerdt_abs : HInst<
22887(outs),
22888(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22889"if ($Pv4) memd(#$Ii) = $Rtt32",
22890tc_362c6592, TypeST>, Enc_50b5ac, AddrModeRel {
22891let Inst{2-2} = 0b0;
22892let Inst{7-7} = 0b1;
22893let Inst{13-13} = 0b0;
22894let Inst{31-18} = 0b10101111110000;
22895let isPredicated = 1;
22896let addrMode = Absolute;
22897let accessSize = DoubleWordAccess;
22898let isExtended = 1;
22899let mayStore = 1;
22900let CextOpcode = "S2_storerd";
22901let BaseOpcode = "S2_storerdabs";
22902let DecoderNamespace = "MustExtend";
22903let isExtendable = 1;
22904let opExtendable = 1;
22905let isExtentSigned = 0;
22906let opExtentBits = 6;
22907let opExtentAlign = 0;
22908}
22909def S4_pstorerdt_rr : HInst<
22910(outs),
22911(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22912"if ($Pv4) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22913tc_3962fa26, TypeST>, Enc_1a9974, AddrModeRel {
22914let Inst{31-21} = 0b00110100110;
22915let isPredicated = 1;
22916let addrMode = BaseRegOffset;
22917let accessSize = DoubleWordAccess;
22918let mayStore = 1;
22919let CextOpcode = "S2_storerd";
22920let InputType = "reg";
22921let BaseOpcode = "S2_storerd_rr";
22922}
22923def S4_pstorerdtnew_abs : HInst<
22924(outs),
22925(ins PredRegs:$Pv4, u32_0Imm:$Ii, DoubleRegs:$Rtt32),
22926"if ($Pv4.new) memd(#$Ii) = $Rtt32",
22927tc_da4a37ed, TypeST>, Enc_50b5ac, AddrModeRel {
22928let Inst{2-2} = 0b0;
22929let Inst{7-7} = 0b1;
22930let Inst{13-13} = 0b1;
22931let Inst{31-18} = 0b10101111110000;
22932let isPredicated = 1;
22933let addrMode = Absolute;
22934let accessSize = DoubleWordAccess;
22935let isPredicatedNew = 1;
22936let isExtended = 1;
22937let mayStore = 1;
22938let CextOpcode = "S2_storerd";
22939let BaseOpcode = "S2_storerdabs";
22940let DecoderNamespace = "MustExtend";
22941let isExtendable = 1;
22942let opExtendable = 1;
22943let isExtentSigned = 0;
22944let opExtentBits = 6;
22945let opExtentAlign = 0;
22946}
22947def S4_pstorerdtnew_io : HInst<
22948(outs),
22949(ins PredRegs:$Pv4, IntRegs:$Rs32, u29_3Imm:$Ii, DoubleRegs:$Rtt32),
22950"if ($Pv4.new) memd($Rs32+#$Ii) = $Rtt32",
22951tc_da97ee82, TypeV2LDST>, Enc_57a33e, AddrModeRel {
22952let Inst{2-2} = 0b0;
22953let Inst{31-21} = 0b01000010110;
22954let isPredicated = 1;
22955let addrMode = BaseImmOffset;
22956let accessSize = DoubleWordAccess;
22957let isPredicatedNew = 1;
22958let mayStore = 1;
22959let CextOpcode = "S2_storerd";
22960let InputType = "imm";
22961let BaseOpcode = "S2_storerd_io";
22962let isExtendable = 1;
22963let opExtendable = 2;
22964let isExtentSigned = 0;
22965let opExtentBits = 9;
22966let opExtentAlign = 3;
22967}
22968def S4_pstorerdtnew_rr : HInst<
22969(outs),
22970(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
22971"if ($Pv4.new) memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
22972tc_40116ca8, TypeST>, Enc_1a9974, AddrModeRel {
22973let Inst{31-21} = 0b00110110110;
22974let isPredicated = 1;
22975let addrMode = BaseRegOffset;
22976let accessSize = DoubleWordAccess;
22977let isPredicatedNew = 1;
22978let mayStore = 1;
22979let CextOpcode = "S2_storerd";
22980let InputType = "reg";
22981let BaseOpcode = "S2_storerd_rr";
22982}
22983def S4_pstorerdtnew_zomap : HInst<
22984(outs),
22985(ins PredRegs:$Pv4, IntRegs:$Rs32, DoubleRegs:$Rtt32),
22986"if ($Pv4.new) memd($Rs32) = $Rtt32",
22987tc_da97ee82, TypeMAPPING> {
22988let isPseudo = 1;
22989let isCodeGenOnly = 1;
22990}
22991def S4_pstorerff_abs : HInst<
22992(outs),
22993(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
22994"if (!$Pv4) memh(#$Ii) = $Rt32.h",
22995tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
22996let Inst{2-2} = 0b1;
22997let Inst{7-7} = 0b1;
22998let Inst{13-13} = 0b0;
22999let Inst{31-18} = 0b10101111011000;
23000let isPredicated = 1;
23001let isPredicatedFalse = 1;
23002let addrMode = Absolute;
23003let accessSize = HalfWordAccess;
23004let isExtended = 1;
23005let mayStore = 1;
23006let CextOpcode = "S2_storerf";
23007let BaseOpcode = "S2_storerfabs";
23008let DecoderNamespace = "MustExtend";
23009let isExtendable = 1;
23010let opExtendable = 1;
23011let isExtentSigned = 0;
23012let opExtentBits = 6;
23013let opExtentAlign = 0;
23014}
23015def S4_pstorerff_rr : HInst<
23016(outs),
23017(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23018"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23019tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23020let Inst{31-21} = 0b00110101011;
23021let isPredicated = 1;
23022let isPredicatedFalse = 1;
23023let addrMode = BaseRegOffset;
23024let accessSize = HalfWordAccess;
23025let mayStore = 1;
23026let CextOpcode = "S2_storerf";
23027let InputType = "reg";
23028let BaseOpcode = "S4_storerf_rr";
23029}
23030def S4_pstorerffnew_abs : HInst<
23031(outs),
23032(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23033"if (!$Pv4.new) memh(#$Ii) = $Rt32.h",
23034tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23035let Inst{2-2} = 0b1;
23036let Inst{7-7} = 0b1;
23037let Inst{13-13} = 0b1;
23038let Inst{31-18} = 0b10101111011000;
23039let isPredicated = 1;
23040let isPredicatedFalse = 1;
23041let addrMode = Absolute;
23042let accessSize = HalfWordAccess;
23043let isPredicatedNew = 1;
23044let isExtended = 1;
23045let mayStore = 1;
23046let CextOpcode = "S2_storerf";
23047let BaseOpcode = "S2_storerfabs";
23048let DecoderNamespace = "MustExtend";
23049let isExtendable = 1;
23050let opExtendable = 1;
23051let isExtentSigned = 0;
23052let opExtentBits = 6;
23053let opExtentAlign = 0;
23054}
23055def S4_pstorerffnew_io : HInst<
23056(outs),
23057(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23058"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23059tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23060let Inst{2-2} = 0b0;
23061let Inst{31-21} = 0b01000110011;
23062let isPredicated = 1;
23063let isPredicatedFalse = 1;
23064let addrMode = BaseImmOffset;
23065let accessSize = HalfWordAccess;
23066let isPredicatedNew = 1;
23067let mayStore = 1;
23068let CextOpcode = "S2_storerf";
23069let InputType = "imm";
23070let BaseOpcode = "S2_storerf_io";
23071let isExtendable = 1;
23072let opExtendable = 2;
23073let isExtentSigned = 0;
23074let opExtentBits = 7;
23075let opExtentAlign = 1;
23076}
23077def S4_pstorerffnew_rr : HInst<
23078(outs),
23079(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23080"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23081tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23082let Inst{31-21} = 0b00110111011;
23083let isPredicated = 1;
23084let isPredicatedFalse = 1;
23085let addrMode = BaseRegOffset;
23086let accessSize = HalfWordAccess;
23087let isPredicatedNew = 1;
23088let mayStore = 1;
23089let CextOpcode = "S2_storerf";
23090let InputType = "reg";
23091let BaseOpcode = "S4_storerf_rr";
23092}
23093def S4_pstorerffnew_zomap : HInst<
23094(outs),
23095(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23096"if (!$Pv4.new) memh($Rs32) = $Rt32.h",
23097tc_da97ee82, TypeMAPPING> {
23098let isPseudo = 1;
23099let isCodeGenOnly = 1;
23100}
23101def S4_pstorerft_abs : HInst<
23102(outs),
23103(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23104"if ($Pv4) memh(#$Ii) = $Rt32.h",
23105tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23106let Inst{2-2} = 0b0;
23107let Inst{7-7} = 0b1;
23108let Inst{13-13} = 0b0;
23109let Inst{31-18} = 0b10101111011000;
23110let isPredicated = 1;
23111let addrMode = Absolute;
23112let accessSize = HalfWordAccess;
23113let isExtended = 1;
23114let mayStore = 1;
23115let CextOpcode = "S2_storerf";
23116let BaseOpcode = "S2_storerfabs";
23117let DecoderNamespace = "MustExtend";
23118let isExtendable = 1;
23119let opExtendable = 1;
23120let isExtentSigned = 0;
23121let opExtentBits = 6;
23122let opExtentAlign = 0;
23123}
23124def S4_pstorerft_rr : HInst<
23125(outs),
23126(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23127"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23128tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23129let Inst{31-21} = 0b00110100011;
23130let isPredicated = 1;
23131let addrMode = BaseRegOffset;
23132let accessSize = HalfWordAccess;
23133let mayStore = 1;
23134let CextOpcode = "S2_storerf";
23135let InputType = "reg";
23136let BaseOpcode = "S4_storerf_rr";
23137}
23138def S4_pstorerftnew_abs : HInst<
23139(outs),
23140(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23141"if ($Pv4.new) memh(#$Ii) = $Rt32.h",
23142tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23143let Inst{2-2} = 0b0;
23144let Inst{7-7} = 0b1;
23145let Inst{13-13} = 0b1;
23146let Inst{31-18} = 0b10101111011000;
23147let isPredicated = 1;
23148let addrMode = Absolute;
23149let accessSize = HalfWordAccess;
23150let isPredicatedNew = 1;
23151let isExtended = 1;
23152let mayStore = 1;
23153let CextOpcode = "S2_storerf";
23154let BaseOpcode = "S2_storerfabs";
23155let DecoderNamespace = "MustExtend";
23156let isExtendable = 1;
23157let opExtendable = 1;
23158let isExtentSigned = 0;
23159let opExtentBits = 6;
23160let opExtentAlign = 0;
23161}
23162def S4_pstorerftnew_io : HInst<
23163(outs),
23164(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23165"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32.h",
23166tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23167let Inst{2-2} = 0b0;
23168let Inst{31-21} = 0b01000010011;
23169let isPredicated = 1;
23170let addrMode = BaseImmOffset;
23171let accessSize = HalfWordAccess;
23172let isPredicatedNew = 1;
23173let mayStore = 1;
23174let CextOpcode = "S2_storerf";
23175let InputType = "imm";
23176let BaseOpcode = "S2_storerf_io";
23177let isExtendable = 1;
23178let opExtendable = 2;
23179let isExtentSigned = 0;
23180let opExtentBits = 7;
23181let opExtentAlign = 1;
23182}
23183def S4_pstorerftnew_rr : HInst<
23184(outs),
23185(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23186"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
23187tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23188let Inst{31-21} = 0b00110110011;
23189let isPredicated = 1;
23190let addrMode = BaseRegOffset;
23191let accessSize = HalfWordAccess;
23192let isPredicatedNew = 1;
23193let mayStore = 1;
23194let CextOpcode = "S2_storerf";
23195let InputType = "reg";
23196let BaseOpcode = "S4_storerf_rr";
23197}
23198def S4_pstorerftnew_zomap : HInst<
23199(outs),
23200(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23201"if ($Pv4.new) memh($Rs32) = $Rt32.h",
23202tc_da97ee82, TypeMAPPING> {
23203let isPseudo = 1;
23204let isCodeGenOnly = 1;
23205}
23206def S4_pstorerhf_abs : HInst<
23207(outs),
23208(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23209"if (!$Pv4) memh(#$Ii) = $Rt32",
23210tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23211let Inst{2-2} = 0b1;
23212let Inst{7-7} = 0b1;
23213let Inst{13-13} = 0b0;
23214let Inst{31-18} = 0b10101111010000;
23215let isPredicated = 1;
23216let isPredicatedFalse = 1;
23217let addrMode = Absolute;
23218let accessSize = HalfWordAccess;
23219let isExtended = 1;
23220let mayStore = 1;
23221let CextOpcode = "S2_storerh";
23222let BaseOpcode = "S2_storerhabs";
23223let isNVStorable = 1;
23224let DecoderNamespace = "MustExtend";
23225let isExtendable = 1;
23226let opExtendable = 1;
23227let isExtentSigned = 0;
23228let opExtentBits = 6;
23229let opExtentAlign = 0;
23230}
23231def S4_pstorerhf_rr : HInst<
23232(outs),
23233(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23234"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23235tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23236let Inst{31-21} = 0b00110101010;
23237let isPredicated = 1;
23238let isPredicatedFalse = 1;
23239let addrMode = BaseRegOffset;
23240let accessSize = HalfWordAccess;
23241let mayStore = 1;
23242let CextOpcode = "S2_storerh";
23243let InputType = "reg";
23244let BaseOpcode = "S2_storerh_rr";
23245let isNVStorable = 1;
23246}
23247def S4_pstorerhfnew_abs : HInst<
23248(outs),
23249(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23250"if (!$Pv4.new) memh(#$Ii) = $Rt32",
23251tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23252let Inst{2-2} = 0b1;
23253let Inst{7-7} = 0b1;
23254let Inst{13-13} = 0b1;
23255let Inst{31-18} = 0b10101111010000;
23256let isPredicated = 1;
23257let isPredicatedFalse = 1;
23258let addrMode = Absolute;
23259let accessSize = HalfWordAccess;
23260let isPredicatedNew = 1;
23261let isExtended = 1;
23262let mayStore = 1;
23263let CextOpcode = "S2_storerh";
23264let BaseOpcode = "S2_storerhabs";
23265let isNVStorable = 1;
23266let DecoderNamespace = "MustExtend";
23267let isExtendable = 1;
23268let opExtendable = 1;
23269let isExtentSigned = 0;
23270let opExtentBits = 6;
23271let opExtentAlign = 0;
23272}
23273def S4_pstorerhfnew_io : HInst<
23274(outs),
23275(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23276"if (!$Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23277tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23278let Inst{2-2} = 0b0;
23279let Inst{31-21} = 0b01000110010;
23280let isPredicated = 1;
23281let isPredicatedFalse = 1;
23282let addrMode = BaseImmOffset;
23283let accessSize = HalfWordAccess;
23284let isPredicatedNew = 1;
23285let mayStore = 1;
23286let CextOpcode = "S2_storerh";
23287let InputType = "imm";
23288let BaseOpcode = "S2_storerh_io";
23289let isNVStorable = 1;
23290let isExtendable = 1;
23291let opExtendable = 2;
23292let isExtentSigned = 0;
23293let opExtentBits = 7;
23294let opExtentAlign = 1;
23295}
23296def S4_pstorerhfnew_rr : HInst<
23297(outs),
23298(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23299"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23300tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23301let Inst{31-21} = 0b00110111010;
23302let isPredicated = 1;
23303let isPredicatedFalse = 1;
23304let addrMode = BaseRegOffset;
23305let accessSize = HalfWordAccess;
23306let isPredicatedNew = 1;
23307let mayStore = 1;
23308let CextOpcode = "S2_storerh";
23309let InputType = "reg";
23310let BaseOpcode = "S2_storerh_rr";
23311let isNVStorable = 1;
23312}
23313def S4_pstorerhfnew_zomap : HInst<
23314(outs),
23315(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23316"if (!$Pv4.new) memh($Rs32) = $Rt32",
23317tc_da97ee82, TypeMAPPING> {
23318let isPseudo = 1;
23319let isCodeGenOnly = 1;
23320}
23321def S4_pstorerhnewf_abs : HInst<
23322(outs),
23323(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23324"if (!$Pv4) memh(#$Ii) = $Nt8.new",
23325tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23326let Inst{2-2} = 0b1;
23327let Inst{7-7} = 0b1;
23328let Inst{13-11} = 0b001;
23329let Inst{31-18} = 0b10101111101000;
23330let isPredicated = 1;
23331let isPredicatedFalse = 1;
23332let addrMode = Absolute;
23333let accessSize = HalfWordAccess;
23334let isNVStore = 1;
23335let isNewValue = 1;
23336let isExtended = 1;
23337let isRestrictNoSlot1Store = 1;
23338let mayStore = 1;
23339let CextOpcode = "S2_storerh";
23340let BaseOpcode = "S2_storerhabs";
23341let DecoderNamespace = "MustExtend";
23342let isExtendable = 1;
23343let opExtendable = 1;
23344let isExtentSigned = 0;
23345let opExtentBits = 6;
23346let opExtentAlign = 0;
23347let opNewValue = 2;
23348}
23349def S4_pstorerhnewf_rr : HInst<
23350(outs),
23351(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23352"if (!$Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23353tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23354let Inst{4-3} = 0b01;
23355let Inst{31-21} = 0b00110101101;
23356let isPredicated = 1;
23357let isPredicatedFalse = 1;
23358let addrMode = BaseRegOffset;
23359let accessSize = HalfWordAccess;
23360let isNVStore = 1;
23361let isNewValue = 1;
23362let isRestrictNoSlot1Store = 1;
23363let mayStore = 1;
23364let CextOpcode = "S2_storerh";
23365let InputType = "reg";
23366let BaseOpcode = "S2_storerh_rr";
23367let opNewValue = 4;
23368}
23369def S4_pstorerhnewfnew_abs : HInst<
23370(outs),
23371(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23372"if (!$Pv4.new) memh(#$Ii) = $Nt8.new",
23373tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23374let Inst{2-2} = 0b1;
23375let Inst{7-7} = 0b1;
23376let Inst{13-11} = 0b101;
23377let Inst{31-18} = 0b10101111101000;
23378let isPredicated = 1;
23379let isPredicatedFalse = 1;
23380let addrMode = Absolute;
23381let accessSize = HalfWordAccess;
23382let isNVStore = 1;
23383let isPredicatedNew = 1;
23384let isNewValue = 1;
23385let isExtended = 1;
23386let isRestrictNoSlot1Store = 1;
23387let mayStore = 1;
23388let CextOpcode = "S2_storerh";
23389let BaseOpcode = "S2_storerhabs";
23390let DecoderNamespace = "MustExtend";
23391let isExtendable = 1;
23392let opExtendable = 1;
23393let isExtentSigned = 0;
23394let opExtentBits = 6;
23395let opExtentAlign = 0;
23396let opNewValue = 2;
23397}
23398def S4_pstorerhnewfnew_io : HInst<
23399(outs),
23400(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23401"if (!$Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23402tc_c79a189f, TypeV2LDST>, Enc_f44229, AddrModeRel {
23403let Inst{2-2} = 0b0;
23404let Inst{12-11} = 0b01;
23405let Inst{31-21} = 0b01000110101;
23406let isPredicated = 1;
23407let isPredicatedFalse = 1;
23408let addrMode = BaseImmOffset;
23409let accessSize = HalfWordAccess;
23410let isNVStore = 1;
23411let isPredicatedNew = 1;
23412let isNewValue = 1;
23413let isRestrictNoSlot1Store = 1;
23414let mayStore = 1;
23415let CextOpcode = "S2_storerh";
23416let InputType = "imm";
23417let BaseOpcode = "S2_storerh_io";
23418let isExtendable = 1;
23419let opExtendable = 2;
23420let isExtentSigned = 0;
23421let opExtentBits = 7;
23422let opExtentAlign = 1;
23423let opNewValue = 3;
23424}
23425def S4_pstorerhnewfnew_rr : HInst<
23426(outs),
23427(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23428"if (!$Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23429tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23430let Inst{4-3} = 0b01;
23431let Inst{31-21} = 0b00110111101;
23432let isPredicated = 1;
23433let isPredicatedFalse = 1;
23434let addrMode = BaseRegOffset;
23435let accessSize = HalfWordAccess;
23436let isNVStore = 1;
23437let isPredicatedNew = 1;
23438let isNewValue = 1;
23439let isRestrictNoSlot1Store = 1;
23440let mayStore = 1;
23441let CextOpcode = "S2_storerh";
23442let InputType = "reg";
23443let BaseOpcode = "S2_storerh_rr";
23444let opNewValue = 4;
23445}
23446def S4_pstorerhnewfnew_zomap : HInst<
23447(outs),
23448(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23449"if (!$Pv4.new) memh($Rs32) = $Nt8.new",
23450tc_c79a189f, TypeMAPPING> {
23451let isPseudo = 1;
23452let isCodeGenOnly = 1;
23453let opNewValue = 2;
23454}
23455def S4_pstorerhnewt_abs : HInst<
23456(outs),
23457(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23458"if ($Pv4) memh(#$Ii) = $Nt8.new",
23459tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23460let Inst{2-2} = 0b0;
23461let Inst{7-7} = 0b1;
23462let Inst{13-11} = 0b001;
23463let Inst{31-18} = 0b10101111101000;
23464let isPredicated = 1;
23465let addrMode = Absolute;
23466let accessSize = HalfWordAccess;
23467let isNVStore = 1;
23468let isNewValue = 1;
23469let isExtended = 1;
23470let isRestrictNoSlot1Store = 1;
23471let mayStore = 1;
23472let CextOpcode = "S2_storerh";
23473let BaseOpcode = "S2_storerhabs";
23474let DecoderNamespace = "MustExtend";
23475let isExtendable = 1;
23476let opExtendable = 1;
23477let isExtentSigned = 0;
23478let opExtentBits = 6;
23479let opExtentAlign = 0;
23480let opNewValue = 2;
23481}
23482def S4_pstorerhnewt_rr : HInst<
23483(outs),
23484(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23485"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23486tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23487let Inst{4-3} = 0b01;
23488let Inst{31-21} = 0b00110100101;
23489let isPredicated = 1;
23490let addrMode = BaseRegOffset;
23491let accessSize = HalfWordAccess;
23492let isNVStore = 1;
23493let isNewValue = 1;
23494let isRestrictNoSlot1Store = 1;
23495let mayStore = 1;
23496let CextOpcode = "S2_storerh";
23497let InputType = "reg";
23498let BaseOpcode = "S2_storerh_rr";
23499let opNewValue = 4;
23500}
23501def S4_pstorerhnewtnew_abs : HInst<
23502(outs),
23503(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23504"if ($Pv4.new) memh(#$Ii) = $Nt8.new",
23505tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23506let Inst{2-2} = 0b0;
23507let Inst{7-7} = 0b1;
23508let Inst{13-11} = 0b101;
23509let Inst{31-18} = 0b10101111101000;
23510let isPredicated = 1;
23511let addrMode = Absolute;
23512let accessSize = HalfWordAccess;
23513let isNVStore = 1;
23514let isPredicatedNew = 1;
23515let isNewValue = 1;
23516let isExtended = 1;
23517let isRestrictNoSlot1Store = 1;
23518let mayStore = 1;
23519let CextOpcode = "S2_storerh";
23520let BaseOpcode = "S2_storerhabs";
23521let DecoderNamespace = "MustExtend";
23522let isExtendable = 1;
23523let opExtendable = 1;
23524let isExtentSigned = 0;
23525let opExtentBits = 6;
23526let opExtentAlign = 0;
23527let opNewValue = 2;
23528}
23529def S4_pstorerhnewtnew_io : HInst<
23530(outs),
23531(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Nt8),
23532"if ($Pv4.new) memh($Rs32+#$Ii) = $Nt8.new",
23533tc_c79a189f, TypeV2LDST>, Enc_f44229, AddrModeRel {
23534let Inst{2-2} = 0b0;
23535let Inst{12-11} = 0b01;
23536let Inst{31-21} = 0b01000010101;
23537let isPredicated = 1;
23538let addrMode = BaseImmOffset;
23539let accessSize = HalfWordAccess;
23540let isNVStore = 1;
23541let isPredicatedNew = 1;
23542let isNewValue = 1;
23543let isRestrictNoSlot1Store = 1;
23544let mayStore = 1;
23545let CextOpcode = "S2_storerh";
23546let InputType = "imm";
23547let BaseOpcode = "S2_storerh_io";
23548let isExtendable = 1;
23549let opExtendable = 2;
23550let isExtentSigned = 0;
23551let opExtentBits = 7;
23552let opExtentAlign = 1;
23553let opNewValue = 3;
23554}
23555def S4_pstorerhnewtnew_rr : HInst<
23556(outs),
23557(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23558"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23559tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23560let Inst{4-3} = 0b01;
23561let Inst{31-21} = 0b00110110101;
23562let isPredicated = 1;
23563let addrMode = BaseRegOffset;
23564let accessSize = HalfWordAccess;
23565let isNVStore = 1;
23566let isPredicatedNew = 1;
23567let isNewValue = 1;
23568let isRestrictNoSlot1Store = 1;
23569let mayStore = 1;
23570let CextOpcode = "S2_storerh";
23571let InputType = "reg";
23572let BaseOpcode = "S2_storerh_rr";
23573let opNewValue = 4;
23574}
23575def S4_pstorerhnewtnew_zomap : HInst<
23576(outs),
23577(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23578"if ($Pv4.new) memh($Rs32) = $Nt8.new",
23579tc_c79a189f, TypeMAPPING> {
23580let isPseudo = 1;
23581let isCodeGenOnly = 1;
23582let opNewValue = 2;
23583}
23584def S4_pstorerht_abs : HInst<
23585(outs),
23586(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23587"if ($Pv4) memh(#$Ii) = $Rt32",
23588tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23589let Inst{2-2} = 0b0;
23590let Inst{7-7} = 0b1;
23591let Inst{13-13} = 0b0;
23592let Inst{31-18} = 0b10101111010000;
23593let isPredicated = 1;
23594let addrMode = Absolute;
23595let accessSize = HalfWordAccess;
23596let isExtended = 1;
23597let mayStore = 1;
23598let CextOpcode = "S2_storerh";
23599let BaseOpcode = "S2_storerhabs";
23600let isNVStorable = 1;
23601let DecoderNamespace = "MustExtend";
23602let isExtendable = 1;
23603let opExtendable = 1;
23604let isExtentSigned = 0;
23605let opExtentBits = 6;
23606let opExtentAlign = 0;
23607}
23608def S4_pstorerht_rr : HInst<
23609(outs),
23610(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23611"if ($Pv4) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23612tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23613let Inst{31-21} = 0b00110100010;
23614let isPredicated = 1;
23615let addrMode = BaseRegOffset;
23616let accessSize = HalfWordAccess;
23617let mayStore = 1;
23618let CextOpcode = "S2_storerh";
23619let InputType = "reg";
23620let BaseOpcode = "S2_storerh_rr";
23621let isNVStorable = 1;
23622}
23623def S4_pstorerhtnew_abs : HInst<
23624(outs),
23625(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23626"if ($Pv4.new) memh(#$Ii) = $Rt32",
23627tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23628let Inst{2-2} = 0b0;
23629let Inst{7-7} = 0b1;
23630let Inst{13-13} = 0b1;
23631let Inst{31-18} = 0b10101111010000;
23632let isPredicated = 1;
23633let addrMode = Absolute;
23634let accessSize = HalfWordAccess;
23635let isPredicatedNew = 1;
23636let isExtended = 1;
23637let mayStore = 1;
23638let CextOpcode = "S2_storerh";
23639let BaseOpcode = "S2_storerhabs";
23640let isNVStorable = 1;
23641let DecoderNamespace = "MustExtend";
23642let isExtendable = 1;
23643let opExtendable = 1;
23644let isExtentSigned = 0;
23645let opExtentBits = 6;
23646let opExtentAlign = 0;
23647}
23648def S4_pstorerhtnew_io : HInst<
23649(outs),
23650(ins PredRegs:$Pv4, IntRegs:$Rs32, u31_1Imm:$Ii, IntRegs:$Rt32),
23651"if ($Pv4.new) memh($Rs32+#$Ii) = $Rt32",
23652tc_da97ee82, TypeV2LDST>, Enc_e8c45e, AddrModeRel {
23653let Inst{2-2} = 0b0;
23654let Inst{31-21} = 0b01000010010;
23655let isPredicated = 1;
23656let addrMode = BaseImmOffset;
23657let accessSize = HalfWordAccess;
23658let isPredicatedNew = 1;
23659let mayStore = 1;
23660let CextOpcode = "S2_storerh";
23661let InputType = "imm";
23662let BaseOpcode = "S2_storerh_io";
23663let isNVStorable = 1;
23664let isExtendable = 1;
23665let opExtendable = 2;
23666let isExtentSigned = 0;
23667let opExtentBits = 7;
23668let opExtentAlign = 1;
23669}
23670def S4_pstorerhtnew_rr : HInst<
23671(outs),
23672(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23673"if ($Pv4.new) memh($Rs32+$Ru32<<#$Ii) = $Rt32",
23674tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23675let Inst{31-21} = 0b00110110010;
23676let isPredicated = 1;
23677let addrMode = BaseRegOffset;
23678let accessSize = HalfWordAccess;
23679let isPredicatedNew = 1;
23680let mayStore = 1;
23681let CextOpcode = "S2_storerh";
23682let InputType = "reg";
23683let BaseOpcode = "S2_storerh_rr";
23684let isNVStorable = 1;
23685}
23686def S4_pstorerhtnew_zomap : HInst<
23687(outs),
23688(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23689"if ($Pv4.new) memh($Rs32) = $Rt32",
23690tc_da97ee82, TypeMAPPING> {
23691let isPseudo = 1;
23692let isCodeGenOnly = 1;
23693}
23694def S4_pstorerif_abs : HInst<
23695(outs),
23696(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23697"if (!$Pv4) memw(#$Ii) = $Rt32",
23698tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
23699let Inst{2-2} = 0b1;
23700let Inst{7-7} = 0b1;
23701let Inst{13-13} = 0b0;
23702let Inst{31-18} = 0b10101111100000;
23703let isPredicated = 1;
23704let isPredicatedFalse = 1;
23705let addrMode = Absolute;
23706let accessSize = WordAccess;
23707let isExtended = 1;
23708let mayStore = 1;
23709let CextOpcode = "S2_storeri";
23710let BaseOpcode = "S2_storeriabs";
23711let isNVStorable = 1;
23712let DecoderNamespace = "MustExtend";
23713let isExtendable = 1;
23714let opExtendable = 1;
23715let isExtentSigned = 0;
23716let opExtentBits = 6;
23717let opExtentAlign = 0;
23718}
23719def S4_pstorerif_rr : HInst<
23720(outs),
23721(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23722"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23723tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
23724let Inst{31-21} = 0b00110101100;
23725let isPredicated = 1;
23726let isPredicatedFalse = 1;
23727let addrMode = BaseRegOffset;
23728let accessSize = WordAccess;
23729let mayStore = 1;
23730let CextOpcode = "S2_storeri";
23731let InputType = "reg";
23732let BaseOpcode = "S2_storeri_rr";
23733let isNVStorable = 1;
23734}
23735def S4_pstorerifnew_abs : HInst<
23736(outs),
23737(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
23738"if (!$Pv4.new) memw(#$Ii) = $Rt32",
23739tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
23740let Inst{2-2} = 0b1;
23741let Inst{7-7} = 0b1;
23742let Inst{13-13} = 0b1;
23743let Inst{31-18} = 0b10101111100000;
23744let isPredicated = 1;
23745let isPredicatedFalse = 1;
23746let addrMode = Absolute;
23747let accessSize = WordAccess;
23748let isPredicatedNew = 1;
23749let isExtended = 1;
23750let mayStore = 1;
23751let CextOpcode = "S2_storeri";
23752let BaseOpcode = "S2_storeriabs";
23753let isNVStorable = 1;
23754let DecoderNamespace = "MustExtend";
23755let isExtendable = 1;
23756let opExtendable = 1;
23757let isExtentSigned = 0;
23758let opExtentBits = 6;
23759let opExtentAlign = 0;
23760}
23761def S4_pstorerifnew_io : HInst<
23762(outs),
23763(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
23764"if (!$Pv4.new) memw($Rs32+#$Ii) = $Rt32",
23765tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel {
23766let Inst{2-2} = 0b0;
23767let Inst{31-21} = 0b01000110100;
23768let isPredicated = 1;
23769let isPredicatedFalse = 1;
23770let addrMode = BaseImmOffset;
23771let accessSize = WordAccess;
23772let isPredicatedNew = 1;
23773let mayStore = 1;
23774let CextOpcode = "S2_storeri";
23775let InputType = "imm";
23776let BaseOpcode = "S2_storeri_io";
23777let isNVStorable = 1;
23778let isExtendable = 1;
23779let opExtendable = 2;
23780let isExtentSigned = 0;
23781let opExtentBits = 8;
23782let opExtentAlign = 2;
23783}
23784def S4_pstorerifnew_rr : HInst<
23785(outs),
23786(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
23787"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
23788tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
23789let Inst{31-21} = 0b00110111100;
23790let isPredicated = 1;
23791let isPredicatedFalse = 1;
23792let addrMode = BaseRegOffset;
23793let accessSize = WordAccess;
23794let isPredicatedNew = 1;
23795let mayStore = 1;
23796let CextOpcode = "S2_storeri";
23797let InputType = "reg";
23798let BaseOpcode = "S2_storeri_rr";
23799let isNVStorable = 1;
23800}
23801def S4_pstorerifnew_zomap : HInst<
23802(outs),
23803(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
23804"if (!$Pv4.new) memw($Rs32) = $Rt32",
23805tc_da97ee82, TypeMAPPING> {
23806let isPseudo = 1;
23807let isCodeGenOnly = 1;
23808}
23809def S4_pstorerinewf_abs : HInst<
23810(outs),
23811(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23812"if (!$Pv4) memw(#$Ii) = $Nt8.new",
23813tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23814let Inst{2-2} = 0b1;
23815let Inst{7-7} = 0b1;
23816let Inst{13-11} = 0b010;
23817let Inst{31-18} = 0b10101111101000;
23818let isPredicated = 1;
23819let isPredicatedFalse = 1;
23820let addrMode = Absolute;
23821let accessSize = WordAccess;
23822let isNVStore = 1;
23823let isNewValue = 1;
23824let isExtended = 1;
23825let isRestrictNoSlot1Store = 1;
23826let mayStore = 1;
23827let CextOpcode = "S2_storeri";
23828let BaseOpcode = "S2_storeriabs";
23829let DecoderNamespace = "MustExtend";
23830let isExtendable = 1;
23831let opExtendable = 1;
23832let isExtentSigned = 0;
23833let opExtentBits = 6;
23834let opExtentAlign = 0;
23835let opNewValue = 2;
23836}
23837def S4_pstorerinewf_rr : HInst<
23838(outs),
23839(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23840"if (!$Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23841tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23842let Inst{4-3} = 0b10;
23843let Inst{31-21} = 0b00110101101;
23844let isPredicated = 1;
23845let isPredicatedFalse = 1;
23846let addrMode = BaseRegOffset;
23847let accessSize = WordAccess;
23848let isNVStore = 1;
23849let isNewValue = 1;
23850let isRestrictNoSlot1Store = 1;
23851let mayStore = 1;
23852let CextOpcode = "S2_storeri";
23853let InputType = "reg";
23854let BaseOpcode = "S2_storeri_rr";
23855let opNewValue = 4;
23856}
23857def S4_pstorerinewfnew_abs : HInst<
23858(outs),
23859(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23860"if (!$Pv4.new) memw(#$Ii) = $Nt8.new",
23861tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23862let Inst{2-2} = 0b1;
23863let Inst{7-7} = 0b1;
23864let Inst{13-11} = 0b110;
23865let Inst{31-18} = 0b10101111101000;
23866let isPredicated = 1;
23867let isPredicatedFalse = 1;
23868let addrMode = Absolute;
23869let accessSize = WordAccess;
23870let isNVStore = 1;
23871let isPredicatedNew = 1;
23872let isNewValue = 1;
23873let isExtended = 1;
23874let isRestrictNoSlot1Store = 1;
23875let mayStore = 1;
23876let CextOpcode = "S2_storeri";
23877let BaseOpcode = "S2_storeriabs";
23878let DecoderNamespace = "MustExtend";
23879let isExtendable = 1;
23880let opExtendable = 1;
23881let isExtentSigned = 0;
23882let opExtentBits = 6;
23883let opExtentAlign = 0;
23884let opNewValue = 2;
23885}
23886def S4_pstorerinewfnew_io : HInst<
23887(outs),
23888(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
23889"if (!$Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
23890tc_c79a189f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
23891let Inst{2-2} = 0b0;
23892let Inst{12-11} = 0b10;
23893let Inst{31-21} = 0b01000110101;
23894let isPredicated = 1;
23895let isPredicatedFalse = 1;
23896let addrMode = BaseImmOffset;
23897let accessSize = WordAccess;
23898let isNVStore = 1;
23899let isPredicatedNew = 1;
23900let isNewValue = 1;
23901let isRestrictNoSlot1Store = 1;
23902let mayStore = 1;
23903let CextOpcode = "S2_storeri";
23904let InputType = "imm";
23905let BaseOpcode = "S2_storeri_io";
23906let isExtendable = 1;
23907let opExtendable = 2;
23908let isExtentSigned = 0;
23909let opExtentBits = 8;
23910let opExtentAlign = 2;
23911let opNewValue = 3;
23912}
23913def S4_pstorerinewfnew_rr : HInst<
23914(outs),
23915(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23916"if (!$Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23917tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
23918let Inst{4-3} = 0b10;
23919let Inst{31-21} = 0b00110111101;
23920let isPredicated = 1;
23921let isPredicatedFalse = 1;
23922let addrMode = BaseRegOffset;
23923let accessSize = WordAccess;
23924let isNVStore = 1;
23925let isPredicatedNew = 1;
23926let isNewValue = 1;
23927let isRestrictNoSlot1Store = 1;
23928let mayStore = 1;
23929let CextOpcode = "S2_storeri";
23930let InputType = "reg";
23931let BaseOpcode = "S2_storeri_rr";
23932let opNewValue = 4;
23933}
23934def S4_pstorerinewfnew_zomap : HInst<
23935(outs),
23936(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
23937"if (!$Pv4.new) memw($Rs32) = $Nt8.new",
23938tc_c79a189f, TypeMAPPING> {
23939let isPseudo = 1;
23940let isCodeGenOnly = 1;
23941let opNewValue = 2;
23942}
23943def S4_pstorerinewt_abs : HInst<
23944(outs),
23945(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23946"if ($Pv4) memw(#$Ii) = $Nt8.new",
23947tc_4b68bce4, TypeST>, Enc_44215c, AddrModeRel {
23948let Inst{2-2} = 0b0;
23949let Inst{7-7} = 0b1;
23950let Inst{13-11} = 0b010;
23951let Inst{31-18} = 0b10101111101000;
23952let isPredicated = 1;
23953let addrMode = Absolute;
23954let accessSize = WordAccess;
23955let isNVStore = 1;
23956let isNewValue = 1;
23957let isExtended = 1;
23958let isRestrictNoSlot1Store = 1;
23959let mayStore = 1;
23960let CextOpcode = "S2_storeri";
23961let BaseOpcode = "S2_storeriabs";
23962let DecoderNamespace = "MustExtend";
23963let isExtendable = 1;
23964let opExtendable = 1;
23965let isExtentSigned = 0;
23966let opExtentBits = 6;
23967let opExtentAlign = 0;
23968let opNewValue = 2;
23969}
23970def S4_pstorerinewt_rr : HInst<
23971(outs),
23972(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
23973"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
23974tc_e95795ec, TypeST>, Enc_47ee5e, AddrModeRel {
23975let Inst{4-3} = 0b10;
23976let Inst{31-21} = 0b00110100101;
23977let isPredicated = 1;
23978let addrMode = BaseRegOffset;
23979let accessSize = WordAccess;
23980let isNVStore = 1;
23981let isNewValue = 1;
23982let isRestrictNoSlot1Store = 1;
23983let mayStore = 1;
23984let CextOpcode = "S2_storeri";
23985let InputType = "reg";
23986let BaseOpcode = "S2_storeri_rr";
23987let opNewValue = 4;
23988}
23989def S4_pstorerinewtnew_abs : HInst<
23990(outs),
23991(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Nt8),
23992"if ($Pv4.new) memw(#$Ii) = $Nt8.new",
23993tc_d2e63d61, TypeST>, Enc_44215c, AddrModeRel {
23994let Inst{2-2} = 0b0;
23995let Inst{7-7} = 0b1;
23996let Inst{13-11} = 0b110;
23997let Inst{31-18} = 0b10101111101000;
23998let isPredicated = 1;
23999let addrMode = Absolute;
24000let accessSize = WordAccess;
24001let isNVStore = 1;
24002let isPredicatedNew = 1;
24003let isNewValue = 1;
24004let isExtended = 1;
24005let isRestrictNoSlot1Store = 1;
24006let mayStore = 1;
24007let CextOpcode = "S2_storeri";
24008let BaseOpcode = "S2_storeriabs";
24009let DecoderNamespace = "MustExtend";
24010let isExtendable = 1;
24011let opExtendable = 1;
24012let isExtentSigned = 0;
24013let opExtentBits = 6;
24014let opExtentAlign = 0;
24015let opNewValue = 2;
24016}
24017def S4_pstorerinewtnew_io : HInst<
24018(outs),
24019(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Nt8),
24020"if ($Pv4.new) memw($Rs32+#$Ii) = $Nt8.new",
24021tc_c79a189f, TypeV2LDST>, Enc_8dbdfe, AddrModeRel {
24022let Inst{2-2} = 0b0;
24023let Inst{12-11} = 0b10;
24024let Inst{31-21} = 0b01000010101;
24025let isPredicated = 1;
24026let addrMode = BaseImmOffset;
24027let accessSize = WordAccess;
24028let isNVStore = 1;
24029let isPredicatedNew = 1;
24030let isNewValue = 1;
24031let isRestrictNoSlot1Store = 1;
24032let mayStore = 1;
24033let CextOpcode = "S2_storeri";
24034let InputType = "imm";
24035let BaseOpcode = "S2_storeri_io";
24036let isExtendable = 1;
24037let opExtendable = 2;
24038let isExtentSigned = 0;
24039let opExtentBits = 8;
24040let opExtentAlign = 2;
24041let opNewValue = 3;
24042}
24043def S4_pstorerinewtnew_rr : HInst<
24044(outs),
24045(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24046"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24047tc_b90a29b1, TypeST>, Enc_47ee5e, AddrModeRel {
24048let Inst{4-3} = 0b10;
24049let Inst{31-21} = 0b00110110101;
24050let isPredicated = 1;
24051let addrMode = BaseRegOffset;
24052let accessSize = WordAccess;
24053let isNVStore = 1;
24054let isPredicatedNew = 1;
24055let isNewValue = 1;
24056let isRestrictNoSlot1Store = 1;
24057let mayStore = 1;
24058let CextOpcode = "S2_storeri";
24059let InputType = "reg";
24060let BaseOpcode = "S2_storeri_rr";
24061let opNewValue = 4;
24062}
24063def S4_pstorerinewtnew_zomap : HInst<
24064(outs),
24065(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Nt8),
24066"if ($Pv4.new) memw($Rs32) = $Nt8.new",
24067tc_c79a189f, TypeMAPPING> {
24068let isPseudo = 1;
24069let isCodeGenOnly = 1;
24070let opNewValue = 2;
24071}
24072def S4_pstorerit_abs : HInst<
24073(outs),
24074(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24075"if ($Pv4) memw(#$Ii) = $Rt32",
24076tc_362c6592, TypeST>, Enc_1cf4ca, AddrModeRel {
24077let Inst{2-2} = 0b0;
24078let Inst{7-7} = 0b1;
24079let Inst{13-13} = 0b0;
24080let Inst{31-18} = 0b10101111100000;
24081let isPredicated = 1;
24082let addrMode = Absolute;
24083let accessSize = WordAccess;
24084let isExtended = 1;
24085let mayStore = 1;
24086let CextOpcode = "S2_storeri";
24087let BaseOpcode = "S2_storeriabs";
24088let isNVStorable = 1;
24089let DecoderNamespace = "MustExtend";
24090let isExtendable = 1;
24091let opExtendable = 1;
24092let isExtentSigned = 0;
24093let opExtentBits = 6;
24094let opExtentAlign = 0;
24095}
24096def S4_pstorerit_rr : HInst<
24097(outs),
24098(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24099"if ($Pv4) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24100tc_3962fa26, TypeST>, Enc_6339d5, AddrModeRel {
24101let Inst{31-21} = 0b00110100100;
24102let isPredicated = 1;
24103let addrMode = BaseRegOffset;
24104let accessSize = WordAccess;
24105let mayStore = 1;
24106let CextOpcode = "S2_storeri";
24107let InputType = "reg";
24108let BaseOpcode = "S2_storeri_rr";
24109let isNVStorable = 1;
24110}
24111def S4_pstoreritnew_abs : HInst<
24112(outs),
24113(ins PredRegs:$Pv4, u32_0Imm:$Ii, IntRegs:$Rt32),
24114"if ($Pv4.new) memw(#$Ii) = $Rt32",
24115tc_da4a37ed, TypeST>, Enc_1cf4ca, AddrModeRel {
24116let Inst{2-2} = 0b0;
24117let Inst{7-7} = 0b1;
24118let Inst{13-13} = 0b1;
24119let Inst{31-18} = 0b10101111100000;
24120let isPredicated = 1;
24121let addrMode = Absolute;
24122let accessSize = WordAccess;
24123let isPredicatedNew = 1;
24124let isExtended = 1;
24125let mayStore = 1;
24126let CextOpcode = "S2_storeri";
24127let BaseOpcode = "S2_storeriabs";
24128let isNVStorable = 1;
24129let DecoderNamespace = "MustExtend";
24130let isExtendable = 1;
24131let opExtendable = 1;
24132let isExtentSigned = 0;
24133let opExtentBits = 6;
24134let opExtentAlign = 0;
24135}
24136def S4_pstoreritnew_io : HInst<
24137(outs),
24138(ins PredRegs:$Pv4, IntRegs:$Rs32, u30_2Imm:$Ii, IntRegs:$Rt32),
24139"if ($Pv4.new) memw($Rs32+#$Ii) = $Rt32",
24140tc_da97ee82, TypeV2LDST>, Enc_397f23, AddrModeRel {
24141let Inst{2-2} = 0b0;
24142let Inst{31-21} = 0b01000010100;
24143let isPredicated = 1;
24144let addrMode = BaseImmOffset;
24145let accessSize = WordAccess;
24146let isPredicatedNew = 1;
24147let mayStore = 1;
24148let CextOpcode = "S2_storeri";
24149let InputType = "imm";
24150let BaseOpcode = "S2_storeri_io";
24151let isNVStorable = 1;
24152let isExtendable = 1;
24153let opExtendable = 2;
24154let isExtentSigned = 0;
24155let opExtentBits = 8;
24156let opExtentAlign = 2;
24157}
24158def S4_pstoreritnew_rr : HInst<
24159(outs),
24160(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24161"if ($Pv4.new) memw($Rs32+$Ru32<<#$Ii) = $Rt32",
24162tc_40116ca8, TypeST>, Enc_6339d5, AddrModeRel {
24163let Inst{31-21} = 0b00110110100;
24164let isPredicated = 1;
24165let addrMode = BaseRegOffset;
24166let accessSize = WordAccess;
24167let isPredicatedNew = 1;
24168let mayStore = 1;
24169let CextOpcode = "S2_storeri";
24170let InputType = "reg";
24171let BaseOpcode = "S2_storeri_rr";
24172let isNVStorable = 1;
24173}
24174def S4_pstoreritnew_zomap : HInst<
24175(outs),
24176(ins PredRegs:$Pv4, IntRegs:$Rs32, IntRegs:$Rt32),
24177"if ($Pv4.new) memw($Rs32) = $Rt32",
24178tc_da97ee82, TypeMAPPING> {
24179let isPseudo = 1;
24180let isCodeGenOnly = 1;
24181}
24182def S4_stored_locked : HInst<
24183(outs PredRegs:$Pd4),
24184(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
24185"memd_locked($Rs32,$Pd4) = $Rtt32",
24186tc_5abb5e3f, TypeST>, Enc_d7dc10 {
24187let Inst{7-2} = 0b000000;
24188let Inst{13-13} = 0b0;
24189let Inst{31-21} = 0b10100000111;
24190let accessSize = DoubleWordAccess;
24191let isPredicateLate = 1;
24192let isSoloAX = 1;
24193let mayStore = 1;
24194}
24195def S4_storeirb_io : HInst<
24196(outs),
24197(ins IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24198"memb($Rs32+#$Ii) = #$II",
24199tc_b83e6d73, TypeST>, Enc_8203bb, PredNewRel {
24200let Inst{31-21} = 0b00111100000;
24201let addrMode = BaseImmOffset;
24202let accessSize = ByteAccess;
24203let mayStore = 1;
24204let CextOpcode = "S2_storerb";
24205let InputType = "imm";
24206let BaseOpcode = "S4_storeirb_io";
24207let isPredicable = 1;
24208let isExtendable = 1;
24209let opExtendable = 2;
24210let isExtentSigned = 1;
24211let opExtentBits = 8;
24212let opExtentAlign = 0;
24213}
24214def S4_storeirb_zomap : HInst<
24215(outs),
24216(ins IntRegs:$Rs32, s8_0Imm:$II),
24217"memb($Rs32) = #$II",
24218tc_b83e6d73, TypeMAPPING> {
24219let isPseudo = 1;
24220let isCodeGenOnly = 1;
24221}
24222def S4_storeirbf_io : HInst<
24223(outs),
24224(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24225"if (!$Pv4) memb($Rs32+#$Ii) = #$II",
24226tc_0b2be201, TypeST>, Enc_d7a65e, PredNewRel {
24227let Inst{31-21} = 0b00111000100;
24228let isPredicated = 1;
24229let isPredicatedFalse = 1;
24230let addrMode = BaseImmOffset;
24231let accessSize = ByteAccess;
24232let mayStore = 1;
24233let CextOpcode = "S2_storerb";
24234let InputType = "imm";
24235let BaseOpcode = "S4_storeirb_io";
24236let isExtendable = 1;
24237let opExtendable = 3;
24238let isExtentSigned = 1;
24239let opExtentBits = 6;
24240let opExtentAlign = 0;
24241}
24242def S4_storeirbf_zomap : HInst<
24243(outs),
24244(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24245"if (!$Pv4) memb($Rs32) = #$II",
24246tc_0b2be201, TypeMAPPING> {
24247let isPseudo = 1;
24248let isCodeGenOnly = 1;
24249}
24250def S4_storeirbfnew_io : HInst<
24251(outs),
24252(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24253"if (!$Pv4.new) memb($Rs32+#$Ii) = #$II",
24254tc_c4f596e3, TypeST>, Enc_d7a65e, PredNewRel {
24255let Inst{31-21} = 0b00111001100;
24256let isPredicated = 1;
24257let isPredicatedFalse = 1;
24258let addrMode = BaseImmOffset;
24259let accessSize = ByteAccess;
24260let isPredicatedNew = 1;
24261let mayStore = 1;
24262let CextOpcode = "S2_storerb";
24263let InputType = "imm";
24264let BaseOpcode = "S4_storeirb_io";
24265let isExtendable = 1;
24266let opExtendable = 3;
24267let isExtentSigned = 1;
24268let opExtentBits = 6;
24269let opExtentAlign = 0;
24270}
24271def S4_storeirbfnew_zomap : HInst<
24272(outs),
24273(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24274"if (!$Pv4.new) memb($Rs32) = #$II",
24275tc_c4f596e3, TypeMAPPING> {
24276let isPseudo = 1;
24277let isCodeGenOnly = 1;
24278}
24279def S4_storeirbt_io : HInst<
24280(outs),
24281(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24282"if ($Pv4) memb($Rs32+#$Ii) = #$II",
24283tc_0b2be201, TypeST>, Enc_d7a65e, PredNewRel {
24284let Inst{31-21} = 0b00111000000;
24285let isPredicated = 1;
24286let addrMode = BaseImmOffset;
24287let accessSize = ByteAccess;
24288let mayStore = 1;
24289let CextOpcode = "S2_storerb";
24290let InputType = "imm";
24291let BaseOpcode = "S4_storeirb_io";
24292let isExtendable = 1;
24293let opExtendable = 3;
24294let isExtentSigned = 1;
24295let opExtentBits = 6;
24296let opExtentAlign = 0;
24297}
24298def S4_storeirbt_zomap : HInst<
24299(outs),
24300(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24301"if ($Pv4) memb($Rs32) = #$II",
24302tc_0b2be201, TypeMAPPING> {
24303let isPseudo = 1;
24304let isCodeGenOnly = 1;
24305}
24306def S4_storeirbtnew_io : HInst<
24307(outs),
24308(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_0Imm:$Ii, s32_0Imm:$II),
24309"if ($Pv4.new) memb($Rs32+#$Ii) = #$II",
24310tc_c4f596e3, TypeST>, Enc_d7a65e, PredNewRel {
24311let Inst{31-21} = 0b00111001000;
24312let isPredicated = 1;
24313let addrMode = BaseImmOffset;
24314let accessSize = ByteAccess;
24315let isPredicatedNew = 1;
24316let mayStore = 1;
24317let CextOpcode = "S2_storerb";
24318let InputType = "imm";
24319let BaseOpcode = "S4_storeirb_io";
24320let isExtendable = 1;
24321let opExtendable = 3;
24322let isExtentSigned = 1;
24323let opExtentBits = 6;
24324let opExtentAlign = 0;
24325}
24326def S4_storeirbtnew_zomap : HInst<
24327(outs),
24328(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24329"if ($Pv4.new) memb($Rs32) = #$II",
24330tc_c4f596e3, TypeMAPPING> {
24331let isPseudo = 1;
24332let isCodeGenOnly = 1;
24333}
24334def S4_storeirh_io : HInst<
24335(outs),
24336(ins IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24337"memh($Rs32+#$Ii) = #$II",
24338tc_b83e6d73, TypeST>, Enc_a803e0, PredNewRel {
24339let Inst{31-21} = 0b00111100001;
24340let addrMode = BaseImmOffset;
24341let accessSize = HalfWordAccess;
24342let mayStore = 1;
24343let CextOpcode = "S2_storerh";
24344let InputType = "imm";
24345let BaseOpcode = "S4_storeirh_io";
24346let isPredicable = 1;
24347let isExtendable = 1;
24348let opExtendable = 2;
24349let isExtentSigned = 1;
24350let opExtentBits = 8;
24351let opExtentAlign = 0;
24352}
24353def S4_storeirh_zomap : HInst<
24354(outs),
24355(ins IntRegs:$Rs32, s8_0Imm:$II),
24356"memh($Rs32) = #$II",
24357tc_b83e6d73, TypeMAPPING> {
24358let isPseudo = 1;
24359let isCodeGenOnly = 1;
24360}
24361def S4_storeirhf_io : HInst<
24362(outs),
24363(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24364"if (!$Pv4) memh($Rs32+#$Ii) = #$II",
24365tc_0b2be201, TypeST>, Enc_f20719, PredNewRel {
24366let Inst{31-21} = 0b00111000101;
24367let isPredicated = 1;
24368let isPredicatedFalse = 1;
24369let addrMode = BaseImmOffset;
24370let accessSize = HalfWordAccess;
24371let mayStore = 1;
24372let CextOpcode = "S2_storerh";
24373let InputType = "imm";
24374let BaseOpcode = "S4_storeirh_io";
24375let isExtendable = 1;
24376let opExtendable = 3;
24377let isExtentSigned = 1;
24378let opExtentBits = 6;
24379let opExtentAlign = 0;
24380}
24381def S4_storeirhf_zomap : HInst<
24382(outs),
24383(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24384"if (!$Pv4) memh($Rs32) = #$II",
24385tc_0b2be201, TypeMAPPING> {
24386let isPseudo = 1;
24387let isCodeGenOnly = 1;
24388}
24389def S4_storeirhfnew_io : HInst<
24390(outs),
24391(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24392"if (!$Pv4.new) memh($Rs32+#$Ii) = #$II",
24393tc_c4f596e3, TypeST>, Enc_f20719, PredNewRel {
24394let Inst{31-21} = 0b00111001101;
24395let isPredicated = 1;
24396let isPredicatedFalse = 1;
24397let addrMode = BaseImmOffset;
24398let accessSize = HalfWordAccess;
24399let isPredicatedNew = 1;
24400let mayStore = 1;
24401let CextOpcode = "S2_storerh";
24402let InputType = "imm";
24403let BaseOpcode = "S4_storeirh_io";
24404let isExtendable = 1;
24405let opExtendable = 3;
24406let isExtentSigned = 1;
24407let opExtentBits = 6;
24408let opExtentAlign = 0;
24409}
24410def S4_storeirhfnew_zomap : HInst<
24411(outs),
24412(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24413"if (!$Pv4.new) memh($Rs32) = #$II",
24414tc_c4f596e3, TypeMAPPING> {
24415let isPseudo = 1;
24416let isCodeGenOnly = 1;
24417}
24418def S4_storeirht_io : HInst<
24419(outs),
24420(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24421"if ($Pv4) memh($Rs32+#$Ii) = #$II",
24422tc_0b2be201, TypeST>, Enc_f20719, PredNewRel {
24423let Inst{31-21} = 0b00111000001;
24424let isPredicated = 1;
24425let addrMode = BaseImmOffset;
24426let accessSize = HalfWordAccess;
24427let mayStore = 1;
24428let CextOpcode = "S2_storerh";
24429let InputType = "imm";
24430let BaseOpcode = "S4_storeirh_io";
24431let isExtendable = 1;
24432let opExtendable = 3;
24433let isExtentSigned = 1;
24434let opExtentBits = 6;
24435let opExtentAlign = 0;
24436}
24437def S4_storeirht_zomap : HInst<
24438(outs),
24439(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24440"if ($Pv4) memh($Rs32) = #$II",
24441tc_0b2be201, TypeMAPPING> {
24442let isPseudo = 1;
24443let isCodeGenOnly = 1;
24444}
24445def S4_storeirhtnew_io : HInst<
24446(outs),
24447(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_1Imm:$Ii, s32_0Imm:$II),
24448"if ($Pv4.new) memh($Rs32+#$Ii) = #$II",
24449tc_c4f596e3, TypeST>, Enc_f20719, PredNewRel {
24450let Inst{31-21} = 0b00111001001;
24451let isPredicated = 1;
24452let addrMode = BaseImmOffset;
24453let accessSize = HalfWordAccess;
24454let isPredicatedNew = 1;
24455let mayStore = 1;
24456let CextOpcode = "S2_storerh";
24457let InputType = "imm";
24458let BaseOpcode = "S4_storeirh_io";
24459let isExtendable = 1;
24460let opExtendable = 3;
24461let isExtentSigned = 1;
24462let opExtentBits = 6;
24463let opExtentAlign = 0;
24464}
24465def S4_storeirhtnew_zomap : HInst<
24466(outs),
24467(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24468"if ($Pv4.new) memh($Rs32) = #$II",
24469tc_c4f596e3, TypeMAPPING> {
24470let isPseudo = 1;
24471let isCodeGenOnly = 1;
24472}
24473def S4_storeiri_io : HInst<
24474(outs),
24475(ins IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24476"memw($Rs32+#$Ii) = #$II",
24477tc_b83e6d73, TypeST>, Enc_f37377, PredNewRel {
24478let Inst{31-21} = 0b00111100010;
24479let addrMode = BaseImmOffset;
24480let accessSize = WordAccess;
24481let mayStore = 1;
24482let CextOpcode = "S2_storeri";
24483let InputType = "imm";
24484let BaseOpcode = "S4_storeiri_io";
24485let isPredicable = 1;
24486let isExtendable = 1;
24487let opExtendable = 2;
24488let isExtentSigned = 1;
24489let opExtentBits = 8;
24490let opExtentAlign = 0;
24491}
24492def S4_storeiri_zomap : HInst<
24493(outs),
24494(ins IntRegs:$Rs32, s8_0Imm:$II),
24495"memw($Rs32) = #$II",
24496tc_b83e6d73, TypeMAPPING> {
24497let isPseudo = 1;
24498let isCodeGenOnly = 1;
24499}
24500def S4_storeirif_io : HInst<
24501(outs),
24502(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24503"if (!$Pv4) memw($Rs32+#$Ii) = #$II",
24504tc_0b2be201, TypeST>, Enc_5ccba9, PredNewRel {
24505let Inst{31-21} = 0b00111000110;
24506let isPredicated = 1;
24507let isPredicatedFalse = 1;
24508let addrMode = BaseImmOffset;
24509let accessSize = WordAccess;
24510let mayStore = 1;
24511let CextOpcode = "S2_storeri";
24512let InputType = "imm";
24513let BaseOpcode = "S4_storeiri_io";
24514let isExtendable = 1;
24515let opExtendable = 3;
24516let isExtentSigned = 1;
24517let opExtentBits = 6;
24518let opExtentAlign = 0;
24519}
24520def S4_storeirif_zomap : HInst<
24521(outs),
24522(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24523"if (!$Pv4) memw($Rs32) = #$II",
24524tc_0b2be201, TypeMAPPING> {
24525let isPseudo = 1;
24526let isCodeGenOnly = 1;
24527}
24528def S4_storeirifnew_io : HInst<
24529(outs),
24530(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24531"if (!$Pv4.new) memw($Rs32+#$Ii) = #$II",
24532tc_c4f596e3, TypeST>, Enc_5ccba9, PredNewRel {
24533let Inst{31-21} = 0b00111001110;
24534let isPredicated = 1;
24535let isPredicatedFalse = 1;
24536let addrMode = BaseImmOffset;
24537let accessSize = WordAccess;
24538let isPredicatedNew = 1;
24539let mayStore = 1;
24540let CextOpcode = "S2_storeri";
24541let InputType = "imm";
24542let BaseOpcode = "S4_storeiri_io";
24543let isExtendable = 1;
24544let opExtendable = 3;
24545let isExtentSigned = 1;
24546let opExtentBits = 6;
24547let opExtentAlign = 0;
24548}
24549def S4_storeirifnew_zomap : HInst<
24550(outs),
24551(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24552"if (!$Pv4.new) memw($Rs32) = #$II",
24553tc_c4f596e3, TypeMAPPING> {
24554let isPseudo = 1;
24555let isCodeGenOnly = 1;
24556}
24557def S4_storeirit_io : HInst<
24558(outs),
24559(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24560"if ($Pv4) memw($Rs32+#$Ii) = #$II",
24561tc_0b2be201, TypeST>, Enc_5ccba9, PredNewRel {
24562let Inst{31-21} = 0b00111000010;
24563let isPredicated = 1;
24564let addrMode = BaseImmOffset;
24565let accessSize = WordAccess;
24566let mayStore = 1;
24567let CextOpcode = "S2_storeri";
24568let InputType = "imm";
24569let BaseOpcode = "S4_storeiri_io";
24570let isExtendable = 1;
24571let opExtendable = 3;
24572let isExtentSigned = 1;
24573let opExtentBits = 6;
24574let opExtentAlign = 0;
24575}
24576def S4_storeirit_zomap : HInst<
24577(outs),
24578(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24579"if ($Pv4) memw($Rs32) = #$II",
24580tc_0b2be201, TypeMAPPING> {
24581let isPseudo = 1;
24582let isCodeGenOnly = 1;
24583}
24584def S4_storeiritnew_io : HInst<
24585(outs),
24586(ins PredRegs:$Pv4, IntRegs:$Rs32, u6_2Imm:$Ii, s32_0Imm:$II),
24587"if ($Pv4.new) memw($Rs32+#$Ii) = #$II",
24588tc_c4f596e3, TypeST>, Enc_5ccba9, PredNewRel {
24589let Inst{31-21} = 0b00111001010;
24590let isPredicated = 1;
24591let addrMode = BaseImmOffset;
24592let accessSize = WordAccess;
24593let isPredicatedNew = 1;
24594let mayStore = 1;
24595let CextOpcode = "S2_storeri";
24596let InputType = "imm";
24597let BaseOpcode = "S4_storeiri_io";
24598let isExtendable = 1;
24599let opExtendable = 3;
24600let isExtentSigned = 1;
24601let opExtentBits = 6;
24602let opExtentAlign = 0;
24603}
24604def S4_storeiritnew_zomap : HInst<
24605(outs),
24606(ins PredRegs:$Pv4, IntRegs:$Rs32, s6_0Imm:$II),
24607"if ($Pv4.new) memw($Rs32) = #$II",
24608tc_c4f596e3, TypeMAPPING> {
24609let isPseudo = 1;
24610let isCodeGenOnly = 1;
24611}
24612def S4_storerb_ap : HInst<
24613(outs IntRegs:$Re32),
24614(ins u32_0Imm:$II, IntRegs:$Rt32),
24615"memb($Re32=#$II) = $Rt32",
24616tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24617let Inst{7-6} = 0b10;
24618let Inst{13-13} = 0b0;
24619let Inst{31-21} = 0b10101011000;
24620let addrMode = AbsoluteSet;
24621let accessSize = ByteAccess;
24622let isExtended = 1;
24623let mayStore = 1;
24624let BaseOpcode = "S2_storerb_ap";
24625let isNVStorable = 1;
24626let DecoderNamespace = "MustExtend";
24627let isExtendable = 1;
24628let opExtendable = 1;
24629let isExtentSigned = 0;
24630let opExtentBits = 6;
24631let opExtentAlign = 0;
24632}
24633def S4_storerb_rr : HInst<
24634(outs),
24635(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24636"memb($Rs32+$Ru32<<#$Ii) = $Rt32",
24637tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24638let Inst{6-5} = 0b00;
24639let Inst{31-21} = 0b00111011000;
24640let addrMode = BaseRegOffset;
24641let accessSize = ByteAccess;
24642let mayStore = 1;
24643let CextOpcode = "S2_storerb";
24644let InputType = "reg";
24645let BaseOpcode = "S4_storerb_rr";
24646let isNVStorable = 1;
24647let isPredicable = 1;
24648}
24649def S4_storerb_ur : HInst<
24650(outs),
24651(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24652"memb($Ru32<<#$Ii+#$II) = $Rt32",
24653tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24654let Inst{7-7} = 0b1;
24655let Inst{31-21} = 0b10101101000;
24656let addrMode = BaseLongOffset;
24657let accessSize = ByteAccess;
24658let isExtended = 1;
24659let mayStore = 1;
24660let CextOpcode = "S2_storerb";
24661let InputType = "imm";
24662let BaseOpcode = "S4_storerb_ur";
24663let isNVStorable = 1;
24664let DecoderNamespace = "MustExtend";
24665let isExtendable = 1;
24666let opExtendable = 2;
24667let isExtentSigned = 0;
24668let opExtentBits = 6;
24669let opExtentAlign = 0;
24670}
24671def S4_storerbnew_ap : HInst<
24672(outs IntRegs:$Re32),
24673(ins u32_0Imm:$II, IntRegs:$Nt8),
24674"memb($Re32=#$II) = $Nt8.new",
24675tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
24676let Inst{7-6} = 0b10;
24677let Inst{13-11} = 0b000;
24678let Inst{31-21} = 0b10101011101;
24679let addrMode = AbsoluteSet;
24680let accessSize = ByteAccess;
24681let isNVStore = 1;
24682let isNewValue = 1;
24683let isExtended = 1;
24684let isRestrictNoSlot1Store = 1;
24685let mayStore = 1;
24686let BaseOpcode = "S2_storerb_ap";
24687let DecoderNamespace = "MustExtend";
24688let isExtendable = 1;
24689let opExtendable = 1;
24690let isExtentSigned = 0;
24691let opExtentBits = 6;
24692let opExtentAlign = 0;
24693let opNewValue = 2;
24694}
24695def S4_storerbnew_rr : HInst<
24696(outs),
24697(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24698"memb($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24699tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
24700let Inst{6-3} = 0b0000;
24701let Inst{31-21} = 0b00111011101;
24702let addrMode = BaseRegOffset;
24703let accessSize = ByteAccess;
24704let isNVStore = 1;
24705let isNewValue = 1;
24706let isRestrictNoSlot1Store = 1;
24707let mayStore = 1;
24708let CextOpcode = "S2_storerb";
24709let InputType = "reg";
24710let BaseOpcode = "S4_storerb_rr";
24711let isPredicable = 1;
24712let opNewValue = 3;
24713}
24714def S4_storerbnew_ur : HInst<
24715(outs),
24716(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24717"memb($Ru32<<#$Ii+#$II) = $Nt8.new",
24718tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
24719let Inst{7-7} = 0b1;
24720let Inst{12-11} = 0b00;
24721let Inst{31-21} = 0b10101101101;
24722let addrMode = BaseLongOffset;
24723let accessSize = ByteAccess;
24724let isNVStore = 1;
24725let isNewValue = 1;
24726let isExtended = 1;
24727let isRestrictNoSlot1Store = 1;
24728let mayStore = 1;
24729let CextOpcode = "S2_storerb";
24730let BaseOpcode = "S4_storerb_ur";
24731let DecoderNamespace = "MustExtend";
24732let isExtendable = 1;
24733let opExtendable = 2;
24734let isExtentSigned = 0;
24735let opExtentBits = 6;
24736let opExtentAlign = 0;
24737let opNewValue = 3;
24738}
24739def S4_storerd_ap : HInst<
24740(outs IntRegs:$Re32),
24741(ins u32_0Imm:$II, DoubleRegs:$Rtt32),
24742"memd($Re32=#$II) = $Rtt32",
24743tc_da4a37ed, TypeST>, Enc_c7a204 {
24744let Inst{7-6} = 0b10;
24745let Inst{13-13} = 0b0;
24746let Inst{31-21} = 0b10101011110;
24747let addrMode = AbsoluteSet;
24748let accessSize = DoubleWordAccess;
24749let isExtended = 1;
24750let mayStore = 1;
24751let BaseOpcode = "S4_storerd_ap";
24752let DecoderNamespace = "MustExtend";
24753let isExtendable = 1;
24754let opExtendable = 1;
24755let isExtentSigned = 0;
24756let opExtentBits = 6;
24757let opExtentAlign = 0;
24758}
24759def S4_storerd_rr : HInst<
24760(outs),
24761(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, DoubleRegs:$Rtt32),
24762"memd($Rs32+$Ru32<<#$Ii) = $Rtt32",
24763tc_5aee39f7, TypeST>, Enc_55355c, AddrModeRel, ImmRegShl {
24764let Inst{6-5} = 0b00;
24765let Inst{31-21} = 0b00111011110;
24766let addrMode = BaseRegOffset;
24767let accessSize = DoubleWordAccess;
24768let mayStore = 1;
24769let CextOpcode = "S2_storerd";
24770let InputType = "reg";
24771let BaseOpcode = "S2_storerd_rr";
24772let isPredicable = 1;
24773}
24774def S4_storerd_ur : HInst<
24775(outs),
24776(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, DoubleRegs:$Rtt32),
24777"memd($Ru32<<#$Ii+#$II) = $Rtt32",
24778tc_14b272fa, TypeST>, Enc_f79415, AddrModeRel, ImmRegShl {
24779let Inst{7-7} = 0b1;
24780let Inst{31-21} = 0b10101101110;
24781let addrMode = BaseLongOffset;
24782let accessSize = DoubleWordAccess;
24783let isExtended = 1;
24784let mayStore = 1;
24785let CextOpcode = "S2_storerd";
24786let InputType = "imm";
24787let BaseOpcode = "S2_storerd_ur";
24788let DecoderNamespace = "MustExtend";
24789let isExtendable = 1;
24790let opExtendable = 2;
24791let isExtentSigned = 0;
24792let opExtentBits = 6;
24793let opExtentAlign = 0;
24794}
24795def S4_storerf_ap : HInst<
24796(outs IntRegs:$Re32),
24797(ins u32_0Imm:$II, IntRegs:$Rt32),
24798"memh($Re32=#$II) = $Rt32.h",
24799tc_da4a37ed, TypeST>, Enc_8bcba4 {
24800let Inst{7-6} = 0b10;
24801let Inst{13-13} = 0b0;
24802let Inst{31-21} = 0b10101011011;
24803let addrMode = AbsoluteSet;
24804let accessSize = HalfWordAccess;
24805let isExtended = 1;
24806let mayStore = 1;
24807let BaseOpcode = "S4_storerf_ap";
24808let DecoderNamespace = "MustExtend";
24809let isExtendable = 1;
24810let opExtendable = 1;
24811let isExtentSigned = 0;
24812let opExtentBits = 6;
24813let opExtentAlign = 0;
24814}
24815def S4_storerf_rr : HInst<
24816(outs),
24817(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24818"memh($Rs32+$Ru32<<#$Ii) = $Rt32.h",
24819tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24820let Inst{6-5} = 0b00;
24821let Inst{31-21} = 0b00111011011;
24822let addrMode = BaseRegOffset;
24823let accessSize = HalfWordAccess;
24824let mayStore = 1;
24825let CextOpcode = "S2_storerf";
24826let InputType = "reg";
24827let BaseOpcode = "S4_storerf_rr";
24828let isPredicable = 1;
24829}
24830def S4_storerf_ur : HInst<
24831(outs),
24832(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24833"memh($Ru32<<#$Ii+#$II) = $Rt32.h",
24834tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24835let Inst{7-7} = 0b1;
24836let Inst{31-21} = 0b10101101011;
24837let addrMode = BaseLongOffset;
24838let accessSize = HalfWordAccess;
24839let isExtended = 1;
24840let mayStore = 1;
24841let CextOpcode = "S2_storerf";
24842let InputType = "imm";
24843let BaseOpcode = "S4_storerf_rr";
24844let DecoderNamespace = "MustExtend";
24845let isExtendable = 1;
24846let opExtendable = 2;
24847let isExtentSigned = 0;
24848let opExtentBits = 6;
24849let opExtentAlign = 0;
24850}
24851def S4_storerh_ap : HInst<
24852(outs IntRegs:$Re32),
24853(ins u32_0Imm:$II, IntRegs:$Rt32),
24854"memh($Re32=#$II) = $Rt32",
24855tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24856let Inst{7-6} = 0b10;
24857let Inst{13-13} = 0b0;
24858let Inst{31-21} = 0b10101011010;
24859let addrMode = AbsoluteSet;
24860let accessSize = HalfWordAccess;
24861let isExtended = 1;
24862let mayStore = 1;
24863let BaseOpcode = "S2_storerh_ap";
24864let isNVStorable = 1;
24865let DecoderNamespace = "MustExtend";
24866let isExtendable = 1;
24867let opExtendable = 1;
24868let isExtentSigned = 0;
24869let opExtentBits = 6;
24870let opExtentAlign = 0;
24871}
24872def S4_storerh_rr : HInst<
24873(outs),
24874(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
24875"memh($Rs32+$Ru32<<#$Ii) = $Rt32",
24876tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
24877let Inst{6-5} = 0b00;
24878let Inst{31-21} = 0b00111011010;
24879let addrMode = BaseRegOffset;
24880let accessSize = HalfWordAccess;
24881let mayStore = 1;
24882let CextOpcode = "S2_storerh";
24883let InputType = "reg";
24884let BaseOpcode = "S2_storerh_rr";
24885let isNVStorable = 1;
24886let isPredicable = 1;
24887}
24888def S4_storerh_ur : HInst<
24889(outs),
24890(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
24891"memh($Ru32<<#$Ii+#$II) = $Rt32",
24892tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
24893let Inst{7-7} = 0b1;
24894let Inst{31-21} = 0b10101101010;
24895let addrMode = BaseLongOffset;
24896let accessSize = HalfWordAccess;
24897let isExtended = 1;
24898let mayStore = 1;
24899let CextOpcode = "S2_storerh";
24900let InputType = "imm";
24901let BaseOpcode = "S2_storerh_ur";
24902let isNVStorable = 1;
24903let DecoderNamespace = "MustExtend";
24904let isExtendable = 1;
24905let opExtendable = 2;
24906let isExtentSigned = 0;
24907let opExtentBits = 6;
24908let opExtentAlign = 0;
24909}
24910def S4_storerhnew_ap : HInst<
24911(outs IntRegs:$Re32),
24912(ins u32_0Imm:$II, IntRegs:$Nt8),
24913"memh($Re32=#$II) = $Nt8.new",
24914tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
24915let Inst{7-6} = 0b10;
24916let Inst{13-11} = 0b001;
24917let Inst{31-21} = 0b10101011101;
24918let addrMode = AbsoluteSet;
24919let accessSize = HalfWordAccess;
24920let isNVStore = 1;
24921let isNewValue = 1;
24922let isExtended = 1;
24923let isRestrictNoSlot1Store = 1;
24924let mayStore = 1;
24925let BaseOpcode = "S2_storerh_ap";
24926let DecoderNamespace = "MustExtend";
24927let isExtendable = 1;
24928let opExtendable = 1;
24929let isExtentSigned = 0;
24930let opExtentBits = 6;
24931let opExtentAlign = 0;
24932let opNewValue = 2;
24933}
24934def S4_storerhnew_rr : HInst<
24935(outs),
24936(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
24937"memh($Rs32+$Ru32<<#$Ii) = $Nt8.new",
24938tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
24939let Inst{6-3} = 0b0001;
24940let Inst{31-21} = 0b00111011101;
24941let addrMode = BaseRegOffset;
24942let accessSize = HalfWordAccess;
24943let isNVStore = 1;
24944let isNewValue = 1;
24945let isRestrictNoSlot1Store = 1;
24946let mayStore = 1;
24947let CextOpcode = "S2_storerh";
24948let InputType = "reg";
24949let BaseOpcode = "S2_storerh_rr";
24950let isPredicable = 1;
24951let opNewValue = 3;
24952}
24953def S4_storerhnew_ur : HInst<
24954(outs),
24955(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
24956"memh($Ru32<<#$Ii+#$II) = $Nt8.new",
24957tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
24958let Inst{7-7} = 0b1;
24959let Inst{12-11} = 0b01;
24960let Inst{31-21} = 0b10101101101;
24961let addrMode = BaseLongOffset;
24962let accessSize = HalfWordAccess;
24963let isNVStore = 1;
24964let isNewValue = 1;
24965let isExtended = 1;
24966let isRestrictNoSlot1Store = 1;
24967let mayStore = 1;
24968let CextOpcode = "S2_storerh";
24969let BaseOpcode = "S2_storerh_ur";
24970let DecoderNamespace = "MustExtend";
24971let isExtendable = 1;
24972let opExtendable = 2;
24973let isExtentSigned = 0;
24974let opExtentBits = 6;
24975let opExtentAlign = 0;
24976let opNewValue = 3;
24977}
24978def S4_storeri_ap : HInst<
24979(outs IntRegs:$Re32),
24980(ins u32_0Imm:$II, IntRegs:$Rt32),
24981"memw($Re32=#$II) = $Rt32",
24982tc_da4a37ed, TypeST>, Enc_8bcba4, AddrModeRel {
24983let Inst{7-6} = 0b10;
24984let Inst{13-13} = 0b0;
24985let Inst{31-21} = 0b10101011100;
24986let addrMode = AbsoluteSet;
24987let accessSize = WordAccess;
24988let isExtended = 1;
24989let mayStore = 1;
24990let BaseOpcode = "S2_storeri_ap";
24991let isNVStorable = 1;
24992let DecoderNamespace = "MustExtend";
24993let isExtendable = 1;
24994let opExtendable = 1;
24995let isExtentSigned = 0;
24996let opExtentBits = 6;
24997let opExtentAlign = 0;
24998}
24999def S4_storeri_rr : HInst<
25000(outs),
25001(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Rt32),
25002"memw($Rs32+$Ru32<<#$Ii) = $Rt32",
25003tc_5aee39f7, TypeST>, Enc_eca7c8, AddrModeRel, ImmRegShl {
25004let Inst{6-5} = 0b00;
25005let Inst{31-21} = 0b00111011100;
25006let addrMode = BaseRegOffset;
25007let accessSize = WordAccess;
25008let mayStore = 1;
25009let CextOpcode = "S2_storeri";
25010let InputType = "reg";
25011let BaseOpcode = "S2_storeri_rr";
25012let isNVStorable = 1;
25013let isPredicable = 1;
25014}
25015def S4_storeri_ur : HInst<
25016(outs),
25017(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Rt32),
25018"memw($Ru32<<#$Ii+#$II) = $Rt32",
25019tc_14b272fa, TypeST>, Enc_9ea4cf, AddrModeRel, ImmRegShl {
25020let Inst{7-7} = 0b1;
25021let Inst{31-21} = 0b10101101100;
25022let addrMode = BaseLongOffset;
25023let accessSize = WordAccess;
25024let isExtended = 1;
25025let mayStore = 1;
25026let CextOpcode = "S2_storeri";
25027let InputType = "imm";
25028let BaseOpcode = "S2_storeri_ur";
25029let isNVStorable = 1;
25030let DecoderNamespace = "MustExtend";
25031let isExtendable = 1;
25032let opExtendable = 2;
25033let isExtentSigned = 0;
25034let opExtentBits = 6;
25035let opExtentAlign = 0;
25036}
25037def S4_storerinew_ap : HInst<
25038(outs IntRegs:$Re32),
25039(ins u32_0Imm:$II, IntRegs:$Nt8),
25040"memw($Re32=#$II) = $Nt8.new",
25041tc_d2e63d61, TypeST>, Enc_724154, AddrModeRel {
25042let Inst{7-6} = 0b10;
25043let Inst{13-11} = 0b010;
25044let Inst{31-21} = 0b10101011101;
25045let addrMode = AbsoluteSet;
25046let accessSize = WordAccess;
25047let isNVStore = 1;
25048let isNewValue = 1;
25049let isExtended = 1;
25050let isRestrictNoSlot1Store = 1;
25051let mayStore = 1;
25052let BaseOpcode = "S2_storeri_ap";
25053let DecoderNamespace = "MustExtend";
25054let isExtendable = 1;
25055let opExtendable = 1;
25056let isExtentSigned = 0;
25057let opExtentBits = 6;
25058let opExtentAlign = 0;
25059let opNewValue = 2;
25060}
25061def S4_storerinew_rr : HInst<
25062(outs),
25063(ins IntRegs:$Rs32, IntRegs:$Ru32, u2_0Imm:$Ii, IntRegs:$Nt8),
25064"memw($Rs32+$Ru32<<#$Ii) = $Nt8.new",
25065tc_67435e81, TypeST>, Enc_c6220b, AddrModeRel {
25066let Inst{6-3} = 0b0010;
25067let Inst{31-21} = 0b00111011101;
25068let addrMode = BaseRegOffset;
25069let accessSize = WordAccess;
25070let isNVStore = 1;
25071let isNewValue = 1;
25072let isRestrictNoSlot1Store = 1;
25073let mayStore = 1;
25074let CextOpcode = "S2_storeri";
25075let InputType = "reg";
25076let BaseOpcode = "S2_storeri_rr";
25077let isPredicable = 1;
25078let opNewValue = 3;
25079}
25080def S4_storerinew_ur : HInst<
25081(outs),
25082(ins IntRegs:$Ru32, u2_0Imm:$Ii, u32_0Imm:$II, IntRegs:$Nt8),
25083"memw($Ru32<<#$Ii+#$II) = $Nt8.new",
25084tc_fcc3ddf9, TypeST>, Enc_7eb485, AddrModeRel {
25085let Inst{7-7} = 0b1;
25086let Inst{12-11} = 0b10;
25087let Inst{31-21} = 0b10101101101;
25088let addrMode = BaseLongOffset;
25089let accessSize = WordAccess;
25090let isNVStore = 1;
25091let isNewValue = 1;
25092let isExtended = 1;
25093let isRestrictNoSlot1Store = 1;
25094let mayStore = 1;
25095let CextOpcode = "S2_storeri";
25096let BaseOpcode = "S2_storeri_ur";
25097let DecoderNamespace = "MustExtend";
25098let isExtendable = 1;
25099let opExtendable = 2;
25100let isExtentSigned = 0;
25101let opExtentBits = 6;
25102let opExtentAlign = 0;
25103let opNewValue = 3;
25104}
25105def S4_subaddi : HInst<
25106(outs IntRegs:$Rd32),
25107(ins IntRegs:$Rs32, s32_0Imm:$Ii, IntRegs:$Ru32),
25108"$Rd32 = add($Rs32,sub(#$Ii,$Ru32))",
25109tc_f675fee8, TypeALU64>, Enc_8b8d61 {
25110let Inst{31-23} = 0b110110111;
25111let hasNewValue = 1;
25112let opNewValue = 0;
25113let prefersSlot3 = 1;
25114let isExtendable = 1;
25115let opExtendable = 2;
25116let isExtentSigned = 1;
25117let opExtentBits = 6;
25118let opExtentAlign = 0;
25119}
25120def S4_subi_asl_ri : HInst<
25121(outs IntRegs:$Rx32),
25122(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25123"$Rx32 = sub(#$Ii,asl($Rx32in,#$II))",
25124tc_f675fee8, TypeALU64>, Enc_c31910 {
25125let Inst{2-0} = 0b110;
25126let Inst{4-4} = 0b0;
25127let Inst{31-24} = 0b11011110;
25128let hasNewValue = 1;
25129let opNewValue = 0;
25130let prefersSlot3 = 1;
25131let isExtendable = 1;
25132let opExtendable = 1;
25133let isExtentSigned = 0;
25134let opExtentBits = 8;
25135let opExtentAlign = 0;
25136let Constraints = "$Rx32 = $Rx32in";
25137}
25138def S4_subi_lsr_ri : HInst<
25139(outs IntRegs:$Rx32),
25140(ins u32_0Imm:$Ii, IntRegs:$Rx32in, u5_0Imm:$II),
25141"$Rx32 = sub(#$Ii,lsr($Rx32in,#$II))",
25142tc_f675fee8, TypeALU64>, Enc_c31910 {
25143let Inst{2-0} = 0b110;
25144let Inst{4-4} = 0b1;
25145let Inst{31-24} = 0b11011110;
25146let hasNewValue = 1;
25147let opNewValue = 0;
25148let prefersSlot3 = 1;
25149let isExtendable = 1;
25150let opExtendable = 1;
25151let isExtentSigned = 0;
25152let opExtentBits = 8;
25153let opExtentAlign = 0;
25154let Constraints = "$Rx32 = $Rx32in";
25155}
25156def S4_vrcrotate : HInst<
25157(outs DoubleRegs:$Rdd32),
25158(ins DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25159"$Rdd32 = vrcrotate($Rss32,$Rt32,#$Ii)",
25160tc_13bfbcf9, TypeS_3op>, Enc_645d54 {
25161let Inst{7-6} = 0b11;
25162let Inst{31-21} = 0b11000011110;
25163let prefersSlot3 = 1;
25164}
25165def S4_vrcrotate_acc : HInst<
25166(outs DoubleRegs:$Rxx32),
25167(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, IntRegs:$Rt32, u2_0Imm:$Ii),
25168"$Rxx32 += vrcrotate($Rss32,$Rt32,#$Ii)",
25169tc_9debc299, TypeS_3op>, Enc_b72622 {
25170let Inst{7-6} = 0b00;
25171let Inst{31-21} = 0b11001011101;
25172let prefersSlot3 = 1;
25173let Constraints = "$Rxx32 = $Rxx32in";
25174}
25175def S4_vxaddsubh : HInst<
25176(outs DoubleRegs:$Rdd32),
25177(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25178"$Rdd32 = vxaddsubh($Rss32,$Rtt32):sat",
25179tc_779080bf, TypeS_3op>, Enc_a56825 {
25180let Inst{7-5} = 0b100;
25181let Inst{13-13} = 0b0;
25182let Inst{31-21} = 0b11000001010;
25183let prefersSlot3 = 1;
25184let Defs = [USR_OVF];
25185}
25186def S4_vxaddsubhr : HInst<
25187(outs DoubleRegs:$Rdd32),
25188(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25189"$Rdd32 = vxaddsubh($Rss32,$Rtt32):rnd:>>1:sat",
25190tc_002cb246, TypeS_3op>, Enc_a56825 {
25191let Inst{7-5} = 0b000;
25192let Inst{13-13} = 0b0;
25193let Inst{31-21} = 0b11000001110;
25194let prefersSlot3 = 1;
25195let Defs = [USR_OVF];
25196}
25197def S4_vxaddsubw : HInst<
25198(outs DoubleRegs:$Rdd32),
25199(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25200"$Rdd32 = vxaddsubw($Rss32,$Rtt32):sat",
25201tc_779080bf, TypeS_3op>, Enc_a56825 {
25202let Inst{7-5} = 0b000;
25203let Inst{13-13} = 0b0;
25204let Inst{31-21} = 0b11000001010;
25205let prefersSlot3 = 1;
25206let Defs = [USR_OVF];
25207}
25208def S4_vxsubaddh : HInst<
25209(outs DoubleRegs:$Rdd32),
25210(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25211"$Rdd32 = vxsubaddh($Rss32,$Rtt32):sat",
25212tc_779080bf, TypeS_3op>, Enc_a56825 {
25213let Inst{7-5} = 0b110;
25214let Inst{13-13} = 0b0;
25215let Inst{31-21} = 0b11000001010;
25216let prefersSlot3 = 1;
25217let Defs = [USR_OVF];
25218}
25219def S4_vxsubaddhr : HInst<
25220(outs DoubleRegs:$Rdd32),
25221(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25222"$Rdd32 = vxsubaddh($Rss32,$Rtt32):rnd:>>1:sat",
25223tc_002cb246, TypeS_3op>, Enc_a56825 {
25224let Inst{7-5} = 0b010;
25225let Inst{13-13} = 0b0;
25226let Inst{31-21} = 0b11000001110;
25227let prefersSlot3 = 1;
25228let Defs = [USR_OVF];
25229}
25230def S4_vxsubaddw : HInst<
25231(outs DoubleRegs:$Rdd32),
25232(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25233"$Rdd32 = vxsubaddw($Rss32,$Rtt32):sat",
25234tc_779080bf, TypeS_3op>, Enc_a56825 {
25235let Inst{7-5} = 0b010;
25236let Inst{13-13} = 0b0;
25237let Inst{31-21} = 0b11000001010;
25238let prefersSlot3 = 1;
25239let Defs = [USR_OVF];
25240}
25241def S5_asrhub_rnd_sat : HInst<
25242(outs IntRegs:$Rd32),
25243(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25244"$Rd32 = vasrhub($Rss32,#$Ii):raw",
25245tc_002cb246, TypeS_2op>, Enc_11a146 {
25246let Inst{7-5} = 0b100;
25247let Inst{13-12} = 0b00;
25248let Inst{31-21} = 0b10001000011;
25249let hasNewValue = 1;
25250let opNewValue = 0;
25251let prefersSlot3 = 1;
25252let Defs = [USR_OVF];
25253}
25254def S5_asrhub_rnd_sat_goodsyntax : HInst<
25255(outs IntRegs:$Rd32),
25256(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25257"$Rd32 = vasrhub($Rss32,#$Ii):rnd:sat",
25258tc_002cb246, TypeS_2op> {
25259let hasNewValue = 1;
25260let opNewValue = 0;
25261let isPseudo = 1;
25262}
25263def S5_asrhub_sat : HInst<
25264(outs IntRegs:$Rd32),
25265(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25266"$Rd32 = vasrhub($Rss32,#$Ii):sat",
25267tc_002cb246, TypeS_2op>, Enc_11a146 {
25268let Inst{7-5} = 0b101;
25269let Inst{13-12} = 0b00;
25270let Inst{31-21} = 0b10001000011;
25271let hasNewValue = 1;
25272let opNewValue = 0;
25273let prefersSlot3 = 1;
25274let Defs = [USR_OVF];
25275}
25276def S5_popcountp : HInst<
25277(outs IntRegs:$Rd32),
25278(ins DoubleRegs:$Rss32),
25279"$Rd32 = popcount($Rss32)",
25280tc_703e822c, TypeS_2op>, Enc_90cd8b {
25281let Inst{13-5} = 0b000000011;
25282let Inst{31-21} = 0b10001000011;
25283let hasNewValue = 1;
25284let opNewValue = 0;
25285let prefersSlot3 = 1;
25286}
25287def S5_vasrhrnd : HInst<
25288(outs DoubleRegs:$Rdd32),
25289(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25290"$Rdd32 = vasrh($Rss32,#$Ii):raw",
25291tc_002cb246, TypeS_2op>, Enc_12b6e9 {
25292let Inst{7-5} = 0b000;
25293let Inst{13-12} = 0b00;
25294let Inst{31-21} = 0b10000000001;
25295let prefersSlot3 = 1;
25296}
25297def S5_vasrhrnd_goodsyntax : HInst<
25298(outs DoubleRegs:$Rdd32),
25299(ins DoubleRegs:$Rss32, u4_0Imm:$Ii),
25300"$Rdd32 = vasrh($Rss32,#$Ii):rnd",
25301tc_002cb246, TypeS_2op> {
25302let isPseudo = 1;
25303}
25304def S6_allocframe_to_raw : HInst<
25305(outs),
25306(ins u11_3Imm:$Ii),
25307"allocframe(#$Ii)",
25308tc_b44ecf75, TypeMAPPING>, Requires<[HasV65]> {
25309let isPseudo = 1;
25310let isCodeGenOnly = 1;
25311}
25312def S6_rol_i_p : HInst<
25313(outs DoubleRegs:$Rdd32),
25314(ins DoubleRegs:$Rss32, u6_0Imm:$Ii),
25315"$Rdd32 = rol($Rss32,#$Ii)",
25316tc_1fc97744, TypeS_2op>, Enc_5eac98, Requires<[HasV60]> {
25317let Inst{7-5} = 0b011;
25318let Inst{31-21} = 0b10000000000;
25319}
25320def S6_rol_i_p_acc : HInst<
25321(outs DoubleRegs:$Rxx32),
25322(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25323"$Rxx32 += rol($Rss32,#$Ii)",
25324tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25325let Inst{7-5} = 0b111;
25326let Inst{31-21} = 0b10000010000;
25327let prefersSlot3 = 1;
25328let Constraints = "$Rxx32 = $Rxx32in";
25329}
25330def S6_rol_i_p_and : HInst<
25331(outs DoubleRegs:$Rxx32),
25332(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25333"$Rxx32 &= rol($Rss32,#$Ii)",
25334tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25335let Inst{7-5} = 0b011;
25336let Inst{31-21} = 0b10000010010;
25337let prefersSlot3 = 1;
25338let Constraints = "$Rxx32 = $Rxx32in";
25339}
25340def S6_rol_i_p_nac : HInst<
25341(outs DoubleRegs:$Rxx32),
25342(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25343"$Rxx32 -= rol($Rss32,#$Ii)",
25344tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25345let Inst{7-5} = 0b011;
25346let Inst{31-21} = 0b10000010000;
25347let prefersSlot3 = 1;
25348let Constraints = "$Rxx32 = $Rxx32in";
25349}
25350def S6_rol_i_p_or : HInst<
25351(outs DoubleRegs:$Rxx32),
25352(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25353"$Rxx32 |= rol($Rss32,#$Ii)",
25354tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25355let Inst{7-5} = 0b111;
25356let Inst{31-21} = 0b10000010010;
25357let prefersSlot3 = 1;
25358let Constraints = "$Rxx32 = $Rxx32in";
25359}
25360def S6_rol_i_p_xacc : HInst<
25361(outs DoubleRegs:$Rxx32),
25362(ins DoubleRegs:$Rxx32in, DoubleRegs:$Rss32, u6_0Imm:$Ii),
25363"$Rxx32 ^= rol($Rss32,#$Ii)",
25364tc_784490da, TypeS_2op>, Enc_70fb07, Requires<[HasV60]> {
25365let Inst{7-5} = 0b011;
25366let Inst{31-21} = 0b10000010100;
25367let prefersSlot3 = 1;
25368let Constraints = "$Rxx32 = $Rxx32in";
25369}
25370def S6_rol_i_r : HInst<
25371(outs IntRegs:$Rd32),
25372(ins IntRegs:$Rs32, u5_0Imm:$Ii),
25373"$Rd32 = rol($Rs32,#$Ii)",
25374tc_1fc97744, TypeS_2op>, Enc_a05677, Requires<[HasV60]> {
25375let Inst{7-5} = 0b011;
25376let Inst{13-13} = 0b0;
25377let Inst{31-21} = 0b10001100000;
25378let hasNewValue = 1;
25379let opNewValue = 0;
25380}
25381def S6_rol_i_r_acc : HInst<
25382(outs IntRegs:$Rx32),
25383(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25384"$Rx32 += rol($Rs32,#$Ii)",
25385tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25386let Inst{7-5} = 0b111;
25387let Inst{13-13} = 0b0;
25388let Inst{31-21} = 0b10001110000;
25389let hasNewValue = 1;
25390let opNewValue = 0;
25391let prefersSlot3 = 1;
25392let Constraints = "$Rx32 = $Rx32in";
25393}
25394def S6_rol_i_r_and : HInst<
25395(outs IntRegs:$Rx32),
25396(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25397"$Rx32 &= rol($Rs32,#$Ii)",
25398tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25399let Inst{7-5} = 0b011;
25400let Inst{13-13} = 0b0;
25401let Inst{31-21} = 0b10001110010;
25402let hasNewValue = 1;
25403let opNewValue = 0;
25404let prefersSlot3 = 1;
25405let Constraints = "$Rx32 = $Rx32in";
25406}
25407def S6_rol_i_r_nac : HInst<
25408(outs IntRegs:$Rx32),
25409(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25410"$Rx32 -= rol($Rs32,#$Ii)",
25411tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25412let Inst{7-5} = 0b011;
25413let Inst{13-13} = 0b0;
25414let Inst{31-21} = 0b10001110000;
25415let hasNewValue = 1;
25416let opNewValue = 0;
25417let prefersSlot3 = 1;
25418let Constraints = "$Rx32 = $Rx32in";
25419}
25420def S6_rol_i_r_or : HInst<
25421(outs IntRegs:$Rx32),
25422(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25423"$Rx32 |= rol($Rs32,#$Ii)",
25424tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25425let Inst{7-5} = 0b111;
25426let Inst{13-13} = 0b0;
25427let Inst{31-21} = 0b10001110010;
25428let hasNewValue = 1;
25429let opNewValue = 0;
25430let prefersSlot3 = 1;
25431let Constraints = "$Rx32 = $Rx32in";
25432}
25433def S6_rol_i_r_xacc : HInst<
25434(outs IntRegs:$Rx32),
25435(ins IntRegs:$Rx32in, IntRegs:$Rs32, u5_0Imm:$Ii),
25436"$Rx32 ^= rol($Rs32,#$Ii)",
25437tc_784490da, TypeS_2op>, Enc_28a2dc, Requires<[HasV60]> {
25438let Inst{7-5} = 0b011;
25439let Inst{13-13} = 0b0;
25440let Inst{31-21} = 0b10001110100;
25441let hasNewValue = 1;
25442let opNewValue = 0;
25443let prefersSlot3 = 1;
25444let Constraints = "$Rx32 = $Rx32in";
25445}
25446def S6_vsplatrbp : HInst<
25447(outs DoubleRegs:$Rdd32),
25448(ins IntRegs:$Rs32),
25449"$Rdd32 = vsplatb($Rs32)",
25450tc_a1c00888, TypeS_2op>, Enc_3a3d62, Requires<[HasV62]> {
25451let Inst{13-5} = 0b000000100;
25452let Inst{31-21} = 0b10000100010;
25453}
25454def S6_vtrunehb_ppp : HInst<
25455(outs DoubleRegs:$Rdd32),
25456(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25457"$Rdd32 = vtrunehb($Rss32,$Rtt32)",
25458tc_1fc97744, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25459let Inst{7-5} = 0b011;
25460let Inst{13-13} = 0b0;
25461let Inst{31-21} = 0b11000001100;
25462}
25463def S6_vtrunohb_ppp : HInst<
25464(outs DoubleRegs:$Rdd32),
25465(ins DoubleRegs:$Rss32, DoubleRegs:$Rtt32),
25466"$Rdd32 = vtrunohb($Rss32,$Rtt32)",
25467tc_1fc97744, TypeS_3op>, Enc_a56825, Requires<[HasV62]> {
25468let Inst{7-5} = 0b101;
25469let Inst{13-13} = 0b0;
25470let Inst{31-21} = 0b11000001100;
25471}
25472def SA1_addi : HInst<
25473(outs GeneralSubRegs:$Rx16),
25474(ins IntRegs:$Rx16in, s32_0Imm:$Ii),
25475"$Rx16 = add($Rx16in,#$Ii)",
25476tc_0a705168, TypeSUBINSN>, Enc_93af4c {
25477let Inst{12-11} = 0b00;
25478let hasNewValue = 1;
25479let opNewValue = 0;
25480let AsmVariantName = "NonParsable";
25481let DecoderNamespace = "SUBINSN_A";
25482let isExtendable = 1;
25483let opExtendable = 2;
25484let isExtentSigned = 1;
25485let opExtentBits = 7;
25486let opExtentAlign = 0;
25487let Constraints = "$Rx16 = $Rx16in";
25488}
25489def SA1_addrx : HInst<
25490(outs GeneralSubRegs:$Rx16),
25491(ins IntRegs:$Rx16in, GeneralSubRegs:$Rs16),
25492"$Rx16 = add($Rx16in,$Rs16)",
25493tc_0a705168, TypeSUBINSN>, Enc_0527db {
25494let Inst{12-8} = 0b11000;
25495let hasNewValue = 1;
25496let opNewValue = 0;
25497let AsmVariantName = "NonParsable";
25498let DecoderNamespace = "SUBINSN_A";
25499let Constraints = "$Rx16 = $Rx16in";
25500}
25501def SA1_addsp : HInst<
25502(outs GeneralSubRegs:$Rd16),
25503(ins u6_2Imm:$Ii),
25504"$Rd16 = add(r29,#$Ii)",
25505tc_9fc3dae0, TypeSUBINSN>, Enc_2df31d {
25506let Inst{12-10} = 0b011;
25507let hasNewValue = 1;
25508let opNewValue = 0;
25509let AsmVariantName = "NonParsable";
25510let Uses = [R29];
25511let DecoderNamespace = "SUBINSN_A";
25512}
25513def SA1_and1 : HInst<
25514(outs GeneralSubRegs:$Rd16),
25515(ins GeneralSubRegs:$Rs16),
25516"$Rd16 = and($Rs16,#1)",
25517tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25518let Inst{12-8} = 0b10010;
25519let hasNewValue = 1;
25520let opNewValue = 0;
25521let AsmVariantName = "NonParsable";
25522let DecoderNamespace = "SUBINSN_A";
25523}
25524def SA1_clrf : HInst<
25525(outs GeneralSubRegs:$Rd16),
25526(ins),
25527"if (!p0) $Rd16 = #0",
25528tc_a1123dda, TypeSUBINSN>, Enc_1f5ba6 {
25529let Inst{12-4} = 0b110100111;
25530let isPredicated = 1;
25531let isPredicatedFalse = 1;
25532let hasNewValue = 1;
25533let opNewValue = 0;
25534let AsmVariantName = "NonParsable";
25535let Uses = [P0];
25536let DecoderNamespace = "SUBINSN_A";
25537}
25538def SA1_clrfnew : HInst<
25539(outs GeneralSubRegs:$Rd16),
25540(ins),
25541"if (!p0.new) $Rd16 = #0",
25542tc_8b3e402a, TypeSUBINSN>, Enc_1f5ba6 {
25543let Inst{12-4} = 0b110100101;
25544let isPredicated = 1;
25545let isPredicatedFalse = 1;
25546let hasNewValue = 1;
25547let opNewValue = 0;
25548let AsmVariantName = "NonParsable";
25549let isPredicatedNew = 1;
25550let Uses = [P0];
25551let DecoderNamespace = "SUBINSN_A";
25552}
25553def SA1_clrt : HInst<
25554(outs GeneralSubRegs:$Rd16),
25555(ins),
25556"if (p0) $Rd16 = #0",
25557tc_a1123dda, TypeSUBINSN>, Enc_1f5ba6 {
25558let Inst{12-4} = 0b110100110;
25559let isPredicated = 1;
25560let hasNewValue = 1;
25561let opNewValue = 0;
25562let AsmVariantName = "NonParsable";
25563let Uses = [P0];
25564let DecoderNamespace = "SUBINSN_A";
25565}
25566def SA1_clrtnew : HInst<
25567(outs GeneralSubRegs:$Rd16),
25568(ins),
25569"if (p0.new) $Rd16 = #0",
25570tc_8b3e402a, TypeSUBINSN>, Enc_1f5ba6 {
25571let Inst{12-4} = 0b110100100;
25572let isPredicated = 1;
25573let hasNewValue = 1;
25574let opNewValue = 0;
25575let AsmVariantName = "NonParsable";
25576let isPredicatedNew = 1;
25577let Uses = [P0];
25578let DecoderNamespace = "SUBINSN_A";
25579}
25580def SA1_cmpeqi : HInst<
25581(outs),
25582(ins GeneralSubRegs:$Rs16, u2_0Imm:$Ii),
25583"p0 = cmp.eq($Rs16,#$Ii)",
25584tc_5b7c0967, TypeSUBINSN>, Enc_63eaeb {
25585let Inst{3-2} = 0b00;
25586let Inst{12-8} = 0b11001;
25587let AsmVariantName = "NonParsable";
25588let Defs = [P0];
25589let DecoderNamespace = "SUBINSN_A";
25590}
25591def SA1_combine0i : HInst<
25592(outs GeneralDoubleLow8Regs:$Rdd8),
25593(ins u2_0Imm:$Ii),
25594"$Rdd8 = combine(#0,#$Ii)",
25595tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25596let Inst{4-3} = 0b00;
25597let Inst{12-7} = 0b111000;
25598let hasNewValue = 1;
25599let opNewValue = 0;
25600let AsmVariantName = "NonParsable";
25601let DecoderNamespace = "SUBINSN_A";
25602}
25603def SA1_combine1i : HInst<
25604(outs GeneralDoubleLow8Regs:$Rdd8),
25605(ins u2_0Imm:$Ii),
25606"$Rdd8 = combine(#1,#$Ii)",
25607tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25608let Inst{4-3} = 0b01;
25609let Inst{12-7} = 0b111000;
25610let hasNewValue = 1;
25611let opNewValue = 0;
25612let AsmVariantName = "NonParsable";
25613let DecoderNamespace = "SUBINSN_A";
25614}
25615def SA1_combine2i : HInst<
25616(outs GeneralDoubleLow8Regs:$Rdd8),
25617(ins u2_0Imm:$Ii),
25618"$Rdd8 = combine(#2,#$Ii)",
25619tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25620let Inst{4-3} = 0b10;
25621let Inst{12-7} = 0b111000;
25622let hasNewValue = 1;
25623let opNewValue = 0;
25624let AsmVariantName = "NonParsable";
25625let DecoderNamespace = "SUBINSN_A";
25626}
25627def SA1_combine3i : HInst<
25628(outs GeneralDoubleLow8Regs:$Rdd8),
25629(ins u2_0Imm:$Ii),
25630"$Rdd8 = combine(#3,#$Ii)",
25631tc_9fc3dae0, TypeSUBINSN>, Enc_ed48be {
25632let Inst{4-3} = 0b11;
25633let Inst{12-7} = 0b111000;
25634let hasNewValue = 1;
25635let opNewValue = 0;
25636let AsmVariantName = "NonParsable";
25637let DecoderNamespace = "SUBINSN_A";
25638}
25639def SA1_combinerz : HInst<
25640(outs GeneralDoubleLow8Regs:$Rdd8),
25641(ins GeneralSubRegs:$Rs16),
25642"$Rdd8 = combine($Rs16,#0)",
25643tc_9fc3dae0, TypeSUBINSN>, Enc_399e12 {
25644let Inst{3-3} = 0b1;
25645let Inst{12-8} = 0b11101;
25646let hasNewValue = 1;
25647let opNewValue = 0;
25648let AsmVariantName = "NonParsable";
25649let DecoderNamespace = "SUBINSN_A";
25650}
25651def SA1_combinezr : HInst<
25652(outs GeneralDoubleLow8Regs:$Rdd8),
25653(ins GeneralSubRegs:$Rs16),
25654"$Rdd8 = combine(#0,$Rs16)",
25655tc_9fc3dae0, TypeSUBINSN>, Enc_399e12 {
25656let Inst{3-3} = 0b0;
25657let Inst{12-8} = 0b11101;
25658let hasNewValue = 1;
25659let opNewValue = 0;
25660let AsmVariantName = "NonParsable";
25661let DecoderNamespace = "SUBINSN_A";
25662}
25663def SA1_dec : HInst<
25664(outs GeneralSubRegs:$Rd16),
25665(ins GeneralSubRegs:$Rs16, n1Const:$n1),
25666"$Rd16 = add($Rs16,#$n1)",
25667tc_0a705168, TypeSUBINSN>, Enc_ee5ed0 {
25668let Inst{12-8} = 0b10011;
25669let hasNewValue = 1;
25670let opNewValue = 0;
25671let AsmVariantName = "NonParsable";
25672let DecoderNamespace = "SUBINSN_A";
25673}
25674def SA1_inc : HInst<
25675(outs GeneralSubRegs:$Rd16),
25676(ins GeneralSubRegs:$Rs16),
25677"$Rd16 = add($Rs16,#1)",
25678tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25679let Inst{12-8} = 0b10001;
25680let hasNewValue = 1;
25681let opNewValue = 0;
25682let AsmVariantName = "NonParsable";
25683let DecoderNamespace = "SUBINSN_A";
25684}
25685def SA1_seti : HInst<
25686(outs GeneralSubRegs:$Rd16),
25687(ins u32_0Imm:$Ii),
25688"$Rd16 = #$Ii",
25689tc_9fc3dae0, TypeSUBINSN>, Enc_e39bb2 {
25690let Inst{12-10} = 0b010;
25691let hasNewValue = 1;
25692let opNewValue = 0;
25693let AsmVariantName = "NonParsable";
25694let DecoderNamespace = "SUBINSN_A";
25695let isExtendable = 1;
25696let opExtendable = 1;
25697let isExtentSigned = 0;
25698let opExtentBits = 6;
25699let opExtentAlign = 0;
25700}
25701def SA1_setin1 : HInst<
25702(outs GeneralSubRegs:$Rd16),
25703(ins n1Const:$n1),
25704"$Rd16 = #$n1",
25705tc_9fc3dae0, TypeSUBINSN>, Enc_7a0ea6 {
25706let Inst{12-4} = 0b110100000;
25707let hasNewValue = 1;
25708let opNewValue = 0;
25709let AsmVariantName = "NonParsable";
25710let DecoderNamespace = "SUBINSN_A";
25711}
25712def SA1_sxtb : HInst<
25713(outs GeneralSubRegs:$Rd16),
25714(ins GeneralSubRegs:$Rs16),
25715"$Rd16 = sxtb($Rs16)",
25716tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25717let Inst{12-8} = 0b10101;
25718let hasNewValue = 1;
25719let opNewValue = 0;
25720let AsmVariantName = "NonParsable";
25721let DecoderNamespace = "SUBINSN_A";
25722}
25723def SA1_sxth : HInst<
25724(outs GeneralSubRegs:$Rd16),
25725(ins GeneralSubRegs:$Rs16),
25726"$Rd16 = sxth($Rs16)",
25727tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25728let Inst{12-8} = 0b10100;
25729let hasNewValue = 1;
25730let opNewValue = 0;
25731let AsmVariantName = "NonParsable";
25732let DecoderNamespace = "SUBINSN_A";
25733}
25734def SA1_tfr : HInst<
25735(outs GeneralSubRegs:$Rd16),
25736(ins GeneralSubRegs:$Rs16),
25737"$Rd16 = $Rs16",
25738tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25739let Inst{12-8} = 0b10000;
25740let hasNewValue = 1;
25741let opNewValue = 0;
25742let AsmVariantName = "NonParsable";
25743let DecoderNamespace = "SUBINSN_A";
25744}
25745def SA1_zxtb : HInst<
25746(outs GeneralSubRegs:$Rd16),
25747(ins GeneralSubRegs:$Rs16),
25748"$Rd16 = and($Rs16,#255)",
25749tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25750let Inst{12-8} = 0b10111;
25751let hasNewValue = 1;
25752let opNewValue = 0;
25753let AsmVariantName = "NonParsable";
25754let DecoderNamespace = "SUBINSN_A";
25755}
25756def SA1_zxth : HInst<
25757(outs GeneralSubRegs:$Rd16),
25758(ins GeneralSubRegs:$Rs16),
25759"$Rd16 = zxth($Rs16)",
25760tc_9fc3dae0, TypeSUBINSN>, Enc_97d666 {
25761let Inst{12-8} = 0b10110;
25762let hasNewValue = 1;
25763let opNewValue = 0;
25764let AsmVariantName = "NonParsable";
25765let DecoderNamespace = "SUBINSN_A";
25766}
25767def SL1_loadri_io : HInst<
25768(outs GeneralSubRegs:$Rd16),
25769(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
25770"$Rd16 = memw($Rs16+#$Ii)",
25771tc_17e0d2cd, TypeSUBINSN>, Enc_53dca9 {
25772let Inst{12-12} = 0b0;
25773let hasNewValue = 1;
25774let opNewValue = 0;
25775let addrMode = BaseImmOffset;
25776let accessSize = WordAccess;
25777let AsmVariantName = "NonParsable";
25778let mayLoad = 1;
25779let DecoderNamespace = "SUBINSN_L1";
25780}
25781def SL1_loadrub_io : HInst<
25782(outs GeneralSubRegs:$Rd16),
25783(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
25784"$Rd16 = memub($Rs16+#$Ii)",
25785tc_17e0d2cd, TypeSUBINSN>, Enc_c175d0 {
25786let Inst{12-12} = 0b1;
25787let hasNewValue = 1;
25788let opNewValue = 0;
25789let addrMode = BaseImmOffset;
25790let accessSize = ByteAccess;
25791let AsmVariantName = "NonParsable";
25792let mayLoad = 1;
25793let DecoderNamespace = "SUBINSN_L1";
25794}
25795def SL2_deallocframe : HInst<
25796(outs),
25797(ins),
25798"deallocframe",
25799tc_39dfefe8, TypeSUBINSN>, Enc_e3b0c4 {
25800let Inst{12-0} = 0b1111100000000;
25801let accessSize = DoubleWordAccess;
25802let AsmVariantName = "NonParsable";
25803let mayLoad = 1;
25804let Uses = [FRAMEKEY, R30];
25805let Defs = [R30, R29, R31];
25806let DecoderNamespace = "SUBINSN_L2";
25807}
25808def SL2_jumpr31 : HInst<
25809(outs),
25810(ins),
25811"jumpr r31",
25812tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25813let Inst{12-0} = 0b1111111000000;
25814let isTerminator = 1;
25815let isIndirectBranch = 1;
25816let AsmVariantName = "NonParsable";
25817let cofMax1 = 1;
25818let isReturn = 1;
25819let Uses = [R31];
25820let Defs = [PC];
25821let DecoderNamespace = "SUBINSN_L2";
25822}
25823def SL2_jumpr31_f : HInst<
25824(outs),
25825(ins),
25826"if (!p0) jumpr r31",
25827tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25828let Inst{12-0} = 0b1111111000101;
25829let isPredicated = 1;
25830let isPredicatedFalse = 1;
25831let isTerminator = 1;
25832let isIndirectBranch = 1;
25833let AsmVariantName = "NonParsable";
25834let cofMax1 = 1;
25835let isReturn = 1;
25836let Uses = [P0, R31];
25837let Defs = [PC];
25838let isTaken = Inst{4};
25839let DecoderNamespace = "SUBINSN_L2";
25840}
25841def SL2_jumpr31_fnew : HInst<
25842(outs),
25843(ins),
25844"if (!p0.new) jumpr:nt r31",
25845tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25846let Inst{12-0} = 0b1111111000111;
25847let isPredicated = 1;
25848let isPredicatedFalse = 1;
25849let isTerminator = 1;
25850let isIndirectBranch = 1;
25851let AsmVariantName = "NonParsable";
25852let isPredicatedNew = 1;
25853let cofMax1 = 1;
25854let isReturn = 1;
25855let Uses = [P0, R31];
25856let Defs = [PC];
25857let isTaken = Inst{4};
25858let DecoderNamespace = "SUBINSN_L2";
25859}
25860def SL2_jumpr31_t : HInst<
25861(outs),
25862(ins),
25863"if (p0) jumpr r31",
25864tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25865let Inst{12-0} = 0b1111111000100;
25866let isPredicated = 1;
25867let isTerminator = 1;
25868let isIndirectBranch = 1;
25869let AsmVariantName = "NonParsable";
25870let cofMax1 = 1;
25871let isReturn = 1;
25872let Uses = [P0, R31];
25873let Defs = [PC];
25874let isTaken = Inst{4};
25875let DecoderNamespace = "SUBINSN_L2";
25876}
25877def SL2_jumpr31_tnew : HInst<
25878(outs),
25879(ins),
25880"if (p0.new) jumpr:nt r31",
25881tc_b4407292, TypeSUBINSN>, Enc_e3b0c4 {
25882let Inst{12-0} = 0b1111111000110;
25883let isPredicated = 1;
25884let isTerminator = 1;
25885let isIndirectBranch = 1;
25886let AsmVariantName = "NonParsable";
25887let isPredicatedNew = 1;
25888let cofMax1 = 1;
25889let isReturn = 1;
25890let Uses = [P0, R31];
25891let Defs = [PC];
25892let isTaken = Inst{4};
25893let DecoderNamespace = "SUBINSN_L2";
25894}
25895def SL2_loadrb_io : HInst<
25896(outs GeneralSubRegs:$Rd16),
25897(ins GeneralSubRegs:$Rs16, u3_0Imm:$Ii),
25898"$Rd16 = memb($Rs16+#$Ii)",
25899tc_17e0d2cd, TypeSUBINSN>, Enc_2fbf3c {
25900let Inst{12-11} = 0b10;
25901let hasNewValue = 1;
25902let opNewValue = 0;
25903let addrMode = BaseImmOffset;
25904let accessSize = ByteAccess;
25905let AsmVariantName = "NonParsable";
25906let mayLoad = 1;
25907let DecoderNamespace = "SUBINSN_L2";
25908}
25909def SL2_loadrd_sp : HInst<
25910(outs GeneralDoubleLow8Regs:$Rdd8),
25911(ins u5_3Imm:$Ii),
25912"$Rdd8 = memd(r29+#$Ii)",
25913tc_c4db48cb, TypeSUBINSN>, Enc_86a14b {
25914let Inst{12-8} = 0b11110;
25915let hasNewValue = 1;
25916let opNewValue = 0;
25917let addrMode = BaseImmOffset;
25918let accessSize = DoubleWordAccess;
25919let AsmVariantName = "NonParsable";
25920let mayLoad = 1;
25921let Uses = [R29];
25922let DecoderNamespace = "SUBINSN_L2";
25923}
25924def SL2_loadrh_io : HInst<
25925(outs GeneralSubRegs:$Rd16),
25926(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25927"$Rd16 = memh($Rs16+#$Ii)",
25928tc_17e0d2cd, TypeSUBINSN>, Enc_2bae10 {
25929let Inst{12-11} = 0b00;
25930let hasNewValue = 1;
25931let opNewValue = 0;
25932let addrMode = BaseImmOffset;
25933let accessSize = HalfWordAccess;
25934let AsmVariantName = "NonParsable";
25935let mayLoad = 1;
25936let DecoderNamespace = "SUBINSN_L2";
25937}
25938def SL2_loadri_sp : HInst<
25939(outs GeneralSubRegs:$Rd16),
25940(ins u5_2Imm:$Ii),
25941"$Rd16 = memw(r29+#$Ii)",
25942tc_c4db48cb, TypeSUBINSN>, Enc_51635c {
25943let Inst{12-9} = 0b1110;
25944let hasNewValue = 1;
25945let opNewValue = 0;
25946let addrMode = BaseImmOffset;
25947let accessSize = WordAccess;
25948let AsmVariantName = "NonParsable";
25949let mayLoad = 1;
25950let Uses = [R29];
25951let DecoderNamespace = "SUBINSN_L2";
25952}
25953def SL2_loadruh_io : HInst<
25954(outs GeneralSubRegs:$Rd16),
25955(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii),
25956"$Rd16 = memuh($Rs16+#$Ii)",
25957tc_17e0d2cd, TypeSUBINSN>, Enc_2bae10 {
25958let Inst{12-11} = 0b01;
25959let hasNewValue = 1;
25960let opNewValue = 0;
25961let addrMode = BaseImmOffset;
25962let accessSize = HalfWordAccess;
25963let AsmVariantName = "NonParsable";
25964let mayLoad = 1;
25965let DecoderNamespace = "SUBINSN_L2";
25966}
25967def SL2_return : HInst<
25968(outs),
25969(ins),
25970"dealloc_return",
25971tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
25972let Inst{12-0} = 0b1111101000000;
25973let isTerminator = 1;
25974let isIndirectBranch = 1;
25975let accessSize = DoubleWordAccess;
25976let AsmVariantName = "NonParsable";
25977let mayLoad = 1;
25978let cofMax1 = 1;
25979let isRestrictNoSlot1Store = 1;
25980let isReturn = 1;
25981let Uses = [FRAMEKEY, R30];
25982let Defs = [PC, R30, R29, R31];
25983let DecoderNamespace = "SUBINSN_L2";
25984}
25985def SL2_return_f : HInst<
25986(outs),
25987(ins),
25988"if (!p0) dealloc_return",
25989tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
25990let Inst{12-0} = 0b1111101000101;
25991let isPredicated = 1;
25992let isPredicatedFalse = 1;
25993let isTerminator = 1;
25994let isIndirectBranch = 1;
25995let accessSize = DoubleWordAccess;
25996let AsmVariantName = "NonParsable";
25997let mayLoad = 1;
25998let cofMax1 = 1;
25999let isRestrictNoSlot1Store = 1;
26000let isReturn = 1;
26001let Uses = [FRAMEKEY, P0, R30];
26002let Defs = [PC, R30, R29, R31];
26003let isTaken = Inst{4};
26004let DecoderNamespace = "SUBINSN_L2";
26005}
26006def SL2_return_fnew : HInst<
26007(outs),
26008(ins),
26009"if (!p0.new) dealloc_return:nt",
26010tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26011let Inst{12-0} = 0b1111101000111;
26012let isPredicated = 1;
26013let isPredicatedFalse = 1;
26014let isTerminator = 1;
26015let isIndirectBranch = 1;
26016let accessSize = DoubleWordAccess;
26017let AsmVariantName = "NonParsable";
26018let isPredicatedNew = 1;
26019let mayLoad = 1;
26020let cofMax1 = 1;
26021let isRestrictNoSlot1Store = 1;
26022let isReturn = 1;
26023let Uses = [FRAMEKEY, P0, R30];
26024let Defs = [PC, R30, R29, R31];
26025let isTaken = Inst{4};
26026let DecoderNamespace = "SUBINSN_L2";
26027}
26028def SL2_return_t : HInst<
26029(outs),
26030(ins),
26031"if (p0) dealloc_return",
26032tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26033let Inst{12-0} = 0b1111101000100;
26034let isPredicated = 1;
26035let isTerminator = 1;
26036let isIndirectBranch = 1;
26037let accessSize = DoubleWordAccess;
26038let AsmVariantName = "NonParsable";
26039let mayLoad = 1;
26040let cofMax1 = 1;
26041let isRestrictNoSlot1Store = 1;
26042let isReturn = 1;
26043let Uses = [FRAMEKEY, P0, R30];
26044let Defs = [PC, R30, R29, R31];
26045let isTaken = Inst{4};
26046let DecoderNamespace = "SUBINSN_L2";
26047}
26048def SL2_return_tnew : HInst<
26049(outs),
26050(ins),
26051"if (p0.new) dealloc_return:nt",
26052tc_36153880, TypeSUBINSN>, Enc_e3b0c4 {
26053let Inst{12-0} = 0b1111101000110;
26054let isPredicated = 1;
26055let isTerminator = 1;
26056let isIndirectBranch = 1;
26057let accessSize = DoubleWordAccess;
26058let AsmVariantName = "NonParsable";
26059let isPredicatedNew = 1;
26060let mayLoad = 1;
26061let cofMax1 = 1;
26062let isRestrictNoSlot1Store = 1;
26063let isReturn = 1;
26064let Uses = [FRAMEKEY, P0, R30];
26065let Defs = [PC, R30, R29, R31];
26066let isTaken = Inst{4};
26067let DecoderNamespace = "SUBINSN_L2";
26068}
26069def SS1_storeb_io : HInst<
26070(outs),
26071(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii, GeneralSubRegs:$Rt16),
26072"memb($Rs16+#$Ii) = $Rt16",
26073tc_30b9bb4a, TypeSUBINSN>, Enc_b38ffc {
26074let Inst{12-12} = 0b1;
26075let addrMode = BaseImmOffset;
26076let accessSize = ByteAccess;
26077let AsmVariantName = "NonParsable";
26078let mayStore = 1;
26079let DecoderNamespace = "SUBINSN_S1";
26080}
26081def SS1_storew_io : HInst<
26082(outs),
26083(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii, GeneralSubRegs:$Rt16),
26084"memw($Rs16+#$Ii) = $Rt16",
26085tc_30b9bb4a, TypeSUBINSN>, Enc_f55a0c {
26086let Inst{12-12} = 0b0;
26087let addrMode = BaseImmOffset;
26088let accessSize = WordAccess;
26089let AsmVariantName = "NonParsable";
26090let mayStore = 1;
26091let DecoderNamespace = "SUBINSN_S1";
26092}
26093def SS2_allocframe : HInst<
26094(outs),
26095(ins u5_3Imm:$Ii),
26096"allocframe(#$Ii)",
26097tc_49a8207d, TypeSUBINSN>, Enc_6f70ca {
26098let Inst{3-0} = 0b0000;
26099let Inst{12-9} = 0b1110;
26100let addrMode = BaseImmOffset;
26101let accessSize = DoubleWordAccess;
26102let AsmVariantName = "NonParsable";
26103let mayStore = 1;
26104let Uses = [FRAMEKEY, FRAMELIMIT, R30, R29, R31];
26105let Defs = [R30, R29];
26106let DecoderNamespace = "SUBINSN_S2";
26107}
26108def SS2_storebi0 : HInst<
26109(outs),
26110(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26111"memb($Rs16+#$Ii) = #0",
26112tc_89e94ad3, TypeSUBINSN>, Enc_84d359 {
26113let Inst{12-8} = 0b10010;
26114let addrMode = BaseImmOffset;
26115let accessSize = ByteAccess;
26116let AsmVariantName = "NonParsable";
26117let mayStore = 1;
26118let DecoderNamespace = "SUBINSN_S2";
26119}
26120def SS2_storebi1 : HInst<
26121(outs),
26122(ins GeneralSubRegs:$Rs16, u4_0Imm:$Ii),
26123"memb($Rs16+#$Ii) = #1",
26124tc_89e94ad3, TypeSUBINSN>, Enc_84d359 {
26125let Inst{12-8} = 0b10011;
26126let addrMode = BaseImmOffset;
26127let accessSize = ByteAccess;
26128let AsmVariantName = "NonParsable";
26129let mayStore = 1;
26130let DecoderNamespace = "SUBINSN_S2";
26131}
26132def SS2_stored_sp : HInst<
26133(outs),
26134(ins s6_3Imm:$Ii, GeneralDoubleLow8Regs:$Rtt8),
26135"memd(r29+#$Ii) = $Rtt8",
26136tc_0371abea, TypeSUBINSN>, Enc_b8309d {
26137let Inst{12-9} = 0b0101;
26138let addrMode = BaseImmOffset;
26139let accessSize = DoubleWordAccess;
26140let AsmVariantName = "NonParsable";
26141let mayStore = 1;
26142let Uses = [R29];
26143let DecoderNamespace = "SUBINSN_S2";
26144}
26145def SS2_storeh_io : HInst<
26146(outs),
26147(ins GeneralSubRegs:$Rs16, u3_1Imm:$Ii, GeneralSubRegs:$Rt16),
26148"memh($Rs16+#$Ii) = $Rt16",
26149tc_30b9bb4a, TypeSUBINSN>, Enc_625deb {
26150let Inst{12-11} = 0b00;
26151let addrMode = BaseImmOffset;
26152let accessSize = HalfWordAccess;
26153let AsmVariantName = "NonParsable";
26154let mayStore = 1;
26155let DecoderNamespace = "SUBINSN_S2";
26156}
26157def SS2_storew_sp : HInst<
26158(outs),
26159(ins u5_2Imm:$Ii, GeneralSubRegs:$Rt16),
26160"memw(r29+#$Ii) = $Rt16",
26161tc_0371abea, TypeSUBINSN>, Enc_87c142 {
26162let Inst{12-9} = 0b0100;
26163let addrMode = BaseImmOffset;
26164let accessSize = WordAccess;
26165let AsmVariantName = "NonParsable";
26166let mayStore = 1;
26167let Uses = [R29];
26168let DecoderNamespace = "SUBINSN_S2";
26169}
26170def SS2_storewi0 : HInst<
26171(outs),
26172(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26173"memw($Rs16+#$Ii) = #0",
26174tc_89e94ad3, TypeSUBINSN>, Enc_a6ce9c {
26175let Inst{12-8} = 0b10000;
26176let addrMode = BaseImmOffset;
26177let accessSize = WordAccess;
26178let AsmVariantName = "NonParsable";
26179let mayStore = 1;
26180let DecoderNamespace = "SUBINSN_S2";
26181}
26182def SS2_storewi1 : HInst<
26183(outs),
26184(ins GeneralSubRegs:$Rs16, u4_2Imm:$Ii),
26185"memw($Rs16+#$Ii) = #1",
26186tc_89e94ad3, TypeSUBINSN>, Enc_a6ce9c {
26187let Inst{12-8} = 0b10001;
26188let addrMode = BaseImmOffset;
26189let accessSize = WordAccess;
26190let AsmVariantName = "NonParsable";
26191let mayStore = 1;
26192let DecoderNamespace = "SUBINSN_S2";
26193}
26194def V6_MAP_equb : HInst<
26195(outs HvxQR:$Qd4),
26196(ins HvxVR:$Vu32, HvxVR:$Vv32),
26197"$Qd4 = vcmp.eq($Vu32.ub,$Vv32.ub)",
26198PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26199let hasNewValue = 1;
26200let opNewValue = 0;
26201let isPseudo = 1;
26202let isCodeGenOnly = 1;
26203let DecoderNamespace = "EXT_mmvec";
26204}
26205def V6_MAP_equb_and : HInst<
26206(outs HvxQR:$Qx4),
26207(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26208"$Qx4 &= vcmp.eq($Vu32.ub,$Vv32.ub)",
26209PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26210let isPseudo = 1;
26211let isCodeGenOnly = 1;
26212let DecoderNamespace = "EXT_mmvec";
26213let Constraints = "$Qx4 = $Qx4in";
26214}
26215def V6_MAP_equb_ior : HInst<
26216(outs HvxQR:$Qx4),
26217(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26218"$Qx4 |= vcmp.eq($Vu32.ub,$Vv32.ub)",
26219PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26220let isAccumulator = 1;
26221let isPseudo = 1;
26222let isCodeGenOnly = 1;
26223let DecoderNamespace = "EXT_mmvec";
26224let Constraints = "$Qx4 = $Qx4in";
26225}
26226def V6_MAP_equb_xor : HInst<
26227(outs HvxQR:$Qx4),
26228(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26229"$Qx4 ^= vcmp.eq($Vu32.ub,$Vv32.ub)",
26230PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26231let isPseudo = 1;
26232let isCodeGenOnly = 1;
26233let DecoderNamespace = "EXT_mmvec";
26234let Constraints = "$Qx4 = $Qx4in";
26235}
26236def V6_MAP_equh : HInst<
26237(outs HvxQR:$Qd4),
26238(ins HvxVR:$Vu32, HvxVR:$Vv32),
26239"$Qd4 = vcmp.eq($Vu32.uh,$Vv32.uh)",
26240PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26241let hasNewValue = 1;
26242let opNewValue = 0;
26243let isPseudo = 1;
26244let isCodeGenOnly = 1;
26245let DecoderNamespace = "EXT_mmvec";
26246}
26247def V6_MAP_equh_and : HInst<
26248(outs HvxQR:$Qx4),
26249(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26250"$Qx4 &= vcmp.eq($Vu32.uh,$Vv32.uh)",
26251PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26252let isPseudo = 1;
26253let isCodeGenOnly = 1;
26254let DecoderNamespace = "EXT_mmvec";
26255let Constraints = "$Qx4 = $Qx4in";
26256}
26257def V6_MAP_equh_ior : HInst<
26258(outs HvxQR:$Qx4),
26259(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26260"$Qx4 |= vcmp.eq($Vu32.uh,$Vv32.uh)",
26261PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26262let isAccumulator = 1;
26263let isPseudo = 1;
26264let isCodeGenOnly = 1;
26265let DecoderNamespace = "EXT_mmvec";
26266let Constraints = "$Qx4 = $Qx4in";
26267}
26268def V6_MAP_equh_xor : HInst<
26269(outs HvxQR:$Qx4),
26270(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26271"$Qx4 ^= vcmp.eq($Vu32.uh,$Vv32.uh)",
26272PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26273let isPseudo = 1;
26274let isCodeGenOnly = 1;
26275let DecoderNamespace = "EXT_mmvec";
26276let Constraints = "$Qx4 = $Qx4in";
26277}
26278def V6_MAP_equw : HInst<
26279(outs HvxQR:$Qd4),
26280(ins HvxVR:$Vu32, HvxVR:$Vv32),
26281"$Qd4 = vcmp.eq($Vu32.uw,$Vv32.uw)",
26282PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26283let hasNewValue = 1;
26284let opNewValue = 0;
26285let isPseudo = 1;
26286let isCodeGenOnly = 1;
26287let DecoderNamespace = "EXT_mmvec";
26288}
26289def V6_MAP_equw_and : HInst<
26290(outs HvxQR:$Qx4),
26291(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26292"$Qx4 &= vcmp.eq($Vu32.uw,$Vv32.uw)",
26293PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26294let isPseudo = 1;
26295let isCodeGenOnly = 1;
26296let DecoderNamespace = "EXT_mmvec";
26297let Constraints = "$Qx4 = $Qx4in";
26298}
26299def V6_MAP_equw_ior : HInst<
26300(outs HvxQR:$Qx4),
26301(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26302"$Qx4 |= vcmp.eq($Vu32.uw,$Vv32.uw)",
26303PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26304let isAccumulator = 1;
26305let isPseudo = 1;
26306let isCodeGenOnly = 1;
26307let DecoderNamespace = "EXT_mmvec";
26308let Constraints = "$Qx4 = $Qx4in";
26309}
26310def V6_MAP_equw_xor : HInst<
26311(outs HvxQR:$Qx4),
26312(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
26313"$Qx4 ^= vcmp.eq($Vu32.uw,$Vv32.uw)",
26314PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26315let isPseudo = 1;
26316let isCodeGenOnly = 1;
26317let DecoderNamespace = "EXT_mmvec";
26318let Constraints = "$Qx4 = $Qx4in";
26319}
26320def V6_extractw : HInst<
26321(outs IntRegs:$Rd32),
26322(ins HvxVR:$Vu32, IntRegs:$Rs32),
26323"$Rd32 = vextract($Vu32,$Rs32)",
26324tc_540c3da3, TypeLD>, Enc_50e578, Requires<[UseHVXV60]> {
26325let Inst{7-5} = 0b001;
26326let Inst{13-13} = 0b0;
26327let Inst{31-21} = 0b10010010000;
26328let hasNewValue = 1;
26329let opNewValue = 0;
26330let isSolo = 1;
26331let mayLoad = 1;
26332let DecoderNamespace = "EXT_mmvec";
26333}
26334def V6_extractw_alt : HInst<
26335(outs IntRegs:$Rd32),
26336(ins HvxVR:$Vu32, IntRegs:$Rs32),
26337"$Rd32.w = vextract($Vu32,$Rs32)",
26338PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
26339let hasNewValue = 1;
26340let opNewValue = 0;
26341let isPseudo = 1;
26342let isCodeGenOnly = 1;
26343let DecoderNamespace = "EXT_mmvec";
26344}
26345def V6_hi : HInst<
26346(outs HvxVR:$Vd32),
26347(ins HvxWR:$Vss32),
26348"$Vd32 = hi($Vss32)",
26349CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26350let hasNewValue = 1;
26351let opNewValue = 0;
26352let isPseudo = 1;
26353let DecoderNamespace = "EXT_mmvec";
26354}
26355def V6_ld0 : HInst<
26356(outs HvxVR:$Vd32),
26357(ins IntRegs:$Rt32),
26358"$Vd32 = vmem($Rt32)",
26359PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26360let hasNewValue = 1;
26361let opNewValue = 0;
26362let isPseudo = 1;
26363let isCodeGenOnly = 1;
26364let DecoderNamespace = "EXT_mmvec";
26365}
26366def V6_ldcnp0 : HInst<
26367(outs HvxVR:$Vd32),
26368(ins PredRegs:$Pv4, IntRegs:$Rt32),
26369"if (!$Pv4) $Vd32.cur = vmem($Rt32)",
26370PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26371let hasNewValue = 1;
26372let opNewValue = 0;
26373let isPseudo = 1;
26374let isCodeGenOnly = 1;
26375let DecoderNamespace = "EXT_mmvec";
26376}
26377def V6_ldcnpnt0 : HInst<
26378(outs HvxVR:$Vd32),
26379(ins PredRegs:$Pv4, IntRegs:$Rt32),
26380"if (!$Pv4) $Vd32.cur = vmem($Rt32):nt",
26381PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26382let hasNewValue = 1;
26383let opNewValue = 0;
26384let isPseudo = 1;
26385let isCodeGenOnly = 1;
26386let DecoderNamespace = "EXT_mmvec";
26387}
26388def V6_ldcp0 : HInst<
26389(outs HvxVR:$Vd32),
26390(ins PredRegs:$Pv4, IntRegs:$Rt32),
26391"if ($Pv4) $Vd32.cur = vmem($Rt32)",
26392PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26393let hasNewValue = 1;
26394let opNewValue = 0;
26395let isPseudo = 1;
26396let isCodeGenOnly = 1;
26397let DecoderNamespace = "EXT_mmvec";
26398}
26399def V6_ldcpnt0 : HInst<
26400(outs HvxVR:$Vd32),
26401(ins PredRegs:$Pv4, IntRegs:$Rt32),
26402"if ($Pv4) $Vd32.cur = vmem($Rt32):nt",
26403PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26404let hasNewValue = 1;
26405let opNewValue = 0;
26406let isPseudo = 1;
26407let isCodeGenOnly = 1;
26408let DecoderNamespace = "EXT_mmvec";
26409}
26410def V6_ldnp0 : HInst<
26411(outs HvxVR:$Vd32),
26412(ins PredRegs:$Pv4, IntRegs:$Rt32),
26413"if (!$Pv4) $Vd32 = vmem($Rt32)",
26414PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26415let hasNewValue = 1;
26416let opNewValue = 0;
26417let isPseudo = 1;
26418let isCodeGenOnly = 1;
26419let DecoderNamespace = "EXT_mmvec";
26420}
26421def V6_ldnpnt0 : HInst<
26422(outs HvxVR:$Vd32),
26423(ins PredRegs:$Pv4, IntRegs:$Rt32),
26424"if (!$Pv4) $Vd32 = vmem($Rt32):nt",
26425PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26426let hasNewValue = 1;
26427let opNewValue = 0;
26428let isPseudo = 1;
26429let isCodeGenOnly = 1;
26430let DecoderNamespace = "EXT_mmvec";
26431}
26432def V6_ldnt0 : HInst<
26433(outs HvxVR:$Vd32),
26434(ins IntRegs:$Rt32),
26435"$Vd32 = vmem($Rt32):nt",
26436PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26437let hasNewValue = 1;
26438let opNewValue = 0;
26439let isPseudo = 1;
26440let isCodeGenOnly = 1;
26441let DecoderNamespace = "EXT_mmvec";
26442}
26443def V6_ldntnt0 : HInst<
26444(outs HvxVR:$Vd32),
26445(ins IntRegs:$Rt32),
26446"$Vd32 = vmem($Rt32):nt",
26447PSEUDO, TypeMAPPING>, Requires<[HasV62]> {
26448let hasNewValue = 1;
26449let opNewValue = 0;
26450let isPseudo = 1;
26451let isCodeGenOnly = 1;
26452let DecoderNamespace = "EXT_mmvec";
26453}
26454def V6_ldp0 : HInst<
26455(outs HvxVR:$Vd32),
26456(ins PredRegs:$Pv4, IntRegs:$Rt32),
26457"if ($Pv4) $Vd32 = vmem($Rt32)",
26458PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26459let hasNewValue = 1;
26460let opNewValue = 0;
26461let isPseudo = 1;
26462let isCodeGenOnly = 1;
26463let DecoderNamespace = "EXT_mmvec";
26464}
26465def V6_ldpnt0 : HInst<
26466(outs HvxVR:$Vd32),
26467(ins PredRegs:$Pv4, IntRegs:$Rt32),
26468"if ($Pv4) $Vd32 = vmem($Rt32):nt",
26469PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26470let hasNewValue = 1;
26471let opNewValue = 0;
26472let isPseudo = 1;
26473let isCodeGenOnly = 1;
26474let DecoderNamespace = "EXT_mmvec";
26475}
26476def V6_ldtnp0 : HInst<
26477(outs HvxVR:$Vd32),
26478(ins PredRegs:$Pv4, IntRegs:$Rt32),
26479"if (!$Pv4) $Vd32.tmp = vmem($Rt32)",
26480PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26481let hasNewValue = 1;
26482let opNewValue = 0;
26483let isPseudo = 1;
26484let isCodeGenOnly = 1;
26485let DecoderNamespace = "EXT_mmvec";
26486}
26487def V6_ldtnpnt0 : HInst<
26488(outs HvxVR:$Vd32),
26489(ins PredRegs:$Pv4, IntRegs:$Rt32),
26490"if (!$Pv4) $Vd32.tmp = vmem($Rt32):nt",
26491PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26492let hasNewValue = 1;
26493let opNewValue = 0;
26494let isPseudo = 1;
26495let isCodeGenOnly = 1;
26496let DecoderNamespace = "EXT_mmvec";
26497}
26498def V6_ldtp0 : HInst<
26499(outs HvxVR:$Vd32),
26500(ins PredRegs:$Pv4, IntRegs:$Rt32),
26501"if ($Pv4) $Vd32.tmp = vmem($Rt32)",
26502PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26503let hasNewValue = 1;
26504let opNewValue = 0;
26505let isPseudo = 1;
26506let isCodeGenOnly = 1;
26507let DecoderNamespace = "EXT_mmvec";
26508}
26509def V6_ldtpnt0 : HInst<
26510(outs HvxVR:$Vd32),
26511(ins PredRegs:$Pv4, IntRegs:$Rt32),
26512"if ($Pv4) $Vd32.tmp = vmem($Rt32):nt",
26513PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
26514let hasNewValue = 1;
26515let opNewValue = 0;
26516let isPseudo = 1;
26517let isCodeGenOnly = 1;
26518let DecoderNamespace = "EXT_mmvec";
26519}
26520def V6_ldu0 : HInst<
26521(outs HvxVR:$Vd32),
26522(ins IntRegs:$Rt32),
26523"$Vd32 = vmemu($Rt32)",
26524PSEUDO, TypeCVI_VM_LD>, Requires<[UseHVXV60]> {
26525let hasNewValue = 1;
26526let opNewValue = 0;
26527let isPseudo = 1;
26528let isCodeGenOnly = 1;
26529let DecoderNamespace = "EXT_mmvec";
26530}
26531def V6_lo : HInst<
26532(outs HvxVR:$Vd32),
26533(ins HvxWR:$Vss32),
26534"$Vd32 = lo($Vss32)",
26535CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
26536let hasNewValue = 1;
26537let opNewValue = 0;
26538let isPseudo = 1;
26539let DecoderNamespace = "EXT_mmvec";
26540}
26541def V6_lvsplatb : HInst<
26542(outs HvxVR:$Vd32),
26543(ins IntRegs:$Rt32),
26544"$Vd32.b = vsplat($Rt32)",
26545tc_c4edf264, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26546let Inst{13-5} = 0b000000010;
26547let Inst{31-21} = 0b00011001110;
26548let hasNewValue = 1;
26549let opNewValue = 0;
26550let DecoderNamespace = "EXT_mmvec";
26551}
26552def V6_lvsplath : HInst<
26553(outs HvxVR:$Vd32),
26554(ins IntRegs:$Rt32),
26555"$Vd32.h = vsplat($Rt32)",
26556tc_c4edf264, TypeCVI_VX>, Enc_a5ed8a, Requires<[UseHVXV62]> {
26557let Inst{13-5} = 0b000000001;
26558let Inst{31-21} = 0b00011001110;
26559let hasNewValue = 1;
26560let opNewValue = 0;
26561let DecoderNamespace = "EXT_mmvec";
26562}
26563def V6_lvsplatw : HInst<
26564(outs HvxVR:$Vd32),
26565(ins IntRegs:$Rt32),
26566"$Vd32 = vsplat($Rt32)",
26567tc_c4edf264, TypeCVI_VX_LATE>, Enc_a5ed8a, Requires<[UseHVXV60]> {
26568let Inst{13-5} = 0b000000001;
26569let Inst{31-21} = 0b00011001101;
26570let hasNewValue = 1;
26571let opNewValue = 0;
26572let DecoderNamespace = "EXT_mmvec";
26573}
26574def V6_pred_and : HInst<
26575(outs HvxQR:$Qd4),
26576(ins HvxQR:$Qs4, HvxQR:$Qt4),
26577"$Qd4 = and($Qs4,$Qt4)",
26578tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26579let Inst{7-2} = 0b000000;
26580let Inst{13-10} = 0b0000;
26581let Inst{21-16} = 0b000011;
26582let Inst{31-24} = 0b00011110;
26583let hasNewValue = 1;
26584let opNewValue = 0;
26585let DecoderNamespace = "EXT_mmvec";
26586}
26587def V6_pred_and_n : HInst<
26588(outs HvxQR:$Qd4),
26589(ins HvxQR:$Qs4, HvxQR:$Qt4),
26590"$Qd4 = and($Qs4,!$Qt4)",
26591tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26592let Inst{7-2} = 0b000101;
26593let Inst{13-10} = 0b0000;
26594let Inst{21-16} = 0b000011;
26595let Inst{31-24} = 0b00011110;
26596let hasNewValue = 1;
26597let opNewValue = 0;
26598let DecoderNamespace = "EXT_mmvec";
26599}
26600def V6_pred_not : HInst<
26601(outs HvxQR:$Qd4),
26602(ins HvxQR:$Qs4),
26603"$Qd4 = not($Qs4)",
26604tc_0ec46cf9, TypeCVI_VA>, Enc_bfbf03, Requires<[UseHVXV60]> {
26605let Inst{7-2} = 0b000010;
26606let Inst{13-10} = 0b0000;
26607let Inst{31-16} = 0b0001111000000011;
26608let hasNewValue = 1;
26609let opNewValue = 0;
26610let DecoderNamespace = "EXT_mmvec";
26611}
26612def V6_pred_or : HInst<
26613(outs HvxQR:$Qd4),
26614(ins HvxQR:$Qs4, HvxQR:$Qt4),
26615"$Qd4 = or($Qs4,$Qt4)",
26616tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26617let Inst{7-2} = 0b000001;
26618let Inst{13-10} = 0b0000;
26619let Inst{21-16} = 0b000011;
26620let Inst{31-24} = 0b00011110;
26621let hasNewValue = 1;
26622let opNewValue = 0;
26623let DecoderNamespace = "EXT_mmvec";
26624}
26625def V6_pred_or_n : HInst<
26626(outs HvxQR:$Qd4),
26627(ins HvxQR:$Qs4, HvxQR:$Qt4),
26628"$Qd4 = or($Qs4,!$Qt4)",
26629tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26630let Inst{7-2} = 0b000100;
26631let Inst{13-10} = 0b0000;
26632let Inst{21-16} = 0b000011;
26633let Inst{31-24} = 0b00011110;
26634let hasNewValue = 1;
26635let opNewValue = 0;
26636let DecoderNamespace = "EXT_mmvec";
26637}
26638def V6_pred_scalar2 : HInst<
26639(outs HvxQR:$Qd4),
26640(ins IntRegs:$Rt32),
26641"$Qd4 = vsetq($Rt32)",
26642tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV60]> {
26643let Inst{13-2} = 0b000000010001;
26644let Inst{31-21} = 0b00011001101;
26645let hasNewValue = 1;
26646let opNewValue = 0;
26647let DecoderNamespace = "EXT_mmvec";
26648}
26649def V6_pred_scalar2v2 : HInst<
26650(outs HvxQR:$Qd4),
26651(ins IntRegs:$Rt32),
26652"$Qd4 = vsetq2($Rt32)",
26653tc_5bf8afbb, TypeCVI_VP>, Enc_7222b7, Requires<[UseHVXV62]> {
26654let Inst{13-2} = 0b000000010011;
26655let Inst{31-21} = 0b00011001101;
26656let hasNewValue = 1;
26657let opNewValue = 0;
26658let DecoderNamespace = "EXT_mmvec";
26659}
26660def V6_pred_xor : HInst<
26661(outs HvxQR:$Qd4),
26662(ins HvxQR:$Qs4, HvxQR:$Qt4),
26663"$Qd4 = xor($Qs4,$Qt4)",
26664tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV60]> {
26665let Inst{7-2} = 0b000011;
26666let Inst{13-10} = 0b0000;
26667let Inst{21-16} = 0b000011;
26668let Inst{31-24} = 0b00011110;
26669let hasNewValue = 1;
26670let opNewValue = 0;
26671let DecoderNamespace = "EXT_mmvec";
26672}
26673def V6_shuffeqh : HInst<
26674(outs HvxQR:$Qd4),
26675(ins HvxQR:$Qs4, HvxQR:$Qt4),
26676"$Qd4.b = vshuffe($Qs4.h,$Qt4.h)",
26677tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
26678let Inst{7-2} = 0b000110;
26679let Inst{13-10} = 0b0000;
26680let Inst{21-16} = 0b000011;
26681let Inst{31-24} = 0b00011110;
26682let hasNewValue = 1;
26683let opNewValue = 0;
26684let DecoderNamespace = "EXT_mmvec";
26685}
26686def V6_shuffeqw : HInst<
26687(outs HvxQR:$Qd4),
26688(ins HvxQR:$Qs4, HvxQR:$Qt4),
26689"$Qd4.h = vshuffe($Qs4.w,$Qt4.w)",
26690tc_db5555f3, TypeCVI_VA_DV>, Enc_134437, Requires<[UseHVXV62]> {
26691let Inst{7-2} = 0b000111;
26692let Inst{13-10} = 0b0000;
26693let Inst{21-16} = 0b000011;
26694let Inst{31-24} = 0b00011110;
26695let hasNewValue = 1;
26696let opNewValue = 0;
26697let DecoderNamespace = "EXT_mmvec";
26698}
26699def V6_st0 : HInst<
26700(outs),
26701(ins IntRegs:$Rt32, HvxVR:$Vs32),
26702"vmem($Rt32) = $Vs32",
26703PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26704let isPseudo = 1;
26705let isCodeGenOnly = 1;
26706let DecoderNamespace = "EXT_mmvec";
26707}
26708def V6_stn0 : HInst<
26709(outs),
26710(ins IntRegs:$Rt32, HvxVR:$Os8),
26711"vmem($Rt32) = $Os8.new",
26712PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26713let isPseudo = 1;
26714let isCodeGenOnly = 1;
26715let DecoderNamespace = "EXT_mmvec";
26716let opNewValue = 1;
26717}
26718def V6_stnnt0 : HInst<
26719(outs),
26720(ins IntRegs:$Rt32, HvxVR:$Os8),
26721"vmem($Rt32):nt = $Os8.new",
26722PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26723let isPseudo = 1;
26724let isCodeGenOnly = 1;
26725let DecoderNamespace = "EXT_mmvec";
26726let opNewValue = 1;
26727}
26728def V6_stnp0 : HInst<
26729(outs),
26730(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26731"if (!$Pv4) vmem($Rt32) = $Vs32",
26732PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26733let isPseudo = 1;
26734let isCodeGenOnly = 1;
26735let DecoderNamespace = "EXT_mmvec";
26736}
26737def V6_stnpnt0 : HInst<
26738(outs),
26739(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26740"if (!$Pv4) vmem($Rt32):nt = $Vs32",
26741PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26742let isPseudo = 1;
26743let isCodeGenOnly = 1;
26744let DecoderNamespace = "EXT_mmvec";
26745}
26746def V6_stnq0 : HInst<
26747(outs),
26748(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26749"if (!$Qv4) vmem($Rt32) = $Vs32",
26750PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26751let isPseudo = 1;
26752let isCodeGenOnly = 1;
26753let DecoderNamespace = "EXT_mmvec";
26754}
26755def V6_stnqnt0 : HInst<
26756(outs),
26757(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26758"if (!$Qv4) vmem($Rt32):nt = $Vs32",
26759PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26760let isPseudo = 1;
26761let isCodeGenOnly = 1;
26762let DecoderNamespace = "EXT_mmvec";
26763}
26764def V6_stnt0 : HInst<
26765(outs),
26766(ins IntRegs:$Rt32, HvxVR:$Vs32),
26767"vmem($Rt32):nt = $Vs32",
26768PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26769let isPseudo = 1;
26770let isCodeGenOnly = 1;
26771let DecoderNamespace = "EXT_mmvec";
26772}
26773def V6_stp0 : HInst<
26774(outs),
26775(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26776"if ($Pv4) vmem($Rt32) = $Vs32",
26777PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26778let isPseudo = 1;
26779let isCodeGenOnly = 1;
26780let DecoderNamespace = "EXT_mmvec";
26781}
26782def V6_stpnt0 : HInst<
26783(outs),
26784(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26785"if ($Pv4) vmem($Rt32):nt = $Vs32",
26786PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26787let isPseudo = 1;
26788let isCodeGenOnly = 1;
26789let DecoderNamespace = "EXT_mmvec";
26790}
26791def V6_stq0 : HInst<
26792(outs),
26793(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26794"if ($Qv4) vmem($Rt32) = $Vs32",
26795PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26796let isPseudo = 1;
26797let isCodeGenOnly = 1;
26798let DecoderNamespace = "EXT_mmvec";
26799}
26800def V6_stqnt0 : HInst<
26801(outs),
26802(ins HvxQR:$Qv4, IntRegs:$Rt32, HvxVR:$Vs32),
26803"if ($Qv4) vmem($Rt32):nt = $Vs32",
26804PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26805let isPseudo = 1;
26806let isCodeGenOnly = 1;
26807let DecoderNamespace = "EXT_mmvec";
26808}
26809def V6_stu0 : HInst<
26810(outs),
26811(ins IntRegs:$Rt32, HvxVR:$Vs32),
26812"vmemu($Rt32) = $Vs32",
26813PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26814let isPseudo = 1;
26815let isCodeGenOnly = 1;
26816let DecoderNamespace = "EXT_mmvec";
26817}
26818def V6_stunp0 : HInst<
26819(outs),
26820(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26821"if (!$Pv4) vmemu($Rt32) = $Vs32",
26822PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26823let isPseudo = 1;
26824let isCodeGenOnly = 1;
26825let DecoderNamespace = "EXT_mmvec";
26826}
26827def V6_stup0 : HInst<
26828(outs),
26829(ins PredRegs:$Pv4, IntRegs:$Rt32, HvxVR:$Vs32),
26830"if ($Pv4) vmemu($Rt32) = $Vs32",
26831PSEUDO, TypeCVI_VM_ST>, Requires<[UseHVXV60]> {
26832let isPseudo = 1;
26833let isCodeGenOnly = 1;
26834let DecoderNamespace = "EXT_mmvec";
26835}
26836def V6_vL32Ub_ai : HInst<
26837(outs HvxVR:$Vd32),
26838(ins IntRegs:$Rt32, s4_0Imm:$Ii),
26839"$Vd32 = vmemu($Rt32+#$Ii)",
26840tc_a7e6707d, TypeCVI_VM_VP_LDU>, Enc_f3f408, Requires<[UseHVXV60]> {
26841let Inst{7-5} = 0b111;
26842let Inst{12-11} = 0b00;
26843let Inst{31-21} = 0b00101000000;
26844let hasNewValue = 1;
26845let opNewValue = 0;
26846let addrMode = BaseImmOffset;
26847let accessSize = HVXVectorAccess;
26848let isCVLoad = 1;
26849let mayLoad = 1;
26850let isRestrictNoSlot1Store = 1;
26851let DecoderNamespace = "EXT_mmvec";
26852}
26853def V6_vL32Ub_pi : HInst<
26854(outs HvxVR:$Vd32, IntRegs:$Rx32),
26855(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26856"$Vd32 = vmemu($Rx32++#$Ii)",
26857tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_a255dc, Requires<[UseHVXV60]> {
26858let Inst{7-5} = 0b111;
26859let Inst{13-11} = 0b000;
26860let Inst{31-21} = 0b00101001000;
26861let hasNewValue = 1;
26862let opNewValue = 0;
26863let addrMode = PostInc;
26864let accessSize = HVXVectorAccess;
26865let isCVLoad = 1;
26866let mayLoad = 1;
26867let isRestrictNoSlot1Store = 1;
26868let BaseOpcode = "V6_vL32b_pi";
26869let DecoderNamespace = "EXT_mmvec";
26870let Constraints = "$Rx32 = $Rx32in";
26871}
26872def V6_vL32Ub_ppu : HInst<
26873(outs HvxVR:$Vd32, IntRegs:$Rx32),
26874(ins IntRegs:$Rx32in, ModRegs:$Mu2),
26875"$Vd32 = vmemu($Rx32++$Mu2)",
26876tc_3c56e5ce, TypeCVI_VM_VP_LDU>, Enc_2ebe3b, Requires<[UseHVXV60]> {
26877let Inst{12-5} = 0b00000111;
26878let Inst{31-21} = 0b00101011000;
26879let hasNewValue = 1;
26880let opNewValue = 0;
26881let addrMode = PostInc;
26882let accessSize = HVXVectorAccess;
26883let isCVLoad = 1;
26884let mayLoad = 1;
26885let isRestrictNoSlot1Store = 1;
26886let DecoderNamespace = "EXT_mmvec";
26887let Constraints = "$Rx32 = $Rx32in";
26888}
26889def V6_vL32b_ai : HInst<
26890(outs HvxVR:$Vd32),
26891(ins IntRegs:$Rt32, s4_0Imm:$Ii),
26892"$Vd32 = vmem($Rt32+#$Ii)",
26893tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
26894let Inst{7-5} = 0b000;
26895let Inst{12-11} = 0b00;
26896let Inst{31-21} = 0b00101000000;
26897let hasNewValue = 1;
26898let opNewValue = 0;
26899let addrMode = BaseImmOffset;
26900let accessSize = HVXVectorAccess;
26901let isCVLoad = 1;
26902let mayLoad = 1;
26903let isRestrictNoSlot1Store = 1;
26904let BaseOpcode = "V6_vL32b_ai";
26905let isCVLoadable = 1;
26906let isPredicable = 1;
26907let DecoderNamespace = "EXT_mmvec";
26908}
26909def V6_vL32b_cur_ai : HInst<
26910(outs HvxVR:$Vd32),
26911(ins IntRegs:$Rt32, s4_0Imm:$Ii),
26912"$Vd32.cur = vmem($Rt32+#$Ii)",
26913tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
26914let Inst{7-5} = 0b001;
26915let Inst{12-11} = 0b00;
26916let Inst{31-21} = 0b00101000000;
26917let hasNewValue = 1;
26918let opNewValue = 0;
26919let addrMode = BaseImmOffset;
26920let accessSize = HVXVectorAccess;
26921let isCVLoad = 1;
26922let CVINew = 1;
26923let mayLoad = 1;
26924let isRestrictNoSlot1Store = 1;
26925let BaseOpcode = "V6_vL32b_cur_ai";
26926let isPredicable = 1;
26927let DecoderNamespace = "EXT_mmvec";
26928}
26929def V6_vL32b_cur_npred_ai : HInst<
26930(outs HvxVR:$Vd32),
26931(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
26932"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
26933tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
26934let Inst{7-5} = 0b101;
26935let Inst{31-21} = 0b00101000100;
26936let isPredicated = 1;
26937let isPredicatedFalse = 1;
26938let hasNewValue = 1;
26939let opNewValue = 0;
26940let addrMode = BaseImmOffset;
26941let accessSize = HVXVectorAccess;
26942let isCVLoad = 1;
26943let CVINew = 1;
26944let mayLoad = 1;
26945let isRestrictNoSlot1Store = 1;
26946let BaseOpcode = "V6_vL32b_cur_ai";
26947let DecoderNamespace = "EXT_mmvec";
26948}
26949def V6_vL32b_cur_npred_pi : HInst<
26950(outs HvxVR:$Vd32, IntRegs:$Rx32),
26951(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
26952"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
26953tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
26954let Inst{7-5} = 0b101;
26955let Inst{13-13} = 0b0;
26956let Inst{31-21} = 0b00101001100;
26957let isPredicated = 1;
26958let isPredicatedFalse = 1;
26959let hasNewValue = 1;
26960let opNewValue = 0;
26961let addrMode = PostInc;
26962let accessSize = HVXVectorAccess;
26963let isCVLoad = 1;
26964let CVINew = 1;
26965let mayLoad = 1;
26966let isRestrictNoSlot1Store = 1;
26967let BaseOpcode = "V6_vL32b_cur_pi";
26968let DecoderNamespace = "EXT_mmvec";
26969let Constraints = "$Rx32 = $Rx32in";
26970}
26971def V6_vL32b_cur_npred_ppu : HInst<
26972(outs HvxVR:$Vd32, IntRegs:$Rx32),
26973(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
26974"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
26975tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
26976let Inst{10-5} = 0b000101;
26977let Inst{31-21} = 0b00101011100;
26978let isPredicated = 1;
26979let isPredicatedFalse = 1;
26980let hasNewValue = 1;
26981let opNewValue = 0;
26982let addrMode = PostInc;
26983let accessSize = HVXVectorAccess;
26984let isCVLoad = 1;
26985let CVINew = 1;
26986let mayLoad = 1;
26987let isRestrictNoSlot1Store = 1;
26988let BaseOpcode = "V6_vL32b_cur_ppu";
26989let DecoderNamespace = "EXT_mmvec";
26990let Constraints = "$Rx32 = $Rx32in";
26991}
26992def V6_vL32b_cur_pi : HInst<
26993(outs HvxVR:$Vd32, IntRegs:$Rx32),
26994(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
26995"$Vd32.cur = vmem($Rx32++#$Ii)",
26996tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
26997let Inst{7-5} = 0b001;
26998let Inst{13-11} = 0b000;
26999let Inst{31-21} = 0b00101001000;
27000let hasNewValue = 1;
27001let opNewValue = 0;
27002let addrMode = PostInc;
27003let accessSize = HVXVectorAccess;
27004let isCVLoad = 1;
27005let CVINew = 1;
27006let mayLoad = 1;
27007let isRestrictNoSlot1Store = 1;
27008let BaseOpcode = "V6_vL32b_cur_pi";
27009let isPredicable = 1;
27010let DecoderNamespace = "EXT_mmvec";
27011let Constraints = "$Rx32 = $Rx32in";
27012}
27013def V6_vL32b_cur_ppu : HInst<
27014(outs HvxVR:$Vd32, IntRegs:$Rx32),
27015(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27016"$Vd32.cur = vmem($Rx32++$Mu2)",
27017tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27018let Inst{12-5} = 0b00000001;
27019let Inst{31-21} = 0b00101011000;
27020let hasNewValue = 1;
27021let opNewValue = 0;
27022let addrMode = PostInc;
27023let accessSize = HVXVectorAccess;
27024let isCVLoad = 1;
27025let CVINew = 1;
27026let mayLoad = 1;
27027let isRestrictNoSlot1Store = 1;
27028let BaseOpcode = "V6_vL32b_cur_ppu";
27029let isPredicable = 1;
27030let DecoderNamespace = "EXT_mmvec";
27031let Constraints = "$Rx32 = $Rx32in";
27032}
27033def V6_vL32b_cur_pred_ai : HInst<
27034(outs HvxVR:$Vd32),
27035(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27036"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii)",
27037tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27038let Inst{7-5} = 0b100;
27039let Inst{31-21} = 0b00101000100;
27040let isPredicated = 1;
27041let hasNewValue = 1;
27042let opNewValue = 0;
27043let addrMode = BaseImmOffset;
27044let accessSize = HVXVectorAccess;
27045let isCVLoad = 1;
27046let CVINew = 1;
27047let mayLoad = 1;
27048let isRestrictNoSlot1Store = 1;
27049let BaseOpcode = "V6_vL32b_cur_ai";
27050let DecoderNamespace = "EXT_mmvec";
27051}
27052def V6_vL32b_cur_pred_pi : HInst<
27053(outs HvxVR:$Vd32, IntRegs:$Rx32),
27054(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27055"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii)",
27056tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27057let Inst{7-5} = 0b100;
27058let Inst{13-13} = 0b0;
27059let Inst{31-21} = 0b00101001100;
27060let isPredicated = 1;
27061let hasNewValue = 1;
27062let opNewValue = 0;
27063let addrMode = PostInc;
27064let accessSize = HVXVectorAccess;
27065let isCVLoad = 1;
27066let CVINew = 1;
27067let mayLoad = 1;
27068let isRestrictNoSlot1Store = 1;
27069let BaseOpcode = "V6_vL32b_cur_pi";
27070let DecoderNamespace = "EXT_mmvec";
27071let Constraints = "$Rx32 = $Rx32in";
27072}
27073def V6_vL32b_cur_pred_ppu : HInst<
27074(outs HvxVR:$Vd32, IntRegs:$Rx32),
27075(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27076"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2)",
27077tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27078let Inst{10-5} = 0b000100;
27079let Inst{31-21} = 0b00101011100;
27080let isPredicated = 1;
27081let hasNewValue = 1;
27082let opNewValue = 0;
27083let addrMode = PostInc;
27084let accessSize = HVXVectorAccess;
27085let isCVLoad = 1;
27086let CVINew = 1;
27087let mayLoad = 1;
27088let isRestrictNoSlot1Store = 1;
27089let BaseOpcode = "V6_vL32b_cur_ppu";
27090let DecoderNamespace = "EXT_mmvec";
27091let Constraints = "$Rx32 = $Rx32in";
27092}
27093def V6_vL32b_npred_ai : HInst<
27094(outs HvxVR:$Vd32),
27095(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27096"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27097tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27098let Inst{7-5} = 0b011;
27099let Inst{31-21} = 0b00101000100;
27100let isPredicated = 1;
27101let isPredicatedFalse = 1;
27102let hasNewValue = 1;
27103let opNewValue = 0;
27104let addrMode = BaseImmOffset;
27105let accessSize = HVXVectorAccess;
27106let isCVLoad = 1;
27107let mayLoad = 1;
27108let isRestrictNoSlot1Store = 1;
27109let BaseOpcode = "V6_vL32b_ai";
27110let DecoderNamespace = "EXT_mmvec";
27111}
27112def V6_vL32b_npred_pi : HInst<
27113(outs HvxVR:$Vd32, IntRegs:$Rx32),
27114(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27115"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27116tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27117let Inst{7-5} = 0b011;
27118let Inst{13-13} = 0b0;
27119let Inst{31-21} = 0b00101001100;
27120let isPredicated = 1;
27121let isPredicatedFalse = 1;
27122let hasNewValue = 1;
27123let opNewValue = 0;
27124let addrMode = PostInc;
27125let accessSize = HVXVectorAccess;
27126let isCVLoad = 1;
27127let mayLoad = 1;
27128let isRestrictNoSlot1Store = 1;
27129let BaseOpcode = "V6_vL32b_pi";
27130let DecoderNamespace = "EXT_mmvec";
27131let Constraints = "$Rx32 = $Rx32in";
27132}
27133def V6_vL32b_npred_ppu : HInst<
27134(outs HvxVR:$Vd32, IntRegs:$Rx32),
27135(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27136"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27137tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27138let Inst{10-5} = 0b000011;
27139let Inst{31-21} = 0b00101011100;
27140let isPredicated = 1;
27141let isPredicatedFalse = 1;
27142let hasNewValue = 1;
27143let opNewValue = 0;
27144let addrMode = PostInc;
27145let accessSize = HVXVectorAccess;
27146let isCVLoad = 1;
27147let mayLoad = 1;
27148let isRestrictNoSlot1Store = 1;
27149let BaseOpcode = "V6_vL32b_ppu";
27150let DecoderNamespace = "EXT_mmvec";
27151let Constraints = "$Rx32 = $Rx32in";
27152}
27153def V6_vL32b_nt_ai : HInst<
27154(outs HvxVR:$Vd32),
27155(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27156"$Vd32 = vmem($Rt32+#$Ii):nt",
27157tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27158let Inst{7-5} = 0b000;
27159let Inst{12-11} = 0b00;
27160let Inst{31-21} = 0b00101000010;
27161let hasNewValue = 1;
27162let opNewValue = 0;
27163let addrMode = BaseImmOffset;
27164let accessSize = HVXVectorAccess;
27165let isCVLoad = 1;
27166let mayLoad = 1;
27167let isNonTemporal = 1;
27168let isRestrictNoSlot1Store = 1;
27169let BaseOpcode = "V6_vL32b_nt_ai";
27170let isCVLoadable = 1;
27171let isPredicable = 1;
27172let DecoderNamespace = "EXT_mmvec";
27173}
27174def V6_vL32b_nt_cur_ai : HInst<
27175(outs HvxVR:$Vd32),
27176(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27177"$Vd32.cur = vmem($Rt32+#$Ii):nt",
27178tc_c0749f3c, TypeCVI_VM_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27179let Inst{7-5} = 0b001;
27180let Inst{12-11} = 0b00;
27181let Inst{31-21} = 0b00101000010;
27182let hasNewValue = 1;
27183let opNewValue = 0;
27184let addrMode = BaseImmOffset;
27185let accessSize = HVXVectorAccess;
27186let isCVLoad = 1;
27187let CVINew = 1;
27188let mayLoad = 1;
27189let isNonTemporal = 1;
27190let isRestrictNoSlot1Store = 1;
27191let BaseOpcode = "V6_vL32b_nt_cur_ai";
27192let isPredicable = 1;
27193let DecoderNamespace = "EXT_mmvec";
27194}
27195def V6_vL32b_nt_cur_npred_ai : HInst<
27196(outs HvxVR:$Vd32),
27197(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27198"if (!$Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27199tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27200let Inst{7-5} = 0b101;
27201let Inst{31-21} = 0b00101000110;
27202let isPredicated = 1;
27203let isPredicatedFalse = 1;
27204let hasNewValue = 1;
27205let opNewValue = 0;
27206let addrMode = BaseImmOffset;
27207let accessSize = HVXVectorAccess;
27208let isCVLoad = 1;
27209let CVINew = 1;
27210let mayLoad = 1;
27211let isNonTemporal = 1;
27212let isRestrictNoSlot1Store = 1;
27213let BaseOpcode = "V6_vL32b_nt_cur_ai";
27214let DecoderNamespace = "EXT_mmvec";
27215}
27216def V6_vL32b_nt_cur_npred_pi : HInst<
27217(outs HvxVR:$Vd32, IntRegs:$Rx32),
27218(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27219"if (!$Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27220tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27221let Inst{7-5} = 0b101;
27222let Inst{13-13} = 0b0;
27223let Inst{31-21} = 0b00101001110;
27224let isPredicated = 1;
27225let isPredicatedFalse = 1;
27226let hasNewValue = 1;
27227let opNewValue = 0;
27228let addrMode = PostInc;
27229let accessSize = HVXVectorAccess;
27230let isCVLoad = 1;
27231let CVINew = 1;
27232let mayLoad = 1;
27233let isNonTemporal = 1;
27234let isRestrictNoSlot1Store = 1;
27235let BaseOpcode = "V6_vL32b_nt_cur_pi";
27236let DecoderNamespace = "EXT_mmvec";
27237let Constraints = "$Rx32 = $Rx32in";
27238}
27239def V6_vL32b_nt_cur_npred_ppu : HInst<
27240(outs HvxVR:$Vd32, IntRegs:$Rx32),
27241(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27242"if (!$Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27243tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27244let Inst{10-5} = 0b000101;
27245let Inst{31-21} = 0b00101011110;
27246let isPredicated = 1;
27247let isPredicatedFalse = 1;
27248let hasNewValue = 1;
27249let opNewValue = 0;
27250let addrMode = PostInc;
27251let accessSize = HVXVectorAccess;
27252let isCVLoad = 1;
27253let CVINew = 1;
27254let mayLoad = 1;
27255let isNonTemporal = 1;
27256let isRestrictNoSlot1Store = 1;
27257let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27258let DecoderNamespace = "EXT_mmvec";
27259let Constraints = "$Rx32 = $Rx32in";
27260}
27261def V6_vL32b_nt_cur_pi : HInst<
27262(outs HvxVR:$Vd32, IntRegs:$Rx32),
27263(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27264"$Vd32.cur = vmem($Rx32++#$Ii):nt",
27265tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27266let Inst{7-5} = 0b001;
27267let Inst{13-11} = 0b000;
27268let Inst{31-21} = 0b00101001010;
27269let hasNewValue = 1;
27270let opNewValue = 0;
27271let addrMode = PostInc;
27272let accessSize = HVXVectorAccess;
27273let isCVLoad = 1;
27274let CVINew = 1;
27275let mayLoad = 1;
27276let isNonTemporal = 1;
27277let isRestrictNoSlot1Store = 1;
27278let BaseOpcode = "V6_vL32b_nt_cur_pi";
27279let isPredicable = 1;
27280let DecoderNamespace = "EXT_mmvec";
27281let Constraints = "$Rx32 = $Rx32in";
27282}
27283def V6_vL32b_nt_cur_ppu : HInst<
27284(outs HvxVR:$Vd32, IntRegs:$Rx32),
27285(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27286"$Vd32.cur = vmem($Rx32++$Mu2):nt",
27287tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27288let Inst{12-5} = 0b00000001;
27289let Inst{31-21} = 0b00101011010;
27290let hasNewValue = 1;
27291let opNewValue = 0;
27292let addrMode = PostInc;
27293let accessSize = HVXVectorAccess;
27294let isCVLoad = 1;
27295let CVINew = 1;
27296let mayLoad = 1;
27297let isNonTemporal = 1;
27298let isRestrictNoSlot1Store = 1;
27299let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27300let isPredicable = 1;
27301let DecoderNamespace = "EXT_mmvec";
27302let Constraints = "$Rx32 = $Rx32in";
27303}
27304def V6_vL32b_nt_cur_pred_ai : HInst<
27305(outs HvxVR:$Vd32),
27306(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27307"if ($Pv4) $Vd32.cur = vmem($Rt32+#$Ii):nt",
27308tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27309let Inst{7-5} = 0b100;
27310let Inst{31-21} = 0b00101000110;
27311let isPredicated = 1;
27312let hasNewValue = 1;
27313let opNewValue = 0;
27314let addrMode = BaseImmOffset;
27315let accessSize = HVXVectorAccess;
27316let isCVLoad = 1;
27317let CVINew = 1;
27318let mayLoad = 1;
27319let isNonTemporal = 1;
27320let isRestrictNoSlot1Store = 1;
27321let BaseOpcode = "V6_vL32b_nt_cur_ai";
27322let DecoderNamespace = "EXT_mmvec";
27323}
27324def V6_vL32b_nt_cur_pred_pi : HInst<
27325(outs HvxVR:$Vd32, IntRegs:$Rx32),
27326(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27327"if ($Pv4) $Vd32.cur = vmem($Rx32++#$Ii):nt",
27328tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27329let Inst{7-5} = 0b100;
27330let Inst{13-13} = 0b0;
27331let Inst{31-21} = 0b00101001110;
27332let isPredicated = 1;
27333let hasNewValue = 1;
27334let opNewValue = 0;
27335let addrMode = PostInc;
27336let accessSize = HVXVectorAccess;
27337let isCVLoad = 1;
27338let CVINew = 1;
27339let mayLoad = 1;
27340let isNonTemporal = 1;
27341let isRestrictNoSlot1Store = 1;
27342let BaseOpcode = "V6_vL32b_nt_cur_pi";
27343let DecoderNamespace = "EXT_mmvec";
27344let Constraints = "$Rx32 = $Rx32in";
27345}
27346def V6_vL32b_nt_cur_pred_ppu : HInst<
27347(outs HvxVR:$Vd32, IntRegs:$Rx32),
27348(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27349"if ($Pv4) $Vd32.cur = vmem($Rx32++$Mu2):nt",
27350tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27351let Inst{10-5} = 0b000100;
27352let Inst{31-21} = 0b00101011110;
27353let isPredicated = 1;
27354let hasNewValue = 1;
27355let opNewValue = 0;
27356let addrMode = PostInc;
27357let accessSize = HVXVectorAccess;
27358let isCVLoad = 1;
27359let CVINew = 1;
27360let mayLoad = 1;
27361let isNonTemporal = 1;
27362let isRestrictNoSlot1Store = 1;
27363let BaseOpcode = "V6_vL32b_nt_cur_ppu";
27364let DecoderNamespace = "EXT_mmvec";
27365let Constraints = "$Rx32 = $Rx32in";
27366}
27367def V6_vL32b_nt_npred_ai : HInst<
27368(outs HvxVR:$Vd32),
27369(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27370"if (!$Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27371tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27372let Inst{7-5} = 0b011;
27373let Inst{31-21} = 0b00101000110;
27374let isPredicated = 1;
27375let isPredicatedFalse = 1;
27376let hasNewValue = 1;
27377let opNewValue = 0;
27378let addrMode = BaseImmOffset;
27379let accessSize = HVXVectorAccess;
27380let isCVLoad = 1;
27381let mayLoad = 1;
27382let isNonTemporal = 1;
27383let isRestrictNoSlot1Store = 1;
27384let BaseOpcode = "V6_vL32b_nt_ai";
27385let DecoderNamespace = "EXT_mmvec";
27386}
27387def V6_vL32b_nt_npred_pi : HInst<
27388(outs HvxVR:$Vd32, IntRegs:$Rx32),
27389(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27390"if (!$Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27391tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27392let Inst{7-5} = 0b011;
27393let Inst{13-13} = 0b0;
27394let Inst{31-21} = 0b00101001110;
27395let isPredicated = 1;
27396let isPredicatedFalse = 1;
27397let hasNewValue = 1;
27398let opNewValue = 0;
27399let addrMode = PostInc;
27400let accessSize = HVXVectorAccess;
27401let isCVLoad = 1;
27402let mayLoad = 1;
27403let isNonTemporal = 1;
27404let isRestrictNoSlot1Store = 1;
27405let BaseOpcode = "V6_vL32b_nt_pi";
27406let DecoderNamespace = "EXT_mmvec";
27407let Constraints = "$Rx32 = $Rx32in";
27408}
27409def V6_vL32b_nt_npred_ppu : HInst<
27410(outs HvxVR:$Vd32, IntRegs:$Rx32),
27411(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27412"if (!$Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27413tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27414let Inst{10-5} = 0b000011;
27415let Inst{31-21} = 0b00101011110;
27416let isPredicated = 1;
27417let isPredicatedFalse = 1;
27418let hasNewValue = 1;
27419let opNewValue = 0;
27420let addrMode = PostInc;
27421let accessSize = HVXVectorAccess;
27422let isCVLoad = 1;
27423let mayLoad = 1;
27424let isNonTemporal = 1;
27425let isRestrictNoSlot1Store = 1;
27426let BaseOpcode = "V6_vL32b_nt_ppu";
27427let DecoderNamespace = "EXT_mmvec";
27428let Constraints = "$Rx32 = $Rx32in";
27429}
27430def V6_vL32b_nt_pi : HInst<
27431(outs HvxVR:$Vd32, IntRegs:$Rx32),
27432(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27433"$Vd32 = vmem($Rx32++#$Ii):nt",
27434tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27435let Inst{7-5} = 0b000;
27436let Inst{13-11} = 0b000;
27437let Inst{31-21} = 0b00101001010;
27438let hasNewValue = 1;
27439let opNewValue = 0;
27440let addrMode = PostInc;
27441let accessSize = HVXVectorAccess;
27442let isCVLoad = 1;
27443let mayLoad = 1;
27444let isNonTemporal = 1;
27445let isRestrictNoSlot1Store = 1;
27446let BaseOpcode = "V6_vL32b_nt_pi";
27447let isCVLoadable = 1;
27448let isPredicable = 1;
27449let DecoderNamespace = "EXT_mmvec";
27450let Constraints = "$Rx32 = $Rx32in";
27451}
27452def V6_vL32b_nt_ppu : HInst<
27453(outs HvxVR:$Vd32, IntRegs:$Rx32),
27454(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27455"$Vd32 = vmem($Rx32++$Mu2):nt",
27456tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27457let Inst{12-5} = 0b00000000;
27458let Inst{31-21} = 0b00101011010;
27459let hasNewValue = 1;
27460let opNewValue = 0;
27461let addrMode = PostInc;
27462let accessSize = HVXVectorAccess;
27463let isCVLoad = 1;
27464let mayLoad = 1;
27465let isNonTemporal = 1;
27466let isRestrictNoSlot1Store = 1;
27467let BaseOpcode = "V6_vL32b_nt_ppu";
27468let isCVLoadable = 1;
27469let isPredicable = 1;
27470let DecoderNamespace = "EXT_mmvec";
27471let Constraints = "$Rx32 = $Rx32in";
27472}
27473def V6_vL32b_nt_pred_ai : HInst<
27474(outs HvxVR:$Vd32),
27475(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27476"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii):nt",
27477tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27478let Inst{7-5} = 0b010;
27479let Inst{31-21} = 0b00101000110;
27480let isPredicated = 1;
27481let hasNewValue = 1;
27482let opNewValue = 0;
27483let addrMode = BaseImmOffset;
27484let accessSize = HVXVectorAccess;
27485let isCVLoad = 1;
27486let mayLoad = 1;
27487let isNonTemporal = 1;
27488let isRestrictNoSlot1Store = 1;
27489let BaseOpcode = "V6_vL32b_nt_ai";
27490let DecoderNamespace = "EXT_mmvec";
27491}
27492def V6_vL32b_nt_pred_pi : HInst<
27493(outs HvxVR:$Vd32, IntRegs:$Rx32),
27494(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27495"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii):nt",
27496tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27497let Inst{7-5} = 0b010;
27498let Inst{13-13} = 0b0;
27499let Inst{31-21} = 0b00101001110;
27500let isPredicated = 1;
27501let hasNewValue = 1;
27502let opNewValue = 0;
27503let addrMode = PostInc;
27504let accessSize = HVXVectorAccess;
27505let isCVLoad = 1;
27506let mayLoad = 1;
27507let isNonTemporal = 1;
27508let isRestrictNoSlot1Store = 1;
27509let BaseOpcode = "V6_vL32b_nt_pi";
27510let DecoderNamespace = "EXT_mmvec";
27511let Constraints = "$Rx32 = $Rx32in";
27512}
27513def V6_vL32b_nt_pred_ppu : HInst<
27514(outs HvxVR:$Vd32, IntRegs:$Rx32),
27515(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27516"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2):nt",
27517tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27518let Inst{10-5} = 0b000010;
27519let Inst{31-21} = 0b00101011110;
27520let isPredicated = 1;
27521let hasNewValue = 1;
27522let opNewValue = 0;
27523let addrMode = PostInc;
27524let accessSize = HVXVectorAccess;
27525let isCVLoad = 1;
27526let mayLoad = 1;
27527let isNonTemporal = 1;
27528let isRestrictNoSlot1Store = 1;
27529let BaseOpcode = "V6_vL32b_nt_ppu";
27530let DecoderNamespace = "EXT_mmvec";
27531let Constraints = "$Rx32 = $Rx32in";
27532}
27533def V6_vL32b_nt_tmp_ai : HInst<
27534(outs HvxVR:$Vd32),
27535(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27536"$Vd32.tmp = vmem($Rt32+#$Ii):nt",
27537tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27538let Inst{7-5} = 0b010;
27539let Inst{12-11} = 0b00;
27540let Inst{31-21} = 0b00101000010;
27541let hasNewValue = 1;
27542let opNewValue = 0;
27543let addrMode = BaseImmOffset;
27544let accessSize = HVXVectorAccess;
27545let isCVLoad = 1;
27546let mayLoad = 1;
27547let isNonTemporal = 1;
27548let isRestrictNoSlot1Store = 1;
27549let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27550let isPredicable = 1;
27551let DecoderNamespace = "EXT_mmvec";
27552}
27553def V6_vL32b_nt_tmp_npred_ai : HInst<
27554(outs HvxVR:$Vd32),
27555(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27556"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
27557tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27558let Inst{7-5} = 0b111;
27559let Inst{31-21} = 0b00101000110;
27560let isPredicated = 1;
27561let isPredicatedFalse = 1;
27562let hasNewValue = 1;
27563let opNewValue = 0;
27564let addrMode = BaseImmOffset;
27565let accessSize = HVXVectorAccess;
27566let isCVLoad = 1;
27567let mayLoad = 1;
27568let isNonTemporal = 1;
27569let isRestrictNoSlot1Store = 1;
27570let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27571let DecoderNamespace = "EXT_mmvec";
27572}
27573def V6_vL32b_nt_tmp_npred_pi : HInst<
27574(outs HvxVR:$Vd32, IntRegs:$Rx32),
27575(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27576"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
27577tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27578let Inst{7-5} = 0b111;
27579let Inst{13-13} = 0b0;
27580let Inst{31-21} = 0b00101001110;
27581let isPredicated = 1;
27582let isPredicatedFalse = 1;
27583let hasNewValue = 1;
27584let opNewValue = 0;
27585let addrMode = PostInc;
27586let accessSize = HVXVectorAccess;
27587let isCVLoad = 1;
27588let mayLoad = 1;
27589let isNonTemporal = 1;
27590let isRestrictNoSlot1Store = 1;
27591let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27592let DecoderNamespace = "EXT_mmvec";
27593let Constraints = "$Rx32 = $Rx32in";
27594}
27595def V6_vL32b_nt_tmp_npred_ppu : HInst<
27596(outs HvxVR:$Vd32, IntRegs:$Rx32),
27597(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27598"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
27599tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27600let Inst{10-5} = 0b000111;
27601let Inst{31-21} = 0b00101011110;
27602let isPredicated = 1;
27603let isPredicatedFalse = 1;
27604let hasNewValue = 1;
27605let opNewValue = 0;
27606let addrMode = PostInc;
27607let accessSize = HVXVectorAccess;
27608let isCVLoad = 1;
27609let mayLoad = 1;
27610let isNonTemporal = 1;
27611let isRestrictNoSlot1Store = 1;
27612let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27613let DecoderNamespace = "EXT_mmvec";
27614let Constraints = "$Rx32 = $Rx32in";
27615}
27616def V6_vL32b_nt_tmp_pi : HInst<
27617(outs HvxVR:$Vd32, IntRegs:$Rx32),
27618(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27619"$Vd32.tmp = vmem($Rx32++#$Ii):nt",
27620tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27621let Inst{7-5} = 0b010;
27622let Inst{13-11} = 0b000;
27623let Inst{31-21} = 0b00101001010;
27624let hasNewValue = 1;
27625let opNewValue = 0;
27626let addrMode = PostInc;
27627let accessSize = HVXVectorAccess;
27628let isCVLoad = 1;
27629let mayLoad = 1;
27630let isNonTemporal = 1;
27631let isRestrictNoSlot1Store = 1;
27632let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27633let isPredicable = 1;
27634let DecoderNamespace = "EXT_mmvec";
27635let Constraints = "$Rx32 = $Rx32in";
27636}
27637def V6_vL32b_nt_tmp_ppu : HInst<
27638(outs HvxVR:$Vd32, IntRegs:$Rx32),
27639(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27640"$Vd32.tmp = vmem($Rx32++$Mu2):nt",
27641tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27642let Inst{12-5} = 0b00000010;
27643let Inst{31-21} = 0b00101011010;
27644let hasNewValue = 1;
27645let opNewValue = 0;
27646let addrMode = PostInc;
27647let accessSize = HVXVectorAccess;
27648let isCVLoad = 1;
27649let mayLoad = 1;
27650let isNonTemporal = 1;
27651let isRestrictNoSlot1Store = 1;
27652let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27653let isPredicable = 1;
27654let DecoderNamespace = "EXT_mmvec";
27655let Constraints = "$Rx32 = $Rx32in";
27656}
27657def V6_vL32b_nt_tmp_pred_ai : HInst<
27658(outs HvxVR:$Vd32),
27659(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27660"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii):nt",
27661tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27662let Inst{7-5} = 0b110;
27663let Inst{31-21} = 0b00101000110;
27664let isPredicated = 1;
27665let hasNewValue = 1;
27666let opNewValue = 0;
27667let addrMode = BaseImmOffset;
27668let accessSize = HVXVectorAccess;
27669let isCVLoad = 1;
27670let mayLoad = 1;
27671let isNonTemporal = 1;
27672let isRestrictNoSlot1Store = 1;
27673let BaseOpcode = "V6_vL32b_nt_tmp_ai";
27674let DecoderNamespace = "EXT_mmvec";
27675}
27676def V6_vL32b_nt_tmp_pred_pi : HInst<
27677(outs HvxVR:$Vd32, IntRegs:$Rx32),
27678(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27679"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii):nt",
27680tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27681let Inst{7-5} = 0b110;
27682let Inst{13-13} = 0b0;
27683let Inst{31-21} = 0b00101001110;
27684let isPredicated = 1;
27685let hasNewValue = 1;
27686let opNewValue = 0;
27687let addrMode = PostInc;
27688let accessSize = HVXVectorAccess;
27689let isCVLoad = 1;
27690let mayLoad = 1;
27691let isNonTemporal = 1;
27692let isRestrictNoSlot1Store = 1;
27693let BaseOpcode = "V6_vL32b_nt_tmp_pi";
27694let DecoderNamespace = "EXT_mmvec";
27695let Constraints = "$Rx32 = $Rx32in";
27696}
27697def V6_vL32b_nt_tmp_pred_ppu : HInst<
27698(outs HvxVR:$Vd32, IntRegs:$Rx32),
27699(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27700"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2):nt",
27701tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27702let Inst{10-5} = 0b000110;
27703let Inst{31-21} = 0b00101011110;
27704let isPredicated = 1;
27705let hasNewValue = 1;
27706let opNewValue = 0;
27707let addrMode = PostInc;
27708let accessSize = HVXVectorAccess;
27709let isCVLoad = 1;
27710let mayLoad = 1;
27711let isNonTemporal = 1;
27712let isRestrictNoSlot1Store = 1;
27713let BaseOpcode = "V6_vL32b_nt_tmp_ppu";
27714let DecoderNamespace = "EXT_mmvec";
27715let Constraints = "$Rx32 = $Rx32in";
27716}
27717def V6_vL32b_pi : HInst<
27718(outs HvxVR:$Vd32, IntRegs:$Rx32),
27719(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27720"$Vd32 = vmem($Rx32++#$Ii)",
27721tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27722let Inst{7-5} = 0b000;
27723let Inst{13-11} = 0b000;
27724let Inst{31-21} = 0b00101001000;
27725let hasNewValue = 1;
27726let opNewValue = 0;
27727let addrMode = PostInc;
27728let accessSize = HVXVectorAccess;
27729let isCVLoad = 1;
27730let mayLoad = 1;
27731let isRestrictNoSlot1Store = 1;
27732let BaseOpcode = "V6_vL32b_pi";
27733let isCVLoadable = 1;
27734let isPredicable = 1;
27735let DecoderNamespace = "EXT_mmvec";
27736let Constraints = "$Rx32 = $Rx32in";
27737}
27738def V6_vL32b_ppu : HInst<
27739(outs HvxVR:$Vd32, IntRegs:$Rx32),
27740(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27741"$Vd32 = vmem($Rx32++$Mu2)",
27742tc_1ba8a0cd, TypeCVI_VM_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27743let Inst{12-5} = 0b00000000;
27744let Inst{31-21} = 0b00101011000;
27745let hasNewValue = 1;
27746let opNewValue = 0;
27747let addrMode = PostInc;
27748let accessSize = HVXVectorAccess;
27749let isCVLoad = 1;
27750let mayLoad = 1;
27751let isRestrictNoSlot1Store = 1;
27752let BaseOpcode = "V6_vL32b_ppu";
27753let isCVLoadable = 1;
27754let isPredicable = 1;
27755let DecoderNamespace = "EXT_mmvec";
27756let Constraints = "$Rx32 = $Rx32in";
27757}
27758def V6_vL32b_pred_ai : HInst<
27759(outs HvxVR:$Vd32),
27760(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27761"if ($Pv4) $Vd32 = vmem($Rt32+#$Ii)",
27762tc_abe8c3b2, TypeCVI_VM_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27763let Inst{7-5} = 0b010;
27764let Inst{31-21} = 0b00101000100;
27765let isPredicated = 1;
27766let hasNewValue = 1;
27767let opNewValue = 0;
27768let addrMode = BaseImmOffset;
27769let accessSize = HVXVectorAccess;
27770let isCVLoad = 1;
27771let mayLoad = 1;
27772let isRestrictNoSlot1Store = 1;
27773let BaseOpcode = "V6_vL32b_ai";
27774let DecoderNamespace = "EXT_mmvec";
27775}
27776def V6_vL32b_pred_pi : HInst<
27777(outs HvxVR:$Vd32, IntRegs:$Rx32),
27778(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27779"if ($Pv4) $Vd32 = vmem($Rx32++#$Ii)",
27780tc_453fe68d, TypeCVI_VM_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27781let Inst{7-5} = 0b010;
27782let Inst{13-13} = 0b0;
27783let Inst{31-21} = 0b00101001100;
27784let isPredicated = 1;
27785let hasNewValue = 1;
27786let opNewValue = 0;
27787let addrMode = PostInc;
27788let accessSize = HVXVectorAccess;
27789let isCVLoad = 1;
27790let mayLoad = 1;
27791let isRestrictNoSlot1Store = 1;
27792let BaseOpcode = "V6_vL32b_pi";
27793let DecoderNamespace = "EXT_mmvec";
27794let Constraints = "$Rx32 = $Rx32in";
27795}
27796def V6_vL32b_pred_ppu : HInst<
27797(outs HvxVR:$Vd32, IntRegs:$Rx32),
27798(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27799"if ($Pv4) $Vd32 = vmem($Rx32++$Mu2)",
27800tc_453fe68d, TypeCVI_VM_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27801let Inst{10-5} = 0b000010;
27802let Inst{31-21} = 0b00101011100;
27803let isPredicated = 1;
27804let hasNewValue = 1;
27805let opNewValue = 0;
27806let addrMode = PostInc;
27807let accessSize = HVXVectorAccess;
27808let isCVLoad = 1;
27809let mayLoad = 1;
27810let isRestrictNoSlot1Store = 1;
27811let BaseOpcode = "V6_vL32b_ppu";
27812let DecoderNamespace = "EXT_mmvec";
27813let Constraints = "$Rx32 = $Rx32in";
27814}
27815def V6_vL32b_tmp_ai : HInst<
27816(outs HvxVR:$Vd32),
27817(ins IntRegs:$Rt32, s4_0Imm:$Ii),
27818"$Vd32.tmp = vmem($Rt32+#$Ii)",
27819tc_52447ecc, TypeCVI_VM_TMP_LD>, Enc_f3f408, Requires<[UseHVXV60]>, PredRel {
27820let Inst{7-5} = 0b010;
27821let Inst{12-11} = 0b00;
27822let Inst{31-21} = 0b00101000000;
27823let hasNewValue = 1;
27824let opNewValue = 0;
27825let addrMode = BaseImmOffset;
27826let accessSize = HVXVectorAccess;
27827let isCVLoad = 1;
27828let mayLoad = 1;
27829let isRestrictNoSlot1Store = 1;
27830let BaseOpcode = "V6_vL32b_tmp_ai";
27831let isPredicable = 1;
27832let DecoderNamespace = "EXT_mmvec";
27833}
27834def V6_vL32b_tmp_npred_ai : HInst<
27835(outs HvxVR:$Vd32),
27836(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27837"if (!$Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
27838tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27839let Inst{7-5} = 0b111;
27840let Inst{31-21} = 0b00101000100;
27841let isPredicated = 1;
27842let isPredicatedFalse = 1;
27843let hasNewValue = 1;
27844let opNewValue = 0;
27845let addrMode = BaseImmOffset;
27846let accessSize = HVXVectorAccess;
27847let isCVLoad = 1;
27848let mayLoad = 1;
27849let isRestrictNoSlot1Store = 1;
27850let BaseOpcode = "V6_vL32b_tmp_ai";
27851let DecoderNamespace = "EXT_mmvec";
27852}
27853def V6_vL32b_tmp_npred_pi : HInst<
27854(outs HvxVR:$Vd32, IntRegs:$Rx32),
27855(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27856"if (!$Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
27857tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27858let Inst{7-5} = 0b111;
27859let Inst{13-13} = 0b0;
27860let Inst{31-21} = 0b00101001100;
27861let isPredicated = 1;
27862let isPredicatedFalse = 1;
27863let hasNewValue = 1;
27864let opNewValue = 0;
27865let addrMode = PostInc;
27866let accessSize = HVXVectorAccess;
27867let isCVLoad = 1;
27868let mayLoad = 1;
27869let isRestrictNoSlot1Store = 1;
27870let BaseOpcode = "V6_vL32b_tmp_pi";
27871let DecoderNamespace = "EXT_mmvec";
27872let Constraints = "$Rx32 = $Rx32in";
27873}
27874def V6_vL32b_tmp_npred_ppu : HInst<
27875(outs HvxVR:$Vd32, IntRegs:$Rx32),
27876(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27877"if (!$Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
27878tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27879let Inst{10-5} = 0b000111;
27880let Inst{31-21} = 0b00101011100;
27881let isPredicated = 1;
27882let isPredicatedFalse = 1;
27883let hasNewValue = 1;
27884let opNewValue = 0;
27885let addrMode = PostInc;
27886let accessSize = HVXVectorAccess;
27887let isCVLoad = 1;
27888let mayLoad = 1;
27889let isRestrictNoSlot1Store = 1;
27890let BaseOpcode = "V6_vL32b_tmp_ppu";
27891let DecoderNamespace = "EXT_mmvec";
27892let Constraints = "$Rx32 = $Rx32in";
27893}
27894def V6_vL32b_tmp_pi : HInst<
27895(outs HvxVR:$Vd32, IntRegs:$Rx32),
27896(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
27897"$Vd32.tmp = vmem($Rx32++#$Ii)",
27898tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_a255dc, Requires<[UseHVXV60]>, PredRel {
27899let Inst{7-5} = 0b010;
27900let Inst{13-11} = 0b000;
27901let Inst{31-21} = 0b00101001000;
27902let hasNewValue = 1;
27903let opNewValue = 0;
27904let addrMode = PostInc;
27905let accessSize = HVXVectorAccess;
27906let isCVLoad = 1;
27907let mayLoad = 1;
27908let isRestrictNoSlot1Store = 1;
27909let BaseOpcode = "V6_vL32b_tmp_pi";
27910let isPredicable = 1;
27911let DecoderNamespace = "EXT_mmvec";
27912let Constraints = "$Rx32 = $Rx32in";
27913}
27914def V6_vL32b_tmp_ppu : HInst<
27915(outs HvxVR:$Vd32, IntRegs:$Rx32),
27916(ins IntRegs:$Rx32in, ModRegs:$Mu2),
27917"$Vd32.tmp = vmem($Rx32++$Mu2)",
27918tc_663c80a7, TypeCVI_VM_TMP_LD>, Enc_2ebe3b, Requires<[UseHVXV60]>, PredRel {
27919let Inst{12-5} = 0b00000010;
27920let Inst{31-21} = 0b00101011000;
27921let hasNewValue = 1;
27922let opNewValue = 0;
27923let addrMode = PostInc;
27924let accessSize = HVXVectorAccess;
27925let isCVLoad = 1;
27926let mayLoad = 1;
27927let isRestrictNoSlot1Store = 1;
27928let BaseOpcode = "V6_vL32b_tmp_ppu";
27929let isPredicable = 1;
27930let DecoderNamespace = "EXT_mmvec";
27931let Constraints = "$Rx32 = $Rx32in";
27932}
27933def V6_vL32b_tmp_pred_ai : HInst<
27934(outs HvxVR:$Vd32),
27935(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
27936"if ($Pv4) $Vd32.tmp = vmem($Rt32+#$Ii)",
27937tc_3904b926, TypeCVI_VM_TMP_LD>, Enc_8d8a30, Requires<[UseHVXV62]>, PredRel {
27938let Inst{7-5} = 0b110;
27939let Inst{31-21} = 0b00101000100;
27940let isPredicated = 1;
27941let hasNewValue = 1;
27942let opNewValue = 0;
27943let addrMode = BaseImmOffset;
27944let accessSize = HVXVectorAccess;
27945let isCVLoad = 1;
27946let mayLoad = 1;
27947let isRestrictNoSlot1Store = 1;
27948let BaseOpcode = "V6_vL32b_tmp_ai";
27949let DecoderNamespace = "EXT_mmvec";
27950}
27951def V6_vL32b_tmp_pred_pi : HInst<
27952(outs HvxVR:$Vd32, IntRegs:$Rx32),
27953(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
27954"if ($Pv4) $Vd32.tmp = vmem($Rx32++#$Ii)",
27955tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_58a8bf, Requires<[UseHVXV62]>, PredRel {
27956let Inst{7-5} = 0b110;
27957let Inst{13-13} = 0b0;
27958let Inst{31-21} = 0b00101001100;
27959let isPredicated = 1;
27960let hasNewValue = 1;
27961let opNewValue = 0;
27962let addrMode = PostInc;
27963let accessSize = HVXVectorAccess;
27964let isCVLoad = 1;
27965let mayLoad = 1;
27966let isRestrictNoSlot1Store = 1;
27967let BaseOpcode = "V6_vL32b_tmp_pi";
27968let DecoderNamespace = "EXT_mmvec";
27969let Constraints = "$Rx32 = $Rx32in";
27970}
27971def V6_vL32b_tmp_pred_ppu : HInst<
27972(outs HvxVR:$Vd32, IntRegs:$Rx32),
27973(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
27974"if ($Pv4) $Vd32.tmp = vmem($Rx32++$Mu2)",
27975tc_b9db8205, TypeCVI_VM_TMP_LD>, Enc_f8c1c4, Requires<[UseHVXV62]>, PredRel {
27976let Inst{10-5} = 0b000110;
27977let Inst{31-21} = 0b00101011100;
27978let isPredicated = 1;
27979let hasNewValue = 1;
27980let opNewValue = 0;
27981let addrMode = PostInc;
27982let accessSize = HVXVectorAccess;
27983let isCVLoad = 1;
27984let mayLoad = 1;
27985let isRestrictNoSlot1Store = 1;
27986let BaseOpcode = "V6_vL32b_tmp_ppu";
27987let DecoderNamespace = "EXT_mmvec";
27988let Constraints = "$Rx32 = $Rx32in";
27989}
27990def V6_vS32Ub_ai : HInst<
27991(outs),
27992(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
27993"vmemu($Rt32+#$Ii) = $Vs32",
27994tc_f21e8abb, TypeCVI_VM_STU>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
27995let Inst{7-5} = 0b111;
27996let Inst{12-11} = 0b00;
27997let Inst{31-21} = 0b00101000001;
27998let addrMode = BaseImmOffset;
27999let accessSize = HVXVectorAccess;
28000let mayStore = 1;
28001let BaseOpcode = "V6_vS32Ub_ai";
28002let isPredicable = 1;
28003let DecoderNamespace = "EXT_mmvec";
28004}
28005def V6_vS32Ub_npred_ai : HInst<
28006(outs),
28007(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28008"if (!$Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28009tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28010let Inst{7-5} = 0b111;
28011let Inst{31-21} = 0b00101000101;
28012let isPredicated = 1;
28013let isPredicatedFalse = 1;
28014let addrMode = BaseImmOffset;
28015let accessSize = HVXVectorAccess;
28016let mayStore = 1;
28017let BaseOpcode = "V6_vS32Ub_ai";
28018let DecoderNamespace = "EXT_mmvec";
28019}
28020def V6_vS32Ub_npred_pi : HInst<
28021(outs IntRegs:$Rx32),
28022(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28023"if (!$Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28024tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28025let Inst{7-5} = 0b111;
28026let Inst{13-13} = 0b0;
28027let Inst{31-21} = 0b00101001101;
28028let isPredicated = 1;
28029let isPredicatedFalse = 1;
28030let addrMode = PostInc;
28031let accessSize = HVXVectorAccess;
28032let mayStore = 1;
28033let BaseOpcode = "V6_vS32Ub_pi";
28034let DecoderNamespace = "EXT_mmvec";
28035let Constraints = "$Rx32 = $Rx32in";
28036}
28037def V6_vS32Ub_npred_ppu : HInst<
28038(outs IntRegs:$Rx32),
28039(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28040"if (!$Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28041tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28042let Inst{10-5} = 0b000111;
28043let Inst{31-21} = 0b00101011101;
28044let isPredicated = 1;
28045let isPredicatedFalse = 1;
28046let addrMode = PostInc;
28047let accessSize = HVXVectorAccess;
28048let mayStore = 1;
28049let BaseOpcode = "V6_vS32Ub_ppu";
28050let DecoderNamespace = "EXT_mmvec";
28051let Constraints = "$Rx32 = $Rx32in";
28052}
28053def V6_vS32Ub_pi : HInst<
28054(outs IntRegs:$Rx32),
28055(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28056"vmemu($Rx32++#$Ii) = $Vs32",
28057tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28058let Inst{7-5} = 0b111;
28059let Inst{13-11} = 0b000;
28060let Inst{31-21} = 0b00101001001;
28061let addrMode = PostInc;
28062let accessSize = HVXVectorAccess;
28063let mayStore = 1;
28064let BaseOpcode = "V6_vS32Ub_pi";
28065let isPredicable = 1;
28066let DecoderNamespace = "EXT_mmvec";
28067let Constraints = "$Rx32 = $Rx32in";
28068}
28069def V6_vS32Ub_ppu : HInst<
28070(outs IntRegs:$Rx32),
28071(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28072"vmemu($Rx32++$Mu2) = $Vs32",
28073tc_e2d2e9e5, TypeCVI_VM_STU>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28074let Inst{12-5} = 0b00000111;
28075let Inst{31-21} = 0b00101011001;
28076let addrMode = PostInc;
28077let accessSize = HVXVectorAccess;
28078let mayStore = 1;
28079let BaseOpcode = "V6_vS32Ub_ppu";
28080let isPredicable = 1;
28081let DecoderNamespace = "EXT_mmvec";
28082let Constraints = "$Rx32 = $Rx32in";
28083}
28084def V6_vS32Ub_pred_ai : HInst<
28085(outs),
28086(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28087"if ($Pv4) vmemu($Rt32+#$Ii) = $Vs32",
28088tc_131f1c81, TypeCVI_VM_STU>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28089let Inst{7-5} = 0b110;
28090let Inst{31-21} = 0b00101000101;
28091let isPredicated = 1;
28092let addrMode = BaseImmOffset;
28093let accessSize = HVXVectorAccess;
28094let mayStore = 1;
28095let BaseOpcode = "V6_vS32Ub_ai";
28096let DecoderNamespace = "EXT_mmvec";
28097}
28098def V6_vS32Ub_pred_pi : HInst<
28099(outs IntRegs:$Rx32),
28100(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28101"if ($Pv4) vmemu($Rx32++#$Ii) = $Vs32",
28102tc_c7039829, TypeCVI_VM_STU>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28103let Inst{7-5} = 0b110;
28104let Inst{13-13} = 0b0;
28105let Inst{31-21} = 0b00101001101;
28106let isPredicated = 1;
28107let addrMode = PostInc;
28108let accessSize = HVXVectorAccess;
28109let mayStore = 1;
28110let BaseOpcode = "V6_vS32Ub_pi";
28111let DecoderNamespace = "EXT_mmvec";
28112let Constraints = "$Rx32 = $Rx32in";
28113}
28114def V6_vS32Ub_pred_ppu : HInst<
28115(outs IntRegs:$Rx32),
28116(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28117"if ($Pv4) vmemu($Rx32++$Mu2) = $Vs32",
28118tc_c7039829, TypeCVI_VM_STU>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28119let Inst{10-5} = 0b000110;
28120let Inst{31-21} = 0b00101011101;
28121let isPredicated = 1;
28122let addrMode = PostInc;
28123let accessSize = HVXVectorAccess;
28124let mayStore = 1;
28125let BaseOpcode = "V6_vS32Ub_ppu";
28126let DecoderNamespace = "EXT_mmvec";
28127let Constraints = "$Rx32 = $Rx32in";
28128}
28129def V6_vS32b_ai : HInst<
28130(outs),
28131(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28132"vmem($Rt32+#$Ii) = $Vs32",
28133tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28134let Inst{7-5} = 0b000;
28135let Inst{12-11} = 0b00;
28136let Inst{31-21} = 0b00101000001;
28137let addrMode = BaseImmOffset;
28138let accessSize = HVXVectorAccess;
28139let mayStore = 1;
28140let BaseOpcode = "V6_vS32b_ai";
28141let isNVStorable = 1;
28142let isPredicable = 1;
28143let DecoderNamespace = "EXT_mmvec";
28144}
28145def V6_vS32b_new_ai : HInst<
28146(outs),
28147(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28148"vmem($Rt32+#$Ii) = $Os8.new",
28149tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
28150let Inst{7-3} = 0b00100;
28151let Inst{12-11} = 0b00;
28152let Inst{31-21} = 0b00101000001;
28153let addrMode = BaseImmOffset;
28154let accessSize = HVXVectorAccess;
28155let isNVStore = 1;
28156let CVINew = 1;
28157let isNewValue = 1;
28158let mayStore = 1;
28159let BaseOpcode = "V6_vS32b_ai";
28160let isPredicable = 1;
28161let DecoderNamespace = "EXT_mmvec";
28162let opNewValue = 2;
28163}
28164def V6_vS32b_new_npred_ai : HInst<
28165(outs),
28166(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28167"if (!$Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28168tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28169let Inst{7-3} = 0b01101;
28170let Inst{31-21} = 0b00101000101;
28171let isPredicated = 1;
28172let isPredicatedFalse = 1;
28173let addrMode = BaseImmOffset;
28174let accessSize = HVXVectorAccess;
28175let isNVStore = 1;
28176let CVINew = 1;
28177let isNewValue = 1;
28178let mayStore = 1;
28179let BaseOpcode = "V6_vS32b_ai";
28180let DecoderNamespace = "EXT_mmvec";
28181let opNewValue = 3;
28182}
28183def V6_vS32b_new_npred_pi : HInst<
28184(outs IntRegs:$Rx32),
28185(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28186"if (!$Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28187tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28188let Inst{7-3} = 0b01101;
28189let Inst{13-13} = 0b0;
28190let Inst{31-21} = 0b00101001101;
28191let isPredicated = 1;
28192let isPredicatedFalse = 1;
28193let addrMode = PostInc;
28194let accessSize = HVXVectorAccess;
28195let isNVStore = 1;
28196let CVINew = 1;
28197let isNewValue = 1;
28198let mayStore = 1;
28199let BaseOpcode = "V6_vS32b_pi";
28200let DecoderNamespace = "EXT_mmvec";
28201let opNewValue = 4;
28202let Constraints = "$Rx32 = $Rx32in";
28203}
28204def V6_vS32b_new_npred_ppu : HInst<
28205(outs IntRegs:$Rx32),
28206(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28207"if (!$Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28208tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28209let Inst{10-3} = 0b00001101;
28210let Inst{31-21} = 0b00101011101;
28211let isPredicated = 1;
28212let isPredicatedFalse = 1;
28213let addrMode = PostInc;
28214let accessSize = HVXVectorAccess;
28215let isNVStore = 1;
28216let CVINew = 1;
28217let isNewValue = 1;
28218let mayStore = 1;
28219let BaseOpcode = "V6_vS32b_ppu";
28220let DecoderNamespace = "EXT_mmvec";
28221let opNewValue = 4;
28222let Constraints = "$Rx32 = $Rx32in";
28223}
28224def V6_vS32b_new_pi : HInst<
28225(outs IntRegs:$Rx32),
28226(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28227"vmem($Rx32++#$Ii) = $Os8.new",
28228tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
28229let Inst{7-3} = 0b00100;
28230let Inst{13-11} = 0b000;
28231let Inst{31-21} = 0b00101001001;
28232let addrMode = PostInc;
28233let accessSize = HVXVectorAccess;
28234let isNVStore = 1;
28235let CVINew = 1;
28236let isNewValue = 1;
28237let mayStore = 1;
28238let BaseOpcode = "V6_vS32b_pi";
28239let isPredicable = 1;
28240let DecoderNamespace = "EXT_mmvec";
28241let opNewValue = 3;
28242let Constraints = "$Rx32 = $Rx32in";
28243}
28244def V6_vS32b_new_ppu : HInst<
28245(outs IntRegs:$Rx32),
28246(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28247"vmem($Rx32++$Mu2) = $Os8.new",
28248tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28249let Inst{12-3} = 0b0000000100;
28250let Inst{31-21} = 0b00101011001;
28251let addrMode = PostInc;
28252let accessSize = HVXVectorAccess;
28253let isNVStore = 1;
28254let CVINew = 1;
28255let isNewValue = 1;
28256let mayStore = 1;
28257let BaseOpcode = "V6_vS32b_ppu";
28258let isPredicable = 1;
28259let DecoderNamespace = "EXT_mmvec";
28260let opNewValue = 3;
28261let Constraints = "$Rx32 = $Rx32in";
28262}
28263def V6_vS32b_new_pred_ai : HInst<
28264(outs),
28265(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28266"if ($Pv4) vmem($Rt32+#$Ii) = $Os8.new",
28267tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28268let Inst{7-3} = 0b01000;
28269let Inst{31-21} = 0b00101000101;
28270let isPredicated = 1;
28271let addrMode = BaseImmOffset;
28272let accessSize = HVXVectorAccess;
28273let isNVStore = 1;
28274let CVINew = 1;
28275let isNewValue = 1;
28276let mayStore = 1;
28277let BaseOpcode = "V6_vS32b_ai";
28278let DecoderNamespace = "EXT_mmvec";
28279let opNewValue = 3;
28280}
28281def V6_vS32b_new_pred_pi : HInst<
28282(outs IntRegs:$Rx32),
28283(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28284"if ($Pv4) vmem($Rx32++#$Ii) = $Os8.new",
28285tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28286let Inst{7-3} = 0b01000;
28287let Inst{13-13} = 0b0;
28288let Inst{31-21} = 0b00101001101;
28289let isPredicated = 1;
28290let addrMode = PostInc;
28291let accessSize = HVXVectorAccess;
28292let isNVStore = 1;
28293let CVINew = 1;
28294let isNewValue = 1;
28295let mayStore = 1;
28296let BaseOpcode = "V6_vS32b_pi";
28297let DecoderNamespace = "EXT_mmvec";
28298let opNewValue = 4;
28299let Constraints = "$Rx32 = $Rx32in";
28300}
28301def V6_vS32b_new_pred_ppu : HInst<
28302(outs IntRegs:$Rx32),
28303(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28304"if ($Pv4) vmem($Rx32++$Mu2) = $Os8.new",
28305tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28306let Inst{10-3} = 0b00001000;
28307let Inst{31-21} = 0b00101011101;
28308let isPredicated = 1;
28309let addrMode = PostInc;
28310let accessSize = HVXVectorAccess;
28311let isNVStore = 1;
28312let CVINew = 1;
28313let isNewValue = 1;
28314let mayStore = 1;
28315let BaseOpcode = "V6_vS32b_ppu";
28316let DecoderNamespace = "EXT_mmvec";
28317let opNewValue = 4;
28318let Constraints = "$Rx32 = $Rx32in";
28319}
28320def V6_vS32b_npred_ai : HInst<
28321(outs),
28322(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28323"if (!$Pv4) vmem($Rt32+#$Ii) = $Vs32",
28324tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28325let Inst{7-5} = 0b001;
28326let Inst{31-21} = 0b00101000101;
28327let isPredicated = 1;
28328let isPredicatedFalse = 1;
28329let addrMode = BaseImmOffset;
28330let accessSize = HVXVectorAccess;
28331let mayStore = 1;
28332let BaseOpcode = "V6_vS32b_ai";
28333let isNVStorable = 1;
28334let DecoderNamespace = "EXT_mmvec";
28335}
28336def V6_vS32b_npred_pi : HInst<
28337(outs IntRegs:$Rx32),
28338(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28339"if (!$Pv4) vmem($Rx32++#$Ii) = $Vs32",
28340tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28341let Inst{7-5} = 0b001;
28342let Inst{13-13} = 0b0;
28343let Inst{31-21} = 0b00101001101;
28344let isPredicated = 1;
28345let isPredicatedFalse = 1;
28346let addrMode = PostInc;
28347let accessSize = HVXVectorAccess;
28348let mayStore = 1;
28349let BaseOpcode = "V6_vS32b_pi";
28350let isNVStorable = 1;
28351let DecoderNamespace = "EXT_mmvec";
28352let Constraints = "$Rx32 = $Rx32in";
28353}
28354def V6_vS32b_npred_ppu : HInst<
28355(outs IntRegs:$Rx32),
28356(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28357"if (!$Pv4) vmem($Rx32++$Mu2) = $Vs32",
28358tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28359let Inst{10-5} = 0b000001;
28360let Inst{31-21} = 0b00101011101;
28361let isPredicated = 1;
28362let isPredicatedFalse = 1;
28363let addrMode = PostInc;
28364let accessSize = HVXVectorAccess;
28365let mayStore = 1;
28366let BaseOpcode = "V6_vS32b_ppu";
28367let isNVStorable = 1;
28368let DecoderNamespace = "EXT_mmvec";
28369let Constraints = "$Rx32 = $Rx32in";
28370}
28371def V6_vS32b_nqpred_ai : HInst<
28372(outs),
28373(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28374"if (!$Qv4) vmem($Rt32+#$Ii) = $Vs32",
28375tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28376let Inst{7-5} = 0b001;
28377let Inst{31-21} = 0b00101000100;
28378let addrMode = BaseImmOffset;
28379let accessSize = HVXVectorAccess;
28380let mayStore = 1;
28381let DecoderNamespace = "EXT_mmvec";
28382}
28383def V6_vS32b_nqpred_pi : HInst<
28384(outs IntRegs:$Rx32),
28385(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28386"if (!$Qv4) vmem($Rx32++#$Ii) = $Vs32",
28387tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28388let Inst{7-5} = 0b001;
28389let Inst{13-13} = 0b0;
28390let Inst{31-21} = 0b00101001100;
28391let addrMode = PostInc;
28392let accessSize = HVXVectorAccess;
28393let mayStore = 1;
28394let DecoderNamespace = "EXT_mmvec";
28395let Constraints = "$Rx32 = $Rx32in";
28396}
28397def V6_vS32b_nqpred_ppu : HInst<
28398(outs IntRegs:$Rx32),
28399(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28400"if (!$Qv4) vmem($Rx32++$Mu2) = $Vs32",
28401tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28402let Inst{10-5} = 0b000001;
28403let Inst{31-21} = 0b00101011100;
28404let addrMode = PostInc;
28405let accessSize = HVXVectorAccess;
28406let mayStore = 1;
28407let DecoderNamespace = "EXT_mmvec";
28408let Constraints = "$Rx32 = $Rx32in";
28409}
28410def V6_vS32b_nt_ai : HInst<
28411(outs),
28412(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28413"vmem($Rt32+#$Ii):nt = $Vs32",
28414tc_c5dba46e, TypeCVI_VM_ST>, Enc_c9e3bc, Requires<[UseHVXV60]>, NewValueRel {
28415let Inst{7-5} = 0b000;
28416let Inst{12-11} = 0b00;
28417let Inst{31-21} = 0b00101000011;
28418let addrMode = BaseImmOffset;
28419let accessSize = HVXVectorAccess;
28420let isNonTemporal = 1;
28421let mayStore = 1;
28422let BaseOpcode = "V6_vS32b_ai";
28423let isNVStorable = 1;
28424let isPredicable = 1;
28425let DecoderNamespace = "EXT_mmvec";
28426}
28427def V6_vS32b_nt_new_ai : HInst<
28428(outs),
28429(ins IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28430"vmem($Rt32+#$Ii):nt = $Os8.new",
28431tc_ab23f776, TypeCVI_VM_NEW_ST>, Enc_f77fbc, Requires<[UseHVXV60]>, NewValueRel {
28432let Inst{7-3} = 0b00100;
28433let Inst{12-11} = 0b00;
28434let Inst{31-21} = 0b00101000011;
28435let addrMode = BaseImmOffset;
28436let accessSize = HVXVectorAccess;
28437let isNVStore = 1;
28438let CVINew = 1;
28439let isNewValue = 1;
28440let isNonTemporal = 1;
28441let mayStore = 1;
28442let BaseOpcode = "V6_vS32b_ai";
28443let isPredicable = 1;
28444let DecoderNamespace = "EXT_mmvec";
28445let opNewValue = 2;
28446}
28447def V6_vS32b_nt_new_npred_ai : HInst<
28448(outs),
28449(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28450"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
28451tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28452let Inst{7-3} = 0b01111;
28453let Inst{31-21} = 0b00101000111;
28454let isPredicated = 1;
28455let isPredicatedFalse = 1;
28456let addrMode = BaseImmOffset;
28457let accessSize = HVXVectorAccess;
28458let isNVStore = 1;
28459let CVINew = 1;
28460let isNewValue = 1;
28461let isNonTemporal = 1;
28462let mayStore = 1;
28463let BaseOpcode = "V6_vS32b_ai";
28464let DecoderNamespace = "EXT_mmvec";
28465let opNewValue = 3;
28466}
28467def V6_vS32b_nt_new_npred_pi : HInst<
28468(outs IntRegs:$Rx32),
28469(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28470"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
28471tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28472let Inst{7-3} = 0b01111;
28473let Inst{13-13} = 0b0;
28474let Inst{31-21} = 0b00101001111;
28475let isPredicated = 1;
28476let isPredicatedFalse = 1;
28477let addrMode = PostInc;
28478let accessSize = HVXVectorAccess;
28479let isNVStore = 1;
28480let CVINew = 1;
28481let isNewValue = 1;
28482let isNonTemporal = 1;
28483let mayStore = 1;
28484let BaseOpcode = "V6_vS32b_pi";
28485let DecoderNamespace = "EXT_mmvec";
28486let opNewValue = 4;
28487let Constraints = "$Rx32 = $Rx32in";
28488}
28489def V6_vS32b_nt_new_npred_ppu : HInst<
28490(outs IntRegs:$Rx32),
28491(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28492"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
28493tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28494let Inst{10-3} = 0b00001111;
28495let Inst{31-21} = 0b00101011111;
28496let isPredicated = 1;
28497let isPredicatedFalse = 1;
28498let addrMode = PostInc;
28499let accessSize = HVXVectorAccess;
28500let isNVStore = 1;
28501let CVINew = 1;
28502let isNewValue = 1;
28503let isNonTemporal = 1;
28504let mayStore = 1;
28505let BaseOpcode = "V6_vS32b_ppu";
28506let DecoderNamespace = "EXT_mmvec";
28507let opNewValue = 4;
28508let Constraints = "$Rx32 = $Rx32in";
28509}
28510def V6_vS32b_nt_new_pi : HInst<
28511(outs IntRegs:$Rx32),
28512(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28513"vmem($Rx32++#$Ii):nt = $Os8.new",
28514tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_1aaec1, Requires<[UseHVXV60]>, NewValueRel {
28515let Inst{7-3} = 0b00100;
28516let Inst{13-11} = 0b000;
28517let Inst{31-21} = 0b00101001011;
28518let addrMode = PostInc;
28519let accessSize = HVXVectorAccess;
28520let isNVStore = 1;
28521let CVINew = 1;
28522let isNewValue = 1;
28523let isNonTemporal = 1;
28524let mayStore = 1;
28525let BaseOpcode = "V6_vS32b_pi";
28526let isPredicable = 1;
28527let DecoderNamespace = "EXT_mmvec";
28528let opNewValue = 3;
28529let Constraints = "$Rx32 = $Rx32in";
28530}
28531def V6_vS32b_nt_new_ppu : HInst<
28532(outs IntRegs:$Rx32),
28533(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28534"vmem($Rx32++$Mu2):nt = $Os8.new",
28535tc_6942b6e0, TypeCVI_VM_NEW_ST>, Enc_cf1927, Requires<[UseHVXV60]>, NewValueRel {
28536let Inst{12-3} = 0b0000000100;
28537let Inst{31-21} = 0b00101011011;
28538let addrMode = PostInc;
28539let accessSize = HVXVectorAccess;
28540let isNVStore = 1;
28541let CVINew = 1;
28542let isNewValue = 1;
28543let isNonTemporal = 1;
28544let mayStore = 1;
28545let BaseOpcode = "V6_vS32b_ppu";
28546let isPredicable = 1;
28547let DecoderNamespace = "EXT_mmvec";
28548let opNewValue = 3;
28549let Constraints = "$Rx32 = $Rx32in";
28550}
28551def V6_vS32b_nt_new_pred_ai : HInst<
28552(outs),
28553(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Os8),
28554"if ($Pv4) vmem($Rt32+#$Ii):nt = $Os8.new",
28555tc_7177e272, TypeCVI_VM_NEW_ST>, Enc_f7430e, Requires<[UseHVXV60]>, NewValueRel {
28556let Inst{7-3} = 0b01010;
28557let Inst{31-21} = 0b00101000111;
28558let isPredicated = 1;
28559let addrMode = BaseImmOffset;
28560let accessSize = HVXVectorAccess;
28561let isNVStore = 1;
28562let CVINew = 1;
28563let isNewValue = 1;
28564let isNonTemporal = 1;
28565let mayStore = 1;
28566let BaseOpcode = "V6_vS32b_ai";
28567let DecoderNamespace = "EXT_mmvec";
28568let opNewValue = 3;
28569}
28570def V6_vS32b_nt_new_pred_pi : HInst<
28571(outs IntRegs:$Rx32),
28572(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Os8),
28573"if ($Pv4) vmem($Rx32++#$Ii):nt = $Os8.new",
28574tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_784502, Requires<[UseHVXV60]>, NewValueRel {
28575let Inst{7-3} = 0b01010;
28576let Inst{13-13} = 0b0;
28577let Inst{31-21} = 0b00101001111;
28578let isPredicated = 1;
28579let addrMode = PostInc;
28580let accessSize = HVXVectorAccess;
28581let isNVStore = 1;
28582let CVINew = 1;
28583let isNewValue = 1;
28584let isNonTemporal = 1;
28585let mayStore = 1;
28586let BaseOpcode = "V6_vS32b_pi";
28587let DecoderNamespace = "EXT_mmvec";
28588let opNewValue = 4;
28589let Constraints = "$Rx32 = $Rx32in";
28590}
28591def V6_vS32b_nt_new_pred_ppu : HInst<
28592(outs IntRegs:$Rx32),
28593(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Os8),
28594"if ($Pv4) vmem($Rx32++$Mu2):nt = $Os8.new",
28595tc_e99d4c2e, TypeCVI_VM_NEW_ST>, Enc_372c9d, Requires<[UseHVXV60]>, NewValueRel {
28596let Inst{10-3} = 0b00001010;
28597let Inst{31-21} = 0b00101011111;
28598let isPredicated = 1;
28599let addrMode = PostInc;
28600let accessSize = HVXVectorAccess;
28601let isNVStore = 1;
28602let CVINew = 1;
28603let isNewValue = 1;
28604let isNonTemporal = 1;
28605let mayStore = 1;
28606let BaseOpcode = "V6_vS32b_ppu";
28607let DecoderNamespace = "EXT_mmvec";
28608let opNewValue = 4;
28609let Constraints = "$Rx32 = $Rx32in";
28610}
28611def V6_vS32b_nt_npred_ai : HInst<
28612(outs),
28613(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28614"if (!$Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
28615tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28616let Inst{7-5} = 0b001;
28617let Inst{31-21} = 0b00101000111;
28618let isPredicated = 1;
28619let isPredicatedFalse = 1;
28620let addrMode = BaseImmOffset;
28621let accessSize = HVXVectorAccess;
28622let isNonTemporal = 1;
28623let mayStore = 1;
28624let BaseOpcode = "V6_vS32b_ai";
28625let isNVStorable = 1;
28626let DecoderNamespace = "EXT_mmvec";
28627}
28628def V6_vS32b_nt_npred_pi : HInst<
28629(outs IntRegs:$Rx32),
28630(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28631"if (!$Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
28632tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28633let Inst{7-5} = 0b001;
28634let Inst{13-13} = 0b0;
28635let Inst{31-21} = 0b00101001111;
28636let isPredicated = 1;
28637let isPredicatedFalse = 1;
28638let addrMode = PostInc;
28639let accessSize = HVXVectorAccess;
28640let isNonTemporal = 1;
28641let mayStore = 1;
28642let BaseOpcode = "V6_vS32b_pi";
28643let isNVStorable = 1;
28644let DecoderNamespace = "EXT_mmvec";
28645let Constraints = "$Rx32 = $Rx32in";
28646}
28647def V6_vS32b_nt_npred_ppu : HInst<
28648(outs IntRegs:$Rx32),
28649(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28650"if (!$Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
28651tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28652let Inst{10-5} = 0b000001;
28653let Inst{31-21} = 0b00101011111;
28654let isPredicated = 1;
28655let isPredicatedFalse = 1;
28656let addrMode = PostInc;
28657let accessSize = HVXVectorAccess;
28658let isNonTemporal = 1;
28659let mayStore = 1;
28660let BaseOpcode = "V6_vS32b_ppu";
28661let isNVStorable = 1;
28662let DecoderNamespace = "EXT_mmvec";
28663let Constraints = "$Rx32 = $Rx32in";
28664}
28665def V6_vS32b_nt_nqpred_ai : HInst<
28666(outs),
28667(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28668"if (!$Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
28669tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28670let Inst{7-5} = 0b001;
28671let Inst{31-21} = 0b00101000110;
28672let addrMode = BaseImmOffset;
28673let accessSize = HVXVectorAccess;
28674let isNonTemporal = 1;
28675let mayStore = 1;
28676let DecoderNamespace = "EXT_mmvec";
28677}
28678def V6_vS32b_nt_nqpred_pi : HInst<
28679(outs IntRegs:$Rx32),
28680(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28681"if (!$Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
28682tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28683let Inst{7-5} = 0b001;
28684let Inst{13-13} = 0b0;
28685let Inst{31-21} = 0b00101001110;
28686let addrMode = PostInc;
28687let accessSize = HVXVectorAccess;
28688let isNonTemporal = 1;
28689let mayStore = 1;
28690let DecoderNamespace = "EXT_mmvec";
28691let Constraints = "$Rx32 = $Rx32in";
28692}
28693def V6_vS32b_nt_nqpred_ppu : HInst<
28694(outs IntRegs:$Rx32),
28695(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28696"if (!$Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
28697tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28698let Inst{10-5} = 0b000001;
28699let Inst{31-21} = 0b00101011110;
28700let addrMode = PostInc;
28701let accessSize = HVXVectorAccess;
28702let isNonTemporal = 1;
28703let mayStore = 1;
28704let DecoderNamespace = "EXT_mmvec";
28705let Constraints = "$Rx32 = $Rx32in";
28706}
28707def V6_vS32b_nt_pi : HInst<
28708(outs IntRegs:$Rx32),
28709(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28710"vmem($Rx32++#$Ii):nt = $Vs32",
28711tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28712let Inst{7-5} = 0b000;
28713let Inst{13-11} = 0b000;
28714let Inst{31-21} = 0b00101001011;
28715let addrMode = PostInc;
28716let accessSize = HVXVectorAccess;
28717let isNonTemporal = 1;
28718let mayStore = 1;
28719let BaseOpcode = "V6_vS32b_pi";
28720let isNVStorable = 1;
28721let isPredicable = 1;
28722let DecoderNamespace = "EXT_mmvec";
28723let Constraints = "$Rx32 = $Rx32in";
28724}
28725def V6_vS32b_nt_ppu : HInst<
28726(outs IntRegs:$Rx32),
28727(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28728"vmem($Rx32++$Mu2):nt = $Vs32",
28729tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28730let Inst{12-5} = 0b00000000;
28731let Inst{31-21} = 0b00101011011;
28732let addrMode = PostInc;
28733let accessSize = HVXVectorAccess;
28734let isNonTemporal = 1;
28735let mayStore = 1;
28736let BaseOpcode = "V6_vS32b_ppu";
28737let isNVStorable = 1;
28738let isPredicable = 1;
28739let DecoderNamespace = "EXT_mmvec";
28740let Constraints = "$Rx32 = $Rx32in";
28741}
28742def V6_vS32b_nt_pred_ai : HInst<
28743(outs),
28744(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28745"if ($Pv4) vmem($Rt32+#$Ii):nt = $Vs32",
28746tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28747let Inst{7-5} = 0b000;
28748let Inst{31-21} = 0b00101000111;
28749let isPredicated = 1;
28750let addrMode = BaseImmOffset;
28751let accessSize = HVXVectorAccess;
28752let isNonTemporal = 1;
28753let mayStore = 1;
28754let BaseOpcode = "V6_vS32b_ai";
28755let isNVStorable = 1;
28756let DecoderNamespace = "EXT_mmvec";
28757}
28758def V6_vS32b_nt_pred_pi : HInst<
28759(outs IntRegs:$Rx32),
28760(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28761"if ($Pv4) vmem($Rx32++#$Ii):nt = $Vs32",
28762tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28763let Inst{7-5} = 0b000;
28764let Inst{13-13} = 0b0;
28765let Inst{31-21} = 0b00101001111;
28766let isPredicated = 1;
28767let addrMode = PostInc;
28768let accessSize = HVXVectorAccess;
28769let isNonTemporal = 1;
28770let mayStore = 1;
28771let BaseOpcode = "V6_vS32b_pi";
28772let isNVStorable = 1;
28773let DecoderNamespace = "EXT_mmvec";
28774let Constraints = "$Rx32 = $Rx32in";
28775}
28776def V6_vS32b_nt_pred_ppu : HInst<
28777(outs IntRegs:$Rx32),
28778(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28779"if ($Pv4) vmem($Rx32++$Mu2):nt = $Vs32",
28780tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28781let Inst{10-5} = 0b000000;
28782let Inst{31-21} = 0b00101011111;
28783let isPredicated = 1;
28784let addrMode = PostInc;
28785let accessSize = HVXVectorAccess;
28786let isNonTemporal = 1;
28787let mayStore = 1;
28788let BaseOpcode = "V6_vS32b_ppu";
28789let isNVStorable = 1;
28790let DecoderNamespace = "EXT_mmvec";
28791let Constraints = "$Rx32 = $Rx32in";
28792}
28793def V6_vS32b_nt_qpred_ai : HInst<
28794(outs),
28795(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28796"if ($Qv4) vmem($Rt32+#$Ii):nt = $Vs32",
28797tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28798let Inst{7-5} = 0b000;
28799let Inst{31-21} = 0b00101000110;
28800let addrMode = BaseImmOffset;
28801let accessSize = HVXVectorAccess;
28802let isNonTemporal = 1;
28803let mayStore = 1;
28804let DecoderNamespace = "EXT_mmvec";
28805}
28806def V6_vS32b_nt_qpred_pi : HInst<
28807(outs IntRegs:$Rx32),
28808(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28809"if ($Qv4) vmem($Rx32++#$Ii):nt = $Vs32",
28810tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28811let Inst{7-5} = 0b000;
28812let Inst{13-13} = 0b0;
28813let Inst{31-21} = 0b00101001110;
28814let addrMode = PostInc;
28815let accessSize = HVXVectorAccess;
28816let isNonTemporal = 1;
28817let mayStore = 1;
28818let DecoderNamespace = "EXT_mmvec";
28819let Constraints = "$Rx32 = $Rx32in";
28820}
28821def V6_vS32b_nt_qpred_ppu : HInst<
28822(outs IntRegs:$Rx32),
28823(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28824"if ($Qv4) vmem($Rx32++$Mu2):nt = $Vs32",
28825tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28826let Inst{10-5} = 0b000000;
28827let Inst{31-21} = 0b00101011110;
28828let addrMode = PostInc;
28829let accessSize = HVXVectorAccess;
28830let isNonTemporal = 1;
28831let mayStore = 1;
28832let DecoderNamespace = "EXT_mmvec";
28833let Constraints = "$Rx32 = $Rx32in";
28834}
28835def V6_vS32b_pi : HInst<
28836(outs IntRegs:$Rx32),
28837(ins IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28838"vmem($Rx32++#$Ii) = $Vs32",
28839tc_3e2aaafc, TypeCVI_VM_ST>, Enc_b62ef7, Requires<[UseHVXV60]>, NewValueRel {
28840let Inst{7-5} = 0b000;
28841let Inst{13-11} = 0b000;
28842let Inst{31-21} = 0b00101001001;
28843let addrMode = PostInc;
28844let accessSize = HVXVectorAccess;
28845let mayStore = 1;
28846let BaseOpcode = "V6_vS32b_pi";
28847let isNVStorable = 1;
28848let isPredicable = 1;
28849let DecoderNamespace = "EXT_mmvec";
28850let Constraints = "$Rx32 = $Rx32in";
28851}
28852def V6_vS32b_ppu : HInst<
28853(outs IntRegs:$Rx32),
28854(ins IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28855"vmem($Rx32++$Mu2) = $Vs32",
28856tc_3e2aaafc, TypeCVI_VM_ST>, Enc_d15d19, Requires<[UseHVXV60]>, NewValueRel {
28857let Inst{12-5} = 0b00000000;
28858let Inst{31-21} = 0b00101011001;
28859let addrMode = PostInc;
28860let accessSize = HVXVectorAccess;
28861let mayStore = 1;
28862let isNVStorable = 1;
28863let isPredicable = 1;
28864let DecoderNamespace = "EXT_mmvec";
28865let Constraints = "$Rx32 = $Rx32in";
28866}
28867def V6_vS32b_pred_ai : HInst<
28868(outs),
28869(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28870"if ($Pv4) vmem($Rt32+#$Ii) = $Vs32",
28871tc_a02a10a8, TypeCVI_VM_ST>, Enc_27b757, Requires<[UseHVXV60]>, NewValueRel {
28872let Inst{7-5} = 0b000;
28873let Inst{31-21} = 0b00101000101;
28874let isPredicated = 1;
28875let addrMode = BaseImmOffset;
28876let accessSize = HVXVectorAccess;
28877let mayStore = 1;
28878let BaseOpcode = "V6_vS32b_ai";
28879let isNVStorable = 1;
28880let DecoderNamespace = "EXT_mmvec";
28881}
28882def V6_vS32b_pred_pi : HInst<
28883(outs IntRegs:$Rx32),
28884(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28885"if ($Pv4) vmem($Rx32++#$Ii) = $Vs32",
28886tc_54a0dc47, TypeCVI_VM_ST>, Enc_865390, Requires<[UseHVXV60]>, NewValueRel {
28887let Inst{7-5} = 0b000;
28888let Inst{13-13} = 0b0;
28889let Inst{31-21} = 0b00101001101;
28890let isPredicated = 1;
28891let addrMode = PostInc;
28892let accessSize = HVXVectorAccess;
28893let mayStore = 1;
28894let BaseOpcode = "V6_vS32b_pi";
28895let isNVStorable = 1;
28896let DecoderNamespace = "EXT_mmvec";
28897let Constraints = "$Rx32 = $Rx32in";
28898}
28899def V6_vS32b_pred_ppu : HInst<
28900(outs IntRegs:$Rx32),
28901(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28902"if ($Pv4) vmem($Rx32++$Mu2) = $Vs32",
28903tc_54a0dc47, TypeCVI_VM_ST>, Enc_1ef990, Requires<[UseHVXV60]>, NewValueRel {
28904let Inst{10-5} = 0b000000;
28905let Inst{31-21} = 0b00101011101;
28906let isPredicated = 1;
28907let addrMode = PostInc;
28908let accessSize = HVXVectorAccess;
28909let mayStore = 1;
28910let BaseOpcode = "V6_vS32b_ppu";
28911let isNVStorable = 1;
28912let DecoderNamespace = "EXT_mmvec";
28913let Constraints = "$Rx32 = $Rx32in";
28914}
28915def V6_vS32b_qpred_ai : HInst<
28916(outs),
28917(ins HvxQR:$Qv4, IntRegs:$Rt32, s4_0Imm:$Ii, HvxVR:$Vs32),
28918"if ($Qv4) vmem($Rt32+#$Ii) = $Vs32",
28919tc_447d9895, TypeCVI_VM_ST>, Enc_2ea740, Requires<[UseHVXV60]> {
28920let Inst{7-5} = 0b000;
28921let Inst{31-21} = 0b00101000100;
28922let addrMode = BaseImmOffset;
28923let accessSize = HVXVectorAccess;
28924let mayStore = 1;
28925let DecoderNamespace = "EXT_mmvec";
28926}
28927def V6_vS32b_qpred_pi : HInst<
28928(outs IntRegs:$Rx32),
28929(ins HvxQR:$Qv4, IntRegs:$Rx32in, s3_0Imm:$Ii, HvxVR:$Vs32),
28930"if ($Qv4) vmem($Rx32++#$Ii) = $Vs32",
28931tc_191381c1, TypeCVI_VM_ST>, Enc_0b51ce, Requires<[UseHVXV60]> {
28932let Inst{7-5} = 0b000;
28933let Inst{13-13} = 0b0;
28934let Inst{31-21} = 0b00101001100;
28935let addrMode = PostInc;
28936let accessSize = HVXVectorAccess;
28937let mayStore = 1;
28938let DecoderNamespace = "EXT_mmvec";
28939let Constraints = "$Rx32 = $Rx32in";
28940}
28941def V6_vS32b_qpred_ppu : HInst<
28942(outs IntRegs:$Rx32),
28943(ins HvxQR:$Qv4, IntRegs:$Rx32in, ModRegs:$Mu2, HvxVR:$Vs32),
28944"if ($Qv4) vmem($Rx32++$Mu2) = $Vs32",
28945tc_191381c1, TypeCVI_VM_ST>, Enc_4dff07, Requires<[UseHVXV60]> {
28946let Inst{10-5} = 0b000000;
28947let Inst{31-21} = 0b00101011100;
28948let addrMode = PostInc;
28949let accessSize = HVXVectorAccess;
28950let mayStore = 1;
28951let DecoderNamespace = "EXT_mmvec";
28952let Constraints = "$Rx32 = $Rx32in";
28953}
28954def V6_vS32b_srls_ai : HInst<
28955(outs),
28956(ins IntRegs:$Rt32, s4_0Imm:$Ii),
28957"vmem($Rt32+#$Ii):scatter_release",
28958tc_3ce09744, TypeCVI_SCATTER_NEW_RST>, Enc_ff3442, Requires<[UseHVXV65]> {
28959let Inst{7-0} = 0b00101000;
28960let Inst{12-11} = 0b00;
28961let Inst{31-21} = 0b00101000001;
28962let addrMode = BaseImmOffset;
28963let accessSize = HVXVectorAccess;
28964let CVINew = 1;
28965let mayStore = 1;
28966let DecoderNamespace = "EXT_mmvec";
28967}
28968def V6_vS32b_srls_pi : HInst<
28969(outs IntRegs:$Rx32),
28970(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
28971"vmem($Rx32++#$Ii):scatter_release",
28972tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_6c9ee0, Requires<[UseHVXV65]> {
28973let Inst{7-0} = 0b00101000;
28974let Inst{13-11} = 0b000;
28975let Inst{31-21} = 0b00101001001;
28976let addrMode = PostInc;
28977let accessSize = HVXVectorAccess;
28978let CVINew = 1;
28979let mayStore = 1;
28980let DecoderNamespace = "EXT_mmvec";
28981let Constraints = "$Rx32 = $Rx32in";
28982}
28983def V6_vS32b_srls_ppu : HInst<
28984(outs IntRegs:$Rx32),
28985(ins IntRegs:$Rx32in, ModRegs:$Mu2),
28986"vmem($Rx32++$Mu2):scatter_release",
28987tc_20a4bbec, TypeCVI_SCATTER_NEW_RST>, Enc_44661f, Requires<[UseHVXV65]> {
28988let Inst{12-0} = 0b0000000101000;
28989let Inst{31-21} = 0b00101011001;
28990let addrMode = PostInc;
28991let accessSize = HVXVectorAccess;
28992let CVINew = 1;
28993let mayStore = 1;
28994let DecoderNamespace = "EXT_mmvec";
28995let Constraints = "$Rx32 = $Rx32in";
28996}
28997def V6_vabsb : HInst<
28998(outs HvxVR:$Vd32),
28999(ins HvxVR:$Vu32),
29000"$Vd32.b = vabs($Vu32.b)",
29001tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29002let Inst{7-5} = 0b100;
29003let Inst{13-13} = 0b0;
29004let Inst{31-16} = 0b0001111000000001;
29005let hasNewValue = 1;
29006let opNewValue = 0;
29007let DecoderNamespace = "EXT_mmvec";
29008}
29009def V6_vabsb_alt : HInst<
29010(outs HvxVR:$Vd32),
29011(ins HvxVR:$Vu32),
29012"$Vd32 = vabsb($Vu32)",
29013PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29014let hasNewValue = 1;
29015let opNewValue = 0;
29016let isPseudo = 1;
29017let isCodeGenOnly = 1;
29018let DecoderNamespace = "EXT_mmvec";
29019}
29020def V6_vabsb_sat : HInst<
29021(outs HvxVR:$Vd32),
29022(ins HvxVR:$Vu32),
29023"$Vd32.b = vabs($Vu32.b):sat",
29024tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV65]> {
29025let Inst{7-5} = 0b101;
29026let Inst{13-13} = 0b0;
29027let Inst{31-16} = 0b0001111000000001;
29028let hasNewValue = 1;
29029let opNewValue = 0;
29030let DecoderNamespace = "EXT_mmvec";
29031}
29032def V6_vabsb_sat_alt : HInst<
29033(outs HvxVR:$Vd32),
29034(ins HvxVR:$Vu32),
29035"$Vd32 = vabsb($Vu32):sat",
29036PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
29037let hasNewValue = 1;
29038let opNewValue = 0;
29039let isPseudo = 1;
29040let isCodeGenOnly = 1;
29041let DecoderNamespace = "EXT_mmvec";
29042}
29043def V6_vabsdiffh : HInst<
29044(outs HvxVR:$Vd32),
29045(ins HvxVR:$Vu32, HvxVR:$Vv32),
29046"$Vd32.uh = vabsdiff($Vu32.h,$Vv32.h)",
29047tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29048let Inst{7-5} = 0b001;
29049let Inst{13-13} = 0b0;
29050let Inst{31-21} = 0b00011100110;
29051let hasNewValue = 1;
29052let opNewValue = 0;
29053let DecoderNamespace = "EXT_mmvec";
29054}
29055def V6_vabsdiffh_alt : HInst<
29056(outs HvxVR:$Vd32),
29057(ins HvxVR:$Vu32, HvxVR:$Vv32),
29058"$Vd32 = vabsdiffh($Vu32,$Vv32)",
29059PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29060let hasNewValue = 1;
29061let opNewValue = 0;
29062let isPseudo = 1;
29063let isCodeGenOnly = 1;
29064let DecoderNamespace = "EXT_mmvec";
29065}
29066def V6_vabsdiffub : HInst<
29067(outs HvxVR:$Vd32),
29068(ins HvxVR:$Vu32, HvxVR:$Vv32),
29069"$Vd32.ub = vabsdiff($Vu32.ub,$Vv32.ub)",
29070tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29071let Inst{7-5} = 0b000;
29072let Inst{13-13} = 0b0;
29073let Inst{31-21} = 0b00011100110;
29074let hasNewValue = 1;
29075let opNewValue = 0;
29076let DecoderNamespace = "EXT_mmvec";
29077}
29078def V6_vabsdiffub_alt : HInst<
29079(outs HvxVR:$Vd32),
29080(ins HvxVR:$Vu32, HvxVR:$Vv32),
29081"$Vd32 = vabsdiffub($Vu32,$Vv32)",
29082PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29083let hasNewValue = 1;
29084let opNewValue = 0;
29085let isPseudo = 1;
29086let isCodeGenOnly = 1;
29087let DecoderNamespace = "EXT_mmvec";
29088}
29089def V6_vabsdiffuh : HInst<
29090(outs HvxVR:$Vd32),
29091(ins HvxVR:$Vu32, HvxVR:$Vv32),
29092"$Vd32.uh = vabsdiff($Vu32.uh,$Vv32.uh)",
29093tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29094let Inst{7-5} = 0b010;
29095let Inst{13-13} = 0b0;
29096let Inst{31-21} = 0b00011100110;
29097let hasNewValue = 1;
29098let opNewValue = 0;
29099let DecoderNamespace = "EXT_mmvec";
29100}
29101def V6_vabsdiffuh_alt : HInst<
29102(outs HvxVR:$Vd32),
29103(ins HvxVR:$Vu32, HvxVR:$Vv32),
29104"$Vd32 = vabsdiffuh($Vu32,$Vv32)",
29105PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29106let hasNewValue = 1;
29107let opNewValue = 0;
29108let isPseudo = 1;
29109let isCodeGenOnly = 1;
29110let DecoderNamespace = "EXT_mmvec";
29111}
29112def V6_vabsdiffw : HInst<
29113(outs HvxVR:$Vd32),
29114(ins HvxVR:$Vu32, HvxVR:$Vv32),
29115"$Vd32.uw = vabsdiff($Vu32.w,$Vv32.w)",
29116tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
29117let Inst{7-5} = 0b011;
29118let Inst{13-13} = 0b0;
29119let Inst{31-21} = 0b00011100110;
29120let hasNewValue = 1;
29121let opNewValue = 0;
29122let DecoderNamespace = "EXT_mmvec";
29123}
29124def V6_vabsdiffw_alt : HInst<
29125(outs HvxVR:$Vd32),
29126(ins HvxVR:$Vu32, HvxVR:$Vv32),
29127"$Vd32 = vabsdiffw($Vu32,$Vv32)",
29128PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29129let hasNewValue = 1;
29130let opNewValue = 0;
29131let isPseudo = 1;
29132let isCodeGenOnly = 1;
29133let DecoderNamespace = "EXT_mmvec";
29134}
29135def V6_vabsh : HInst<
29136(outs HvxVR:$Vd32),
29137(ins HvxVR:$Vu32),
29138"$Vd32.h = vabs($Vu32.h)",
29139tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29140let Inst{7-5} = 0b000;
29141let Inst{13-13} = 0b0;
29142let Inst{31-16} = 0b0001111000000000;
29143let hasNewValue = 1;
29144let opNewValue = 0;
29145let DecoderNamespace = "EXT_mmvec";
29146}
29147def V6_vabsh_alt : HInst<
29148(outs HvxVR:$Vd32),
29149(ins HvxVR:$Vu32),
29150"$Vd32 = vabsh($Vu32)",
29151PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29152let hasNewValue = 1;
29153let opNewValue = 0;
29154let isPseudo = 1;
29155let isCodeGenOnly = 1;
29156let DecoderNamespace = "EXT_mmvec";
29157}
29158def V6_vabsh_sat : HInst<
29159(outs HvxVR:$Vd32),
29160(ins HvxVR:$Vu32),
29161"$Vd32.h = vabs($Vu32.h):sat",
29162tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29163let Inst{7-5} = 0b001;
29164let Inst{13-13} = 0b0;
29165let Inst{31-16} = 0b0001111000000000;
29166let hasNewValue = 1;
29167let opNewValue = 0;
29168let DecoderNamespace = "EXT_mmvec";
29169}
29170def V6_vabsh_sat_alt : HInst<
29171(outs HvxVR:$Vd32),
29172(ins HvxVR:$Vu32),
29173"$Vd32 = vabsh($Vu32):sat",
29174PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29175let hasNewValue = 1;
29176let opNewValue = 0;
29177let isPseudo = 1;
29178let isCodeGenOnly = 1;
29179let DecoderNamespace = "EXT_mmvec";
29180}
29181def V6_vabsub_alt : HInst<
29182(outs HvxVR:$Vd32),
29183(ins HvxVR:$Vu32),
29184"$Vd32.ub = vabs($Vu32.b)",
29185tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29186let hasNewValue = 1;
29187let opNewValue = 0;
29188let isPseudo = 1;
29189let isCodeGenOnly = 1;
29190let DecoderNamespace = "EXT_mmvec";
29191}
29192def V6_vabsuh_alt : HInst<
29193(outs HvxVR:$Vd32),
29194(ins HvxVR:$Vu32),
29195"$Vd32.uh = vabs($Vu32.h)",
29196tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29197let hasNewValue = 1;
29198let opNewValue = 0;
29199let isPseudo = 1;
29200let isCodeGenOnly = 1;
29201let DecoderNamespace = "EXT_mmvec";
29202}
29203def V6_vabsuw_alt : HInst<
29204(outs HvxVR:$Vd32),
29205(ins HvxVR:$Vu32),
29206"$Vd32.uw = vabs($Vu32.w)",
29207tc_0ec46cf9, TypeMAPPING>, Requires<[UseHVXV65]> {
29208let hasNewValue = 1;
29209let opNewValue = 0;
29210let isPseudo = 1;
29211let isCodeGenOnly = 1;
29212let DecoderNamespace = "EXT_mmvec";
29213}
29214def V6_vabsw : HInst<
29215(outs HvxVR:$Vd32),
29216(ins HvxVR:$Vu32),
29217"$Vd32.w = vabs($Vu32.w)",
29218tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29219let Inst{7-5} = 0b010;
29220let Inst{13-13} = 0b0;
29221let Inst{31-16} = 0b0001111000000000;
29222let hasNewValue = 1;
29223let opNewValue = 0;
29224let DecoderNamespace = "EXT_mmvec";
29225}
29226def V6_vabsw_alt : HInst<
29227(outs HvxVR:$Vd32),
29228(ins HvxVR:$Vu32),
29229"$Vd32 = vabsw($Vu32)",
29230PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29231let hasNewValue = 1;
29232let opNewValue = 0;
29233let isPseudo = 1;
29234let isCodeGenOnly = 1;
29235let DecoderNamespace = "EXT_mmvec";
29236}
29237def V6_vabsw_sat : HInst<
29238(outs HvxVR:$Vd32),
29239(ins HvxVR:$Vu32),
29240"$Vd32.w = vabs($Vu32.w):sat",
29241tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
29242let Inst{7-5} = 0b011;
29243let Inst{13-13} = 0b0;
29244let Inst{31-16} = 0b0001111000000000;
29245let hasNewValue = 1;
29246let opNewValue = 0;
29247let DecoderNamespace = "EXT_mmvec";
29248}
29249def V6_vabsw_sat_alt : HInst<
29250(outs HvxVR:$Vd32),
29251(ins HvxVR:$Vu32),
29252"$Vd32 = vabsw($Vu32):sat",
29253PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29254let hasNewValue = 1;
29255let opNewValue = 0;
29256let isPseudo = 1;
29257let isCodeGenOnly = 1;
29258let DecoderNamespace = "EXT_mmvec";
29259}
29260def V6_vaddb : HInst<
29261(outs HvxVR:$Vd32),
29262(ins HvxVR:$Vu32, HvxVR:$Vv32),
29263"$Vd32.b = vadd($Vu32.b,$Vv32.b)",
29264tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29265let Inst{7-5} = 0b110;
29266let Inst{13-13} = 0b0;
29267let Inst{31-21} = 0b00011111101;
29268let hasNewValue = 1;
29269let opNewValue = 0;
29270let DecoderNamespace = "EXT_mmvec";
29271}
29272def V6_vaddb_alt : HInst<
29273(outs HvxVR:$Vd32),
29274(ins HvxVR:$Vu32, HvxVR:$Vv32),
29275"$Vd32 = vaddb($Vu32,$Vv32)",
29276PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29277let hasNewValue = 1;
29278let opNewValue = 0;
29279let isPseudo = 1;
29280let isCodeGenOnly = 1;
29281let DecoderNamespace = "EXT_mmvec";
29282}
29283def V6_vaddb_dv : HInst<
29284(outs HvxWR:$Vdd32),
29285(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29286"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b)",
29287tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29288let Inst{7-5} = 0b100;
29289let Inst{13-13} = 0b0;
29290let Inst{31-21} = 0b00011100011;
29291let hasNewValue = 1;
29292let opNewValue = 0;
29293let DecoderNamespace = "EXT_mmvec";
29294}
29295def V6_vaddb_dv_alt : HInst<
29296(outs HvxWR:$Vdd32),
29297(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29298"$Vdd32 = vaddb($Vuu32,$Vvv32)",
29299PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29300let hasNewValue = 1;
29301let opNewValue = 0;
29302let isPseudo = 1;
29303let isCodeGenOnly = 1;
29304let DecoderNamespace = "EXT_mmvec";
29305}
29306def V6_vaddbnq : HInst<
29307(outs HvxVR:$Vx32),
29308(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29309"if (!$Qv4) $Vx32.b += $Vu32.b",
29310tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29311let Inst{7-5} = 0b011;
29312let Inst{13-13} = 0b1;
29313let Inst{21-16} = 0b000001;
29314let Inst{31-24} = 0b00011110;
29315let hasNewValue = 1;
29316let opNewValue = 0;
29317let isAccumulator = 1;
29318let DecoderNamespace = "EXT_mmvec";
29319let Constraints = "$Vx32 = $Vx32in";
29320}
29321def V6_vaddbnq_alt : HInst<
29322(outs HvxVR:$Vx32),
29323(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29324"if (!$Qv4.b) $Vx32.b += $Vu32.b",
29325PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29326let hasNewValue = 1;
29327let opNewValue = 0;
29328let isAccumulator = 1;
29329let isPseudo = 1;
29330let isCodeGenOnly = 1;
29331let DecoderNamespace = "EXT_mmvec";
29332let Constraints = "$Vx32 = $Vx32in";
29333}
29334def V6_vaddbq : HInst<
29335(outs HvxVR:$Vx32),
29336(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29337"if ($Qv4) $Vx32.b += $Vu32.b",
29338tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29339let Inst{7-5} = 0b000;
29340let Inst{13-13} = 0b1;
29341let Inst{21-16} = 0b000001;
29342let Inst{31-24} = 0b00011110;
29343let hasNewValue = 1;
29344let opNewValue = 0;
29345let isAccumulator = 1;
29346let DecoderNamespace = "EXT_mmvec";
29347let Constraints = "$Vx32 = $Vx32in";
29348}
29349def V6_vaddbq_alt : HInst<
29350(outs HvxVR:$Vx32),
29351(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29352"if ($Qv4.b) $Vx32.b += $Vu32.b",
29353PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29354let hasNewValue = 1;
29355let opNewValue = 0;
29356let isAccumulator = 1;
29357let isPseudo = 1;
29358let isCodeGenOnly = 1;
29359let DecoderNamespace = "EXT_mmvec";
29360let Constraints = "$Vx32 = $Vx32in";
29361}
29362def V6_vaddbsat : HInst<
29363(outs HvxVR:$Vd32),
29364(ins HvxVR:$Vu32, HvxVR:$Vv32),
29365"$Vd32.b = vadd($Vu32.b,$Vv32.b):sat",
29366tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29367let Inst{7-5} = 0b000;
29368let Inst{13-13} = 0b0;
29369let Inst{31-21} = 0b00011111000;
29370let hasNewValue = 1;
29371let opNewValue = 0;
29372let DecoderNamespace = "EXT_mmvec";
29373}
29374def V6_vaddbsat_alt : HInst<
29375(outs HvxVR:$Vd32),
29376(ins HvxVR:$Vu32, HvxVR:$Vv32),
29377"$Vd32 = vaddb($Vu32,$Vv32):sat",
29378PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29379let hasNewValue = 1;
29380let opNewValue = 0;
29381let isPseudo = 1;
29382let isCodeGenOnly = 1;
29383let DecoderNamespace = "EXT_mmvec";
29384}
29385def V6_vaddbsat_dv : HInst<
29386(outs HvxWR:$Vdd32),
29387(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29388"$Vdd32.b = vadd($Vuu32.b,$Vvv32.b):sat",
29389tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
29390let Inst{7-5} = 0b000;
29391let Inst{13-13} = 0b0;
29392let Inst{31-21} = 0b00011110101;
29393let hasNewValue = 1;
29394let opNewValue = 0;
29395let DecoderNamespace = "EXT_mmvec";
29396}
29397def V6_vaddbsat_dv_alt : HInst<
29398(outs HvxWR:$Vdd32),
29399(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29400"$Vdd32 = vaddb($Vuu32,$Vvv32):sat",
29401PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29402let hasNewValue = 1;
29403let opNewValue = 0;
29404let isPseudo = 1;
29405let isCodeGenOnly = 1;
29406let DecoderNamespace = "EXT_mmvec";
29407}
29408def V6_vaddcarry : HInst<
29409(outs HvxVR:$Vd32, HvxQR:$Qx4),
29410(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
29411"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qx4):carry",
29412tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
29413let Inst{7-7} = 0b0;
29414let Inst{13-13} = 0b1;
29415let Inst{31-21} = 0b00011100101;
29416let hasNewValue = 1;
29417let opNewValue = 0;
29418let DecoderNamespace = "EXT_mmvec";
29419let Constraints = "$Qx4 = $Qx4in";
29420}
29421def V6_vaddcarryo : HInst<
29422(outs HvxVR:$Vd32, HvxQR:$Qe4),
29423(ins HvxVR:$Vu32, HvxVR:$Vv32),
29424"$Vd32.w,$Qe4 = vadd($Vu32.w,$Vv32.w):carry",
29425tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> {
29426let Inst{7-7} = 0b0;
29427let Inst{13-13} = 0b1;
29428let Inst{31-21} = 0b00011101101;
29429let hasNewValue = 1;
29430let opNewValue = 0;
29431let hasNewValue2 = 1;
29432let opNewValue2 = 1;
29433let DecoderNamespace = "EXT_mmvec";
29434}
29435def V6_vaddcarrysat : HInst<
29436(outs HvxVR:$Vd32),
29437(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qs4),
29438"$Vd32.w = vadd($Vu32.w,$Vv32.w,$Qs4):carry:sat",
29439tc_257f6f7c, TypeCVI_VA>, Enc_e0820b, Requires<[UseHVXV66]> {
29440let Inst{7-7} = 0b0;
29441let Inst{13-13} = 0b1;
29442let Inst{31-21} = 0b00011101100;
29443let hasNewValue = 1;
29444let opNewValue = 0;
29445let DecoderNamespace = "EXT_mmvec";
29446}
29447def V6_vaddclbh : HInst<
29448(outs HvxVR:$Vd32),
29449(ins HvxVR:$Vu32, HvxVR:$Vv32),
29450"$Vd32.h = vadd(vclb($Vu32.h),$Vv32.h)",
29451tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
29452let Inst{7-5} = 0b000;
29453let Inst{13-13} = 0b1;
29454let Inst{31-21} = 0b00011111000;
29455let hasNewValue = 1;
29456let opNewValue = 0;
29457let DecoderNamespace = "EXT_mmvec";
29458}
29459def V6_vaddclbw : HInst<
29460(outs HvxVR:$Vd32),
29461(ins HvxVR:$Vu32, HvxVR:$Vv32),
29462"$Vd32.w = vadd(vclb($Vu32.w),$Vv32.w)",
29463tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
29464let Inst{7-5} = 0b001;
29465let Inst{13-13} = 0b1;
29466let Inst{31-21} = 0b00011111000;
29467let hasNewValue = 1;
29468let opNewValue = 0;
29469let DecoderNamespace = "EXT_mmvec";
29470}
29471def V6_vaddh : HInst<
29472(outs HvxVR:$Vd32),
29473(ins HvxVR:$Vu32, HvxVR:$Vv32),
29474"$Vd32.h = vadd($Vu32.h,$Vv32.h)",
29475tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29476let Inst{7-5} = 0b111;
29477let Inst{13-13} = 0b0;
29478let Inst{31-21} = 0b00011111101;
29479let hasNewValue = 1;
29480let opNewValue = 0;
29481let DecoderNamespace = "EXT_mmvec";
29482}
29483def V6_vaddh_alt : HInst<
29484(outs HvxVR:$Vd32),
29485(ins HvxVR:$Vu32, HvxVR:$Vv32),
29486"$Vd32 = vaddh($Vu32,$Vv32)",
29487PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29488let hasNewValue = 1;
29489let opNewValue = 0;
29490let isPseudo = 1;
29491let isCodeGenOnly = 1;
29492let DecoderNamespace = "EXT_mmvec";
29493}
29494def V6_vaddh_dv : HInst<
29495(outs HvxWR:$Vdd32),
29496(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29497"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h)",
29498tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29499let Inst{7-5} = 0b101;
29500let Inst{13-13} = 0b0;
29501let Inst{31-21} = 0b00011100011;
29502let hasNewValue = 1;
29503let opNewValue = 0;
29504let DecoderNamespace = "EXT_mmvec";
29505}
29506def V6_vaddh_dv_alt : HInst<
29507(outs HvxWR:$Vdd32),
29508(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29509"$Vdd32 = vaddh($Vuu32,$Vvv32)",
29510PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29511let hasNewValue = 1;
29512let opNewValue = 0;
29513let isPseudo = 1;
29514let isCodeGenOnly = 1;
29515let DecoderNamespace = "EXT_mmvec";
29516}
29517def V6_vaddhnq : HInst<
29518(outs HvxVR:$Vx32),
29519(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29520"if (!$Qv4) $Vx32.h += $Vu32.h",
29521tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29522let Inst{7-5} = 0b100;
29523let Inst{13-13} = 0b1;
29524let Inst{21-16} = 0b000001;
29525let Inst{31-24} = 0b00011110;
29526let hasNewValue = 1;
29527let opNewValue = 0;
29528let isAccumulator = 1;
29529let DecoderNamespace = "EXT_mmvec";
29530let Constraints = "$Vx32 = $Vx32in";
29531}
29532def V6_vaddhnq_alt : HInst<
29533(outs HvxVR:$Vx32),
29534(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29535"if (!$Qv4.h) $Vx32.h += $Vu32.h",
29536PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29537let hasNewValue = 1;
29538let opNewValue = 0;
29539let isAccumulator = 1;
29540let isPseudo = 1;
29541let isCodeGenOnly = 1;
29542let DecoderNamespace = "EXT_mmvec";
29543let Constraints = "$Vx32 = $Vx32in";
29544}
29545def V6_vaddhq : HInst<
29546(outs HvxVR:$Vx32),
29547(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29548"if ($Qv4) $Vx32.h += $Vu32.h",
29549tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29550let Inst{7-5} = 0b001;
29551let Inst{13-13} = 0b1;
29552let Inst{21-16} = 0b000001;
29553let Inst{31-24} = 0b00011110;
29554let hasNewValue = 1;
29555let opNewValue = 0;
29556let isAccumulator = 1;
29557let DecoderNamespace = "EXT_mmvec";
29558let Constraints = "$Vx32 = $Vx32in";
29559}
29560def V6_vaddhq_alt : HInst<
29561(outs HvxVR:$Vx32),
29562(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29563"if ($Qv4.h) $Vx32.h += $Vu32.h",
29564PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29565let hasNewValue = 1;
29566let opNewValue = 0;
29567let isAccumulator = 1;
29568let isPseudo = 1;
29569let isCodeGenOnly = 1;
29570let DecoderNamespace = "EXT_mmvec";
29571let Constraints = "$Vx32 = $Vx32in";
29572}
29573def V6_vaddhsat : HInst<
29574(outs HvxVR:$Vd32),
29575(ins HvxVR:$Vu32, HvxVR:$Vv32),
29576"$Vd32.h = vadd($Vu32.h,$Vv32.h):sat",
29577tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29578let Inst{7-5} = 0b011;
29579let Inst{13-13} = 0b0;
29580let Inst{31-21} = 0b00011100010;
29581let hasNewValue = 1;
29582let opNewValue = 0;
29583let DecoderNamespace = "EXT_mmvec";
29584}
29585def V6_vaddhsat_alt : HInst<
29586(outs HvxVR:$Vd32),
29587(ins HvxVR:$Vu32, HvxVR:$Vv32),
29588"$Vd32 = vaddh($Vu32,$Vv32):sat",
29589PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29590let hasNewValue = 1;
29591let opNewValue = 0;
29592let isPseudo = 1;
29593let isCodeGenOnly = 1;
29594let DecoderNamespace = "EXT_mmvec";
29595}
29596def V6_vaddhsat_dv : HInst<
29597(outs HvxWR:$Vdd32),
29598(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29599"$Vdd32.h = vadd($Vuu32.h,$Vvv32.h):sat",
29600tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29601let Inst{7-5} = 0b001;
29602let Inst{13-13} = 0b0;
29603let Inst{31-21} = 0b00011100100;
29604let hasNewValue = 1;
29605let opNewValue = 0;
29606let DecoderNamespace = "EXT_mmvec";
29607}
29608def V6_vaddhsat_dv_alt : HInst<
29609(outs HvxWR:$Vdd32),
29610(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29611"$Vdd32 = vaddh($Vuu32,$Vvv32):sat",
29612PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29613let hasNewValue = 1;
29614let opNewValue = 0;
29615let isPseudo = 1;
29616let isCodeGenOnly = 1;
29617let DecoderNamespace = "EXT_mmvec";
29618}
29619def V6_vaddhw : HInst<
29620(outs HvxWR:$Vdd32),
29621(ins HvxVR:$Vu32, HvxVR:$Vv32),
29622"$Vdd32.w = vadd($Vu32.h,$Vv32.h)",
29623tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29624let Inst{7-5} = 0b100;
29625let Inst{13-13} = 0b0;
29626let Inst{31-21} = 0b00011100101;
29627let hasNewValue = 1;
29628let opNewValue = 0;
29629let DecoderNamespace = "EXT_mmvec";
29630}
29631def V6_vaddhw_acc : HInst<
29632(outs HvxWR:$Vxx32),
29633(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29634"$Vxx32.w += vadd($Vu32.h,$Vv32.h)",
29635tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29636let Inst{7-5} = 0b010;
29637let Inst{13-13} = 0b1;
29638let Inst{31-21} = 0b00011100001;
29639let hasNewValue = 1;
29640let opNewValue = 0;
29641let isAccumulator = 1;
29642let DecoderNamespace = "EXT_mmvec";
29643let Constraints = "$Vxx32 = $Vxx32in";
29644}
29645def V6_vaddhw_acc_alt : HInst<
29646(outs HvxWR:$Vxx32),
29647(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29648"$Vxx32 += vaddh($Vu32,$Vv32)",
29649PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29650let hasNewValue = 1;
29651let opNewValue = 0;
29652let isAccumulator = 1;
29653let isPseudo = 1;
29654let isCodeGenOnly = 1;
29655let DecoderNamespace = "EXT_mmvec";
29656let Constraints = "$Vxx32 = $Vxx32in";
29657}
29658def V6_vaddhw_alt : HInst<
29659(outs HvxWR:$Vdd32),
29660(ins HvxVR:$Vu32, HvxVR:$Vv32),
29661"$Vdd32 = vaddh($Vu32,$Vv32)",
29662PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29663let hasNewValue = 1;
29664let opNewValue = 0;
29665let isPseudo = 1;
29666let isCodeGenOnly = 1;
29667let DecoderNamespace = "EXT_mmvec";
29668}
29669def V6_vaddubh : HInst<
29670(outs HvxWR:$Vdd32),
29671(ins HvxVR:$Vu32, HvxVR:$Vv32),
29672"$Vdd32.h = vadd($Vu32.ub,$Vv32.ub)",
29673tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29674let Inst{7-5} = 0b010;
29675let Inst{13-13} = 0b0;
29676let Inst{31-21} = 0b00011100101;
29677let hasNewValue = 1;
29678let opNewValue = 0;
29679let DecoderNamespace = "EXT_mmvec";
29680}
29681def V6_vaddubh_acc : HInst<
29682(outs HvxWR:$Vxx32),
29683(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29684"$Vxx32.h += vadd($Vu32.ub,$Vv32.ub)",
29685tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29686let Inst{7-5} = 0b101;
29687let Inst{13-13} = 0b1;
29688let Inst{31-21} = 0b00011100010;
29689let hasNewValue = 1;
29690let opNewValue = 0;
29691let isAccumulator = 1;
29692let DecoderNamespace = "EXT_mmvec";
29693let Constraints = "$Vxx32 = $Vxx32in";
29694}
29695def V6_vaddubh_acc_alt : HInst<
29696(outs HvxWR:$Vxx32),
29697(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29698"$Vxx32 += vaddub($Vu32,$Vv32)",
29699PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29700let hasNewValue = 1;
29701let opNewValue = 0;
29702let isAccumulator = 1;
29703let isPseudo = 1;
29704let isCodeGenOnly = 1;
29705let DecoderNamespace = "EXT_mmvec";
29706let Constraints = "$Vxx32 = $Vxx32in";
29707}
29708def V6_vaddubh_alt : HInst<
29709(outs HvxWR:$Vdd32),
29710(ins HvxVR:$Vu32, HvxVR:$Vv32),
29711"$Vdd32 = vaddub($Vu32,$Vv32)",
29712PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29713let hasNewValue = 1;
29714let opNewValue = 0;
29715let isPseudo = 1;
29716let isCodeGenOnly = 1;
29717let DecoderNamespace = "EXT_mmvec";
29718}
29719def V6_vaddubsat : HInst<
29720(outs HvxVR:$Vd32),
29721(ins HvxVR:$Vu32, HvxVR:$Vv32),
29722"$Vd32.ub = vadd($Vu32.ub,$Vv32.ub):sat",
29723tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29724let Inst{7-5} = 0b001;
29725let Inst{13-13} = 0b0;
29726let Inst{31-21} = 0b00011100010;
29727let hasNewValue = 1;
29728let opNewValue = 0;
29729let DecoderNamespace = "EXT_mmvec";
29730}
29731def V6_vaddubsat_alt : HInst<
29732(outs HvxVR:$Vd32),
29733(ins HvxVR:$Vu32, HvxVR:$Vv32),
29734"$Vd32 = vaddub($Vu32,$Vv32):sat",
29735PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29736let hasNewValue = 1;
29737let opNewValue = 0;
29738let isPseudo = 1;
29739let isCodeGenOnly = 1;
29740let DecoderNamespace = "EXT_mmvec";
29741}
29742def V6_vaddubsat_dv : HInst<
29743(outs HvxWR:$Vdd32),
29744(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29745"$Vdd32.ub = vadd($Vuu32.ub,$Vvv32.ub):sat",
29746tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29747let Inst{7-5} = 0b111;
29748let Inst{13-13} = 0b0;
29749let Inst{31-21} = 0b00011100011;
29750let hasNewValue = 1;
29751let opNewValue = 0;
29752let DecoderNamespace = "EXT_mmvec";
29753}
29754def V6_vaddubsat_dv_alt : HInst<
29755(outs HvxWR:$Vdd32),
29756(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29757"$Vdd32 = vaddub($Vuu32,$Vvv32):sat",
29758PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29759let hasNewValue = 1;
29760let opNewValue = 0;
29761let isPseudo = 1;
29762let isCodeGenOnly = 1;
29763let DecoderNamespace = "EXT_mmvec";
29764}
29765def V6_vaddububb_sat : HInst<
29766(outs HvxVR:$Vd32),
29767(ins HvxVR:$Vu32, HvxVR:$Vv32),
29768"$Vd32.ub = vadd($Vu32.ub,$Vv32.b):sat",
29769tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29770let Inst{7-5} = 0b100;
29771let Inst{13-13} = 0b0;
29772let Inst{31-21} = 0b00011110101;
29773let hasNewValue = 1;
29774let opNewValue = 0;
29775let DecoderNamespace = "EXT_mmvec";
29776}
29777def V6_vadduhsat : HInst<
29778(outs HvxVR:$Vd32),
29779(ins HvxVR:$Vu32, HvxVR:$Vv32),
29780"$Vd32.uh = vadd($Vu32.uh,$Vv32.uh):sat",
29781tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29782let Inst{7-5} = 0b010;
29783let Inst{13-13} = 0b0;
29784let Inst{31-21} = 0b00011100010;
29785let hasNewValue = 1;
29786let opNewValue = 0;
29787let DecoderNamespace = "EXT_mmvec";
29788}
29789def V6_vadduhsat_alt : HInst<
29790(outs HvxVR:$Vd32),
29791(ins HvxVR:$Vu32, HvxVR:$Vv32),
29792"$Vd32 = vadduh($Vu32,$Vv32):sat",
29793PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29794let hasNewValue = 1;
29795let opNewValue = 0;
29796let isPseudo = 1;
29797let isCodeGenOnly = 1;
29798let DecoderNamespace = "EXT_mmvec";
29799}
29800def V6_vadduhsat_dv : HInst<
29801(outs HvxWR:$Vdd32),
29802(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29803"$Vdd32.uh = vadd($Vuu32.uh,$Vvv32.uh):sat",
29804tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29805let Inst{7-5} = 0b000;
29806let Inst{13-13} = 0b0;
29807let Inst{31-21} = 0b00011100100;
29808let hasNewValue = 1;
29809let opNewValue = 0;
29810let DecoderNamespace = "EXT_mmvec";
29811}
29812def V6_vadduhsat_dv_alt : HInst<
29813(outs HvxWR:$Vdd32),
29814(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29815"$Vdd32 = vadduh($Vuu32,$Vvv32):sat",
29816PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29817let hasNewValue = 1;
29818let opNewValue = 0;
29819let isPseudo = 1;
29820let isCodeGenOnly = 1;
29821let DecoderNamespace = "EXT_mmvec";
29822}
29823def V6_vadduhw : HInst<
29824(outs HvxWR:$Vdd32),
29825(ins HvxVR:$Vu32, HvxVR:$Vv32),
29826"$Vdd32.w = vadd($Vu32.uh,$Vv32.uh)",
29827tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
29828let Inst{7-5} = 0b011;
29829let Inst{13-13} = 0b0;
29830let Inst{31-21} = 0b00011100101;
29831let hasNewValue = 1;
29832let opNewValue = 0;
29833let DecoderNamespace = "EXT_mmvec";
29834}
29835def V6_vadduhw_acc : HInst<
29836(outs HvxWR:$Vxx32),
29837(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29838"$Vxx32.w += vadd($Vu32.uh,$Vv32.uh)",
29839tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
29840let Inst{7-5} = 0b100;
29841let Inst{13-13} = 0b1;
29842let Inst{31-21} = 0b00011100010;
29843let hasNewValue = 1;
29844let opNewValue = 0;
29845let isAccumulator = 1;
29846let DecoderNamespace = "EXT_mmvec";
29847let Constraints = "$Vxx32 = $Vxx32in";
29848}
29849def V6_vadduhw_acc_alt : HInst<
29850(outs HvxWR:$Vxx32),
29851(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
29852"$Vxx32 += vadduh($Vu32,$Vv32)",
29853PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29854let hasNewValue = 1;
29855let opNewValue = 0;
29856let isAccumulator = 1;
29857let isPseudo = 1;
29858let isCodeGenOnly = 1;
29859let DecoderNamespace = "EXT_mmvec";
29860let Constraints = "$Vxx32 = $Vxx32in";
29861}
29862def V6_vadduhw_alt : HInst<
29863(outs HvxWR:$Vdd32),
29864(ins HvxVR:$Vu32, HvxVR:$Vv32),
29865"$Vdd32 = vadduh($Vu32,$Vv32)",
29866PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29867let hasNewValue = 1;
29868let opNewValue = 0;
29869let isPseudo = 1;
29870let isCodeGenOnly = 1;
29871let DecoderNamespace = "EXT_mmvec";
29872}
29873def V6_vadduwsat : HInst<
29874(outs HvxVR:$Vd32),
29875(ins HvxVR:$Vu32, HvxVR:$Vv32),
29876"$Vd32.uw = vadd($Vu32.uw,$Vv32.uw):sat",
29877tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
29878let Inst{7-5} = 0b001;
29879let Inst{13-13} = 0b0;
29880let Inst{31-21} = 0b00011111011;
29881let hasNewValue = 1;
29882let opNewValue = 0;
29883let DecoderNamespace = "EXT_mmvec";
29884}
29885def V6_vadduwsat_alt : HInst<
29886(outs HvxVR:$Vd32),
29887(ins HvxVR:$Vu32, HvxVR:$Vv32),
29888"$Vd32 = vadduw($Vu32,$Vv32):sat",
29889PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29890let hasNewValue = 1;
29891let opNewValue = 0;
29892let isPseudo = 1;
29893let isCodeGenOnly = 1;
29894let DecoderNamespace = "EXT_mmvec";
29895}
29896def V6_vadduwsat_dv : HInst<
29897(outs HvxWR:$Vdd32),
29898(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29899"$Vdd32.uw = vadd($Vuu32.uw,$Vvv32.uw):sat",
29900tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
29901let Inst{7-5} = 0b010;
29902let Inst{13-13} = 0b0;
29903let Inst{31-21} = 0b00011110101;
29904let hasNewValue = 1;
29905let opNewValue = 0;
29906let DecoderNamespace = "EXT_mmvec";
29907}
29908def V6_vadduwsat_dv_alt : HInst<
29909(outs HvxWR:$Vdd32),
29910(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29911"$Vdd32 = vadduw($Vuu32,$Vvv32):sat",
29912PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
29913let hasNewValue = 1;
29914let opNewValue = 0;
29915let isPseudo = 1;
29916let isCodeGenOnly = 1;
29917let DecoderNamespace = "EXT_mmvec";
29918}
29919def V6_vaddw : HInst<
29920(outs HvxVR:$Vd32),
29921(ins HvxVR:$Vu32, HvxVR:$Vv32),
29922"$Vd32.w = vadd($Vu32.w,$Vv32.w)",
29923tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
29924let Inst{7-5} = 0b000;
29925let Inst{13-13} = 0b0;
29926let Inst{31-21} = 0b00011100010;
29927let hasNewValue = 1;
29928let opNewValue = 0;
29929let DecoderNamespace = "EXT_mmvec";
29930}
29931def V6_vaddw_alt : HInst<
29932(outs HvxVR:$Vd32),
29933(ins HvxVR:$Vu32, HvxVR:$Vv32),
29934"$Vd32 = vaddw($Vu32,$Vv32)",
29935PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29936let hasNewValue = 1;
29937let opNewValue = 0;
29938let isPseudo = 1;
29939let isCodeGenOnly = 1;
29940let DecoderNamespace = "EXT_mmvec";
29941}
29942def V6_vaddw_dv : HInst<
29943(outs HvxWR:$Vdd32),
29944(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29945"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w)",
29946tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
29947let Inst{7-5} = 0b110;
29948let Inst{13-13} = 0b0;
29949let Inst{31-21} = 0b00011100011;
29950let hasNewValue = 1;
29951let opNewValue = 0;
29952let DecoderNamespace = "EXT_mmvec";
29953}
29954def V6_vaddw_dv_alt : HInst<
29955(outs HvxWR:$Vdd32),
29956(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
29957"$Vdd32 = vaddw($Vuu32,$Vvv32)",
29958PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29959let hasNewValue = 1;
29960let opNewValue = 0;
29961let isPseudo = 1;
29962let isCodeGenOnly = 1;
29963let DecoderNamespace = "EXT_mmvec";
29964}
29965def V6_vaddwnq : HInst<
29966(outs HvxVR:$Vx32),
29967(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29968"if (!$Qv4) $Vx32.w += $Vu32.w",
29969tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29970let Inst{7-5} = 0b101;
29971let Inst{13-13} = 0b1;
29972let Inst{21-16} = 0b000001;
29973let Inst{31-24} = 0b00011110;
29974let hasNewValue = 1;
29975let opNewValue = 0;
29976let isAccumulator = 1;
29977let DecoderNamespace = "EXT_mmvec";
29978let Constraints = "$Vx32 = $Vx32in";
29979}
29980def V6_vaddwnq_alt : HInst<
29981(outs HvxVR:$Vx32),
29982(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29983"if (!$Qv4.w) $Vx32.w += $Vu32.w",
29984PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
29985let hasNewValue = 1;
29986let opNewValue = 0;
29987let isAccumulator = 1;
29988let isPseudo = 1;
29989let isCodeGenOnly = 1;
29990let DecoderNamespace = "EXT_mmvec";
29991let Constraints = "$Vx32 = $Vx32in";
29992}
29993def V6_vaddwq : HInst<
29994(outs HvxVR:$Vx32),
29995(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
29996"if ($Qv4) $Vx32.w += $Vu32.w",
29997tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
29998let Inst{7-5} = 0b010;
29999let Inst{13-13} = 0b1;
30000let Inst{21-16} = 0b000001;
30001let Inst{31-24} = 0b00011110;
30002let hasNewValue = 1;
30003let opNewValue = 0;
30004let isAccumulator = 1;
30005let DecoderNamespace = "EXT_mmvec";
30006let Constraints = "$Vx32 = $Vx32in";
30007}
30008def V6_vaddwq_alt : HInst<
30009(outs HvxVR:$Vx32),
30010(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
30011"if ($Qv4.w) $Vx32.w += $Vu32.w",
30012PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30013let hasNewValue = 1;
30014let opNewValue = 0;
30015let isAccumulator = 1;
30016let isPseudo = 1;
30017let isCodeGenOnly = 1;
30018let DecoderNamespace = "EXT_mmvec";
30019let Constraints = "$Vx32 = $Vx32in";
30020}
30021def V6_vaddwsat : HInst<
30022(outs HvxVR:$Vd32),
30023(ins HvxVR:$Vu32, HvxVR:$Vv32),
30024"$Vd32.w = vadd($Vu32.w,$Vv32.w):sat",
30025tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30026let Inst{7-5} = 0b100;
30027let Inst{13-13} = 0b0;
30028let Inst{31-21} = 0b00011100010;
30029let hasNewValue = 1;
30030let opNewValue = 0;
30031let DecoderNamespace = "EXT_mmvec";
30032}
30033def V6_vaddwsat_alt : HInst<
30034(outs HvxVR:$Vd32),
30035(ins HvxVR:$Vu32, HvxVR:$Vv32),
30036"$Vd32 = vaddw($Vu32,$Vv32):sat",
30037PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30038let hasNewValue = 1;
30039let opNewValue = 0;
30040let isPseudo = 1;
30041let isCodeGenOnly = 1;
30042let DecoderNamespace = "EXT_mmvec";
30043}
30044def V6_vaddwsat_dv : HInst<
30045(outs HvxWR:$Vdd32),
30046(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30047"$Vdd32.w = vadd($Vuu32.w,$Vvv32.w):sat",
30048tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
30049let Inst{7-5} = 0b010;
30050let Inst{13-13} = 0b0;
30051let Inst{31-21} = 0b00011100100;
30052let hasNewValue = 1;
30053let opNewValue = 0;
30054let DecoderNamespace = "EXT_mmvec";
30055}
30056def V6_vaddwsat_dv_alt : HInst<
30057(outs HvxWR:$Vdd32),
30058(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
30059"$Vdd32 = vaddw($Vuu32,$Vvv32):sat",
30060PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30061let hasNewValue = 1;
30062let opNewValue = 0;
30063let isPseudo = 1;
30064let isCodeGenOnly = 1;
30065let DecoderNamespace = "EXT_mmvec";
30066}
30067def V6_valignb : HInst<
30068(outs HvxVR:$Vd32),
30069(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30070"$Vd32 = valign($Vu32,$Vv32,$Rt8)",
30071tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
30072let Inst{7-5} = 0b000;
30073let Inst{13-13} = 0b0;
30074let Inst{31-24} = 0b00011011;
30075let hasNewValue = 1;
30076let opNewValue = 0;
30077let DecoderNamespace = "EXT_mmvec";
30078}
30079def V6_valignbi : HInst<
30080(outs HvxVR:$Vd32),
30081(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
30082"$Vd32 = valign($Vu32,$Vv32,#$Ii)",
30083tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
30084let Inst{13-13} = 0b1;
30085let Inst{31-21} = 0b00011110001;
30086let hasNewValue = 1;
30087let opNewValue = 0;
30088let DecoderNamespace = "EXT_mmvec";
30089}
30090def V6_vand : HInst<
30091(outs HvxVR:$Vd32),
30092(ins HvxVR:$Vu32, HvxVR:$Vv32),
30093"$Vd32 = vand($Vu32,$Vv32)",
30094tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30095let Inst{7-5} = 0b101;
30096let Inst{13-13} = 0b0;
30097let Inst{31-21} = 0b00011100001;
30098let hasNewValue = 1;
30099let opNewValue = 0;
30100let DecoderNamespace = "EXT_mmvec";
30101}
30102def V6_vandnqrt : HInst<
30103(outs HvxVR:$Vd32),
30104(ins HvxQR:$Qu4, IntRegs:$Rt32),
30105"$Vd32 = vand(!$Qu4,$Rt32)",
30106tc_ac4046bc, TypeCVI_VX>, Enc_7b7ba8, Requires<[UseHVXV62]> {
30107let Inst{7-5} = 0b101;
30108let Inst{13-10} = 0b0001;
30109let Inst{31-21} = 0b00011001101;
30110let hasNewValue = 1;
30111let opNewValue = 0;
30112let DecoderNamespace = "EXT_mmvec";
30113}
30114def V6_vandnqrt_acc : HInst<
30115(outs HvxVR:$Vx32),
30116(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30117"$Vx32 |= vand(!$Qu4,$Rt32)",
30118tc_2e8f5f6e, TypeCVI_VX>, Enc_895bd9, Requires<[UseHVXV62]> {
30119let Inst{7-5} = 0b011;
30120let Inst{13-10} = 0b1001;
30121let Inst{31-21} = 0b00011001011;
30122let hasNewValue = 1;
30123let opNewValue = 0;
30124let isAccumulator = 1;
30125let DecoderNamespace = "EXT_mmvec";
30126let Constraints = "$Vx32 = $Vx32in";
30127}
30128def V6_vandnqrt_acc_alt : HInst<
30129(outs HvxVR:$Vx32),
30130(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30131"$Vx32.ub |= vand(!$Qu4.ub,$Rt32.ub)",
30132PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30133let hasNewValue = 1;
30134let opNewValue = 0;
30135let isAccumulator = 1;
30136let isPseudo = 1;
30137let isCodeGenOnly = 1;
30138let DecoderNamespace = "EXT_mmvec";
30139let Constraints = "$Vx32 = $Vx32in";
30140}
30141def V6_vandnqrt_alt : HInst<
30142(outs HvxVR:$Vd32),
30143(ins HvxQR:$Qu4, IntRegs:$Rt32),
30144"$Vd32.ub = vand(!$Qu4.ub,$Rt32.ub)",
30145PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
30146let hasNewValue = 1;
30147let opNewValue = 0;
30148let isPseudo = 1;
30149let isCodeGenOnly = 1;
30150let DecoderNamespace = "EXT_mmvec";
30151}
30152def V6_vandqrt : HInst<
30153(outs HvxVR:$Vd32),
30154(ins HvxQR:$Qu4, IntRegs:$Rt32),
30155"$Vd32 = vand($Qu4,$Rt32)",
30156tc_ac4046bc, TypeCVI_VX_LATE>, Enc_7b7ba8, Requires<[UseHVXV60]> {
30157let Inst{7-5} = 0b101;
30158let Inst{13-10} = 0b0000;
30159let Inst{31-21} = 0b00011001101;
30160let hasNewValue = 1;
30161let opNewValue = 0;
30162let DecoderNamespace = "EXT_mmvec";
30163}
30164def V6_vandqrt_acc : HInst<
30165(outs HvxVR:$Vx32),
30166(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30167"$Vx32 |= vand($Qu4,$Rt32)",
30168tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_895bd9, Requires<[UseHVXV60]> {
30169let Inst{7-5} = 0b011;
30170let Inst{13-10} = 0b1000;
30171let Inst{31-21} = 0b00011001011;
30172let hasNewValue = 1;
30173let opNewValue = 0;
30174let isAccumulator = 1;
30175let DecoderNamespace = "EXT_mmvec";
30176let Constraints = "$Vx32 = $Vx32in";
30177}
30178def V6_vandqrt_acc_alt : HInst<
30179(outs HvxVR:$Vx32),
30180(ins HvxVR:$Vx32in, HvxQR:$Qu4, IntRegs:$Rt32),
30181"$Vx32.ub |= vand($Qu4.ub,$Rt32.ub)",
30182PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30183let hasNewValue = 1;
30184let opNewValue = 0;
30185let isAccumulator = 1;
30186let isPseudo = 1;
30187let isCodeGenOnly = 1;
30188let DecoderNamespace = "EXT_mmvec";
30189let Constraints = "$Vx32 = $Vx32in";
30190}
30191def V6_vandqrt_alt : HInst<
30192(outs HvxVR:$Vd32),
30193(ins HvxQR:$Qu4, IntRegs:$Rt32),
30194"$Vd32.ub = vand($Qu4.ub,$Rt32.ub)",
30195PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30196let hasNewValue = 1;
30197let opNewValue = 0;
30198let isPseudo = 1;
30199let isCodeGenOnly = 1;
30200let DecoderNamespace = "EXT_mmvec";
30201}
30202def V6_vandvnqv : HInst<
30203(outs HvxVR:$Vd32),
30204(ins HvxQR:$Qv4, HvxVR:$Vu32),
30205"$Vd32 = vand(!$Qv4,$Vu32)",
30206tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
30207let Inst{7-5} = 0b001;
30208let Inst{13-13} = 0b1;
30209let Inst{21-16} = 0b000011;
30210let Inst{31-24} = 0b00011110;
30211let hasNewValue = 1;
30212let opNewValue = 0;
30213let DecoderNamespace = "EXT_mmvec";
30214}
30215def V6_vandvqv : HInst<
30216(outs HvxVR:$Vd32),
30217(ins HvxQR:$Qv4, HvxVR:$Vu32),
30218"$Vd32 = vand($Qv4,$Vu32)",
30219tc_56c4f9fe, TypeCVI_VA>, Enc_c4dc92, Requires<[UseHVXV62]> {
30220let Inst{7-5} = 0b000;
30221let Inst{13-13} = 0b1;
30222let Inst{21-16} = 0b000011;
30223let Inst{31-24} = 0b00011110;
30224let hasNewValue = 1;
30225let opNewValue = 0;
30226let DecoderNamespace = "EXT_mmvec";
30227}
30228def V6_vandvrt : HInst<
30229(outs HvxQR:$Qd4),
30230(ins HvxVR:$Vu32, IntRegs:$Rt32),
30231"$Qd4 = vand($Vu32,$Rt32)",
30232tc_ac4046bc, TypeCVI_VX_LATE>, Enc_0f8bab, Requires<[UseHVXV60]> {
30233let Inst{7-2} = 0b010010;
30234let Inst{13-13} = 0b0;
30235let Inst{31-21} = 0b00011001101;
30236let hasNewValue = 1;
30237let opNewValue = 0;
30238let DecoderNamespace = "EXT_mmvec";
30239}
30240def V6_vandvrt_acc : HInst<
30241(outs HvxQR:$Qx4),
30242(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
30243"$Qx4 |= vand($Vu32,$Rt32)",
30244tc_2e8f5f6e, TypeCVI_VX_LATE>, Enc_adf111, Requires<[UseHVXV60]> {
30245let Inst{7-2} = 0b100000;
30246let Inst{13-13} = 0b1;
30247let Inst{31-21} = 0b00011001011;
30248let isAccumulator = 1;
30249let DecoderNamespace = "EXT_mmvec";
30250let Constraints = "$Qx4 = $Qx4in";
30251}
30252def V6_vandvrt_acc_alt : HInst<
30253(outs HvxQR:$Qx4),
30254(ins HvxQR:$Qx4in, HvxVR:$Vu32, IntRegs:$Rt32),
30255"$Qx4.ub |= vand($Vu32.ub,$Rt32.ub)",
30256PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30257let isAccumulator = 1;
30258let isPseudo = 1;
30259let isCodeGenOnly = 1;
30260let DecoderNamespace = "EXT_mmvec";
30261let Constraints = "$Qx4 = $Qx4in";
30262}
30263def V6_vandvrt_alt : HInst<
30264(outs HvxQR:$Qd4),
30265(ins HvxVR:$Vu32, IntRegs:$Rt32),
30266"$Qd4.ub = vand($Vu32.ub,$Rt32.ub)",
30267PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30268let hasNewValue = 1;
30269let opNewValue = 0;
30270let isPseudo = 1;
30271let isCodeGenOnly = 1;
30272let DecoderNamespace = "EXT_mmvec";
30273}
30274def V6_vaslh : HInst<
30275(outs HvxVR:$Vd32),
30276(ins HvxVR:$Vu32, IntRegs:$Rt32),
30277"$Vd32.h = vasl($Vu32.h,$Rt32)",
30278tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30279let Inst{7-5} = 0b000;
30280let Inst{13-13} = 0b0;
30281let Inst{31-21} = 0b00011001100;
30282let hasNewValue = 1;
30283let opNewValue = 0;
30284let DecoderNamespace = "EXT_mmvec";
30285}
30286def V6_vaslh_acc : HInst<
30287(outs HvxVR:$Vx32),
30288(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30289"$Vx32.h += vasl($Vu32.h,$Rt32)",
30290tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
30291let Inst{7-5} = 0b101;
30292let Inst{13-13} = 0b1;
30293let Inst{31-21} = 0b00011001101;
30294let hasNewValue = 1;
30295let opNewValue = 0;
30296let isAccumulator = 1;
30297let DecoderNamespace = "EXT_mmvec";
30298let Constraints = "$Vx32 = $Vx32in";
30299}
30300def V6_vaslh_acc_alt : HInst<
30301(outs HvxVR:$Vx32),
30302(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30303"$Vx32 += vaslh($Vu32,$Rt32)",
30304PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30305let hasNewValue = 1;
30306let opNewValue = 0;
30307let isAccumulator = 1;
30308let isPseudo = 1;
30309let isCodeGenOnly = 1;
30310let DecoderNamespace = "EXT_mmvec";
30311let Constraints = "$Vx32 = $Vx32in";
30312}
30313def V6_vaslh_alt : HInst<
30314(outs HvxVR:$Vd32),
30315(ins HvxVR:$Vu32, IntRegs:$Rt32),
30316"$Vd32 = vaslh($Vu32,$Rt32)",
30317PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30318let hasNewValue = 1;
30319let opNewValue = 0;
30320let isPseudo = 1;
30321let isCodeGenOnly = 1;
30322let DecoderNamespace = "EXT_mmvec";
30323}
30324def V6_vaslhv : HInst<
30325(outs HvxVR:$Vd32),
30326(ins HvxVR:$Vu32, HvxVR:$Vv32),
30327"$Vd32.h = vasl($Vu32.h,$Vv32.h)",
30328tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30329let Inst{7-5} = 0b101;
30330let Inst{13-13} = 0b0;
30331let Inst{31-21} = 0b00011111101;
30332let hasNewValue = 1;
30333let opNewValue = 0;
30334let DecoderNamespace = "EXT_mmvec";
30335}
30336def V6_vaslhv_alt : HInst<
30337(outs HvxVR:$Vd32),
30338(ins HvxVR:$Vu32, HvxVR:$Vv32),
30339"$Vd32 = vaslh($Vu32,$Vv32)",
30340PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30341let hasNewValue = 1;
30342let opNewValue = 0;
30343let isPseudo = 1;
30344let isCodeGenOnly = 1;
30345let DecoderNamespace = "EXT_mmvec";
30346}
30347def V6_vaslw : HInst<
30348(outs HvxVR:$Vd32),
30349(ins HvxVR:$Vu32, IntRegs:$Rt32),
30350"$Vd32.w = vasl($Vu32.w,$Rt32)",
30351tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30352let Inst{7-5} = 0b111;
30353let Inst{13-13} = 0b0;
30354let Inst{31-21} = 0b00011001011;
30355let hasNewValue = 1;
30356let opNewValue = 0;
30357let DecoderNamespace = "EXT_mmvec";
30358}
30359def V6_vaslw_acc : HInst<
30360(outs HvxVR:$Vx32),
30361(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30362"$Vx32.w += vasl($Vu32.w,$Rt32)",
30363tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
30364let Inst{7-5} = 0b010;
30365let Inst{13-13} = 0b1;
30366let Inst{31-21} = 0b00011001011;
30367let hasNewValue = 1;
30368let opNewValue = 0;
30369let isAccumulator = 1;
30370let DecoderNamespace = "EXT_mmvec";
30371let Constraints = "$Vx32 = $Vx32in";
30372}
30373def V6_vaslw_acc_alt : HInst<
30374(outs HvxVR:$Vx32),
30375(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30376"$Vx32 += vaslw($Vu32,$Rt32)",
30377PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30378let hasNewValue = 1;
30379let opNewValue = 0;
30380let isAccumulator = 1;
30381let isPseudo = 1;
30382let isCodeGenOnly = 1;
30383let DecoderNamespace = "EXT_mmvec";
30384let Constraints = "$Vx32 = $Vx32in";
30385}
30386def V6_vaslw_alt : HInst<
30387(outs HvxVR:$Vd32),
30388(ins HvxVR:$Vu32, IntRegs:$Rt32),
30389"$Vd32 = vaslw($Vu32,$Rt32)",
30390PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30391let hasNewValue = 1;
30392let opNewValue = 0;
30393let isPseudo = 1;
30394let isCodeGenOnly = 1;
30395let DecoderNamespace = "EXT_mmvec";
30396}
30397def V6_vaslwv : HInst<
30398(outs HvxVR:$Vd32),
30399(ins HvxVR:$Vu32, HvxVR:$Vv32),
30400"$Vd32.w = vasl($Vu32.w,$Vv32.w)",
30401tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30402let Inst{7-5} = 0b100;
30403let Inst{13-13} = 0b0;
30404let Inst{31-21} = 0b00011111101;
30405let hasNewValue = 1;
30406let opNewValue = 0;
30407let DecoderNamespace = "EXT_mmvec";
30408}
30409def V6_vaslwv_alt : HInst<
30410(outs HvxVR:$Vd32),
30411(ins HvxVR:$Vu32, HvxVR:$Vv32),
30412"$Vd32 = vaslw($Vu32,$Vv32)",
30413PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30414let hasNewValue = 1;
30415let opNewValue = 0;
30416let isPseudo = 1;
30417let isCodeGenOnly = 1;
30418let DecoderNamespace = "EXT_mmvec";
30419}
30420def V6_vasr_into : HInst<
30421(outs HvxWR:$Vxx32),
30422(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30423"$Vxx32.w = vasrinto($Vu32.w,$Vv32.w)",
30424tc_df80eeb0, TypeCVI_VP_VS>, Enc_3fc427, Requires<[UseHVXV66]> {
30425let Inst{7-5} = 0b111;
30426let Inst{13-13} = 0b1;
30427let Inst{31-21} = 0b00011010101;
30428let hasNewValue = 1;
30429let opNewValue = 0;
30430let DecoderNamespace = "EXT_mmvec";
30431let Constraints = "$Vxx32 = $Vxx32in";
30432}
30433def V6_vasr_into_alt : HInst<
30434(outs HvxWR:$Vxx32),
30435(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
30436"$Vxx32 = vasrinto($Vu32,$Vv32)",
30437PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
30438let hasNewValue = 1;
30439let opNewValue = 0;
30440let isPseudo = 1;
30441let isCodeGenOnly = 1;
30442let DecoderNamespace = "EXT_mmvec";
30443let Constraints = "$Vxx32 = $Vxx32in";
30444}
30445def V6_vasrh : HInst<
30446(outs HvxVR:$Vd32),
30447(ins HvxVR:$Vu32, IntRegs:$Rt32),
30448"$Vd32.h = vasr($Vu32.h,$Rt32)",
30449tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30450let Inst{7-5} = 0b110;
30451let Inst{13-13} = 0b0;
30452let Inst{31-21} = 0b00011001011;
30453let hasNewValue = 1;
30454let opNewValue = 0;
30455let DecoderNamespace = "EXT_mmvec";
30456}
30457def V6_vasrh_acc : HInst<
30458(outs HvxVR:$Vx32),
30459(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30460"$Vx32.h += vasr($Vu32.h,$Rt32)",
30461tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV65]> {
30462let Inst{7-5} = 0b111;
30463let Inst{13-13} = 0b1;
30464let Inst{31-21} = 0b00011001100;
30465let hasNewValue = 1;
30466let opNewValue = 0;
30467let isAccumulator = 1;
30468let DecoderNamespace = "EXT_mmvec";
30469let Constraints = "$Vx32 = $Vx32in";
30470}
30471def V6_vasrh_acc_alt : HInst<
30472(outs HvxVR:$Vx32),
30473(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30474"$Vx32 += vasrh($Vu32,$Rt32)",
30475PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30476let hasNewValue = 1;
30477let opNewValue = 0;
30478let isAccumulator = 1;
30479let isPseudo = 1;
30480let isCodeGenOnly = 1;
30481let DecoderNamespace = "EXT_mmvec";
30482let Constraints = "$Vx32 = $Vx32in";
30483}
30484def V6_vasrh_alt : HInst<
30485(outs HvxVR:$Vd32),
30486(ins HvxVR:$Vu32, IntRegs:$Rt32),
30487"$Vd32 = vasrh($Vu32,$Rt32)",
30488PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30489let hasNewValue = 1;
30490let opNewValue = 0;
30491let isPseudo = 1;
30492let isCodeGenOnly = 1;
30493let DecoderNamespace = "EXT_mmvec";
30494}
30495def V6_vasrhbrndsat : HInst<
30496(outs HvxVR:$Vd32),
30497(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30498"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
30499tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30500let Inst{7-5} = 0b000;
30501let Inst{13-13} = 0b1;
30502let Inst{31-24} = 0b00011011;
30503let hasNewValue = 1;
30504let opNewValue = 0;
30505let DecoderNamespace = "EXT_mmvec";
30506}
30507def V6_vasrhbrndsat_alt : HInst<
30508(outs HvxVR:$Vd32),
30509(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30510"$Vd32 = vasrhb($Vu32,$Vv32,$Rt8):rnd:sat",
30511tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30512let hasNewValue = 1;
30513let opNewValue = 0;
30514let isPseudo = 1;
30515let isCodeGenOnly = 1;
30516}
30517def V6_vasrhbsat : HInst<
30518(outs HvxVR:$Vd32),
30519(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30520"$Vd32.b = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
30521tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30522let Inst{7-5} = 0b000;
30523let Inst{13-13} = 0b0;
30524let Inst{31-24} = 0b00011000;
30525let hasNewValue = 1;
30526let opNewValue = 0;
30527let DecoderNamespace = "EXT_mmvec";
30528}
30529def V6_vasrhubrndsat : HInst<
30530(outs HvxVR:$Vd32),
30531(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30532"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):rnd:sat",
30533tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30534let Inst{7-5} = 0b111;
30535let Inst{13-13} = 0b0;
30536let Inst{31-24} = 0b00011011;
30537let hasNewValue = 1;
30538let opNewValue = 0;
30539let DecoderNamespace = "EXT_mmvec";
30540}
30541def V6_vasrhubrndsat_alt : HInst<
30542(outs HvxVR:$Vd32),
30543(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30544"$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):rnd:sat",
30545tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30546let hasNewValue = 1;
30547let opNewValue = 0;
30548let isPseudo = 1;
30549let isCodeGenOnly = 1;
30550}
30551def V6_vasrhubsat : HInst<
30552(outs HvxVR:$Vd32),
30553(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30554"$Vd32.ub = vasr($Vu32.h,$Vv32.h,$Rt8):sat",
30555tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30556let Inst{7-5} = 0b110;
30557let Inst{13-13} = 0b0;
30558let Inst{31-24} = 0b00011011;
30559let hasNewValue = 1;
30560let opNewValue = 0;
30561let DecoderNamespace = "EXT_mmvec";
30562}
30563def V6_vasrhubsat_alt : HInst<
30564(outs HvxVR:$Vd32),
30565(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30566"$Vd32 = vasrhub($Vu32,$Vv32,$Rt8):sat",
30567tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30568let hasNewValue = 1;
30569let opNewValue = 0;
30570let isPseudo = 1;
30571let isCodeGenOnly = 1;
30572}
30573def V6_vasrhv : HInst<
30574(outs HvxVR:$Vd32),
30575(ins HvxVR:$Vu32, HvxVR:$Vv32),
30576"$Vd32.h = vasr($Vu32.h,$Vv32.h)",
30577tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30578let Inst{7-5} = 0b011;
30579let Inst{13-13} = 0b0;
30580let Inst{31-21} = 0b00011111101;
30581let hasNewValue = 1;
30582let opNewValue = 0;
30583let DecoderNamespace = "EXT_mmvec";
30584}
30585def V6_vasrhv_alt : HInst<
30586(outs HvxVR:$Vd32),
30587(ins HvxVR:$Vu32, HvxVR:$Vv32),
30588"$Vd32 = vasrh($Vu32,$Vv32)",
30589PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30590let hasNewValue = 1;
30591let opNewValue = 0;
30592let isPseudo = 1;
30593let isCodeGenOnly = 1;
30594let DecoderNamespace = "EXT_mmvec";
30595}
30596def V6_vasruhubrndsat : HInst<
30597(outs HvxVR:$Vd32),
30598(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30599"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):rnd:sat",
30600tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30601let Inst{7-5} = 0b111;
30602let Inst{13-13} = 0b0;
30603let Inst{31-24} = 0b00011000;
30604let hasNewValue = 1;
30605let opNewValue = 0;
30606let DecoderNamespace = "EXT_mmvec";
30607}
30608def V6_vasruhubsat : HInst<
30609(outs HvxVR:$Vd32),
30610(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30611"$Vd32.ub = vasr($Vu32.uh,$Vv32.uh,$Rt8):sat",
30612tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30613let Inst{7-5} = 0b101;
30614let Inst{13-13} = 0b1;
30615let Inst{31-24} = 0b00011000;
30616let hasNewValue = 1;
30617let opNewValue = 0;
30618let DecoderNamespace = "EXT_mmvec";
30619}
30620def V6_vasruwuhrndsat : HInst<
30621(outs HvxVR:$Vd32),
30622(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30623"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):rnd:sat",
30624tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30625let Inst{7-5} = 0b001;
30626let Inst{13-13} = 0b0;
30627let Inst{31-24} = 0b00011000;
30628let hasNewValue = 1;
30629let opNewValue = 0;
30630let DecoderNamespace = "EXT_mmvec";
30631}
30632def V6_vasruwuhsat : HInst<
30633(outs HvxVR:$Vd32),
30634(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30635"$Vd32.uh = vasr($Vu32.uw,$Vv32.uw,$Rt8):sat",
30636tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV65]> {
30637let Inst{7-5} = 0b100;
30638let Inst{13-13} = 0b1;
30639let Inst{31-24} = 0b00011000;
30640let hasNewValue = 1;
30641let opNewValue = 0;
30642let DecoderNamespace = "EXT_mmvec";
30643}
30644def V6_vasrw : HInst<
30645(outs HvxVR:$Vd32),
30646(ins HvxVR:$Vu32, IntRegs:$Rt32),
30647"$Vd32.w = vasr($Vu32.w,$Rt32)",
30648tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
30649let Inst{7-5} = 0b101;
30650let Inst{13-13} = 0b0;
30651let Inst{31-21} = 0b00011001011;
30652let hasNewValue = 1;
30653let opNewValue = 0;
30654let DecoderNamespace = "EXT_mmvec";
30655}
30656def V6_vasrw_acc : HInst<
30657(outs HvxVR:$Vx32),
30658(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30659"$Vx32.w += vasr($Vu32.w,$Rt32)",
30660tc_309dbb4f, TypeCVI_VS>, Enc_5138b3, Requires<[UseHVXV60]> {
30661let Inst{7-5} = 0b101;
30662let Inst{13-13} = 0b1;
30663let Inst{31-21} = 0b00011001011;
30664let hasNewValue = 1;
30665let opNewValue = 0;
30666let isAccumulator = 1;
30667let DecoderNamespace = "EXT_mmvec";
30668let Constraints = "$Vx32 = $Vx32in";
30669}
30670def V6_vasrw_acc_alt : HInst<
30671(outs HvxVR:$Vx32),
30672(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
30673"$Vx32 += vasrw($Vu32,$Rt32)",
30674PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30675let hasNewValue = 1;
30676let opNewValue = 0;
30677let isAccumulator = 1;
30678let isPseudo = 1;
30679let isCodeGenOnly = 1;
30680let DecoderNamespace = "EXT_mmvec";
30681let Constraints = "$Vx32 = $Vx32in";
30682}
30683def V6_vasrw_alt : HInst<
30684(outs HvxVR:$Vd32),
30685(ins HvxVR:$Vu32, IntRegs:$Rt32),
30686"$Vd32 = vasrw($Vu32,$Rt32)",
30687PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30688let hasNewValue = 1;
30689let opNewValue = 0;
30690let isPseudo = 1;
30691let isCodeGenOnly = 1;
30692let DecoderNamespace = "EXT_mmvec";
30693}
30694def V6_vasrwh : HInst<
30695(outs HvxVR:$Vd32),
30696(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30697"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8)",
30698tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30699let Inst{7-5} = 0b010;
30700let Inst{13-13} = 0b0;
30701let Inst{31-24} = 0b00011011;
30702let hasNewValue = 1;
30703let opNewValue = 0;
30704let DecoderNamespace = "EXT_mmvec";
30705}
30706def V6_vasrwh_alt : HInst<
30707(outs HvxVR:$Vd32),
30708(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30709"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8)",
30710tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30711let hasNewValue = 1;
30712let opNewValue = 0;
30713let isPseudo = 1;
30714let isCodeGenOnly = 1;
30715}
30716def V6_vasrwhrndsat : HInst<
30717(outs HvxVR:$Vd32),
30718(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30719"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
30720tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30721let Inst{7-5} = 0b100;
30722let Inst{13-13} = 0b0;
30723let Inst{31-24} = 0b00011011;
30724let hasNewValue = 1;
30725let opNewValue = 0;
30726let DecoderNamespace = "EXT_mmvec";
30727}
30728def V6_vasrwhrndsat_alt : HInst<
30729(outs HvxVR:$Vd32),
30730(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30731"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):rnd:sat",
30732tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30733let hasNewValue = 1;
30734let opNewValue = 0;
30735let isPseudo = 1;
30736let isCodeGenOnly = 1;
30737}
30738def V6_vasrwhsat : HInst<
30739(outs HvxVR:$Vd32),
30740(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30741"$Vd32.h = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
30742tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30743let Inst{7-5} = 0b011;
30744let Inst{13-13} = 0b0;
30745let Inst{31-24} = 0b00011011;
30746let hasNewValue = 1;
30747let opNewValue = 0;
30748let DecoderNamespace = "EXT_mmvec";
30749}
30750def V6_vasrwhsat_alt : HInst<
30751(outs HvxVR:$Vd32),
30752(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30753"$Vd32 = vasrwh($Vu32,$Vv32,$Rt8):sat",
30754tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30755let hasNewValue = 1;
30756let opNewValue = 0;
30757let isPseudo = 1;
30758let isCodeGenOnly = 1;
30759}
30760def V6_vasrwuhrndsat : HInst<
30761(outs HvxVR:$Vd32),
30762(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30763"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):rnd:sat",
30764tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV62]> {
30765let Inst{7-5} = 0b010;
30766let Inst{13-13} = 0b0;
30767let Inst{31-24} = 0b00011000;
30768let hasNewValue = 1;
30769let opNewValue = 0;
30770let DecoderNamespace = "EXT_mmvec";
30771}
30772def V6_vasrwuhsat : HInst<
30773(outs HvxVR:$Vd32),
30774(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30775"$Vd32.uh = vasr($Vu32.w,$Vv32.w,$Rt8):sat",
30776tc_16ff9ef8, TypeCVI_VS>, Enc_a30110, Requires<[UseHVXV60]> {
30777let Inst{7-5} = 0b101;
30778let Inst{13-13} = 0b0;
30779let Inst{31-24} = 0b00011011;
30780let hasNewValue = 1;
30781let opNewValue = 0;
30782let DecoderNamespace = "EXT_mmvec";
30783}
30784def V6_vasrwuhsat_alt : HInst<
30785(outs HvxVR:$Vd32),
30786(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
30787"$Vd32 = vasrwuh($Vu32,$Vv32,$Rt8):sat",
30788tc_16ff9ef8, TypeMAPPING>, Requires<[HasV60]> {
30789let hasNewValue = 1;
30790let opNewValue = 0;
30791let isPseudo = 1;
30792let isCodeGenOnly = 1;
30793}
30794def V6_vasrwv : HInst<
30795(outs HvxVR:$Vd32),
30796(ins HvxVR:$Vu32, HvxVR:$Vv32),
30797"$Vd32.w = vasr($Vu32.w,$Vv32.w)",
30798tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
30799let Inst{7-5} = 0b000;
30800let Inst{13-13} = 0b0;
30801let Inst{31-21} = 0b00011111101;
30802let hasNewValue = 1;
30803let opNewValue = 0;
30804let DecoderNamespace = "EXT_mmvec";
30805}
30806def V6_vasrwv_alt : HInst<
30807(outs HvxVR:$Vd32),
30808(ins HvxVR:$Vu32, HvxVR:$Vv32),
30809"$Vd32 = vasrw($Vu32,$Vv32)",
30810PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30811let hasNewValue = 1;
30812let opNewValue = 0;
30813let isPseudo = 1;
30814let isCodeGenOnly = 1;
30815let DecoderNamespace = "EXT_mmvec";
30816}
30817def V6_vassign : HInst<
30818(outs HvxVR:$Vd32),
30819(ins HvxVR:$Vu32),
30820"$Vd32 = $Vu32",
30821tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
30822let Inst{7-5} = 0b111;
30823let Inst{13-13} = 0b1;
30824let Inst{31-16} = 0b0001111000000011;
30825let hasNewValue = 1;
30826let opNewValue = 0;
30827let DecoderNamespace = "EXT_mmvec";
30828}
30829def V6_vassignp : HInst<
30830(outs HvxWR:$Vdd32),
30831(ins HvxWR:$Vuu32),
30832"$Vdd32 = $Vuu32",
30833CVI_VA, TypeCVI_VA_DV>, Requires<[UseHVXV60]> {
30834let hasNewValue = 1;
30835let opNewValue = 0;
30836let isPseudo = 1;
30837let DecoderNamespace = "EXT_mmvec";
30838}
30839def V6_vavgb : HInst<
30840(outs HvxVR:$Vd32),
30841(ins HvxVR:$Vu32, HvxVR:$Vv32),
30842"$Vd32.b = vavg($Vu32.b,$Vv32.b)",
30843tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
30844let Inst{7-5} = 0b100;
30845let Inst{13-13} = 0b1;
30846let Inst{31-21} = 0b00011111000;
30847let hasNewValue = 1;
30848let opNewValue = 0;
30849let DecoderNamespace = "EXT_mmvec";
30850}
30851def V6_vavgb_alt : HInst<
30852(outs HvxVR:$Vd32),
30853(ins HvxVR:$Vu32, HvxVR:$Vv32),
30854"$Vd32 = vavgb($Vu32,$Vv32)",
30855PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30856let hasNewValue = 1;
30857let opNewValue = 0;
30858let isPseudo = 1;
30859let isCodeGenOnly = 1;
30860let DecoderNamespace = "EXT_mmvec";
30861}
30862def V6_vavgbrnd : HInst<
30863(outs HvxVR:$Vd32),
30864(ins HvxVR:$Vu32, HvxVR:$Vv32),
30865"$Vd32.b = vavg($Vu32.b,$Vv32.b):rnd",
30866tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
30867let Inst{7-5} = 0b101;
30868let Inst{13-13} = 0b1;
30869let Inst{31-21} = 0b00011111000;
30870let hasNewValue = 1;
30871let opNewValue = 0;
30872let DecoderNamespace = "EXT_mmvec";
30873}
30874def V6_vavgbrnd_alt : HInst<
30875(outs HvxVR:$Vd32),
30876(ins HvxVR:$Vu32, HvxVR:$Vv32),
30877"$Vd32 = vavgb($Vu32,$Vv32):rnd",
30878PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
30879let hasNewValue = 1;
30880let opNewValue = 0;
30881let isPseudo = 1;
30882let isCodeGenOnly = 1;
30883let DecoderNamespace = "EXT_mmvec";
30884}
30885def V6_vavgh : HInst<
30886(outs HvxVR:$Vd32),
30887(ins HvxVR:$Vu32, HvxVR:$Vv32),
30888"$Vd32.h = vavg($Vu32.h,$Vv32.h)",
30889tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30890let Inst{7-5} = 0b110;
30891let Inst{13-13} = 0b0;
30892let Inst{31-21} = 0b00011100110;
30893let hasNewValue = 1;
30894let opNewValue = 0;
30895let DecoderNamespace = "EXT_mmvec";
30896}
30897def V6_vavgh_alt : HInst<
30898(outs HvxVR:$Vd32),
30899(ins HvxVR:$Vu32, HvxVR:$Vv32),
30900"$Vd32 = vavgh($Vu32,$Vv32)",
30901PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30902let hasNewValue = 1;
30903let opNewValue = 0;
30904let isPseudo = 1;
30905let isCodeGenOnly = 1;
30906let DecoderNamespace = "EXT_mmvec";
30907}
30908def V6_vavghrnd : HInst<
30909(outs HvxVR:$Vd32),
30910(ins HvxVR:$Vu32, HvxVR:$Vv32),
30911"$Vd32.h = vavg($Vu32.h,$Vv32.h):rnd",
30912tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30913let Inst{7-5} = 0b101;
30914let Inst{13-13} = 0b0;
30915let Inst{31-21} = 0b00011100111;
30916let hasNewValue = 1;
30917let opNewValue = 0;
30918let DecoderNamespace = "EXT_mmvec";
30919}
30920def V6_vavghrnd_alt : HInst<
30921(outs HvxVR:$Vd32),
30922(ins HvxVR:$Vu32, HvxVR:$Vv32),
30923"$Vd32 = vavgh($Vu32,$Vv32):rnd",
30924PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30925let hasNewValue = 1;
30926let opNewValue = 0;
30927let isPseudo = 1;
30928let isCodeGenOnly = 1;
30929let DecoderNamespace = "EXT_mmvec";
30930}
30931def V6_vavgub : HInst<
30932(outs HvxVR:$Vd32),
30933(ins HvxVR:$Vu32, HvxVR:$Vv32),
30934"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub)",
30935tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30936let Inst{7-5} = 0b100;
30937let Inst{13-13} = 0b0;
30938let Inst{31-21} = 0b00011100110;
30939let hasNewValue = 1;
30940let opNewValue = 0;
30941let DecoderNamespace = "EXT_mmvec";
30942}
30943def V6_vavgub_alt : HInst<
30944(outs HvxVR:$Vd32),
30945(ins HvxVR:$Vu32, HvxVR:$Vv32),
30946"$Vd32 = vavgub($Vu32,$Vv32)",
30947PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30948let hasNewValue = 1;
30949let opNewValue = 0;
30950let isPseudo = 1;
30951let isCodeGenOnly = 1;
30952let DecoderNamespace = "EXT_mmvec";
30953}
30954def V6_vavgubrnd : HInst<
30955(outs HvxVR:$Vd32),
30956(ins HvxVR:$Vu32, HvxVR:$Vv32),
30957"$Vd32.ub = vavg($Vu32.ub,$Vv32.ub):rnd",
30958tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30959let Inst{7-5} = 0b011;
30960let Inst{13-13} = 0b0;
30961let Inst{31-21} = 0b00011100111;
30962let hasNewValue = 1;
30963let opNewValue = 0;
30964let DecoderNamespace = "EXT_mmvec";
30965}
30966def V6_vavgubrnd_alt : HInst<
30967(outs HvxVR:$Vd32),
30968(ins HvxVR:$Vu32, HvxVR:$Vv32),
30969"$Vd32 = vavgub($Vu32,$Vv32):rnd",
30970PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30971let hasNewValue = 1;
30972let opNewValue = 0;
30973let isPseudo = 1;
30974let isCodeGenOnly = 1;
30975let DecoderNamespace = "EXT_mmvec";
30976}
30977def V6_vavguh : HInst<
30978(outs HvxVR:$Vd32),
30979(ins HvxVR:$Vu32, HvxVR:$Vv32),
30980"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh)",
30981tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
30982let Inst{7-5} = 0b101;
30983let Inst{13-13} = 0b0;
30984let Inst{31-21} = 0b00011100110;
30985let hasNewValue = 1;
30986let opNewValue = 0;
30987let DecoderNamespace = "EXT_mmvec";
30988}
30989def V6_vavguh_alt : HInst<
30990(outs HvxVR:$Vd32),
30991(ins HvxVR:$Vu32, HvxVR:$Vv32),
30992"$Vd32 = vavguh($Vu32,$Vv32)",
30993PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
30994let hasNewValue = 1;
30995let opNewValue = 0;
30996let isPseudo = 1;
30997let isCodeGenOnly = 1;
30998let DecoderNamespace = "EXT_mmvec";
30999}
31000def V6_vavguhrnd : HInst<
31001(outs HvxVR:$Vd32),
31002(ins HvxVR:$Vu32, HvxVR:$Vv32),
31003"$Vd32.uh = vavg($Vu32.uh,$Vv32.uh):rnd",
31004tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31005let Inst{7-5} = 0b100;
31006let Inst{13-13} = 0b0;
31007let Inst{31-21} = 0b00011100111;
31008let hasNewValue = 1;
31009let opNewValue = 0;
31010let DecoderNamespace = "EXT_mmvec";
31011}
31012def V6_vavguhrnd_alt : HInst<
31013(outs HvxVR:$Vd32),
31014(ins HvxVR:$Vu32, HvxVR:$Vv32),
31015"$Vd32 = vavguh($Vu32,$Vv32):rnd",
31016PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31017let hasNewValue = 1;
31018let opNewValue = 0;
31019let isPseudo = 1;
31020let isCodeGenOnly = 1;
31021let DecoderNamespace = "EXT_mmvec";
31022}
31023def V6_vavguw : HInst<
31024(outs HvxVR:$Vd32),
31025(ins HvxVR:$Vu32, HvxVR:$Vv32),
31026"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw)",
31027tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31028let Inst{7-5} = 0b010;
31029let Inst{13-13} = 0b1;
31030let Inst{31-21} = 0b00011111000;
31031let hasNewValue = 1;
31032let opNewValue = 0;
31033let DecoderNamespace = "EXT_mmvec";
31034}
31035def V6_vavguw_alt : HInst<
31036(outs HvxVR:$Vd32),
31037(ins HvxVR:$Vu32, HvxVR:$Vv32),
31038"$Vd32 = vavguw($Vu32,$Vv32)",
31039PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31040let hasNewValue = 1;
31041let opNewValue = 0;
31042let isPseudo = 1;
31043let isCodeGenOnly = 1;
31044let DecoderNamespace = "EXT_mmvec";
31045}
31046def V6_vavguwrnd : HInst<
31047(outs HvxVR:$Vd32),
31048(ins HvxVR:$Vu32, HvxVR:$Vv32),
31049"$Vd32.uw = vavg($Vu32.uw,$Vv32.uw):rnd",
31050tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
31051let Inst{7-5} = 0b011;
31052let Inst{13-13} = 0b1;
31053let Inst{31-21} = 0b00011111000;
31054let hasNewValue = 1;
31055let opNewValue = 0;
31056let DecoderNamespace = "EXT_mmvec";
31057}
31058def V6_vavguwrnd_alt : HInst<
31059(outs HvxVR:$Vd32),
31060(ins HvxVR:$Vu32, HvxVR:$Vv32),
31061"$Vd32 = vavguw($Vu32,$Vv32):rnd",
31062PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
31063let hasNewValue = 1;
31064let opNewValue = 0;
31065let isPseudo = 1;
31066let isCodeGenOnly = 1;
31067let DecoderNamespace = "EXT_mmvec";
31068}
31069def V6_vavgw : HInst<
31070(outs HvxVR:$Vd32),
31071(ins HvxVR:$Vu32, HvxVR:$Vv32),
31072"$Vd32.w = vavg($Vu32.w,$Vv32.w)",
31073tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31074let Inst{7-5} = 0b111;
31075let Inst{13-13} = 0b0;
31076let Inst{31-21} = 0b00011100110;
31077let hasNewValue = 1;
31078let opNewValue = 0;
31079let DecoderNamespace = "EXT_mmvec";
31080}
31081def V6_vavgw_alt : HInst<
31082(outs HvxVR:$Vd32),
31083(ins HvxVR:$Vu32, HvxVR:$Vv32),
31084"$Vd32 = vavgw($Vu32,$Vv32)",
31085PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31086let hasNewValue = 1;
31087let opNewValue = 0;
31088let isPseudo = 1;
31089let isCodeGenOnly = 1;
31090let DecoderNamespace = "EXT_mmvec";
31091}
31092def V6_vavgwrnd : HInst<
31093(outs HvxVR:$Vd32),
31094(ins HvxVR:$Vu32, HvxVR:$Vv32),
31095"$Vd32.w = vavg($Vu32.w,$Vv32.w):rnd",
31096tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
31097let Inst{7-5} = 0b110;
31098let Inst{13-13} = 0b0;
31099let Inst{31-21} = 0b00011100111;
31100let hasNewValue = 1;
31101let opNewValue = 0;
31102let DecoderNamespace = "EXT_mmvec";
31103}
31104def V6_vavgwrnd_alt : HInst<
31105(outs HvxVR:$Vd32),
31106(ins HvxVR:$Vu32, HvxVR:$Vv32),
31107"$Vd32 = vavgw($Vu32,$Vv32):rnd",
31108PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31109let hasNewValue = 1;
31110let opNewValue = 0;
31111let isPseudo = 1;
31112let isCodeGenOnly = 1;
31113let DecoderNamespace = "EXT_mmvec";
31114}
31115def V6_vccombine : HInst<
31116(outs HvxWR:$Vdd32),
31117(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
31118"if ($Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
31119tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
31120let Inst{7-7} = 0b0;
31121let Inst{13-13} = 0b0;
31122let Inst{31-21} = 0b00011010011;
31123let isPredicated = 1;
31124let hasNewValue = 1;
31125let opNewValue = 0;
31126let DecoderNamespace = "EXT_mmvec";
31127}
31128def V6_vcl0h : HInst<
31129(outs HvxVR:$Vd32),
31130(ins HvxVR:$Vu32),
31131"$Vd32.uh = vcl0($Vu32.uh)",
31132tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31133let Inst{7-5} = 0b111;
31134let Inst{13-13} = 0b0;
31135let Inst{31-16} = 0b0001111000000010;
31136let hasNewValue = 1;
31137let opNewValue = 0;
31138let DecoderNamespace = "EXT_mmvec";
31139}
31140def V6_vcl0h_alt : HInst<
31141(outs HvxVR:$Vd32),
31142(ins HvxVR:$Vu32),
31143"$Vd32 = vcl0h($Vu32)",
31144PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31145let hasNewValue = 1;
31146let opNewValue = 0;
31147let isPseudo = 1;
31148let isCodeGenOnly = 1;
31149let DecoderNamespace = "EXT_mmvec";
31150}
31151def V6_vcl0w : HInst<
31152(outs HvxVR:$Vd32),
31153(ins HvxVR:$Vu32),
31154"$Vd32.uw = vcl0($Vu32.uw)",
31155tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
31156let Inst{7-5} = 0b101;
31157let Inst{13-13} = 0b0;
31158let Inst{31-16} = 0b0001111000000010;
31159let hasNewValue = 1;
31160let opNewValue = 0;
31161let DecoderNamespace = "EXT_mmvec";
31162}
31163def V6_vcl0w_alt : HInst<
31164(outs HvxVR:$Vd32),
31165(ins HvxVR:$Vu32),
31166"$Vd32 = vcl0w($Vu32)",
31167PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31168let hasNewValue = 1;
31169let opNewValue = 0;
31170let isPseudo = 1;
31171let isCodeGenOnly = 1;
31172let DecoderNamespace = "EXT_mmvec";
31173}
31174def V6_vcmov : HInst<
31175(outs HvxVR:$Vd32),
31176(ins PredRegs:$Ps4, HvxVR:$Vu32),
31177"if ($Ps4) $Vd32 = $Vu32",
31178tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
31179let Inst{7-7} = 0b0;
31180let Inst{13-13} = 0b0;
31181let Inst{31-16} = 0b0001101000000000;
31182let isPredicated = 1;
31183let hasNewValue = 1;
31184let opNewValue = 0;
31185let DecoderNamespace = "EXT_mmvec";
31186}
31187def V6_vcombine : HInst<
31188(outs HvxWR:$Vdd32),
31189(ins HvxVR:$Vu32, HvxVR:$Vv32),
31190"$Vdd32 = vcombine($Vu32,$Vv32)",
31191tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
31192let Inst{7-5} = 0b111;
31193let Inst{13-13} = 0b0;
31194let Inst{31-21} = 0b00011111010;
31195let hasNewValue = 1;
31196let opNewValue = 0;
31197let isRegSequence = 1;
31198let DecoderNamespace = "EXT_mmvec";
31199}
31200def V6_vd0 : HInst<
31201(outs HvxVR:$Vd32),
31202(ins),
31203"$Vd32 = #0",
31204CVI_VA, TypeCVI_VA>, Requires<[UseHVXV60]> {
31205let hasNewValue = 1;
31206let opNewValue = 0;
31207let isPseudo = 1;
31208let isCodeGenOnly = 1;
31209let DecoderNamespace = "EXT_mmvec";
31210}
31211def V6_vdd0 : HInst<
31212(outs HvxWR:$Vdd32),
31213(ins),
31214"$Vdd32 = #0",
31215tc_718b5c53, TypeMAPPING>, Requires<[UseHVXV65]> {
31216let hasNewValue = 1;
31217let opNewValue = 0;
31218let isPseudo = 1;
31219let isCodeGenOnly = 1;
31220let DecoderNamespace = "EXT_mmvec";
31221}
31222def V6_vdeal : HInst<
31223(outs HvxVR:$Vy32, HvxVR:$Vx32),
31224(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
31225"vdeal($Vy32,$Vx32,$Rt32)",
31226tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
31227let Inst{7-5} = 0b010;
31228let Inst{13-13} = 0b1;
31229let Inst{31-21} = 0b00011001111;
31230let hasNewValue = 1;
31231let opNewValue = 0;
31232let hasNewValue2 = 1;
31233let opNewValue2 = 1;
31234let DecoderNamespace = "EXT_mmvec";
31235let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
31236}
31237def V6_vdealb : HInst<
31238(outs HvxVR:$Vd32),
31239(ins HvxVR:$Vu32),
31240"$Vd32.b = vdeal($Vu32.b)",
31241tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
31242let Inst{7-5} = 0b111;
31243let Inst{13-13} = 0b0;
31244let Inst{31-16} = 0b0001111000000000;
31245let hasNewValue = 1;
31246let opNewValue = 0;
31247let DecoderNamespace = "EXT_mmvec";
31248}
31249def V6_vdealb4w : HInst<
31250(outs HvxVR:$Vd32),
31251(ins HvxVR:$Vu32, HvxVR:$Vv32),
31252"$Vd32.b = vdeale($Vu32.b,$Vv32.b)",
31253tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
31254let Inst{7-5} = 0b111;
31255let Inst{13-13} = 0b0;
31256let Inst{31-21} = 0b00011111001;
31257let hasNewValue = 1;
31258let opNewValue = 0;
31259let DecoderNamespace = "EXT_mmvec";
31260}
31261def V6_vdealb4w_alt : HInst<
31262(outs HvxVR:$Vd32),
31263(ins HvxVR:$Vu32, HvxVR:$Vv32),
31264"$Vd32 = vdealb4w($Vu32,$Vv32)",
31265PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31266let hasNewValue = 1;
31267let opNewValue = 0;
31268let isPseudo = 1;
31269let isCodeGenOnly = 1;
31270let DecoderNamespace = "EXT_mmvec";
31271}
31272def V6_vdealb_alt : HInst<
31273(outs HvxVR:$Vd32),
31274(ins HvxVR:$Vu32),
31275"$Vd32 = vdealb($Vu32)",
31276PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31277let hasNewValue = 1;
31278let opNewValue = 0;
31279let isPseudo = 1;
31280let isCodeGenOnly = 1;
31281let DecoderNamespace = "EXT_mmvec";
31282}
31283def V6_vdealh : HInst<
31284(outs HvxVR:$Vd32),
31285(ins HvxVR:$Vu32),
31286"$Vd32.h = vdeal($Vu32.h)",
31287tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
31288let Inst{7-5} = 0b110;
31289let Inst{13-13} = 0b0;
31290let Inst{31-16} = 0b0001111000000000;
31291let hasNewValue = 1;
31292let opNewValue = 0;
31293let DecoderNamespace = "EXT_mmvec";
31294}
31295def V6_vdealh_alt : HInst<
31296(outs HvxVR:$Vd32),
31297(ins HvxVR:$Vu32),
31298"$Vd32 = vdealh($Vu32)",
31299PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31300let hasNewValue = 1;
31301let opNewValue = 0;
31302let isPseudo = 1;
31303let isCodeGenOnly = 1;
31304let DecoderNamespace = "EXT_mmvec";
31305}
31306def V6_vdealvdd : HInst<
31307(outs HvxWR:$Vdd32),
31308(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
31309"$Vdd32 = vdeal($Vu32,$Vv32,$Rt8)",
31310tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
31311let Inst{7-5} = 0b100;
31312let Inst{13-13} = 0b1;
31313let Inst{31-24} = 0b00011011;
31314let hasNewValue = 1;
31315let opNewValue = 0;
31316let DecoderNamespace = "EXT_mmvec";
31317}
31318def V6_vdelta : HInst<
31319(outs HvxVR:$Vd32),
31320(ins HvxVR:$Vu32, HvxVR:$Vv32),
31321"$Vd32 = vdelta($Vu32,$Vv32)",
31322tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
31323let Inst{7-5} = 0b001;
31324let Inst{13-13} = 0b0;
31325let Inst{31-21} = 0b00011111001;
31326let hasNewValue = 1;
31327let opNewValue = 0;
31328let DecoderNamespace = "EXT_mmvec";
31329}
31330def V6_vdmpybus : HInst<
31331(outs HvxVR:$Vd32),
31332(ins HvxVR:$Vu32, IntRegs:$Rt32),
31333"$Vd32.h = vdmpy($Vu32.ub,$Rt32.b)",
31334tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
31335let Inst{7-5} = 0b110;
31336let Inst{13-13} = 0b0;
31337let Inst{31-21} = 0b00011001000;
31338let hasNewValue = 1;
31339let opNewValue = 0;
31340let DecoderNamespace = "EXT_mmvec";
31341}
31342def V6_vdmpybus_acc : HInst<
31343(outs HvxVR:$Vx32),
31344(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31345"$Vx32.h += vdmpy($Vu32.ub,$Rt32.b)",
31346tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
31347let Inst{7-5} = 0b110;
31348let Inst{13-13} = 0b1;
31349let Inst{31-21} = 0b00011001000;
31350let hasNewValue = 1;
31351let opNewValue = 0;
31352let isAccumulator = 1;
31353let DecoderNamespace = "EXT_mmvec";
31354let Constraints = "$Vx32 = $Vx32in";
31355}
31356def V6_vdmpybus_acc_alt : HInst<
31357(outs HvxVR:$Vx32),
31358(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31359"$Vx32 += vdmpybus($Vu32,$Rt32)",
31360PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31361let hasNewValue = 1;
31362let opNewValue = 0;
31363let isAccumulator = 1;
31364let isPseudo = 1;
31365let isCodeGenOnly = 1;
31366let DecoderNamespace = "EXT_mmvec";
31367let Constraints = "$Vx32 = $Vx32in";
31368}
31369def V6_vdmpybus_alt : HInst<
31370(outs HvxVR:$Vd32),
31371(ins HvxVR:$Vu32, IntRegs:$Rt32),
31372"$Vd32 = vdmpybus($Vu32,$Rt32)",
31373PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31374let hasNewValue = 1;
31375let opNewValue = 0;
31376let isPseudo = 1;
31377let isCodeGenOnly = 1;
31378let DecoderNamespace = "EXT_mmvec";
31379}
31380def V6_vdmpybus_dv : HInst<
31381(outs HvxWR:$Vdd32),
31382(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31383"$Vdd32.h = vdmpy($Vuu32.ub,$Rt32.b)",
31384tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31385let Inst{7-5} = 0b111;
31386let Inst{13-13} = 0b0;
31387let Inst{31-21} = 0b00011001000;
31388let hasNewValue = 1;
31389let opNewValue = 0;
31390let DecoderNamespace = "EXT_mmvec";
31391}
31392def V6_vdmpybus_dv_acc : HInst<
31393(outs HvxWR:$Vxx32),
31394(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31395"$Vxx32.h += vdmpy($Vuu32.ub,$Rt32.b)",
31396tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31397let Inst{7-5} = 0b111;
31398let Inst{13-13} = 0b1;
31399let Inst{31-21} = 0b00011001000;
31400let hasNewValue = 1;
31401let opNewValue = 0;
31402let isAccumulator = 1;
31403let DecoderNamespace = "EXT_mmvec";
31404let Constraints = "$Vxx32 = $Vxx32in";
31405}
31406def V6_vdmpybus_dv_acc_alt : HInst<
31407(outs HvxWR:$Vxx32),
31408(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31409"$Vxx32 += vdmpybus($Vuu32,$Rt32)",
31410PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31411let hasNewValue = 1;
31412let opNewValue = 0;
31413let isAccumulator = 1;
31414let isPseudo = 1;
31415let isCodeGenOnly = 1;
31416let DecoderNamespace = "EXT_mmvec";
31417let Constraints = "$Vxx32 = $Vxx32in";
31418}
31419def V6_vdmpybus_dv_alt : HInst<
31420(outs HvxWR:$Vdd32),
31421(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31422"$Vdd32 = vdmpybus($Vuu32,$Rt32)",
31423PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31424let hasNewValue = 1;
31425let opNewValue = 0;
31426let isPseudo = 1;
31427let isCodeGenOnly = 1;
31428let DecoderNamespace = "EXT_mmvec";
31429}
31430def V6_vdmpyhb : HInst<
31431(outs HvxVR:$Vd32),
31432(ins HvxVR:$Vu32, IntRegs:$Rt32),
31433"$Vd32.w = vdmpy($Vu32.h,$Rt32.b)",
31434tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
31435let Inst{7-5} = 0b010;
31436let Inst{13-13} = 0b0;
31437let Inst{31-21} = 0b00011001000;
31438let hasNewValue = 1;
31439let opNewValue = 0;
31440let DecoderNamespace = "EXT_mmvec";
31441}
31442def V6_vdmpyhb_acc : HInst<
31443(outs HvxVR:$Vx32),
31444(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31445"$Vx32.w += vdmpy($Vu32.h,$Rt32.b)",
31446tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
31447let Inst{7-5} = 0b011;
31448let Inst{13-13} = 0b1;
31449let Inst{31-21} = 0b00011001000;
31450let hasNewValue = 1;
31451let opNewValue = 0;
31452let isAccumulator = 1;
31453let DecoderNamespace = "EXT_mmvec";
31454let Constraints = "$Vx32 = $Vx32in";
31455}
31456def V6_vdmpyhb_acc_alt : HInst<
31457(outs HvxVR:$Vx32),
31458(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31459"$Vx32 += vdmpyhb($Vu32,$Rt32)",
31460PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31461let hasNewValue = 1;
31462let opNewValue = 0;
31463let isAccumulator = 1;
31464let isPseudo = 1;
31465let isCodeGenOnly = 1;
31466let DecoderNamespace = "EXT_mmvec";
31467let Constraints = "$Vx32 = $Vx32in";
31468}
31469def V6_vdmpyhb_alt : HInst<
31470(outs HvxVR:$Vd32),
31471(ins HvxVR:$Vu32, IntRegs:$Rt32),
31472"$Vd32 = vdmpyhb($Vu32,$Rt32)",
31473PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31474let hasNewValue = 1;
31475let opNewValue = 0;
31476let isPseudo = 1;
31477let isCodeGenOnly = 1;
31478let DecoderNamespace = "EXT_mmvec";
31479}
31480def V6_vdmpyhb_dv : HInst<
31481(outs HvxWR:$Vdd32),
31482(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31483"$Vdd32.w = vdmpy($Vuu32.h,$Rt32.b)",
31484tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31485let Inst{7-5} = 0b100;
31486let Inst{13-13} = 0b0;
31487let Inst{31-21} = 0b00011001001;
31488let hasNewValue = 1;
31489let opNewValue = 0;
31490let DecoderNamespace = "EXT_mmvec";
31491}
31492def V6_vdmpyhb_dv_acc : HInst<
31493(outs HvxWR:$Vxx32),
31494(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31495"$Vxx32.w += vdmpy($Vuu32.h,$Rt32.b)",
31496tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31497let Inst{7-5} = 0b100;
31498let Inst{13-13} = 0b1;
31499let Inst{31-21} = 0b00011001001;
31500let hasNewValue = 1;
31501let opNewValue = 0;
31502let isAccumulator = 1;
31503let DecoderNamespace = "EXT_mmvec";
31504let Constraints = "$Vxx32 = $Vxx32in";
31505}
31506def V6_vdmpyhb_dv_acc_alt : HInst<
31507(outs HvxWR:$Vxx32),
31508(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31509"$Vxx32 += vdmpyhb($Vuu32,$Rt32)",
31510PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31511let hasNewValue = 1;
31512let opNewValue = 0;
31513let isAccumulator = 1;
31514let isPseudo = 1;
31515let isCodeGenOnly = 1;
31516let DecoderNamespace = "EXT_mmvec";
31517let Constraints = "$Vxx32 = $Vxx32in";
31518}
31519def V6_vdmpyhb_dv_alt : HInst<
31520(outs HvxWR:$Vdd32),
31521(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31522"$Vdd32 = vdmpyhb($Vuu32,$Rt32)",
31523PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31524let hasNewValue = 1;
31525let opNewValue = 0;
31526let isPseudo = 1;
31527let isCodeGenOnly = 1;
31528let DecoderNamespace = "EXT_mmvec";
31529}
31530def V6_vdmpyhisat : HInst<
31531(outs HvxVR:$Vd32),
31532(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31533"$Vd32.w = vdmpy($Vuu32.h,$Rt32.h):sat",
31534tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
31535let Inst{7-5} = 0b011;
31536let Inst{13-13} = 0b0;
31537let Inst{31-21} = 0b00011001001;
31538let hasNewValue = 1;
31539let opNewValue = 0;
31540let DecoderNamespace = "EXT_mmvec";
31541}
31542def V6_vdmpyhisat_acc : HInst<
31543(outs HvxVR:$Vx32),
31544(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31545"$Vx32.w += vdmpy($Vuu32.h,$Rt32.h):sat",
31546tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
31547let Inst{7-5} = 0b010;
31548let Inst{13-13} = 0b1;
31549let Inst{31-21} = 0b00011001001;
31550let hasNewValue = 1;
31551let opNewValue = 0;
31552let isAccumulator = 1;
31553let DecoderNamespace = "EXT_mmvec";
31554let Constraints = "$Vx32 = $Vx32in";
31555}
31556def V6_vdmpyhisat_acc_alt : HInst<
31557(outs HvxVR:$Vx32),
31558(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31559"$Vx32 += vdmpyh($Vuu32,$Rt32):sat",
31560PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31561let hasNewValue = 1;
31562let opNewValue = 0;
31563let isAccumulator = 1;
31564let isPseudo = 1;
31565let isCodeGenOnly = 1;
31566let DecoderNamespace = "EXT_mmvec";
31567let Constraints = "$Vx32 = $Vx32in";
31568}
31569def V6_vdmpyhisat_alt : HInst<
31570(outs HvxVR:$Vd32),
31571(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31572"$Vd32 = vdmpyh($Vuu32,$Rt32):sat",
31573PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31574let hasNewValue = 1;
31575let opNewValue = 0;
31576let isPseudo = 1;
31577let isCodeGenOnly = 1;
31578let DecoderNamespace = "EXT_mmvec";
31579}
31580def V6_vdmpyhsat : HInst<
31581(outs HvxVR:$Vd32),
31582(ins HvxVR:$Vu32, IntRegs:$Rt32),
31583"$Vd32.w = vdmpy($Vu32.h,$Rt32.h):sat",
31584tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
31585let Inst{7-5} = 0b010;
31586let Inst{13-13} = 0b0;
31587let Inst{31-21} = 0b00011001001;
31588let hasNewValue = 1;
31589let opNewValue = 0;
31590let DecoderNamespace = "EXT_mmvec";
31591}
31592def V6_vdmpyhsat_acc : HInst<
31593(outs HvxVR:$Vx32),
31594(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31595"$Vx32.w += vdmpy($Vu32.h,$Rt32.h):sat",
31596tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
31597let Inst{7-5} = 0b011;
31598let Inst{13-13} = 0b1;
31599let Inst{31-21} = 0b00011001001;
31600let hasNewValue = 1;
31601let opNewValue = 0;
31602let isAccumulator = 1;
31603let DecoderNamespace = "EXT_mmvec";
31604let Constraints = "$Vx32 = $Vx32in";
31605}
31606def V6_vdmpyhsat_acc_alt : HInst<
31607(outs HvxVR:$Vx32),
31608(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31609"$Vx32 += vdmpyh($Vu32,$Rt32):sat",
31610PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31611let hasNewValue = 1;
31612let opNewValue = 0;
31613let isAccumulator = 1;
31614let isPseudo = 1;
31615let isCodeGenOnly = 1;
31616let DecoderNamespace = "EXT_mmvec";
31617let Constraints = "$Vx32 = $Vx32in";
31618}
31619def V6_vdmpyhsat_alt : HInst<
31620(outs HvxVR:$Vd32),
31621(ins HvxVR:$Vu32, IntRegs:$Rt32),
31622"$Vd32 = vdmpyh($Vu32,$Rt32):sat",
31623PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31624let hasNewValue = 1;
31625let opNewValue = 0;
31626let isPseudo = 1;
31627let isCodeGenOnly = 1;
31628let DecoderNamespace = "EXT_mmvec";
31629}
31630def V6_vdmpyhsuisat : HInst<
31631(outs HvxVR:$Vd32),
31632(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31633"$Vd32.w = vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
31634tc_0b04c6c7, TypeCVI_VX_DV>, Enc_0e41fa, Requires<[UseHVXV60]> {
31635let Inst{7-5} = 0b001;
31636let Inst{13-13} = 0b0;
31637let Inst{31-21} = 0b00011001001;
31638let hasNewValue = 1;
31639let opNewValue = 0;
31640let DecoderNamespace = "EXT_mmvec";
31641}
31642def V6_vdmpyhsuisat_acc : HInst<
31643(outs HvxVR:$Vx32),
31644(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31645"$Vx32.w += vdmpy($Vuu32.h,$Rt32.uh,#1):sat",
31646tc_660769f1, TypeCVI_VX_DV>, Enc_cc857d, Requires<[UseHVXV60]> {
31647let Inst{7-5} = 0b001;
31648let Inst{13-13} = 0b1;
31649let Inst{31-21} = 0b00011001001;
31650let hasNewValue = 1;
31651let opNewValue = 0;
31652let isAccumulator = 1;
31653let DecoderNamespace = "EXT_mmvec";
31654let Constraints = "$Vx32 = $Vx32in";
31655}
31656def V6_vdmpyhsuisat_acc_alt : HInst<
31657(outs HvxVR:$Vx32),
31658(ins HvxVR:$Vx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31659"$Vx32 += vdmpyhsu($Vuu32,$Rt32,#1):sat",
31660PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31661let hasNewValue = 1;
31662let opNewValue = 0;
31663let isAccumulator = 1;
31664let isPseudo = 1;
31665let isCodeGenOnly = 1;
31666let DecoderNamespace = "EXT_mmvec";
31667let Constraints = "$Vx32 = $Vx32in";
31668}
31669def V6_vdmpyhsuisat_alt : HInst<
31670(outs HvxVR:$Vd32),
31671(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31672"$Vd32 = vdmpyhsu($Vuu32,$Rt32,#1):sat",
31673PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31674let hasNewValue = 1;
31675let opNewValue = 0;
31676let isPseudo = 1;
31677let isCodeGenOnly = 1;
31678let DecoderNamespace = "EXT_mmvec";
31679}
31680def V6_vdmpyhsusat : HInst<
31681(outs HvxVR:$Vd32),
31682(ins HvxVR:$Vu32, IntRegs:$Rt32),
31683"$Vd32.w = vdmpy($Vu32.h,$Rt32.uh):sat",
31684tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
31685let Inst{7-5} = 0b000;
31686let Inst{13-13} = 0b0;
31687let Inst{31-21} = 0b00011001001;
31688let hasNewValue = 1;
31689let opNewValue = 0;
31690let DecoderNamespace = "EXT_mmvec";
31691}
31692def V6_vdmpyhsusat_acc : HInst<
31693(outs HvxVR:$Vx32),
31694(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31695"$Vx32.w += vdmpy($Vu32.h,$Rt32.uh):sat",
31696tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
31697let Inst{7-5} = 0b000;
31698let Inst{13-13} = 0b1;
31699let Inst{31-21} = 0b00011001001;
31700let hasNewValue = 1;
31701let opNewValue = 0;
31702let isAccumulator = 1;
31703let DecoderNamespace = "EXT_mmvec";
31704let Constraints = "$Vx32 = $Vx32in";
31705}
31706def V6_vdmpyhsusat_acc_alt : HInst<
31707(outs HvxVR:$Vx32),
31708(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
31709"$Vx32 += vdmpyhsu($Vu32,$Rt32):sat",
31710PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31711let hasNewValue = 1;
31712let opNewValue = 0;
31713let isAccumulator = 1;
31714let isPseudo = 1;
31715let isCodeGenOnly = 1;
31716let DecoderNamespace = "EXT_mmvec";
31717let Constraints = "$Vx32 = $Vx32in";
31718}
31719def V6_vdmpyhsusat_alt : HInst<
31720(outs HvxVR:$Vd32),
31721(ins HvxVR:$Vu32, IntRegs:$Rt32),
31722"$Vd32 = vdmpyhsu($Vu32,$Rt32):sat",
31723PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31724let hasNewValue = 1;
31725let opNewValue = 0;
31726let isPseudo = 1;
31727let isCodeGenOnly = 1;
31728let DecoderNamespace = "EXT_mmvec";
31729}
31730def V6_vdmpyhvsat : HInst<
31731(outs HvxVR:$Vd32),
31732(ins HvxVR:$Vu32, HvxVR:$Vv32),
31733"$Vd32.w = vdmpy($Vu32.h,$Vv32.h):sat",
31734tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
31735let Inst{7-5} = 0b011;
31736let Inst{13-13} = 0b0;
31737let Inst{31-21} = 0b00011100000;
31738let hasNewValue = 1;
31739let opNewValue = 0;
31740let DecoderNamespace = "EXT_mmvec";
31741}
31742def V6_vdmpyhvsat_acc : HInst<
31743(outs HvxVR:$Vx32),
31744(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31745"$Vx32.w += vdmpy($Vu32.h,$Vv32.h):sat",
31746tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
31747let Inst{7-5} = 0b011;
31748let Inst{13-13} = 0b1;
31749let Inst{31-21} = 0b00011100000;
31750let hasNewValue = 1;
31751let opNewValue = 0;
31752let isAccumulator = 1;
31753let DecoderNamespace = "EXT_mmvec";
31754let Constraints = "$Vx32 = $Vx32in";
31755}
31756def V6_vdmpyhvsat_acc_alt : HInst<
31757(outs HvxVR:$Vx32),
31758(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
31759"$Vx32 += vdmpyh($Vu32,$Vv32):sat",
31760PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31761let hasNewValue = 1;
31762let opNewValue = 0;
31763let isAccumulator = 1;
31764let isPseudo = 1;
31765let isCodeGenOnly = 1;
31766let DecoderNamespace = "EXT_mmvec";
31767let Constraints = "$Vx32 = $Vx32in";
31768}
31769def V6_vdmpyhvsat_alt : HInst<
31770(outs HvxVR:$Vd32),
31771(ins HvxVR:$Vu32, HvxVR:$Vv32),
31772"$Vd32 = vdmpyh($Vu32,$Vv32):sat",
31773PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31774let hasNewValue = 1;
31775let opNewValue = 0;
31776let isPseudo = 1;
31777let isCodeGenOnly = 1;
31778let DecoderNamespace = "EXT_mmvec";
31779}
31780def V6_vdsaduh : HInst<
31781(outs HvxWR:$Vdd32),
31782(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31783"$Vdd32.uw = vdsad($Vuu32.uh,$Rt32.uh)",
31784tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
31785let Inst{7-5} = 0b101;
31786let Inst{13-13} = 0b0;
31787let Inst{31-21} = 0b00011001000;
31788let hasNewValue = 1;
31789let opNewValue = 0;
31790let DecoderNamespace = "EXT_mmvec";
31791}
31792def V6_vdsaduh_acc : HInst<
31793(outs HvxWR:$Vxx32),
31794(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31795"$Vxx32.uw += vdsad($Vuu32.uh,$Rt32.uh)",
31796tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
31797let Inst{7-5} = 0b000;
31798let Inst{13-13} = 0b1;
31799let Inst{31-21} = 0b00011001011;
31800let hasNewValue = 1;
31801let opNewValue = 0;
31802let isAccumulator = 1;
31803let DecoderNamespace = "EXT_mmvec";
31804let Constraints = "$Vxx32 = $Vxx32in";
31805}
31806def V6_vdsaduh_acc_alt : HInst<
31807(outs HvxWR:$Vxx32),
31808(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
31809"$Vxx32 += vdsaduh($Vuu32,$Rt32)",
31810PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31811let hasNewValue = 1;
31812let opNewValue = 0;
31813let isAccumulator = 1;
31814let isPseudo = 1;
31815let isCodeGenOnly = 1;
31816let DecoderNamespace = "EXT_mmvec";
31817let Constraints = "$Vxx32 = $Vxx32in";
31818}
31819def V6_vdsaduh_alt : HInst<
31820(outs HvxWR:$Vdd32),
31821(ins HvxWR:$Vuu32, IntRegs:$Rt32),
31822"$Vdd32 = vdsaduh($Vuu32,$Rt32)",
31823PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
31824let hasNewValue = 1;
31825let opNewValue = 0;
31826let isPseudo = 1;
31827let isCodeGenOnly = 1;
31828let DecoderNamespace = "EXT_mmvec";
31829}
31830def V6_veqb : HInst<
31831(outs HvxQR:$Qd4),
31832(ins HvxVR:$Vu32, HvxVR:$Vv32),
31833"$Qd4 = vcmp.eq($Vu32.b,$Vv32.b)",
31834tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31835let Inst{7-2} = 0b000000;
31836let Inst{13-13} = 0b0;
31837let Inst{31-21} = 0b00011111100;
31838let hasNewValue = 1;
31839let opNewValue = 0;
31840let DecoderNamespace = "EXT_mmvec";
31841}
31842def V6_veqb_and : HInst<
31843(outs HvxQR:$Qx4),
31844(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31845"$Qx4 &= vcmp.eq($Vu32.b,$Vv32.b)",
31846tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31847let Inst{7-2} = 0b000000;
31848let Inst{13-13} = 0b1;
31849let Inst{31-21} = 0b00011100100;
31850let DecoderNamespace = "EXT_mmvec";
31851let Constraints = "$Qx4 = $Qx4in";
31852}
31853def V6_veqb_or : HInst<
31854(outs HvxQR:$Qx4),
31855(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31856"$Qx4 |= vcmp.eq($Vu32.b,$Vv32.b)",
31857tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31858let Inst{7-2} = 0b010000;
31859let Inst{13-13} = 0b1;
31860let Inst{31-21} = 0b00011100100;
31861let isAccumulator = 1;
31862let DecoderNamespace = "EXT_mmvec";
31863let Constraints = "$Qx4 = $Qx4in";
31864}
31865def V6_veqb_xor : HInst<
31866(outs HvxQR:$Qx4),
31867(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31868"$Qx4 ^= vcmp.eq($Vu32.b,$Vv32.b)",
31869tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31870let Inst{7-2} = 0b100000;
31871let Inst{13-13} = 0b1;
31872let Inst{31-21} = 0b00011100100;
31873let DecoderNamespace = "EXT_mmvec";
31874let Constraints = "$Qx4 = $Qx4in";
31875}
31876def V6_veqh : HInst<
31877(outs HvxQR:$Qd4),
31878(ins HvxVR:$Vu32, HvxVR:$Vv32),
31879"$Qd4 = vcmp.eq($Vu32.h,$Vv32.h)",
31880tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31881let Inst{7-2} = 0b000001;
31882let Inst{13-13} = 0b0;
31883let Inst{31-21} = 0b00011111100;
31884let hasNewValue = 1;
31885let opNewValue = 0;
31886let DecoderNamespace = "EXT_mmvec";
31887}
31888def V6_veqh_and : HInst<
31889(outs HvxQR:$Qx4),
31890(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31891"$Qx4 &= vcmp.eq($Vu32.h,$Vv32.h)",
31892tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31893let Inst{7-2} = 0b000001;
31894let Inst{13-13} = 0b1;
31895let Inst{31-21} = 0b00011100100;
31896let DecoderNamespace = "EXT_mmvec";
31897let Constraints = "$Qx4 = $Qx4in";
31898}
31899def V6_veqh_or : HInst<
31900(outs HvxQR:$Qx4),
31901(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31902"$Qx4 |= vcmp.eq($Vu32.h,$Vv32.h)",
31903tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31904let Inst{7-2} = 0b010001;
31905let Inst{13-13} = 0b1;
31906let Inst{31-21} = 0b00011100100;
31907let isAccumulator = 1;
31908let DecoderNamespace = "EXT_mmvec";
31909let Constraints = "$Qx4 = $Qx4in";
31910}
31911def V6_veqh_xor : HInst<
31912(outs HvxQR:$Qx4),
31913(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31914"$Qx4 ^= vcmp.eq($Vu32.h,$Vv32.h)",
31915tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31916let Inst{7-2} = 0b100001;
31917let Inst{13-13} = 0b1;
31918let Inst{31-21} = 0b00011100100;
31919let DecoderNamespace = "EXT_mmvec";
31920let Constraints = "$Qx4 = $Qx4in";
31921}
31922def V6_veqw : HInst<
31923(outs HvxQR:$Qd4),
31924(ins HvxVR:$Vu32, HvxVR:$Vv32),
31925"$Qd4 = vcmp.eq($Vu32.w,$Vv32.w)",
31926tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
31927let Inst{7-2} = 0b000010;
31928let Inst{13-13} = 0b0;
31929let Inst{31-21} = 0b00011111100;
31930let hasNewValue = 1;
31931let opNewValue = 0;
31932let DecoderNamespace = "EXT_mmvec";
31933}
31934def V6_veqw_and : HInst<
31935(outs HvxQR:$Qx4),
31936(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31937"$Qx4 &= vcmp.eq($Vu32.w,$Vv32.w)",
31938tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31939let Inst{7-2} = 0b000010;
31940let Inst{13-13} = 0b1;
31941let Inst{31-21} = 0b00011100100;
31942let DecoderNamespace = "EXT_mmvec";
31943let Constraints = "$Qx4 = $Qx4in";
31944}
31945def V6_veqw_or : HInst<
31946(outs HvxQR:$Qx4),
31947(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31948"$Qx4 |= vcmp.eq($Vu32.w,$Vv32.w)",
31949tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31950let Inst{7-2} = 0b010010;
31951let Inst{13-13} = 0b1;
31952let Inst{31-21} = 0b00011100100;
31953let isAccumulator = 1;
31954let DecoderNamespace = "EXT_mmvec";
31955let Constraints = "$Qx4 = $Qx4in";
31956}
31957def V6_veqw_xor : HInst<
31958(outs HvxQR:$Qx4),
31959(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
31960"$Qx4 ^= vcmp.eq($Vu32.w,$Vv32.w)",
31961tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
31962let Inst{7-2} = 0b100010;
31963let Inst{13-13} = 0b1;
31964let Inst{31-21} = 0b00011100100;
31965let DecoderNamespace = "EXT_mmvec";
31966let Constraints = "$Qx4 = $Qx4in";
31967}
31968def V6_vgathermh : HInst<
31969(outs),
31970(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
31971"vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
31972tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
31973let Inst{12-5} = 0b00001000;
31974let Inst{31-21} = 0b00101111000;
31975let hasNewValue = 1;
31976let opNewValue = 0;
31977let accessSize = HalfWordAccess;
31978let isCVLoad = 1;
31979let hasTmpDst = 1;
31980let mayLoad = 1;
31981let Defs = [VTMP];
31982let DecoderNamespace = "EXT_mmvec";
31983}
31984def V6_vgathermhq : HInst<
31985(outs),
31986(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
31987"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vv32.h).h",
31988tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
31989let Inst{12-7} = 0b001010;
31990let Inst{31-21} = 0b00101111000;
31991let hasNewValue = 1;
31992let opNewValue = 0;
31993let accessSize = HalfWordAccess;
31994let isCVLoad = 1;
31995let hasTmpDst = 1;
31996let mayLoad = 1;
31997let Defs = [VTMP];
31998let DecoderNamespace = "EXT_mmvec";
31999}
32000def V6_vgathermhw : HInst<
32001(outs),
32002(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32003"vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32004tc_05058f6f, TypeCVI_GATHER>, Enc_28dcbb, Requires<[UseHVXV65]> {
32005let Inst{12-5} = 0b00010000;
32006let Inst{31-21} = 0b00101111000;
32007let hasNewValue = 1;
32008let opNewValue = 0;
32009let accessSize = HalfWordAccess;
32010let isCVLoad = 1;
32011let hasTmpDst = 1;
32012let mayLoad = 1;
32013let Defs = [VTMP];
32014let DecoderNamespace = "EXT_mmvec";
32015}
32016def V6_vgathermhwq : HInst<
32017(outs),
32018(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32),
32019"if ($Qs4) vtmp.h = vgather($Rt32,$Mu2,$Vvv32.w).h",
32020tc_fd7610da, TypeCVI_GATHER>, Enc_4e4a80, Requires<[UseHVXV65]> {
32021let Inst{12-7} = 0b001100;
32022let Inst{31-21} = 0b00101111000;
32023let hasNewValue = 1;
32024let opNewValue = 0;
32025let accessSize = HalfWordAccess;
32026let isCVLoad = 1;
32027let hasTmpDst = 1;
32028let mayLoad = 1;
32029let Defs = [VTMP];
32030let DecoderNamespace = "EXT_mmvec";
32031}
32032def V6_vgathermw : HInst<
32033(outs),
32034(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32035"vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32036tc_e8797b98, TypeCVI_GATHER>, Enc_8b8927, Requires<[UseHVXV65]> {
32037let Inst{12-5} = 0b00000000;
32038let Inst{31-21} = 0b00101111000;
32039let hasNewValue = 1;
32040let opNewValue = 0;
32041let accessSize = WordAccess;
32042let isCVLoad = 1;
32043let hasTmpDst = 1;
32044let mayLoad = 1;
32045let Defs = [VTMP];
32046let DecoderNamespace = "EXT_mmvec";
32047}
32048def V6_vgathermwq : HInst<
32049(outs),
32050(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32),
32051"if ($Qs4) vtmp.w = vgather($Rt32,$Mu2,$Vv32.w).w",
32052tc_05ac6f98, TypeCVI_GATHER>, Enc_158beb, Requires<[UseHVXV65]> {
32053let Inst{12-7} = 0b001000;
32054let Inst{31-21} = 0b00101111000;
32055let hasNewValue = 1;
32056let opNewValue = 0;
32057let accessSize = WordAccess;
32058let isCVLoad = 1;
32059let hasTmpDst = 1;
32060let mayLoad = 1;
32061let Defs = [VTMP];
32062let DecoderNamespace = "EXT_mmvec";
32063}
32064def V6_vgtb : HInst<
32065(outs HvxQR:$Qd4),
32066(ins HvxVR:$Vu32, HvxVR:$Vv32),
32067"$Qd4 = vcmp.gt($Vu32.b,$Vv32.b)",
32068tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32069let Inst{7-2} = 0b000100;
32070let Inst{13-13} = 0b0;
32071let Inst{31-21} = 0b00011111100;
32072let hasNewValue = 1;
32073let opNewValue = 0;
32074let DecoderNamespace = "EXT_mmvec";
32075}
32076def V6_vgtb_and : HInst<
32077(outs HvxQR:$Qx4),
32078(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32079"$Qx4 &= vcmp.gt($Vu32.b,$Vv32.b)",
32080tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32081let Inst{7-2} = 0b000100;
32082let Inst{13-13} = 0b1;
32083let Inst{31-21} = 0b00011100100;
32084let DecoderNamespace = "EXT_mmvec";
32085let Constraints = "$Qx4 = $Qx4in";
32086}
32087def V6_vgtb_or : HInst<
32088(outs HvxQR:$Qx4),
32089(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32090"$Qx4 |= vcmp.gt($Vu32.b,$Vv32.b)",
32091tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32092let Inst{7-2} = 0b010100;
32093let Inst{13-13} = 0b1;
32094let Inst{31-21} = 0b00011100100;
32095let isAccumulator = 1;
32096let DecoderNamespace = "EXT_mmvec";
32097let Constraints = "$Qx4 = $Qx4in";
32098}
32099def V6_vgtb_xor : HInst<
32100(outs HvxQR:$Qx4),
32101(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32102"$Qx4 ^= vcmp.gt($Vu32.b,$Vv32.b)",
32103tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32104let Inst{7-2} = 0b100100;
32105let Inst{13-13} = 0b1;
32106let Inst{31-21} = 0b00011100100;
32107let DecoderNamespace = "EXT_mmvec";
32108let Constraints = "$Qx4 = $Qx4in";
32109}
32110def V6_vgth : HInst<
32111(outs HvxQR:$Qd4),
32112(ins HvxVR:$Vu32, HvxVR:$Vv32),
32113"$Qd4 = vcmp.gt($Vu32.h,$Vv32.h)",
32114tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32115let Inst{7-2} = 0b000101;
32116let Inst{13-13} = 0b0;
32117let Inst{31-21} = 0b00011111100;
32118let hasNewValue = 1;
32119let opNewValue = 0;
32120let DecoderNamespace = "EXT_mmvec";
32121}
32122def V6_vgth_and : HInst<
32123(outs HvxQR:$Qx4),
32124(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32125"$Qx4 &= vcmp.gt($Vu32.h,$Vv32.h)",
32126tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32127let Inst{7-2} = 0b000101;
32128let Inst{13-13} = 0b1;
32129let Inst{31-21} = 0b00011100100;
32130let DecoderNamespace = "EXT_mmvec";
32131let Constraints = "$Qx4 = $Qx4in";
32132}
32133def V6_vgth_or : HInst<
32134(outs HvxQR:$Qx4),
32135(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32136"$Qx4 |= vcmp.gt($Vu32.h,$Vv32.h)",
32137tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32138let Inst{7-2} = 0b010101;
32139let Inst{13-13} = 0b1;
32140let Inst{31-21} = 0b00011100100;
32141let isAccumulator = 1;
32142let DecoderNamespace = "EXT_mmvec";
32143let Constraints = "$Qx4 = $Qx4in";
32144}
32145def V6_vgth_xor : HInst<
32146(outs HvxQR:$Qx4),
32147(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32148"$Qx4 ^= vcmp.gt($Vu32.h,$Vv32.h)",
32149tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32150let Inst{7-2} = 0b100101;
32151let Inst{13-13} = 0b1;
32152let Inst{31-21} = 0b00011100100;
32153let DecoderNamespace = "EXT_mmvec";
32154let Constraints = "$Qx4 = $Qx4in";
32155}
32156def V6_vgtub : HInst<
32157(outs HvxQR:$Qd4),
32158(ins HvxVR:$Vu32, HvxVR:$Vv32),
32159"$Qd4 = vcmp.gt($Vu32.ub,$Vv32.ub)",
32160tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32161let Inst{7-2} = 0b001000;
32162let Inst{13-13} = 0b0;
32163let Inst{31-21} = 0b00011111100;
32164let hasNewValue = 1;
32165let opNewValue = 0;
32166let DecoderNamespace = "EXT_mmvec";
32167}
32168def V6_vgtub_and : HInst<
32169(outs HvxQR:$Qx4),
32170(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32171"$Qx4 &= vcmp.gt($Vu32.ub,$Vv32.ub)",
32172tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32173let Inst{7-2} = 0b001000;
32174let Inst{13-13} = 0b1;
32175let Inst{31-21} = 0b00011100100;
32176let DecoderNamespace = "EXT_mmvec";
32177let Constraints = "$Qx4 = $Qx4in";
32178}
32179def V6_vgtub_or : HInst<
32180(outs HvxQR:$Qx4),
32181(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32182"$Qx4 |= vcmp.gt($Vu32.ub,$Vv32.ub)",
32183tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32184let Inst{7-2} = 0b011000;
32185let Inst{13-13} = 0b1;
32186let Inst{31-21} = 0b00011100100;
32187let isAccumulator = 1;
32188let DecoderNamespace = "EXT_mmvec";
32189let Constraints = "$Qx4 = $Qx4in";
32190}
32191def V6_vgtub_xor : HInst<
32192(outs HvxQR:$Qx4),
32193(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32194"$Qx4 ^= vcmp.gt($Vu32.ub,$Vv32.ub)",
32195tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32196let Inst{7-2} = 0b101000;
32197let Inst{13-13} = 0b1;
32198let Inst{31-21} = 0b00011100100;
32199let DecoderNamespace = "EXT_mmvec";
32200let Constraints = "$Qx4 = $Qx4in";
32201}
32202def V6_vgtuh : HInst<
32203(outs HvxQR:$Qd4),
32204(ins HvxVR:$Vu32, HvxVR:$Vv32),
32205"$Qd4 = vcmp.gt($Vu32.uh,$Vv32.uh)",
32206tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32207let Inst{7-2} = 0b001001;
32208let Inst{13-13} = 0b0;
32209let Inst{31-21} = 0b00011111100;
32210let hasNewValue = 1;
32211let opNewValue = 0;
32212let DecoderNamespace = "EXT_mmvec";
32213}
32214def V6_vgtuh_and : HInst<
32215(outs HvxQR:$Qx4),
32216(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32217"$Qx4 &= vcmp.gt($Vu32.uh,$Vv32.uh)",
32218tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32219let Inst{7-2} = 0b001001;
32220let Inst{13-13} = 0b1;
32221let Inst{31-21} = 0b00011100100;
32222let DecoderNamespace = "EXT_mmvec";
32223let Constraints = "$Qx4 = $Qx4in";
32224}
32225def V6_vgtuh_or : HInst<
32226(outs HvxQR:$Qx4),
32227(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32228"$Qx4 |= vcmp.gt($Vu32.uh,$Vv32.uh)",
32229tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32230let Inst{7-2} = 0b011001;
32231let Inst{13-13} = 0b1;
32232let Inst{31-21} = 0b00011100100;
32233let isAccumulator = 1;
32234let DecoderNamespace = "EXT_mmvec";
32235let Constraints = "$Qx4 = $Qx4in";
32236}
32237def V6_vgtuh_xor : HInst<
32238(outs HvxQR:$Qx4),
32239(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32240"$Qx4 ^= vcmp.gt($Vu32.uh,$Vv32.uh)",
32241tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32242let Inst{7-2} = 0b101001;
32243let Inst{13-13} = 0b1;
32244let Inst{31-21} = 0b00011100100;
32245let DecoderNamespace = "EXT_mmvec";
32246let Constraints = "$Qx4 = $Qx4in";
32247}
32248def V6_vgtuw : HInst<
32249(outs HvxQR:$Qd4),
32250(ins HvxVR:$Vu32, HvxVR:$Vv32),
32251"$Qd4 = vcmp.gt($Vu32.uw,$Vv32.uw)",
32252tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32253let Inst{7-2} = 0b001010;
32254let Inst{13-13} = 0b0;
32255let Inst{31-21} = 0b00011111100;
32256let hasNewValue = 1;
32257let opNewValue = 0;
32258let DecoderNamespace = "EXT_mmvec";
32259}
32260def V6_vgtuw_and : HInst<
32261(outs HvxQR:$Qx4),
32262(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32263"$Qx4 &= vcmp.gt($Vu32.uw,$Vv32.uw)",
32264tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32265let Inst{7-2} = 0b001010;
32266let Inst{13-13} = 0b1;
32267let Inst{31-21} = 0b00011100100;
32268let DecoderNamespace = "EXT_mmvec";
32269let Constraints = "$Qx4 = $Qx4in";
32270}
32271def V6_vgtuw_or : HInst<
32272(outs HvxQR:$Qx4),
32273(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32274"$Qx4 |= vcmp.gt($Vu32.uw,$Vv32.uw)",
32275tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32276let Inst{7-2} = 0b011010;
32277let Inst{13-13} = 0b1;
32278let Inst{31-21} = 0b00011100100;
32279let isAccumulator = 1;
32280let DecoderNamespace = "EXT_mmvec";
32281let Constraints = "$Qx4 = $Qx4in";
32282}
32283def V6_vgtuw_xor : HInst<
32284(outs HvxQR:$Qx4),
32285(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32286"$Qx4 ^= vcmp.gt($Vu32.uw,$Vv32.uw)",
32287tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32288let Inst{7-2} = 0b101010;
32289let Inst{13-13} = 0b1;
32290let Inst{31-21} = 0b00011100100;
32291let DecoderNamespace = "EXT_mmvec";
32292let Constraints = "$Qx4 = $Qx4in";
32293}
32294def V6_vgtw : HInst<
32295(outs HvxQR:$Qd4),
32296(ins HvxVR:$Vu32, HvxVR:$Vv32),
32297"$Qd4 = vcmp.gt($Vu32.w,$Vv32.w)",
32298tc_56c4f9fe, TypeCVI_VA>, Enc_95441f, Requires<[UseHVXV60]> {
32299let Inst{7-2} = 0b000110;
32300let Inst{13-13} = 0b0;
32301let Inst{31-21} = 0b00011111100;
32302let hasNewValue = 1;
32303let opNewValue = 0;
32304let DecoderNamespace = "EXT_mmvec";
32305}
32306def V6_vgtw_and : HInst<
32307(outs HvxQR:$Qx4),
32308(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32309"$Qx4 &= vcmp.gt($Vu32.w,$Vv32.w)",
32310tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32311let Inst{7-2} = 0b000110;
32312let Inst{13-13} = 0b1;
32313let Inst{31-21} = 0b00011100100;
32314let DecoderNamespace = "EXT_mmvec";
32315let Constraints = "$Qx4 = $Qx4in";
32316}
32317def V6_vgtw_or : HInst<
32318(outs HvxQR:$Qx4),
32319(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32320"$Qx4 |= vcmp.gt($Vu32.w,$Vv32.w)",
32321tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32322let Inst{7-2} = 0b010110;
32323let Inst{13-13} = 0b1;
32324let Inst{31-21} = 0b00011100100;
32325let isAccumulator = 1;
32326let DecoderNamespace = "EXT_mmvec";
32327let Constraints = "$Qx4 = $Qx4in";
32328}
32329def V6_vgtw_xor : HInst<
32330(outs HvxQR:$Qx4),
32331(ins HvxQR:$Qx4in, HvxVR:$Vu32, HvxVR:$Vv32),
32332"$Qx4 ^= vcmp.gt($Vu32.w,$Vv32.w)",
32333tc_257f6f7c, TypeCVI_VA>, Enc_eaa9f8, Requires<[UseHVXV60]> {
32334let Inst{7-2} = 0b100110;
32335let Inst{13-13} = 0b1;
32336let Inst{31-21} = 0b00011100100;
32337let DecoderNamespace = "EXT_mmvec";
32338let Constraints = "$Qx4 = $Qx4in";
32339}
32340def V6_vhist : HInst<
32341(outs),
32342(ins),
32343"vhist",
32344tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV60]> {
32345let Inst{13-0} = 0b10000010000000;
32346let Inst{31-16} = 0b0001111000000000;
32347let DecoderNamespace = "EXT_mmvec";
32348}
32349def V6_vhistq : HInst<
32350(outs),
32351(ins HvxQR:$Qv4),
32352"vhist($Qv4)",
32353tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV60]> {
32354let Inst{13-0} = 0b10000010000000;
32355let Inst{21-16} = 0b000010;
32356let Inst{31-24} = 0b00011110;
32357let DecoderNamespace = "EXT_mmvec";
32358}
32359def V6_vinsertwr : HInst<
32360(outs HvxVR:$Vx32),
32361(ins HvxVR:$Vx32in, IntRegs:$Rt32),
32362"$Vx32.w = vinsert($Rt32)",
32363tc_ac4046bc, TypeCVI_VX_LATE>, Enc_569cfe, Requires<[UseHVXV60]> {
32364let Inst{13-5} = 0b100000001;
32365let Inst{31-21} = 0b00011001101;
32366let hasNewValue = 1;
32367let opNewValue = 0;
32368let DecoderNamespace = "EXT_mmvec";
32369let Constraints = "$Vx32 = $Vx32in";
32370}
32371def V6_vlalignb : HInst<
32372(outs HvxVR:$Vd32),
32373(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32374"$Vd32 = vlalign($Vu32,$Vv32,$Rt8)",
32375tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
32376let Inst{7-5} = 0b001;
32377let Inst{13-13} = 0b0;
32378let Inst{31-24} = 0b00011011;
32379let hasNewValue = 1;
32380let opNewValue = 0;
32381let DecoderNamespace = "EXT_mmvec";
32382}
32383def V6_vlalignbi : HInst<
32384(outs HvxVR:$Vd32),
32385(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32386"$Vd32 = vlalign($Vu32,$Vv32,#$Ii)",
32387tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV60]> {
32388let Inst{13-13} = 0b1;
32389let Inst{31-21} = 0b00011110011;
32390let hasNewValue = 1;
32391let opNewValue = 0;
32392let DecoderNamespace = "EXT_mmvec";
32393}
32394def V6_vlsrb : HInst<
32395(outs HvxVR:$Vd32),
32396(ins HvxVR:$Vu32, IntRegs:$Rt32),
32397"$Vd32.ub = vlsr($Vu32.ub,$Rt32)",
32398tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV62]> {
32399let Inst{7-5} = 0b011;
32400let Inst{13-13} = 0b0;
32401let Inst{31-21} = 0b00011001100;
32402let hasNewValue = 1;
32403let opNewValue = 0;
32404let DecoderNamespace = "EXT_mmvec";
32405}
32406def V6_vlsrh : HInst<
32407(outs HvxVR:$Vd32),
32408(ins HvxVR:$Vu32, IntRegs:$Rt32),
32409"$Vd32.uh = vlsr($Vu32.uh,$Rt32)",
32410tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
32411let Inst{7-5} = 0b010;
32412let Inst{13-13} = 0b0;
32413let Inst{31-21} = 0b00011001100;
32414let hasNewValue = 1;
32415let opNewValue = 0;
32416let DecoderNamespace = "EXT_mmvec";
32417}
32418def V6_vlsrh_alt : HInst<
32419(outs HvxVR:$Vd32),
32420(ins HvxVR:$Vu32, IntRegs:$Rt32),
32421"$Vd32 = vlsrh($Vu32,$Rt32)",
32422PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32423let hasNewValue = 1;
32424let opNewValue = 0;
32425let isPseudo = 1;
32426let isCodeGenOnly = 1;
32427let DecoderNamespace = "EXT_mmvec";
32428}
32429def V6_vlsrhv : HInst<
32430(outs HvxVR:$Vd32),
32431(ins HvxVR:$Vu32, HvxVR:$Vv32),
32432"$Vd32.h = vlsr($Vu32.h,$Vv32.h)",
32433tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
32434let Inst{7-5} = 0b010;
32435let Inst{13-13} = 0b0;
32436let Inst{31-21} = 0b00011111101;
32437let hasNewValue = 1;
32438let opNewValue = 0;
32439let DecoderNamespace = "EXT_mmvec";
32440}
32441def V6_vlsrhv_alt : HInst<
32442(outs HvxVR:$Vd32),
32443(ins HvxVR:$Vu32, HvxVR:$Vv32),
32444"$Vd32 = vlsrh($Vu32,$Vv32)",
32445PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32446let hasNewValue = 1;
32447let opNewValue = 0;
32448let isPseudo = 1;
32449let isCodeGenOnly = 1;
32450let DecoderNamespace = "EXT_mmvec";
32451}
32452def V6_vlsrw : HInst<
32453(outs HvxVR:$Vd32),
32454(ins HvxVR:$Vu32, IntRegs:$Rt32),
32455"$Vd32.uw = vlsr($Vu32.uw,$Rt32)",
32456tc_7417e785, TypeCVI_VS>, Enc_b087ac, Requires<[UseHVXV60]> {
32457let Inst{7-5} = 0b001;
32458let Inst{13-13} = 0b0;
32459let Inst{31-21} = 0b00011001100;
32460let hasNewValue = 1;
32461let opNewValue = 0;
32462let DecoderNamespace = "EXT_mmvec";
32463}
32464def V6_vlsrw_alt : HInst<
32465(outs HvxVR:$Vd32),
32466(ins HvxVR:$Vu32, IntRegs:$Rt32),
32467"$Vd32 = vlsrw($Vu32,$Rt32)",
32468PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32469let hasNewValue = 1;
32470let opNewValue = 0;
32471let isPseudo = 1;
32472let isCodeGenOnly = 1;
32473let DecoderNamespace = "EXT_mmvec";
32474}
32475def V6_vlsrwv : HInst<
32476(outs HvxVR:$Vd32),
32477(ins HvxVR:$Vu32, HvxVR:$Vv32),
32478"$Vd32.w = vlsr($Vu32.w,$Vv32.w)",
32479tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
32480let Inst{7-5} = 0b001;
32481let Inst{13-13} = 0b0;
32482let Inst{31-21} = 0b00011111101;
32483let hasNewValue = 1;
32484let opNewValue = 0;
32485let DecoderNamespace = "EXT_mmvec";
32486}
32487def V6_vlsrwv_alt : HInst<
32488(outs HvxVR:$Vd32),
32489(ins HvxVR:$Vu32, HvxVR:$Vv32),
32490"$Vd32 = vlsrw($Vu32,$Vv32)",
32491PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32492let hasNewValue = 1;
32493let opNewValue = 0;
32494let isPseudo = 1;
32495let isCodeGenOnly = 1;
32496let DecoderNamespace = "EXT_mmvec";
32497}
32498def V6_vlut4 : HInst<
32499(outs HvxVR:$Vd32),
32500(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
32501"$Vd32.h = vlut4($Vu32.uh,$Rtt32.h)",
32502tc_f1de44ef, TypeCVI_VX_DV>, Enc_263841, Requires<[UseHVXV65]> {
32503let Inst{7-5} = 0b100;
32504let Inst{13-13} = 0b0;
32505let Inst{31-21} = 0b00011001011;
32506let hasNewValue = 1;
32507let opNewValue = 0;
32508let DecoderNamespace = "EXT_mmvec";
32509}
32510def V6_vlutvvb : HInst<
32511(outs HvxVR:$Vd32),
32512(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32513"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8)",
32514tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV60]> {
32515let Inst{7-5} = 0b001;
32516let Inst{13-13} = 0b1;
32517let Inst{31-24} = 0b00011011;
32518let hasNewValue = 1;
32519let opNewValue = 0;
32520let DecoderNamespace = "EXT_mmvec";
32521}
32522def V6_vlutvvb_nm : HInst<
32523(outs HvxVR:$Vd32),
32524(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32525"$Vd32.b = vlut32($Vu32.b,$Vv32.b,$Rt8):nomatch",
32526tc_56e64202, TypeCVI_VP>, Enc_a30110, Requires<[UseHVXV62]> {
32527let Inst{7-5} = 0b011;
32528let Inst{13-13} = 0b0;
32529let Inst{31-24} = 0b00011000;
32530let hasNewValue = 1;
32531let opNewValue = 0;
32532let DecoderNamespace = "EXT_mmvec";
32533}
32534def V6_vlutvvb_oracc : HInst<
32535(outs HvxVR:$Vx32),
32536(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32537"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,$Rt8)",
32538tc_9d1dc972, TypeCVI_VP_VS>, Enc_245865, Requires<[UseHVXV60]> {
32539let Inst{7-5} = 0b101;
32540let Inst{13-13} = 0b1;
32541let Inst{31-24} = 0b00011011;
32542let hasNewValue = 1;
32543let opNewValue = 0;
32544let isAccumulator = 1;
32545let DecoderNamespace = "EXT_mmvec";
32546let Constraints = "$Vx32 = $Vx32in";
32547}
32548def V6_vlutvvb_oracci : HInst<
32549(outs HvxVR:$Vx32),
32550(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32551"$Vx32.b |= vlut32($Vu32.b,$Vv32.b,#$Ii)",
32552tc_9d1dc972, TypeCVI_VP_VS>, Enc_cd4705, Requires<[UseHVXV62]> {
32553let Inst{13-13} = 0b1;
32554let Inst{31-21} = 0b00011100110;
32555let hasNewValue = 1;
32556let opNewValue = 0;
32557let isAccumulator = 1;
32558let DecoderNamespace = "EXT_mmvec";
32559let Constraints = "$Vx32 = $Vx32in";
32560}
32561def V6_vlutvvbi : HInst<
32562(outs HvxVR:$Vd32),
32563(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32564"$Vd32.b = vlut32($Vu32.b,$Vv32.b,#$Ii)",
32565tc_56e64202, TypeCVI_VP>, Enc_0b2e5b, Requires<[UseHVXV62]> {
32566let Inst{13-13} = 0b0;
32567let Inst{31-21} = 0b00011110001;
32568let hasNewValue = 1;
32569let opNewValue = 0;
32570let DecoderNamespace = "EXT_mmvec";
32571}
32572def V6_vlutvwh : HInst<
32573(outs HvxWR:$Vdd32),
32574(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32575"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8)",
32576tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
32577let Inst{7-5} = 0b110;
32578let Inst{13-13} = 0b1;
32579let Inst{31-24} = 0b00011011;
32580let hasNewValue = 1;
32581let opNewValue = 0;
32582let DecoderNamespace = "EXT_mmvec";
32583}
32584def V6_vlutvwh_nm : HInst<
32585(outs HvxWR:$Vdd32),
32586(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32587"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,$Rt8):nomatch",
32588tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV62]> {
32589let Inst{7-5} = 0b100;
32590let Inst{13-13} = 0b0;
32591let Inst{31-24} = 0b00011000;
32592let hasNewValue = 1;
32593let opNewValue = 0;
32594let DecoderNamespace = "EXT_mmvec";
32595}
32596def V6_vlutvwh_oracc : HInst<
32597(outs HvxWR:$Vxx32),
32598(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
32599"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,$Rt8)",
32600tc_9d1dc972, TypeCVI_VP_VS>, Enc_7b523d, Requires<[UseHVXV60]> {
32601let Inst{7-5} = 0b111;
32602let Inst{13-13} = 0b1;
32603let Inst{31-24} = 0b00011011;
32604let hasNewValue = 1;
32605let opNewValue = 0;
32606let isAccumulator = 1;
32607let DecoderNamespace = "EXT_mmvec";
32608let Constraints = "$Vxx32 = $Vxx32in";
32609}
32610def V6_vlutvwh_oracci : HInst<
32611(outs HvxWR:$Vxx32),
32612(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32613"$Vxx32.h |= vlut16($Vu32.b,$Vv32.h,#$Ii)",
32614tc_9d1dc972, TypeCVI_VP_VS>, Enc_1178da, Requires<[UseHVXV62]> {
32615let Inst{13-13} = 0b1;
32616let Inst{31-21} = 0b00011100111;
32617let hasNewValue = 1;
32618let opNewValue = 0;
32619let isAccumulator = 1;
32620let DecoderNamespace = "EXT_mmvec";
32621let Constraints = "$Vxx32 = $Vxx32in";
32622}
32623def V6_vlutvwhi : HInst<
32624(outs HvxWR:$Vdd32),
32625(ins HvxVR:$Vu32, HvxVR:$Vv32, u3_0Imm:$Ii),
32626"$Vdd32.h = vlut16($Vu32.b,$Vv32.h,#$Ii)",
32627tc_87adc037, TypeCVI_VP_VS>, Enc_4b39e4, Requires<[UseHVXV62]> {
32628let Inst{13-13} = 0b0;
32629let Inst{31-21} = 0b00011110011;
32630let hasNewValue = 1;
32631let opNewValue = 0;
32632let DecoderNamespace = "EXT_mmvec";
32633}
32634def V6_vmaxb : HInst<
32635(outs HvxVR:$Vd32),
32636(ins HvxVR:$Vu32, HvxVR:$Vv32),
32637"$Vd32.b = vmax($Vu32.b,$Vv32.b)",
32638tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
32639let Inst{7-5} = 0b101;
32640let Inst{13-13} = 0b0;
32641let Inst{31-21} = 0b00011111001;
32642let hasNewValue = 1;
32643let opNewValue = 0;
32644let DecoderNamespace = "EXT_mmvec";
32645}
32646def V6_vmaxb_alt : HInst<
32647(outs HvxVR:$Vd32),
32648(ins HvxVR:$Vu32, HvxVR:$Vv32),
32649"$Vd32 = vmaxb($Vu32,$Vv32)",
32650PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
32651let hasNewValue = 1;
32652let opNewValue = 0;
32653let isPseudo = 1;
32654let isCodeGenOnly = 1;
32655let DecoderNamespace = "EXT_mmvec";
32656}
32657def V6_vmaxh : HInst<
32658(outs HvxVR:$Vd32),
32659(ins HvxVR:$Vu32, HvxVR:$Vv32),
32660"$Vd32.h = vmax($Vu32.h,$Vv32.h)",
32661tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32662let Inst{7-5} = 0b111;
32663let Inst{13-13} = 0b0;
32664let Inst{31-21} = 0b00011111000;
32665let hasNewValue = 1;
32666let opNewValue = 0;
32667let DecoderNamespace = "EXT_mmvec";
32668}
32669def V6_vmaxh_alt : HInst<
32670(outs HvxVR:$Vd32),
32671(ins HvxVR:$Vu32, HvxVR:$Vv32),
32672"$Vd32 = vmaxh($Vu32,$Vv32)",
32673PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32674let hasNewValue = 1;
32675let opNewValue = 0;
32676let isPseudo = 1;
32677let isCodeGenOnly = 1;
32678let DecoderNamespace = "EXT_mmvec";
32679}
32680def V6_vmaxub : HInst<
32681(outs HvxVR:$Vd32),
32682(ins HvxVR:$Vu32, HvxVR:$Vv32),
32683"$Vd32.ub = vmax($Vu32.ub,$Vv32.ub)",
32684tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32685let Inst{7-5} = 0b101;
32686let Inst{13-13} = 0b0;
32687let Inst{31-21} = 0b00011111000;
32688let hasNewValue = 1;
32689let opNewValue = 0;
32690let DecoderNamespace = "EXT_mmvec";
32691}
32692def V6_vmaxub_alt : HInst<
32693(outs HvxVR:$Vd32),
32694(ins HvxVR:$Vu32, HvxVR:$Vv32),
32695"$Vd32 = vmaxub($Vu32,$Vv32)",
32696PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32697let hasNewValue = 1;
32698let opNewValue = 0;
32699let isPseudo = 1;
32700let isCodeGenOnly = 1;
32701let DecoderNamespace = "EXT_mmvec";
32702}
32703def V6_vmaxuh : HInst<
32704(outs HvxVR:$Vd32),
32705(ins HvxVR:$Vu32, HvxVR:$Vv32),
32706"$Vd32.uh = vmax($Vu32.uh,$Vv32.uh)",
32707tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32708let Inst{7-5} = 0b110;
32709let Inst{13-13} = 0b0;
32710let Inst{31-21} = 0b00011111000;
32711let hasNewValue = 1;
32712let opNewValue = 0;
32713let DecoderNamespace = "EXT_mmvec";
32714}
32715def V6_vmaxuh_alt : HInst<
32716(outs HvxVR:$Vd32),
32717(ins HvxVR:$Vu32, HvxVR:$Vv32),
32718"$Vd32 = vmaxuh($Vu32,$Vv32)",
32719PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32720let hasNewValue = 1;
32721let opNewValue = 0;
32722let isPseudo = 1;
32723let isCodeGenOnly = 1;
32724let DecoderNamespace = "EXT_mmvec";
32725}
32726def V6_vmaxw : HInst<
32727(outs HvxVR:$Vd32),
32728(ins HvxVR:$Vu32, HvxVR:$Vv32),
32729"$Vd32.w = vmax($Vu32.w,$Vv32.w)",
32730tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32731let Inst{7-5} = 0b000;
32732let Inst{13-13} = 0b0;
32733let Inst{31-21} = 0b00011111001;
32734let hasNewValue = 1;
32735let opNewValue = 0;
32736let DecoderNamespace = "EXT_mmvec";
32737}
32738def V6_vmaxw_alt : HInst<
32739(outs HvxVR:$Vd32),
32740(ins HvxVR:$Vu32, HvxVR:$Vv32),
32741"$Vd32 = vmaxw($Vu32,$Vv32)",
32742PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32743let hasNewValue = 1;
32744let opNewValue = 0;
32745let isPseudo = 1;
32746let isCodeGenOnly = 1;
32747let DecoderNamespace = "EXT_mmvec";
32748}
32749def V6_vminb : HInst<
32750(outs HvxVR:$Vd32),
32751(ins HvxVR:$Vu32, HvxVR:$Vv32),
32752"$Vd32.b = vmin($Vu32.b,$Vv32.b)",
32753tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
32754let Inst{7-5} = 0b100;
32755let Inst{13-13} = 0b0;
32756let Inst{31-21} = 0b00011111001;
32757let hasNewValue = 1;
32758let opNewValue = 0;
32759let DecoderNamespace = "EXT_mmvec";
32760}
32761def V6_vminb_alt : HInst<
32762(outs HvxVR:$Vd32),
32763(ins HvxVR:$Vu32, HvxVR:$Vv32),
32764"$Vd32 = vminb($Vu32,$Vv32)",
32765PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
32766let hasNewValue = 1;
32767let opNewValue = 0;
32768let isPseudo = 1;
32769let isCodeGenOnly = 1;
32770let DecoderNamespace = "EXT_mmvec";
32771}
32772def V6_vminh : HInst<
32773(outs HvxVR:$Vd32),
32774(ins HvxVR:$Vu32, HvxVR:$Vv32),
32775"$Vd32.h = vmin($Vu32.h,$Vv32.h)",
32776tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32777let Inst{7-5} = 0b011;
32778let Inst{13-13} = 0b0;
32779let Inst{31-21} = 0b00011111000;
32780let hasNewValue = 1;
32781let opNewValue = 0;
32782let DecoderNamespace = "EXT_mmvec";
32783}
32784def V6_vminh_alt : HInst<
32785(outs HvxVR:$Vd32),
32786(ins HvxVR:$Vu32, HvxVR:$Vv32),
32787"$Vd32 = vminh($Vu32,$Vv32)",
32788PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32789let hasNewValue = 1;
32790let opNewValue = 0;
32791let isPseudo = 1;
32792let isCodeGenOnly = 1;
32793let DecoderNamespace = "EXT_mmvec";
32794}
32795def V6_vminub : HInst<
32796(outs HvxVR:$Vd32),
32797(ins HvxVR:$Vu32, HvxVR:$Vv32),
32798"$Vd32.ub = vmin($Vu32.ub,$Vv32.ub)",
32799tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32800let Inst{7-5} = 0b001;
32801let Inst{13-13} = 0b0;
32802let Inst{31-21} = 0b00011111000;
32803let hasNewValue = 1;
32804let opNewValue = 0;
32805let DecoderNamespace = "EXT_mmvec";
32806}
32807def V6_vminub_alt : HInst<
32808(outs HvxVR:$Vd32),
32809(ins HvxVR:$Vu32, HvxVR:$Vv32),
32810"$Vd32 = vminub($Vu32,$Vv32)",
32811PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32812let hasNewValue = 1;
32813let opNewValue = 0;
32814let isPseudo = 1;
32815let isCodeGenOnly = 1;
32816let DecoderNamespace = "EXT_mmvec";
32817}
32818def V6_vminuh : HInst<
32819(outs HvxVR:$Vd32),
32820(ins HvxVR:$Vu32, HvxVR:$Vv32),
32821"$Vd32.uh = vmin($Vu32.uh,$Vv32.uh)",
32822tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32823let Inst{7-5} = 0b010;
32824let Inst{13-13} = 0b0;
32825let Inst{31-21} = 0b00011111000;
32826let hasNewValue = 1;
32827let opNewValue = 0;
32828let DecoderNamespace = "EXT_mmvec";
32829}
32830def V6_vminuh_alt : HInst<
32831(outs HvxVR:$Vd32),
32832(ins HvxVR:$Vu32, HvxVR:$Vv32),
32833"$Vd32 = vminuh($Vu32,$Vv32)",
32834PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32835let hasNewValue = 1;
32836let opNewValue = 0;
32837let isPseudo = 1;
32838let isCodeGenOnly = 1;
32839let DecoderNamespace = "EXT_mmvec";
32840}
32841def V6_vminw : HInst<
32842(outs HvxVR:$Vd32),
32843(ins HvxVR:$Vu32, HvxVR:$Vv32),
32844"$Vd32.w = vmin($Vu32.w,$Vv32.w)",
32845tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
32846let Inst{7-5} = 0b100;
32847let Inst{13-13} = 0b0;
32848let Inst{31-21} = 0b00011111000;
32849let hasNewValue = 1;
32850let opNewValue = 0;
32851let DecoderNamespace = "EXT_mmvec";
32852}
32853def V6_vminw_alt : HInst<
32854(outs HvxVR:$Vd32),
32855(ins HvxVR:$Vu32, HvxVR:$Vv32),
32856"$Vd32 = vminw($Vu32,$Vv32)",
32857PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32858let hasNewValue = 1;
32859let opNewValue = 0;
32860let isPseudo = 1;
32861let isCodeGenOnly = 1;
32862let DecoderNamespace = "EXT_mmvec";
32863}
32864def V6_vmpabus : HInst<
32865(outs HvxWR:$Vdd32),
32866(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32867"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.b)",
32868tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
32869let Inst{7-5} = 0b110;
32870let Inst{13-13} = 0b0;
32871let Inst{31-21} = 0b00011001001;
32872let hasNewValue = 1;
32873let opNewValue = 0;
32874let DecoderNamespace = "EXT_mmvec";
32875}
32876def V6_vmpabus_acc : HInst<
32877(outs HvxWR:$Vxx32),
32878(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32879"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.b)",
32880tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
32881let Inst{7-5} = 0b110;
32882let Inst{13-13} = 0b1;
32883let Inst{31-21} = 0b00011001001;
32884let hasNewValue = 1;
32885let opNewValue = 0;
32886let isAccumulator = 1;
32887let DecoderNamespace = "EXT_mmvec";
32888let Constraints = "$Vxx32 = $Vxx32in";
32889}
32890def V6_vmpabus_acc_alt : HInst<
32891(outs HvxWR:$Vxx32),
32892(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32893"$Vxx32 += vmpabus($Vuu32,$Rt32)",
32894PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32895let hasNewValue = 1;
32896let opNewValue = 0;
32897let isAccumulator = 1;
32898let isPseudo = 1;
32899let isCodeGenOnly = 1;
32900let DecoderNamespace = "EXT_mmvec";
32901let Constraints = "$Vxx32 = $Vxx32in";
32902}
32903def V6_vmpabus_alt : HInst<
32904(outs HvxWR:$Vdd32),
32905(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32906"$Vdd32 = vmpabus($Vuu32,$Rt32)",
32907PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32908let hasNewValue = 1;
32909let opNewValue = 0;
32910let isPseudo = 1;
32911let isCodeGenOnly = 1;
32912let DecoderNamespace = "EXT_mmvec";
32913}
32914def V6_vmpabusv : HInst<
32915(outs HvxWR:$Vdd32),
32916(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32917"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.b)",
32918tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
32919let Inst{7-5} = 0b011;
32920let Inst{13-13} = 0b0;
32921let Inst{31-21} = 0b00011100001;
32922let hasNewValue = 1;
32923let opNewValue = 0;
32924let DecoderNamespace = "EXT_mmvec";
32925}
32926def V6_vmpabusv_alt : HInst<
32927(outs HvxWR:$Vdd32),
32928(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32929"$Vdd32 = vmpabus($Vuu32,$Vvv32)",
32930PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
32931let hasNewValue = 1;
32932let opNewValue = 0;
32933let isPseudo = 1;
32934let isCodeGenOnly = 1;
32935let DecoderNamespace = "EXT_mmvec";
32936}
32937def V6_vmpabuu : HInst<
32938(outs HvxWR:$Vdd32),
32939(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32940"$Vdd32.h = vmpa($Vuu32.ub,$Rt32.ub)",
32941tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV65]> {
32942let Inst{7-5} = 0b011;
32943let Inst{13-13} = 0b0;
32944let Inst{31-21} = 0b00011001011;
32945let hasNewValue = 1;
32946let opNewValue = 0;
32947let DecoderNamespace = "EXT_mmvec";
32948}
32949def V6_vmpabuu_acc : HInst<
32950(outs HvxWR:$Vxx32),
32951(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32952"$Vxx32.h += vmpa($Vuu32.ub,$Rt32.ub)",
32953tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV65]> {
32954let Inst{7-5} = 0b100;
32955let Inst{13-13} = 0b1;
32956let Inst{31-21} = 0b00011001101;
32957let hasNewValue = 1;
32958let opNewValue = 0;
32959let isAccumulator = 1;
32960let DecoderNamespace = "EXT_mmvec";
32961let Constraints = "$Vxx32 = $Vxx32in";
32962}
32963def V6_vmpabuu_acc_alt : HInst<
32964(outs HvxWR:$Vxx32),
32965(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
32966"$Vxx32 += vmpabuu($Vuu32,$Rt32)",
32967PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32968let hasNewValue = 1;
32969let opNewValue = 0;
32970let isAccumulator = 1;
32971let isPseudo = 1;
32972let isCodeGenOnly = 1;
32973let DecoderNamespace = "EXT_mmvec";
32974let Constraints = "$Vxx32 = $Vxx32in";
32975}
32976def V6_vmpabuu_alt : HInst<
32977(outs HvxWR:$Vdd32),
32978(ins HvxWR:$Vuu32, IntRegs:$Rt32),
32979"$Vdd32 = vmpabuu($Vuu32,$Rt32)",
32980PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
32981let hasNewValue = 1;
32982let opNewValue = 0;
32983let isPseudo = 1;
32984let isCodeGenOnly = 1;
32985let DecoderNamespace = "EXT_mmvec";
32986}
32987def V6_vmpabuuv : HInst<
32988(outs HvxWR:$Vdd32),
32989(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
32990"$Vdd32.h = vmpa($Vuu32.ub,$Vvv32.ub)",
32991tc_d8287c14, TypeCVI_VX_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
32992let Inst{7-5} = 0b111;
32993let Inst{13-13} = 0b0;
32994let Inst{31-21} = 0b00011100111;
32995let hasNewValue = 1;
32996let opNewValue = 0;
32997let DecoderNamespace = "EXT_mmvec";
32998}
32999def V6_vmpabuuv_alt : HInst<
33000(outs HvxWR:$Vdd32),
33001(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
33002"$Vdd32 = vmpabuu($Vuu32,$Vvv32)",
33003PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33004let hasNewValue = 1;
33005let opNewValue = 0;
33006let isPseudo = 1;
33007let isCodeGenOnly = 1;
33008let DecoderNamespace = "EXT_mmvec";
33009}
33010def V6_vmpahb : HInst<
33011(outs HvxWR:$Vdd32),
33012(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33013"$Vdd32.w = vmpa($Vuu32.h,$Rt32.b)",
33014tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
33015let Inst{7-5} = 0b111;
33016let Inst{13-13} = 0b0;
33017let Inst{31-21} = 0b00011001001;
33018let hasNewValue = 1;
33019let opNewValue = 0;
33020let DecoderNamespace = "EXT_mmvec";
33021}
33022def V6_vmpahb_acc : HInst<
33023(outs HvxWR:$Vxx32),
33024(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33025"$Vxx32.w += vmpa($Vuu32.h,$Rt32.b)",
33026tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
33027let Inst{7-5} = 0b111;
33028let Inst{13-13} = 0b1;
33029let Inst{31-21} = 0b00011001001;
33030let hasNewValue = 1;
33031let opNewValue = 0;
33032let isAccumulator = 1;
33033let DecoderNamespace = "EXT_mmvec";
33034let Constraints = "$Vxx32 = $Vxx32in";
33035}
33036def V6_vmpahb_acc_alt : HInst<
33037(outs HvxWR:$Vxx32),
33038(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33039"$Vxx32 += vmpahb($Vuu32,$Rt32)",
33040PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33041let hasNewValue = 1;
33042let opNewValue = 0;
33043let isAccumulator = 1;
33044let isPseudo = 1;
33045let isCodeGenOnly = 1;
33046let DecoderNamespace = "EXT_mmvec";
33047let Constraints = "$Vxx32 = $Vxx32in";
33048}
33049def V6_vmpahb_alt : HInst<
33050(outs HvxWR:$Vdd32),
33051(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33052"$Vdd32 = vmpahb($Vuu32,$Rt32)",
33053PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33054let hasNewValue = 1;
33055let opNewValue = 0;
33056let isPseudo = 1;
33057let isCodeGenOnly = 1;
33058let DecoderNamespace = "EXT_mmvec";
33059}
33060def V6_vmpahhsat : HInst<
33061(outs HvxVR:$Vx32),
33062(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33063"$Vx32.h = vmpa($Vx32in.h,$Vu32.h,$Rtt32.h):sat",
33064tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33065let Inst{7-5} = 0b100;
33066let Inst{13-13} = 0b1;
33067let Inst{31-21} = 0b00011001100;
33068let hasNewValue = 1;
33069let opNewValue = 0;
33070let DecoderNamespace = "EXT_mmvec";
33071let Constraints = "$Vx32 = $Vx32in";
33072}
33073def V6_vmpauhb : HInst<
33074(outs HvxWR:$Vdd32),
33075(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33076"$Vdd32.w = vmpa($Vuu32.uh,$Rt32.b)",
33077tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV62]> {
33078let Inst{7-5} = 0b101;
33079let Inst{13-13} = 0b0;
33080let Inst{31-21} = 0b00011001100;
33081let hasNewValue = 1;
33082let opNewValue = 0;
33083let DecoderNamespace = "EXT_mmvec";
33084}
33085def V6_vmpauhb_acc : HInst<
33086(outs HvxWR:$Vxx32),
33087(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33088"$Vxx32.w += vmpa($Vuu32.uh,$Rt32.b)",
33089tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV62]> {
33090let Inst{7-5} = 0b010;
33091let Inst{13-13} = 0b1;
33092let Inst{31-21} = 0b00011001100;
33093let hasNewValue = 1;
33094let opNewValue = 0;
33095let isAccumulator = 1;
33096let DecoderNamespace = "EXT_mmvec";
33097let Constraints = "$Vxx32 = $Vxx32in";
33098}
33099def V6_vmpauhb_acc_alt : HInst<
33100(outs HvxWR:$Vxx32),
33101(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
33102"$Vxx32 += vmpauhb($Vuu32,$Rt32)",
33103PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33104let hasNewValue = 1;
33105let opNewValue = 0;
33106let isAccumulator = 1;
33107let isPseudo = 1;
33108let isCodeGenOnly = 1;
33109let DecoderNamespace = "EXT_mmvec";
33110let Constraints = "$Vxx32 = $Vxx32in";
33111}
33112def V6_vmpauhb_alt : HInst<
33113(outs HvxWR:$Vdd32),
33114(ins HvxWR:$Vuu32, IntRegs:$Rt32),
33115"$Vdd32 = vmpauhb($Vuu32,$Rt32)",
33116PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33117let hasNewValue = 1;
33118let opNewValue = 0;
33119let isPseudo = 1;
33120let isCodeGenOnly = 1;
33121let DecoderNamespace = "EXT_mmvec";
33122}
33123def V6_vmpauhuhsat : HInst<
33124(outs HvxVR:$Vx32),
33125(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33126"$Vx32.h = vmpa($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
33127tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33128let Inst{7-5} = 0b101;
33129let Inst{13-13} = 0b1;
33130let Inst{31-21} = 0b00011001100;
33131let hasNewValue = 1;
33132let opNewValue = 0;
33133let DecoderNamespace = "EXT_mmvec";
33134let Constraints = "$Vx32 = $Vx32in";
33135}
33136def V6_vmpsuhuhsat : HInst<
33137(outs HvxVR:$Vx32),
33138(ins HvxVR:$Vx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
33139"$Vx32.h = vmps($Vx32in.h,$Vu32.uh,$Rtt32.uh):sat",
33140tc_90bcc1db, TypeCVI_VX_DV>, Enc_310ba1, Requires<[UseHVXV65]> {
33141let Inst{7-5} = 0b110;
33142let Inst{13-13} = 0b1;
33143let Inst{31-21} = 0b00011001100;
33144let hasNewValue = 1;
33145let opNewValue = 0;
33146let DecoderNamespace = "EXT_mmvec";
33147let Constraints = "$Vx32 = $Vx32in";
33148}
33149def V6_vmpybus : HInst<
33150(outs HvxWR:$Vdd32),
33151(ins HvxVR:$Vu32, IntRegs:$Rt32),
33152"$Vdd32.h = vmpy($Vu32.ub,$Rt32.b)",
33153tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
33154let Inst{7-5} = 0b101;
33155let Inst{13-13} = 0b0;
33156let Inst{31-21} = 0b00011001001;
33157let hasNewValue = 1;
33158let opNewValue = 0;
33159let DecoderNamespace = "EXT_mmvec";
33160}
33161def V6_vmpybus_acc : HInst<
33162(outs HvxWR:$Vxx32),
33163(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33164"$Vxx32.h += vmpy($Vu32.ub,$Rt32.b)",
33165tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
33166let Inst{7-5} = 0b101;
33167let Inst{13-13} = 0b1;
33168let Inst{31-21} = 0b00011001001;
33169let hasNewValue = 1;
33170let opNewValue = 0;
33171let isAccumulator = 1;
33172let DecoderNamespace = "EXT_mmvec";
33173let Constraints = "$Vxx32 = $Vxx32in";
33174}
33175def V6_vmpybus_acc_alt : HInst<
33176(outs HvxWR:$Vxx32),
33177(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33178"$Vxx32 += vmpybus($Vu32,$Rt32)",
33179PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33180let hasNewValue = 1;
33181let opNewValue = 0;
33182let isAccumulator = 1;
33183let isPseudo = 1;
33184let isCodeGenOnly = 1;
33185let DecoderNamespace = "EXT_mmvec";
33186let Constraints = "$Vxx32 = $Vxx32in";
33187}
33188def V6_vmpybus_alt : HInst<
33189(outs HvxWR:$Vdd32),
33190(ins HvxVR:$Vu32, IntRegs:$Rt32),
33191"$Vdd32 = vmpybus($Vu32,$Rt32)",
33192PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33193let hasNewValue = 1;
33194let opNewValue = 0;
33195let isPseudo = 1;
33196let isCodeGenOnly = 1;
33197let DecoderNamespace = "EXT_mmvec";
33198}
33199def V6_vmpybusv : HInst<
33200(outs HvxWR:$Vdd32),
33201(ins HvxVR:$Vu32, HvxVR:$Vv32),
33202"$Vdd32.h = vmpy($Vu32.ub,$Vv32.b)",
33203tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33204let Inst{7-5} = 0b110;
33205let Inst{13-13} = 0b0;
33206let Inst{31-21} = 0b00011100000;
33207let hasNewValue = 1;
33208let opNewValue = 0;
33209let DecoderNamespace = "EXT_mmvec";
33210}
33211def V6_vmpybusv_acc : HInst<
33212(outs HvxWR:$Vxx32),
33213(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33214"$Vxx32.h += vmpy($Vu32.ub,$Vv32.b)",
33215tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33216let Inst{7-5} = 0b110;
33217let Inst{13-13} = 0b1;
33218let Inst{31-21} = 0b00011100000;
33219let hasNewValue = 1;
33220let opNewValue = 0;
33221let isAccumulator = 1;
33222let DecoderNamespace = "EXT_mmvec";
33223let Constraints = "$Vxx32 = $Vxx32in";
33224}
33225def V6_vmpybusv_acc_alt : HInst<
33226(outs HvxWR:$Vxx32),
33227(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33228"$Vxx32 += vmpybus($Vu32,$Vv32)",
33229PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33230let hasNewValue = 1;
33231let opNewValue = 0;
33232let isAccumulator = 1;
33233let isPseudo = 1;
33234let isCodeGenOnly = 1;
33235let DecoderNamespace = "EXT_mmvec";
33236let Constraints = "$Vxx32 = $Vxx32in";
33237}
33238def V6_vmpybusv_alt : HInst<
33239(outs HvxWR:$Vdd32),
33240(ins HvxVR:$Vu32, HvxVR:$Vv32),
33241"$Vdd32 = vmpybus($Vu32,$Vv32)",
33242PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33243let hasNewValue = 1;
33244let opNewValue = 0;
33245let isPseudo = 1;
33246let isCodeGenOnly = 1;
33247let DecoderNamespace = "EXT_mmvec";
33248}
33249def V6_vmpybv : HInst<
33250(outs HvxWR:$Vdd32),
33251(ins HvxVR:$Vu32, HvxVR:$Vv32),
33252"$Vdd32.h = vmpy($Vu32.b,$Vv32.b)",
33253tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33254let Inst{7-5} = 0b100;
33255let Inst{13-13} = 0b0;
33256let Inst{31-21} = 0b00011100000;
33257let hasNewValue = 1;
33258let opNewValue = 0;
33259let DecoderNamespace = "EXT_mmvec";
33260}
33261def V6_vmpybv_acc : HInst<
33262(outs HvxWR:$Vxx32),
33263(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33264"$Vxx32.h += vmpy($Vu32.b,$Vv32.b)",
33265tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33266let Inst{7-5} = 0b100;
33267let Inst{13-13} = 0b1;
33268let Inst{31-21} = 0b00011100000;
33269let hasNewValue = 1;
33270let opNewValue = 0;
33271let isAccumulator = 1;
33272let DecoderNamespace = "EXT_mmvec";
33273let Constraints = "$Vxx32 = $Vxx32in";
33274}
33275def V6_vmpybv_acc_alt : HInst<
33276(outs HvxWR:$Vxx32),
33277(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33278"$Vxx32 += vmpyb($Vu32,$Vv32)",
33279PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33280let hasNewValue = 1;
33281let opNewValue = 0;
33282let isAccumulator = 1;
33283let isPseudo = 1;
33284let isCodeGenOnly = 1;
33285let DecoderNamespace = "EXT_mmvec";
33286let Constraints = "$Vxx32 = $Vxx32in";
33287}
33288def V6_vmpybv_alt : HInst<
33289(outs HvxWR:$Vdd32),
33290(ins HvxVR:$Vu32, HvxVR:$Vv32),
33291"$Vdd32 = vmpyb($Vu32,$Vv32)",
33292PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33293let hasNewValue = 1;
33294let opNewValue = 0;
33295let isPseudo = 1;
33296let isCodeGenOnly = 1;
33297let DecoderNamespace = "EXT_mmvec";
33298}
33299def V6_vmpyewuh : HInst<
33300(outs HvxVR:$Vd32),
33301(ins HvxVR:$Vu32, HvxVR:$Vv32),
33302"$Vd32.w = vmpye($Vu32.w,$Vv32.uh)",
33303tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33304let Inst{7-5} = 0b101;
33305let Inst{13-13} = 0b0;
33306let Inst{31-21} = 0b00011111111;
33307let hasNewValue = 1;
33308let opNewValue = 0;
33309let DecoderNamespace = "EXT_mmvec";
33310}
33311def V6_vmpyewuh_64 : HInst<
33312(outs HvxWR:$Vdd32),
33313(ins HvxVR:$Vu32, HvxVR:$Vv32),
33314"$Vdd32 = vmpye($Vu32.w,$Vv32.uh)",
33315tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV62]> {
33316let Inst{7-5} = 0b110;
33317let Inst{13-13} = 0b0;
33318let Inst{31-21} = 0b00011110101;
33319let hasNewValue = 1;
33320let opNewValue = 0;
33321let DecoderNamespace = "EXT_mmvec";
33322}
33323def V6_vmpyewuh_alt : HInst<
33324(outs HvxVR:$Vd32),
33325(ins HvxVR:$Vu32, HvxVR:$Vv32),
33326"$Vd32 = vmpyewuh($Vu32,$Vv32)",
33327PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33328let hasNewValue = 1;
33329let opNewValue = 0;
33330let isPseudo = 1;
33331let isCodeGenOnly = 1;
33332let DecoderNamespace = "EXT_mmvec";
33333}
33334def V6_vmpyh : HInst<
33335(outs HvxWR:$Vdd32),
33336(ins HvxVR:$Vu32, IntRegs:$Rt32),
33337"$Vdd32.w = vmpy($Vu32.h,$Rt32.h)",
33338tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
33339let Inst{7-5} = 0b000;
33340let Inst{13-13} = 0b0;
33341let Inst{31-21} = 0b00011001010;
33342let hasNewValue = 1;
33343let opNewValue = 0;
33344let DecoderNamespace = "EXT_mmvec";
33345}
33346def V6_vmpyh_acc : HInst<
33347(outs HvxWR:$Vxx32),
33348(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33349"$Vxx32.w += vmpy($Vu32.h,$Rt32.h)",
33350tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV65]> {
33351let Inst{7-5} = 0b110;
33352let Inst{13-13} = 0b1;
33353let Inst{31-21} = 0b00011001101;
33354let hasNewValue = 1;
33355let opNewValue = 0;
33356let isAccumulator = 1;
33357let DecoderNamespace = "EXT_mmvec";
33358let Constraints = "$Vxx32 = $Vxx32in";
33359}
33360def V6_vmpyh_acc_alt : HInst<
33361(outs HvxWR:$Vxx32),
33362(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33363"$Vxx32 += vmpyh($Vu32,$Rt32)",
33364PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
33365let hasNewValue = 1;
33366let opNewValue = 0;
33367let isAccumulator = 1;
33368let isPseudo = 1;
33369let isCodeGenOnly = 1;
33370let DecoderNamespace = "EXT_mmvec";
33371let Constraints = "$Vxx32 = $Vxx32in";
33372}
33373def V6_vmpyh_alt : HInst<
33374(outs HvxWR:$Vdd32),
33375(ins HvxVR:$Vu32, IntRegs:$Rt32),
33376"$Vdd32 = vmpyh($Vu32,$Rt32)",
33377PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33378let hasNewValue = 1;
33379let opNewValue = 0;
33380let isPseudo = 1;
33381let isCodeGenOnly = 1;
33382let DecoderNamespace = "EXT_mmvec";
33383}
33384def V6_vmpyhsat_acc : HInst<
33385(outs HvxWR:$Vxx32),
33386(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33387"$Vxx32.w += vmpy($Vu32.h,$Rt32.h):sat",
33388tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
33389let Inst{7-5} = 0b000;
33390let Inst{13-13} = 0b1;
33391let Inst{31-21} = 0b00011001010;
33392let hasNewValue = 1;
33393let opNewValue = 0;
33394let isAccumulator = 1;
33395let DecoderNamespace = "EXT_mmvec";
33396let Constraints = "$Vxx32 = $Vxx32in";
33397}
33398def V6_vmpyhsat_acc_alt : HInst<
33399(outs HvxWR:$Vxx32),
33400(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33401"$Vxx32 += vmpyh($Vu32,$Rt32):sat",
33402PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33403let hasNewValue = 1;
33404let opNewValue = 0;
33405let isAccumulator = 1;
33406let isPseudo = 1;
33407let isCodeGenOnly = 1;
33408let DecoderNamespace = "EXT_mmvec";
33409let Constraints = "$Vxx32 = $Vxx32in";
33410}
33411def V6_vmpyhsrs : HInst<
33412(outs HvxVR:$Vd32),
33413(ins HvxVR:$Vu32, IntRegs:$Rt32),
33414"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:rnd:sat",
33415tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33416let Inst{7-5} = 0b010;
33417let Inst{13-13} = 0b0;
33418let Inst{31-21} = 0b00011001010;
33419let hasNewValue = 1;
33420let opNewValue = 0;
33421let DecoderNamespace = "EXT_mmvec";
33422}
33423def V6_vmpyhsrs_alt : HInst<
33424(outs HvxVR:$Vd32),
33425(ins HvxVR:$Vu32, IntRegs:$Rt32),
33426"$Vd32 = vmpyh($Vu32,$Rt32):<<1:rnd:sat",
33427PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33428let hasNewValue = 1;
33429let opNewValue = 0;
33430let isPseudo = 1;
33431let isCodeGenOnly = 1;
33432let DecoderNamespace = "EXT_mmvec";
33433}
33434def V6_vmpyhss : HInst<
33435(outs HvxVR:$Vd32),
33436(ins HvxVR:$Vu32, IntRegs:$Rt32),
33437"$Vd32.h = vmpy($Vu32.h,$Rt32.h):<<1:sat",
33438tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33439let Inst{7-5} = 0b001;
33440let Inst{13-13} = 0b0;
33441let Inst{31-21} = 0b00011001010;
33442let hasNewValue = 1;
33443let opNewValue = 0;
33444let DecoderNamespace = "EXT_mmvec";
33445}
33446def V6_vmpyhss_alt : HInst<
33447(outs HvxVR:$Vd32),
33448(ins HvxVR:$Vu32, IntRegs:$Rt32),
33449"$Vd32 = vmpyh($Vu32,$Rt32):<<1:sat",
33450PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33451let hasNewValue = 1;
33452let opNewValue = 0;
33453let isPseudo = 1;
33454let isCodeGenOnly = 1;
33455let DecoderNamespace = "EXT_mmvec";
33456}
33457def V6_vmpyhus : HInst<
33458(outs HvxWR:$Vdd32),
33459(ins HvxVR:$Vu32, HvxVR:$Vv32),
33460"$Vdd32.w = vmpy($Vu32.h,$Vv32.uh)",
33461tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33462let Inst{7-5} = 0b010;
33463let Inst{13-13} = 0b0;
33464let Inst{31-21} = 0b00011100001;
33465let hasNewValue = 1;
33466let opNewValue = 0;
33467let DecoderNamespace = "EXT_mmvec";
33468}
33469def V6_vmpyhus_acc : HInst<
33470(outs HvxWR:$Vxx32),
33471(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33472"$Vxx32.w += vmpy($Vu32.h,$Vv32.uh)",
33473tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33474let Inst{7-5} = 0b001;
33475let Inst{13-13} = 0b1;
33476let Inst{31-21} = 0b00011100001;
33477let hasNewValue = 1;
33478let opNewValue = 0;
33479let isAccumulator = 1;
33480let DecoderNamespace = "EXT_mmvec";
33481let Constraints = "$Vxx32 = $Vxx32in";
33482}
33483def V6_vmpyhus_acc_alt : HInst<
33484(outs HvxWR:$Vxx32),
33485(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33486"$Vxx32 += vmpyhus($Vu32,$Vv32)",
33487PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33488let hasNewValue = 1;
33489let opNewValue = 0;
33490let isAccumulator = 1;
33491let isPseudo = 1;
33492let isCodeGenOnly = 1;
33493let DecoderNamespace = "EXT_mmvec";
33494let Constraints = "$Vxx32 = $Vxx32in";
33495}
33496def V6_vmpyhus_alt : HInst<
33497(outs HvxWR:$Vdd32),
33498(ins HvxVR:$Vu32, HvxVR:$Vv32),
33499"$Vdd32 = vmpyhus($Vu32,$Vv32)",
33500PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33501let hasNewValue = 1;
33502let opNewValue = 0;
33503let isPseudo = 1;
33504let isCodeGenOnly = 1;
33505let DecoderNamespace = "EXT_mmvec";
33506}
33507def V6_vmpyhv : HInst<
33508(outs HvxWR:$Vdd32),
33509(ins HvxVR:$Vu32, HvxVR:$Vv32),
33510"$Vdd32.w = vmpy($Vu32.h,$Vv32.h)",
33511tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
33512let Inst{7-5} = 0b111;
33513let Inst{13-13} = 0b0;
33514let Inst{31-21} = 0b00011100000;
33515let hasNewValue = 1;
33516let opNewValue = 0;
33517let DecoderNamespace = "EXT_mmvec";
33518}
33519def V6_vmpyhv_acc : HInst<
33520(outs HvxWR:$Vxx32),
33521(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33522"$Vxx32.w += vmpy($Vu32.h,$Vv32.h)",
33523tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
33524let Inst{7-5} = 0b111;
33525let Inst{13-13} = 0b1;
33526let Inst{31-21} = 0b00011100000;
33527let hasNewValue = 1;
33528let opNewValue = 0;
33529let isAccumulator = 1;
33530let DecoderNamespace = "EXT_mmvec";
33531let Constraints = "$Vxx32 = $Vxx32in";
33532}
33533def V6_vmpyhv_acc_alt : HInst<
33534(outs HvxWR:$Vxx32),
33535(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33536"$Vxx32 += vmpyh($Vu32,$Vv32)",
33537PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33538let hasNewValue = 1;
33539let opNewValue = 0;
33540let isAccumulator = 1;
33541let isPseudo = 1;
33542let isCodeGenOnly = 1;
33543let DecoderNamespace = "EXT_mmvec";
33544let Constraints = "$Vxx32 = $Vxx32in";
33545}
33546def V6_vmpyhv_alt : HInst<
33547(outs HvxWR:$Vdd32),
33548(ins HvxVR:$Vu32, HvxVR:$Vv32),
33549"$Vdd32 = vmpyh($Vu32,$Vv32)",
33550PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33551let hasNewValue = 1;
33552let opNewValue = 0;
33553let isPseudo = 1;
33554let isCodeGenOnly = 1;
33555let DecoderNamespace = "EXT_mmvec";
33556}
33557def V6_vmpyhvsrs : HInst<
33558(outs HvxVR:$Vd32),
33559(ins HvxVR:$Vu32, HvxVR:$Vv32),
33560"$Vd32.h = vmpy($Vu32.h,$Vv32.h):<<1:rnd:sat",
33561tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33562let Inst{7-5} = 0b001;
33563let Inst{13-13} = 0b0;
33564let Inst{31-21} = 0b00011100001;
33565let hasNewValue = 1;
33566let opNewValue = 0;
33567let DecoderNamespace = "EXT_mmvec";
33568}
33569def V6_vmpyhvsrs_alt : HInst<
33570(outs HvxVR:$Vd32),
33571(ins HvxVR:$Vu32, HvxVR:$Vv32),
33572"$Vd32 = vmpyh($Vu32,$Vv32):<<1:rnd:sat",
33573PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33574let hasNewValue = 1;
33575let opNewValue = 0;
33576let isPseudo = 1;
33577let isCodeGenOnly = 1;
33578let DecoderNamespace = "EXT_mmvec";
33579}
33580def V6_vmpyieoh : HInst<
33581(outs HvxVR:$Vd32),
33582(ins HvxVR:$Vu32, HvxVR:$Vv32),
33583"$Vd32.w = vmpyieo($Vu32.h,$Vv32.h)",
33584tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
33585let Inst{7-5} = 0b000;
33586let Inst{13-13} = 0b0;
33587let Inst{31-21} = 0b00011111011;
33588let hasNewValue = 1;
33589let opNewValue = 0;
33590let DecoderNamespace = "EXT_mmvec";
33591}
33592def V6_vmpyiewh_acc : HInst<
33593(outs HvxVR:$Vx32),
33594(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33595"$Vx32.w += vmpyie($Vu32.w,$Vv32.h)",
33596tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33597let Inst{7-5} = 0b000;
33598let Inst{13-13} = 0b1;
33599let Inst{31-21} = 0b00011100010;
33600let hasNewValue = 1;
33601let opNewValue = 0;
33602let isAccumulator = 1;
33603let DecoderNamespace = "EXT_mmvec";
33604let Constraints = "$Vx32 = $Vx32in";
33605}
33606def V6_vmpyiewh_acc_alt : HInst<
33607(outs HvxVR:$Vx32),
33608(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33609"$Vx32 += vmpyiewh($Vu32,$Vv32)",
33610PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33611let hasNewValue = 1;
33612let opNewValue = 0;
33613let isAccumulator = 1;
33614let isPseudo = 1;
33615let isCodeGenOnly = 1;
33616let DecoderNamespace = "EXT_mmvec";
33617let Constraints = "$Vx32 = $Vx32in";
33618}
33619def V6_vmpyiewuh : HInst<
33620(outs HvxVR:$Vd32),
33621(ins HvxVR:$Vu32, HvxVR:$Vv32),
33622"$Vd32.w = vmpyie($Vu32.w,$Vv32.uh)",
33623tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33624let Inst{7-5} = 0b000;
33625let Inst{13-13} = 0b0;
33626let Inst{31-21} = 0b00011111110;
33627let hasNewValue = 1;
33628let opNewValue = 0;
33629let DecoderNamespace = "EXT_mmvec";
33630}
33631def V6_vmpyiewuh_acc : HInst<
33632(outs HvxVR:$Vx32),
33633(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33634"$Vx32.w += vmpyie($Vu32.w,$Vv32.uh)",
33635tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33636let Inst{7-5} = 0b101;
33637let Inst{13-13} = 0b1;
33638let Inst{31-21} = 0b00011100001;
33639let hasNewValue = 1;
33640let opNewValue = 0;
33641let isAccumulator = 1;
33642let DecoderNamespace = "EXT_mmvec";
33643let Constraints = "$Vx32 = $Vx32in";
33644}
33645def V6_vmpyiewuh_acc_alt : HInst<
33646(outs HvxVR:$Vx32),
33647(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33648"$Vx32 += vmpyiewuh($Vu32,$Vv32)",
33649PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33650let hasNewValue = 1;
33651let opNewValue = 0;
33652let isAccumulator = 1;
33653let isPseudo = 1;
33654let isCodeGenOnly = 1;
33655let DecoderNamespace = "EXT_mmvec";
33656let Constraints = "$Vx32 = $Vx32in";
33657}
33658def V6_vmpyiewuh_alt : HInst<
33659(outs HvxVR:$Vd32),
33660(ins HvxVR:$Vu32, HvxVR:$Vv32),
33661"$Vd32 = vmpyiewuh($Vu32,$Vv32)",
33662PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33663let hasNewValue = 1;
33664let opNewValue = 0;
33665let isPseudo = 1;
33666let isCodeGenOnly = 1;
33667let DecoderNamespace = "EXT_mmvec";
33668}
33669def V6_vmpyih : HInst<
33670(outs HvxVR:$Vd32),
33671(ins HvxVR:$Vu32, HvxVR:$Vv32),
33672"$Vd32.h = vmpyi($Vu32.h,$Vv32.h)",
33673tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33674let Inst{7-5} = 0b100;
33675let Inst{13-13} = 0b0;
33676let Inst{31-21} = 0b00011100001;
33677let hasNewValue = 1;
33678let opNewValue = 0;
33679let DecoderNamespace = "EXT_mmvec";
33680}
33681def V6_vmpyih_acc : HInst<
33682(outs HvxVR:$Vx32),
33683(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33684"$Vx32.h += vmpyi($Vu32.h,$Vv32.h)",
33685tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
33686let Inst{7-5} = 0b100;
33687let Inst{13-13} = 0b1;
33688let Inst{31-21} = 0b00011100001;
33689let hasNewValue = 1;
33690let opNewValue = 0;
33691let isAccumulator = 1;
33692let DecoderNamespace = "EXT_mmvec";
33693let Constraints = "$Vx32 = $Vx32in";
33694}
33695def V6_vmpyih_acc_alt : HInst<
33696(outs HvxVR:$Vx32),
33697(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33698"$Vx32 += vmpyih($Vu32,$Vv32)",
33699PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33700let hasNewValue = 1;
33701let opNewValue = 0;
33702let isAccumulator = 1;
33703let isPseudo = 1;
33704let isCodeGenOnly = 1;
33705let DecoderNamespace = "EXT_mmvec";
33706let Constraints = "$Vx32 = $Vx32in";
33707}
33708def V6_vmpyih_alt : HInst<
33709(outs HvxVR:$Vd32),
33710(ins HvxVR:$Vu32, HvxVR:$Vv32),
33711"$Vd32 = vmpyih($Vu32,$Vv32)",
33712PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33713let hasNewValue = 1;
33714let opNewValue = 0;
33715let isPseudo = 1;
33716let isCodeGenOnly = 1;
33717let DecoderNamespace = "EXT_mmvec";
33718}
33719def V6_vmpyihb : HInst<
33720(outs HvxVR:$Vd32),
33721(ins HvxVR:$Vu32, IntRegs:$Rt32),
33722"$Vd32.h = vmpyi($Vu32.h,$Rt32.b)",
33723tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33724let Inst{7-5} = 0b000;
33725let Inst{13-13} = 0b0;
33726let Inst{31-21} = 0b00011001011;
33727let hasNewValue = 1;
33728let opNewValue = 0;
33729let DecoderNamespace = "EXT_mmvec";
33730}
33731def V6_vmpyihb_acc : HInst<
33732(outs HvxVR:$Vx32),
33733(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33734"$Vx32.h += vmpyi($Vu32.h,$Rt32.b)",
33735tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33736let Inst{7-5} = 0b001;
33737let Inst{13-13} = 0b1;
33738let Inst{31-21} = 0b00011001011;
33739let hasNewValue = 1;
33740let opNewValue = 0;
33741let isAccumulator = 1;
33742let DecoderNamespace = "EXT_mmvec";
33743let Constraints = "$Vx32 = $Vx32in";
33744}
33745def V6_vmpyihb_acc_alt : HInst<
33746(outs HvxVR:$Vx32),
33747(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33748"$Vx32 += vmpyihb($Vu32,$Rt32)",
33749PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33750let hasNewValue = 1;
33751let opNewValue = 0;
33752let isAccumulator = 1;
33753let isPseudo = 1;
33754let isCodeGenOnly = 1;
33755let DecoderNamespace = "EXT_mmvec";
33756let Constraints = "$Vx32 = $Vx32in";
33757}
33758def V6_vmpyihb_alt : HInst<
33759(outs HvxVR:$Vd32),
33760(ins HvxVR:$Vu32, IntRegs:$Rt32),
33761"$Vd32 = vmpyihb($Vu32,$Rt32)",
33762PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33763let hasNewValue = 1;
33764let opNewValue = 0;
33765let isPseudo = 1;
33766let isCodeGenOnly = 1;
33767let DecoderNamespace = "EXT_mmvec";
33768}
33769def V6_vmpyiowh : HInst<
33770(outs HvxVR:$Vd32),
33771(ins HvxVR:$Vu32, HvxVR:$Vv32),
33772"$Vd32.w = vmpyio($Vu32.w,$Vv32.h)",
33773tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33774let Inst{7-5} = 0b001;
33775let Inst{13-13} = 0b0;
33776let Inst{31-21} = 0b00011111110;
33777let hasNewValue = 1;
33778let opNewValue = 0;
33779let DecoderNamespace = "EXT_mmvec";
33780}
33781def V6_vmpyiowh_alt : HInst<
33782(outs HvxVR:$Vd32),
33783(ins HvxVR:$Vu32, HvxVR:$Vv32),
33784"$Vd32 = vmpyiowh($Vu32,$Vv32)",
33785PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33786let hasNewValue = 1;
33787let opNewValue = 0;
33788let isPseudo = 1;
33789let isCodeGenOnly = 1;
33790let DecoderNamespace = "EXT_mmvec";
33791}
33792def V6_vmpyiwb : HInst<
33793(outs HvxVR:$Vd32),
33794(ins HvxVR:$Vu32, IntRegs:$Rt32),
33795"$Vd32.w = vmpyi($Vu32.w,$Rt32.b)",
33796tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
33797let Inst{7-5} = 0b000;
33798let Inst{13-13} = 0b0;
33799let Inst{31-21} = 0b00011001101;
33800let hasNewValue = 1;
33801let opNewValue = 0;
33802let DecoderNamespace = "EXT_mmvec";
33803}
33804def V6_vmpyiwb_acc : HInst<
33805(outs HvxVR:$Vx32),
33806(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33807"$Vx32.w += vmpyi($Vu32.w,$Rt32.b)",
33808tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
33809let Inst{7-5} = 0b010;
33810let Inst{13-13} = 0b1;
33811let Inst{31-21} = 0b00011001010;
33812let hasNewValue = 1;
33813let opNewValue = 0;
33814let isAccumulator = 1;
33815let DecoderNamespace = "EXT_mmvec";
33816let Constraints = "$Vx32 = $Vx32in";
33817}
33818def V6_vmpyiwb_acc_alt : HInst<
33819(outs HvxVR:$Vx32),
33820(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33821"$Vx32 += vmpyiwb($Vu32,$Rt32)",
33822PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33823let hasNewValue = 1;
33824let opNewValue = 0;
33825let isAccumulator = 1;
33826let isPseudo = 1;
33827let isCodeGenOnly = 1;
33828let DecoderNamespace = "EXT_mmvec";
33829let Constraints = "$Vx32 = $Vx32in";
33830}
33831def V6_vmpyiwb_alt : HInst<
33832(outs HvxVR:$Vd32),
33833(ins HvxVR:$Vu32, IntRegs:$Rt32),
33834"$Vd32 = vmpyiwb($Vu32,$Rt32)",
33835PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33836let hasNewValue = 1;
33837let opNewValue = 0;
33838let isPseudo = 1;
33839let isCodeGenOnly = 1;
33840let DecoderNamespace = "EXT_mmvec";
33841}
33842def V6_vmpyiwh : HInst<
33843(outs HvxVR:$Vd32),
33844(ins HvxVR:$Vu32, IntRegs:$Rt32),
33845"$Vd32.w = vmpyi($Vu32.w,$Rt32.h)",
33846tc_0b04c6c7, TypeCVI_VX_DV>, Enc_b087ac, Requires<[UseHVXV60]> {
33847let Inst{7-5} = 0b111;
33848let Inst{13-13} = 0b0;
33849let Inst{31-21} = 0b00011001100;
33850let hasNewValue = 1;
33851let opNewValue = 0;
33852let DecoderNamespace = "EXT_mmvec";
33853}
33854def V6_vmpyiwh_acc : HInst<
33855(outs HvxVR:$Vx32),
33856(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33857"$Vx32.w += vmpyi($Vu32.w,$Rt32.h)",
33858tc_660769f1, TypeCVI_VX_DV>, Enc_5138b3, Requires<[UseHVXV60]> {
33859let Inst{7-5} = 0b011;
33860let Inst{13-13} = 0b1;
33861let Inst{31-21} = 0b00011001010;
33862let hasNewValue = 1;
33863let opNewValue = 0;
33864let isAccumulator = 1;
33865let DecoderNamespace = "EXT_mmvec";
33866let Constraints = "$Vx32 = $Vx32in";
33867}
33868def V6_vmpyiwh_acc_alt : HInst<
33869(outs HvxVR:$Vx32),
33870(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33871"$Vx32 += vmpyiwh($Vu32,$Rt32)",
33872PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33873let hasNewValue = 1;
33874let opNewValue = 0;
33875let isAccumulator = 1;
33876let isPseudo = 1;
33877let isCodeGenOnly = 1;
33878let DecoderNamespace = "EXT_mmvec";
33879let Constraints = "$Vx32 = $Vx32in";
33880}
33881def V6_vmpyiwh_alt : HInst<
33882(outs HvxVR:$Vd32),
33883(ins HvxVR:$Vu32, IntRegs:$Rt32),
33884"$Vd32 = vmpyiwh($Vu32,$Rt32)",
33885PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33886let hasNewValue = 1;
33887let opNewValue = 0;
33888let isPseudo = 1;
33889let isCodeGenOnly = 1;
33890let DecoderNamespace = "EXT_mmvec";
33891}
33892def V6_vmpyiwub : HInst<
33893(outs HvxVR:$Vd32),
33894(ins HvxVR:$Vu32, IntRegs:$Rt32),
33895"$Vd32.w = vmpyi($Vu32.w,$Rt32.ub)",
33896tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV62]> {
33897let Inst{7-5} = 0b110;
33898let Inst{13-13} = 0b0;
33899let Inst{31-21} = 0b00011001100;
33900let hasNewValue = 1;
33901let opNewValue = 0;
33902let DecoderNamespace = "EXT_mmvec";
33903}
33904def V6_vmpyiwub_acc : HInst<
33905(outs HvxVR:$Vx32),
33906(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33907"$Vx32.w += vmpyi($Vu32.w,$Rt32.ub)",
33908tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV62]> {
33909let Inst{7-5} = 0b001;
33910let Inst{13-13} = 0b1;
33911let Inst{31-21} = 0b00011001100;
33912let hasNewValue = 1;
33913let opNewValue = 0;
33914let isAccumulator = 1;
33915let DecoderNamespace = "EXT_mmvec";
33916let Constraints = "$Vx32 = $Vx32in";
33917}
33918def V6_vmpyiwub_acc_alt : HInst<
33919(outs HvxVR:$Vx32),
33920(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
33921"$Vx32 += vmpyiwub($Vu32,$Rt32)",
33922PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33923let hasNewValue = 1;
33924let opNewValue = 0;
33925let isAccumulator = 1;
33926let isPseudo = 1;
33927let isCodeGenOnly = 1;
33928let DecoderNamespace = "EXT_mmvec";
33929let Constraints = "$Vx32 = $Vx32in";
33930}
33931def V6_vmpyiwub_alt : HInst<
33932(outs HvxVR:$Vd32),
33933(ins HvxVR:$Vu32, IntRegs:$Rt32),
33934"$Vd32 = vmpyiwub($Vu32,$Rt32)",
33935PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
33936let hasNewValue = 1;
33937let opNewValue = 0;
33938let isPseudo = 1;
33939let isCodeGenOnly = 1;
33940let DecoderNamespace = "EXT_mmvec";
33941}
33942def V6_vmpyowh : HInst<
33943(outs HvxVR:$Vd32),
33944(ins HvxVR:$Vu32, HvxVR:$Vv32),
33945"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:sat",
33946tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33947let Inst{7-5} = 0b111;
33948let Inst{13-13} = 0b0;
33949let Inst{31-21} = 0b00011111111;
33950let hasNewValue = 1;
33951let opNewValue = 0;
33952let DecoderNamespace = "EXT_mmvec";
33953}
33954def V6_vmpyowh_64_acc : HInst<
33955(outs HvxWR:$Vxx32),
33956(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
33957"$Vxx32 += vmpyo($Vu32.w,$Vv32.h)",
33958tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV62]> {
33959let Inst{7-5} = 0b011;
33960let Inst{13-13} = 0b1;
33961let Inst{31-21} = 0b00011100001;
33962let hasNewValue = 1;
33963let opNewValue = 0;
33964let isAccumulator = 1;
33965let DecoderNamespace = "EXT_mmvec";
33966let Constraints = "$Vxx32 = $Vxx32in";
33967}
33968def V6_vmpyowh_alt : HInst<
33969(outs HvxVR:$Vd32),
33970(ins HvxVR:$Vu32, HvxVR:$Vv32),
33971"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:sat",
33972PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33973let hasNewValue = 1;
33974let opNewValue = 0;
33975let isPseudo = 1;
33976let isCodeGenOnly = 1;
33977let DecoderNamespace = "EXT_mmvec";
33978}
33979def V6_vmpyowh_rnd : HInst<
33980(outs HvxVR:$Vd32),
33981(ins HvxVR:$Vu32, HvxVR:$Vv32),
33982"$Vd32.w = vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat",
33983tc_d8287c14, TypeCVI_VX_DV>, Enc_45364e, Requires<[UseHVXV60]> {
33984let Inst{7-5} = 0b000;
33985let Inst{13-13} = 0b0;
33986let Inst{31-21} = 0b00011111010;
33987let hasNewValue = 1;
33988let opNewValue = 0;
33989let DecoderNamespace = "EXT_mmvec";
33990}
33991def V6_vmpyowh_rnd_alt : HInst<
33992(outs HvxVR:$Vd32),
33993(ins HvxVR:$Vu32, HvxVR:$Vv32),
33994"$Vd32 = vmpyowh($Vu32,$Vv32):<<1:rnd:sat",
33995PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
33996let hasNewValue = 1;
33997let opNewValue = 0;
33998let isPseudo = 1;
33999let isCodeGenOnly = 1;
34000let DecoderNamespace = "EXT_mmvec";
34001}
34002def V6_vmpyowh_rnd_sacc : HInst<
34003(outs HvxVR:$Vx32),
34004(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34005"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:rnd:sat:shift",
34006tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34007let Inst{7-5} = 0b111;
34008let Inst{13-13} = 0b1;
34009let Inst{31-21} = 0b00011100001;
34010let hasNewValue = 1;
34011let opNewValue = 0;
34012let isAccumulator = 1;
34013let DecoderNamespace = "EXT_mmvec";
34014let Constraints = "$Vx32 = $Vx32in";
34015}
34016def V6_vmpyowh_rnd_sacc_alt : HInst<
34017(outs HvxVR:$Vx32),
34018(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34019"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:rnd:sat:shift",
34020PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34021let hasNewValue = 1;
34022let opNewValue = 0;
34023let isAccumulator = 1;
34024let isPseudo = 1;
34025let DecoderNamespace = "EXT_mmvec";
34026let Constraints = "$Vx32 = $Vx32in";
34027}
34028def V6_vmpyowh_sacc : HInst<
34029(outs HvxVR:$Vx32),
34030(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34031"$Vx32.w += vmpyo($Vu32.w,$Vv32.h):<<1:sat:shift",
34032tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34033let Inst{7-5} = 0b110;
34034let Inst{13-13} = 0b1;
34035let Inst{31-21} = 0b00011100001;
34036let hasNewValue = 1;
34037let opNewValue = 0;
34038let isAccumulator = 1;
34039let DecoderNamespace = "EXT_mmvec";
34040let Constraints = "$Vx32 = $Vx32in";
34041}
34042def V6_vmpyowh_sacc_alt : HInst<
34043(outs HvxVR:$Vx32),
34044(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34045"$Vx32 += vmpyowh($Vu32,$Vv32):<<1:sat:shift",
34046PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34047let hasNewValue = 1;
34048let opNewValue = 0;
34049let isAccumulator = 1;
34050let isPseudo = 1;
34051let DecoderNamespace = "EXT_mmvec";
34052let Constraints = "$Vx32 = $Vx32in";
34053}
34054def V6_vmpyub : HInst<
34055(outs HvxWR:$Vdd32),
34056(ins HvxVR:$Vu32, IntRegs:$Rt32),
34057"$Vdd32.uh = vmpy($Vu32.ub,$Rt32.ub)",
34058tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34059let Inst{7-5} = 0b000;
34060let Inst{13-13} = 0b0;
34061let Inst{31-21} = 0b00011001110;
34062let hasNewValue = 1;
34063let opNewValue = 0;
34064let DecoderNamespace = "EXT_mmvec";
34065}
34066def V6_vmpyub_acc : HInst<
34067(outs HvxWR:$Vxx32),
34068(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34069"$Vxx32.uh += vmpy($Vu32.ub,$Rt32.ub)",
34070tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34071let Inst{7-5} = 0b000;
34072let Inst{13-13} = 0b1;
34073let Inst{31-21} = 0b00011001100;
34074let hasNewValue = 1;
34075let opNewValue = 0;
34076let isAccumulator = 1;
34077let DecoderNamespace = "EXT_mmvec";
34078let Constraints = "$Vxx32 = $Vxx32in";
34079}
34080def V6_vmpyub_acc_alt : HInst<
34081(outs HvxWR:$Vxx32),
34082(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34083"$Vxx32 += vmpyub($Vu32,$Rt32)",
34084PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34085let hasNewValue = 1;
34086let opNewValue = 0;
34087let isAccumulator = 1;
34088let isPseudo = 1;
34089let isCodeGenOnly = 1;
34090let DecoderNamespace = "EXT_mmvec";
34091let Constraints = "$Vxx32 = $Vxx32in";
34092}
34093def V6_vmpyub_alt : HInst<
34094(outs HvxWR:$Vdd32),
34095(ins HvxVR:$Vu32, IntRegs:$Rt32),
34096"$Vdd32 = vmpyub($Vu32,$Rt32)",
34097PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34098let hasNewValue = 1;
34099let opNewValue = 0;
34100let isPseudo = 1;
34101let isCodeGenOnly = 1;
34102let DecoderNamespace = "EXT_mmvec";
34103}
34104def V6_vmpyubv : HInst<
34105(outs HvxWR:$Vdd32),
34106(ins HvxVR:$Vu32, HvxVR:$Vv32),
34107"$Vdd32.uh = vmpy($Vu32.ub,$Vv32.ub)",
34108tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34109let Inst{7-5} = 0b101;
34110let Inst{13-13} = 0b0;
34111let Inst{31-21} = 0b00011100000;
34112let hasNewValue = 1;
34113let opNewValue = 0;
34114let DecoderNamespace = "EXT_mmvec";
34115}
34116def V6_vmpyubv_acc : HInst<
34117(outs HvxWR:$Vxx32),
34118(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34119"$Vxx32.uh += vmpy($Vu32.ub,$Vv32.ub)",
34120tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34121let Inst{7-5} = 0b101;
34122let Inst{13-13} = 0b1;
34123let Inst{31-21} = 0b00011100000;
34124let hasNewValue = 1;
34125let opNewValue = 0;
34126let isAccumulator = 1;
34127let DecoderNamespace = "EXT_mmvec";
34128let Constraints = "$Vxx32 = $Vxx32in";
34129}
34130def V6_vmpyubv_acc_alt : HInst<
34131(outs HvxWR:$Vxx32),
34132(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34133"$Vxx32 += vmpyub($Vu32,$Vv32)",
34134PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34135let hasNewValue = 1;
34136let opNewValue = 0;
34137let isAccumulator = 1;
34138let isPseudo = 1;
34139let isCodeGenOnly = 1;
34140let DecoderNamespace = "EXT_mmvec";
34141let Constraints = "$Vxx32 = $Vxx32in";
34142}
34143def V6_vmpyubv_alt : HInst<
34144(outs HvxWR:$Vdd32),
34145(ins HvxVR:$Vu32, HvxVR:$Vv32),
34146"$Vdd32 = vmpyub($Vu32,$Vv32)",
34147PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34148let hasNewValue = 1;
34149let opNewValue = 0;
34150let isPseudo = 1;
34151let isCodeGenOnly = 1;
34152let DecoderNamespace = "EXT_mmvec";
34153}
34154def V6_vmpyuh : HInst<
34155(outs HvxWR:$Vdd32),
34156(ins HvxVR:$Vu32, IntRegs:$Rt32),
34157"$Vdd32.uw = vmpy($Vu32.uh,$Rt32.uh)",
34158tc_0b04c6c7, TypeCVI_VX_DV>, Enc_01d3d0, Requires<[UseHVXV60]> {
34159let Inst{7-5} = 0b011;
34160let Inst{13-13} = 0b0;
34161let Inst{31-21} = 0b00011001010;
34162let hasNewValue = 1;
34163let opNewValue = 0;
34164let DecoderNamespace = "EXT_mmvec";
34165}
34166def V6_vmpyuh_acc : HInst<
34167(outs HvxWR:$Vxx32),
34168(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34169"$Vxx32.uw += vmpy($Vu32.uh,$Rt32.uh)",
34170tc_660769f1, TypeCVI_VX_DV>, Enc_5e8512, Requires<[UseHVXV60]> {
34171let Inst{7-5} = 0b001;
34172let Inst{13-13} = 0b1;
34173let Inst{31-21} = 0b00011001010;
34174let hasNewValue = 1;
34175let opNewValue = 0;
34176let isAccumulator = 1;
34177let DecoderNamespace = "EXT_mmvec";
34178let Constraints = "$Vxx32 = $Vxx32in";
34179}
34180def V6_vmpyuh_acc_alt : HInst<
34181(outs HvxWR:$Vxx32),
34182(ins HvxWR:$Vxx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34183"$Vxx32 += vmpyuh($Vu32,$Rt32)",
34184PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34185let hasNewValue = 1;
34186let opNewValue = 0;
34187let isAccumulator = 1;
34188let isPseudo = 1;
34189let isCodeGenOnly = 1;
34190let DecoderNamespace = "EXT_mmvec";
34191let Constraints = "$Vxx32 = $Vxx32in";
34192}
34193def V6_vmpyuh_alt : HInst<
34194(outs HvxWR:$Vdd32),
34195(ins HvxVR:$Vu32, IntRegs:$Rt32),
34196"$Vdd32 = vmpyuh($Vu32,$Rt32)",
34197PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34198let hasNewValue = 1;
34199let opNewValue = 0;
34200let isPseudo = 1;
34201let isCodeGenOnly = 1;
34202let DecoderNamespace = "EXT_mmvec";
34203}
34204def V6_vmpyuhe : HInst<
34205(outs HvxVR:$Vd32),
34206(ins HvxVR:$Vu32, IntRegs:$Rt32),
34207"$Vd32.uw = vmpye($Vu32.uh,$Rt32.uh)",
34208tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV65]> {
34209let Inst{7-5} = 0b010;
34210let Inst{13-13} = 0b0;
34211let Inst{31-21} = 0b00011001011;
34212let hasNewValue = 1;
34213let opNewValue = 0;
34214let DecoderNamespace = "EXT_mmvec";
34215}
34216def V6_vmpyuhe_acc : HInst<
34217(outs HvxVR:$Vx32),
34218(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34219"$Vx32.uw += vmpye($Vu32.uh,$Rt32.uh)",
34220tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV65]> {
34221let Inst{7-5} = 0b011;
34222let Inst{13-13} = 0b1;
34223let Inst{31-21} = 0b00011001100;
34224let hasNewValue = 1;
34225let opNewValue = 0;
34226let isAccumulator = 1;
34227let DecoderNamespace = "EXT_mmvec";
34228let Constraints = "$Vx32 = $Vx32in";
34229}
34230def V6_vmpyuhv : HInst<
34231(outs HvxWR:$Vdd32),
34232(ins HvxVR:$Vu32, HvxVR:$Vv32),
34233"$Vdd32.uw = vmpy($Vu32.uh,$Vv32.uh)",
34234tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
34235let Inst{7-5} = 0b000;
34236let Inst{13-13} = 0b0;
34237let Inst{31-21} = 0b00011100001;
34238let hasNewValue = 1;
34239let opNewValue = 0;
34240let DecoderNamespace = "EXT_mmvec";
34241}
34242def V6_vmpyuhv_acc : HInst<
34243(outs HvxWR:$Vxx32),
34244(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34245"$Vxx32.uw += vmpy($Vu32.uh,$Vv32.uh)",
34246tc_08a4f1b6, TypeCVI_VX_DV>, Enc_3fc427, Requires<[UseHVXV60]> {
34247let Inst{7-5} = 0b000;
34248let Inst{13-13} = 0b1;
34249let Inst{31-21} = 0b00011100001;
34250let hasNewValue = 1;
34251let opNewValue = 0;
34252let isAccumulator = 1;
34253let DecoderNamespace = "EXT_mmvec";
34254let Constraints = "$Vxx32 = $Vxx32in";
34255}
34256def V6_vmpyuhv_acc_alt : HInst<
34257(outs HvxWR:$Vxx32),
34258(ins HvxWR:$Vxx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34259"$Vxx32 += vmpyuh($Vu32,$Vv32)",
34260PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34261let hasNewValue = 1;
34262let opNewValue = 0;
34263let isAccumulator = 1;
34264let isPseudo = 1;
34265let isCodeGenOnly = 1;
34266let DecoderNamespace = "EXT_mmvec";
34267let Constraints = "$Vxx32 = $Vxx32in";
34268}
34269def V6_vmpyuhv_alt : HInst<
34270(outs HvxWR:$Vdd32),
34271(ins HvxVR:$Vu32, HvxVR:$Vv32),
34272"$Vdd32 = vmpyuh($Vu32,$Vv32)",
34273PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34274let hasNewValue = 1;
34275let opNewValue = 0;
34276let isPseudo = 1;
34277let isCodeGenOnly = 1;
34278let DecoderNamespace = "EXT_mmvec";
34279}
34280def V6_vmux : HInst<
34281(outs HvxVR:$Vd32),
34282(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
34283"$Vd32 = vmux($Qt4,$Vu32,$Vv32)",
34284tc_257f6f7c, TypeCVI_VA>, Enc_31db33, Requires<[UseHVXV60]> {
34285let Inst{7-7} = 0b0;
34286let Inst{13-13} = 0b1;
34287let Inst{31-21} = 0b00011110111;
34288let hasNewValue = 1;
34289let opNewValue = 0;
34290let DecoderNamespace = "EXT_mmvec";
34291}
34292def V6_vnavgb : HInst<
34293(outs HvxVR:$Vd32),
34294(ins HvxVR:$Vu32, HvxVR:$Vv32),
34295"$Vd32.b = vnavg($Vu32.b,$Vv32.b)",
34296tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV65]> {
34297let Inst{7-5} = 0b110;
34298let Inst{13-13} = 0b1;
34299let Inst{31-21} = 0b00011111000;
34300let hasNewValue = 1;
34301let opNewValue = 0;
34302let DecoderNamespace = "EXT_mmvec";
34303}
34304def V6_vnavgb_alt : HInst<
34305(outs HvxVR:$Vd32),
34306(ins HvxVR:$Vu32, HvxVR:$Vv32),
34307"$Vd32 = vnavgb($Vu32,$Vv32)",
34308PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34309let hasNewValue = 1;
34310let opNewValue = 0;
34311let isPseudo = 1;
34312let isCodeGenOnly = 1;
34313let DecoderNamespace = "EXT_mmvec";
34314}
34315def V6_vnavgh : HInst<
34316(outs HvxVR:$Vd32),
34317(ins HvxVR:$Vu32, HvxVR:$Vv32),
34318"$Vd32.h = vnavg($Vu32.h,$Vv32.h)",
34319tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34320let Inst{7-5} = 0b001;
34321let Inst{13-13} = 0b0;
34322let Inst{31-21} = 0b00011100111;
34323let hasNewValue = 1;
34324let opNewValue = 0;
34325let DecoderNamespace = "EXT_mmvec";
34326}
34327def V6_vnavgh_alt : HInst<
34328(outs HvxVR:$Vd32),
34329(ins HvxVR:$Vu32, HvxVR:$Vv32),
34330"$Vd32 = vnavgh($Vu32,$Vv32)",
34331PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34332let hasNewValue = 1;
34333let opNewValue = 0;
34334let isPseudo = 1;
34335let isCodeGenOnly = 1;
34336let DecoderNamespace = "EXT_mmvec";
34337}
34338def V6_vnavgub : HInst<
34339(outs HvxVR:$Vd32),
34340(ins HvxVR:$Vu32, HvxVR:$Vv32),
34341"$Vd32.b = vnavg($Vu32.ub,$Vv32.ub)",
34342tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34343let Inst{7-5} = 0b000;
34344let Inst{13-13} = 0b0;
34345let Inst{31-21} = 0b00011100111;
34346let hasNewValue = 1;
34347let opNewValue = 0;
34348let DecoderNamespace = "EXT_mmvec";
34349}
34350def V6_vnavgub_alt : HInst<
34351(outs HvxVR:$Vd32),
34352(ins HvxVR:$Vu32, HvxVR:$Vv32),
34353"$Vd32 = vnavgub($Vu32,$Vv32)",
34354PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34355let hasNewValue = 1;
34356let opNewValue = 0;
34357let isPseudo = 1;
34358let isCodeGenOnly = 1;
34359let DecoderNamespace = "EXT_mmvec";
34360}
34361def V6_vnavgw : HInst<
34362(outs HvxVR:$Vd32),
34363(ins HvxVR:$Vu32, HvxVR:$Vv32),
34364"$Vd32.w = vnavg($Vu32.w,$Vv32.w)",
34365tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34366let Inst{7-5} = 0b010;
34367let Inst{13-13} = 0b0;
34368let Inst{31-21} = 0b00011100111;
34369let hasNewValue = 1;
34370let opNewValue = 0;
34371let DecoderNamespace = "EXT_mmvec";
34372}
34373def V6_vnavgw_alt : HInst<
34374(outs HvxVR:$Vd32),
34375(ins HvxVR:$Vu32, HvxVR:$Vv32),
34376"$Vd32 = vnavgw($Vu32,$Vv32)",
34377PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34378let hasNewValue = 1;
34379let opNewValue = 0;
34380let isPseudo = 1;
34381let isCodeGenOnly = 1;
34382let DecoderNamespace = "EXT_mmvec";
34383}
34384def V6_vnccombine : HInst<
34385(outs HvxWR:$Vdd32),
34386(ins PredRegs:$Ps4, HvxVR:$Vu32, HvxVR:$Vv32),
34387"if (!$Ps4) $Vdd32 = vcombine($Vu32,$Vv32)",
34388tc_af25efd9, TypeCVI_VA_DV>, Enc_8c2412, Requires<[UseHVXV60]> {
34389let Inst{7-7} = 0b0;
34390let Inst{13-13} = 0b0;
34391let Inst{31-21} = 0b00011010010;
34392let isPredicated = 1;
34393let isPredicatedFalse = 1;
34394let hasNewValue = 1;
34395let opNewValue = 0;
34396let DecoderNamespace = "EXT_mmvec";
34397}
34398def V6_vncmov : HInst<
34399(outs HvxVR:$Vd32),
34400(ins PredRegs:$Ps4, HvxVR:$Vu32),
34401"if (!$Ps4) $Vd32 = $Vu32",
34402tc_3aacf4a8, TypeCVI_VA>, Enc_770858, Requires<[UseHVXV60]> {
34403let Inst{7-7} = 0b0;
34404let Inst{13-13} = 0b0;
34405let Inst{31-16} = 0b0001101000100000;
34406let isPredicated = 1;
34407let isPredicatedFalse = 1;
34408let hasNewValue = 1;
34409let opNewValue = 0;
34410let DecoderNamespace = "EXT_mmvec";
34411}
34412def V6_vnormamth : HInst<
34413(outs HvxVR:$Vd32),
34414(ins HvxVR:$Vu32),
34415"$Vd32.h = vnormamt($Vu32.h)",
34416tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34417let Inst{7-5} = 0b101;
34418let Inst{13-13} = 0b0;
34419let Inst{31-16} = 0b0001111000000011;
34420let hasNewValue = 1;
34421let opNewValue = 0;
34422let DecoderNamespace = "EXT_mmvec";
34423}
34424def V6_vnormamth_alt : HInst<
34425(outs HvxVR:$Vd32),
34426(ins HvxVR:$Vu32),
34427"$Vd32 = vnormamth($Vu32)",
34428PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34429let hasNewValue = 1;
34430let opNewValue = 0;
34431let isPseudo = 1;
34432let isCodeGenOnly = 1;
34433let DecoderNamespace = "EXT_mmvec";
34434}
34435def V6_vnormamtw : HInst<
34436(outs HvxVR:$Vd32),
34437(ins HvxVR:$Vu32),
34438"$Vd32.w = vnormamt($Vu32.w)",
34439tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34440let Inst{7-5} = 0b100;
34441let Inst{13-13} = 0b0;
34442let Inst{31-16} = 0b0001111000000011;
34443let hasNewValue = 1;
34444let opNewValue = 0;
34445let DecoderNamespace = "EXT_mmvec";
34446}
34447def V6_vnormamtw_alt : HInst<
34448(outs HvxVR:$Vd32),
34449(ins HvxVR:$Vu32),
34450"$Vd32 = vnormamtw($Vu32)",
34451PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34452let hasNewValue = 1;
34453let opNewValue = 0;
34454let isPseudo = 1;
34455let isCodeGenOnly = 1;
34456let DecoderNamespace = "EXT_mmvec";
34457}
34458def V6_vnot : HInst<
34459(outs HvxVR:$Vd32),
34460(ins HvxVR:$Vu32),
34461"$Vd32 = vnot($Vu32)",
34462tc_0ec46cf9, TypeCVI_VA>, Enc_e7581c, Requires<[UseHVXV60]> {
34463let Inst{7-5} = 0b100;
34464let Inst{13-13} = 0b0;
34465let Inst{31-16} = 0b0001111000000000;
34466let hasNewValue = 1;
34467let opNewValue = 0;
34468let DecoderNamespace = "EXT_mmvec";
34469}
34470def V6_vor : HInst<
34471(outs HvxVR:$Vd32),
34472(ins HvxVR:$Vu32, HvxVR:$Vv32),
34473"$Vd32 = vor($Vu32,$Vv32)",
34474tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
34475let Inst{7-5} = 0b110;
34476let Inst{13-13} = 0b0;
34477let Inst{31-21} = 0b00011100001;
34478let hasNewValue = 1;
34479let opNewValue = 0;
34480let DecoderNamespace = "EXT_mmvec";
34481}
34482def V6_vpackeb : HInst<
34483(outs HvxVR:$Vd32),
34484(ins HvxVR:$Vu32, HvxVR:$Vv32),
34485"$Vd32.b = vpacke($Vu32.h,$Vv32.h)",
34486tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34487let Inst{7-5} = 0b010;
34488let Inst{13-13} = 0b0;
34489let Inst{31-21} = 0b00011111110;
34490let hasNewValue = 1;
34491let opNewValue = 0;
34492let DecoderNamespace = "EXT_mmvec";
34493}
34494def V6_vpackeb_alt : HInst<
34495(outs HvxVR:$Vd32),
34496(ins HvxVR:$Vu32, HvxVR:$Vv32),
34497"$Vd32 = vpackeb($Vu32,$Vv32)",
34498PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34499let hasNewValue = 1;
34500let opNewValue = 0;
34501let isPseudo = 1;
34502let isCodeGenOnly = 1;
34503let DecoderNamespace = "EXT_mmvec";
34504}
34505def V6_vpackeh : HInst<
34506(outs HvxVR:$Vd32),
34507(ins HvxVR:$Vu32, HvxVR:$Vv32),
34508"$Vd32.h = vpacke($Vu32.w,$Vv32.w)",
34509tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34510let Inst{7-5} = 0b011;
34511let Inst{13-13} = 0b0;
34512let Inst{31-21} = 0b00011111110;
34513let hasNewValue = 1;
34514let opNewValue = 0;
34515let DecoderNamespace = "EXT_mmvec";
34516}
34517def V6_vpackeh_alt : HInst<
34518(outs HvxVR:$Vd32),
34519(ins HvxVR:$Vu32, HvxVR:$Vv32),
34520"$Vd32 = vpackeh($Vu32,$Vv32)",
34521PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34522let hasNewValue = 1;
34523let opNewValue = 0;
34524let isPseudo = 1;
34525let isCodeGenOnly = 1;
34526let DecoderNamespace = "EXT_mmvec";
34527}
34528def V6_vpackhb_sat : HInst<
34529(outs HvxVR:$Vd32),
34530(ins HvxVR:$Vu32, HvxVR:$Vv32),
34531"$Vd32.b = vpack($Vu32.h,$Vv32.h):sat",
34532tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34533let Inst{7-5} = 0b110;
34534let Inst{13-13} = 0b0;
34535let Inst{31-21} = 0b00011111110;
34536let hasNewValue = 1;
34537let opNewValue = 0;
34538let DecoderNamespace = "EXT_mmvec";
34539}
34540def V6_vpackhb_sat_alt : HInst<
34541(outs HvxVR:$Vd32),
34542(ins HvxVR:$Vu32, HvxVR:$Vv32),
34543"$Vd32 = vpackhb($Vu32,$Vv32):sat",
34544PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34545let hasNewValue = 1;
34546let opNewValue = 0;
34547let isPseudo = 1;
34548let isCodeGenOnly = 1;
34549let DecoderNamespace = "EXT_mmvec";
34550}
34551def V6_vpackhub_sat : HInst<
34552(outs HvxVR:$Vd32),
34553(ins HvxVR:$Vu32, HvxVR:$Vv32),
34554"$Vd32.ub = vpack($Vu32.h,$Vv32.h):sat",
34555tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34556let Inst{7-5} = 0b101;
34557let Inst{13-13} = 0b0;
34558let Inst{31-21} = 0b00011111110;
34559let hasNewValue = 1;
34560let opNewValue = 0;
34561let DecoderNamespace = "EXT_mmvec";
34562}
34563def V6_vpackhub_sat_alt : HInst<
34564(outs HvxVR:$Vd32),
34565(ins HvxVR:$Vu32, HvxVR:$Vv32),
34566"$Vd32 = vpackhub($Vu32,$Vv32):sat",
34567PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34568let hasNewValue = 1;
34569let opNewValue = 0;
34570let isPseudo = 1;
34571let isCodeGenOnly = 1;
34572let DecoderNamespace = "EXT_mmvec";
34573}
34574def V6_vpackob : HInst<
34575(outs HvxVR:$Vd32),
34576(ins HvxVR:$Vu32, HvxVR:$Vv32),
34577"$Vd32.b = vpacko($Vu32.h,$Vv32.h)",
34578tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34579let Inst{7-5} = 0b001;
34580let Inst{13-13} = 0b0;
34581let Inst{31-21} = 0b00011111111;
34582let hasNewValue = 1;
34583let opNewValue = 0;
34584let DecoderNamespace = "EXT_mmvec";
34585}
34586def V6_vpackob_alt : HInst<
34587(outs HvxVR:$Vd32),
34588(ins HvxVR:$Vu32, HvxVR:$Vv32),
34589"$Vd32 = vpackob($Vu32,$Vv32)",
34590PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34591let hasNewValue = 1;
34592let opNewValue = 0;
34593let isPseudo = 1;
34594let isCodeGenOnly = 1;
34595let DecoderNamespace = "EXT_mmvec";
34596}
34597def V6_vpackoh : HInst<
34598(outs HvxVR:$Vd32),
34599(ins HvxVR:$Vu32, HvxVR:$Vv32),
34600"$Vd32.h = vpacko($Vu32.w,$Vv32.w)",
34601tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34602let Inst{7-5} = 0b010;
34603let Inst{13-13} = 0b0;
34604let Inst{31-21} = 0b00011111111;
34605let hasNewValue = 1;
34606let opNewValue = 0;
34607let DecoderNamespace = "EXT_mmvec";
34608}
34609def V6_vpackoh_alt : HInst<
34610(outs HvxVR:$Vd32),
34611(ins HvxVR:$Vu32, HvxVR:$Vv32),
34612"$Vd32 = vpackoh($Vu32,$Vv32)",
34613PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34614let hasNewValue = 1;
34615let opNewValue = 0;
34616let isPseudo = 1;
34617let isCodeGenOnly = 1;
34618let DecoderNamespace = "EXT_mmvec";
34619}
34620def V6_vpackwh_sat : HInst<
34621(outs HvxVR:$Vd32),
34622(ins HvxVR:$Vu32, HvxVR:$Vv32),
34623"$Vd32.h = vpack($Vu32.w,$Vv32.w):sat",
34624tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34625let Inst{7-5} = 0b000;
34626let Inst{13-13} = 0b0;
34627let Inst{31-21} = 0b00011111111;
34628let hasNewValue = 1;
34629let opNewValue = 0;
34630let DecoderNamespace = "EXT_mmvec";
34631}
34632def V6_vpackwh_sat_alt : HInst<
34633(outs HvxVR:$Vd32),
34634(ins HvxVR:$Vu32, HvxVR:$Vv32),
34635"$Vd32 = vpackwh($Vu32,$Vv32):sat",
34636PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34637let hasNewValue = 1;
34638let opNewValue = 0;
34639let isPseudo = 1;
34640let isCodeGenOnly = 1;
34641let DecoderNamespace = "EXT_mmvec";
34642}
34643def V6_vpackwuh_sat : HInst<
34644(outs HvxVR:$Vd32),
34645(ins HvxVR:$Vu32, HvxVR:$Vv32),
34646"$Vd32.uh = vpack($Vu32.w,$Vv32.w):sat",
34647tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34648let Inst{7-5} = 0b111;
34649let Inst{13-13} = 0b0;
34650let Inst{31-21} = 0b00011111110;
34651let hasNewValue = 1;
34652let opNewValue = 0;
34653let DecoderNamespace = "EXT_mmvec";
34654}
34655def V6_vpackwuh_sat_alt : HInst<
34656(outs HvxVR:$Vd32),
34657(ins HvxVR:$Vu32, HvxVR:$Vv32),
34658"$Vd32 = vpackwuh($Vu32,$Vv32):sat",
34659PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34660let hasNewValue = 1;
34661let opNewValue = 0;
34662let isPseudo = 1;
34663let isCodeGenOnly = 1;
34664let DecoderNamespace = "EXT_mmvec";
34665}
34666def V6_vpopcounth : HInst<
34667(outs HvxVR:$Vd32),
34668(ins HvxVR:$Vu32),
34669"$Vd32.h = vpopcount($Vu32.h)",
34670tc_51d0ecc3, TypeCVI_VS>, Enc_e7581c, Requires<[UseHVXV60]> {
34671let Inst{7-5} = 0b110;
34672let Inst{13-13} = 0b0;
34673let Inst{31-16} = 0b0001111000000010;
34674let hasNewValue = 1;
34675let opNewValue = 0;
34676let DecoderNamespace = "EXT_mmvec";
34677}
34678def V6_vpopcounth_alt : HInst<
34679(outs HvxVR:$Vd32),
34680(ins HvxVR:$Vu32),
34681"$Vd32 = vpopcounth($Vu32)",
34682PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34683let hasNewValue = 1;
34684let opNewValue = 0;
34685let isPseudo = 1;
34686let isCodeGenOnly = 1;
34687let DecoderNamespace = "EXT_mmvec";
34688}
34689def V6_vprefixqb : HInst<
34690(outs HvxVR:$Vd32),
34691(ins HvxQR:$Qv4),
34692"$Vd32.b = prefixsum($Qv4)",
34693tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34694let Inst{13-5} = 0b100000010;
34695let Inst{21-16} = 0b000011;
34696let Inst{31-24} = 0b00011110;
34697let hasNewValue = 1;
34698let opNewValue = 0;
34699let DecoderNamespace = "EXT_mmvec";
34700}
34701def V6_vprefixqh : HInst<
34702(outs HvxVR:$Vd32),
34703(ins HvxQR:$Qv4),
34704"$Vd32.h = prefixsum($Qv4)",
34705tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34706let Inst{13-5} = 0b100001010;
34707let Inst{21-16} = 0b000011;
34708let Inst{31-24} = 0b00011110;
34709let hasNewValue = 1;
34710let opNewValue = 0;
34711let DecoderNamespace = "EXT_mmvec";
34712}
34713def V6_vprefixqw : HInst<
34714(outs HvxVR:$Vd32),
34715(ins HvxQR:$Qv4),
34716"$Vd32.w = prefixsum($Qv4)",
34717tc_51d0ecc3, TypeCVI_VS>, Enc_6f83e7, Requires<[UseHVXV65]> {
34718let Inst{13-5} = 0b100010010;
34719let Inst{21-16} = 0b000011;
34720let Inst{31-24} = 0b00011110;
34721let hasNewValue = 1;
34722let opNewValue = 0;
34723let DecoderNamespace = "EXT_mmvec";
34724}
34725def V6_vrdelta : HInst<
34726(outs HvxVR:$Vd32),
34727(ins HvxVR:$Vu32, HvxVR:$Vv32),
34728"$Vd32 = vrdelta($Vu32,$Vv32)",
34729tc_46d6c3e0, TypeCVI_VP>, Enc_45364e, Requires<[UseHVXV60]> {
34730let Inst{7-5} = 0b011;
34731let Inst{13-13} = 0b0;
34732let Inst{31-21} = 0b00011111001;
34733let hasNewValue = 1;
34734let opNewValue = 0;
34735let DecoderNamespace = "EXT_mmvec";
34736}
34737def V6_vrmpybub_rtt : HInst<
34738(outs HvxWR:$Vdd32),
34739(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34740"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
34741tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
34742let Inst{7-5} = 0b101;
34743let Inst{13-13} = 0b0;
34744let Inst{31-21} = 0b00011001110;
34745let hasNewValue = 1;
34746let opNewValue = 0;
34747let DecoderNamespace = "EXT_mmvec";
34748}
34749def V6_vrmpybub_rtt_acc : HInst<
34750(outs HvxWR:$Vxx32),
34751(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34752"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
34753tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
34754let Inst{7-5} = 0b000;
34755let Inst{13-13} = 0b1;
34756let Inst{31-21} = 0b00011001101;
34757let hasNewValue = 1;
34758let opNewValue = 0;
34759let isAccumulator = 1;
34760let DecoderNamespace = "EXT_mmvec";
34761let Constraints = "$Vxx32 = $Vxx32in";
34762}
34763def V6_vrmpybub_rtt_acc_alt : HInst<
34764(outs HvxWR:$Vxx32),
34765(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
34766"$Vxx32.w += vrmpy($Vu32.b,$Rtt32.ub)",
34767PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34768let hasNewValue = 1;
34769let opNewValue = 0;
34770let isAccumulator = 1;
34771let isPseudo = 1;
34772let isCodeGenOnly = 1;
34773let DecoderNamespace = "EXT_mmvec";
34774let Constraints = "$Vxx32 = $Vxx32in";
34775}
34776def V6_vrmpybub_rtt_alt : HInst<
34777(outs HvxWR:$Vdd32),
34778(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
34779"$Vdd32.w = vrmpy($Vu32.b,$Rtt32.ub)",
34780PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
34781let hasNewValue = 1;
34782let opNewValue = 0;
34783let isPseudo = 1;
34784let isCodeGenOnly = 1;
34785let DecoderNamespace = "EXT_mmvec";
34786}
34787def V6_vrmpybus : HInst<
34788(outs HvxVR:$Vd32),
34789(ins HvxVR:$Vu32, IntRegs:$Rt32),
34790"$Vd32.w = vrmpy($Vu32.ub,$Rt32.b)",
34791tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34792let Inst{7-5} = 0b100;
34793let Inst{13-13} = 0b0;
34794let Inst{31-21} = 0b00011001000;
34795let hasNewValue = 1;
34796let opNewValue = 0;
34797let DecoderNamespace = "EXT_mmvec";
34798}
34799def V6_vrmpybus_acc : HInst<
34800(outs HvxVR:$Vx32),
34801(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34802"$Vx32.w += vrmpy($Vu32.ub,$Rt32.b)",
34803tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
34804let Inst{7-5} = 0b101;
34805let Inst{13-13} = 0b1;
34806let Inst{31-21} = 0b00011001000;
34807let hasNewValue = 1;
34808let opNewValue = 0;
34809let isAccumulator = 1;
34810let DecoderNamespace = "EXT_mmvec";
34811let Constraints = "$Vx32 = $Vx32in";
34812}
34813def V6_vrmpybus_acc_alt : HInst<
34814(outs HvxVR:$Vx32),
34815(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
34816"$Vx32 += vrmpybus($Vu32,$Rt32)",
34817PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34818let hasNewValue = 1;
34819let opNewValue = 0;
34820let isAccumulator = 1;
34821let isPseudo = 1;
34822let isCodeGenOnly = 1;
34823let DecoderNamespace = "EXT_mmvec";
34824let Constraints = "$Vx32 = $Vx32in";
34825}
34826def V6_vrmpybus_alt : HInst<
34827(outs HvxVR:$Vd32),
34828(ins HvxVR:$Vu32, IntRegs:$Rt32),
34829"$Vd32 = vrmpybus($Vu32,$Rt32)",
34830PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34831let hasNewValue = 1;
34832let opNewValue = 0;
34833let isPseudo = 1;
34834let isCodeGenOnly = 1;
34835let DecoderNamespace = "EXT_mmvec";
34836}
34837def V6_vrmpybusi : HInst<
34838(outs HvxWR:$Vdd32),
34839(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34840"$Vdd32.w = vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
34841tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
34842let Inst{7-6} = 0b10;
34843let Inst{13-13} = 0b0;
34844let Inst{31-21} = 0b00011001010;
34845let hasNewValue = 1;
34846let opNewValue = 0;
34847let DecoderNamespace = "EXT_mmvec";
34848}
34849def V6_vrmpybusi_acc : HInst<
34850(outs HvxWR:$Vxx32),
34851(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34852"$Vxx32.w += vrmpy($Vuu32.ub,$Rt32.b,#$Ii)",
34853tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
34854let Inst{7-6} = 0b10;
34855let Inst{13-13} = 0b1;
34856let Inst{31-21} = 0b00011001010;
34857let hasNewValue = 1;
34858let opNewValue = 0;
34859let isAccumulator = 1;
34860let DecoderNamespace = "EXT_mmvec";
34861let Constraints = "$Vxx32 = $Vxx32in";
34862}
34863def V6_vrmpybusi_acc_alt : HInst<
34864(outs HvxWR:$Vxx32),
34865(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34866"$Vxx32 += vrmpybus($Vuu32,$Rt32,#$Ii)",
34867PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34868let hasNewValue = 1;
34869let opNewValue = 0;
34870let isAccumulator = 1;
34871let isPseudo = 1;
34872let isCodeGenOnly = 1;
34873let DecoderNamespace = "EXT_mmvec";
34874let Constraints = "$Vxx32 = $Vxx32in";
34875}
34876def V6_vrmpybusi_alt : HInst<
34877(outs HvxWR:$Vdd32),
34878(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
34879"$Vdd32 = vrmpybus($Vuu32,$Rt32,#$Ii)",
34880PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34881let hasNewValue = 1;
34882let opNewValue = 0;
34883let isPseudo = 1;
34884let isCodeGenOnly = 1;
34885let DecoderNamespace = "EXT_mmvec";
34886}
34887def V6_vrmpybusv : HInst<
34888(outs HvxVR:$Vd32),
34889(ins HvxVR:$Vu32, HvxVR:$Vv32),
34890"$Vd32.w = vrmpy($Vu32.ub,$Vv32.b)",
34891tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
34892let Inst{7-5} = 0b010;
34893let Inst{13-13} = 0b0;
34894let Inst{31-21} = 0b00011100000;
34895let hasNewValue = 1;
34896let opNewValue = 0;
34897let DecoderNamespace = "EXT_mmvec";
34898}
34899def V6_vrmpybusv_acc : HInst<
34900(outs HvxVR:$Vx32),
34901(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34902"$Vx32.w += vrmpy($Vu32.ub,$Vv32.b)",
34903tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34904let Inst{7-5} = 0b010;
34905let Inst{13-13} = 0b1;
34906let Inst{31-21} = 0b00011100000;
34907let hasNewValue = 1;
34908let opNewValue = 0;
34909let isAccumulator = 1;
34910let DecoderNamespace = "EXT_mmvec";
34911let Constraints = "$Vx32 = $Vx32in";
34912}
34913def V6_vrmpybusv_acc_alt : HInst<
34914(outs HvxVR:$Vx32),
34915(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34916"$Vx32 += vrmpybus($Vu32,$Vv32)",
34917PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34918let hasNewValue = 1;
34919let opNewValue = 0;
34920let isAccumulator = 1;
34921let isPseudo = 1;
34922let isCodeGenOnly = 1;
34923let DecoderNamespace = "EXT_mmvec";
34924let Constraints = "$Vx32 = $Vx32in";
34925}
34926def V6_vrmpybusv_alt : HInst<
34927(outs HvxVR:$Vd32),
34928(ins HvxVR:$Vu32, HvxVR:$Vv32),
34929"$Vd32 = vrmpybus($Vu32,$Vv32)",
34930PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34931let hasNewValue = 1;
34932let opNewValue = 0;
34933let isPseudo = 1;
34934let isCodeGenOnly = 1;
34935let DecoderNamespace = "EXT_mmvec";
34936}
34937def V6_vrmpybv : HInst<
34938(outs HvxVR:$Vd32),
34939(ins HvxVR:$Vu32, HvxVR:$Vv32),
34940"$Vd32.w = vrmpy($Vu32.b,$Vv32.b)",
34941tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
34942let Inst{7-5} = 0b001;
34943let Inst{13-13} = 0b0;
34944let Inst{31-21} = 0b00011100000;
34945let hasNewValue = 1;
34946let opNewValue = 0;
34947let DecoderNamespace = "EXT_mmvec";
34948}
34949def V6_vrmpybv_acc : HInst<
34950(outs HvxVR:$Vx32),
34951(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34952"$Vx32.w += vrmpy($Vu32.b,$Vv32.b)",
34953tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
34954let Inst{7-5} = 0b001;
34955let Inst{13-13} = 0b1;
34956let Inst{31-21} = 0b00011100000;
34957let hasNewValue = 1;
34958let opNewValue = 0;
34959let isAccumulator = 1;
34960let DecoderNamespace = "EXT_mmvec";
34961let Constraints = "$Vx32 = $Vx32in";
34962}
34963def V6_vrmpybv_acc_alt : HInst<
34964(outs HvxVR:$Vx32),
34965(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
34966"$Vx32 += vrmpyb($Vu32,$Vv32)",
34967PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34968let hasNewValue = 1;
34969let opNewValue = 0;
34970let isAccumulator = 1;
34971let isPseudo = 1;
34972let isCodeGenOnly = 1;
34973let DecoderNamespace = "EXT_mmvec";
34974let Constraints = "$Vx32 = $Vx32in";
34975}
34976def V6_vrmpybv_alt : HInst<
34977(outs HvxVR:$Vd32),
34978(ins HvxVR:$Vu32, HvxVR:$Vv32),
34979"$Vd32 = vrmpyb($Vu32,$Vv32)",
34980PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
34981let hasNewValue = 1;
34982let opNewValue = 0;
34983let isPseudo = 1;
34984let isCodeGenOnly = 1;
34985let DecoderNamespace = "EXT_mmvec";
34986}
34987def V6_vrmpyub : HInst<
34988(outs HvxVR:$Vd32),
34989(ins HvxVR:$Vu32, IntRegs:$Rt32),
34990"$Vd32.uw = vrmpy($Vu32.ub,$Rt32.ub)",
34991tc_649072c2, TypeCVI_VX>, Enc_b087ac, Requires<[UseHVXV60]> {
34992let Inst{7-5} = 0b011;
34993let Inst{13-13} = 0b0;
34994let Inst{31-21} = 0b00011001000;
34995let hasNewValue = 1;
34996let opNewValue = 0;
34997let DecoderNamespace = "EXT_mmvec";
34998}
34999def V6_vrmpyub_acc : HInst<
35000(outs HvxVR:$Vx32),
35001(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35002"$Vx32.uw += vrmpy($Vu32.ub,$Rt32.ub)",
35003tc_b091f1c6, TypeCVI_VX>, Enc_5138b3, Requires<[UseHVXV60]> {
35004let Inst{7-5} = 0b100;
35005let Inst{13-13} = 0b1;
35006let Inst{31-21} = 0b00011001000;
35007let hasNewValue = 1;
35008let opNewValue = 0;
35009let isAccumulator = 1;
35010let DecoderNamespace = "EXT_mmvec";
35011let Constraints = "$Vx32 = $Vx32in";
35012}
35013def V6_vrmpyub_acc_alt : HInst<
35014(outs HvxVR:$Vx32),
35015(ins HvxVR:$Vx32in, HvxVR:$Vu32, IntRegs:$Rt32),
35016"$Vx32 += vrmpyub($Vu32,$Rt32)",
35017PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35018let hasNewValue = 1;
35019let opNewValue = 0;
35020let isAccumulator = 1;
35021let isPseudo = 1;
35022let isCodeGenOnly = 1;
35023let DecoderNamespace = "EXT_mmvec";
35024let Constraints = "$Vx32 = $Vx32in";
35025}
35026def V6_vrmpyub_alt : HInst<
35027(outs HvxVR:$Vd32),
35028(ins HvxVR:$Vu32, IntRegs:$Rt32),
35029"$Vd32 = vrmpyub($Vu32,$Rt32)",
35030PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35031let hasNewValue = 1;
35032let opNewValue = 0;
35033let isPseudo = 1;
35034let isCodeGenOnly = 1;
35035let DecoderNamespace = "EXT_mmvec";
35036}
35037def V6_vrmpyub_rtt : HInst<
35038(outs HvxWR:$Vdd32),
35039(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35040"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
35041tc_cd94bfe0, TypeCVI_VS_VX>, Enc_cb785b, Requires<[UseHVXV65]> {
35042let Inst{7-5} = 0b100;
35043let Inst{13-13} = 0b0;
35044let Inst{31-21} = 0b00011001110;
35045let hasNewValue = 1;
35046let opNewValue = 0;
35047let DecoderNamespace = "EXT_mmvec";
35048}
35049def V6_vrmpyub_rtt_acc : HInst<
35050(outs HvxWR:$Vxx32),
35051(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35052"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
35053tc_15fdf750, TypeCVI_VS_VX>, Enc_ad9bef, Requires<[UseHVXV65]> {
35054let Inst{7-5} = 0b111;
35055let Inst{13-13} = 0b1;
35056let Inst{31-21} = 0b00011001101;
35057let hasNewValue = 1;
35058let opNewValue = 0;
35059let isAccumulator = 1;
35060let DecoderNamespace = "EXT_mmvec";
35061let Constraints = "$Vxx32 = $Vxx32in";
35062}
35063def V6_vrmpyub_rtt_acc_alt : HInst<
35064(outs HvxWR:$Vxx32),
35065(ins HvxWR:$Vxx32in, HvxVR:$Vu32, DoubleRegs:$Rtt32),
35066"$Vxx32.uw += vrmpy($Vu32.ub,$Rtt32.ub)",
35067PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35068let hasNewValue = 1;
35069let opNewValue = 0;
35070let isAccumulator = 1;
35071let isPseudo = 1;
35072let isCodeGenOnly = 1;
35073let DecoderNamespace = "EXT_mmvec";
35074let Constraints = "$Vxx32 = $Vxx32in";
35075}
35076def V6_vrmpyub_rtt_alt : HInst<
35077(outs HvxWR:$Vdd32),
35078(ins HvxVR:$Vu32, DoubleRegs:$Rtt32),
35079"$Vdd32.uw = vrmpy($Vu32.ub,$Rtt32.ub)",
35080PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35081let hasNewValue = 1;
35082let opNewValue = 0;
35083let isPseudo = 1;
35084let isCodeGenOnly = 1;
35085let DecoderNamespace = "EXT_mmvec";
35086}
35087def V6_vrmpyubi : HInst<
35088(outs HvxWR:$Vdd32),
35089(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35090"$Vdd32.uw = vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
35091tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
35092let Inst{7-6} = 0b11;
35093let Inst{13-13} = 0b0;
35094let Inst{31-21} = 0b00011001101;
35095let hasNewValue = 1;
35096let opNewValue = 0;
35097let DecoderNamespace = "EXT_mmvec";
35098}
35099def V6_vrmpyubi_acc : HInst<
35100(outs HvxWR:$Vxx32),
35101(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35102"$Vxx32.uw += vrmpy($Vuu32.ub,$Rt32.ub,#$Ii)",
35103tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
35104let Inst{7-6} = 0b11;
35105let Inst{13-13} = 0b1;
35106let Inst{31-21} = 0b00011001011;
35107let hasNewValue = 1;
35108let opNewValue = 0;
35109let isAccumulator = 1;
35110let DecoderNamespace = "EXT_mmvec";
35111let Constraints = "$Vxx32 = $Vxx32in";
35112}
35113def V6_vrmpyubi_acc_alt : HInst<
35114(outs HvxWR:$Vxx32),
35115(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35116"$Vxx32 += vrmpyub($Vuu32,$Rt32,#$Ii)",
35117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35118let hasNewValue = 1;
35119let opNewValue = 0;
35120let isAccumulator = 1;
35121let isPseudo = 1;
35122let isCodeGenOnly = 1;
35123let DecoderNamespace = "EXT_mmvec";
35124let Constraints = "$Vxx32 = $Vxx32in";
35125}
35126def V6_vrmpyubi_alt : HInst<
35127(outs HvxWR:$Vdd32),
35128(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35129"$Vdd32 = vrmpyub($Vuu32,$Rt32,#$Ii)",
35130PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35131let hasNewValue = 1;
35132let opNewValue = 0;
35133let isPseudo = 1;
35134let isCodeGenOnly = 1;
35135let DecoderNamespace = "EXT_mmvec";
35136}
35137def V6_vrmpyubv : HInst<
35138(outs HvxVR:$Vd32),
35139(ins HvxVR:$Vu32, HvxVR:$Vv32),
35140"$Vd32.uw = vrmpy($Vu32.ub,$Vv32.ub)",
35141tc_c127de3a, TypeCVI_VX>, Enc_45364e, Requires<[UseHVXV60]> {
35142let Inst{7-5} = 0b000;
35143let Inst{13-13} = 0b0;
35144let Inst{31-21} = 0b00011100000;
35145let hasNewValue = 1;
35146let opNewValue = 0;
35147let DecoderNamespace = "EXT_mmvec";
35148}
35149def V6_vrmpyubv_acc : HInst<
35150(outs HvxVR:$Vx32),
35151(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35152"$Vx32.uw += vrmpy($Vu32.ub,$Vv32.ub)",
35153tc_08a4f1b6, TypeCVI_VX_DV>, Enc_a7341a, Requires<[UseHVXV60]> {
35154let Inst{7-5} = 0b000;
35155let Inst{13-13} = 0b1;
35156let Inst{31-21} = 0b00011100000;
35157let hasNewValue = 1;
35158let opNewValue = 0;
35159let isAccumulator = 1;
35160let DecoderNamespace = "EXT_mmvec";
35161let Constraints = "$Vx32 = $Vx32in";
35162}
35163def V6_vrmpyubv_acc_alt : HInst<
35164(outs HvxVR:$Vx32),
35165(ins HvxVR:$Vx32in, HvxVR:$Vu32, HvxVR:$Vv32),
35166"$Vx32 += vrmpyub($Vu32,$Vv32)",
35167PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35168let hasNewValue = 1;
35169let opNewValue = 0;
35170let isAccumulator = 1;
35171let isPseudo = 1;
35172let isCodeGenOnly = 1;
35173let DecoderNamespace = "EXT_mmvec";
35174let Constraints = "$Vx32 = $Vx32in";
35175}
35176def V6_vrmpyubv_alt : HInst<
35177(outs HvxVR:$Vd32),
35178(ins HvxVR:$Vu32, HvxVR:$Vv32),
35179"$Vd32 = vrmpyub($Vu32,$Vv32)",
35180PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35181let hasNewValue = 1;
35182let opNewValue = 0;
35183let isPseudo = 1;
35184let isCodeGenOnly = 1;
35185let DecoderNamespace = "EXT_mmvec";
35186}
35187def V6_vrmpyzbb_rt : HInst<
35188(outs HvxVQR:$Vdddd32),
35189(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35190"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.b)",
35191tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35192let Inst{7-5} = 0b000;
35193let Inst{13-13} = 0b0;
35194let Inst{31-19} = 0b0001100111101;
35195let hasNewValue = 1;
35196let opNewValue = 0;
35197let DecoderNamespace = "EXT_mmvec";
35198}
35199def V6_vrmpyzbb_rt_acc : HInst<
35200(outs HvxVQR:$Vyyyy32),
35201(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35202"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.b)",
35203tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35204let Inst{7-5} = 0b010;
35205let Inst{13-13} = 0b1;
35206let Inst{31-19} = 0b0001100111000;
35207let hasNewValue = 1;
35208let opNewValue = 0;
35209let isAccumulator = 1;
35210let DecoderNamespace = "EXT_mmvec";
35211let Constraints = "$Vyyyy32 = $Vyyyy32in";
35212}
35213def V6_vrmpyzbb_rx : HInst<
35214(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35215(ins HvxVR:$Vu32, IntRegs:$Rx8in),
35216"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.b++)",
35217tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35218let Inst{7-5} = 0b000;
35219let Inst{13-13} = 0b0;
35220let Inst{31-19} = 0b0001100111100;
35221let hasNewValue = 1;
35222let opNewValue = 0;
35223let DecoderNamespace = "EXT_mmvec";
35224let Constraints = "$Rx8 = $Rx8in";
35225}
35226def V6_vrmpyzbb_rx_acc : HInst<
35227(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35228(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35229"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.b++)",
35230tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35231let Inst{7-5} = 0b010;
35232let Inst{13-13} = 0b1;
35233let Inst{31-19} = 0b0001100111001;
35234let hasNewValue = 1;
35235let opNewValue = 0;
35236let isAccumulator = 1;
35237let DecoderNamespace = "EXT_mmvec";
35238let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35239}
35240def V6_vrmpyzbub_rt : HInst<
35241(outs HvxVQR:$Vdddd32),
35242(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35243"$Vdddd32.w = vrmpyz($Vu32.b,$Rt8.ub)",
35244tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35245let Inst{7-5} = 0b010;
35246let Inst{13-13} = 0b0;
35247let Inst{31-19} = 0b0001100111111;
35248let hasNewValue = 1;
35249let opNewValue = 0;
35250let DecoderNamespace = "EXT_mmvec";
35251}
35252def V6_vrmpyzbub_rt_acc : HInst<
35253(outs HvxVQR:$Vyyyy32),
35254(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35255"$Vyyyy32.w += vrmpyz($Vu32.b,$Rt8.ub)",
35256tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35257let Inst{7-5} = 0b001;
35258let Inst{13-13} = 0b1;
35259let Inst{31-19} = 0b0001100111010;
35260let hasNewValue = 1;
35261let opNewValue = 0;
35262let isAccumulator = 1;
35263let DecoderNamespace = "EXT_mmvec";
35264let Constraints = "$Vyyyy32 = $Vyyyy32in";
35265}
35266def V6_vrmpyzbub_rx : HInst<
35267(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35268(ins HvxVR:$Vu32, IntRegs:$Rx8in),
35269"$Vdddd32.w = vrmpyz($Vu32.b,$Rx8.ub++)",
35270tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35271let Inst{7-5} = 0b010;
35272let Inst{13-13} = 0b0;
35273let Inst{31-19} = 0b0001100111110;
35274let hasNewValue = 1;
35275let opNewValue = 0;
35276let DecoderNamespace = "EXT_mmvec";
35277let Constraints = "$Rx8 = $Rx8in";
35278}
35279def V6_vrmpyzbub_rx_acc : HInst<
35280(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35281(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35282"$Vyyyy32.w += vrmpyz($Vu32.b,$Rx8.ub++)",
35283tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35284let Inst{7-5} = 0b001;
35285let Inst{13-13} = 0b1;
35286let Inst{31-19} = 0b0001100111011;
35287let hasNewValue = 1;
35288let opNewValue = 0;
35289let isAccumulator = 1;
35290let DecoderNamespace = "EXT_mmvec";
35291let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35292}
35293def V6_vrmpyzcb_rt : HInst<
35294(outs HvxVQR:$Vdddd32),
35295(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35296"$Vdddd32.w = vr16mpyz($Vu32.c,$Rt8.b)",
35297tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35298let Inst{7-5} = 0b001;
35299let Inst{13-13} = 0b0;
35300let Inst{31-19} = 0b0001100111101;
35301let hasNewValue = 1;
35302let opNewValue = 0;
35303let DecoderNamespace = "EXT_mmvec";
35304}
35305def V6_vrmpyzcb_rt_acc : HInst<
35306(outs HvxVQR:$Vyyyy32),
35307(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35308"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rt8.b)",
35309tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35310let Inst{7-5} = 0b011;
35311let Inst{13-13} = 0b1;
35312let Inst{31-19} = 0b0001100111000;
35313let hasNewValue = 1;
35314let opNewValue = 0;
35315let isAccumulator = 1;
35316let DecoderNamespace = "EXT_mmvec";
35317let Constraints = "$Vyyyy32 = $Vyyyy32in";
35318}
35319def V6_vrmpyzcb_rx : HInst<
35320(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35321(ins HvxVR:$Vu32, IntRegs:$Rx8in),
35322"$Vdddd32.w = vr16mpyz($Vu32.c,$Rx8.b++)",
35323tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35324let Inst{7-5} = 0b001;
35325let Inst{13-13} = 0b0;
35326let Inst{31-19} = 0b0001100111100;
35327let hasNewValue = 1;
35328let opNewValue = 0;
35329let DecoderNamespace = "EXT_mmvec";
35330let Constraints = "$Rx8 = $Rx8in";
35331}
35332def V6_vrmpyzcb_rx_acc : HInst<
35333(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35334(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35335"$Vyyyy32.w += vr16mpyz($Vu32.c,$Rx8.b++)",
35336tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35337let Inst{7-5} = 0b011;
35338let Inst{13-13} = 0b1;
35339let Inst{31-19} = 0b0001100111001;
35340let hasNewValue = 1;
35341let opNewValue = 0;
35342let isAccumulator = 1;
35343let DecoderNamespace = "EXT_mmvec";
35344let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35345}
35346def V6_vrmpyzcbs_rt : HInst<
35347(outs HvxVQR:$Vdddd32),
35348(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35349"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rt8.b)",
35350tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35351let Inst{7-5} = 0b010;
35352let Inst{13-13} = 0b0;
35353let Inst{31-19} = 0b0001100111101;
35354let hasNewValue = 1;
35355let opNewValue = 0;
35356let DecoderNamespace = "EXT_mmvec";
35357}
35358def V6_vrmpyzcbs_rt_acc : HInst<
35359(outs HvxVQR:$Vyyyy32),
35360(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35361"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rt8.b)",
35362tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35363let Inst{7-5} = 0b001;
35364let Inst{13-13} = 0b1;
35365let Inst{31-19} = 0b0001100111000;
35366let hasNewValue = 1;
35367let opNewValue = 0;
35368let isAccumulator = 1;
35369let DecoderNamespace = "EXT_mmvec";
35370let Constraints = "$Vyyyy32 = $Vyyyy32in";
35371}
35372def V6_vrmpyzcbs_rx : HInst<
35373(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35374(ins HvxVR:$Vu32, IntRegs:$Rx8in),
35375"$Vdddd32.w = vr16mpyzs($Vu32.c,$Rx8.b++)",
35376tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35377let Inst{7-5} = 0b010;
35378let Inst{13-13} = 0b0;
35379let Inst{31-19} = 0b0001100111100;
35380let hasNewValue = 1;
35381let opNewValue = 0;
35382let DecoderNamespace = "EXT_mmvec";
35383let Constraints = "$Rx8 = $Rx8in";
35384}
35385def V6_vrmpyzcbs_rx_acc : HInst<
35386(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35387(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35388"$Vyyyy32.w += vr16mpyzs($Vu32.c,$Rx8.b++)",
35389tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35390let Inst{7-5} = 0b001;
35391let Inst{13-13} = 0b1;
35392let Inst{31-19} = 0b0001100111001;
35393let hasNewValue = 1;
35394let opNewValue = 0;
35395let isAccumulator = 1;
35396let DecoderNamespace = "EXT_mmvec";
35397let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35398}
35399def V6_vrmpyznb_rt : HInst<
35400(outs HvxVQR:$Vdddd32),
35401(ins HvxVR:$Vu32, IntRegsLow8:$Rt8),
35402"$Vdddd32.w = vr8mpyz($Vu32.n,$Rt8.b)",
35403tc_61bf7c03, TypeCVI_4SLOT_MPY>, Enc_1bd127, Requires<[UseHVXV66,UseZReg]> {
35404let Inst{7-5} = 0b000;
35405let Inst{13-13} = 0b0;
35406let Inst{31-19} = 0b0001100111111;
35407let hasNewValue = 1;
35408let opNewValue = 0;
35409let DecoderNamespace = "EXT_mmvec";
35410}
35411def V6_vrmpyznb_rt_acc : HInst<
35412(outs HvxVQR:$Vyyyy32),
35413(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegsLow8:$Rt8),
35414"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rt8.b)",
35415tc_933f2b39, TypeCVI_4SLOT_MPY>, Enc_d7bc34, Requires<[UseHVXV66,UseZReg]> {
35416let Inst{7-5} = 0b010;
35417let Inst{13-13} = 0b1;
35418let Inst{31-19} = 0b0001100111010;
35419let hasNewValue = 1;
35420let opNewValue = 0;
35421let isAccumulator = 1;
35422let DecoderNamespace = "EXT_mmvec";
35423let Constraints = "$Vyyyy32 = $Vyyyy32in";
35424}
35425def V6_vrmpyznb_rx : HInst<
35426(outs HvxVQR:$Vdddd32, IntRegsLow8:$Rx8),
35427(ins HvxVR:$Vu32, IntRegs:$Rx8in),
35428"$Vdddd32.w = vr8mpyz($Vu32.n,$Rx8.b++)",
35429tc_26a377fe, TypeCVI_4SLOT_MPY>, Enc_3b7631, Requires<[UseHVXV66,UseZReg]> {
35430let Inst{7-5} = 0b000;
35431let Inst{13-13} = 0b0;
35432let Inst{31-19} = 0b0001100111110;
35433let hasNewValue = 1;
35434let opNewValue = 0;
35435let DecoderNamespace = "EXT_mmvec";
35436let Constraints = "$Rx8 = $Rx8in";
35437}
35438def V6_vrmpyznb_rx_acc : HInst<
35439(outs HvxVQR:$Vyyyy32, IntRegsLow8:$Rx8),
35440(ins HvxVQR:$Vyyyy32in, HvxVR:$Vu32, IntRegs:$Rx8in),
35441"$Vyyyy32.w += vr8mpyz($Vu32.n,$Rx8.b++)",
35442tc_2d4051cd, TypeCVI_4SLOT_MPY>, Enc_bddee3, Requires<[UseHVXV66,UseZReg]> {
35443let Inst{7-5} = 0b010;
35444let Inst{13-13} = 0b1;
35445let Inst{31-19} = 0b0001100111011;
35446let hasNewValue = 1;
35447let opNewValue = 0;
35448let isAccumulator = 1;
35449let DecoderNamespace = "EXT_mmvec";
35450let Constraints = "$Vyyyy32 = $Vyyyy32in, $Rx8 = $Rx8in";
35451}
35452def V6_vror : HInst<
35453(outs HvxVR:$Vd32),
35454(ins HvxVR:$Vu32, IntRegs:$Rt32),
35455"$Vd32 = vror($Vu32,$Rt32)",
35456tc_6e7fa133, TypeCVI_VP>, Enc_b087ac, Requires<[UseHVXV60]> {
35457let Inst{7-5} = 0b001;
35458let Inst{13-13} = 0b0;
35459let Inst{31-21} = 0b00011001011;
35460let hasNewValue = 1;
35461let opNewValue = 0;
35462let DecoderNamespace = "EXT_mmvec";
35463}
35464def V6_vrotr : HInst<
35465(outs HvxVR:$Vd32),
35466(ins HvxVR:$Vu32, HvxVR:$Vv32),
35467"$Vd32.uw = vrotr($Vu32.uw,$Vv32.uw)",
35468tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV66]> {
35469let Inst{7-5} = 0b111;
35470let Inst{13-13} = 0b1;
35471let Inst{31-21} = 0b00011010100;
35472let hasNewValue = 1;
35473let opNewValue = 0;
35474let DecoderNamespace = "EXT_mmvec";
35475}
35476def V6_vrotr_alt : HInst<
35477(outs HvxVR:$Vd32),
35478(ins HvxVR:$Vu32, HvxVR:$Vv32),
35479"$Vd32 = vrotr($Vu32,$Vv32)",
35480PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
35481let hasNewValue = 1;
35482let opNewValue = 0;
35483let isPseudo = 1;
35484let isCodeGenOnly = 1;
35485let DecoderNamespace = "EXT_mmvec";
35486}
35487def V6_vroundhb : HInst<
35488(outs HvxVR:$Vd32),
35489(ins HvxVR:$Vu32, HvxVR:$Vv32),
35490"$Vd32.b = vround($Vu32.h,$Vv32.h):sat",
35491tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35492let Inst{7-5} = 0b110;
35493let Inst{13-13} = 0b0;
35494let Inst{31-21} = 0b00011111011;
35495let hasNewValue = 1;
35496let opNewValue = 0;
35497let DecoderNamespace = "EXT_mmvec";
35498}
35499def V6_vroundhb_alt : HInst<
35500(outs HvxVR:$Vd32),
35501(ins HvxVR:$Vu32, HvxVR:$Vv32),
35502"$Vd32 = vroundhb($Vu32,$Vv32):sat",
35503PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35504let hasNewValue = 1;
35505let opNewValue = 0;
35506let isPseudo = 1;
35507let isCodeGenOnly = 1;
35508let DecoderNamespace = "EXT_mmvec";
35509}
35510def V6_vroundhub : HInst<
35511(outs HvxVR:$Vd32),
35512(ins HvxVR:$Vu32, HvxVR:$Vv32),
35513"$Vd32.ub = vround($Vu32.h,$Vv32.h):sat",
35514tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35515let Inst{7-5} = 0b111;
35516let Inst{13-13} = 0b0;
35517let Inst{31-21} = 0b00011111011;
35518let hasNewValue = 1;
35519let opNewValue = 0;
35520let DecoderNamespace = "EXT_mmvec";
35521}
35522def V6_vroundhub_alt : HInst<
35523(outs HvxVR:$Vd32),
35524(ins HvxVR:$Vu32, HvxVR:$Vv32),
35525"$Vd32 = vroundhub($Vu32,$Vv32):sat",
35526PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35527let hasNewValue = 1;
35528let opNewValue = 0;
35529let isPseudo = 1;
35530let isCodeGenOnly = 1;
35531let DecoderNamespace = "EXT_mmvec";
35532}
35533def V6_vrounduhub : HInst<
35534(outs HvxVR:$Vd32),
35535(ins HvxVR:$Vu32, HvxVR:$Vv32),
35536"$Vd32.ub = vround($Vu32.uh,$Vv32.uh):sat",
35537tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
35538let Inst{7-5} = 0b011;
35539let Inst{13-13} = 0b0;
35540let Inst{31-21} = 0b00011111111;
35541let hasNewValue = 1;
35542let opNewValue = 0;
35543let DecoderNamespace = "EXT_mmvec";
35544}
35545def V6_vrounduhub_alt : HInst<
35546(outs HvxVR:$Vd32),
35547(ins HvxVR:$Vu32, HvxVR:$Vv32),
35548"$Vd32 = vrounduhub($Vu32,$Vv32):sat",
35549PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35550let hasNewValue = 1;
35551let opNewValue = 0;
35552let isPseudo = 1;
35553let isCodeGenOnly = 1;
35554let DecoderNamespace = "EXT_mmvec";
35555}
35556def V6_vrounduwuh : HInst<
35557(outs HvxVR:$Vd32),
35558(ins HvxVR:$Vu32, HvxVR:$Vv32),
35559"$Vd32.uh = vround($Vu32.uw,$Vv32.uw):sat",
35560tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV62]> {
35561let Inst{7-5} = 0b100;
35562let Inst{13-13} = 0b0;
35563let Inst{31-21} = 0b00011111111;
35564let hasNewValue = 1;
35565let opNewValue = 0;
35566let DecoderNamespace = "EXT_mmvec";
35567}
35568def V6_vrounduwuh_alt : HInst<
35569(outs HvxVR:$Vd32),
35570(ins HvxVR:$Vu32, HvxVR:$Vv32),
35571"$Vd32 = vrounduwuh($Vu32,$Vv32):sat",
35572PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35573let hasNewValue = 1;
35574let opNewValue = 0;
35575let isPseudo = 1;
35576let isCodeGenOnly = 1;
35577let DecoderNamespace = "EXT_mmvec";
35578}
35579def V6_vroundwh : HInst<
35580(outs HvxVR:$Vd32),
35581(ins HvxVR:$Vu32, HvxVR:$Vv32),
35582"$Vd32.h = vround($Vu32.w,$Vv32.w):sat",
35583tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35584let Inst{7-5} = 0b100;
35585let Inst{13-13} = 0b0;
35586let Inst{31-21} = 0b00011111011;
35587let hasNewValue = 1;
35588let opNewValue = 0;
35589let DecoderNamespace = "EXT_mmvec";
35590}
35591def V6_vroundwh_alt : HInst<
35592(outs HvxVR:$Vd32),
35593(ins HvxVR:$Vu32, HvxVR:$Vv32),
35594"$Vd32 = vroundwh($Vu32,$Vv32):sat",
35595PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35596let hasNewValue = 1;
35597let opNewValue = 0;
35598let isPseudo = 1;
35599let isCodeGenOnly = 1;
35600let DecoderNamespace = "EXT_mmvec";
35601}
35602def V6_vroundwuh : HInst<
35603(outs HvxVR:$Vd32),
35604(ins HvxVR:$Vu32, HvxVR:$Vv32),
35605"$Vd32.uh = vround($Vu32.w,$Vv32.w):sat",
35606tc_05ca8cfd, TypeCVI_VS>, Enc_45364e, Requires<[UseHVXV60]> {
35607let Inst{7-5} = 0b101;
35608let Inst{13-13} = 0b0;
35609let Inst{31-21} = 0b00011111011;
35610let hasNewValue = 1;
35611let opNewValue = 0;
35612let DecoderNamespace = "EXT_mmvec";
35613}
35614def V6_vroundwuh_alt : HInst<
35615(outs HvxVR:$Vd32),
35616(ins HvxVR:$Vu32, HvxVR:$Vv32),
35617"$Vd32 = vroundwuh($Vu32,$Vv32):sat",
35618PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35619let hasNewValue = 1;
35620let opNewValue = 0;
35621let isPseudo = 1;
35622let isCodeGenOnly = 1;
35623let DecoderNamespace = "EXT_mmvec";
35624}
35625def V6_vrsadubi : HInst<
35626(outs HvxWR:$Vdd32),
35627(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35628"$Vdd32.uw = vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
35629tc_1ad8a370, TypeCVI_VX_DV>, Enc_2f2f04, Requires<[UseHVXV60]> {
35630let Inst{7-6} = 0b11;
35631let Inst{13-13} = 0b0;
35632let Inst{31-21} = 0b00011001010;
35633let hasNewValue = 1;
35634let opNewValue = 0;
35635let DecoderNamespace = "EXT_mmvec";
35636}
35637def V6_vrsadubi_acc : HInst<
35638(outs HvxWR:$Vxx32),
35639(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35640"$Vxx32.uw += vrsad($Vuu32.ub,$Rt32.ub,#$Ii)",
35641tc_e675c45a, TypeCVI_VX_DV>, Enc_d483b9, Requires<[UseHVXV60]> {
35642let Inst{7-6} = 0b11;
35643let Inst{13-13} = 0b1;
35644let Inst{31-21} = 0b00011001010;
35645let hasNewValue = 1;
35646let opNewValue = 0;
35647let isAccumulator = 1;
35648let DecoderNamespace = "EXT_mmvec";
35649let Constraints = "$Vxx32 = $Vxx32in";
35650}
35651def V6_vrsadubi_acc_alt : HInst<
35652(outs HvxWR:$Vxx32),
35653(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35654"$Vxx32 += vrsadub($Vuu32,$Rt32,#$Ii)",
35655PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35656let hasNewValue = 1;
35657let opNewValue = 0;
35658let isAccumulator = 1;
35659let isPseudo = 1;
35660let isCodeGenOnly = 1;
35661let DecoderNamespace = "EXT_mmvec";
35662let Constraints = "$Vxx32 = $Vxx32in";
35663}
35664def V6_vrsadubi_alt : HInst<
35665(outs HvxWR:$Vdd32),
35666(ins HvxWR:$Vuu32, IntRegs:$Rt32, u1_0Imm:$Ii),
35667"$Vdd32 = vrsadub($Vuu32,$Rt32,#$Ii)",
35668PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35669let hasNewValue = 1;
35670let opNewValue = 0;
35671let isPseudo = 1;
35672let isCodeGenOnly = 1;
35673let DecoderNamespace = "EXT_mmvec";
35674}
35675def V6_vsatdw : HInst<
35676(outs HvxVR:$Vd32),
35677(ins HvxVR:$Vu32, HvxVR:$Vv32),
35678"$Vd32.w = vsatdw($Vu32.w,$Vv32.w)",
35679tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV66]> {
35680let Inst{7-5} = 0b111;
35681let Inst{13-13} = 0b1;
35682let Inst{31-21} = 0b00011101100;
35683let hasNewValue = 1;
35684let opNewValue = 0;
35685let DecoderNamespace = "EXT_mmvec";
35686}
35687def V6_vsathub : HInst<
35688(outs HvxVR:$Vd32),
35689(ins HvxVR:$Vu32, HvxVR:$Vv32),
35690"$Vd32.ub = vsat($Vu32.h,$Vv32.h)",
35691tc_8772086c, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> {
35692let Inst{7-5} = 0b010;
35693let Inst{13-13} = 0b0;
35694let Inst{31-21} = 0b00011111011;
35695let hasNewValue = 1;
35696let opNewValue = 0;
35697let DecoderNamespace = "EXT_mmvec";
35698}
35699def V6_vsathub_alt : HInst<
35700(outs HvxVR:$Vd32),
35701(ins HvxVR:$Vu32, HvxVR:$Vv32),
35702"$Vd32 = vsathub($Vu32,$Vv32)",
35703PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35704let hasNewValue = 1;
35705let opNewValue = 0;
35706let isPseudo = 1;
35707let isCodeGenOnly = 1;
35708let DecoderNamespace = "EXT_mmvec";
35709}
35710def V6_vsatuwuh : HInst<
35711(outs HvxVR:$Vd32),
35712(ins HvxVR:$Vu32, HvxVR:$Vv32),
35713"$Vd32.uh = vsat($Vu32.uw,$Vv32.uw)",
35714tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
35715let Inst{7-5} = 0b110;
35716let Inst{13-13} = 0b0;
35717let Inst{31-21} = 0b00011111001;
35718let hasNewValue = 1;
35719let opNewValue = 0;
35720let DecoderNamespace = "EXT_mmvec";
35721}
35722def V6_vsatuwuh_alt : HInst<
35723(outs HvxVR:$Vd32),
35724(ins HvxVR:$Vu32, HvxVR:$Vv32),
35725"$Vd32 = vsatuwuh($Vu32,$Vv32)",
35726PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
35727let hasNewValue = 1;
35728let opNewValue = 0;
35729let isPseudo = 1;
35730let isCodeGenOnly = 1;
35731let DecoderNamespace = "EXT_mmvec";
35732}
35733def V6_vsatwh : HInst<
35734(outs HvxVR:$Vd32),
35735(ins HvxVR:$Vu32, HvxVR:$Vv32),
35736"$Vd32.h = vsat($Vu32.w,$Vv32.w)",
35737tc_8772086c, TypeCVI_VINLANESAT>, Enc_45364e, Requires<[UseHVXV60]> {
35738let Inst{7-5} = 0b011;
35739let Inst{13-13} = 0b0;
35740let Inst{31-21} = 0b00011111011;
35741let hasNewValue = 1;
35742let opNewValue = 0;
35743let DecoderNamespace = "EXT_mmvec";
35744}
35745def V6_vsatwh_alt : HInst<
35746(outs HvxVR:$Vd32),
35747(ins HvxVR:$Vu32, HvxVR:$Vv32),
35748"$Vd32 = vsatwh($Vu32,$Vv32)",
35749PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35750let hasNewValue = 1;
35751let opNewValue = 0;
35752let isPseudo = 1;
35753let isCodeGenOnly = 1;
35754let DecoderNamespace = "EXT_mmvec";
35755}
35756def V6_vsb : HInst<
35757(outs HvxWR:$Vdd32),
35758(ins HvxVR:$Vu32),
35759"$Vdd32.h = vsxt($Vu32.b)",
35760tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
35761let Inst{7-5} = 0b011;
35762let Inst{13-13} = 0b0;
35763let Inst{31-16} = 0b0001111000000010;
35764let hasNewValue = 1;
35765let opNewValue = 0;
35766let DecoderNamespace = "EXT_mmvec";
35767}
35768def V6_vsb_alt : HInst<
35769(outs HvxWR:$Vdd32),
35770(ins HvxVR:$Vu32),
35771"$Vdd32 = vsxtb($Vu32)",
35772PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35773let hasNewValue = 1;
35774let opNewValue = 0;
35775let isPseudo = 1;
35776let isCodeGenOnly = 1;
35777let DecoderNamespace = "EXT_mmvec";
35778}
35779def V6_vscattermh : HInst<
35780(outs),
35781(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35782"vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
35783tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35784let Inst{7-5} = 0b001;
35785let Inst{31-21} = 0b00101111001;
35786let accessSize = HalfWordAccess;
35787let mayStore = 1;
35788let DecoderNamespace = "EXT_mmvec";
35789}
35790def V6_vscattermh_add : HInst<
35791(outs),
35792(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35793"vscatter($Rt32,$Mu2,$Vv32.h).h += $Vw32",
35794tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35795let Inst{7-5} = 0b101;
35796let Inst{31-21} = 0b00101111001;
35797let accessSize = HalfWordAccess;
35798let isAccumulator = 1;
35799let mayStore = 1;
35800let DecoderNamespace = "EXT_mmvec";
35801}
35802def V6_vscattermh_add_alt : HInst<
35803(outs),
35804(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35805"vscatter($Rt32,$Mu2,$Vv32.h) += $Vw32.h",
35806PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35807let isAccumulator = 1;
35808let isPseudo = 1;
35809let isCodeGenOnly = 1;
35810let DecoderNamespace = "EXT_mmvec";
35811}
35812def V6_vscattermh_alt : HInst<
35813(outs),
35814(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35815"vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
35816PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35817let isPseudo = 1;
35818let isCodeGenOnly = 1;
35819let DecoderNamespace = "EXT_mmvec";
35820}
35821def V6_vscattermhq : HInst<
35822(outs),
35823(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35824"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h).h = $Vw32",
35825tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
35826let Inst{7-7} = 0b1;
35827let Inst{31-21} = 0b00101111100;
35828let accessSize = HalfWordAccess;
35829let mayStore = 1;
35830let DecoderNamespace = "EXT_mmvec";
35831}
35832def V6_vscattermhq_alt : HInst<
35833(outs),
35834(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35835"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.h) = $Vw32.h",
35836PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35837let isPseudo = 1;
35838let isCodeGenOnly = 1;
35839let DecoderNamespace = "EXT_mmvec";
35840}
35841def V6_vscattermhw : HInst<
35842(outs),
35843(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35844"vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
35845tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
35846let Inst{7-5} = 0b010;
35847let Inst{31-21} = 0b00101111001;
35848let accessSize = HalfWordAccess;
35849let mayStore = 1;
35850let DecoderNamespace = "EXT_mmvec";
35851}
35852def V6_vscattermhw_add : HInst<
35853(outs),
35854(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35855"vscatter($Rt32,$Mu2,$Vvv32.w).h += $Vw32",
35856tc_7273323b, TypeCVI_SCATTER_DV>, Enc_a641d0, Requires<[UseHVXV65]> {
35857let Inst{7-5} = 0b110;
35858let Inst{31-21} = 0b00101111001;
35859let accessSize = HalfWordAccess;
35860let isAccumulator = 1;
35861let mayStore = 1;
35862let DecoderNamespace = "EXT_mmvec";
35863}
35864def V6_vscattermhwq : HInst<
35865(outs),
35866(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35867"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w).h = $Vw32",
35868tc_58d21193, TypeCVI_SCATTER_DV>, Enc_3d6d37, Requires<[UseHVXV65]> {
35869let Inst{7-7} = 0b0;
35870let Inst{31-21} = 0b00101111101;
35871let accessSize = HalfWordAccess;
35872let mayStore = 1;
35873let DecoderNamespace = "EXT_mmvec";
35874}
35875def V6_vscattermw : HInst<
35876(outs),
35877(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35878"vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
35879tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35880let Inst{7-5} = 0b000;
35881let Inst{31-21} = 0b00101111001;
35882let accessSize = WordAccess;
35883let mayStore = 1;
35884let DecoderNamespace = "EXT_mmvec";
35885}
35886def V6_vscattermw_add : HInst<
35887(outs),
35888(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35889"vscatter($Rt32,$Mu2,$Vv32.w).w += $Vw32",
35890tc_9f363d21, TypeCVI_SCATTER>, Enc_16c48b, Requires<[UseHVXV65]> {
35891let Inst{7-5} = 0b100;
35892let Inst{31-21} = 0b00101111001;
35893let accessSize = WordAccess;
35894let isAccumulator = 1;
35895let mayStore = 1;
35896let DecoderNamespace = "EXT_mmvec";
35897}
35898def V6_vscattermw_add_alt : HInst<
35899(outs),
35900(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35901"vscatter($Rt32,$Mu2,$Vv32.w) += $Vw32.w",
35902PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35903let isAccumulator = 1;
35904let isPseudo = 1;
35905let isCodeGenOnly = 1;
35906let DecoderNamespace = "EXT_mmvec";
35907}
35908def V6_vscattermw_alt : HInst<
35909(outs),
35910(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35911"vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
35912PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35913let isPseudo = 1;
35914let isCodeGenOnly = 1;
35915let DecoderNamespace = "EXT_mmvec";
35916}
35917def V6_vscattermwh_add_alt : HInst<
35918(outs),
35919(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35920"vscatter($Rt32,$Mu2,$Vvv32.w) += $Vw32.h",
35921PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35922let isAccumulator = 1;
35923let isPseudo = 1;
35924let isCodeGenOnly = 1;
35925let DecoderNamespace = "EXT_mmvec";
35926}
35927def V6_vscattermwh_alt : HInst<
35928(outs),
35929(ins IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35930"vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
35931PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35932let isPseudo = 1;
35933let isCodeGenOnly = 1;
35934let DecoderNamespace = "EXT_mmvec";
35935}
35936def V6_vscattermwhq_alt : HInst<
35937(outs),
35938(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxWR:$Vvv32, HvxVR:$Vw32),
35939"if ($Qs4) vscatter($Rt32,$Mu2,$Vvv32.w) = $Vw32.h",
35940PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35941let isPseudo = 1;
35942let isCodeGenOnly = 1;
35943let DecoderNamespace = "EXT_mmvec";
35944}
35945def V6_vscattermwq : HInst<
35946(outs),
35947(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35948"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w).w = $Vw32",
35949tc_8e420e4d, TypeCVI_SCATTER>, Enc_9be1de, Requires<[UseHVXV65]> {
35950let Inst{7-7} = 0b0;
35951let Inst{31-21} = 0b00101111100;
35952let accessSize = WordAccess;
35953let mayStore = 1;
35954let DecoderNamespace = "EXT_mmvec";
35955}
35956def V6_vscattermwq_alt : HInst<
35957(outs),
35958(ins HvxQR:$Qs4, IntRegs:$Rt32, ModRegs:$Mu2, HvxVR:$Vv32, HvxVR:$Vw32),
35959"if ($Qs4) vscatter($Rt32,$Mu2,$Vv32.w) = $Vw32.w",
35960PSEUDO, TypeMAPPING>, Requires<[UseHVXV65]> {
35961let isPseudo = 1;
35962let isCodeGenOnly = 1;
35963let DecoderNamespace = "EXT_mmvec";
35964}
35965def V6_vsh : HInst<
35966(outs HvxWR:$Vdd32),
35967(ins HvxVR:$Vu32),
35968"$Vdd32.w = vsxt($Vu32.h)",
35969tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
35970let Inst{7-5} = 0b100;
35971let Inst{13-13} = 0b0;
35972let Inst{31-16} = 0b0001111000000010;
35973let hasNewValue = 1;
35974let opNewValue = 0;
35975let DecoderNamespace = "EXT_mmvec";
35976}
35977def V6_vsh_alt : HInst<
35978(outs HvxWR:$Vdd32),
35979(ins HvxVR:$Vu32),
35980"$Vdd32 = vsxth($Vu32)",
35981PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
35982let hasNewValue = 1;
35983let opNewValue = 0;
35984let isPseudo = 1;
35985let isCodeGenOnly = 1;
35986let DecoderNamespace = "EXT_mmvec";
35987}
35988def V6_vshufeh : HInst<
35989(outs HvxVR:$Vd32),
35990(ins HvxVR:$Vu32, HvxVR:$Vv32),
35991"$Vd32.h = vshuffe($Vu32.h,$Vv32.h)",
35992tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
35993let Inst{7-5} = 0b011;
35994let Inst{13-13} = 0b0;
35995let Inst{31-21} = 0b00011111010;
35996let hasNewValue = 1;
35997let opNewValue = 0;
35998let DecoderNamespace = "EXT_mmvec";
35999}
36000def V6_vshufeh_alt : HInst<
36001(outs HvxVR:$Vd32),
36002(ins HvxVR:$Vu32, HvxVR:$Vv32),
36003"$Vd32 = vshuffeh($Vu32,$Vv32)",
36004PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36005let hasNewValue = 1;
36006let opNewValue = 0;
36007let isPseudo = 1;
36008let isCodeGenOnly = 1;
36009let DecoderNamespace = "EXT_mmvec";
36010}
36011def V6_vshuff : HInst<
36012(outs HvxVR:$Vy32, HvxVR:$Vx32),
36013(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
36014"vshuff($Vy32,$Vx32,$Rt32)",
36015tc_561aaa58, TypeCVI_VP_VS>, Enc_989021, Requires<[UseHVXV60]> {
36016let Inst{7-5} = 0b001;
36017let Inst{13-13} = 0b1;
36018let Inst{31-21} = 0b00011001111;
36019let hasNewValue = 1;
36020let opNewValue = 0;
36021let hasNewValue2 = 1;
36022let opNewValue2 = 1;
36023let DecoderNamespace = "EXT_mmvec";
36024let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
36025}
36026def V6_vshuffb : HInst<
36027(outs HvxVR:$Vd32),
36028(ins HvxVR:$Vu32),
36029"$Vd32.b = vshuff($Vu32.b)",
36030tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
36031let Inst{7-5} = 0b000;
36032let Inst{13-13} = 0b0;
36033let Inst{31-16} = 0b0001111000000010;
36034let hasNewValue = 1;
36035let opNewValue = 0;
36036let DecoderNamespace = "EXT_mmvec";
36037}
36038def V6_vshuffb_alt : HInst<
36039(outs HvxVR:$Vd32),
36040(ins HvxVR:$Vu32),
36041"$Vd32 = vshuffb($Vu32)",
36042PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36043let hasNewValue = 1;
36044let opNewValue = 0;
36045let isPseudo = 1;
36046let isCodeGenOnly = 1;
36047let DecoderNamespace = "EXT_mmvec";
36048}
36049def V6_vshuffeb : HInst<
36050(outs HvxVR:$Vd32),
36051(ins HvxVR:$Vu32, HvxVR:$Vv32),
36052"$Vd32.b = vshuffe($Vu32.b,$Vv32.b)",
36053tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36054let Inst{7-5} = 0b001;
36055let Inst{13-13} = 0b0;
36056let Inst{31-21} = 0b00011111010;
36057let hasNewValue = 1;
36058let opNewValue = 0;
36059let DecoderNamespace = "EXT_mmvec";
36060}
36061def V6_vshuffeb_alt : HInst<
36062(outs HvxVR:$Vd32),
36063(ins HvxVR:$Vu32, HvxVR:$Vv32),
36064"$Vd32 = vshuffeb($Vu32,$Vv32)",
36065PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36066let hasNewValue = 1;
36067let opNewValue = 0;
36068let isPseudo = 1;
36069let isCodeGenOnly = 1;
36070let DecoderNamespace = "EXT_mmvec";
36071}
36072def V6_vshuffh : HInst<
36073(outs HvxVR:$Vd32),
36074(ins HvxVR:$Vu32),
36075"$Vd32.h = vshuff($Vu32.h)",
36076tc_946013d8, TypeCVI_VP>, Enc_e7581c, Requires<[UseHVXV60]> {
36077let Inst{7-5} = 0b111;
36078let Inst{13-13} = 0b0;
36079let Inst{31-16} = 0b0001111000000001;
36080let hasNewValue = 1;
36081let opNewValue = 0;
36082let DecoderNamespace = "EXT_mmvec";
36083}
36084def V6_vshuffh_alt : HInst<
36085(outs HvxVR:$Vd32),
36086(ins HvxVR:$Vu32),
36087"$Vd32 = vshuffh($Vu32)",
36088PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36089let hasNewValue = 1;
36090let opNewValue = 0;
36091let isPseudo = 1;
36092let isCodeGenOnly = 1;
36093let DecoderNamespace = "EXT_mmvec";
36094}
36095def V6_vshuffob : HInst<
36096(outs HvxVR:$Vd32),
36097(ins HvxVR:$Vu32, HvxVR:$Vv32),
36098"$Vd32.b = vshuffo($Vu32.b,$Vv32.b)",
36099tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36100let Inst{7-5} = 0b010;
36101let Inst{13-13} = 0b0;
36102let Inst{31-21} = 0b00011111010;
36103let hasNewValue = 1;
36104let opNewValue = 0;
36105let DecoderNamespace = "EXT_mmvec";
36106}
36107def V6_vshuffob_alt : HInst<
36108(outs HvxVR:$Vd32),
36109(ins HvxVR:$Vu32, HvxVR:$Vv32),
36110"$Vd32 = vshuffob($Vu32,$Vv32)",
36111PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36112let hasNewValue = 1;
36113let opNewValue = 0;
36114let isPseudo = 1;
36115let isCodeGenOnly = 1;
36116let DecoderNamespace = "EXT_mmvec";
36117}
36118def V6_vshuffvdd : HInst<
36119(outs HvxWR:$Vdd32),
36120(ins HvxVR:$Vu32, HvxVR:$Vv32, IntRegsLow8:$Rt8),
36121"$Vdd32 = vshuff($Vu32,$Vv32,$Rt8)",
36122tc_87adc037, TypeCVI_VP_VS>, Enc_24a7dc, Requires<[UseHVXV60]> {
36123let Inst{7-5} = 0b011;
36124let Inst{13-13} = 0b1;
36125let Inst{31-24} = 0b00011011;
36126let hasNewValue = 1;
36127let opNewValue = 0;
36128let DecoderNamespace = "EXT_mmvec";
36129}
36130def V6_vshufoeb : HInst<
36131(outs HvxWR:$Vdd32),
36132(ins HvxVR:$Vu32, HvxVR:$Vv32),
36133"$Vdd32.b = vshuffoe($Vu32.b,$Vv32.b)",
36134tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36135let Inst{7-5} = 0b110;
36136let Inst{13-13} = 0b0;
36137let Inst{31-21} = 0b00011111010;
36138let hasNewValue = 1;
36139let opNewValue = 0;
36140let DecoderNamespace = "EXT_mmvec";
36141}
36142def V6_vshufoeb_alt : HInst<
36143(outs HvxWR:$Vdd32),
36144(ins HvxVR:$Vu32, HvxVR:$Vv32),
36145"$Vdd32 = vshuffoeb($Vu32,$Vv32)",
36146PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36147let hasNewValue = 1;
36148let opNewValue = 0;
36149let isPseudo = 1;
36150let isCodeGenOnly = 1;
36151let DecoderNamespace = "EXT_mmvec";
36152}
36153def V6_vshufoeh : HInst<
36154(outs HvxWR:$Vdd32),
36155(ins HvxVR:$Vu32, HvxVR:$Vv32),
36156"$Vdd32.h = vshuffoe($Vu32.h,$Vv32.h)",
36157tc_db5555f3, TypeCVI_VA_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36158let Inst{7-5} = 0b101;
36159let Inst{13-13} = 0b0;
36160let Inst{31-21} = 0b00011111010;
36161let hasNewValue = 1;
36162let opNewValue = 0;
36163let DecoderNamespace = "EXT_mmvec";
36164}
36165def V6_vshufoeh_alt : HInst<
36166(outs HvxWR:$Vdd32),
36167(ins HvxVR:$Vu32, HvxVR:$Vv32),
36168"$Vdd32 = vshuffoeh($Vu32,$Vv32)",
36169PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36170let hasNewValue = 1;
36171let opNewValue = 0;
36172let isPseudo = 1;
36173let isCodeGenOnly = 1;
36174let DecoderNamespace = "EXT_mmvec";
36175}
36176def V6_vshufoh : HInst<
36177(outs HvxVR:$Vd32),
36178(ins HvxVR:$Vu32, HvxVR:$Vv32),
36179"$Vd32.h = vshuffo($Vu32.h,$Vv32.h)",
36180tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36181let Inst{7-5} = 0b100;
36182let Inst{13-13} = 0b0;
36183let Inst{31-21} = 0b00011111010;
36184let hasNewValue = 1;
36185let opNewValue = 0;
36186let DecoderNamespace = "EXT_mmvec";
36187}
36188def V6_vshufoh_alt : HInst<
36189(outs HvxVR:$Vd32),
36190(ins HvxVR:$Vu32, HvxVR:$Vv32),
36191"$Vd32 = vshuffoh($Vu32,$Vv32)",
36192PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36193let hasNewValue = 1;
36194let opNewValue = 0;
36195let isPseudo = 1;
36196let isCodeGenOnly = 1;
36197let DecoderNamespace = "EXT_mmvec";
36198}
36199def V6_vsubb : HInst<
36200(outs HvxVR:$Vd32),
36201(ins HvxVR:$Vu32, HvxVR:$Vv32),
36202"$Vd32.b = vsub($Vu32.b,$Vv32.b)",
36203tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36204let Inst{7-5} = 0b101;
36205let Inst{13-13} = 0b0;
36206let Inst{31-21} = 0b00011100010;
36207let hasNewValue = 1;
36208let opNewValue = 0;
36209let DecoderNamespace = "EXT_mmvec";
36210}
36211def V6_vsubb_alt : HInst<
36212(outs HvxVR:$Vd32),
36213(ins HvxVR:$Vu32, HvxVR:$Vv32),
36214"$Vd32 = vsubb($Vu32,$Vv32)",
36215PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36216let hasNewValue = 1;
36217let opNewValue = 0;
36218let isPseudo = 1;
36219let isCodeGenOnly = 1;
36220let DecoderNamespace = "EXT_mmvec";
36221}
36222def V6_vsubb_dv : HInst<
36223(outs HvxWR:$Vdd32),
36224(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36225"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b)",
36226tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36227let Inst{7-5} = 0b011;
36228let Inst{13-13} = 0b0;
36229let Inst{31-21} = 0b00011100100;
36230let hasNewValue = 1;
36231let opNewValue = 0;
36232let DecoderNamespace = "EXT_mmvec";
36233}
36234def V6_vsubb_dv_alt : HInst<
36235(outs HvxWR:$Vdd32),
36236(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36237"$Vdd32 = vsubb($Vuu32,$Vvv32)",
36238PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36239let hasNewValue = 1;
36240let opNewValue = 0;
36241let isPseudo = 1;
36242let isCodeGenOnly = 1;
36243let DecoderNamespace = "EXT_mmvec";
36244}
36245def V6_vsubbnq : HInst<
36246(outs HvxVR:$Vx32),
36247(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36248"if (!$Qv4) $Vx32.b -= $Vu32.b",
36249tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36250let Inst{7-5} = 0b001;
36251let Inst{13-13} = 0b1;
36252let Inst{21-16} = 0b000010;
36253let Inst{31-24} = 0b00011110;
36254let hasNewValue = 1;
36255let opNewValue = 0;
36256let DecoderNamespace = "EXT_mmvec";
36257let Constraints = "$Vx32 = $Vx32in";
36258}
36259def V6_vsubbnq_alt : HInst<
36260(outs HvxVR:$Vx32),
36261(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36262"if (!$Qv4.b) $Vx32.b -= $Vu32.b",
36263PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36264let hasNewValue = 1;
36265let opNewValue = 0;
36266let isPseudo = 1;
36267let isCodeGenOnly = 1;
36268let DecoderNamespace = "EXT_mmvec";
36269let Constraints = "$Vx32 = $Vx32in";
36270}
36271def V6_vsubbq : HInst<
36272(outs HvxVR:$Vx32),
36273(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36274"if ($Qv4) $Vx32.b -= $Vu32.b",
36275tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36276let Inst{7-5} = 0b110;
36277let Inst{13-13} = 0b1;
36278let Inst{21-16} = 0b000001;
36279let Inst{31-24} = 0b00011110;
36280let hasNewValue = 1;
36281let opNewValue = 0;
36282let DecoderNamespace = "EXT_mmvec";
36283let Constraints = "$Vx32 = $Vx32in";
36284}
36285def V6_vsubbq_alt : HInst<
36286(outs HvxVR:$Vx32),
36287(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36288"if ($Qv4.b) $Vx32.b -= $Vu32.b",
36289PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36290let hasNewValue = 1;
36291let opNewValue = 0;
36292let isPseudo = 1;
36293let isCodeGenOnly = 1;
36294let DecoderNamespace = "EXT_mmvec";
36295let Constraints = "$Vx32 = $Vx32in";
36296}
36297def V6_vsubbsat : HInst<
36298(outs HvxVR:$Vd32),
36299(ins HvxVR:$Vu32, HvxVR:$Vv32),
36300"$Vd32.b = vsub($Vu32.b,$Vv32.b):sat",
36301tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36302let Inst{7-5} = 0b010;
36303let Inst{13-13} = 0b0;
36304let Inst{31-21} = 0b00011111001;
36305let hasNewValue = 1;
36306let opNewValue = 0;
36307let DecoderNamespace = "EXT_mmvec";
36308}
36309def V6_vsubbsat_alt : HInst<
36310(outs HvxVR:$Vd32),
36311(ins HvxVR:$Vu32, HvxVR:$Vv32),
36312"$Vd32 = vsubb($Vu32,$Vv32):sat",
36313PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36314let hasNewValue = 1;
36315let opNewValue = 0;
36316let isPseudo = 1;
36317let isCodeGenOnly = 1;
36318let DecoderNamespace = "EXT_mmvec";
36319}
36320def V6_vsubbsat_dv : HInst<
36321(outs HvxWR:$Vdd32),
36322(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36323"$Vdd32.b = vsub($Vuu32.b,$Vvv32.b):sat",
36324tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
36325let Inst{7-5} = 0b001;
36326let Inst{13-13} = 0b0;
36327let Inst{31-21} = 0b00011110101;
36328let hasNewValue = 1;
36329let opNewValue = 0;
36330let DecoderNamespace = "EXT_mmvec";
36331}
36332def V6_vsubbsat_dv_alt : HInst<
36333(outs HvxWR:$Vdd32),
36334(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36335"$Vdd32 = vsubb($Vuu32,$Vvv32):sat",
36336PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36337let hasNewValue = 1;
36338let opNewValue = 0;
36339let isPseudo = 1;
36340let isCodeGenOnly = 1;
36341let DecoderNamespace = "EXT_mmvec";
36342}
36343def V6_vsubcarry : HInst<
36344(outs HvxVR:$Vd32, HvxQR:$Qx4),
36345(ins HvxVR:$Vu32, HvxVR:$Vv32, HvxQR:$Qx4in),
36346"$Vd32.w = vsub($Vu32.w,$Vv32.w,$Qx4):carry",
36347tc_7e6a3e89, TypeCVI_VA>, Enc_b43b67, Requires<[UseHVXV62]> {
36348let Inst{7-7} = 0b1;
36349let Inst{13-13} = 0b1;
36350let Inst{31-21} = 0b00011100101;
36351let hasNewValue = 1;
36352let opNewValue = 0;
36353let DecoderNamespace = "EXT_mmvec";
36354let Constraints = "$Qx4 = $Qx4in";
36355}
36356def V6_vsubcarryo : HInst<
36357(outs HvxVR:$Vd32, HvxQR:$Qe4),
36358(ins HvxVR:$Vu32, HvxVR:$Vv32),
36359"$Vd32.w,$Qe4 = vsub($Vu32.w,$Vv32.w):carry",
36360tc_e35c1e93, TypeCOPROC_VX>, Enc_c1d806, Requires<[UseHVXV66]> {
36361let Inst{7-7} = 0b1;
36362let Inst{13-13} = 0b1;
36363let Inst{31-21} = 0b00011101101;
36364let hasNewValue = 1;
36365let opNewValue = 0;
36366let hasNewValue2 = 1;
36367let opNewValue2 = 1;
36368let DecoderNamespace = "EXT_mmvec";
36369}
36370def V6_vsubh : HInst<
36371(outs HvxVR:$Vd32),
36372(ins HvxVR:$Vu32, HvxVR:$Vv32),
36373"$Vd32.h = vsub($Vu32.h,$Vv32.h)",
36374tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36375let Inst{7-5} = 0b110;
36376let Inst{13-13} = 0b0;
36377let Inst{31-21} = 0b00011100010;
36378let hasNewValue = 1;
36379let opNewValue = 0;
36380let DecoderNamespace = "EXT_mmvec";
36381}
36382def V6_vsubh_alt : HInst<
36383(outs HvxVR:$Vd32),
36384(ins HvxVR:$Vu32, HvxVR:$Vv32),
36385"$Vd32 = vsubh($Vu32,$Vv32)",
36386PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36387let hasNewValue = 1;
36388let opNewValue = 0;
36389let isPseudo = 1;
36390let isCodeGenOnly = 1;
36391let DecoderNamespace = "EXT_mmvec";
36392}
36393def V6_vsubh_dv : HInst<
36394(outs HvxWR:$Vdd32),
36395(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36396"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h)",
36397tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36398let Inst{7-5} = 0b100;
36399let Inst{13-13} = 0b0;
36400let Inst{31-21} = 0b00011100100;
36401let hasNewValue = 1;
36402let opNewValue = 0;
36403let DecoderNamespace = "EXT_mmvec";
36404}
36405def V6_vsubh_dv_alt : HInst<
36406(outs HvxWR:$Vdd32),
36407(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36408"$Vdd32 = vsubh($Vuu32,$Vvv32)",
36409PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36410let hasNewValue = 1;
36411let opNewValue = 0;
36412let isPseudo = 1;
36413let isCodeGenOnly = 1;
36414let DecoderNamespace = "EXT_mmvec";
36415}
36416def V6_vsubhnq : HInst<
36417(outs HvxVR:$Vx32),
36418(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36419"if (!$Qv4) $Vx32.h -= $Vu32.h",
36420tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36421let Inst{7-5} = 0b010;
36422let Inst{13-13} = 0b1;
36423let Inst{21-16} = 0b000010;
36424let Inst{31-24} = 0b00011110;
36425let hasNewValue = 1;
36426let opNewValue = 0;
36427let DecoderNamespace = "EXT_mmvec";
36428let Constraints = "$Vx32 = $Vx32in";
36429}
36430def V6_vsubhnq_alt : HInst<
36431(outs HvxVR:$Vx32),
36432(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36433"if (!$Qv4.h) $Vx32.h -= $Vu32.h",
36434PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36435let hasNewValue = 1;
36436let opNewValue = 0;
36437let isPseudo = 1;
36438let isCodeGenOnly = 1;
36439let DecoderNamespace = "EXT_mmvec";
36440let Constraints = "$Vx32 = $Vx32in";
36441}
36442def V6_vsubhq : HInst<
36443(outs HvxVR:$Vx32),
36444(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36445"if ($Qv4) $Vx32.h -= $Vu32.h",
36446tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36447let Inst{7-5} = 0b111;
36448let Inst{13-13} = 0b1;
36449let Inst{21-16} = 0b000001;
36450let Inst{31-24} = 0b00011110;
36451let hasNewValue = 1;
36452let opNewValue = 0;
36453let DecoderNamespace = "EXT_mmvec";
36454let Constraints = "$Vx32 = $Vx32in";
36455}
36456def V6_vsubhq_alt : HInst<
36457(outs HvxVR:$Vx32),
36458(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36459"if ($Qv4.h) $Vx32.h -= $Vu32.h",
36460PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36461let hasNewValue = 1;
36462let opNewValue = 0;
36463let isPseudo = 1;
36464let isCodeGenOnly = 1;
36465let DecoderNamespace = "EXT_mmvec";
36466let Constraints = "$Vx32 = $Vx32in";
36467}
36468def V6_vsubhsat : HInst<
36469(outs HvxVR:$Vd32),
36470(ins HvxVR:$Vu32, HvxVR:$Vv32),
36471"$Vd32.h = vsub($Vu32.h,$Vv32.h):sat",
36472tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36473let Inst{7-5} = 0b010;
36474let Inst{13-13} = 0b0;
36475let Inst{31-21} = 0b00011100011;
36476let hasNewValue = 1;
36477let opNewValue = 0;
36478let DecoderNamespace = "EXT_mmvec";
36479}
36480def V6_vsubhsat_alt : HInst<
36481(outs HvxVR:$Vd32),
36482(ins HvxVR:$Vu32, HvxVR:$Vv32),
36483"$Vd32 = vsubh($Vu32,$Vv32):sat",
36484PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36485let hasNewValue = 1;
36486let opNewValue = 0;
36487let isPseudo = 1;
36488let isCodeGenOnly = 1;
36489let DecoderNamespace = "EXT_mmvec";
36490}
36491def V6_vsubhsat_dv : HInst<
36492(outs HvxWR:$Vdd32),
36493(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36494"$Vdd32.h = vsub($Vuu32.h,$Vvv32.h):sat",
36495tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36496let Inst{7-5} = 0b000;
36497let Inst{13-13} = 0b0;
36498let Inst{31-21} = 0b00011100101;
36499let hasNewValue = 1;
36500let opNewValue = 0;
36501let DecoderNamespace = "EXT_mmvec";
36502}
36503def V6_vsubhsat_dv_alt : HInst<
36504(outs HvxWR:$Vdd32),
36505(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36506"$Vdd32 = vsubh($Vuu32,$Vvv32):sat",
36507PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36508let hasNewValue = 1;
36509let opNewValue = 0;
36510let isPseudo = 1;
36511let isCodeGenOnly = 1;
36512let DecoderNamespace = "EXT_mmvec";
36513}
36514def V6_vsubhw : HInst<
36515(outs HvxWR:$Vdd32),
36516(ins HvxVR:$Vu32, HvxVR:$Vv32),
36517"$Vdd32.w = vsub($Vu32.h,$Vv32.h)",
36518tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36519let Inst{7-5} = 0b111;
36520let Inst{13-13} = 0b0;
36521let Inst{31-21} = 0b00011100101;
36522let hasNewValue = 1;
36523let opNewValue = 0;
36524let DecoderNamespace = "EXT_mmvec";
36525}
36526def V6_vsubhw_alt : HInst<
36527(outs HvxWR:$Vdd32),
36528(ins HvxVR:$Vu32, HvxVR:$Vv32),
36529"$Vdd32 = vsubh($Vu32,$Vv32)",
36530PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36531let hasNewValue = 1;
36532let opNewValue = 0;
36533let isPseudo = 1;
36534let isCodeGenOnly = 1;
36535let DecoderNamespace = "EXT_mmvec";
36536}
36537def V6_vsububh : HInst<
36538(outs HvxWR:$Vdd32),
36539(ins HvxVR:$Vu32, HvxVR:$Vv32),
36540"$Vdd32.h = vsub($Vu32.ub,$Vv32.ub)",
36541tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36542let Inst{7-5} = 0b101;
36543let Inst{13-13} = 0b0;
36544let Inst{31-21} = 0b00011100101;
36545let hasNewValue = 1;
36546let opNewValue = 0;
36547let DecoderNamespace = "EXT_mmvec";
36548}
36549def V6_vsububh_alt : HInst<
36550(outs HvxWR:$Vdd32),
36551(ins HvxVR:$Vu32, HvxVR:$Vv32),
36552"$Vdd32 = vsubub($Vu32,$Vv32)",
36553PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36554let hasNewValue = 1;
36555let opNewValue = 0;
36556let isPseudo = 1;
36557let isCodeGenOnly = 1;
36558let DecoderNamespace = "EXT_mmvec";
36559}
36560def V6_vsububsat : HInst<
36561(outs HvxVR:$Vd32),
36562(ins HvxVR:$Vu32, HvxVR:$Vv32),
36563"$Vd32.ub = vsub($Vu32.ub,$Vv32.ub):sat",
36564tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36565let Inst{7-5} = 0b000;
36566let Inst{13-13} = 0b0;
36567let Inst{31-21} = 0b00011100011;
36568let hasNewValue = 1;
36569let opNewValue = 0;
36570let DecoderNamespace = "EXT_mmvec";
36571}
36572def V6_vsububsat_alt : HInst<
36573(outs HvxVR:$Vd32),
36574(ins HvxVR:$Vu32, HvxVR:$Vv32),
36575"$Vd32 = vsubub($Vu32,$Vv32):sat",
36576PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36577let hasNewValue = 1;
36578let opNewValue = 0;
36579let isPseudo = 1;
36580let isCodeGenOnly = 1;
36581let DecoderNamespace = "EXT_mmvec";
36582}
36583def V6_vsububsat_dv : HInst<
36584(outs HvxWR:$Vdd32),
36585(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36586"$Vdd32.ub = vsub($Vuu32.ub,$Vvv32.ub):sat",
36587tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36588let Inst{7-5} = 0b110;
36589let Inst{13-13} = 0b0;
36590let Inst{31-21} = 0b00011100100;
36591let hasNewValue = 1;
36592let opNewValue = 0;
36593let DecoderNamespace = "EXT_mmvec";
36594}
36595def V6_vsububsat_dv_alt : HInst<
36596(outs HvxWR:$Vdd32),
36597(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36598"$Vdd32 = vsubub($Vuu32,$Vvv32):sat",
36599PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36600let hasNewValue = 1;
36601let opNewValue = 0;
36602let isPseudo = 1;
36603let isCodeGenOnly = 1;
36604let DecoderNamespace = "EXT_mmvec";
36605}
36606def V6_vsubububb_sat : HInst<
36607(outs HvxVR:$Vd32),
36608(ins HvxVR:$Vu32, HvxVR:$Vv32),
36609"$Vd32.ub = vsub($Vu32.ub,$Vv32.b):sat",
36610tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36611let Inst{7-5} = 0b101;
36612let Inst{13-13} = 0b0;
36613let Inst{31-21} = 0b00011110101;
36614let hasNewValue = 1;
36615let opNewValue = 0;
36616let DecoderNamespace = "EXT_mmvec";
36617}
36618def V6_vsubuhsat : HInst<
36619(outs HvxVR:$Vd32),
36620(ins HvxVR:$Vu32, HvxVR:$Vv32),
36621"$Vd32.uh = vsub($Vu32.uh,$Vv32.uh):sat",
36622tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36623let Inst{7-5} = 0b001;
36624let Inst{13-13} = 0b0;
36625let Inst{31-21} = 0b00011100011;
36626let hasNewValue = 1;
36627let opNewValue = 0;
36628let DecoderNamespace = "EXT_mmvec";
36629}
36630def V6_vsubuhsat_alt : HInst<
36631(outs HvxVR:$Vd32),
36632(ins HvxVR:$Vu32, HvxVR:$Vv32),
36633"$Vd32 = vsubuh($Vu32,$Vv32):sat",
36634PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36635let hasNewValue = 1;
36636let opNewValue = 0;
36637let isPseudo = 1;
36638let isCodeGenOnly = 1;
36639let DecoderNamespace = "EXT_mmvec";
36640}
36641def V6_vsubuhsat_dv : HInst<
36642(outs HvxWR:$Vdd32),
36643(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36644"$Vdd32.uh = vsub($Vuu32.uh,$Vvv32.uh):sat",
36645tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36646let Inst{7-5} = 0b111;
36647let Inst{13-13} = 0b0;
36648let Inst{31-21} = 0b00011100100;
36649let hasNewValue = 1;
36650let opNewValue = 0;
36651let DecoderNamespace = "EXT_mmvec";
36652}
36653def V6_vsubuhsat_dv_alt : HInst<
36654(outs HvxWR:$Vdd32),
36655(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36656"$Vdd32 = vsubuh($Vuu32,$Vvv32):sat",
36657PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36658let hasNewValue = 1;
36659let opNewValue = 0;
36660let isPseudo = 1;
36661let isCodeGenOnly = 1;
36662let DecoderNamespace = "EXT_mmvec";
36663}
36664def V6_vsubuhw : HInst<
36665(outs HvxWR:$Vdd32),
36666(ins HvxVR:$Vu32, HvxVR:$Vv32),
36667"$Vdd32.w = vsub($Vu32.uh,$Vv32.uh)",
36668tc_d8287c14, TypeCVI_VX_DV>, Enc_71bb9b, Requires<[UseHVXV60]> {
36669let Inst{7-5} = 0b110;
36670let Inst{13-13} = 0b0;
36671let Inst{31-21} = 0b00011100101;
36672let hasNewValue = 1;
36673let opNewValue = 0;
36674let DecoderNamespace = "EXT_mmvec";
36675}
36676def V6_vsubuhw_alt : HInst<
36677(outs HvxWR:$Vdd32),
36678(ins HvxVR:$Vu32, HvxVR:$Vv32),
36679"$Vdd32 = vsubuh($Vu32,$Vv32)",
36680PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36681let hasNewValue = 1;
36682let opNewValue = 0;
36683let isPseudo = 1;
36684let isCodeGenOnly = 1;
36685let DecoderNamespace = "EXT_mmvec";
36686}
36687def V6_vsubuwsat : HInst<
36688(outs HvxVR:$Vd32),
36689(ins HvxVR:$Vu32, HvxVR:$Vv32),
36690"$Vd32.uw = vsub($Vu32.uw,$Vv32.uw):sat",
36691tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV62]> {
36692let Inst{7-5} = 0b100;
36693let Inst{13-13} = 0b0;
36694let Inst{31-21} = 0b00011111110;
36695let hasNewValue = 1;
36696let opNewValue = 0;
36697let DecoderNamespace = "EXT_mmvec";
36698}
36699def V6_vsubuwsat_alt : HInst<
36700(outs HvxVR:$Vd32),
36701(ins HvxVR:$Vu32, HvxVR:$Vv32),
36702"$Vd32 = vsubuw($Vu32,$Vv32):sat",
36703PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36704let hasNewValue = 1;
36705let opNewValue = 0;
36706let isPseudo = 1;
36707let isCodeGenOnly = 1;
36708let DecoderNamespace = "EXT_mmvec";
36709}
36710def V6_vsubuwsat_dv : HInst<
36711(outs HvxWR:$Vdd32),
36712(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36713"$Vdd32.uw = vsub($Vuu32.uw,$Vvv32.uw):sat",
36714tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV62]> {
36715let Inst{7-5} = 0b011;
36716let Inst{13-13} = 0b0;
36717let Inst{31-21} = 0b00011110101;
36718let hasNewValue = 1;
36719let opNewValue = 0;
36720let DecoderNamespace = "EXT_mmvec";
36721}
36722def V6_vsubuwsat_dv_alt : HInst<
36723(outs HvxWR:$Vdd32),
36724(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36725"$Vdd32 = vsubuw($Vuu32,$Vvv32):sat",
36726PSEUDO, TypeMAPPING>, Requires<[UseHVXV62]> {
36727let hasNewValue = 1;
36728let opNewValue = 0;
36729let isPseudo = 1;
36730let isCodeGenOnly = 1;
36731let DecoderNamespace = "EXT_mmvec";
36732}
36733def V6_vsubw : HInst<
36734(outs HvxVR:$Vd32),
36735(ins HvxVR:$Vu32, HvxVR:$Vv32),
36736"$Vd32.w = vsub($Vu32.w,$Vv32.w)",
36737tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36738let Inst{7-5} = 0b111;
36739let Inst{13-13} = 0b0;
36740let Inst{31-21} = 0b00011100010;
36741let hasNewValue = 1;
36742let opNewValue = 0;
36743let DecoderNamespace = "EXT_mmvec";
36744}
36745def V6_vsubw_alt : HInst<
36746(outs HvxVR:$Vd32),
36747(ins HvxVR:$Vu32, HvxVR:$Vv32),
36748"$Vd32 = vsubw($Vu32,$Vv32)",
36749PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36750let hasNewValue = 1;
36751let opNewValue = 0;
36752let isPseudo = 1;
36753let isCodeGenOnly = 1;
36754let DecoderNamespace = "EXT_mmvec";
36755}
36756def V6_vsubw_dv : HInst<
36757(outs HvxWR:$Vdd32),
36758(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36759"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w)",
36760tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36761let Inst{7-5} = 0b101;
36762let Inst{13-13} = 0b0;
36763let Inst{31-21} = 0b00011100100;
36764let hasNewValue = 1;
36765let opNewValue = 0;
36766let DecoderNamespace = "EXT_mmvec";
36767}
36768def V6_vsubw_dv_alt : HInst<
36769(outs HvxWR:$Vdd32),
36770(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36771"$Vdd32 = vsubw($Vuu32,$Vvv32)",
36772PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36773let hasNewValue = 1;
36774let opNewValue = 0;
36775let isPseudo = 1;
36776let isCodeGenOnly = 1;
36777let DecoderNamespace = "EXT_mmvec";
36778}
36779def V6_vsubwnq : HInst<
36780(outs HvxVR:$Vx32),
36781(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36782"if (!$Qv4) $Vx32.w -= $Vu32.w",
36783tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36784let Inst{7-5} = 0b011;
36785let Inst{13-13} = 0b1;
36786let Inst{21-16} = 0b000010;
36787let Inst{31-24} = 0b00011110;
36788let hasNewValue = 1;
36789let opNewValue = 0;
36790let DecoderNamespace = "EXT_mmvec";
36791let Constraints = "$Vx32 = $Vx32in";
36792}
36793def V6_vsubwnq_alt : HInst<
36794(outs HvxVR:$Vx32),
36795(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36796"if (!$Qv4.w) $Vx32.w -= $Vu32.w",
36797PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36798let hasNewValue = 1;
36799let opNewValue = 0;
36800let isPseudo = 1;
36801let isCodeGenOnly = 1;
36802let DecoderNamespace = "EXT_mmvec";
36803let Constraints = "$Vx32 = $Vx32in";
36804}
36805def V6_vsubwq : HInst<
36806(outs HvxVR:$Vx32),
36807(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36808"if ($Qv4) $Vx32.w -= $Vu32.w",
36809tc_257f6f7c, TypeCVI_VA>, Enc_a90628, Requires<[UseHVXV60]> {
36810let Inst{7-5} = 0b000;
36811let Inst{13-13} = 0b1;
36812let Inst{21-16} = 0b000010;
36813let Inst{31-24} = 0b00011110;
36814let hasNewValue = 1;
36815let opNewValue = 0;
36816let DecoderNamespace = "EXT_mmvec";
36817let Constraints = "$Vx32 = $Vx32in";
36818}
36819def V6_vsubwq_alt : HInst<
36820(outs HvxVR:$Vx32),
36821(ins HvxQR:$Qv4, HvxVR:$Vx32in, HvxVR:$Vu32),
36822"if ($Qv4.w) $Vx32.w -= $Vu32.w",
36823PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36824let hasNewValue = 1;
36825let opNewValue = 0;
36826let isPseudo = 1;
36827let isCodeGenOnly = 1;
36828let DecoderNamespace = "EXT_mmvec";
36829let Constraints = "$Vx32 = $Vx32in";
36830}
36831def V6_vsubwsat : HInst<
36832(outs HvxVR:$Vd32),
36833(ins HvxVR:$Vu32, HvxVR:$Vv32),
36834"$Vd32.w = vsub($Vu32.w,$Vv32.w):sat",
36835tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
36836let Inst{7-5} = 0b011;
36837let Inst{13-13} = 0b0;
36838let Inst{31-21} = 0b00011100011;
36839let hasNewValue = 1;
36840let opNewValue = 0;
36841let DecoderNamespace = "EXT_mmvec";
36842}
36843def V6_vsubwsat_alt : HInst<
36844(outs HvxVR:$Vd32),
36845(ins HvxVR:$Vu32, HvxVR:$Vv32),
36846"$Vd32 = vsubw($Vu32,$Vv32):sat",
36847PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36848let hasNewValue = 1;
36849let opNewValue = 0;
36850let isPseudo = 1;
36851let isCodeGenOnly = 1;
36852let DecoderNamespace = "EXT_mmvec";
36853}
36854def V6_vsubwsat_dv : HInst<
36855(outs HvxWR:$Vdd32),
36856(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36857"$Vdd32.w = vsub($Vuu32.w,$Vvv32.w):sat",
36858tc_db5555f3, TypeCVI_VA_DV>, Enc_f8ecf9, Requires<[UseHVXV60]> {
36859let Inst{7-5} = 0b001;
36860let Inst{13-13} = 0b0;
36861let Inst{31-21} = 0b00011100101;
36862let hasNewValue = 1;
36863let opNewValue = 0;
36864let DecoderNamespace = "EXT_mmvec";
36865}
36866def V6_vsubwsat_dv_alt : HInst<
36867(outs HvxWR:$Vdd32),
36868(ins HvxWR:$Vuu32, HvxWR:$Vvv32),
36869"$Vdd32 = vsubw($Vuu32,$Vvv32):sat",
36870PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36871let hasNewValue = 1;
36872let opNewValue = 0;
36873let isPseudo = 1;
36874let isCodeGenOnly = 1;
36875let DecoderNamespace = "EXT_mmvec";
36876}
36877def V6_vswap : HInst<
36878(outs HvxWR:$Vdd32),
36879(ins HvxQR:$Qt4, HvxVR:$Vu32, HvxVR:$Vv32),
36880"$Vdd32 = vswap($Qt4,$Vu32,$Vv32)",
36881tc_71646d06, TypeCVI_VA_DV>, Enc_3dac0b, Requires<[UseHVXV60]> {
36882let Inst{7-7} = 0b0;
36883let Inst{13-13} = 0b1;
36884let Inst{31-21} = 0b00011110101;
36885let hasNewValue = 1;
36886let opNewValue = 0;
36887let DecoderNamespace = "EXT_mmvec";
36888}
36889def V6_vtmpyb : HInst<
36890(outs HvxWR:$Vdd32),
36891(ins HvxWR:$Vuu32, IntRegs:$Rt32),
36892"$Vdd32.h = vtmpy($Vuu32.b,$Rt32.b)",
36893tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36894let Inst{7-5} = 0b000;
36895let Inst{13-13} = 0b0;
36896let Inst{31-21} = 0b00011001000;
36897let hasNewValue = 1;
36898let opNewValue = 0;
36899let DecoderNamespace = "EXT_mmvec";
36900}
36901def V6_vtmpyb_acc : HInst<
36902(outs HvxWR:$Vxx32),
36903(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36904"$Vxx32.h += vtmpy($Vuu32.b,$Rt32.b)",
36905tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
36906let Inst{7-5} = 0b000;
36907let Inst{13-13} = 0b1;
36908let Inst{31-21} = 0b00011001000;
36909let hasNewValue = 1;
36910let opNewValue = 0;
36911let isAccumulator = 1;
36912let DecoderNamespace = "EXT_mmvec";
36913let Constraints = "$Vxx32 = $Vxx32in";
36914}
36915def V6_vtmpyb_acc_alt : HInst<
36916(outs HvxWR:$Vxx32),
36917(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36918"$Vxx32 += vtmpyb($Vuu32,$Rt32)",
36919PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36920let hasNewValue = 1;
36921let opNewValue = 0;
36922let isAccumulator = 1;
36923let isPseudo = 1;
36924let isCodeGenOnly = 1;
36925let DecoderNamespace = "EXT_mmvec";
36926let Constraints = "$Vxx32 = $Vxx32in";
36927}
36928def V6_vtmpyb_alt : HInst<
36929(outs HvxWR:$Vdd32),
36930(ins HvxWR:$Vuu32, IntRegs:$Rt32),
36931"$Vdd32 = vtmpyb($Vuu32,$Rt32)",
36932PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36933let hasNewValue = 1;
36934let opNewValue = 0;
36935let isPseudo = 1;
36936let isCodeGenOnly = 1;
36937let DecoderNamespace = "EXT_mmvec";
36938}
36939def V6_vtmpybus : HInst<
36940(outs HvxWR:$Vdd32),
36941(ins HvxWR:$Vuu32, IntRegs:$Rt32),
36942"$Vdd32.h = vtmpy($Vuu32.ub,$Rt32.b)",
36943tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36944let Inst{7-5} = 0b001;
36945let Inst{13-13} = 0b0;
36946let Inst{31-21} = 0b00011001000;
36947let hasNewValue = 1;
36948let opNewValue = 0;
36949let DecoderNamespace = "EXT_mmvec";
36950}
36951def V6_vtmpybus_acc : HInst<
36952(outs HvxWR:$Vxx32),
36953(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36954"$Vxx32.h += vtmpy($Vuu32.ub,$Rt32.b)",
36955tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
36956let Inst{7-5} = 0b001;
36957let Inst{13-13} = 0b1;
36958let Inst{31-21} = 0b00011001000;
36959let hasNewValue = 1;
36960let opNewValue = 0;
36961let isAccumulator = 1;
36962let DecoderNamespace = "EXT_mmvec";
36963let Constraints = "$Vxx32 = $Vxx32in";
36964}
36965def V6_vtmpybus_acc_alt : HInst<
36966(outs HvxWR:$Vxx32),
36967(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
36968"$Vxx32 += vtmpybus($Vuu32,$Rt32)",
36969PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36970let hasNewValue = 1;
36971let opNewValue = 0;
36972let isAccumulator = 1;
36973let isPseudo = 1;
36974let isCodeGenOnly = 1;
36975let DecoderNamespace = "EXT_mmvec";
36976let Constraints = "$Vxx32 = $Vxx32in";
36977}
36978def V6_vtmpybus_alt : HInst<
36979(outs HvxWR:$Vdd32),
36980(ins HvxWR:$Vuu32, IntRegs:$Rt32),
36981"$Vdd32 = vtmpybus($Vuu32,$Rt32)",
36982PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
36983let hasNewValue = 1;
36984let opNewValue = 0;
36985let isPseudo = 1;
36986let isCodeGenOnly = 1;
36987let DecoderNamespace = "EXT_mmvec";
36988}
36989def V6_vtmpyhb : HInst<
36990(outs HvxWR:$Vdd32),
36991(ins HvxWR:$Vuu32, IntRegs:$Rt32),
36992"$Vdd32.w = vtmpy($Vuu32.h,$Rt32.b)",
36993tc_0b04c6c7, TypeCVI_VX_DV>, Enc_aad80c, Requires<[UseHVXV60]> {
36994let Inst{7-5} = 0b100;
36995let Inst{13-13} = 0b0;
36996let Inst{31-21} = 0b00011001101;
36997let hasNewValue = 1;
36998let opNewValue = 0;
36999let DecoderNamespace = "EXT_mmvec";
37000}
37001def V6_vtmpyhb_acc : HInst<
37002(outs HvxWR:$Vxx32),
37003(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
37004"$Vxx32.w += vtmpy($Vuu32.h,$Rt32.b)",
37005tc_660769f1, TypeCVI_VX_DV>, Enc_d6990d, Requires<[UseHVXV60]> {
37006let Inst{7-5} = 0b010;
37007let Inst{13-13} = 0b1;
37008let Inst{31-21} = 0b00011001000;
37009let hasNewValue = 1;
37010let opNewValue = 0;
37011let isAccumulator = 1;
37012let DecoderNamespace = "EXT_mmvec";
37013let Constraints = "$Vxx32 = $Vxx32in";
37014}
37015def V6_vtmpyhb_acc_alt : HInst<
37016(outs HvxWR:$Vxx32),
37017(ins HvxWR:$Vxx32in, HvxWR:$Vuu32, IntRegs:$Rt32),
37018"$Vxx32 += vtmpyhb($Vuu32,$Rt32)",
37019PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37020let hasNewValue = 1;
37021let opNewValue = 0;
37022let isAccumulator = 1;
37023let isPseudo = 1;
37024let isCodeGenOnly = 1;
37025let DecoderNamespace = "EXT_mmvec";
37026let Constraints = "$Vxx32 = $Vxx32in";
37027}
37028def V6_vtmpyhb_alt : HInst<
37029(outs HvxWR:$Vdd32),
37030(ins HvxWR:$Vuu32, IntRegs:$Rt32),
37031"$Vdd32 = vtmpyhb($Vuu32,$Rt32)",
37032PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37033let hasNewValue = 1;
37034let opNewValue = 0;
37035let isPseudo = 1;
37036let isCodeGenOnly = 1;
37037let DecoderNamespace = "EXT_mmvec";
37038}
37039def V6_vtran2x2_map : HInst<
37040(outs HvxVR:$Vy32, HvxVR:$Vx32),
37041(ins HvxVR:$Vy32in, HvxVR:$Vx32in, IntRegs:$Rt32),
37042"vtrans2x2($Vy32,$Vx32,$Rt32)",
37043PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37044let hasNewValue = 1;
37045let opNewValue = 0;
37046let hasNewValue2 = 1;
37047let opNewValue2 = 1;
37048let isPseudo = 1;
37049let isCodeGenOnly = 1;
37050let DecoderNamespace = "EXT_mmvec";
37051let Constraints = "$Vy32 = $Vy32in, $Vx32 = $Vx32in";
37052}
37053def V6_vunpackb : HInst<
37054(outs HvxWR:$Vdd32),
37055(ins HvxVR:$Vu32),
37056"$Vdd32.h = vunpack($Vu32.b)",
37057tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37058let Inst{7-5} = 0b010;
37059let Inst{13-13} = 0b0;
37060let Inst{31-16} = 0b0001111000000001;
37061let hasNewValue = 1;
37062let opNewValue = 0;
37063let DecoderNamespace = "EXT_mmvec";
37064}
37065def V6_vunpackb_alt : HInst<
37066(outs HvxWR:$Vdd32),
37067(ins HvxVR:$Vu32),
37068"$Vdd32 = vunpackb($Vu32)",
37069PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37070let hasNewValue = 1;
37071let opNewValue = 0;
37072let isPseudo = 1;
37073let isCodeGenOnly = 1;
37074let DecoderNamespace = "EXT_mmvec";
37075}
37076def V6_vunpackh : HInst<
37077(outs HvxWR:$Vdd32),
37078(ins HvxVR:$Vu32),
37079"$Vdd32.w = vunpack($Vu32.h)",
37080tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37081let Inst{7-5} = 0b011;
37082let Inst{13-13} = 0b0;
37083let Inst{31-16} = 0b0001111000000001;
37084let hasNewValue = 1;
37085let opNewValue = 0;
37086let DecoderNamespace = "EXT_mmvec";
37087}
37088def V6_vunpackh_alt : HInst<
37089(outs HvxWR:$Vdd32),
37090(ins HvxVR:$Vu32),
37091"$Vdd32 = vunpackh($Vu32)",
37092PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37093let hasNewValue = 1;
37094let opNewValue = 0;
37095let isPseudo = 1;
37096let isCodeGenOnly = 1;
37097let DecoderNamespace = "EXT_mmvec";
37098}
37099def V6_vunpackob : HInst<
37100(outs HvxWR:$Vxx32),
37101(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37102"$Vxx32.h |= vunpacko($Vu32.b)",
37103tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
37104let Inst{7-5} = 0b000;
37105let Inst{13-13} = 0b1;
37106let Inst{31-16} = 0b0001111000000000;
37107let hasNewValue = 1;
37108let opNewValue = 0;
37109let isAccumulator = 1;
37110let DecoderNamespace = "EXT_mmvec";
37111let Constraints = "$Vxx32 = $Vxx32in";
37112}
37113def V6_vunpackob_alt : HInst<
37114(outs HvxWR:$Vxx32),
37115(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37116"$Vxx32 |= vunpackob($Vu32)",
37117PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37118let hasNewValue = 1;
37119let opNewValue = 0;
37120let isAccumulator = 1;
37121let isPseudo = 1;
37122let DecoderNamespace = "EXT_mmvec";
37123let Constraints = "$Vxx32 = $Vxx32in";
37124}
37125def V6_vunpackoh : HInst<
37126(outs HvxWR:$Vxx32),
37127(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37128"$Vxx32.w |= vunpacko($Vu32.h)",
37129tc_2c745bb8, TypeCVI_VP_VS>, Enc_500cb0, Requires<[UseHVXV60]> {
37130let Inst{7-5} = 0b001;
37131let Inst{13-13} = 0b1;
37132let Inst{31-16} = 0b0001111000000000;
37133let hasNewValue = 1;
37134let opNewValue = 0;
37135let isAccumulator = 1;
37136let DecoderNamespace = "EXT_mmvec";
37137let Constraints = "$Vxx32 = $Vxx32in";
37138}
37139def V6_vunpackoh_alt : HInst<
37140(outs HvxWR:$Vxx32),
37141(ins HvxWR:$Vxx32in, HvxVR:$Vu32),
37142"$Vxx32 |= vunpackoh($Vu32)",
37143PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37144let hasNewValue = 1;
37145let opNewValue = 0;
37146let isAccumulator = 1;
37147let isPseudo = 1;
37148let isCodeGenOnly = 1;
37149let DecoderNamespace = "EXT_mmvec";
37150let Constraints = "$Vxx32 = $Vxx32in";
37151}
37152def V6_vunpackub : HInst<
37153(outs HvxWR:$Vdd32),
37154(ins HvxVR:$Vu32),
37155"$Vdd32.uh = vunpack($Vu32.ub)",
37156tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37157let Inst{7-5} = 0b000;
37158let Inst{13-13} = 0b0;
37159let Inst{31-16} = 0b0001111000000001;
37160let hasNewValue = 1;
37161let opNewValue = 0;
37162let DecoderNamespace = "EXT_mmvec";
37163}
37164def V6_vunpackub_alt : HInst<
37165(outs HvxWR:$Vdd32),
37166(ins HvxVR:$Vu32),
37167"$Vdd32 = vunpackub($Vu32)",
37168PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37169let hasNewValue = 1;
37170let opNewValue = 0;
37171let isPseudo = 1;
37172let isCodeGenOnly = 1;
37173let DecoderNamespace = "EXT_mmvec";
37174}
37175def V6_vunpackuh : HInst<
37176(outs HvxWR:$Vdd32),
37177(ins HvxVR:$Vu32),
37178"$Vdd32.uw = vunpack($Vu32.uh)",
37179tc_04da405a, TypeCVI_VP_VS>, Enc_dd766a, Requires<[UseHVXV60]> {
37180let Inst{7-5} = 0b001;
37181let Inst{13-13} = 0b0;
37182let Inst{31-16} = 0b0001111000000001;
37183let hasNewValue = 1;
37184let opNewValue = 0;
37185let DecoderNamespace = "EXT_mmvec";
37186}
37187def V6_vunpackuh_alt : HInst<
37188(outs HvxWR:$Vdd32),
37189(ins HvxVR:$Vu32),
37190"$Vdd32 = vunpackuh($Vu32)",
37191PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37192let hasNewValue = 1;
37193let opNewValue = 0;
37194let isPseudo = 1;
37195let isCodeGenOnly = 1;
37196let DecoderNamespace = "EXT_mmvec";
37197}
37198def V6_vwhist128 : HInst<
37199(outs),
37200(ins),
37201"vwhist128",
37202tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37203let Inst{13-0} = 0b10010010000000;
37204let Inst{31-16} = 0b0001111000000000;
37205let DecoderNamespace = "EXT_mmvec";
37206}
37207def V6_vwhist128m : HInst<
37208(outs),
37209(ins u1_0Imm:$Ii),
37210"vwhist128(#$Ii)",
37211tc_b28e51aa, TypeCVI_HIST>, Enc_efaed8, Requires<[UseHVXV62]> {
37212let Inst{7-0} = 0b10000000;
37213let Inst{13-9} = 0b10011;
37214let Inst{31-16} = 0b0001111000000000;
37215let DecoderNamespace = "EXT_mmvec";
37216}
37217def V6_vwhist128q : HInst<
37218(outs),
37219(ins HvxQR:$Qv4),
37220"vwhist128($Qv4)",
37221tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37222let Inst{13-0} = 0b10010010000000;
37223let Inst{21-16} = 0b000010;
37224let Inst{31-24} = 0b00011110;
37225let DecoderNamespace = "EXT_mmvec";
37226}
37227def V6_vwhist128qm : HInst<
37228(outs),
37229(ins HvxQR:$Qv4, u1_0Imm:$Ii),
37230"vwhist128($Qv4,#$Ii)",
37231tc_767c4e9d, TypeCVI_HIST>, Enc_802dc0, Requires<[UseHVXV62]> {
37232let Inst{7-0} = 0b10000000;
37233let Inst{13-9} = 0b10011;
37234let Inst{21-16} = 0b000010;
37235let Inst{31-24} = 0b00011110;
37236let DecoderNamespace = "EXT_mmvec";
37237}
37238def V6_vwhist256 : HInst<
37239(outs),
37240(ins),
37241"vwhist256",
37242tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37243let Inst{13-0} = 0b10001010000000;
37244let Inst{31-16} = 0b0001111000000000;
37245let DecoderNamespace = "EXT_mmvec";
37246}
37247def V6_vwhist256_sat : HInst<
37248(outs),
37249(ins),
37250"vwhist256:sat",
37251tc_1381a97c, TypeCVI_HIST>, Enc_e3b0c4, Requires<[UseHVXV62]> {
37252let Inst{13-0} = 0b10001110000000;
37253let Inst{31-16} = 0b0001111000000000;
37254let DecoderNamespace = "EXT_mmvec";
37255}
37256def V6_vwhist256q : HInst<
37257(outs),
37258(ins HvxQR:$Qv4),
37259"vwhist256($Qv4)",
37260tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37261let Inst{13-0} = 0b10001010000000;
37262let Inst{21-16} = 0b000010;
37263let Inst{31-24} = 0b00011110;
37264let DecoderNamespace = "EXT_mmvec";
37265}
37266def V6_vwhist256q_sat : HInst<
37267(outs),
37268(ins HvxQR:$Qv4),
37269"vwhist256($Qv4):sat",
37270tc_e3f68a46, TypeCVI_HIST>, Enc_217147, Requires<[UseHVXV62]> {
37271let Inst{13-0} = 0b10001110000000;
37272let Inst{21-16} = 0b000010;
37273let Inst{31-24} = 0b00011110;
37274let DecoderNamespace = "EXT_mmvec";
37275}
37276def V6_vxor : HInst<
37277(outs HvxVR:$Vd32),
37278(ins HvxVR:$Vu32, HvxVR:$Vv32),
37279"$Vd32 = vxor($Vu32,$Vv32)",
37280tc_56c4f9fe, TypeCVI_VA>, Enc_45364e, Requires<[UseHVXV60]> {
37281let Inst{7-5} = 0b111;
37282let Inst{13-13} = 0b0;
37283let Inst{31-21} = 0b00011100001;
37284let hasNewValue = 1;
37285let opNewValue = 0;
37286let DecoderNamespace = "EXT_mmvec";
37287}
37288def V6_vzb : HInst<
37289(outs HvxWR:$Vdd32),
37290(ins HvxVR:$Vu32),
37291"$Vdd32.uh = vzxt($Vu32.ub)",
37292tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37293let Inst{7-5} = 0b001;
37294let Inst{13-13} = 0b0;
37295let Inst{31-16} = 0b0001111000000010;
37296let hasNewValue = 1;
37297let opNewValue = 0;
37298let DecoderNamespace = "EXT_mmvec";
37299}
37300def V6_vzb_alt : HInst<
37301(outs HvxWR:$Vdd32),
37302(ins HvxVR:$Vu32),
37303"$Vdd32 = vzxtb($Vu32)",
37304PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37305let hasNewValue = 1;
37306let opNewValue = 0;
37307let isPseudo = 1;
37308let isCodeGenOnly = 1;
37309let DecoderNamespace = "EXT_mmvec";
37310}
37311def V6_vzh : HInst<
37312(outs HvxWR:$Vdd32),
37313(ins HvxVR:$Vu32),
37314"$Vdd32.uw = vzxt($Vu32.uh)",
37315tc_b4416217, TypeCVI_VA_DV>, Enc_dd766a, Requires<[UseHVXV60]> {
37316let Inst{7-5} = 0b010;
37317let Inst{13-13} = 0b0;
37318let Inst{31-16} = 0b0001111000000010;
37319let hasNewValue = 1;
37320let opNewValue = 0;
37321let DecoderNamespace = "EXT_mmvec";
37322}
37323def V6_vzh_alt : HInst<
37324(outs HvxWR:$Vdd32),
37325(ins HvxVR:$Vu32),
37326"$Vdd32 = vzxth($Vu32)",
37327PSEUDO, TypeMAPPING>, Requires<[UseHVXV60]> {
37328let hasNewValue = 1;
37329let opNewValue = 0;
37330let isPseudo = 1;
37331let isCodeGenOnly = 1;
37332let DecoderNamespace = "EXT_mmvec";
37333}
37334def V6_zLd_ai : HInst<
37335(outs),
37336(ins IntRegs:$Rt32, s4_0Imm:$Ii),
37337"z = vmem($Rt32+#$Ii)",
37338tc_e699ae41, TypeCVI_ZW>, Enc_ff3442, Requires<[UseHVXV66,UseZReg]> {
37339let Inst{7-0} = 0b00000000;
37340let Inst{12-11} = 0b00;
37341let Inst{31-21} = 0b00101100000;
37342let addrMode = BaseImmOffset;
37343let mayLoad = 1;
37344let isRestrictNoSlot1Store = 1;
37345let DecoderNamespace = "EXT_mmvec";
37346}
37347def V6_zLd_pi : HInst<
37348(outs IntRegs:$Rx32),
37349(ins IntRegs:$Rx32in, s3_0Imm:$Ii),
37350"z = vmem($Rx32++#$Ii)",
37351tc_a0dbea28, TypeCVI_ZW>, Enc_6c9ee0, Requires<[UseHVXV66,UseZReg]> {
37352let Inst{7-0} = 0b00000000;
37353let Inst{13-11} = 0b000;
37354let Inst{31-21} = 0b00101101000;
37355let addrMode = PostInc;
37356let mayLoad = 1;
37357let isRestrictNoSlot1Store = 1;
37358let DecoderNamespace = "EXT_mmvec";
37359let Constraints = "$Rx32 = $Rx32in";
37360}
37361def V6_zLd_ppu : HInst<
37362(outs IntRegs:$Rx32),
37363(ins IntRegs:$Rx32in, ModRegs:$Mu2),
37364"z = vmem($Rx32++$Mu2)",
37365tc_a0dbea28, TypeCVI_ZW>, Enc_44661f, Requires<[UseHVXV66,UseZReg]> {
37366let Inst{12-0} = 0b0000000000001;
37367let Inst{31-21} = 0b00101101000;
37368let addrMode = PostInc;
37369let mayLoad = 1;
37370let isRestrictNoSlot1Store = 1;
37371let DecoderNamespace = "EXT_mmvec";
37372let Constraints = "$Rx32 = $Rx32in";
37373}
37374def V6_zLd_pred_ai : HInst<
37375(outs),
37376(ins PredRegs:$Pv4, IntRegs:$Rt32, s4_0Imm:$Ii),
37377"if ($Pv4) z = vmem($Rt32+#$Ii)",
37378tc_dd5b0695, TypeCVI_ZW>, Enc_ef601b, Requires<[UseHVXV66,UseZReg]> {
37379let Inst{7-0} = 0b00000000;
37380let Inst{31-21} = 0b00101100100;
37381let isPredicated = 1;
37382let addrMode = BaseImmOffset;
37383let mayLoad = 1;
37384let isRestrictNoSlot1Store = 1;
37385let DecoderNamespace = "EXT_mmvec";
37386}
37387def V6_zLd_pred_pi : HInst<
37388(outs IntRegs:$Rx32),
37389(ins PredRegs:$Pv4, IntRegs:$Rx32in, s3_0Imm:$Ii),
37390"if ($Pv4) z = vmem($Rx32++#$Ii)",
37391tc_3ad719fb, TypeCVI_ZW>, Enc_6baed4, Requires<[UseHVXV66,UseZReg]> {
37392let Inst{7-0} = 0b00000000;
37393let Inst{13-13} = 0b0;
37394let Inst{31-21} = 0b00101101100;
37395let isPredicated = 1;
37396let addrMode = PostInc;
37397let mayLoad = 1;
37398let isRestrictNoSlot1Store = 1;
37399let DecoderNamespace = "EXT_mmvec";
37400let Constraints = "$Rx32 = $Rx32in";
37401}
37402def V6_zLd_pred_ppu : HInst<
37403(outs IntRegs:$Rx32),
37404(ins PredRegs:$Pv4, IntRegs:$Rx32in, ModRegs:$Mu2),
37405"if ($Pv4) z = vmem($Rx32++$Mu2)",
37406tc_3ad719fb, TypeCVI_ZW>, Enc_691712, Requires<[UseHVXV66,UseZReg]> {
37407let Inst{10-0} = 0b00000000001;
37408let Inst{31-21} = 0b00101101100;
37409let isPredicated = 1;
37410let addrMode = PostInc;
37411let mayLoad = 1;
37412let isRestrictNoSlot1Store = 1;
37413let DecoderNamespace = "EXT_mmvec";
37414let Constraints = "$Rx32 = $Rx32in";
37415}
37416def V6_zextract : HInst<
37417(outs HvxVR:$Vd32),
37418(ins IntRegs:$Rt32),
37419"$Vd32 = zextract($Rt32)",
37420tc_5bf8afbb, TypeCVI_VP>, Enc_a5ed8a, Requires<[UseHVXV66,UseZReg]> {
37421let Inst{13-5} = 0b000001001;
37422let Inst{31-21} = 0b00011001101;
37423let hasNewValue = 1;
37424let opNewValue = 0;
37425let DecoderNamespace = "EXT_mmvec";
37426}
37427def V6_zld0 : HInst<
37428(outs),
37429(ins IntRegs:$Rt32),
37430"z = vmem($Rt32)",
37431PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
37432let isPseudo = 1;
37433let isCodeGenOnly = 1;
37434let DecoderNamespace = "EXT_mmvec";
37435}
37436def V6_zldp0 : HInst<
37437(outs),
37438(ins PredRegs:$Pv4, IntRegs:$Rt32),
37439"if ($Pv4) z = vmem($Rt32)",
37440PSEUDO, TypeMAPPING>, Requires<[UseHVXV66]> {
37441let isPseudo = 1;
37442let isCodeGenOnly = 1;
37443let DecoderNamespace = "EXT_mmvec";
37444}
37445def Y2_barrier : HInst<
37446(outs),
37447(ins),
37448"barrier",
37449tc_8c99de45, TypeST>, Enc_e3b0c4 {
37450let Inst{13-0} = 0b00000000000000;
37451let Inst{31-16} = 0b1010100000000000;
37452let isSoloAX = 1;
37453let hasSideEffects = 1;
37454}
37455def Y2_break : HInst<
37456(outs),
37457(ins),
37458"brkpt",
37459tc_9ad9998f, TypeCR>, Enc_e3b0c4 {
37460let Inst{13-0} = 0b00000000000000;
37461let Inst{31-16} = 0b0110110000100000;
37462let isSolo = 1;
37463}
37464def Y2_dccleana : HInst<
37465(outs),
37466(ins IntRegs:$Rs32),
37467"dccleana($Rs32)",
37468tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37469let Inst{13-0} = 0b00000000000000;
37470let Inst{31-21} = 0b10100000000;
37471let isRestrictSlot1AOK = 1;
37472let hasSideEffects = 1;
37473}
37474def Y2_dccleaninva : HInst<
37475(outs),
37476(ins IntRegs:$Rs32),
37477"dccleaninva($Rs32)",
37478tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37479let Inst{13-0} = 0b00000000000000;
37480let Inst{31-21} = 0b10100000010;
37481let isRestrictSlot1AOK = 1;
37482let hasSideEffects = 1;
37483}
37484def Y2_dcfetch : HInst<
37485(outs),
37486(ins IntRegs:$Rs32),
37487"dcfetch($Rs32)",
37488tc_d63f638c, TypeMAPPING> {
37489let hasSideEffects = 1;
37490let isPseudo = 1;
37491let isCodeGenOnly = 1;
37492}
37493def Y2_dcfetchbo : HInst<
37494(outs),
37495(ins IntRegs:$Rs32, u11_3Imm:$Ii),
37496"dcfetch($Rs32+#$Ii)",
37497tc_9ca930f7, TypeLD>, Enc_2d829e {
37498let Inst{13-11} = 0b000;
37499let Inst{31-21} = 0b10010100000;
37500let addrMode = BaseImmOffset;
37501let isRestrictNoSlot1Store = 1;
37502let hasSideEffects = 1;
37503}
37504def Y2_dcinva : HInst<
37505(outs),
37506(ins IntRegs:$Rs32),
37507"dcinva($Rs32)",
37508tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37509let Inst{13-0} = 0b00000000000000;
37510let Inst{31-21} = 0b10100000001;
37511let isRestrictSlot1AOK = 1;
37512let hasSideEffects = 1;
37513}
37514def Y2_dczeroa : HInst<
37515(outs),
37516(ins IntRegs:$Rs32),
37517"dczeroa($Rs32)",
37518tc_b857bf4e, TypeST>, Enc_ecbcc8 {
37519let Inst{13-0} = 0b00000000000000;
37520let Inst{31-21} = 0b10100000110;
37521let isRestrictSlot1AOK = 1;
37522let mayStore = 1;
37523let hasSideEffects = 1;
37524}
37525def Y2_icinva : HInst<
37526(outs),
37527(ins IntRegs:$Rs32),
37528"icinva($Rs32)",
37529tc_5d7f5414, TypeJ>, Enc_ecbcc8 {
37530let Inst{13-0} = 0b00000000000000;
37531let Inst{31-21} = 0b01010110110;
37532let isSolo = 1;
37533}
37534def Y2_isync : HInst<
37535(outs),
37536(ins),
37537"isync",
37538tc_8b121f4a, TypeJ>, Enc_e3b0c4 {
37539let Inst{13-0} = 0b00000000000010;
37540let Inst{31-16} = 0b0101011111000000;
37541let isSolo = 1;
37542}
37543def Y2_syncht : HInst<
37544(outs),
37545(ins),
37546"syncht",
37547tc_8c99de45, TypeST>, Enc_e3b0c4 {
37548let Inst{13-0} = 0b00000000000000;
37549let Inst{31-16} = 0b1010100001000000;
37550let isSolo = 1;
37551}
37552def Y2_wait : HInst<
37553(outs),
37554(ins IntRegs:$Rs32),
37555"wait($Rs32)",
37556tc_174516e8, TypeCR>, Enc_ecbcc8, Requires<[HasV65]> {
37557let Inst{13-0} = 0b00000000000000;
37558let Inst{31-21} = 0b01100100010;
37559let isSolo = 1;
37560}
37561def Y4_l2fetch : HInst<
37562(outs),
37563(ins IntRegs:$Rs32, IntRegs:$Rt32),
37564"l2fetch($Rs32,$Rt32)",
37565tc_fe211424, TypeST>, Enc_ca3887 {
37566let Inst{7-0} = 0b00000000;
37567let Inst{13-13} = 0b0;
37568let Inst{31-21} = 0b10100110000;
37569let isSoloAX = 1;
37570let mayStore = 1;
37571let hasSideEffects = 1;
37572}
37573def Y4_trace : HInst<
37574(outs),
37575(ins IntRegs:$Rs32),
37576"trace($Rs32)",
37577tc_6b25e783, TypeCR>, Enc_ecbcc8 {
37578let Inst{13-0} = 0b00000000000000;
37579let Inst{31-21} = 0b01100010010;
37580let isSoloAX = 1;
37581}
37582def Y5_l2fetch : HInst<
37583(outs),
37584(ins IntRegs:$Rs32, DoubleRegs:$Rtt32),
37585"l2fetch($Rs32,$Rtt32)",
37586tc_fe211424, TypeST>, Enc_e6abcf {
37587let Inst{7-0} = 0b00000000;
37588let Inst{13-13} = 0b0;
37589let Inst{31-21} = 0b10100110100;
37590let isSoloAX = 1;
37591let mayStore = 1;
37592let hasSideEffects = 1;
37593}
37594def dep_A2_addsat : HInst<
37595(outs IntRegs:$Rd32),
37596(ins IntRegs:$Rs32, IntRegs:$Rt32),
37597"$Rd32 = add($Rs32,$Rt32):sat:deprecated",
37598tc_779080bf, TypeALU64>, Enc_5ab2be {
37599let Inst{7-5} = 0b000;
37600let Inst{13-13} = 0b0;
37601let Inst{31-21} = 0b11010101100;
37602let hasNewValue = 1;
37603let opNewValue = 0;
37604let prefersSlot3 = 1;
37605let Defs = [USR_OVF];
37606}
37607def dep_A2_subsat : HInst<
37608(outs IntRegs:$Rd32),
37609(ins IntRegs:$Rt32, IntRegs:$Rs32),
37610"$Rd32 = sub($Rt32,$Rs32):sat:deprecated",
37611tc_779080bf, TypeALU64>, Enc_bd6011 {
37612let Inst{7-5} = 0b100;
37613let Inst{13-13} = 0b0;
37614let Inst{31-21} = 0b11010101100;
37615let hasNewValue = 1;
37616let opNewValue = 0;
37617let prefersSlot3 = 1;
37618let Defs = [USR_OVF];
37619}
37620def dep_S2_packhl : HInst<
37621(outs DoubleRegs:$Rdd32),
37622(ins IntRegs:$Rs32, IntRegs:$Rt32),
37623"$Rdd32 = packhl($Rs32,$Rt32):deprecated",
37624tc_946df596, TypeALU64>, Enc_be32a5 {
37625let Inst{7-5} = 0b000;
37626let Inst{13-13} = 0b0;
37627let Inst{31-21} = 0b11010100000;
37628}
37629